@keycloak/keycloak-admin-ui 26.7.5 → 26.8.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 (74) hide show
  1. package/README.md +10 -0
  2. package/lib/.vite/manifest.json +52 -42
  3. package/lib/{AddDefaultTrust-BvsWwMDh.js → AddDefaultTrust-CmFBoVLh.js} +8 -8
  4. package/lib/{AddDefaultTrust-BvsWwMDh.js.map → AddDefaultTrust-CmFBoVLh.js.map} +1 -1
  5. package/lib/{AddJWTAuthorizationGrant-ByBPPwyK.js → AddJWTAuthorizationGrant-10wBuQUL.js} +12 -12
  6. package/lib/{AddJWTAuthorizationGrant-ByBPPwyK.js.map → AddJWTAuthorizationGrant-10wBuQUL.js.map} +1 -1
  7. package/lib/{AddKubernetesConnect-D4xTogVo.js → AddKubernetesConnect-CcEeza2C.js} +14 -11
  8. package/lib/AddKubernetesConnect-CcEeza2C.js.map +1 -0
  9. package/lib/{AddOAuth2-BDmTZ-YA.js → AddOAuth2-BBzSU5dK.js} +13 -13
  10. package/lib/{AddOAuth2-BDmTZ-YA.js.map → AddOAuth2-BBzSU5dK.js.map} +1 -1
  11. package/lib/AddOid4Vp-bpNno26D.js +73 -0
  12. package/lib/AddOid4Vp-bpNno26D.js.map +1 -0
  13. package/lib/{AddSpiffeConnect-B6_E1i6Z.js → AddSpiffeConnect-DDjtR--d.js} +8 -8
  14. package/lib/{AddSpiffeConnect-B6_E1i6Z.js.map → AddSpiffeConnect-DDjtR--d.js.map} +1 -1
  15. package/lib/{CreateFlow-C5QWzOsy.js → CreateFlow-BE5SrsQ8.js} +2 -2
  16. package/lib/{CreateFlow-C5QWzOsy.js.map → CreateFlow-BE5SrsQ8.js.map} +1 -1
  17. package/lib/DetailOrganization-Bu32j7ib.js +420 -0
  18. package/lib/DetailOrganization-Bu32j7ib.js.map +1 -0
  19. package/lib/{ExecutorForm-n3e9Qvrl.js → ExecutorForm-Dh_cpjdf.js} +23 -23
  20. package/lib/{ExecutorForm-n3e9Qvrl.js.map → ExecutorForm-Dh_cpjdf.js.map} +1 -1
  21. package/lib/{FlowDetails-CnVZXaRP.js → FlowDetails-CFTkvTDA.js} +243 -226
  22. package/lib/{FlowDetails-CnVZXaRP.js.map → FlowDetails-CFTkvTDA.js.map} +1 -1
  23. package/lib/{NewOrganization-D4X_bhyD.js → NewOrganization-D_Mml2TC.js} +13 -13
  24. package/lib/NewOrganization-D_Mml2TC.js.map +1 -0
  25. package/lib/{PermissionConfigurationDetails-UjUwrvYu.js → PermissionConfigurationDetails-n1d3Hq-O.js} +92 -91
  26. package/lib/PermissionConfigurationDetails-n1d3Hq-O.js.map +1 -0
  27. package/lib/PermissionDetails-DL0juJDV.js +437 -0
  28. package/lib/PermissionDetails-DL0juJDV.js.map +1 -0
  29. package/lib/{RealmSection-BTCX9rHA.js → RealmSection-CQax8V1F.js} +26 -26
  30. package/lib/{RealmSection-BTCX9rHA.js.map → RealmSection-CQax8V1F.js.map} +1 -1
  31. package/lib/{ResourceDetails-C3cyeLL5.js → ResourceDetails-D_029Hz8.js} +24 -24
  32. package/lib/{ResourceDetails-C3cyeLL5.js.map → ResourceDetails-D_029Hz8.js.map} +1 -1
  33. package/lib/{ScopeDetails-C16qMBw-.js → ScopeDetails-BUCey3vn.js} +17 -17
  34. package/lib/{ScopeDetails-C16qMBw-.js.map → ScopeDetails-BUCey3vn.js.map} +1 -1
  35. package/lib/{ScopePicker-DbxK9g9R.js → ScopePicker-lTpi2ES9.js} +18 -18
  36. package/lib/{ScopePicker-DbxK9g9R.js.map → ScopePicker-lTpi2ES9.js.map} +1 -1
  37. package/lib/{WorkflowDetailForm-d5rClboG.js → WorkflowDetailForm-BeobAJDg.js} +31 -31
  38. package/lib/{WorkflowDetailForm-d5rClboG.js.map → WorkflowDetailForm-BeobAJDg.js.map} +1 -1
  39. package/lib/{WorkflowsSection-DRU3QF93.js → WorkflowsSection-ZFKvDu9e.js} +16 -16
  40. package/lib/{WorkflowsSection-DRU3QF93.js.map → WorkflowsSection-ZFKvDu9e.js.map} +1 -1
  41. package/lib/apps/admin-ui/src/authentication/constants.d.ts +3 -1
  42. package/lib/apps/admin-ui/src/client-scopes/details/oid4vciAttributes.d.ts +8 -3
  43. package/lib/apps/admin-ui/src/clients/ssf/tabs/CreateStreamForm.d.ts +18 -0
  44. package/lib/apps/admin-ui/src/clients/ssf/utils.d.ts +13 -0
  45. package/lib/apps/admin-ui/src/components/client/ClientSelect.d.ts +3 -4
  46. package/lib/apps/admin-ui/src/components/client/ClientSelectModal.d.ts +8 -0
  47. package/lib/apps/admin-ui/src/components/group/GroupPickerDialog.d.ts +8 -2
  48. package/lib/apps/admin-ui/src/components/role-mapping/RoleMapping.d.ts +1 -32
  49. package/lib/apps/admin-ui/src/components/role-mapping/resource.d.ts +9 -1
  50. package/lib/apps/admin-ui/src/context/identity-provider/IdentityProviderContext.d.ts +12 -0
  51. package/lib/apps/admin-ui/src/identity-providers/add/AddOid4Vp.d.ts +1 -0
  52. package/lib/apps/admin-ui/src/identity-providers/add/IdpDomainsTab.d.ts +5 -0
  53. package/lib/apps/admin-ui/src/identity-providers/add/IdpOrganizationsTab.d.ts +6 -0
  54. package/lib/apps/admin-ui/src/identity-providers/add/Oid4VpSettings.d.ts +1 -0
  55. package/lib/apps/admin-ui/src/identity-providers/routes/IdentityProvider.d.ts +1 -1
  56. package/lib/apps/admin-ui/src/identity-providers/routes/IdentityProviderOid4Vp.d.ts +7 -0
  57. package/lib/apps/admin-ui/src/organizations/DomainsTab.d.ts +1 -0
  58. package/lib/apps/admin-ui/src/organizations/IdentityProviderSelect.d.ts +4 -1
  59. package/lib/apps/admin-ui/src/organizations/MembershipTypeToggle.d.ts +9 -0
  60. package/lib/apps/admin-ui/src/organizations/OrganizationForm.d.ts +4 -1
  61. package/lib/apps/admin-ui/src/organizations/routes/EditOrganization.d.ts +1 -1
  62. package/lib/apps/admin-ui/src/realm-settings/ssf/SsfTransmitterDisableConfirmDialog.d.ts +1 -1
  63. package/lib/apps/admin-ui/src/utils/useIsFeatureEnabled.d.ts +3 -1
  64. package/lib/{index-C-D-m0EP.js → index-DAVLcnp3.js} +24150 -23208
  65. package/lib/{index-C-D-m0EP.js.map → index-DAVLcnp3.js.map} +1 -1
  66. package/lib/keycloak-admin-ui.js +75 -75
  67. package/package.json +4 -4
  68. package/lib/AddKubernetesConnect-D4xTogVo.js.map +0 -1
  69. package/lib/DetailOrganization-amJJPyq-.js +0 -204
  70. package/lib/DetailOrganization-amJJPyq-.js.map +0 -1
  71. package/lib/NewOrganization-D4X_bhyD.js.map +0 -1
  72. package/lib/PermissionConfigurationDetails-UjUwrvYu.js.map +0 -1
  73. package/lib/PermissionDetails-gUH5Lf-7.js +0 -413
  74. package/lib/PermissionDetails-gUH5Lf-7.js.map +0 -1
