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

theme.keycloak.v2.admin.resources.assets.form-state-bdbf39d3.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"form-state-bdbf39d3.js","sources":["../../src/user/FederatedUserLink.tsx","../../src/user/components/UserProfileGroup.tsx","../../src/user/components/OptionsComponent.tsx","../../src/user/components/SelectComponent.tsx","../../src/user/components/TextAreaComponent.tsx","../../src/user/components/TextComponent.tsx","../../src/user/UserProfileFields.tsx","../../src/user/user-credentials/RequiredActionMultiSelect.tsx","../../src/user/UserForm.tsx","../../src/user/form-state.ts"],"sourcesContent":["import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport type UserRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userRepresentation\";\nimport { Button } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAccess } from \"../context/access/Access\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { toCustomUserFederation } from \"../user-federation/routes/CustomUserFederation\";\nimport { useFetch } from \"../utils/useFetch\";\n\ntype FederatedUserLinkProps = {\n  user: UserRepresentation;\n};\n\nexport const FederatedUserLink = ({ user }: FederatedUserLinkProps) => {\n  const access = useAccess();\n  const { realm } = useRealm();\n\n  const [component, setComponent] = useState();\n\n  useFetch(\n    () =>\n      access.hasAccess(\"view-realm\")\n        ? adminClient.components.findOne({\n            id: (user.federationLink || user.origin)!,\n          })\n        : adminClient.userStorageProvider.name({\n            id: (user.federationLink || user.origin)!,\n          }),\n    setComponent,\n    [],\n  );\n\n  if (!component) return null;\n\n  return (\n     (\n        \n      )}\n    >\n      {component.name}\n    \n  );\n};\n","import { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport { FormGroup } from \"@patternfly/react-core\";\nimport { PropsWithChildren } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { HelpItem } from \"ui-shared\";\nimport { label } from \"../utils\";\n\nexport type UserProfileFieldsProps = UserProfileAttribute & {\n  roles?: string[];\n};\n\nconst isRequired = (attribute: UserProfileAttribute) =>\n  Object.keys(attribute.required || {}).length !== 0 ||\n  ((attribute.validations?.length?.min as number) || 0) > 0;\n\nexport const UserProfileGroup = ({\n  children,\n  ...attribute\n}: PropsWithChildren) => {\n  const { t } = useTranslation(\"users\");\n  const helpText = attribute.annotations?.[\"inputHelperTextBefore\"] as string;\n\n  const {\n    formState: { errors },\n  } = useFormContext();\n\n  return (\n    \n        ) : undefined\n      }\n    >\n      {children}\n    \n  );\n};\n","import { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport { Checkbox, Radio } from \"@patternfly/react-core\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { UserProfileGroup } from \"./UserProfileGroup\";\nimport { Options } from \"../UserProfileFields\";\nimport { fieldName } from \"../utils\";\n\nexport const OptionComponent = (attr: UserProfileAttribute) => {\n  const { control } = useFormContext();\n  const type = attr.annotations?.[\"inputType\"] as string;\n  const isMultiSelect = type.includes(\"multiselect\");\n  const Component = isMultiSelect ? Checkbox : Radio;\n\n  const options = (attr.validations?.options as Options).options || [];\n\n  return (\n    \n       (\n          <>\n            {options.map((option) => (\n               {\n                  if (isMultiSelect) {\n                    if (field.value.includes(option)) {\n                      field.onChange(\n                        field.value.filter((item: string) => item !== option),\n                      );\n                    } else {\n                      field.onChange([...field.value, option]);\n                    }\n                  } else {\n                    field.onChange([option]);\n                  }\n                }}\n                readOnly={attr.readOnly}\n              />\n            ))}\n          \n        )}\n      />\n    \n  );\n};\n","import { Select, SelectOption } from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Options } from \"../UserProfileFields\";\nimport { fieldName } from \"../utils\";\nimport { UserProfileFieldsProps, UserProfileGroup } from \"./UserProfileGroup\";\n\nexport const SelectComponent = (attribute: UserProfileFieldsProps) => {\n  const { t } = useTranslation(\"users\");\n  const { control } = useFormContext();\n  const [open, setOpen] = useState(false);\n\n  const isMultiSelect = attribute.annotations?.[\"inputType\"] === \"multiselect\";\n  const options = (attribute.validations?.options as Options).options || [];\n  return (\n    \n       (\n           setOpen(b)}\n            onSelect={(_, value) => {\n              const option = value.toString();\n              if (isMultiSelect) {\n                if (field.value.includes(option)) {\n                  field.onChange(\n                    field.value.filter((item: string) => item !== option),\n                  );\n                } else {\n                  field.onChange([...field.value, option]);\n                }\n              } else {\n                field.onChange(option);\n                setOpen(false);\n              }\n            }}\n            selections={field.value ? field.value : t(\"common:choose\")}\n            variant={isMultiSelect ? \"typeaheadmulti\" : \"single\"}\n            aria-label={t(\"common:selectOne\")}\n            isOpen={open}\n            readOnly={attribute.readOnly}\n          >\n            {options.map((option) => (\n              \n                {option}\n              \n            ))}\n          \n        )}\n      />\n    \n  );\n};\n","import { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport { useFormContext } from \"react-hook-form\";\nimport { KeycloakTextArea } from \"../../components/keycloak-text-area/KeycloakTextArea\";\nimport { UserProfileGroup } from \"./UserProfileGroup\";\nimport { fieldName } from \"../utils\";\n\nexport const TextAreaComponent = (attr: UserProfileAttribute) => {\n  const { register } = useFormContext();\n\n  return (\n    \n      \n    \n  );\n};\n","import { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport { useFormContext } from \"react-hook-form\";\nimport { KeycloakTextInput } from \"ui-shared\";\nimport { fieldName } from \"../utils\";\nimport { UserProfileGroup } from \"./UserProfileGroup\";\n\nexport const TextComponent = (attr: UserProfileAttribute) => {\n  const { register } = useFormContext();\n  const inputType = attr.annotations?.[\"inputType\"] as string | undefined;\n  const type: any = inputType?.startsWith(\"html\")\n    ? inputType.substring(\"html\".length + 2)\n    : \"text\";\n\n  return (\n    \n      \n    \n  );\n};\n","import type { UserProfileAttribute } from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport UserProfileConfig from \"@keycloak/keycloak-admin-client/lib/defs/userProfileConfig\";\nimport { Form, Text } from \"@patternfly/react-core\";\nimport { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ScrollForm } from \"../components/scroll-form/ScrollForm\";\nimport { OptionComponent } from \"./components/OptionsComponent\";\nimport { SelectComponent } from \"./components/SelectComponent\";\nimport { TextAreaComponent } from \"./components/TextAreaComponent\";\nimport { TextComponent } from \"./components/TextComponent\";\n\ntype UserProfileFieldsProps = {\n  config: UserProfileConfig;\n  roles?: string[];\n};\n\nexport type UserProfileError = {\n  responseData: { errors?: { errorMessage: string }[] };\n};\n\nexport type Options = {\n  options: string[] | undefined;\n};\n\nexport function isUserProfileError(error: unknown): error is UserProfileError {\n  return !!(error as UserProfileError).responseData.errors;\n}\n\nexport function userProfileErrorToString(error: UserProfileError) {\n  return (\n    error.responseData[\"errors\"]?.map((e) => e[\"errorMessage\"]).join(\"\\n\") || \"\"\n  );\n}\n\nconst FieldTypes = [\n  \"text\",\n  \"textarea\",\n  \"select\",\n  \"select-radiobuttons\",\n  \"multiselect\",\n  \"multiselect-checkboxes\",\n  \"html5-email\",\n  \"html5-tel\",\n  \"html5-url\",\n  \"html5-number\",\n  \"html5-range\",\n  \"html5-datetime-local\",\n  \"html5-date\",\n  \"html5-month\",\n  \"html5-time\",\n] as const;\n\nexport type Field = (typeof FieldTypes)[number];\n\nexport const FIELDS: {\n  [index in Field]: (props: any) => JSX.Element;\n} = {\n  text: TextComponent,\n  textarea: TextAreaComponent,\n  select: SelectComponent,\n  \"select-radiobuttons\": OptionComponent,\n  multiselect: SelectComponent,\n  \"multiselect-checkboxes\": OptionComponent,\n  \"html5-email\": TextComponent,\n  \"html5-tel\": TextComponent,\n  \"html5-url\": TextComponent,\n  \"html5-number\": TextComponent,\n  \"html5-range\": TextComponent,\n  \"html5-datetime-local\": TextComponent,\n  \"html5-date\": TextComponent,\n  \"html5-month\": TextComponent,\n  \"html5-time\": TextComponent,\n} as const;\n\nexport const isValidComponentType = (value: string): value is Field =>\n  value in FIELDS;\n\nexport const UserProfileFields = ({\n  config,\n  roles = [\"admin\"],\n}: UserProfileFieldsProps) => {\n  const { t } = useTranslation(\"realm-settings\");\n\n  return (\n     ({\n        title: g.displayHeader || g.name || t(\"general\"),\n        panel: (\n          
\n {g.displayDescription && (\n {g.displayDescription}\n )}\n {config.attributes?.map((attribute) => (\n \n {(attribute.group || \"\") === g.name && (\n \n )}\n \n ))}\n
\n ),\n }))}\n />\n );\n};\n\ntype FormFieldProps = {\n attribute: UserProfileAttribute;\n roles: string[];\n};\n\nconst FormField = ({ attribute, roles }: FormFieldProps) => {\n const componentType = (attribute.annotations?.[\"inputType\"] ||\n \"text\") as Field;\n const Component = FIELDS[componentType];\n\n return ;\n};\n","import type RequiredActionProviderRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/requiredActionProviderRepresentation\";\nimport {\n FormGroup,\n Select,\n SelectOption,\n SelectVariant,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useFetch } from \"../../utils/useFetch\";\n\ntype RequiredActionMultiSelectProps = {\n name: string;\n label: string;\n help: string;\n};\n\nexport const RequiredActionMultiSelect = ({\n name,\n label,\n help,\n}: RequiredActionMultiSelectProps) => {\n const { t } = useTranslation(\"users\");\n const { control } = useFormContext();\n const [open, setOpen] = useState(false);\n const [requiredActions, setRequiredActions] = useState<\n RequiredActionProviderRepresentation[]\n >([]);\n\n useFetch(\n () => adminClient.authenticationManagement.getRequiredActions(),\n (actions) => {\n const enabledUserActions = actions.filter((action) => {\n return action.enabled;\n });\n setRequiredActions(enabledUserActions);\n },\n [],\n );\n\n return (\n }\n fieldId=\"actions\"\n >\n (\n setOpen(open)}\n isOpen={open}\n selections={field.value}\n onSelect={(_, selectedValue) =>\n field.onChange(\n field.value.find((o: string) => o === selectedValue)\n ? field.value.filter((item: string) => item !== selectedValue)\n : [...field.value, selectedValue],\n )\n }\n onClear={(event) => {\n event.stopPropagation();\n field.onChange([]);\n }}\n typeAheadAriaLabel={t(\"resetActions\")}\n >\n {requiredActions.map(({ alias, name }) => (\n \n {name}\n \n ))}\n \n )}\n />\n \n );\n};\n","import type GroupRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/groupRepresentation\";\nimport type RealmRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/realmRepresentation\";\nimport type UserRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userRepresentation\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n Chip,\n ChipGroup,\n FormGroup,\n InputGroup,\n Switch,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../admin-client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { GroupPickerDialog } from \"../components/group/GroupPickerDialog\";\nimport { KeycloakTextInput } from \"../components/keycloak-text-input/KeycloakTextInput\";\nimport { useAccess } from \"../context/access/Access\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { emailRegexPattern } from \"../util\";\nimport useFormatDate from \"../utils/useFormatDate\";\nimport useIsFeatureEnabled, { Feature } from \"../utils/useIsFeatureEnabled\";\nimport { FederatedUserLink } from \"./FederatedUserLink\";\nimport { UserProfileFields } from \"./UserProfileFields\";\nimport { UserFormFields } from \"./form-state\";\nimport { RequiredActionMultiSelect } from \"./user-credentials/RequiredActionMultiSelect\";\n\nexport type BruteForced = {\n isBruteForceProtected?: boolean;\n isLocked?: boolean;\n};\n\nexport type UserFormProps = {\n user?: UserRepresentation;\n bruteForce?: BruteForced;\n realm?: RealmRepresentation;\n save: (user: UserFormFields) => void;\n onGroupsUpdate?: (groups: GroupRepresentation[]) => void;\n};\n\nconst EmailVerified = () => {\n const { t } = useTranslation(\"users\");\n const { control } = useFormContext();\n return (\n \n }\n >\n (\n field.onChange(value)}\n isChecked={field.value}\n label={t(\"common:yes\")}\n labelOff={t(\"common:no\")}\n />\n )}\n />\n \n );\n};\n\nexport const UserForm = ({\n user,\n realm,\n bruteForce: { isBruteForceProtected, isLocked } = {\n isBruteForceProtected: false,\n isLocked: false,\n },\n save,\n onGroupsUpdate,\n}: UserFormProps) => {\n const { t } = useTranslation(\"users\");\n const { realm: realmName } = useRealm();\n const formatDate = useFormatDate();\n const isFeatureEnabled = useIsFeatureEnabled();\n\n const navigate = useNavigate();\n const { addAlert, addError } = useAlerts();\n const { hasAccess } = useAccess();\n const isManager = hasAccess(\"manage-users\");\n const canViewFederationLink = hasAccess(\"view-realm\");\n\n const {\n handleSubmit,\n register,\n watch,\n control,\n reset,\n formState: { errors },\n } = useFormContext();\n const watchUsernameInput = watch(\"username\");\n const [selectedGroups, setSelectedGroups] = useState(\n [],\n );\n const [open, setOpen] = useState(false);\n const [locked, setLocked] = useState(isLocked);\n\n const unLockUser = async () => {\n try {\n await adminClient.attackDetection.del({ id: user!.id! });\n addAlert(t(\"unlockSuccess\"), AlertVariant.success);\n } catch (error) {\n addError(\"users:unlockError\", error);\n }\n };\n\n const deleteItem = (id: string) => {\n setSelectedGroups(selectedGroups.filter((item) => item.name !== id));\n onGroupsUpdate?.(selectedGroups);\n };\n\n const addChips = async (groups: GroupRepresentation[]): Promise => {\n setSelectedGroups([...selectedGroups!, ...groups]);\n onGroupsUpdate?.([...selectedGroups!, ...groups]);\n };\n\n const addGroups = async (groups: GroupRepresentation[]): Promise => {\n const newGroups = groups;\n\n newGroups.forEach(async (group) => {\n try {\n await adminClient.users.addToGroup({\n id: user!.id!,\n groupId: group.id!,\n });\n addAlert(t(\"users:addedGroupMembership\"), AlertVariant.success);\n } catch (error) {\n addError(\"users:addedGroupMembershipError\", error);\n }\n });\n };\n\n const toggleModal = () => {\n setOpen(!open);\n };\n\n const isUserProfileEnabled =\n isFeatureEnabled(Feature.DeclarativeUserProfile) &&\n realm?.attributes?.userProfileEnabled === \"true\";\n\n return (\n \n {open && (\n {\n user?.id ? addGroups(groups || []) : addChips(groups || []);\n setOpen(false);\n }}\n onClose={() => setOpen(false)}\n filterGroups={selectedGroups}\n />\n )}\n {isUserProfileEnabled && }\n {user?.id && (\n <>\n \n \n \n \n \n \n \n )}\n \n {(user?.federationLink || user?.origin) && canViewFederationLink && (\n \n }\n >\n \n \n )}\n {isUserProfileEnabled ? (\n \n ) : (\n <>\n {!realm?.registrationEmailAsUsername && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n )}\n {isBruteForceProtected && (\n \n }\n >\n {\n unLockUser();\n setLocked(value);\n }}\n isChecked={locked}\n isDisabled={!locked}\n label={t(\"common:on\")}\n labelOff={t(\"common:off\")}\n />\n \n )}\n {!user?.id && (\n \n }\n >\n (\n \n \n {selectedGroups.map((currentChip) => (\n deleteItem(currentChip.name!)}\n >\n {currentChip.path}\n \n ))}\n \n \n {t(\"users:joinGroups\")}\n \n \n )}\n />\n \n )}\n\n \n \n {user?.id ? t(\"common:save\") : t(\"common:create\")}\n \n \n user?.id ? reset(user) : navigate(`/${realmName}/users`)\n }\n variant=\"link\"\n >\n {user?.id ? t(\"common:revert\") : t(\"common:cancel\")}\n \n \n \n );\n};\n","import UserRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userRepresentation\";\nimport {\n KeyValueType,\n arrayToKeyValue,\n keyValueToArray,\n} from \"../components/key-value-form/key-value-convert\";\n\nexport type UserFormFields = Omit & {\n attributes?: KeyValueType[];\n};\n\nexport function toUserFormFields(data: UserRepresentation): UserFormFields {\n const attributes = arrayToKeyValue(data.attributes);\n\n return { ...data, attributes };\n}\n\nexport function toUserRepresentation(data: UserFormFields): UserRepresentation {\n const username = data.username?.trim();\n const attributes = keyValueToArray(data.attributes);\n\n return { ...data, username, attributes };\n}\n"],"names":["FederatedUserLink","user","access","useAccess","realm","useRealm","component","setComponent","useState","useFetch","adminClient","jsx","Button","props","Link","toCustomUserFederation","isRequired","attribute","UserProfileGroup","children","t","useTranslation","helpText","errors","useFormContext","FormGroup","label","HelpItem","OptionComponent","attr","control","isMultiSelect","Component","Checkbox","Radio","options","Controller","fieldName","field","Fragment","option","item","SelectComponent","open","setOpen","Select","b","_","value","SelectOption","TextAreaComponent","register","KeycloakTextArea","TextComponent","inputType","type","KeycloakTextInput","isUserProfileError","error","userProfileErrorToString","e","FIELDS","UserProfileFields","config","roles","ScrollForm","g","Form","Text","FormField","componentType","RequiredActionMultiSelect","name","help","requiredActions","setRequiredActions","actions","enabledUserActions","action","SelectVariant","selectedValue","o","event","alias","EmailVerified","Switch","UserForm","isBruteForceProtected","isLocked","save","onGroupsUpdate","realmName","formatDate","useFormatDate","isFeatureEnabled","useIsFeatureEnabled","navigate","useNavigate","addAlert","addError","useAlerts","hasAccess","isManager","canViewFederationLink","handleSubmit","watch","reset","watchUsernameInput","selectedGroups","setSelectedGroups","locked","setLocked","unLockUser","AlertVariant","deleteItem","id","addChips","groups","addGroups","group","toggleModal","isUserProfileEnabled","Feature","jsxs","FormAccess","GroupPickerDialog","emailRegexPattern","InputGroup","ChipGroup","currentChip","Chip","ActionGroup","toUserFormFields","data","attributes","arrayToKeyValue","toUserRepresentation","username","keyValueToArray"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy