{"version":3,"file":"FluentSearchField.mjs","names":["React","makeStyles","TextField","InputAdornment","Autocomplete","SearchIcon","useTranslation","FluentButton","useStyles","theme","input","borderRadius","height","props","multiline","padding","marginTop","marginLeft","spacing","marginRight","paddingTop","formTextInput","fontSize","labelRoot","position","width","overflow","clip","FormControl","display","root","paddingLeft","formControl","marginBottom","elementInvisible","MuiAutocomplete","inputRoot","FluentSearchField","$","_c","classes","t","advancedSearch","autoComplete","autoId","handleKeyDown","id","otherProps","searchData","toggleOptions","udprecordid","t0","InputProps","map","_temp","params","defaultValue","type","shrink","focused","labelFocused","_temp2","t1","startAdornment","endAdornment","t2","option","title","props_0","option_0"],"sources":["../../../../src/UI/inputs/textField/FluentSearchField.jsx"],"sourcesContent":["/* eslint-disable no-use-before-define */\nimport React from 'react'\nimport { makeStyles, TextField, InputAdornment } from '@material-ui/core'\nimport Autocomplete from '@material-ui/lab/Autocomplete'\nimport { SearchIcon } from '@fluentui/react-icons'\nimport { useTranslation } from 'react-i18next'\nimport { FluentButton } from '../buttons/FluentButton'\n\nconst useStyles = makeStyles((theme) => ({\n  input: {\n    borderRadius: 2,\n    height: (props) => !props.multiline && 32,\n    padding: (props) => !props.multiline && 0,\n    marginTop: 3,\n    '& .MuiInputAdornment-positionStart': {\n      marginLeft: theme.spacing(1)\n    },\n    '& .MuiInputAdornment-positionEnd': {\n      marginRight: 0\n    },\n    '& .MuiInputAdornment-filled.MuiInputAdornment-positionStart:not(.MuiInputAdornment-hiddenLabel)' : {\n      marginTop: 2\n    }, \n    '& .MuiFilledInput-input' : {\n      paddingTop: theme.spacing(2)\n    }\n  },\n  formTextInput: {\n    fontSize: 14\n  },\n  labelRoot: {\n    fontSize: 14,\n    marginTop: -8,\n    position: 'absolute !important',\n    height: 1,\n    width: 1,\n    overflow: 'hidden',\n    clip: 'rect(1px 1px 1px 1px)' /* IE6, IE7 */\n  },\n  FormControl: {\n    display: 'none',\n    marginTop: 0,\n    '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"]': {\n      padding: 0\n    }\n  },\n\n  root: {\n    marginTop: 5,\n    '& .MuiFormLabel-root': {\n      marginTop: -27,\n      marginLeft: -15\n    },\n    '& .MuiInputAdornment-root': {\n      paddingLeft: theme.spacing(1)\n    }\n  },\n  formControl: {\n    '& .MuiFormControl-marginNormal': {\n      marginTop: 4,\n      marginBottom: 4\n    },\n    marginTop: 4,\n    marginBottom: 4\n  },\n\n  elementInvisible: {\n    position: 'absolute !important',\n    height: 1,\n    width: 1,\n    overflow: 'hidden',\n    clip: 'rect(1px 1px 1px 1px)' /* IE6, IE7 */\n  },\n\n  MuiAutocomplete: {\n    inputRoot: {\n      '&&[class*=\"MuiOutlinedInput-root\"] $input': {\n        padding: 1\n      }\n    }\n  }\n}))\n\nexport const FluentSearchField = (props) => {\n  const classes = useStyles(props)\n  const { t } = useTranslation()\n  const {\n    autoComplete,\n    searchData,\n    autoId,\n    toggleOptions,\n    handleKeyDown,\n    advancedSearch,\n    udprecordid,\n    id,\n    ...otherProps\n  } = props\n\n  return (\n    <div>\n      {autoComplete && (\n        <Autocomplete\n          freeSolo\n          id={autoId}\n          disableClearable\n          options={searchData && searchData.map((option) => option.title)}\n          classes={{\n            root: classes.formControl,\n            input: classes.MuiAutocomplete\n          }}\n          renderInput={(params) => (\n            <TextField\n              {...params}\n              {...otherProps}\n              label={t('ui.search.searchInput', {\n                defaultValue: 'Search input'\n              })}\n              margin='normal'\n              variant='outlined'\n              InputProps={{\n                ...params.InputProps,\n                type: 'search',\n                classes: {\n                  root: classes.input,\n                  input: classes.formTextInput,\n                  ...props.InputProps?.classes\n                }\n              }}\n              InputLabelProps={{\n                shrink: false,\n                classes: {\n                  root: classes.labelRoot,\n                  focused: classes.labelFocused\n                }\n              }}\n            />\n          )}\n          renderOption={(props, option) => \n            (<li \n              udprecordid={`'udpRecord-FluentSearchField'+${option.title}`} \n              {...props}\n            >\n              {option.title}\n            </li>)\n          }\n        />\n      )}\n      {!autoComplete && (\n        <TextField\n          label={t('ui.search.searchInput', {\n            defaultValue: 'Search input'\n          })}\n          margin='normal'\n          variant='outlined'\n          onKeyDown={handleKeyDown}\n          fullWidth\n          {...otherProps}\n          classes={{\n            root: classes.formControl\n          }}\n          InputProps={{\n            type: 'search',\n            startAdornment: (\n              <InputAdornment position='start'>\n                <SearchIcon />\n              </InputAdornment>\n            ),\n            endAdornment: advancedSearch && (\n              <InputAdornment position='end'>\n                <FluentButton\n                  variant='contained'\n                  color='primary'\n                  onMouseEnter={() => toggleOptions(true)}\n                >\n                  {t('ui.search.advancedSearch', {\n                    defaultValue: 'Advanced Search'\n                  })}\n                </FluentButton>\n              </InputAdornment>\n            ),\n            classes: {\n              root: classes.input,\n              input: classes.formTextInput\n            }\n          }}\n          InputLabelProps={{\n            shrink: false,\n            classes: {\n              root: classes.labelRoot,\n              focused: classes.labelFocused\n            }\n          }}\n          inputProps={{\n            id:id, \n            udprecordid:udprecordid,\n          }}\n        />\n      )}\n    </div>\n  );\n}\n"],"mappings":"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"}