{"version":3,"file":"RequiredFieldsMappingField.mjs","names":["React","useCallback","useState","makeStyles","TextField","FluentTextFieldAutoComplete","FluentIconButton","useTranslation","DropdownIcon","TextFieldIcon","useStyles","theme","root","display","alignItems","requiredFieldContainer","width","input","height","padding","formTextInput","fontSize","labelRoot","RequiredFieldsMappingField","props","$","_c","requiredField","onRequiredFieldChange","options","optionLabelDisplayFunction","groupBy","state","setState","isTextField","setIsTextField","propertyValue","classes","t","t0","key","value","t1","merge","undefined","updatedState","handleStateChange","evt","target","name","handleInputChange","t2","id","evt_0","strValue","handleOnBlur","t3","value_0","handleRequiredFieldChange","t4","handleButtonClick","field","t5","Symbol","for","t6","defaultValue","t7","t8","t9","t10","t11","icon"],"sources":["../../../src/dataBrowser/forms/RequiredFieldsMappingField.jsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { makeStyles, TextField } from '@material-ui/core';\nimport { FluentTextFieldAutoComplete } from '../../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { FluentIconButton } from '../../UI/inputs/buttons/FluentIconButton';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownIcon, TextFieldIcon } from '@fluentui/react-icons';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {\n    display: 'flex',\n    alignItems: 'center'\n  },\n  requiredFieldContainer: {\n    width: '100%',\n    display: 'flex',\n    alignItems: 'center'\n  },\n  input: {\n    height: 34,\n    padding: 0\n  },\n  formTextInput: {\n    fontSize: 14\n  },\n  labelRoot: {\n    fontSize: 14\n  }\n}));\n\nexport const RequiredFieldsMappingField = (props) => {\n  const {\n    requiredField,\n    onRequiredFieldChange,\n    options,\n    optionLabelDisplayFunction,\n    groupBy\n  } = props;\n  const [state, setState] = useState(requiredField);\n  const [isTextField, setIsTextField] = useState(\n    !!!requiredField.propertyValue\n  );\n  const classes = useStyles(props);\n  const { t } = useTranslation();\n\n  const handleStateChange = useCallback(\n    (key, value, merge = false) => {\n      let updatedState = { ...state };\n      if (merge) {\n        updatedState = { ...updatedState, ...value };\n      } else {\n        updatedState[key] = value;\n      }\n      setState(updatedState);\n    },\n    [state]\n  );\n\n  // Having a separate handler for onChange and blur for text fields because\n  // there is a lag between typing and rendering\n  const handleInputChange = useCallback(\n    (evt) => {\n      handleStateChange(evt.target.name, evt.target.value);\n    },\n    [handleStateChange]\n  );\n\n  // Using a handler for blur because we want add the text input to the list of requiredFields\n  // after user has finished typing\n  const handleOnBlur = useCallback(\n    (evt) => {\n      if (evt.target.name === 'strValue' && !!evt.target.value) {\n        onRequiredFieldChange(\n          requiredField.id,\n          { propertyValue: '', strValue: evt.target.value },\n          'strValue',\n          true\n        );\n        handleStateChange(\n          'propertyValue',\n          { propertyValue: '', strValue: evt.target.value },\n          true\n        );\n      } else {\n        onRequiredFieldChange(\n          requiredField.id,\n          evt.target.value,\n          evt.target.name\n        );\n      }\n    },\n    [requiredField, onRequiredFieldChange, handleStateChange]\n  );\n\n  const handleRequiredFieldChange = useCallback(\n    (value) => {\n      onRequiredFieldChange(\n        requiredField.id,\n        { propertyValue: value, strValue: '' },\n        'propertyValue',\n        true\n      );\n      handleStateChange(\n        'propertyValue',\n        { propertyValue: value, strValue: '' },\n        true\n      );\n    },\n    [requiredField, onRequiredFieldChange, handleStateChange]\n  );\n\n  const handleButtonClick = useCallback(() => {\n    setIsTextField(!isTextField);\n  }, [isTextField]);\n\n  let field = null;\n\n  if (isTextField) {\n    field = (\n      <div style={{ width: '100%' }}>\n        <TextField\n          name='strValue'\n          id='strValue'\n          onChange={handleInputChange}\n          onBlur={handleOnBlur}\n          label={t('dataBrowser.mapping.value', { defaultValue: 'Value' })}\n          value={state?.strValue || ''}\n          fullWidth\n          variant='outlined'\n          margin='dense'\n          size='small'\n          style={{ width: 200 }}\n          InputProps={{\n            classes: {\n              root: classes.input,\n              input: classes.formTextInput\n            }\n          }}\n          InputLabelProps={{\n            classes: {\n              root: classes.labelRoot\n            }\n          }}\n        />\n      </div>\n    );\n  } else {\n    field = (\n      <div style={{ width: '100%' }}>\n        <FluentTextFieldAutoComplete\n          name='propertyValue'\n          id='propertyValue'\n          label={t('dataBrowser.mapping.value', { defaultValue: 'Value' })}\n          onChange={handleRequiredFieldChange}\n          optionLabelDisplayFunction={optionLabelDisplayFunction}\n          value={state?.propertyValue || ''}\n          options={options || []}\n          optionKey={optionLabelDisplayFunction ? '' : 'name'}\n          groupBy={groupBy}\n          variant='outlined'\n          margin='dense'\n          style={{ width: 200 }}\n        />\n      </div>\n    );\n  }\n\n  return (\n    <div className={classes.root}>\n      <div className={classes.requiredFieldContainer}>\n        {field}\n        <FluentIconButton\n          className={classes.icon}\n          icon={isTextField ? DropdownIcon : TextFieldIcon}\n          onClick={handleButtonClick}\n        />\n      </div>\n    </div>\n  );\n};\n"],"mappings":"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"}