UNPKG

@grafana/ui

Version:
1 lines 3.93 kB
{"version":3,"file":"FieldNamesMatcherEditor.mjs","sources":["../../../../src/components/MatchersUI/FieldNamesMatcherEditor.tsx"],"sourcesContent":["import { memo, useCallback } from 'react';\n\nimport { FieldMatcherID, fieldMatchers, SelectableValue, ByNamesMatcherOptions } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { Input } from '../Input/Input';\nimport { MultiSelect } from '../Select/Select';\n\nimport { MatcherUIProps, FieldMatcherUIRegistryItem } from './types';\nimport { useFieldDisplayNames, useSelectOptions, frameHasName } from './utils';\n\nexport const FieldNamesMatcherEditor = memo<MatcherUIProps<ByNamesMatcherOptions>>((props) => {\n const { data, options, onChange: onChangeFromProps } = props;\n const { readOnly, prefix } = options;\n const names = useFieldDisplayNames(data);\n const selectOptions = useSelectOptions(names, undefined);\n\n const onChange = useCallback(\n (selections: Array<SelectableValue<string>>) => {\n if (!Array.isArray(selections)) {\n return;\n }\n\n return onChangeFromProps({\n ...options,\n names: selections.reduce((all: string[], current) => {\n if (!frameHasName(current.value, names)) {\n return all;\n }\n all.push(current.value!);\n return all;\n }, []),\n });\n },\n [names, onChangeFromProps, options]\n );\n\n if (readOnly) {\n const displayNames = (options.names ?? []).join(', ');\n return <Input value={displayNames} readOnly={true} disabled={true} prefix={prefix} />;\n }\n\n return <MultiSelect value={options.names} options={selectOptions} onChange={onChange} />;\n});\nFieldNamesMatcherEditor.displayName = 'FieldNameMatcherEditor';\n\nexport const getFieldNamesMatcherItem: () => FieldMatcherUIRegistryItem<ByNamesMatcherOptions> = () => ({\n id: FieldMatcherID.byNames,\n component: FieldNamesMatcherEditor,\n matcher: fieldMatchers.get(FieldMatcherID.byNames),\n name: t('grafana-ui.matchers-ui.name-fields-with-name', 'Fields with name'),\n description: t('grafana-ui.matchers-ui.description-fields-with-name', 'Set properties for a specific field'),\n optionsToLabel: (options) => (options.names ?? []).join(', '),\n excludeFromPicker: true,\n});\n"],"names":[],"mappings":";;;;;;;;;AAWO,MAAM,uBAAA,GAA0B,IAAA,CAA4C,CAAC,KAAA,KAAU;AAX9F,EAAA,IAAA,EAAA;AAYE,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,mBAAkB,GAAI,KAAA;AACvD,EAAA,MAAM,EAAE,QAAA,EAAU,MAAA,EAAO,GAAI,OAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,qBAAqB,IAAI,CAAA;AACvC,EAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,KAAA,EAAO,KAAA,CAAS,CAAA;AAEvD,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,UAAA,KAA+C;AAC9C,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC9B,QAAA;AAAA,MACF;AAEA,MAAA,OAAO,iBAAA,CAAkB;AAAA,QACvB,GAAG,OAAA;AAAA,QACH,KAAA,EAAO,UAAA,CAAW,MAAA,CAAO,CAAC,KAAe,OAAA,KAAY;AACnD,UAAA,IAAI,CAAC,YAAA,CAAa,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA,EAAG;AACvC,YAAA,OAAO,GAAA;AAAA,UACT;AACA,UAAA,GAAA,CAAI,IAAA,CAAK,QAAQ,KAAM,CAAA;AACvB,UAAA,OAAO,GAAA;AAAA,QACT,CAAA,EAAG,EAAE;AAAA,OACN,CAAA;AAAA,IACH,CAAA;AAAA,IACA,CAAC,KAAA,EAAO,iBAAA,EAAmB,OAAO;AAAA,GACpC;AAEA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAM,iBAAgB,EAAA,GAAA,OAAA,CAAQ,KAAA,KAAR,YAAiB,EAAC,EAAG,KAAK,IAAI,CAAA;AACpD,IAAA,uBAAO,GAAA,CAAC,SAAM,KAAA,EAAO,YAAA,EAAc,UAAU,IAAA,EAAM,QAAA,EAAU,MAAM,MAAA,EAAgB,CAAA;AAAA,EACrF;AAEA,EAAA,2BAAQ,WAAA,EAAA,EAAY,KAAA,EAAO,QAAQ,KAAA,EAAO,OAAA,EAAS,eAAe,QAAA,EAAoB,CAAA;AACxF,CAAC;AACD,uBAAA,CAAwB,WAAA,GAAc,wBAAA;AAE/B,MAAM,2BAAoF,OAAO;AAAA,EACtG,IAAI,cAAA,CAAe,OAAA;AAAA,EACnB,SAAA,EAAW,uBAAA;AAAA,EACX,OAAA,EAAS,aAAA,CAAc,GAAA,CAAI,cAAA,CAAe,OAAO,CAAA;AAAA,EACjD,IAAA,EAAM,CAAA,CAAE,8CAAA,EAAgD,kBAAkB,CAAA;AAAA,EAC1E,WAAA,EAAa,CAAA,CAAE,qDAAA,EAAuD,qCAAqC,CAAA;AAAA,EAC3G,cAAA,EAAgB,CAAC,OAAA,KAAS;AApD5B,IAAA,IAAA,EAAA;AAoDgC,IAAA,OAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAA,KAAR,IAAA,GAAA,EAAA,GAAiB,EAAC,EAAG,KAAK,IAAI,CAAA;AAAA,EAAA,CAAA;AAAA,EAC5D,iBAAA,EAAmB;AACrB,CAAA;;;;"}