UNPKG

@grafana/ui

Version:
1 lines 3.9 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":";;;;;;;;AAWa,MAAA,uBAAA,GAA0B,IAA4C,CAAA,CAAC,KAAU,KAAA;AAX9F,EAAA,IAAA,EAAA;AAYE,EAAA,MAAM,EAAE,IAAA,EAAM,OAAS,EAAA,QAAA,EAAU,mBAAsB,GAAA,KAAA;AACvD,EAAM,MAAA,EAAE,QAAU,EAAA,MAAA,EAAW,GAAA,OAAA;AAC7B,EAAM,MAAA,KAAA,GAAQ,qBAAqB,IAAI,CAAA;AACvC,EAAM,MAAA,aAAA,GAAgB,gBAAiB,CAAA,KAAA,EAAO,KAAS,CAAA,CAAA;AAEvD,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,CAAC,UAA+C,KAAA;AAC9C,MAAA,IAAI,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAU,CAAG,EAAA;AAC9B,QAAA;AAAA;AAGF,MAAA,OAAO,iBAAkB,CAAA;AAAA,QACvB,GAAG,OAAA;AAAA,QACH,KAAO,EAAA,UAAA,CAAW,MAAO,CAAA,CAAC,KAAe,OAAY,KAAA;AACnD,UAAA,IAAI,CAAC,YAAA,CAAa,OAAQ,CAAA,KAAA,EAAO,KAAK,CAAG,EAAA;AACvC,YAAO,OAAA,GAAA;AAAA;AAET,UAAI,GAAA,CAAA,IAAA,CAAK,QAAQ,KAAM,CAAA;AACvB,UAAO,OAAA,GAAA;AAAA,SACT,EAAG,EAAE;AAAA,OACN,CAAA;AAAA,KACH;AAAA,IACA,CAAC,KAAO,EAAA,iBAAA,EAAmB,OAAO;AAAA,GACpC;AAEA,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,MAAM,iBAAgB,EAAQ,GAAA,OAAA,CAAA,KAAA,KAAR,YAAiB,EAAC,EAAG,KAAK,IAAI,CAAA;AACpD,IAAO,uBAAA,GAAA,CAAC,SAAM,KAAO,EAAA,YAAA,EAAc,UAAU,IAAM,EAAA,QAAA,EAAU,MAAM,MAAgB,EAAA,CAAA;AAAA;AAGrF,EAAA,2BAAQ,WAAY,EAAA,EAAA,KAAA,EAAO,QAAQ,KAAO,EAAA,OAAA,EAAS,eAAe,QAAoB,EAAA,CAAA;AACxF,CAAC;AACD,uBAAA,CAAwB,WAAc,GAAA,wBAAA;AAE/B,MAAM,2BAAoF,OAAO;AAAA,EACtG,IAAI,cAAe,CAAA,OAAA;AAAA,EACnB,SAAW,EAAA,uBAAA;AAAA,EACX,OAAS,EAAA,aAAA,CAAc,GAAI,CAAA,cAAA,CAAe,OAAO,CAAA;AAAA,EACjD,IAAA,EAAM,CAAE,CAAA,8CAAA,EAAgD,kBAAkB,CAAA;AAAA,EAC1E,WAAA,EAAa,CAAE,CAAA,qDAAA,EAAuD,qCAAqC,CAAA;AAAA,EAC3G,cAAA,EAAgB,CAAC,OAAS,KAAA;AApD5B,IAAA,IAAA,EAAA;AAoDgC,IAAA,OAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,KAAA,IAAA,GAAA,EAAA,GAAiB,EAAC,EAAG,KAAK,IAAI,CAAA;AAAA,GAAA;AAAA,EAC5D,iBAAmB,EAAA;AACrB,CAAA;;;;"}