All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.DetailSettings-CBdijxzV.js.map Maven / Gradle / Ivy

There is a newer version: 26.0.7
Show newest version
{"version":3,"file":"DetailSettings-CBdijxzV.js","sources":["../../src/identity-providers/add/AdvancedSettings.tsx","../../src/identity-providers/add/ExtendedNonDiscoverySettings.tsx","../../src/identity-providers/add/ReqAuthnConstraintsSettings.tsx","../../src/identity-providers/add/DetailSettings.tsx"],"sourcesContent":["import type AuthenticationFlowRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/authenticationFlowRepresentation\";\nimport type IdentityProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation\";\nimport {\n  FormErrorText,\n  HelpItem,\n  KeycloakSelect,\n  SelectControl,\n  SelectVariant,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n  FormGroup,\n  SelectOption,\n  Switch,\n  TextInput,\n  ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport useIsFeatureEnabled, { Feature } from \"../../utils/useIsFeatureEnabled\";\nimport type { FieldProps } from \"../component/FormGroupField\";\nimport { FormGroupField } from \"../component/FormGroupField\";\nimport { SwitchField } from \"../component/SwitchField\";\nimport { TextField } from \"../component/TextField\";\n\nconst LoginFlow = ({\n  field,\n  label,\n  defaultValue,\n  labelForEmpty = \"none\",\n}: FieldProps & { defaultValue: string; labelForEmpty?: string }) => {\n  const { adminClient } = useAdminClient();\n\n  const { t } = useTranslation();\n  const { control } = useFormContext();\n\n  const [flows, setFlows] = useState();\n  const [open, setOpen] = useState(false);\n\n  useFetch(\n    () => adminClient.authenticationManagement.getFlows(),\n    (flows) =>\n      setFlows(flows.filter((flow) => flow.providerId === \"basic-flow\")),\n    [],\n  );\n\n  return (\n    }\n      fieldId={label}\n    >\n       (\n           setOpen(!open)}\n            onSelect={(value) => {\n              field.onChange(value as string);\n              setOpen(false);\n            }}\n            selections={field.value || t(labelForEmpty)}\n            variant={SelectVariant.single}\n            aria-label={t(label)}\n            isOpen={open}\n          >\n            {[\n              ...(defaultValue === \"\"\n                ? [\n                    \n                      {t(labelForEmpty)}\n                    ,\n                  ]\n                : []),\n              ...(flows?.map((option) => (\n                \n                  {option.alias}\n                \n              )) || []),\n            ]}\n          \n        )}\n      />\n    \n  );\n};\n\nconst SYNC_MODES = [\"IMPORT\", \"LEGACY\", \"FORCE\"];\ntype AdvancedSettingsProps = { isOIDC: boolean; isSAML: boolean };\n\nexport const AdvancedSettings = ({ isOIDC, isSAML }: AdvancedSettingsProps) => {\n  const { t } = useTranslation();\n  const {\n    control,\n    register,\n    setValue,\n    formState: { errors },\n  } = useFormContext();\n  const filteredByClaim = useWatch({\n    control,\n    name: \"config.filteredByClaim\",\n    defaultValue: \"false\",\n  });\n  const claimFilterRequired = filteredByClaim === \"true\";\n  const isFeatureEnabled = useIsFeatureEnabled();\n  const isTransientUsersEnabled = isFeatureEnabled(Feature.TransientUsers);\n  const transientUsers = useWatch({\n    control,\n    name: \"config.doNotStoreUsers\",\n    defaultValue: \"false\",\n  });\n  const syncModeAvailable = transientUsers === \"false\";\n  return (\n    <>\n      {!isOIDC && !isSAML && (\n        \n      )}\n      \n      {(isSAML || isOIDC) && (\n        \n      )}\n      {!isOIDC && !isSAML && (\n        <>\n          \n          \n        \n      )}\n      {isOIDC && (\n        \n      )}\n      \n      \n      \n\n      {(!isSAML || isOIDC) && (\n        \n           (\n               {\n                  field.onChange(value.toString());\n                }}\n              />\n            )}\n          />\n        \n      )}\n      {(!isSAML || isOIDC) && claimFilterRequired && (\n        <>\n          \n            }\n            fieldId=\"kc-claim-filter-name\"\n            isRequired\n          >\n            \n            {errors.config?.claimFilterName && (\n              \n            )}\n          \n          \n            }\n            fieldId=\"kc-claim-filter-value\"\n            isRequired\n          >\n            \n            {errors.config?.claimFilterValue && (\n              \n            )}\n          \n        \n      )}\n      \n      \n\n      {isTransientUsersEnabled && (\n        \n           (\n               {\n                  field.onChange(value.toString());\n                  // if field is checked, set sync mode to import\n                  if (value) {\n                    setValue(\"config.syncMode\", \"IMPORT\");\n                  }\n                }}\n              />\n            )}\n          />\n        \n      )}\n      {syncModeAvailable && (\n         ({\n            key: syncMode,\n            value: t(`syncModes.${syncMode.toLocaleLowerCase()}`),\n          }))}\n          controller={{\n            defaultValue: SYNC_MODES[0],\n            rules: { required: t(\"required\") },\n          }}\n        />\n      )}\n      \n    \n  );\n};\n","import {\n  HelpItem,\n  KeycloakSelect,\n  SelectVariant,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n  ExpandableSection,\n  Form,\n  FormGroup,\n  NumberInput,\n  SelectOption,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FormGroupField } from \"../component/FormGroupField\";\nimport { SwitchField } from \"../component/SwitchField\";\nimport { TextField } from \"../component/TextField\";\n\nconst promptOptions = {\n  unspecified: \"\",\n  none: \"none\",\n  consent: \"consent\",\n  login: \"login\",\n  select_account: \"select_account\",\n};\n\nexport const ExtendedNonDiscoverySettings = () => {\n  const { t } = useTranslation();\n  const { control } = useFormContext();\n\n  const [isExpanded, setIsExpanded] = useState(false);\n  const [promptOpen, setPromptOpen] = useState(false);\n\n  return (\n     setIsExpanded(!isExpanded)}\n      isExpanded={isExpanded}\n    >\n      
\n \n \n \n \n \n \n \n \n \n \n (\n setPromptOpen(!promptOpen)}\n onSelect={(value) => {\n field.onChange(value as string);\n setPromptOpen(false);\n }}\n selections={field.value || t(`prompts.unspecified`)}\n variant={SelectVariant.single}\n aria-label={t(\"prompt\")}\n isOpen={promptOpen}\n >\n {Object.entries(promptOptions).map(([key, val]) => (\n \n {t(`prompts.${key}`)}\n \n ))}\n \n )}\n />\n \n \n \n }\n fieldId=\"allowedClockSkew\"\n >\n {\n const v = Number(field.value);\n return (\n field.onChange(v + 1)}\n onMinus={() => field.onChange(v - 1)}\n onChange={(event) => {\n const value = Number(\n (event.target as HTMLInputElement).value,\n );\n field.onChange(value < 0 ? 0 : value);\n }}\n />\n );\n }}\n />\n \n \n \n \n );\n};\n","import {\n HelpItem,\n KeycloakSelect,\n SelectVariant,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { FormGroup, SelectOption } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { MultiLineInput } from \"../../components/multi-line-input/MultiLineInput\";\n\nconst comparisonValues = [\"exact\", \"minimum\", \"maximum\", \"better\"];\n\nexport const ReqAuthnConstraints = () => {\n const { t } = useTranslation();\n const { control } = useFormContext();\n const [comparisonOpen, setComparisonOpen] = useState(false);\n return (\n <>\n \n }\n fieldId=\"comparison\"\n >\n (\n setComparisonOpen(isExpanded)}\n onSelect={(value) => {\n field.onChange(value.toString());\n setComparisonOpen(false);\n }}\n selections={field.value}\n variant={SelectVariant.single}\n aria-label={t(\"comparison\")}\n isOpen={comparisonOpen}\n >\n {comparisonValues.map((option) => (\n \n {t(option)}\n \n ))}\n \n )}\n />\n \n \n }\n >\n \n \n \n }\n >\n \n \n \n );\n};\n","import type IdentityProviderMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation\";\nimport type IdentityProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation\";\nimport {\n AlertVariant,\n Button,\n ButtonVariant,\n Divider,\n DropdownItem,\n Form,\n PageSection,\n Tab,\n TabTitleText,\n ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { useMemo, useState } from \"react\";\nimport {\n Controller,\n FormProvider,\n useForm,\n useFormContext,\n useWatch,\n} from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { ScrollForm } from \"@keycloak/keycloak-ui-shared\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { DynamicComponents } from \"../../components/dynamic/DynamicComponents\";\nimport { FixedButtonsGroup } from \"../../components/form/FixedButtonGroup\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport { ListEmptyState } from \"../../components/list-empty-state/ListEmptyState\";\nimport { PermissionsTab } from \"../../components/permission-tab/PermissionTab\";\nimport {\n RoutableTabs,\n useRoutableTab,\n} from \"../../components/routable-tabs/RoutableTabs\";\nimport {\n Action,\n KeycloakDataTable,\n} from \"../../components/table-toolbar/KeycloakDataTable\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\nimport { toUpperCase } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport useIsFeatureEnabled, { Feature } from \"../../utils/useIsFeatureEnabled\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toIdentityProviderAddMapper } from \"../routes/AddMapper\";\nimport { toIdentityProviderEditMapper } from \"../routes/EditMapper\";\nimport {\n IdentityProviderParams,\n IdentityProviderTab,\n toIdentityProvider,\n} from \"../routes/IdentityProvider\";\nimport { toIdentityProviders } from \"../routes/IdentityProviders\";\nimport { AdvancedSettings } from \"./AdvancedSettings\";\nimport { DescriptorSettings } from \"./DescriptorSettings\";\nimport { DiscoverySettings } from \"./DiscoverySettings\";\nimport { ExtendedNonDiscoverySettings } from \"./ExtendedNonDiscoverySettings\";\nimport { GeneralSettings } from \"./GeneralSettings\";\nimport { OIDCAuthentication } from \"./OIDCAuthentication\";\nimport { OIDCGeneralSettings } from \"./OIDCGeneralSettings\";\nimport { ReqAuthnConstraints } from \"./ReqAuthnConstraintsSettings\";\nimport { SamlGeneralSettings } from \"./SamlGeneralSettings\";\nimport { useAdminClient } from \"../../admin-client\";\n\ntype HeaderProps = {\n onChange: (value: boolean) => void;\n value: boolean;\n save: () => void;\n toggleDeleteDialog: () => void;\n};\n\ntype IdPWithMapperAttributes = IdentityProviderMapperRepresentation & {\n name: string;\n category?: string;\n helpText?: string;\n type: string;\n mapperId: string;\n};\n\nconst Header = ({ onChange, value, save, toggleDeleteDialog }: HeaderProps) => {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const { alias: displayName } = useParams<{ alias: string }>();\n const [provider, setProvider] = useState();\n const { addAlert, addError } = useAlerts();\n const { setValue, formState, control } = useFormContext();\n\n const validateSignature = useWatch({\n control,\n name: \"config.validateSignature\",\n });\n\n const useMetadataDescriptorUrl = useWatch({\n control,\n name: \"config.useMetadataDescriptorUrl\",\n });\n\n const metadataDescriptorUrl = useWatch({\n control,\n name: \"config.metadataDescriptorUrl\",\n });\n\n useFetch(\n () => adminClient.identityProviders.findOne({ alias: displayName }),\n (fetchedProvider) => {\n if (!fetchedProvider) {\n throw new Error(t(\"notFound\"));\n }\n setProvider(fetchedProvider);\n },\n [],\n );\n\n const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({\n titleKey: \"disableProvider\",\n messageKey: t(\"disableConfirmIdentityProvider\", { provider: displayName }),\n continueButtonLabel: \"disable\",\n onConfirm: () => {\n onChange(!value);\n save();\n },\n });\n\n const importSamlKeys = async (\n providerId: string,\n metadataDescriptorUrl: string,\n ) => {\n try {\n const result = await adminClient.identityProviders.importFromUrl({\n providerId: providerId,\n fromUrl: metadataDescriptorUrl,\n });\n if (result.signingCertificate) {\n setValue(`config.signingCertificate`, result.signingCertificate);\n addAlert(t(\"importKeysSuccess\"), AlertVariant.success);\n } else {\n addError(\"importKeysError\", t(\"importKeysErrorNoSigningCertificate\"));\n }\n } catch (error) {\n addError(\"importKeysError\", error);\n }\n };\n\n const reloadSamlKeys = async (alias: string) => {\n try {\n const result = await adminClient.identityProviders.reloadKeys({\n alias: alias,\n });\n if (result) {\n addAlert(t(\"reloadKeysSuccess\"), AlertVariant.success);\n } else {\n addAlert(t(\"reloadKeysSuccessButFalse\"), AlertVariant.warning);\n }\n } catch (error) {\n addError(\"reloadKeysError\", error);\n }\n };\n\n return (\n <>\n \n reloadSamlKeys(provider.alias!)}\n >\n {t(\"reloadKeys\")}\n ,\n ]\n : provider?.providerId?.includes(\"saml\") &&\n validateSignature === \"true\" &&\n useMetadataDescriptorUrl !== \"true\" &&\n metadataDescriptorUrl &&\n !formState.isDirty\n ? [\n \n importSamlKeys(\n provider.providerId!,\n metadataDescriptorUrl,\n )\n }\n >\n {t(\"importKeys\")}\n ,\n ]\n : []),\n ,\n toggleDeleteDialog()}>\n {t(\"delete\")}\n ,\n ]}\n isEnabled={value}\n onToggle={(value) => {\n if (!value) {\n toggleDisableDialog();\n } else {\n onChange(value);\n save();\n }\n }}\n />\n \n );\n};\n\ntype MapperLinkProps = IdPWithMapperAttributes & {\n provider?: IdentityProviderRepresentation;\n};\n\nconst MapperLink = ({ name, mapperId, provider }: MapperLinkProps) => {\n const { realm } = useRealm();\n const { alias } = useParams();\n\n return (\n \n {name}\n \n );\n};\n\nexport default function DetailSettings() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const { alias, providerId } = useParams();\n const isFeatureEnabled = useIsFeatureEnabled();\n const form = useForm();\n const { handleSubmit, getValues, reset } = form;\n const [provider, setProvider] = useState();\n const [selectedMapper, setSelectedMapper] =\n useState();\n const serverInfo = useServerInfo();\n const providerInfo = useMemo(() => {\n const namespaces = [\n \"org.keycloak.broker.social.SocialIdentityProvider\",\n \"org.keycloak.broker.provider.IdentityProvider\",\n ];\n\n for (const namespace of namespaces) {\n const social = serverInfo.componentTypes?.[namespace]?.find(\n ({ id }) => id === providerId,\n );\n\n if (social) {\n return social;\n }\n }\n }, [serverInfo, providerId]);\n\n const { addAlert, addError } = useAlerts();\n const navigate = useNavigate();\n const { realm } = useRealm();\n const [key, setKey] = useState(0);\n const refresh = () => setKey(key + 1);\n\n useFetch(\n () => adminClient.identityProviders.findOne({ alias }),\n (fetchedProvider) => {\n if (!fetchedProvider) {\n throw new Error(t(\"notFound\"));\n }\n\n reset(fetchedProvider);\n setProvider(fetchedProvider);\n\n if (fetchedProvider.config!.authnContextClassRefs) {\n form.setValue(\n \"config.authnContextClassRefs\",\n JSON.parse(fetchedProvider.config?.authnContextClassRefs),\n );\n }\n\n if (fetchedProvider.config!.authnContextDeclRefs) {\n form.setValue(\n \"config.authnContextDeclRefs\",\n JSON.parse(fetchedProvider.config?.authnContextDeclRefs),\n );\n }\n },\n [],\n );\n\n const toTab = (tab: IdentityProviderTab) =>\n toIdentityProvider({\n realm,\n alias,\n providerId,\n tab,\n });\n\n const useTab = (tab: IdentityProviderTab) => useRoutableTab(toTab(tab));\n\n const settingsTab = useTab(\"settings\");\n const mappersTab = useTab(\"mappers\");\n const permissionsTab = useTab(\"permissions\");\n\n const save = async (savedProvider?: IdentityProviderRepresentation) => {\n const p = savedProvider || getValues();\n const origAuthnContextClassRefs = p.config?.authnContextClassRefs;\n if (p.config?.authnContextClassRefs)\n p.config.authnContextClassRefs = JSON.stringify(\n p.config.authnContextClassRefs,\n );\n const origAuthnContextDeclRefs = p.config?.authnContextDeclRefs;\n if (p.config?.authnContextDeclRefs)\n p.config.authnContextDeclRefs = JSON.stringify(\n p.config.authnContextDeclRefs,\n );\n\n try {\n await adminClient.identityProviders.update(\n { alias },\n {\n ...p,\n config: { ...provider?.config, ...p.config },\n alias,\n providerId,\n },\n );\n if (origAuthnContextClassRefs) {\n p.config!.authnContextClassRefs = origAuthnContextClassRefs;\n }\n if (origAuthnContextDeclRefs) {\n p.config!.authnContextDeclRefs = origAuthnContextDeclRefs;\n }\n reset(p);\n addAlert(t(\"updateSuccessIdentityProvider\"), AlertVariant.success);\n } catch (error) {\n addError(\"updateErrorIdentityProvider\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"deleteProvider\",\n messageKey: t(\"deleteConfirmIdentityProvider\", { provider: alias }),\n continueButtonLabel: \"delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n await adminClient.identityProviders.del({ alias: alias });\n addAlert(t(\"deletedSuccessIdentityProvider\"), AlertVariant.success);\n navigate(toIdentityProviders({ realm }));\n } catch (error) {\n addError(\"deleteErrorIdentityProvider\", error);\n }\n },\n });\n\n const [toggleDeleteMapperDialog, DeleteMapperConfirm] = useConfirmDialog({\n titleKey: \"deleteProviderMapper\",\n messageKey: t(\"deleteMapperConfirm\", {\n mapper: selectedMapper?.name,\n }),\n continueButtonLabel: \"delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n await adminClient.identityProviders.delMapper({\n alias: alias,\n id: selectedMapper?.mapperId!,\n });\n addAlert(t(\"deleteMapperSuccess\"), AlertVariant.success);\n refresh();\n navigate(\n toIdentityProvider({ providerId, alias, tab: \"mappers\", realm }),\n );\n } catch (error) {\n addError(\"deleteErrorIdentityProvider\", error);\n }\n },\n });\n\n if (!provider) {\n return ;\n }\n\n const isOIDC = provider.providerId!.includes(\"oidc\");\n const isSAML = provider.providerId!.includes(\"saml\");\n\n const loader = async () => {\n const [loaderMappers, loaderMapperTypes] = await Promise.all([\n adminClient.identityProviders.findMappers({ alias }),\n adminClient.identityProviders.findMapperTypes({ alias }),\n ]);\n\n const components = loaderMappers.map((loaderMapper) => {\n const mapperType = Object.values(loaderMapperTypes).find(\n (loaderMapperType) =>\n loaderMapper.identityProviderMapper! === loaderMapperType.id!,\n );\n\n const result: IdPWithMapperAttributes = {\n ...mapperType,\n name: loaderMapper.name!,\n type: mapperType?.name!,\n mapperId: loaderMapper.id!,\n };\n\n return result;\n });\n\n return components;\n };\n\n const sections = [\n {\n title: t(\"generalSettings\"),\n panel: (\n \n {!isOIDC && !isSAML && }\n {isOIDC && }\n {isSAML && }\n {providerInfo && (\n \n )}\n \n ),\n },\n {\n title: t(\"oidcSettings\"),\n isHidden: !isOIDC,\n panel: (\n <>\n \n
\n \n \n \n \n \n ),\n },\n {\n title: t(\"samlSettings\"),\n isHidden: !isSAML,\n panel: ,\n },\n {\n title: t(\"reqAuthnConstraints\"),\n isHidden: !isSAML,\n panel: (\n \n \n \n ),\n },\n {\n title: t(\"advancedSettings\"),\n panel: (\n \n \n\n \n \n ),\n },\n ];\n\n return (\n \n \n \n (\n \n )}\n />\n\n \n \n {t(\"settings\")}}\n {...settingsTab}\n >\n \n \n {t(\"mappers\")}}\n {...mappersTab}\n >\n \n navigate(\n toIdentityProviderAddMapper({\n realm,\n alias: alias!,\n providerId: provider.providerId!,\n tab: \"mappers\",\n }),\n )\n }\n />\n }\n loader={loader}\n key={key}\n ariaLabelKey=\"mappersList\"\n searchPlaceholderKey=\"searchForMapper\"\n toolbarItem={\n \n (\n \n )}\n data-testid=\"addMapper\"\n >\n {t(\"addMapper\")}\n \n \n }\n columns={[\n {\n name: \"name\",\n displayKey: \"name\",\n cellRenderer: (row) => (\n \n ),\n },\n {\n name: \"category\",\n displayKey: \"category\",\n },\n {\n name: \"type\",\n displayKey: \"type\",\n },\n ]}\n actions={[\n {\n title: t(\"delete\"),\n onRowClick: (mapper) => {\n setSelectedMapper(mapper);\n toggleDeleteMapperDialog();\n },\n } as Action,\n ]}\n />\n \n {isFeatureEnabled(Feature.AdminFineGrainedAuthz) && (\n {t(\"permissions\")}}\n {...permissionsTab}\n >\n \n \n )}\n \n \n \n );\n}\n"],"names":["LoginFlow","field","label","defaultValue","labelForEmpty","adminClient","useAdminClient","t","useTranslation","control","useFormContext","flows","setFlows","useState","open","setOpen","useFetch","flow","jsx","FormGroup","HelpItem","Controller","KeycloakSelect","value","SelectVariant","SelectOption","option","SYNC_MODES","AdvancedSettings","isOIDC","isSAML","register","setValue","errors","claimFilterRequired","useWatch","isTransientUsersEnabled","useIsFeatureEnabled","Feature","syncModeAvailable","jsxs","Fragment","TextField","SwitchField","FormGroupField","Switch","_event","TextInput","ValidatedOptions","FormErrorText","SelectControl","syncMode","promptOptions","ExtendedNonDiscoverySettings","isExpanded","setIsExpanded","promptOpen","setPromptOpen","ExpandableSection","Form","key","val","v","NumberInput","event","comparisonValues","ReqAuthnConstraints","comparisonOpen","setComparisonOpen","MultiLineInput","Header","onChange","save","toggleDeleteDialog","displayName","useParams","provider","setProvider","addAlert","addError","useAlerts","formState","validateSignature","useMetadataDescriptorUrl","metadataDescriptorUrl","fetchedProvider","toggleDisableDialog","DisableConfirm","useConfirmDialog","importSamlKeys","providerId","result","AlertVariant","error","reloadSamlKeys","alias","ViewHeader","toUpperCase","DropdownItem","Divider","MapperLink","name","mapperId","realm","useRealm","Link","toIdentityProviderEditMapper","DetailSettings","isFeatureEnabled","form","useForm","handleSubmit","getValues","reset","selectedMapper","setSelectedMapper","serverInfo","useServerInfo","providerInfo","useMemo","namespaces","namespace","social","id","navigate","useNavigate","setKey","refresh","toTab","tab","toIdentityProvider","useTab","useRoutableTab","settingsTab","mappersTab","permissionsTab","savedProvider","p","origAuthnContextClassRefs","origAuthnContextDeclRefs","DeleteConfirm","ButtonVariant","toIdentityProviders","toggleDeleteMapperDialog","DeleteMapperConfirm","KeycloakSpinner","loader","loaderMappers","loaderMapperTypes","loaderMapper","mapperType","loaderMapperType","sections","FormAccess","GeneralSettings","OIDCGeneralSettings","SamlGeneralSettings","DynamicComponents","DiscoverySettings","OIDCAuthentication","DescriptorSettings","FixedButtonsGroup","FormProvider","PageSection","RoutableTabs","Tab","TabTitleText","ScrollForm","KeycloakDataTable","ListEmptyState","toIdentityProviderAddMapper","ToolbarItem","Button","props","row","mapper","PermissionsTab"],"mappings":"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"}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy