{"version":3,"file":"FilterInput.mjs","sources":["../../../../src/components/FilterInput/FilterInput.tsx"],"sourcesContent":["import { forwardRef, useRef, HTMLProps } from 'react';\n\nimport { escapeStringForRegex, unEscapeStringFromRegex } from '@grafana/data';\n\nimport { Trans } from '../../utils/i18n';\nimport { useCombinedRefs } from '../../utils/useCombinedRefs';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon/Icon';\nimport { Input } from '../Input/Input';\n\nexport interface Props extends Omit<HTMLProps<HTMLInputElement>, 'onChange'> {\n  value: string | undefined;\n  width?: number;\n  onChange: (value: string) => void;\n  escapeRegex?: boolean;\n}\n\nexport const FilterInput = forwardRef<HTMLInputElement, Props>(\n  ({ value, width, onChange, escapeRegex = true, ...restProps }, ref) => {\n    const innerRef = useRef<HTMLInputElement | null>(null);\n    const combinedRef = useCombinedRefs<HTMLInputElement>(ref, innerRef);\n\n    const suffix =\n      value !== '' ? (\n        <Button\n          icon=\"times\"\n          fill=\"text\"\n          size=\"sm\"\n          onClick={(e) => {\n            innerRef.current?.focus();\n            onChange('');\n            e.stopPropagation();\n          }}\n        >\n          <Trans i18nKey=\"grafana-ui.filter-input.clear\">Clear</Trans>\n        </Button>\n      ) : null;\n\n    return (\n      <Input\n        prefix={<Icon name=\"search\" />}\n        suffix={suffix}\n        width={width}\n        type=\"text\"\n        value={escapeRegex ? unEscapeStringFromRegex(value ?? '') : value}\n        onChange={(event) =>\n          onChange(escapeRegex ? escapeStringForRegex(event.currentTarget.value) : event.currentTarget.value)\n        }\n        {...restProps}\n        ref={combinedRef}\n      />\n    );\n  }\n);\n\nFilterInput.displayName = 'FilterInput';\n"],"names":[],"mappings":";;;;;;;;;;AAiBO,MAAM,WAAc,GAAA,UAAA;AAAA,EACzB,CAAC,EAAE,KAAA,EAAO,KAAO,EAAA,QAAA,EAAU,cAAc,IAAM,EAAA,GAAG,SAAU,EAAA,EAAG,GAAQ,KAAA;AACrE,IAAM,MAAA,QAAA,GAAW,OAAgC,IAAI,CAAA;AACrD,IAAM,MAAA,WAAA,GAAc,eAAkC,CAAA,GAAA,EAAK,QAAQ,CAAA;AAEnE,IAAM,MAAA,MAAA,GACJ,UAAU,EACR,mBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,OAAA;AAAA,QACL,IAAK,EAAA,MAAA;AAAA,QACL,IAAK,EAAA,IAAA;AAAA,QACL,OAAA,EAAS,CAAC,CAAM,KAAA;AA5B1B,UAAA,IAAA,EAAA;AA6BY,UAAA,CAAA,EAAA,GAAA,QAAA,CAAS,YAAT,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA;AAClB,UAAA,QAAA,CAAS,EAAE,CAAA;AACX,UAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,SACpB;AAAA,QAEA,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAM,OAAQ,EAAA,+BAAA,EAAgC,QAAK,EAAA,OAAA,EAAA;AAAA;AAAA,KAEpD,GAAA,IAAA;AAEN,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAQ,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAK,QAAS,EAAA,CAAA;AAAA,QAC5B,MAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAK,EAAA,MAAA;AAAA,QACL,KAAO,EAAA,WAAA,GAAc,uBAAwB,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAE,CAAI,GAAA,KAAA;AAAA,QAC5D,QAAU,EAAA,CAAC,KACT,KAAA,QAAA,CAAS,WAAc,GAAA,oBAAA,CAAqB,KAAM,CAAA,aAAA,CAAc,KAAK,CAAA,GAAI,KAAM,CAAA,aAAA,CAAc,KAAK,CAAA;AAAA,QAEnG,GAAG,SAAA;AAAA,QACJ,GAAK,EAAA;AAAA;AAAA,KACP;AAAA;AAGN;AAEA,WAAA,CAAY,WAAc,GAAA,aAAA;;;;"}