{"version":3,"file":"UserRoleAutoComplete.mjs","names":["React","useCallback","useEffect","useState","Chip","TextField","Autocomplete","UdpAutocomplete","UserRoleAutoComplete","props","$","_c","id","options","disabled","onChange","onChangeProp","initialValue","value","optionLabel","groupBy","userRoles","setUserRoles","isFormField","t0","onBlur","helperText","error","undefined","acValue","setACValue","t1","e","target","t2","e_0","userId","replace","updatedUserRoles","userRole","find","ur","roles","push","handleChange","t3","t4","userId_0","foundUserRole","ur_0","roleIds","map","_temp","roleValues","filter","option","includes","roleId","t5","t6","t7","t8","option_1","_temp3","t9","e_1","t10","option_3","t11","_temp2","role","option_0","option_2","name"],"sources":["../../../../../src/shell/ui/user/form/UserRoleAutoComplete.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { Chip, TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { UdpAutocomplete } from '../../../../UI/fluent-web-components';\n// import { FluentTextField } from '../../../../UI/inputs/textField';\n\nexport const UserRoleAutoComplete = props => {\n  const {\n    id,\n    label,\n    placeholder,\n    options,\n    textFieldProps,\n    disabled,\n    onChange: onChangeProp,\n    initialValue,\n    value,\n    optionLabel,\n    groupBy,\n    userRoles,\n    setUserRoles,\n    isFormField = false,\n    onBlur,\n    helperText,\n    error,\n    ...other\n  } = props;\n\n  const [acValue, setACValue] = useState(initialValue);\n\n  // Fix onChange to something Field can understand\n  const onChange = useCallback((e) => {\n    onChangeProp?.(e?.target?.value)\n    setACValue(e?.target?.value);\n  }, [\n    onChangeProp,\n  ]);\n\n  const handleChange = (e) => {\n    onChange(e);\n    if (userRoles && setUserRoles) {\n      const userId = id.replace('_role', '');\n      const updatedUserRoles = [...userRoles];\n      const userRole = updatedUserRoles.find(ur => ur.id === userId);\n      if (userRole) {\n        userRole.roles = value;\n      } else {\n        updatedUserRoles.push({ id: userId, roles: value });\n      }\n      setUserRoles(updatedUserRoles);\n      setACValue(e?.target?.value);\n    }\n    else {\n      setACValue(e?.target?.value);\n    }\n  };\n\n  useEffect(() => {\n    if (!userRoles) {\n      return;\n    }\n    const userId = id.replace('_role', '');\n    const foundUserRole = userRoles.find(ur => ur.id === userId);\n    if (foundUserRole) {\n      const roleIds = foundUserRole.roles.map(role => role.roleId);\n      const roleValues = options.filter(option =>\n        roleIds.includes(option.roleId)\n      );\n      setACValue(roleValues);\n    }\n  }, [options, userRoles, id]);\n\n  // need to NOT include onChange in dependency list, or it will re-render on every change\n  useEffect(() => {\n    if (isFormField && initialValue) {\n      onChange(null, initialValue);\n      setACValue(initialValue);\n    }\n  }, [initialValue, isFormField]);\n\n  return (\n    <UdpAutocomplete\n      multiple\n      id={id}\n      placeholder='Select Role'\n      disabled={disabled}\n      options={options || []}\n      optionValue={option => option?.roleId}\n      optionLabel={\n        optionLabel\n          ? option => option[optionLabel] || ''\n          : option => option.name\n      }\n      onChange={e => handleChange(e)}\n      value={acValue}\n      optionGroup={groupBy ? option => option[groupBy] : ''}\n      required={true}\n      onBlur={onBlur}\n      error={error}\n      helperText={helperText}\n    />\n  );\n};\n"],"mappings":"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"}