@keycloak/keycloak-admin-ui 26.4.0 → 26.4.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.
Files changed (39) hide show
  1. package/lib/.vite/manifest.json +38 -38
  2. package/lib/{AddKubernetesConnect-CLVPWkrb.js → AddKubernetesConnect-lcf2Q5sz.js} +2 -2
  3. package/lib/{AddKubernetesConnect-CLVPWkrb.js.map → AddKubernetesConnect-lcf2Q5sz.js.map} +1 -1
  4. package/lib/{AddOAuth2-CC0H-fVr.js → AddOAuth2-DdjhQNq5.js} +2 -2
  5. package/lib/{AddOAuth2-CC0H-fVr.js.map → AddOAuth2-DdjhQNq5.js.map} +1 -1
  6. package/lib/{AddSpiffeConnect-Dji06y_O.js → AddSpiffeConnect-B-aJOWqr.js} +2 -2
  7. package/lib/{AddSpiffeConnect-Dji06y_O.js.map → AddSpiffeConnect-B-aJOWqr.js.map} +1 -1
  8. package/lib/{CreateFlow-Cz-lg73m.js → CreateFlow-aeLBQICc.js} +2 -2
  9. package/lib/{CreateFlow-Cz-lg73m.js.map → CreateFlow-aeLBQICc.js.map} +1 -1
  10. package/lib/{CreateWorkflow-ua79h89c.js → CreateWorkflow-Byof_3MH.js} +2 -2
  11. package/lib/{CreateWorkflow-ua79h89c.js.map → CreateWorkflow-Byof_3MH.js.map} +1 -1
  12. package/lib/{DetailOrganization-Ysk1nTgF.js → DetailOrganization-BJrxolcZ.js} +2 -2
  13. package/lib/{DetailOrganization-Ysk1nTgF.js.map → DetailOrganization-BJrxolcZ.js.map} +1 -1
  14. package/lib/{ExecutorForm-BccZ7QZF.js → ExecutorForm-DmyRhlqZ.js} +2 -2
  15. package/lib/{ExecutorForm-BccZ7QZF.js.map → ExecutorForm-DmyRhlqZ.js.map} +1 -1
  16. package/lib/{FlowDetails-B4lQG8Pg.js → FlowDetails-AIfvPbL5.js} +2 -2
  17. package/lib/{FlowDetails-B4lQG8Pg.js.map → FlowDetails-AIfvPbL5.js.map} +1 -1
  18. package/lib/{NewOrganization-DnnmflIu.js → NewOrganization-BrYtAGsN.js} +2 -2
  19. package/lib/{NewOrganization-DnnmflIu.js.map → NewOrganization-BrYtAGsN.js.map} +1 -1
  20. package/lib/{PermissionConfigurationDetails-OCQEx-d3.js → PermissionConfigurationDetails-Bwco6hKZ.js} +3 -3
  21. package/lib/{PermissionConfigurationDetails-OCQEx-d3.js.map → PermissionConfigurationDetails-Bwco6hKZ.js.map} +1 -1
  22. package/lib/{PermissionDetails-DgCmusN2.js → PermissionDetails-CvTzXEzI.js} +2 -2
  23. package/lib/{PermissionDetails-DgCmusN2.js.map → PermissionDetails-CvTzXEzI.js.map} +1 -1
  24. package/lib/{RealmSection-CxxB3s3W.js → RealmSection-DpXO9tuN.js} +2 -2
  25. package/lib/{RealmSection-CxxB3s3W.js.map → RealmSection-DpXO9tuN.js.map} +1 -1
  26. package/lib/{ResourceDetails-BbSJrYuX.js → ResourceDetails-C8Asb1EU.js} +3 -3
  27. package/lib/{ResourceDetails-BbSJrYuX.js.map → ResourceDetails-C8Asb1EU.js.map} +1 -1
  28. package/lib/{ScopeDetails-DJNNCcbt.js → ScopeDetails-BWZKJ_TL.js} +2 -2
  29. package/lib/{ScopeDetails-DJNNCcbt.js.map → ScopeDetails-BWZKJ_TL.js.map} +1 -1
  30. package/lib/{ScopePicker-BB_n0zxI.js → ScopePicker-BDsWRUuT.js} +2 -2
  31. package/lib/{ScopePicker-BB_n0zxI.js.map → ScopePicker-BDsWRUuT.js.map} +1 -1
  32. package/lib/{WorkflowsSection-DbR36xIx.js → WorkflowsSection-BHj1MVBb.js} +2 -2
  33. package/lib/{WorkflowsSection-DbR36xIx.js.map → WorkflowsSection-BHj1MVBb.js.map} +1 -1
  34. package/lib/clients/keys/Certificate.d.ts +2 -1
  35. package/lib/clients/keys/SamlKeysDialog.d.ts +2 -1
  36. package/lib/{index-DyTQe_VT.js → index-BJjrj_46.js} +1555 -1537
  37. package/lib/{index-DyTQe_VT.js.map → index-BJjrj_46.js.map} +1 -1
  38. package/lib/keycloak-admin-ui.js +1 -1
  39. package/package.json +3 -3