@@ -0,0 +1,73 @@
1
+ import { jsxs as a, Fragment as h, jsx as t } from "react/jsx-runtime";
2
+ import { u as P, b, K as f, a as g, V as I, P as A, F as S, c as V, bJ as F, A as x, B as o, bF as C, e as D, bG as K } from "./index-DAVLcnp3.js";
3
+ import { useTranslation as O } from "react-i18next";
4
+ import { useNavigate as j, Link as k } from "react-router-dom";
5
+ function H() {
6
+ const { adminClient: d } = P(), { t: e } = O(), c = j(), i = "oid4vp", n = b({
7
+ defaultValues: { alias: i },
8
+ mode: "onChange"
9
+ }), {
10
+ handleSubmit: l,
11
+ formState: { isDirty: m }
12
+ } = n, { addAlert: u, addError: v } = f(), { realm: s } = g(), p = async (r) => {
13
+ try {
14
+ await d.identityProviders.create({
15
+ ...r,
16
+ providerId: i
17
+ }), u(e("createIdentityProviderSuccess"), D.success), c(
18
+ K({
19
+ realm: s,
20
+ providerId: i,
21
+ alias: r.alias,
22
+ tab: "settings"
23
+ })
24
+ );
25
+ } catch (y) {
26
+ v("createIdentityProviderError", y);
27
+ }
28
+ };
29
+ return /* @__PURE__ */ a(h, { children: [
30
+ /* @__PURE__ */ t(
31
+ I,
32
+ {
33
+ titleKey: e("addIdentityProvider", { provider: "OpenID4VP" })
34
+ }
35
+ ),
36
+ /* @__PURE__ */ t(A, { variant: "light", children: /* @__PURE__ */ t(S, { ...n, children: /* @__PURE__ */ a(
37
+ V,
38
+ {
39
+ role: "manage-identity-providers",
40
+ isHorizontal: !0,
41
+ onSubmit: l(p),
42
+ children: [
43
+ /* @__PURE__ */ t(F, {}),
44
+ /* @__PURE__ */ a(x, { children: [
45
+ /* @__PURE__ */ t(
46
+ o,
47
+ {
48
+ isDisabled: !m,
49
+ variant: "primary",
50
+ type: "submit",
51
+ "data-testid": "createProvider",
52
+ children: e("add")
53
+ }
54
+ ),
55
+ /* @__PURE__ */ t(
56
+ o,
57
+ {
58
+ variant: "link",
59
+ "data-testid": "cancel",
60
+ component: (r) => /* @__PURE__ */ t(k, { ...r, to: C({ realm: s }) }),
61
+ children: e("cancel")
62
+ }
63
+ )
64
+ ] })
65
+ ]
66
+ }
67
+ ) }) })
68
+ ] });
69
+ }
70
+ export {
71
+ H as default
72
+ };
73
+ //# sourceMappingURL=AddOid4Vp-bpNno26D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddOid4Vp-bpNno26D.js","sources":["../src/identity-providers/add/AddOid4Vp.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 Oid4VpSettings from \"./Oid4VpSettings\";\n\nexport default function AddOid4Vp() {\n const { adminClient } = useAdminClient();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const id = \"oid4vp\";\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: IdentityProviderRepresentation) => {\n try {\n await adminClient.identityProviders.create({\n ...provider,\n providerId: id,\n });\n addAlert(t(\"createIdentityProviderSuccess\"), AlertVariant.success);\n void 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\n titleKey={t(\"addIdentityProvider\", { provider: \"OpenID4VP\" })}\n />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n role=\"manage-identity-providers\"\n isHorizontal\n onSubmit={handleSubmit(onSubmit)}\n >\n <Oid4VpSettings />\n\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":["AddOid4Vp","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","Oid4VpSettings","ActionGroup","Button","props","Link","toIdentityProviders"],"mappings":";;;;AAmBA,SAAwBA,IAAY;AAClC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAClB,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,MAA6C;AACnE,QAAI;AACF,YAAMjB,EAAY,kBAAkB,OAAO;AAAA,QACzC,GAAGiB;AAAA,QACH,YAAYX;AAAA,MAAA,CACb,GACDK,EAAST,EAAE,+BAA+B,GAAGgB,EAAa,OAAO,GAC5Dd;AAAA,QACHe,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;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAUtB,EAAE,uBAAuB,EAAE,UAAU,aAAa;AAAA,MAAA;AAAA,IAAA;AAAA,sBAE7DuB,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,4BAEfC,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,9 +1,9 @@
1
1
  import { jsxs as i, Fragment as y, jsx as e } from "react/jsx-runtime";
