@grafana/ui
Version:
Grafana Components Library
1 lines • 3.1 kB
Source Map (JSON)
{"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';\nimport { Trans } from '@grafana/i18n';\n\nimport { useCombinedRefs } from '../../utils/useCombinedRefs';\nimport { Button } from '../Button/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;;;;"}