theme.keycloak.v2.admin.resources.assets.AddMapper-C3Bbsam6.js.map Maven / Gradle / Ivy
{"version":3,"file":"AddMapper-C3Bbsam6.js","sources":["../../src/identity-providers/add/AddMapperForm.tsx","../../src/identity-providers/add/AddMapper.tsx"],"sourcesContent":["import type IdentityProviderMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation\";\nimport type { IdentityProviderMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperTypeRepresentation\";\nimport {\n HelpItem,\n KeycloakSelect,\n SelectControl,\n SelectVariant,\n TextControl,\n} from \"@keycloak/keycloak-ui-shared\";\nimport { FormGroup, SelectOption } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, UseFormReturn } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport type { IdPMapperRepresentationWithAttributes } from \"./AddMapper\";\n\ntype AddMapperFormProps = {\n mapperTypes: IdentityProviderMapperRepresentation[];\n mapperType: IdentityProviderMapperTypeRepresentation;\n id: string;\n updateMapperType: (\n mapperType: IdentityProviderMapperTypeRepresentation,\n ) => void;\n form: UseFormReturn;\n};\n\nexport const AddMapperForm = ({\n mapperTypes,\n mapperType,\n form,\n id,\n updateMapperType,\n}: AddMapperFormProps) => {\n const { t } = useTranslation();\n\n const { control } = form;\n\n const [mapperTypeOpen, setMapperTypeOpen] = useState(false);\n\n const syncModes = [\"inherit\", \"import\", \"legacy\", \"force\"];\n\n return (\n <>\n \n ({\n key: option.toUpperCase(),\n value: t(`syncModes.${option}`),\n }))}\n controller={{ defaultValue: syncModes[0].toUpperCase() }}\n />\n \n }\n fieldId=\"identityProviderMapper\"\n >\n (\n setMapperTypeOpen(!mapperTypeOpen)}\n onSelect={(value) => {\n const mapperType =\n value as IdentityProviderMapperTypeRepresentation;\n updateMapperType(mapperType);\n field.onChange(mapperType.id);\n setMapperTypeOpen(false);\n }}\n selections={mapperType.name}\n variant={SelectVariant.single}\n aria-label={t(\"mapperType\")}\n isOpen={mapperTypeOpen}\n >\n {mapperTypes.map((option) => (\n \n {option.name}\n \n ))}\n \n )}\n />\n \n >\n );\n};\n","import type IdentityProviderMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation\";\nimport type { IdentityProviderMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperTypeRepresentation\";\nimport type RoleRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/roleRepresentation\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { TextControl } from \"@keycloak/keycloak-ui-shared\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { DynamicComponents } from \"../../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport type { AttributeForm } from \"../../components/key-value-form/AttributeForm\";\nimport { KeycloakSpinner } from \"../../components/keycloak-spinner/KeycloakSpinner\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport useLocaleSort, { mapByKey } from \"../../utils/useLocaleSort\";\nimport { useParams } from \"../../utils/useParams\";\nimport {\n IdentityProviderEditMapperParams,\n toIdentityProviderEditMapper,\n} from \"../routes/EditMapper\";\nimport { toIdentityProvider } from \"../routes/IdentityProvider\";\nimport { AddMapperForm } from \"./AddMapperForm\";\n\nexport type IdPMapperRepresentationWithAttributes =\n IdentityProviderMapperRepresentation & AttributeForm;\n\nexport type Role = RoleRepresentation & {\n clientId?: string;\n};\n\nexport default function AddMapper() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n\n const form = useForm({\n shouldUnregister: true,\n });\n const { handleSubmit } = form;\n const { addAlert, addError } = useAlerts();\n const navigate = useNavigate();\n const localeSort = useLocaleSort();\n\n const { realm } = useRealm();\n\n const { id, providerId, alias } =\n useParams();\n\n const [mapperTypes, setMapperTypes] =\n useState();\n\n const [currentMapper, setCurrentMapper] =\n useState();\n\n const save = async (idpMapper: IdentityProviderMapperRepresentation) => {\n const mapper = convertFormValuesToObject(idpMapper);\n\n const identityProviderMapper = {\n ...mapper,\n config: {\n ...mapper.config,\n },\n identityProviderAlias: alias!,\n };\n\n if (id) {\n try {\n await adminClient.identityProviders.updateMapper(\n {\n id: id!,\n alias: alias!,\n },\n { ...identityProviderMapper, id },\n );\n addAlert(t(\"mapperSaveSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(t(\"mapperSaveError\"), error);\n }\n } else {\n try {\n const createdMapper = await adminClient.identityProviders.createMapper({\n identityProviderMapper,\n alias: alias!,\n });\n\n addAlert(t(\"mapperCreateSuccess\"), AlertVariant.success);\n navigate(\n toIdentityProviderEditMapper({\n realm,\n alias,\n providerId: providerId,\n id: createdMapper.id,\n }),\n );\n } catch (error) {\n addError(t(\"mapperCreateError\"), error);\n }\n }\n };\n\n const [toggleDeleteMapperDialog, DeleteMapperConfirm] = useConfirmDialog({\n titleKey: \"deleteProviderMapper\",\n messageKey: t(\"deleteMapperConfirm\", {\n mapper: currentMapper?.name,\n }),\n continueButtonLabel: \"delete\",\n continueButtonVariant: ButtonVariant.danger,\n onConfirm: async () => {\n try {\n await adminClient.identityProviders.delMapper({\n alias: alias,\n id: id!,\n });\n addAlert(t(\"deleteMapperSuccess\"), AlertVariant.success);\n navigate(\n toIdentityProvider({ providerId, alias, tab: \"mappers\", realm }),\n );\n } catch (error) {\n addError(\"deleteErrorIdentityProvider\", error);\n }\n },\n });\n\n useFetch(\n () =>\n Promise.all([\n id ? adminClient.identityProviders.findOneMapper({ alias, id }) : null,\n adminClient.identityProviders.findMapperTypes({ alias }),\n ]),\n ([mapper, mapperTypes]) => {\n const mappers = localeSort(Object.values(mapperTypes), mapByKey(\"name\"));\n if (mapper) {\n setCurrentMapper(\n mappers.find(({ id }) => id === mapper.identityProviderMapper),\n );\n setupForm(mapper);\n } else {\n setCurrentMapper(mappers[0]);\n }\n\n setMapperTypes(mappers);\n },\n [id],\n );\n\n const setupForm = (mapper: IdentityProviderMapperRepresentation) => {\n convertToFormValues(mapper, form.setValue);\n };\n\n if (!mapperTypes || !currentMapper) {\n return ;\n }\n\n return (\n \n \n \n {t(\"delete\")}\n ,\n ]\n : undefined\n }\n divider\n />\n \n \n {id && (\n \n )}\n {currentMapper.properties && (\n <>\n \n\n \n >\n )}\n \n \n \n \n \n \n \n );\n}\n"],"names":["AddMapperForm","mapperTypes","mapperType","form","id","updateMapperType","t","useTranslation","control","mapperTypeOpen","setMapperTypeOpen","useState","syncModes","jsxs","Fragment","jsx","TextControl","SelectControl","option","FormGroup","HelpItem","Controller","field","KeycloakSelect","value","SelectVariant","SelectOption","AddMapper","adminClient","useAdminClient","useForm","handleSubmit","addAlert","addError","useAlerts","navigate","useNavigate","localeSort","useLocaleSort","realm","useRealm","providerId","alias","useParams","setMapperTypes","currentMapper","setCurrentMapper","save","idpMapper","mapper","convertFormValuesToObject","identityProviderMapper","AlertVariant","error","createdMapper","toIdentityProviderEditMapper","toggleDeleteMapperDialog","DeleteMapperConfirm","useConfirmDialog","ButtonVariant","toIdentityProvider","useFetch","mappers","mapByKey","setupForm","convertToFormValues","KeycloakSpinner","PageSection","ViewHeader","DropdownItem","FormAccess","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":"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"}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy