{"version":3,"file":"ListSearch.mjs","names":["React","useCallback","useMemo","useState","TextField","List","ListItem","ListItemText","makeStyles","Chip","Divider","useTranslation","useStyles","theme","root","input","height","padding","formTextInput","fontSize","labelRoot","chipContainer","marginRight","spacing","divider","width","ListSearch","props","$","_c","items","onClick","contentKey","t0","tagKey","t1","includeTags","t2","searchLabel","maxHeight","t3","undefined","searchText","setSearchText","classes","t","t4","bb0","length","t5","Symbol","for","filter","item","toLowerCase","includes","filteredItems","event","target","value","handleSearchChange","t6","handleOnClick","t7","t8","defaultValue","t9","t10","t11","t12","t13","t14","t15","overflow","overflowX","t16","t17","item_0","index","map","t18"],"sources":["../../../src/udp/ShortcutContent/ListSearch.jsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react';\nimport {\n  TextField,\n  List,\n  ListItem,\n  ListItemText,\n  makeStyles,\n  Chip,\n  Divider\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n  root: {},\n  input: {\n    height: 34,\n    padding: 0\n  },\n  formTextInput: {\n    fontSize: 14\n  },\n  labelRoot: {\n    fontSize: 14\n  },\n  chipContainer: {\n    marginRight: theme.spacing(1)\n  },\n  divider: { width: '100%' }\n}));\n\nexport const ListSearch = (props) => {\n  const {\n    items,\n    onClick,\n    contentKey = 'content',\n    tagKey = 'code',\n    includeTags = 'false',\n    searchLabel,\n    maxHeight = 400\n  } = props;\n  const [searchText, setSearchText] = useState('');\n  const classes = useStyles(props);\n\n  const { t } = useTranslation();\n\n  const filteredItems = useMemo(() => {\n    if (!items.length) {\n      return [];\n    }\n    return items?.filter((item) => {\n      if (item[contentKey]?.toLowerCase().includes(searchText?.toLowerCase())) {\n        return true;\n      }\n      if (\n        includeTags &&\n        item[tagKey]?.toLowerCase().includes(searchText?.toLowerCase())\n      ) {\n        return true;\n      }\n      return false;\n    });\n  }, [searchText, items, contentKey, tagKey, includeTags]);\n\n  const handleSearchChange = (event) => {\n    setSearchText(event.target.value);\n  };\n\n  const handleOnClick = useCallback(\n    (value) => {\n      if (onClick) {\n        onClick(value);\n      }\n    },\n    [onClick]\n  );\n\n  return (\n    <div className={classes.root}>\n      <TextField\n        label={searchLabel ?? t('common.search', { defaultValue: 'Search' })}\n        value={searchText}\n        onChange={handleSearchChange}\n        fullWidth\n        variant='outlined'\n        size='small'\n        margin='dense'\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      <List\n        style={{ maxHeight: maxHeight, overflow: 'auto', overflowX: 'hidden' }}\n      >\n        {filteredItems.map((item, index) => (\n          <>\n            <ListItem\n              button\n              onClick={() => handleOnClick(item[contentKey])}\n              key={index}\n              disableGutters\n            >\n              {includeTags && (\n                <div className={classes.chipContainer}>\n                  <Chip\n                    label={item[tagKey]}\n                    color='primary'\n                    variant='outlined'\n                  />\n                </div>\n              )}\n              <ListItemText primary={item[contentKey]} />\n            </ListItem>\n            <div className={classes.divider}>\n              <Divider orientation='horizontal' />\n            </div>\n          </>\n        ))}\n      </List>\n    </div>\n  );\n};\n"],"mappings":"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"}