2
- import { u as h, b, q as g, a as P, V as S, P as A, F as C, c as I, bC as F, A as E, B as o, bD as V, e as w, bE as x } from "./index-C-D-m0EP.js";
3
- import { useTranslation as D } from "react-i18next";
2
+ import { u as h, b, K as g, a as P, V as S, P as A, F, c as I, bE as C, A as E, B as o, bF as V, e as w, bG as x } from "./index-DAVLcnp3.js";
3
+ import { useTranslation as K } from "react-i18next";
4
4
  import { useNavigate as j, Link as k } from "react-router-dom";
5
- function G() {
6
- const { adminClient: d } = h(), { t: a } = D(), c = j(), r = "spiffe", n = b({
5
+ function z() {
6
+ const { adminClient: d } = h(), { t: a } = K(), c = j(), r = "spiffe", n = b({
7
7
  defaultValues: { alias: r, config: { allowCreate: "true" } },
8
8
  mode: "onChange"
9
9
  }), {
@@ -29,14 +29,14 @@ function G() {
29
29
  };
30
30
  return /* @__PURE__ */ i(y, { children: [
31
31
  /* @__PURE__ */ e(S, { titleKey: a("addSpiffeProvider") }),
32
- /* @__PURE__ */ e(A, { variant: "light", children: /* @__PURE__ */ e(C, { ...n, children: /* @__PURE__ */ i(
32
+ /* @__PURE__ */ e(A, { variant: "light", children: /* @__PURE__ */ e(F, { ...n, children: /* @__PURE__ */ i(
33
33
  I,
34
34
  {
35
35
  role: "manage-identity-providers",
36
36
  isHorizontal: !0,
37
37
  onSubmit: l(v),
38
38
  children: [
39
- /* @__PURE__ */ e(F, {}),
39
+ /* @__PURE__ */ e(C, {}),
40
40
  /* @__PURE__ */ i(E, { children: [
41
41
  /* @__PURE__ */ e(
42
42
  o,
@@ -64,6 +64,6 @@ function G() {
64
64
  ] });
65
65
  }
66
66
  export {
67
- G as default
67
+ z as default
68
68
  };
69
- //# sourceMappingURL=AddSpiffeConnect-B6_E1i6Z.js.map
69
+ //# sourceMappingURL=AddSpiffeConnect-DDjtR--d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSpiffeConnect-B6_E1i6Z.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 void 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(\"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,GAC5Dd;AAAA,QACHe,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,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-DDjtR--d.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 void 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(\"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,GAC5Dd;AAAA,QACHe,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,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 n, Fragment as w, jsx as e } from "react/jsx-runtime";
2
- import { u as h, a as v, q as F, b, V as y, P as S, F as g, c as A, N as C, K as I, A as T, t as H, B as K, d as N, e as P, f as V } from "./index-C-D-m0EP.js";
2
+ import { u as h, a as v, K as F, b, V as y, P as S, F as g, c as A, N as C, G as I, A as T, d as H, B as K, t as N, e as P, f as V } from "./index-DAVLcnp3.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 i = ["basic-flow", "client-flow"];
@@ -72,4 +72,4 @@ function D() {
72
72
  export {
73
73
  D as default
74
74
  };
75
- //# sourceMappingURL=CreateFlow-C5QWzOsy.js.map
75
+ //# sourceMappingURL=CreateFlow-BE5SrsQ8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateFlow-C5QWzOsy.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 {\n FormSubmitButton,\n SelectControl,\n useAlerts,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { useAdminClient } from \"../../admin-client\";\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, addError } = 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 void navigate(\n toFlow({\n realm,\n id: id!,\n usedBy: \"notInUse\",\n }),\n );\n } catch (error) {\n addError(\"flowCreateError\", error);\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","useTranslation","navigate","useNavigate","realm","useRealm","addAlert","addError","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":";;;;AAuBA,MAAMA,IAAQ,CAAC,cAAc,aAAa;AAE1C,SAAwBC,IAAa;AACnC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACX,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAOC,EAAA,GACP,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcH;AAqBpC,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,EA3BH,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,YAAAf,EAAS,EAAE,oBAAoB,GAAGiB,EAAa,OAAO,GACjDrB;AAAA,cACHsB,EAAO;AAAA,gBACL,OAAApB;AAAA,gBACA,IAAAkB;AAAA,gBACA,QAAQ;AAAA,cAAA,CACT;AAAA,YAAA;AAAA,UAEL,SAASG,GAAO;AACd,YAAAlB,EAAS,mBAAmBkB,CAAK;AAAA,UACnC;AAAA,QACF,CAUyC;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAV,EAACW,GAAA,EAAgB;AAAA,UACjB,gBAAAX;AAAA,YAACY;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO,EAAE,UAAU;AAAA,cACnB,WAAW,EAAE,sBAAsB;AAAA,cACnC,cAAY,EAAE,gBAAgB;AAAA,cAC9B,YAAY,EAAE,cAAc9B,EAAM,CAAC,EAAA;AAAA,cACnC,SAASA,EAAM,IAAI,CAAC+B,OAAU;AAAA,gBAC5B,KAAKA;AAAA,gBACL,OAAO,EAAE,uBAAuBA,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,OAAA9B,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-BE5SrsQ8.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 {\n FormSubmitButton,\n SelectControl,\n useAlerts,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { useAdminClient } from \"../../admin-client\";\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, addError } = 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 void navigate(\n toFlow({\n realm,\n id: id!,\n usedBy: \"notInUse\",\n }),\n );\n } catch (error) {\n addError(\"flowCreateError\", error);\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","useTranslation","navigate","useNavigate","realm","useRealm","addAlert","addError","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":";;;;AAuBA,MAAMA,IAAQ,CAAC,cAAc,aAAa;AAE1C,SAAwBC,IAAa;AACnC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,EAAA,IAAMC,EAAA,GACRC,IAAWC,EAAA,GACX,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzBC,IAAOC,EAAA,GACP,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcH;AAqBpC,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,EA3BH,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,YAAAf,EAAS,EAAE,oBAAoB,GAAGiB,EAAa,OAAO,GACjDrB;AAAA,cACHsB,EAAO;AAAA,gBACL,OAAApB;AAAA,gBACA,IAAAkB;AAAA,gBACA,QAAQ;AAAA,cAAA,CACT;AAAA,YAAA;AAAA,UAEL,SAASG,GAAO;AACd,YAAAlB,EAAS,mBAAmBkB,CAAK;AAAA,UACnC;AAAA,QACF,CAUyC;AAAA,QAE/B,UAAA;AAAA,UAAA,gBAAAV,EAACW,GAAA,EAAgB;AAAA,UACjB,gBAAAX;AAAA,YAACY;AAAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO,EAAE,UAAU;AAAA,cACnB,WAAW,EAAE,sBAAsB;AAAA,cACnC,cAAY,EAAE,gBAAgB;AAAA,cAC9B,YAAY,EAAE,cAAc9B,EAAM,CAAC,EAAA;AAAA,cACnC,SAASA,EAAM,IAAI,CAAC+B,OAAU;AAAA,gBAC5B,KAAKA;AAAA,gBACL,OAAO,EAAE,uBAAuBA,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,OAAA9B,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;"}
@@ -0,0 +1,420 @@
1
+ import { jsxs as g, jsx as e } from "react/jsx-runtime";
2
+ import { u as O, K as k, aa as H, l as F, P as I, aI as j, I as L, B as R, aJ as C, aK as q, af as N, n as V, b as B, M as U, j as _, F as M, k as $, aw as J, q as Q, G as W, aE as X, d as x, aL as G, aM as u, aN as Y, aO as v, aP as Z, a as ee, ar as ae, aQ as te, as as ie, aR as ne, aS as re, c as se, aT as oe, A as de, aU as le, aV as ce, aW as me, aX as w, aY as ue, aZ as ve, a_ as be } from "./index-DAVLcnp3.js";
3
+ import { useTranslation as K } from "react-i18next";
4
+ import { useState as T } from "react";
5
+ import { useParams as he } from "react-router-dom";
6
+ const ye = ({ orgId: o, domain: t, onClose: l }) => {
7
+ const { adminClient: h } = O(), { t: a } = K(), { addAlert: c, addError: i } = k(), [s, p] = T([]);
8
+ V(
9
+ () => h.organizations.listIdentityProviders({ orgId: o }),
10
+ p,
11
+ []
12
+ );
13
+ const n = !!t, D = B({
14
+ mode: "onChange",
15
+ defaultValues: {
16
+ name: t?.name,
17
+ verified: t?.verified ?? !1,
18
+ autoRedirect: t?.autoRedirect ?? !1,
19
+ identityProviderAlias: t?.identityProviderAlias ?? ""
20
+ }
21
+ }), { handleSubmit: f, formState: S } = D, E = async (m) => {
22
+ try {
23
+ const y = await h.organizations.findOne({ id: o }), r = y.domains ?? [], P = {
24
+ verified: m.verified,
25
+ autoRedirect: m.autoRedirect,
26
+ identityProviderAlias: m.identityProviderAlias || void 0
27
+ };
28
+ if (n) {
29
+ const b = r.find((d) => d.name === t.name);
30
+ b && Object.assign(b, P);
31
+ } else {
32
+ const b = m.name?.trim();
33
+ if (r.some((d) => d.name === b)) {
34
+ i("addDomainError", a("duplicateDomain"));
35
+ return;
36
+ }
37
+ r.push({ name: b, ...P });
38
+ }
39
+ await h.organizations.updateById(
40
+ { id: o },
41
+ { ...y, domains: r }
42
+ ), c(a(n ? "domainUpdatedSuccess" : "addDomainSuccess")), l();
43
+ } catch (y) {
44
+ i(n ? "domainUpdatedError" : "addDomainError", y);
45
+ }
46
+ }, z = [
47
+ { key: "", value: a("none") },
48
+ ...s.map((m) => ({
49
+ key: m.alias,
50
+ value: m.alias
51
+ }))
52
+ ];
53
+ return /* @__PURE__ */ e(
54
+ U,
55
+ {
56
+ variant: _.small,
57
+ title: a(n ? "editDomain" : "addDomain"),
58
+ isOpen: !0,
59
+ onClose: l,
60
+ actions: [
61
+ /* @__PURE__ */ e(
62
+ x,
63
+ {
64
+ formState: S,
65
+ "data-testid": "confirm",
66
+ form: "domain-form",
67
+ allowInvalid: !0,
68
+ allowNonDirty: !0,
69
+ children: a("save")
70
+ },
71
+ "confirm"
72
+ ),
73
+ /* @__PURE__ */ e(
74
+ R,
75
+ {
76
+ id: "modal-cancel",
77
+ "data-testid": "cancel",
78
+ variant: F.link,
79
+ onClick: l,
80
+ children: a("cancel")
81
+ },
82
+ "cancel"
83
+ )
84
+ ],
85
+ children: /* @__PURE__ */ e(M, { ...D, children: /* @__PURE__ */ g($, { id: "domain-form", onSubmit: f(E), children: [
86
+ n ? /* @__PURE__ */ e(J, { label: a("domain"), fieldId: "domain-name", children: /* @__PURE__ */ e("span", { id: "domain-name", "data-testid": "domain-name", children: t.name }) }) : /* @__PURE__ */ e(
87
+ Q,
88
+ {
89
+ name: "name",
90
+ label: a("domain"),
91
+ labelIcon: a("domainHelp"),
92
+ rules: { required: a("required") }
93
+ }
94
+ ),
95
+ /* @__PURE__ */ e(
96
+ W,
97
+ {
98
+ name: "identityProviderAlias",
99
+ label: a("identityProvider"),
100
+ labelIcon: a("domainIdentityProviderHelp"),
101
+ options: z,
102
+ controller: { defaultValue: "" }
103
+ }
104
+ ),
105
+ /* @__PURE__ */ e(
106
+ X,
107
+ {
108
+ name: "autoRedirect",
109
+ label: a("autoRedirect"),
110
+ labelIcon: a("autoRedirectHelp"),
111
+ defaultValue: !1
112
+ }
113
+ )
114
+ ] }) })
115
+ }
116
+ );
117
+ }, ge = () => {
118
+ const { adminClient: o } = O(), { t } = K(), { id: l } = he(), { addAlert: h, addError: a } = k(), [c, i] = T(0), s = () => i(c + 1), [p, n] = T(!1), [D, f] = T(), [S, E] = T(), z = async () => (await o.organizations.findOne({ id: l })).domains ?? [], [m, y] = H({
119
+ titleKey: "removeDomain",
120
+ messageKey: "removeDomainConfirm",
121
+ continueButtonLabel: "delete",
122
+ continueButtonVariant: F.danger,
123
+ onConfirm: async () => {
124
+ try {
125
+ const r = await o.organizations.findOne({ id: l }), P = (r.domains ?? []).filter(
126
+ (b) => b.name !== S?.name
127
+ );
128
+ await o.organizations.updateById(
129
+ { id: l },
130
+ { ...r, domains: P }
131
+ ), E(void 0), h(t("domainRemovedSuccess")), s();
132
+ } catch (r) {
133
+ a("domainRemovedError", r);
134
+ }
135
+ }
136
+ });
137
+ return /* @__PURE__ */ g(I, { variant: "light", children: [
138
+ /* @__PURE__ */ e(y, {}),
139
+ p && /* @__PURE__ */ e(
140
+ ye,
141
+ {
142
+ orgId: l,
143
+ domain: D,
144
+ onClose: () => {
145
+ n(!1), f(void 0), s();
146
+ }
147
+ }
148
+ ),
149
+ /* @__PURE__ */ e(
150
+ j,
151
+ {
152
+ loader: z,
153
+ ariaLabelKey: "domains",
154
+ searchPlaceholderKey: "searchDomain",
155
+ toolbarItem: /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(R, { onClick: () => n(!0), children: t("addDomain") }) }),
156
+ actions: [
157
+ {
158
+ title: t("edit"),
159
+ onRowClick: (r) => {
160
+ f(r), n(!0);
161
+ }
162
+ },
163
+ {
164
+ title: t("delete"),
165
+ onRowClick: (r) => {
166
+ E(r), m();
167
+ }
168
+ }
169
+ ],
170
+ columns: [
171
+ {
172
+ name: "name",
173
+ displayKey: "domain",
174
+ cellRenderer: (r) => /* @__PURE__ */ e(
175
+ R,
176
+ {
177
+ variant: "link",
178
+ isInline: !0,
179
+ onClick: () => {
180
+ f(r), n(!0);
181
+ },
182
+ children: r.name
183
+ }
184
+ )
185
+ },
186
+ {
187
+ name: "identityProviderAlias",
188
+ displayKey: "identityProvider",
189
+ cellFormatters: [C()]
190
+ },
191
+ {
192
+ name: "autoRedirect",
193
+ displayKey: "autoRedirect",
194
+ cellFormatters: [q(), C()]
195
+ }
196
+ ],
197
+ emptyState: /* @__PURE__ */ e(
198
+ L,
199
+ {
200
+ message: t("emptyDomains"),
201
+ instructions: t("emptyDomainsInstructions"),
202
+ primaryActionText: t("addDomain"),
203
+ onPrimaryAction: () => n(!0)
204
+ }
205
+ )
206
+ },
207
+ c
208
+ )
209
+ ] });
210
+ }, pe = () => {
211
+ const { t: o } = K(), [t, l] = T("members");
212
+ return /* @__PURE__ */ g(
213
+ G,
214
+ {
215
+ activeKey: t,
216
+ onSelect: (h, a) => l(a),
217
+ children: [
218
+ /* @__PURE__ */ e(
219
+ u,
220
+ {
221
+ eventKey: "members",
222
+ title: /* @__PURE__ */ e(v, { children: o("members") }),
223
+ "data-testid": "organization-members-tab",
224
+ children: /* @__PURE__ */ e(Y, {})
225
+ }
226
+ ),
227
+ /* @__PURE__ */ e(
228
+ u,
229
+ {
230
+ eventKey: "invitations",
231
+ title: /* @__PURE__ */ e(v, { children: o("invitations") }),
232
+ "data-testid": "organization-invitations-tab",
233
+ children: /* @__PURE__ */ e(Z, {})
234
+ }
235
+ )
236
+ ]
237
+ }
238
+ );
239
+ };
240
+ function Se() {
241
+ const { adminClient: o } = O(), { addAlert: t, addError: l } = k(), { realm: h, realmRepresentation: a } = ee(), { id: c } = ae(), { t: i } = K(), s = B(), p = async (d) => {
242
+ try {
243
+ const A = ue(d);
244
+ await o.organizations.updateById({ id: c }, A), t(i("organizationSaveSuccess"));
245
+ } catch (A) {
246
+ l("organizationSaveError", A);
247
+ }
248
+ };
249
+ V(
250
+ () => o.organizations.findOne({ id: c }),
251
+ (d) => {
252
+ if (!d)
253
+ throw new Error(i("notFound"));
254
+ s.reset({
255
+ ...d,
256
+ domains: void 0,
257
+ serverDomains: d.domains,
258
+ attributes: te(d.attributes)
259
+ });
260
+ },
261
+ [c]
262
+ );
263
+ const n = (d) => ve(
264
+ be({
265
+ realm: h,
266
+ id: c,
267
+ tab: d
268
+ })
269
+ ), D = n("settings"), f = n("attributes"), S = n("members"), E = n("groups"), z = n("domains"), m = n("identityProviders"), y = n("events"), { hasAccess: r } = ie(), [P, b] = T("adminEvents");
270
+ return /* @__PURE__ */ e(I, { variant: "light", className: "pf-v5-u-p-0", children: /* @__PURE__ */ g(M, { ...s, children: [
271
+ /* @__PURE__ */ e(ne, { save: () => p(s.getValues()) }),
272
+ /* @__PURE__ */ g(
273
+ re,
274
+ {
275
+ "data-testid": "organization-tabs",
276
+ "aria-label": i("organization"),
277
+ isBox: !0,
278
+ mountOnEnter: !0,
279
+ children: [
280
+ /* @__PURE__ */ e(
281
+ u,
282
+ {
283
+ id: "settings",
284
+ "data-testid": "settingsTab",
285
+ title: /* @__PURE__ */ e(v, { children: i("settings") }),
286
+ ...D,
287
+ children: /* @__PURE__ */ e(I, { children: /* @__PURE__ */ g(
288
+ se,
289
+ {
290
+ role: "anyone",
291
+ onSubmit: s.handleSubmit(p),
292
+ isHorizontal: !0,
293
+ children: [
294
+ /* @__PURE__ */ e(oe, { readOnly: !0 }),
295
+ /* @__PURE__ */ g(de, { children: [
296
+ /* @__PURE__ */ e(
297
+ x,
298
+ {
299
+ formState: s.formState,
300
+ "data-testid": "save",
301
+ children: i("save")
302
+ }
303
+ ),
304
+ /* @__PURE__ */ e(
305
+ R,
306
+ {
307
+ onClick: () => s.reset(),
308
+ "data-testid": "reset",
309
+ variant: "link",
310
+ children: i("reset")
311
+ }
312
+ )
313
+ ] })
314
+ ]
315
+ }
316
+ ) })
317
+ }
318
+ ),
319
+ /* @__PURE__ */ e(
320
+ u,
321
+ {
322
+ id: "domains",
323
+ "data-testid": "domainsTab",
324
+ title: /* @__PURE__ */ e(v, { children: i("domains") }),
325
+ ...z,
326
+ children: /* @__PURE__ */ e(ge, {})
327
+ }
328
+ ),
329
+ /* @__PURE__ */ e(
330
+ u,
331
+ {
332
+ id: "attributes",
333
+ "data-testid": "attributeTab",
334
+ title: /* @__PURE__ */ e(v, { children: i("attributes") }),
335
+ ...f,
336
+ children: /* @__PURE__ */ e(I, { variant: "light", children: /* @__PURE__ */ e(
337
+ le,
338
+ {
339
+ form: s,
340
+ save: p,
341
+ reset: () => s.reset({
342
+ ...s.getValues()
343
+ }),
344
+ name: "attributes"
345
+ }
346
+ ) })
347
+ }
348
+ ),
349
+ /* @__PURE__ */ e(
350
+ u,
351
+ {
352
+ id: "members",
353
+ "data-testid": "membersTab",
354
+ title: /* @__PURE__ */ e(v, { children: i("members") }),
355
+ ...S,
356
+ children: /* @__PURE__ */ e(pe, {})
357
+ }
358
+ ),
359
+ /* @__PURE__ */ e(
360
+ u,
361
+ {
362
+ id: "groups",
363
+ "data-testid": "groupsTab",
364
+ title: /* @__PURE__ */ e(v, { children: i("groups") }),
365
+ ...E,
366
+ children: /* @__PURE__ */ e(ce, { orgId: c })
367
+ }
368
+ ),
369
+ /* @__PURE__ */ e(
370
+ u,
371
+ {
372
+ id: "identityProviders",
373
+ "data-testid": "identityProvidersTab",
374
+ title: /* @__PURE__ */ e(v, { children: i("identityProviders") }),
375
+ ...m,
376
+ children: /* @__PURE__ */ e(me, {})
377
+ }
378
+ ),
379
+ a.adminEventsEnabled && r("view-events") && /* @__PURE__ */ e(
380
+ u,
381
+ {
382
+ "data-testid": "admin-events-tab",
383
+ title: /* @__PURE__ */ e(v, { children: i("adminEvents") }),
384
+ ...y,
385
+ children: /* @__PURE__ */ g(
386
+ G,
387
+ {
388
+ activeKey: P,
389
+ onSelect: (d, A) => b(A),
390
+ children: [
391
+ /* @__PURE__ */ e(
392
+ u,
393
+ {
394
+ eventKey: "adminEvents",
395
+ title: /* @__PURE__ */ e(v, { children: i("adminEvents") }),
396
+ children: /* @__PURE__ */ e(w, { resourcePath: `organizations/${c}` })
397
+ }
398
+ ),
399
+ /* @__PURE__ */ e(
400
+ u,
401
+ {
402
+ eventKey: "membershipEvents",
403
+ title: /* @__PURE__ */ e(v, { children: i("membershipEvents") }),
404
+ children: /* @__PURE__ */ e(w, { resourcePath: `organizations/${c}/members` })
405
+ }
406
+ )
407
+ ]
408
+ }
409
+ )
410
+ }
411
+ )
412
+ ]
413
+ }
414
+ )
415
+ ] }) });
416
+ }
417
+ export {
418
+ Se as default
419
+ };
420
+ //# sourceMappingURL=DetailOrganization-Bu32j7ib.js.map