@@ -1,13 +1,13 @@
1
1
  {
2
- "_ScopePicker-BB_n0zxI.js": {
3
- "file": "ScopePicker-BB_n0zxI.js",
2
+ "_ScopePicker-BDsWRUuT.js": {
3
+ "file": "ScopePicker-BDsWRUuT.js",
4
4
  "name": "ScopePicker",
5
5
  "imports": [
6
- "_index-DyTQe_VT.js"
6
+ "_index-BJjrj_46.js"
7
7
  ]
8
8
  },
9
- "_index-DyTQe_VT.js": {
10
- "file": "index-DyTQe_VT.js",
9
+ "_index-BJjrj_46.js": {
10
+ "file": "index-BJjrj_46.js",
11
11
  "name": "index",
12
12
  "dynamicImports": [
13
13
  "src/authentication/FlowDetails.tsx",
@@ -33,76 +33,76 @@
33
33
  ]
34
34
  },
35
35
  "src/authentication/FlowDetails.tsx": {
36
- "file": "FlowDetails-B4lQG8Pg.js",
36
+ "file": "FlowDetails-AIfvPbL5.js",
37
37
  "name": "FlowDetails",
38
38
  "src": "src/authentication/FlowDetails.tsx",
39
39
  "isDynamicEntry": true,
40
40
  "imports": [
41
- "_index-DyTQe_VT.js"
41
+ "_index-BJjrj_46.js"
42
42
  ]
43
43
  },
44
44
  "src/authentication/form/CreateFlow.tsx": {
45
- "file": "CreateFlow-Cz-lg73m.js",
45
+ "file": "CreateFlow-aeLBQICc.js",
46
46
  "name": "CreateFlow",
47
47
  "src": "src/authentication/form/CreateFlow.tsx",
48
48
  "isDynamicEntry": true,
49
49
  "imports": [
50
- "_index-DyTQe_VT.js"
50
+ "_index-BJjrj_46.js"
51
51
  ]
52
52
  },
53
53
  "src/clients/authorization/PermissionDetails.tsx": {
54
- "file": "PermissionDetails-DgCmusN2.js",
54
+ "file": "PermissionDetails-CvTzXEzI.js",
55
55
  "name": "PermissionDetails",
56
56
  "src": "src/clients/authorization/PermissionDetails.tsx",
57
57
  "isDynamicEntry": true,
58
58
  "imports": [
59
- "_index-DyTQe_VT.js"
59
+ "_index-BJjrj_46.js"
60
60
  ]
61
61
  },
62
62
  "src/clients/authorization/ResourceDetails.tsx": {
63
- "file": "ResourceDetails-BbSJrYuX.js",
63
+ "file": "ResourceDetails-C8Asb1EU.js",
64
64
  "name": "ResourceDetails",
65
65
  "src": "src/clients/authorization/ResourceDetails.tsx",
66
66
  "isDynamicEntry": true,
67
67
  "imports": [
68
- "_index-DyTQe_VT.js",
69
- "_ScopePicker-BB_n0zxI.js"
68
+ "_index-BJjrj_46.js",
69
+ "_ScopePicker-BDsWRUuT.js"
70
70
  ]
71
71
  },
72
72
  "src/clients/authorization/ScopeDetails.tsx": {
73
- "file": "ScopeDetails-DJNNCcbt.js",
73
+ "file": "ScopeDetails-BWZKJ_TL.js",
74
74
  "name": "ScopeDetails",
75
75
  "src": "src/clients/authorization/ScopeDetails.tsx",
76
76
  "isDynamicEntry": true,
77
77
  "imports": [
78
- "_index-DyTQe_VT.js"
78
+ "_index-BJjrj_46.js"
79
79
  ]
80
80
  },
81
81
  "src/identity-providers/add/AddKubernetesConnect.tsx": {
82
- "file": "AddKubernetesConnect-CLVPWkrb.js",
82
+ "file": "AddKubernetesConnect-lcf2Q5sz.js",
83
83
  "name": "AddKubernetesConnect",
84
84
  "src": "src/identity-providers/add/AddKubernetesConnect.tsx",
85
85
  "isDynamicEntry": true,
86
86
  "imports": [
87
- "_index-DyTQe_VT.js"
87
+ "_index-BJjrj_46.js"
88
88
  ]
89
89
  },
90
90
  "src/identity-providers/add/AddOAuth2.tsx": {
91
- "file": "AddOAuth2-CC0H-fVr.js",
91
+ "file": "AddOAuth2-DdjhQNq5.js",
92
92
  "name": "AddOAuth2",
93
93
  "src": "src/identity-providers/add/AddOAuth2.tsx",
94
94
  "isDynamicEntry": true,
95
95
  "imports": [
96
- "_index-DyTQe_VT.js"
96
+ "_index-BJjrj_46.js"
97
97
  ]
98
98
  },
99
99
  "src/identity-providers/add/AddSpiffeConnect.tsx": {
100
- "file": "AddSpiffeConnect-Dji06y_O.js",
100
+ "file": "AddSpiffeConnect-B-aJOWqr.js",
101
101
  "name": "AddSpiffeConnect",
102
102
  "src": "src/identity-providers/add/AddSpiffeConnect.tsx",
103
103
  "isDynamicEntry": true,
104
104
  "imports": [
105
- "_index-DyTQe_VT.js"
105
+ "_index-BJjrj_46.js"
106
106
  ]
107
107
  },
108
108
  "src/index.ts": {
@@ -111,71 +111,71 @@
111
111
  "src": "src/index.ts",
112
112
  "isEntry": true,
113
113
  "imports": [
114
- "_index-DyTQe_VT.js"
114
+ "_index-BJjrj_46.js"
115
115
  ]
116
116
  },
117
117
  "src/organizations/DetailOrganization.tsx": {
118
- "file": "DetailOrganization-Ysk1nTgF.js",
118
+ "file": "DetailOrganization-BJrxolcZ.js",
119
119
  "name": "DetailOrganization",
120
120
  "src": "src/organizations/DetailOrganization.tsx",
121
121
  "isDynamicEntry": true,
122
122
  "imports": [
123
- "_index-DyTQe_VT.js"
123
+ "_index-BJjrj_46.js"
124
124
  ]
125
125
  },
126
126
  "src/organizations/NewOrganization.tsx": {
127
- "file": "NewOrganization-DnnmflIu.js",
127
+ "file": "NewOrganization-BrYtAGsN.js",
128
128
  "name": "NewOrganization",
129
129
  "src": "src/organizations/NewOrganization.tsx",
130
130
  "isDynamicEntry": true,
131
131
  "imports": [
132
- "_index-DyTQe_VT.js"
132
+ "_index-BJjrj_46.js"
133
133
  ]
134
134
  },
135
135
  "src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx": {
136
- "file": "PermissionConfigurationDetails-OCQEx-d3.js",
136
+ "file": "PermissionConfigurationDetails-Bwco6hKZ.js",
137
137
  "name": "PermissionConfigurationDetails",
138
138
  "src": "src/permissions-configuration/permission-configuration/PermissionConfigurationDetails.tsx",
139
139
  "isDynamicEntry": true,
140
140
  "imports": [
141
- "_index-DyTQe_VT.js",
142
- "_ScopePicker-BB_n0zxI.js"
141
+ "_index-BJjrj_46.js",
142
+ "_ScopePicker-BDsWRUuT.js"
143
143
  ]
144
144
  },
145
145
  "src/realm-settings/ExecutorForm.tsx": {
146
- "file": "ExecutorForm-BccZ7QZF.js",
146
+ "file": "ExecutorForm-DmyRhlqZ.js",
147
147
  "name": "ExecutorForm",
148
148
  "src": "src/realm-settings/ExecutorForm.tsx",
149
149
  "isDynamicEntry": true,
150
150
  "imports": [
151
- "_index-DyTQe_VT.js"
151
+ "_index-BJjrj_46.js"
152
152
  ]
153
153
  },
154
154
  "src/realm/RealmSection.tsx": {
155
- "file": "RealmSection-CxxB3s3W.js",
155
+ "file": "RealmSection-DpXO9tuN.js",
156
156
  "name": "RealmSection",
157
157
  "src": "src/realm/RealmSection.tsx",
158
158
  "isDynamicEntry": true,
159
159
  "imports": [
160
- "_index-DyTQe_VT.js"
160
+ "_index-BJjrj_46.js"
161
161
  ]
162
162
  },
163
163
  "src/workflows/CreateWorkflow.tsx": {
164
- "file": "CreateWorkflow-ua79h89c.js",
164
+ "file": "CreateWorkflow-Byof_3MH.js",
165
165
  "name": "CreateWorkflow",
166
166
  "src": "src/workflows/CreateWorkflow.tsx",
167
167
  "isDynamicEntry": true,
168
168
  "imports": [
169
- "_index-DyTQe_VT.js"
169
+ "_index-BJjrj_46.js"
170
170
  ]
171
171
  },
172
172
  "src/workflows/WorkflowsSection.tsx": {
173
- "file": "WorkflowsSection-DbR36xIx.js",
173
+ "file": "WorkflowsSection-BHj1MVBb.js",
174
174
  "name": "WorkflowsSection",
175
175
  "src": "src/workflows/WorkflowsSection.tsx",
176
176
  "isDynamicEntry": true,
177
177
  "imports": [
178
- "_index-DyTQe_VT.js"
178
+ "_index-BJjrj_46.js"
179
179
  ]
180
180
  },
181
181
  "style.css": {
@@ -1,5 +1,5 @@
1
1
  import { jsxs as i, Fragment as y, jsx as e } from "react/jsx-runtime";
2
- import { u as h, b as p, _ as g, a as P, V as f, P as A, F as I, c as S, bA as C, A as F, B as o, by as K, d as V, bz as k } from "./index-DyTQe_VT.js";
2
+ import { u as h, b as p, _ as g, a as P, V as f, P as A, F as I, c as S, bA as C, A as F, B as o, by as K, d as V, bz as k } from "./index-BJjrj_46.js";
3
3
  import { useTranslation as w } from "react-i18next";
4
4
  import { useNavigate as x, Link as E } from "react-router-dom";
5
5
  function _() {
@@ -62,4 +62,4 @@ function _() {
62
62
  export {
63
63
  _ as default
64
64
  };
65
- //# sourceMappingURL=AddKubernetesConnect-CLVPWkrb.js.map
65
+ //# sourceMappingURL=AddKubernetesConnect-lcf2Q5sz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddKubernetesConnect-CLVPWkrb.js","sources":["../src/identity-providers/add/AddKubernetesConnect.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 { KubernetesSettings } from \"./KubernetesSettings\";\n\ntype DiscoveryIdentityProvider = IdentityProviderRepresentation & {\n discoveryEndpoint?: string;\n};\n\nexport default function AddKubernetesConnect() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = \"kubernetes\";\n\n const form = useForm<DiscoveryIdentityProvider>({\n defaultValues: { alias: id, config: { allowCreate: \"true\" } },\n mode: \"onChange\",\n });\n const { handleSubmit } = form;\n\n const { addAlert, addError } = useAlerts();\n const { realm } = useRealm();\n\n const onSubmit = async (provider: DiscoveryIdentityProvider) => {\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: any) {\n addError(\"createIdentityProviderError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey={t(\"addKubernetesProvider\")} />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <KubernetesSettings />\n <ActionGroup>\n <Button\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":["AddKubernetesConnect","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","id","form","useForm","handleSubmit","addAlert","addError","useAlerts","realm","useRealm","onSubmit","provider","AlertVariant","toIdentityProvider","error","jsxs","Fragment","jsx","ViewHeader","PageSection","FormProvider","FormAccess","KubernetesSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AAuBA,SAAwBA,IAAuB;AAC7C,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACXC,IAAK,cAELC,IAAOC,EAAmC;AAAA,IAC9C,eAAe,EAAE,OAAOF,GAAI,QAAQ,EAAE,aAAa,SAAO;AAAA,IAC1D,MAAM;AAAA,EAAA,CACP,GACK,EAAE,cAAAG,MAAiBF,GAEnB,EAAE,UAAAG,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAW,OAAOC,MAAwC;AAC9D,WAAOA,EAAS;AAChB,QAAI;AACF,YAAMhB,EAAY,kBAAkB,OAAO;AAAA,QACzC,GAAGgB;AAAA,QACH,YAAYV;AAAA,MAAA,CACb,GACDI,EAASR,EAAE,+BAA+B,GAAGe,EAAa,OAAO,GACjEb;AAAA,QACEc,EAAmB;AAAA,UACjB,OAAAL;AAAA,UACA,YAAYP;AAAA,UACZ,OAAOU,EAAS;AAAA,UAChB,KAAK;AAAA,QAAA,CACN;AAAA,MAAA;AAAA,IAEL,SAASG,GAAY;AACnB,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,UAAUrB,EAAE,uBAAuB,EAAA,CAAG;AAAA,sBACjDsB,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAF,EAACG,GAAA,EAAc,GAAGlB,GAChB,UAAA,gBAAAa;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY;AAAA,QACZ,UAAUjB,EAAaM,CAAQ;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAO,EAACK,GAAA,EAAmB;AAAA,4BACnBC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAP;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAAR,EAACS,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAoB,EAAE,OAAAnB,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
+ {"version":3,"file":"AddKubernetesConnect-lcf2Q5sz.js","sources":["../src/identity-providers/add/AddKubernetesConnect.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 { KubernetesSettings } from \"./KubernetesSettings\";\n\ntype DiscoveryIdentityProvider = IdentityProviderRepresentation & {\n discoveryEndpoint?: string;\n};\n\nexport default function AddKubernetesConnect() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = \"kubernetes\";\n\n const form = useForm<DiscoveryIdentityProvider>({\n defaultValues: { alias: id, config: { allowCreate: \"true\" } },\n mode: \"onChange\",\n });\n const { handleSubmit } = form;\n\n const { addAlert, addError } = useAlerts();\n const { realm } = useRealm();\n\n const onSubmit = async (provider: DiscoveryIdentityProvider) => {\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: any) {\n addError(\"createIdentityProviderError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey={t(\"addKubernetesProvider\")} />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <KubernetesSettings />\n <ActionGroup>\n <Button\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":["AddKubernetesConnect","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","id","form","useForm","handleSubmit","addAlert","addError","useAlerts","realm","useRealm","onSubmit","provider","AlertVariant","toIdentityProvider","error","jsxs","Fragment","jsx","ViewHeader","PageSection","FormProvider","FormAccess","KubernetesSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AAuBA,SAAwBA,IAAuB;AAC7C,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACXC,IAAK,cAELC,IAAOC,EAAmC;AAAA,IAC9C,eAAe,EAAE,OAAOF,GAAI,QAAQ,EAAE,aAAa,SAAO;AAAA,IAC1D,MAAM;AAAA,EAAA,CACP,GACK,EAAE,cAAAG,MAAiBF,GAEnB,EAAE,UAAAG,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAW,OAAOC,MAAwC;AAC9D,WAAOA,EAAS;AAChB,QAAI;AACF,YAAMhB,EAAY,kBAAkB,OAAO;AAAA,QACzC,GAAGgB;AAAA,QACH,YAAYV;AAAA,MAAA,CACb,GACDI,EAASR,EAAE,+BAA+B,GAAGe,EAAa,OAAO,GACjEb;AAAA,QACEc,EAAmB;AAAA,UACjB,OAAAL;AAAA,UACA,YAAYP;AAAA,UACZ,OAAOU,EAAS;AAAA,UAChB,KAAK;AAAA,QAAA,CACN;AAAA,MAAA;AAAA,IAEL,SAASG,GAAY;AACnB,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAW,UAAUrB,EAAE,uBAAuB,EAAA,CAAG;AAAA,sBACjDsB,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAF,EAACG,GAAA,EAAc,GAAGlB,GAChB,UAAA,gBAAAa;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY;AAAA,QACZ,UAAUjB,EAAaM,CAAQ;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAO,EAACK,GAAA,EAAmB;AAAA,4BACnBC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAP;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAAR,EAACS,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAoB,EAAE,OAAAnB,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 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 C, F as A, c as S, bB as D, bC as O, bD as F, bE as E, A as V, B as o, by as x, d as B, bz as j } from "./index-DyTQe_VT.js";
2
+ import { u as p, b as f, _ as g, a as I, V as P, P as C, F as A, c as S, bB as D, bC as O, bD as F, bE as E, A as V, B as o, by as x, d as B, bz as j } from "./index-BJjrj_46.js";
3
3
  import { useTranslation as k } from "react-i18next";
4
4
  import { useNavigate as w, Link as z } from "react-router-dom";
5
5
  function L() {
@@ -69,4 +69,4 @@ function L() {
69
69
  export {
70
70
  L as default
71
71
  };
72
- //# sourceMappingURL=AddOAuth2-CC0H-fVr.js.map
72
+ //# sourceMappingURL=AddOAuth2-DdjhQNq5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddOAuth2-CC0H-fVr.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,IAEL,SAASG,GAAO;AACd,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,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
+ {"version":3,"file":"AddOAuth2-DdjhQNq5.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,IAEL,SAASG,GAAO;AACd,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,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 i, Fragment as y, jsx as e } from "react/jsx-runtime";
2
- import { u as h, b, _ as g, a as P, V as S, P as A, F as I, c as C, bx as F, A as x, B as o, by as V, d as w, bz as E } from "./index-DyTQe_VT.js";
2
+ import { u as h, b, _ as g, a as P, V as S, P as A, F as I, c as C, bx as F, A as x, B as o, by as V, d as w, bz as E } from "./index-BJjrj_46.js";
3
3
  import { useTranslation as j } from "react-i18next";
4
4
  import { useNavigate as k, Link as z } from "react-router-dom";
5
5
  function G() {
@@ -66,4 +66,4 @@ function G() {
66
66
  export {
67
67
  G as default
68
68
  };
69
- //# sourceMappingURL=AddSpiffeConnect-Dji06y_O.js.map
69
+ //# sourceMappingURL=AddSpiffeConnect-B-aJOWqr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSpiffeConnect-Dji06y_O.js","sources":["../src/identity-providers/add/AddSpiffeConnect.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 { SpiffeSettings } from \"./SpiffeSettings\";\n\ntype DiscoveryIdentityProvider = IdentityProviderRepresentation & {\n discoveryEndpoint?: string;\n};\n\nexport default function AddSamlConnect() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = \"spiffe\";\n\n const form = useForm<DiscoveryIdentityProvider>({\n defaultValues: { alias: id, config: { allowCreate: \"true\" } },\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: DiscoveryIdentityProvider) => {\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: any) {\n addError(\"createIdentityProviderError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey={t(\"addSpiffeProvider\")} />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <SpiffeSettings />\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":["AddSamlConnect","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","SpiffeSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AAuBA,SAAwBA,IAAiB;AACvC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACXC,IAAK,UAELC,IAAOC,EAAmC;AAAA,IAC9C,eAAe,EAAE,OAAOF,GAAI,QAAQ,EAAE,aAAa,SAAO;AAAA,IAC1D,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,MAAwC;AAC9D,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,IAEL,SAASG,GAAY;AACnB,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,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,EAAe;AAAA,4BACfC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,YAAY,CAACpB;AAAA,gBACb,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAa;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAAR,EAACS,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAoB,EAAE,OAAAnB,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
+ {"version":3,"file":"AddSpiffeConnect-B-aJOWqr.js","sources":["../src/identity-providers/add/AddSpiffeConnect.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 { SpiffeSettings } from \"./SpiffeSettings\";\n\ntype DiscoveryIdentityProvider = IdentityProviderRepresentation & {\n discoveryEndpoint?: string;\n};\n\nexport default function AddSamlConnect() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = \"spiffe\";\n\n const form = useForm<DiscoveryIdentityProvider>({\n defaultValues: { alias: id, config: { allowCreate: \"true\" } },\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: DiscoveryIdentityProvider) => {\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: any) {\n addError(\"createIdentityProviderError\", error);\n }\n };\n\n return (\n <>\n <ViewHeader titleKey={t(\"addSpiffeProvider\")} />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <SpiffeSettings />\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":["AddSamlConnect","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","SpiffeSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AAuBA,SAAwBA,IAAiB;AACvC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACXC,IAAK,UAELC,IAAOC,EAAmC;AAAA,IAC9C,eAAe,EAAE,OAAOF,GAAI,QAAQ,EAAE,aAAa,SAAO;AAAA,IAC1D,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,MAAwC;AAC9D,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,IAEL,SAASG,GAAY;AACnB,MAAAR,EAAS,+BAA+BQ,CAAK;AAAA,IAC/C;AAAA,EACF;AAEA,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,EAAe;AAAA,4BACfC,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAN;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,YAAY,CAACpB;AAAA,gBACb,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,eAAY;AAAA,gBAEX,YAAE,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEV,gBAAAa;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,eAAY;AAAA,gBACZ,WAAW,CAACC,MACV,gBAAAR,EAACS,GAAA,EAAM,GAAGD,GAAO,IAAIE,EAAoB,EAAE,OAAAnB,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, _ as b, b as v, V as y, P as g, F as S, c as A, N as C, U as I, A as T, e as H, B as N, t as P, d as i, f as V } from "./index-DyTQe_VT.js";
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, U as I, A as T, e as H, B as N, t as P, d as i, f as V } from "./index-BJjrj_46.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"];
@@ -77,4 +77,4 @@ function E() {
77
77
  export {
78
78
  E as default
79
79
  };
80
- //# sourceMappingURL=CreateFlow-Cz-lg73m.js.map
80
+ //# sourceMappingURL=CreateFlow-aeLBQICc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateFlow-Cz-lg73m.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,UAEL,SAASG,GAAY;AACnB,YAAAlB;AAAA,cACEN,EAAE,mBAAmB;AAAA,gBACnB,OAAOwB,EAAM,UAAU,MAAM,gBAAgBA;AAAA,cAAA,CAC9C;AAAA,cACDF,EAAa;AAAA,YAAA;AAAA,UAEjB;AAAA,QACF,CAUyC;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
+ {"version":3,"file":"CreateFlow-aeLBQICc.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,UAEL,SAASG,GAAY;AACnB,YAAAlB;AAAA,cACEN,EAAE,mBAAmB;AAAA,gBACnB,OAAOwB,EAAM,UAAU,MAAM,gBAAgBA;AAAA,cAAA,CAC9C;AAAA,cACDF,EAAa;AAAA,YAAA;AAAA,UAEjB;AAAA,QACF,CAUyC;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,6 +1,6 @@
1
1
  import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
2
  import { useState as k } from "react";
3
- import { u as S, b as p, a as g, _ as v, F as N, P as b, c as C, au as J, al as A, bF as O, a7 as F, A as j, e as x, B as y, bG as s, d as E } from "./index-DyTQe_VT.js";
3
+ import { u as S, b as p, a as g, _ as v, F as N, P as b, c as C, au as J, al as A, bF as O, a7 as F, A as j, e as x, B as y, bG as s, d as E } from "./index-BJjrj_46.js";
4
4
  import { useTranslation as G } from "react-i18next";
5
5
  import { useNavigate as I, Link as q } from "react-router-dom";
6
6
  function T() {
@@ -83,4 +83,4 @@ function T() {
83
83
  export {
84
84
  T as default
85
85
  };
86
- //# sourceMappingURL=CreateWorkflow-ua79h89c.js.map
86
+ //# sourceMappingURL=CreateWorkflow-Byof_3MH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateWorkflow-ua79h89c.js","sources":["../src/workflows/CreateWorkflow.tsx"],"sourcesContent":["import {\n ActionGroup,\n Button,\n FormGroup,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { AlertVariant } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport {\n Controller,\n FormProvider,\n SubmitHandler,\n useForm,\n} from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport {\n HelpItem,\n FormSubmitButton,\n useAlerts,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { toWorkflows } from \"./routes/Workflows\";\nimport CodeEditor from \"../components/form/CodeEditor\";\n\ntype AttributeForm = {\n workflowJSON?: string;\n [key: string]: any;\n};\n\nexport default function CreateWorkflow() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const form = useForm<AttributeForm>({ mode: \"onChange\" });\n const { control, handleSubmit } = form;\n const navigate = useNavigate();\n const { realm } = useRealm();\n const { addAlert, addError } = useAlerts();\n const [workflowJSON, setWorkflowJSON] = useState(\"\");\n\n const onSubmit: SubmitHandler<AttributeForm> = async () => {\n try {\n const json = JSON.parse(workflowJSON);\n if (!json.name) {\n throw new Error(t(\"workflowNameRequired\"));\n }\n\n const payload = {\n realm,\n ...json,\n };\n await adminClient.workflows.create(payload);\n\n addAlert(t(\"workflowCreated\"), AlertVariant.success);\n navigate(toWorkflows({ realm }));\n } catch (error) {\n addError(\"workflowCreateError\", error);\n }\n };\n\n return (\n <FormProvider {...form}>\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n role={\"manage-realm\"}\n className=\"pf-v5-u-mt-lg\"\n fineGrainedAccess={true} // TODO: Set this properly\n >\n <FormGroup\n label={t(\"workflowJSON\")}\n labelIcon={\n <HelpItem helpText={t(\"workflowJsonHelp\")} fieldLabelId=\"code\" />\n }\n fieldId=\"code\"\n isRequired\n >\n <Controller\n name=\"workflowJSON\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <CodeEditor\n id=\"workflowJSON\"\n data-testid=\"workflowJSON\"\n value={field.value}\n onChange={(value) => setWorkflowJSON(value ?? \"\")}\n language=\"json\"\n height={600}\n />\n )}\n />\n </FormGroup>\n <ActionGroup>\n <FormSubmitButton\n formState={form.formState}\n data-testid=\"save\"\n allowInvalid\n allowNonDirty\n >\n {t(\"save\")}\n </FormSubmitButton>\n <Button\n data-testid=\"cancel\"\n variant=\"link\"\n component={(props) => (\n <Link {...props} to={toWorkflows({ realm })} />\n )}\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </PageSection>\n </FormProvider>\n );\n}\n"],"names":["CreateWorkflow","adminClient","useAdminClient","t","useTranslation","form","useForm","control","handleSubmit","navigate","useNavigate","realm","useRealm","addAlert","addError","useAlerts","workflowJSON","setWorkflowJSON","useState","FormProvider","jsx","PageSection","jsxs","FormAccess","json","payload","AlertVariant","toWorkflows","error","FormGroup","HelpItem","Controller","field","CodeEditor","value","ActionGroup","FormSubmitButton","Button","props","Link"],"mappings":";;;;;AAgCA,SAAwBA,IAAiB;AACvC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAOC,EAAuB,EAAE,MAAM,YAAY,GAClD,EAAE,SAAAC,GAAS,cAAAC,EAAA,IAAiBH,GAC5BI,IAAWC,EAAA,GACX,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAE;AAsBnD,2BACGC,GAAA,EAAc,GAAGd,GAChB,UAAA,gBAAAe,EAACC,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAY;AAAA,MACZ,UAAUf,EAzB6B,YAAY;AACzD,YAAI;AACF,gBAAMgB,IAAO,KAAK,MAAMR,CAAY;AACpC,cAAI,CAACQ,EAAK;AACR,kBAAM,IAAI,MAAMrB,EAAE,sBAAsB,CAAC;AAG3C,gBAAMsB,IAAU;AAAA,YACd,OAAAd;AAAA,YACA,GAAGa;AAAA,UAAA;AAEL,gBAAMvB,EAAY,UAAU,OAAOwB,CAAO,GAE1CZ,EAASV,EAAE,iBAAiB,GAAGuB,EAAa,OAAO,GACnDjB,EAASkB,EAAY,EAAE,OAAAhB,EAAA,CAAO,CAAC;AAAA,QACjC,SAASiB,GAAO;AACd,UAAAd,EAAS,uBAAuBc,CAAK;AAAA,QACvC;AAAA,MACF,CAOuC;AAAA,MAC/B,MAAM;AAAA,MACN,WAAU;AAAA,MACV,mBAAmB;AAAA,MAEnB,UAAA;AAAA,QAAA,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAO1B,EAAE,cAAc;AAAA,YACvB,6BACG2B,GAAA,EAAS,UAAU3B,EAAE,kBAAkB,GAAG,cAAa,QAAO;AAAA,YAEjE,SAAQ;AAAA,YACR,YAAU;AAAA,YAEV,UAAA,gBAAAiB;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,cAAa;AAAA,gBACb,SAAAxB;AAAA,gBACA,QAAQ,CAAC,EAAE,OAAAyB,EAAA,MACT,gBAAAZ;AAAA,kBAACa;AAAA,kBAAA;AAAA,oBACC,IAAG;AAAA,oBACH,eAAY;AAAA,oBACZ,OAAOD,EAAM;AAAA,oBACb,UAAU,CAACE,MAAUjB,EAAgBiB,KAAS,EAAE;AAAA,oBAChD,UAAS;AAAA,oBACT,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACV;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAAA,0BAEDC,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAf;AAAA,YAACgB;AAAAA,YAAA;AAAA,cACC,WAAW/B,EAAK;AAAA,cAChB,eAAY;AAAA,cACZ,cAAY;AAAA,cACZ,eAAa;AAAA,cAEZ,YAAE,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAEX,gBAAAe;AAAA,YAACiB;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,SAAQ;AAAA,cACR,WAAW,CAACC,MACV,gBAAAlB,EAACmB,GAAA,EAAM,GAAGD,GAAO,IAAIX,EAAY,EAAE,OAAAhB,EAAA,CAAO,EAAA,CAAG;AAAA,cAG9C,YAAE,QAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QACb,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEJ,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"CreateWorkflow-Byof_3MH.js","sources":["../src/workflows/CreateWorkflow.tsx"],"sourcesContent":["import {\n ActionGroup,\n Button,\n FormGroup,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { AlertVariant } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport {\n Controller,\n FormProvider,\n SubmitHandler,\n useForm,\n} from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport {\n HelpItem,\n FormSubmitButton,\n useAlerts,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { toWorkflows } from \"./routes/Workflows\";\nimport CodeEditor from \"../components/form/CodeEditor\";\n\ntype AttributeForm = {\n workflowJSON?: string;\n [key: string]: any;\n};\n\nexport default function CreateWorkflow() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const form = useForm<AttributeForm>({ mode: \"onChange\" });\n const { control, handleSubmit } = form;\n const navigate = useNavigate();\n const { realm } = useRealm();\n const { addAlert, addError } = useAlerts();\n const [workflowJSON, setWorkflowJSON] = useState(\"\");\n\n const onSubmit: SubmitHandler<AttributeForm> = async () => {\n try {\n const json = JSON.parse(workflowJSON);\n if (!json.name) {\n throw new Error(t(\"workflowNameRequired\"));\n }\n\n const payload = {\n realm,\n ...json,\n };\n await adminClient.workflows.create(payload);\n\n addAlert(t(\"workflowCreated\"), AlertVariant.success);\n navigate(toWorkflows({ realm }));\n } catch (error) {\n addError(\"workflowCreateError\", error);\n }\n };\n\n return (\n <FormProvider {...form}>\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n role={\"manage-realm\"}\n className=\"pf-v5-u-mt-lg\"\n fineGrainedAccess={true} // TODO: Set this properly\n >\n <FormGroup\n label={t(\"workflowJSON\")}\n labelIcon={\n <HelpItem helpText={t(\"workflowJsonHelp\")} fieldLabelId=\"code\" />\n }\n fieldId=\"code\"\n isRequired\n >\n <Controller\n name=\"workflowJSON\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <CodeEditor\n id=\"workflowJSON\"\n data-testid=\"workflowJSON\"\n value={field.value}\n onChange={(value) => setWorkflowJSON(value ?? \"\")}\n language=\"json\"\n height={600}\n />\n )}\n />\n </FormGroup>\n <ActionGroup>\n <FormSubmitButton\n formState={form.formState}\n data-testid=\"save\"\n allowInvalid\n allowNonDirty\n >\n {t(\"save\")}\n </FormSubmitButton>\n <Button\n data-testid=\"cancel\"\n variant=\"link\"\n component={(props) => (\n <Link {...props} to={toWorkflows({ realm })} />\n )}\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n </FormAccess>\n </PageSection>\n </FormProvider>\n );\n}\n"],"names":["CreateWorkflow","adminClient","useAdminClient","t","useTranslation","form","useForm","control","handleSubmit","navigate","useNavigate","realm","useRealm","addAlert","addError","useAlerts","workflowJSON","setWorkflowJSON","useState","FormProvider","jsx","PageSection","jsxs","FormAccess","json","payload","AlertVariant","toWorkflows","error","FormGroup","HelpItem","Controller","field","CodeEditor","value","ActionGroup","FormSubmitButton","Button","props","Link"],"mappings":";;;;;AAgCA,SAAwBA,IAAiB;AACvC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAOC,EAAuB,EAAE,MAAM,YAAY,GAClD,EAAE,SAAAC,GAAS,cAAAC,EAAA,IAAiBH,GAC5BI,IAAWC,EAAA,GACX,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAE;AAsBnD,2BACGC,GAAA,EAAc,GAAGd,GAChB,UAAA,gBAAAe,EAACC,GAAA,EAAY,SAAQ,SACnB,UAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAY;AAAA,MACZ,UAAUf,EAzB6B,YAAY;AACzD,YAAI;AACF,gBAAMgB,IAAO,KAAK,MAAMR,CAAY;AACpC,cAAI,CAACQ,EAAK;AACR,kBAAM,IAAI,MAAMrB,EAAE,sBAAsB,CAAC;AAG3C,gBAAMsB,IAAU;AAAA,YACd,OAAAd;AAAA,YACA,GAAGa;AAAA,UAAA;AAEL,gBAAMvB,EAAY,UAAU,OAAOwB,CAAO,GAE1CZ,EAASV,EAAE,iBAAiB,GAAGuB,EAAa,OAAO,GACnDjB,EAASkB,EAAY,EAAE,OAAAhB,EAAA,CAAO,CAAC;AAAA,QACjC,SAASiB,GAAO;AACd,UAAAd,EAAS,uBAAuBc,CAAK;AAAA,QACvC;AAAA,MACF,CAOuC;AAAA,MAC/B,MAAM;AAAA,MACN,WAAU;AAAA,MACV,mBAAmB;AAAA,MAEnB,UAAA;AAAA,QAAA,gBAAAR;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAO1B,EAAE,cAAc;AAAA,YACvB,6BACG2B,GAAA,EAAS,UAAU3B,EAAE,kBAAkB,GAAG,cAAa,QAAO;AAAA,YAEjE,SAAQ;AAAA,YACR,YAAU;AAAA,YAEV,UAAA,gBAAAiB;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,cAAa;AAAA,gBACb,SAAAxB;AAAA,gBACA,QAAQ,CAAC,EAAE,OAAAyB,EAAA,MACT,gBAAAZ;AAAA,kBAACa;AAAA,kBAAA;AAAA,oBACC,IAAG;AAAA,oBACH,eAAY;AAAA,oBACZ,OAAOD,EAAM;AAAA,oBACb,UAAU,CAACE,MAAUjB,EAAgBiB,KAAS,EAAE;AAAA,oBAChD,UAAS;AAAA,oBACT,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACV;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAAA,0BAEDC,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAf;AAAA,YAACgB;AAAAA,YAAA;AAAA,cACC,WAAW/B,EAAK;AAAA,cAChB,eAAY;AAAA,cACZ,cAAY;AAAA,cACZ,eAAa;AAAA,cAEZ,YAAE,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAEX,gBAAAe;AAAA,YAACiB;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,SAAQ;AAAA,cACR,WAAW,CAACC,MACV,gBAAAlB,EAACmB,GAAA,EAAM,GAAGD,GAAO,IAAIX,EAAY,EAAE,OAAAhB,EAAA,CAAO,EAAA,CAAG;AAAA,cAG9C,YAAE,QAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QACb,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEJ,EAAA,CACF;AAEJ;"}
@@ -1,5 +1,5 @@
1
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-DyTQe_VT.js";
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-BJjrj_46.js";
3
3
  import { useTranslation as U } from "react-i18next";
4
4
  import { useState as W } from "react";
5
5
  function te() {
@@ -161,4 +161,4 @@ function te() {
161
161
  export {
162
162
  te as default
163
163
  };
164
- //# sourceMappingURL=DetailOrganization-Ysk1nTgF.js.map
164
+ //# sourceMappingURL=DetailOrganization-BJrxolcZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailOrganization-Ysk1nTgF.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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"}
1
+ {"version":3,"file":"DetailOrganization-BJrxolcZ.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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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as u, Fragment as M, jsx as o } from "react/jsx-runtime";
2
- import { u as R, ao as k, _ as J, b7 as Q, b as U, y as W, V as X, P as Y, c as Z, au as $, al as ee, am as te, an as oe, a4 as re, a7 as V, F as ae, a0 as ce, A as se, B as g, b8 as h, d as ne } from "./index-DyTQe_VT.js";
2
+ import { u as R, ao as k, _ as J, b7 as Q, b as U, y as W, V as X, P as Y, c as Z, au as $, al as ee, am as te, an as oe, a4 as re, a7 as V, F as ae, a0 as ce, A as se, B as g, b8 as h, d as ne } from "./index-BJjrj_46.js";
3
3
  import { useState as l } from "react";
4
4
  import { useTranslation as ie } from "react-i18next";
5
5
  import { useNavigate as le, Link as F } from "react-router-dom";
@@ -196,4 +196,4 @@ function ge() {
196
196
  export {
197
197
  ge as default
198
198
  };
199
- //# sourceMappingURL=ExecutorForm-BccZ7QZF.js.map
199
+ //# sourceMappingURL=ExecutorForm-DmyRhlqZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorForm-BccZ7QZF.js","sources":["../src/realm-settings/ExecutorForm.tsx"],"sourcesContent":["import type { ConfigPropertyRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation\";\nimport type ClientProfileRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientProfileRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport {\n HelpItem,\n KeycloakSelect,\n SelectVariant,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n FormGroup,\n PageSection,\n SelectOption,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport { DynamicComponents } from \"../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useParams } from \"../utils/useParams\";\nimport { ClientProfileParams, toClientProfile } from \"./routes/ClientProfile\";\nimport type { ExecutorParams } from \"./routes/Executor\";\n\ntype ExecutorForm = {\n config?: object;\n executor: string;\n};\n\nconst defaultValues: ExecutorForm = {\n config: {},\n executor: \"\",\n};\n\nexport default function ExecutorForm() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm, profileName } = useParams<ClientProfileParams>();\n const { executorName } = useParams<ExecutorParams>();\n const { addAlert, addError } = useAlerts();\n const [selectExecutorTypeOpen, setSelectExecutorTypeOpen] = useState(false);\n const serverInfo = useServerInfo();\n const executorTypes =\n serverInfo.componentTypes?.[\n \"org.keycloak.services.clientpolicy.executor.ClientPolicyExecutorProvider\"\n ];\n const [executors, setExecutors] = useState<ComponentTypeRepresentation[]>([]);\n const [executorProperties, setExecutorProperties] = useState<\n ConfigPropertyRepresentation[]\n >([]);\n const [globalProfiles, setGlobalProfiles] = useState<\n ClientProfileRepresentation[]\n >([]);\n const [profiles, setProfiles] = useState<ClientProfileRepresentation[]>([]);\n const form = useForm({ defaultValues });\n const { control, reset, handleSubmit } = form;\n const editMode = !!executorName;\n\n const setupForm = (profiles: ClientProfileRepresentation[]) => {\n const profile = profiles.find((profile) => profile.name === profileName);\n const executor = profile?.executors?.find(\n (executor) => executor.executor === executorName,\n );\n if (executor) reset({ config: executor.configuration });\n };\n\n useFetch(\n () =>\n adminClient.clientPolicies.listProfiles({ includeGlobalProfiles: true }),\n (profiles) => {\n setGlobalProfiles(profiles.globalProfiles!);\n setProfiles(profiles.profiles!);\n\n setupForm(profiles.profiles!);\n setupForm(profiles.globalProfiles!);\n },\n [],\n );\n\n const save = async () => {\n const formValues = form.getValues();\n const updatedProfiles = profiles.map((profile) => {\n if (profile.name !== profileName) {\n return profile;\n }\n\n const executors = (profile.executors ?? []).concat({\n executor: formValues.executor,\n configuration: formValues.config || {},\n });\n\n if (editMode) {\n const profileExecutor = profile.executors!.find(\n (executor) => executor.executor === executorName,\n );\n profileExecutor!.configuration = {\n ...profileExecutor!.configuration,\n ...formValues.config,\n };\n }\n\n if (editMode) {\n return profile;\n }\n return {\n ...profile,\n executors,\n };\n });\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: updatedProfiles,\n globalProfiles: globalProfiles,\n });\n addAlert(\n editMode ? t(\"updateExecutorSuccess\") : t(\"addExecutorSuccess\"),\n AlertVariant.success,\n );\n\n navigate(toClientProfile({ realm, profileName }));\n } catch (error) {\n addError(editMode ? \"updateExecutorError\" : \"addExecutorError\", error);\n }\n };\n\n const globalProfile = globalProfiles.find(\n (globalProfile) => globalProfile.name === profileName,\n );\n\n const profileExecutorType = executorTypes?.find(\n (executor) => executor.id === executorName,\n );\n\n const editedProfileExecutors =\n profileExecutorType?.properties.map<ConfigPropertyRepresentation>(\n (property) => {\n const globalDefaultValues = editMode ? property.defaultValue : \"\";\n return {\n ...property,\n defaultValue: globalDefaultValues,\n };\n },\n );\n\n return (\n <>\n <ViewHeader\n titleKey={editMode ? executorName : t(\"addExecutor\")}\n divider\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-realm\"\n className=\"pf-v5-u-mt-lg\"\n isReadOnly={!!globalProfile}\n >\n <FormGroup\n label={t(\"executorType\")}\n fieldId=\"kc-executorType\"\n labelIcon={\n executors.length > 0 && executors[0].helpText! !== \"\" ? (\n <HelpItem\n helpText={executors[0].helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : editMode ? (\n <HelpItem\n helpText={profileExecutorType?.helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : undefined\n }\n >\n <Controller\n name=\"executor\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"kc-executor\"\n placeholderText=\"Select an executor\"\n onToggle={(isOpen) => setSelectExecutorTypeOpen(isOpen)}\n onSelect={(value) => {\n reset({ ...defaultValues, executor: value.toString() });\n const selectedExecutor = executorTypes?.filter(\n (type) => type.id === value,\n );\n setExecutors(selectedExecutor ?? []);\n setExecutorProperties(\n selectedExecutor?.[0].properties ?? [],\n );\n setSelectExecutorTypeOpen(false);\n }}\n selections={editMode ? executorName : field.value}\n variant={SelectVariant.single}\n data-testid=\"executorType-select\"\n aria-label={t(\"executorType\")}\n isOpen={selectExecutorTypeOpen}\n maxHeight={580}\n isDisabled={editMode}\n >\n {executorTypes?.map((option) => (\n <SelectOption\n data-testid={option.id}\n selected={option.id === field.value}\n key={option.id}\n value={option.id}\n description={option.helpText}\n >\n {option.id}\n </SelectOption>\n ))}\n </KeycloakSelect>\n )}\n />\n </FormGroup>\n <FormProvider {...form}>\n <DynamicComponents\n properties={\n editMode ? editedProfileExecutors! : executorProperties\n }\n />\n </FormProvider>\n {!globalProfile && (\n <ActionGroup>\n <Button\n variant=\"primary\"\n onClick={() => handleSubmit(save)()}\n data-testid=\"addExecutor-saveBtn\"\n >\n {editMode ? t(\"save\") : t(\"add\")}\n </Button>\n <Button\n variant=\"link\"\n component={(props) => (\n <Link\n {...props}\n to={toClientProfile({ realm, profileName })}\n />\n )}\n data-testid=\"addExecutor-cancelBtn\"\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n )}\n </FormAccess>\n {editMode && globalProfile && (\n <div className=\"kc-backToProfile\">\n <Button\n component={(props) => (\n <Link {...props} to={toClientProfile({ realm, profileName })} />\n )}\n variant=\"primary\"\n >\n {t(\"back\")}\n </Button>\n </div>\n )}\n </PageSection>\n </>\n );\n}\n"],"names":["defaultValues","ExecutorForm","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","realm","profileName","useParams","executorName","addAlert","addError","useAlerts","selectExecutorTypeOpen","setSelectExecutorTypeOpen","useState","executorTypes","useServerInfo","executors","setExecutors","executorProperties","setExecutorProperties","globalProfiles","setGlobalProfiles","profiles","setProfiles","form","useForm","control","reset","handleSubmit","editMode","setupForm","executor","profile","useFetch","save","formValues","updatedProfiles","profileExecutor","AlertVariant","toClientProfile","error","globalProfile","profileExecutorType","editedProfileExecutors","property","globalDefaultValues","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","FormGroup","HelpItem","Controller","field","KeycloakSelect","isOpen","value","selectedExecutor","type","SelectVariant","option","SelectOption","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":";;;;;AAoCA,MAAMA,IAA8B;AAAA,EAClC,QAAQ,CAAA;AAAA,EACR,UAAU;AACZ;AAEA,SAAwBC,KAAe;AACrC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACRC,IAAWC,GAAA,GACX,EAAE,OAAAC,GAAO,aAAAC,EAAA,IAAgBC,EAAA,GACzB,EAAE,cAAAC,EAAA,IAAiBD,EAAA,GACnB,EAAE,UAAAE,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IADaC,EAAA,EAEN,iBACT,0EACF,GACI,CAACC,GAAWC,CAAY,IAAIJ,EAAwC,CAAA,CAAE,GACtE,CAACK,GAAoBC,CAAqB,IAAIN,EAElD,CAAA,CAAE,GACE,CAACO,GAAgBC,CAAiB,IAAIR,EAE1C,CAAA,CAAE,GACE,CAACS,GAAUC,CAAW,IAAIV,EAAwC,CAAA,CAAE,GACpEW,IAAOC,EAAQ,EAAE,eAAA7B,GAAe,GAChC,EAAE,SAAA8B,GAAS,OAAAC,GAAO,cAAAC,EAAA,IAAiBJ,GACnCK,IAAW,CAAC,CAACtB,GAEbuB,IAAY,CAACR,MAA4C;AAE7D,UAAMS,IADUT,EAAS,KAAK,CAACU,MAAYA,EAAQ,SAAS3B,CAAW,GAC7C,WAAW;AAAA,MACnC,CAAC0B,MAAaA,EAAS,aAAaxB;AAAA,IAAA;AAEtC,IAAIwB,KAAUJ,EAAM,EAAE,QAAQI,EAAS,eAAe;AAAA,EACxD;AAEAE,EAAAA;AAAAA,IACE,MACEnC,EAAY,eAAe,aAAa,EAAE,uBAAuB,IAAM;AAAA,IACzE,CAACwB,MAAa;AACZ,MAAAD,EAAkBC,EAAS,cAAe,GAC1CC,EAAYD,EAAS,QAAS,GAE9BQ,EAAUR,EAAS,QAAS,GAC5BQ,EAAUR,EAAS,cAAe;AAAA,IACpC;AAAA,IACA,CAAA;AAAA,EAAC;AAGH,QAAMY,IAAO,YAAY;AACvB,UAAMC,IAAaX,EAAK,UAAA,GAClBY,IAAkBd,EAAS,IAAI,CAACU,MAAY;AAChD,UAAIA,EAAQ,SAAS3B;AACnB,eAAO2B;AAGT,YAAMhB,KAAagB,EAAQ,aAAa,CAAA,GAAI,OAAO;AAAA,QACjD,UAAUG,EAAW;AAAA,QACrB,eAAeA,EAAW,UAAU,CAAA;AAAA,MAAC,CACtC;AAED,UAAIN,GAAU;AACZ,cAAMQ,IAAkBL,EAAQ,UAAW;AAAA,UACzC,CAACD,MAAaA,EAAS,aAAaxB;AAAA,QAAA;AAEtC,QAAA8B,EAAiB,gBAAgB;AAAA,UAC/B,GAAGA,EAAiB;AAAA,UACpB,GAAGF,EAAW;AAAA,QAAA;AAAA,MAElB;AAEA,aAAIN,IACKG,IAEF;AAAA,QACL,GAAGA;AAAA,QACH,WAAAhB;AAAAA,MAAA;AAAA,IAEJ,CAAC;AACD,QAAI;AACF,YAAMlB,EAAY,eAAe,eAAe;AAAA,QAC9C,UAAUsC;AAAA,QACV,gBAAAhB;AAAA,MAAA,CACD,GACDZ;AAAA,QACaR,EAAX6B,IAAa,0BAA6B,oBAAN;AAAA,QACpCS,GAAa;AAAA,MAAA,GAGfpC,EAASqC,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,EAAA,CAAa,CAAC;AAAA,IAClD,SAASmC,GAAO;AACd,MAAA/B,EAASoB,IAAW,wBAAwB,oBAAoBW,CAAK;AAAA,IACvE;AAAA,EACF,GAEMC,IAAgBrB,EAAe;AAAA,IACnC,CAACqB,MAAkBA,EAAc,SAASpC;AAAA,EAAA,GAGtCqC,IAAsB5B,GAAe;AAAA,IACzC,CAACiB,MAAaA,EAAS,OAAOxB;AAAA,EAAA,GAG1BoC,IACJD,GAAqB,WAAW;AAAA,IAC9B,CAACE,MAAa;AACZ,YAAMC,IAAsBhB,IAAWe,EAAS,eAAe;AAC/D,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,cAAcC;AAAA,MAAA;AAAA,IAElB;AAAA,EAAA;AAGJ,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAUpB,IAAWtB,IAAeP,EAAE,aAAa;AAAA,QACnD,SAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAET,gBAAA8C,EAACI,GAAA,EAAY,SAAQ,SACnB,UAAA;AAAA,MAAA,gBAAAJ;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,WAAU;AAAA,UACV,YAAY,CAAC,CAACV;AAAA,UAEd,UAAA;AAAA,YAAA,gBAAAO;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,OAAOpD,EAAE,cAAc;AAAA,gBACvB,SAAQ;AAAA,gBACR,WACEgB,EAAU,SAAS,KAAKA,EAAU,CAAC,EAAE,aAAc,KACjD,gBAAAgC;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,UAAUrC,EAAU,CAAC,EAAE;AAAA,oBACvB,cAAa;AAAA,kBAAA;AAAA,gBAAA,IAEba,IACF,gBAAAmB;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,UAAUX,GAAqB;AAAA,oBAC/B,cAAa;AAAA,kBAAA;AAAA,gBAAA,IAEb;AAAA,gBAGN,UAAA,gBAAAM;AAAA,kBAACM;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,cAAa;AAAA,oBACb,SAAA5B;AAAA,oBACA,QAAQ,CAAC,EAAE,OAAA6B,EAAA,MACT,gBAAAP;AAAA,sBAACQ;AAAAA,sBAAA;AAAA,wBACC,UAAS;AAAA,wBACT,iBAAgB;AAAA,wBAChB,UAAU,CAACC,MAAW7C,EAA0B6C,CAAM;AAAA,wBACtD,UAAU,CAACC,MAAU;AACnB,0BAAA/B,EAAM,EAAE,GAAG/B,GAAe,UAAU8D,EAAM,SAAA,GAAY;AACtD,gCAAMC,IAAmB7C,GAAe;AAAA,4BACtC,CAAC8C,MAASA,EAAK,OAAOF;AAAA,0BAAA;AAExB,0BAAAzC,EAAa0C,KAAoB,EAAE,GACnCxC;AAAA,4BACEwC,IAAmB,CAAC,EAAE,cAAc,CAAA;AAAA,0BAAC,GAEvC/C,EAA0B,EAAK;AAAA,wBACjC;AAAA,wBACA,YAAYiB,IAAWtB,IAAegD,EAAM;AAAA,wBAC5C,SAASM,GAAc;AAAA,wBACvB,eAAY;AAAA,wBACZ,cAAY7D,EAAE,cAAc;AAAA,wBAC5B,QAAQW;AAAA,wBACR,WAAW;AAAA,wBACX,YAAYkB;AAAA,wBAEX,UAAAf,GAAe,IAAI,CAACgD,MACnB,gBAAAd;AAAA,0BAACe;AAAA,0BAAA;AAAA,4BACC,eAAaD,EAAO;AAAA,4BACpB,UAAUA,EAAO,OAAOP,EAAM;AAAA,4BAE9B,OAAOO,EAAO;AAAA,4BACd,aAAaA,EAAO;AAAA,4BAEnB,UAAAA,EAAO;AAAA,0BAAA;AAAA,0BAJHA,EAAO;AAAA,wBAAA,CAMf;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACH;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,YAEF,gBAAAd,EAACgB,IAAA,EAAc,GAAGxC,GAChB,UAAA,gBAAAwB;AAAA,cAACiB;AAAA,cAAA;AAAA,gBACC,YACEpC,IAAWc,IAA0BzB;AAAA,cAAA;AAAA,YAAA,GAG3C;AAAA,YACC,CAACuB,KACA,gBAAAK,EAACoB,IAAA,EACC,UAAA;AAAA,cAAA,gBAAAlB;AAAA,gBAACmB;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,SAAS,MAAMvC,EAAaM,CAAI,EAAA;AAAA,kBAChC,eAAY;AAAA,kBAEX,UAAWlC,EAAX6B,IAAa,SAAY,KAAN;AAAA,gBAAW;AAAA,cAAA;AAAA,cAEjC,gBAAAmB;AAAA,gBAACmB;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,WAAW,CAACC,MACV,gBAAApB;AAAA,oBAACqB;AAAA,oBAAA;AAAA,sBACE,GAAGD;AAAA,sBACJ,IAAI7B,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,GAAa;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAG9C,eAAY;AAAA,kBAEX,YAAE,QAAQ;AAAA,gBAAA;AAAA,cAAA;AAAA,YACb,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGHwB,KAAYY,KACX,gBAAAO,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA,gBAAAA;AAAA,QAACmB;AAAA,QAAA;AAAA,UACC,WAAW,CAACC,MACV,gBAAApB,EAACqB,GAAA,EAAM,GAAGD,GAAO,IAAI7B,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,EAAA,CAAa,EAAA,CAAG;AAAA,UAEhE,SAAQ;AAAA,UAEP,YAAE,MAAM;AAAA,QAAA;AAAA,MAAA,EACX,CACF;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"ExecutorForm-DmyRhlqZ.js","sources":["../src/realm-settings/ExecutorForm.tsx"],"sourcesContent":["import type { ConfigPropertyRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation\";\nimport type ClientProfileRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientProfileRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport {\n HelpItem,\n KeycloakSelect,\n SelectVariant,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n FormGroup,\n PageSection,\n SelectOption,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport { DynamicComponents } from \"../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useParams } from \"../utils/useParams\";\nimport { ClientProfileParams, toClientProfile } from \"./routes/ClientProfile\";\nimport type { ExecutorParams } from \"./routes/Executor\";\n\ntype ExecutorForm = {\n config?: object;\n executor: string;\n};\n\nconst defaultValues: ExecutorForm = {\n config: {},\n executor: \"\",\n};\n\nexport default function ExecutorForm() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm, profileName } = useParams<ClientProfileParams>();\n const { executorName } = useParams<ExecutorParams>();\n const { addAlert, addError } = useAlerts();\n const [selectExecutorTypeOpen, setSelectExecutorTypeOpen] = useState(false);\n const serverInfo = useServerInfo();\n const executorTypes =\n serverInfo.componentTypes?.[\n \"org.keycloak.services.clientpolicy.executor.ClientPolicyExecutorProvider\"\n ];\n const [executors, setExecutors] = useState<ComponentTypeRepresentation[]>([]);\n const [executorProperties, setExecutorProperties] = useState<\n ConfigPropertyRepresentation[]\n >([]);\n const [globalProfiles, setGlobalProfiles] = useState<\n ClientProfileRepresentation[]\n >([]);\n const [profiles, setProfiles] = useState<ClientProfileRepresentation[]>([]);\n const form = useForm({ defaultValues });\n const { control, reset, handleSubmit } = form;\n const editMode = !!executorName;\n\n const setupForm = (profiles: ClientProfileRepresentation[]) => {\n const profile = profiles.find((profile) => profile.name === profileName);\n const executor = profile?.executors?.find(\n (executor) => executor.executor === executorName,\n );\n if (executor) reset({ config: executor.configuration });\n };\n\n useFetch(\n () =>\n adminClient.clientPolicies.listProfiles({ includeGlobalProfiles: true }),\n (profiles) => {\n setGlobalProfiles(profiles.globalProfiles!);\n setProfiles(profiles.profiles!);\n\n setupForm(profiles.profiles!);\n setupForm(profiles.globalProfiles!);\n },\n [],\n );\n\n const save = async () => {\n const formValues = form.getValues();\n const updatedProfiles = profiles.map((profile) => {\n if (profile.name !== profileName) {\n return profile;\n }\n\n const executors = (profile.executors ?? []).concat({\n executor: formValues.executor,\n configuration: formValues.config || {},\n });\n\n if (editMode) {\n const profileExecutor = profile.executors!.find(\n (executor) => executor.executor === executorName,\n );\n profileExecutor!.configuration = {\n ...profileExecutor!.configuration,\n ...formValues.config,\n };\n }\n\n if (editMode) {\n return profile;\n }\n return {\n ...profile,\n executors,\n };\n });\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: updatedProfiles,\n globalProfiles: globalProfiles,\n });\n addAlert(\n editMode ? t(\"updateExecutorSuccess\") : t(\"addExecutorSuccess\"),\n AlertVariant.success,\n );\n\n navigate(toClientProfile({ realm, profileName }));\n } catch (error) {\n addError(editMode ? \"updateExecutorError\" : \"addExecutorError\", error);\n }\n };\n\n const globalProfile = globalProfiles.find(\n (globalProfile) => globalProfile.name === profileName,\n );\n\n const profileExecutorType = executorTypes?.find(\n (executor) => executor.id === executorName,\n );\n\n const editedProfileExecutors =\n profileExecutorType?.properties.map<ConfigPropertyRepresentation>(\n (property) => {\n const globalDefaultValues = editMode ? property.defaultValue : \"\";\n return {\n ...property,\n defaultValue: globalDefaultValues,\n };\n },\n );\n\n return (\n <>\n <ViewHeader\n titleKey={editMode ? executorName : t(\"addExecutor\")}\n divider\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-realm\"\n className=\"pf-v5-u-mt-lg\"\n isReadOnly={!!globalProfile}\n >\n <FormGroup\n label={t(\"executorType\")}\n fieldId=\"kc-executorType\"\n labelIcon={\n executors.length > 0 && executors[0].helpText! !== \"\" ? (\n <HelpItem\n helpText={executors[0].helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : editMode ? (\n <HelpItem\n helpText={profileExecutorType?.helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : undefined\n }\n >\n <Controller\n name=\"executor\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"kc-executor\"\n placeholderText=\"Select an executor\"\n onToggle={(isOpen) => setSelectExecutorTypeOpen(isOpen)}\n onSelect={(value) => {\n reset({ ...defaultValues, executor: value.toString() });\n const selectedExecutor = executorTypes?.filter(\n (type) => type.id === value,\n );\n setExecutors(selectedExecutor ?? []);\n setExecutorProperties(\n selectedExecutor?.[0].properties ?? [],\n );\n setSelectExecutorTypeOpen(false);\n }}\n selections={editMode ? executorName : field.value}\n variant={SelectVariant.single}\n data-testid=\"executorType-select\"\n aria-label={t(\"executorType\")}\n isOpen={selectExecutorTypeOpen}\n maxHeight={580}\n isDisabled={editMode}\n >\n {executorTypes?.map((option) => (\n <SelectOption\n data-testid={option.id}\n selected={option.id === field.value}\n key={option.id}\n value={option.id}\n description={option.helpText}\n >\n {option.id}\n </SelectOption>\n ))}\n </KeycloakSelect>\n )}\n />\n </FormGroup>\n <FormProvider {...form}>\n <DynamicComponents\n properties={\n editMode ? editedProfileExecutors! : executorProperties\n }\n />\n </FormProvider>\n {!globalProfile && (\n <ActionGroup>\n <Button\n variant=\"primary\"\n onClick={() => handleSubmit(save)()}\n data-testid=\"addExecutor-saveBtn\"\n >\n {editMode ? t(\"save\") : t(\"add\")}\n </Button>\n <Button\n variant=\"link\"\n component={(props) => (\n <Link\n {...props}\n to={toClientProfile({ realm, profileName })}\n />\n )}\n data-testid=\"addExecutor-cancelBtn\"\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n )}\n </FormAccess>\n {editMode && globalProfile && (\n <div className=\"kc-backToProfile\">\n <Button\n component={(props) => (\n <Link {...props} to={toClientProfile({ realm, profileName })} />\n )}\n variant=\"primary\"\n >\n {t(\"back\")}\n </Button>\n </div>\n )}\n </PageSection>\n </>\n );\n}\n"],"names":["defaultValues","ExecutorForm","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","realm","profileName","useParams","executorName","addAlert","addError","useAlerts","selectExecutorTypeOpen","setSelectExecutorTypeOpen","useState","executorTypes","useServerInfo","executors","setExecutors","executorProperties","setExecutorProperties","globalProfiles","setGlobalProfiles","profiles","setProfiles","form","useForm","control","reset","handleSubmit","editMode","setupForm","executor","profile","useFetch","save","formValues","updatedProfiles","profileExecutor","AlertVariant","toClientProfile","error","globalProfile","profileExecutorType","editedProfileExecutors","property","globalDefaultValues","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","FormGroup","HelpItem","Controller","field","KeycloakSelect","isOpen","value","selectedExecutor","type","SelectVariant","option","SelectOption","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":"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"}