@grafana/ui
Version:
Grafana Components Library
1 lines • 3.11 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,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU,cAAc,IAAA,EAAM,GAAG,SAAA,EAAU,EAAG,GAAA,KAAQ;AACrE,IAAA,MAAM,QAAA,GAAW,OAAgC,IAAI,CAAA;AACrD,IAAA,MAAM,WAAA,GAAc,eAAA,CAAkC,GAAA,EAAK,QAAQ,CAAA;AAEnE,IAAA,MAAM,MAAA,GACJ,UAAU,EAAA,mBACR,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,IAAA,EAAK,IAAA;AAAA,QACL,OAAA,EAAS,CAAC,CAAA,KAAM;AA5B1B,UAAA,IAAA,EAAA;AA6BY,UAAA,CAAA,EAAA,GAAA,QAAA,CAAS,YAAT,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,KAAA,EAAA;AAClB,UAAA,QAAA,CAAS,EAAE,CAAA;AACX,UAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,QACpB,CAAA;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,+BAAA,EAAgC,QAAA,EAAA,OAAA,EAAK;AAAA;AAAA,KACtD,GACE,IAAA;AAEN,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,kBAAQ,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,QAAA,EAAS,CAAA;AAAA,QAC5B,MAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA,EAAK,MAAA;AAAA,QACL,KAAA,EAAO,WAAA,GAAc,uBAAA,CAAwB,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAE,CAAA,GAAI,KAAA;AAAA,QAC5D,QAAA,EAAU,CAAC,KAAA,KACT,QAAA,CAAS,WAAA,GAAc,oBAAA,CAAqB,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA,GAAI,KAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAAA,QAEnG,GAAG,SAAA;AAAA,QACJ,GAAA,EAAK;AAAA;AAAA,KACP;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}