@grafana/scenes 5.28.2--canary.987.12125694286.0 → 5.29.0--canary.808.12161480494.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"toMetricFindValues.js","sources":["../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n FieldType,\n getFieldDisplayName,\n isDataFrame,\n MetricFindValue,\n PanelData,\n getProcessedDataFrames,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\nexport function toMetricFindValues(): OperatorFunction<PanelData, MetricFindValue[]> {\n return (source) =>\n source.pipe(\n map((panelData) => {\n const frames = panelData.series;\n if (!frames || !frames.length) {\n return [];\n }\n\n if (areMetricFindValues(frames)) {\n return frames;\n }\n\n if (frames[0].fields.length === 0) {\n return [];\n }\n\n const processedDataFrames = getProcessedDataFrames(frames);\n const metrics: MetricFindValue[] = [];\n\n let valueIndex = -1;\n let textIndex = -1;\n let stringIndex = -1;\n let expandableIndex = -1;\n\n for (const frame of processedDataFrames) {\n for (let index = 0; index < frame.fields.length; index++) {\n const field = frame.fields[index];\n const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();\n\n if (field.type === FieldType.string && stringIndex === -1) {\n stringIndex = index;\n }\n\n if (fieldName === 'text' && field.type === FieldType.string && textIndex === -1) {\n textIndex = index;\n }\n\n if (fieldName === 'value' && field.type === FieldType.string && valueIndex === -1) {\n valueIndex = index;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n expandableIndex === -1\n ) {\n expandableIndex = index;\n }\n }\n }\n\n if (stringIndex === -1) {\n throw new Error(\"Couldn't find any field of type string in the results.\");\n }\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : undefined;\n const string = frame.fields[stringIndex].values.get(index);\n const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : null;\n const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : null;\n\n if (valueIndex === -1 && textIndex === -1) {\n metrics.push({ text: string, value: string, expandable });\n continue;\n }\n\n if (valueIndex === -1 && textIndex !== -1) {\n metrics.push({ text, value: text, expandable });\n continue;\n }\n\n if (valueIndex !== -1 && textIndex === -1) {\n metrics.push({ text: value, value, expandable });\n continue;\n }\n\n metrics.push({ text, value, expandable });\n }\n }\n\n return metrics;\n })\n );\n}\n\nfunction areMetricFindValues(data: any[]): data is MetricFindValue[] {\n if (!data) {\n return false;\n }\n\n if (!data.length) {\n return true;\n }\n\n const firstValue: any = data[0];\n\n if (isDataFrame(firstValue)) {\n return false;\n }\n\n for (const firstValueKey in firstValue) {\n if (!firstValue.hasOwnProperty(firstValueKey)) {\n continue;\n }\n\n if (\n firstValue[firstValueKey] !== null &&\n typeof firstValue[firstValueKey] !== 'string' &&\n typeof firstValue[firstValueKey] !== 'number'\n ) {\n continue;\n }\n\n const key = firstValueKey.toLowerCase();\n\n if (key === 'text' || key === 'value') {\n return true;\n }\n }\n\n return false;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toMetricFindValues.js","sources":["../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n FieldType,\n getFieldDisplayName,\n isDataFrame,\n MetricFindValue,\n PanelData,\n getProcessedDataFrames,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\nexport function toMetricFindValues(): OperatorFunction<PanelData, MetricFindValue[]> {\n return (source) =>\n source.pipe(\n map((panelData) => {\n const frames = panelData.series;\n if (!frames || !frames.length) {\n return [];\n }\n\n if (areMetricFindValues(frames)) {\n return frames;\n }\n\n if (frames[0].fields.length === 0) {\n return [];\n }\n\n const processedDataFrames = getProcessedDataFrames(frames);\n const metrics: MetricFindValue[] = [];\n\n let valueIndex = -1;\n let textIndex = -1;\n let stringIndex = -1;\n let expandableIndex = -1;\n\n for (const frame of processedDataFrames) {\n for (let index = 0; index < frame.fields.length; index++) {\n const field = frame.fields[index];\n const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();\n\n if (field.type === FieldType.string && stringIndex === -1) {\n stringIndex = index;\n }\n\n if (fieldName === 'text' && field.type === FieldType.string && textIndex === -1) {\n textIndex = index;\n }\n\n if (fieldName === 'value' && field.type === FieldType.string && valueIndex === -1) {\n valueIndex = index;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n expandableIndex === -1\n ) {\n expandableIndex = index;\n }\n }\n }\n\n if (stringIndex === -1) {\n throw new Error(\"Couldn't find any field of type string in the results.\");\n }\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : undefined;\n const string = frame.fields[stringIndex].values.get(index);\n const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : '';\n const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : '';\n\n if (valueIndex === -1 && textIndex === -1) {\n metrics.push({ text: string, value: string, expandable });\n continue;\n }\n\n if (valueIndex === -1 && textIndex !== -1) {\n metrics.push({ text, value: text, expandable });\n continue;\n }\n\n if (valueIndex !== -1 && textIndex === -1) {\n metrics.push({ text: value, value, expandable });\n continue;\n }\n\n metrics.push({ text, value, expandable });\n }\n }\n\n return metrics;\n })\n );\n}\n\nfunction areMetricFindValues(data: any[]): data is MetricFindValue[] {\n if (!data) {\n return false;\n }\n\n if (!data.length) {\n return true;\n }\n\n const firstValue: any = data[0];\n\n if (isDataFrame(firstValue)) {\n return false;\n }\n\n for (const firstValueKey in firstValue) {\n if (!firstValue.hasOwnProperty(firstValueKey)) {\n continue;\n }\n\n if (\n firstValue[firstValueKey] !== null &&\n typeof firstValue[firstValueKey] !== 'string' &&\n typeof firstValue[firstValueKey] !== 'number'\n ) {\n continue;\n }\n\n const key = firstValueKey.toLowerCase();\n\n if (key === 'text' || key === 'value') {\n return true;\n }\n }\n\n return false;\n}\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { isNumber, uniqBy, sortBy, toLower } from 'lodash';
2
2
  import { stringToJsRegex, VariableSort } from '@grafana/data';
3
3
 
4
- const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
5
- var _a, _b, _c, _d, _e, _f;
4
+ function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
5
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
6
6
  let regex;
7
7
  let options = [];
8
8
  if (variableRegEx) {
@@ -10,8 +10,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
10
10
  }
11
11
  for (let i = 0; i < metricNames.length; i++) {
12
12
  const item = metricNames[i];
13
- let text = item.text === void 0 || item.text === null ? item.value : item.text;
14
- let value = item.value === void 0 || item.value === null ? item.text : item.value;
13
+ let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
14
+ let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
15
15
  if (isNumber(value)) {
16
16
  value = value.toString();
17
17
  }
@@ -28,8 +28,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
28
28
  const firstMatch = matches.find((m) => m.length > 1);
29
29
  const manyMatches = matches.length > 1 && firstMatch;
30
30
  if (valueGroup || textGroup) {
31
- value = (_c = (_a = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _a.value) != null ? _c : (_b = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _b.text;
32
- text = (_f = (_d = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _d.text) != null ? _f : (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value;
31
+ value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
32
+ text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
33
33
  } else if (manyMatches) {
34
34
  for (let j = 0; j < matches.length; j++) {
35
35
  const match = matches[j];
@@ -45,7 +45,7 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
45
45
  }
46
46
  options = uniqBy(options, "value");
47
47
  return sortVariableValues(options, sort);
48
- };
48
+ }
49
49
  const getAllMatches = (str, regex) => {
50
50
  const results = [];
51
51
  let matches = null;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/variables/variants/query/utils.ts"],"sourcesContent":["import { isNumber, sortBy, toLower, uniqBy } from 'lodash';\n\nimport { stringToJsRegex, VariableSort } from '@grafana/data';\n\nimport { VariableValueOption } from '../../types';\n\nexport const metricNamesToVariableValues = (variableRegEx: string, sort: VariableSort, metricNames: any[]) => {\n let regex;\n let options: VariableValueOption[] = [];\n\n if (variableRegEx) {\n regex = stringToJsRegex(variableRegEx);\n }\n\n for (let i = 0; i < metricNames.length; i++) {\n const item = metricNames[i];\n let text = item.text === undefined || item.text === null ? item.value : item.text;\n let value = item.value === undefined || item.value === null ? item.text : item.value;\n\n if (isNumber(value)) {\n value = value.toString();\n }\n\n if (isNumber(text)) {\n text = text.toString();\n }\n\n if (regex) {\n const matches = getAllMatches(value, regex);\n if (!matches.length) {\n continue;\n }\n\n const valueGroup = matches.find((m) => m.groups && m.groups.value);\n const textGroup = matches.find((m) => m.groups && m.groups.text);\n const firstMatch = matches.find((m) => m.length > 1);\n const manyMatches = matches.length > 1 && firstMatch;\n\n if (valueGroup || textGroup) {\n value = valueGroup?.groups?.value ?? textGroup?.groups?.text;\n text = textGroup?.groups?.text ?? valueGroup?.groups?.value;\n } else if (manyMatches) {\n for (let j = 0; j < matches.length; j++) {\n const match = matches[j];\n options.push({ label: match[1], value: match[1] });\n }\n continue;\n } else if (firstMatch) {\n text = firstMatch[1];\n value = firstMatch[1];\n }\n }\n\n options.push({ label: text, value: value });\n }\n\n options = uniqBy(options, 'value');\n return sortVariableValues(options, sort);\n};\n\nconst getAllMatches = (str: string, regex: RegExp): RegExpExecArray[] => {\n const results: RegExpExecArray[] = [];\n let matches = null;\n\n regex.lastIndex = 0;\n\n do {\n matches = regex.exec(str);\n if (matches) {\n results.push(matches);\n }\n } while (regex.global && matches && matches[0] !== '' && matches[0] !== undefined);\n\n return results;\n};\n\nexport const sortVariableValues = (options: any[], sortOrder: VariableSort) => {\n if (sortOrder === VariableSort.disabled) {\n return options;\n }\n\n // @ts-ignore\n const sortByNumeric = (opt) => {\n if (!opt.text) {\n return -1;\n }\n const matches = opt.text.match(/.*?(\\d+).*/);\n if (!matches || matches.length < 2) {\n return -1;\n } else {\n return parseInt(matches[1], 10);\n }\n };\n\n // @ts-ignore\n const sortByNaturalSort = (options) => {\n //@ts-ignore\n return options.sort((a, b) => {\n if (!a.text) {\n return -1;\n }\n\n if (!b.text) {\n return 1;\n }\n\n return a.text.localeCompare(b.text, undefined, { numeric: true });\n });\n };\n\n switch (sortOrder) {\n case VariableSort.alphabeticalAsc:\n options = sortBy(options, 'label');\n break;\n case VariableSort.alphabeticalDesc:\n options = sortBy(options, 'label').reverse();\n break;\n case VariableSort.numericalAsc:\n options = sortBy(options, sortByNumeric);\n break;\n case VariableSort.numericalDesc:\n options = sortBy(options, sortByNumeric);\n options = options.reverse();\n break;\n case VariableSort.alphabeticalCaseInsensitiveAsc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n break;\n case VariableSort.alphabeticalCaseInsensitiveDesc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n options = options.reverse();\n break;\n case VariableSort.naturalAsc || 7:\n // Sort by natural sort\n options = sortByNaturalSort(options);\n break;\n case VariableSort.naturalDesc || 8:\n options = sortByNaturalSort(options);\n options = options.reverse();\n break;\n default:\n break;\n }\n return options;\n};\n"],"names":["options"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/variables/variants/query/utils.ts"],"sourcesContent":["import { isNumber, sortBy, toLower, uniqBy } from 'lodash';\n\nimport { stringToJsRegex, VariableSort } from '@grafana/data';\n\nimport { VariableValueOption } from '../../types';\n\nexport function metricNamesToVariableValues(variableRegEx: string, sort: VariableSort, metricNames: any[]) {\n let regex;\n let options: VariableValueOption[] = [];\n\n if (variableRegEx) {\n regex = stringToJsRegex(variableRegEx);\n }\n\n for (let i = 0; i < metricNames.length; i++) {\n const item = metricNames[i];\n let text = item.text ?? item.value ?? '';\n let value = item.value ?? item.text ?? '';\n\n if (isNumber(value)) {\n value = value.toString();\n }\n\n if (isNumber(text)) {\n text = text.toString();\n }\n\n if (regex) {\n const matches = getAllMatches(value, regex);\n if (!matches.length) {\n continue;\n }\n\n const valueGroup = matches.find((m) => m.groups && m.groups.value);\n const textGroup = matches.find((m) => m.groups && m.groups.text);\n const firstMatch = matches.find((m) => m.length > 1);\n const manyMatches = matches.length > 1 && firstMatch;\n\n if (valueGroup || textGroup) {\n value = valueGroup?.groups?.value ?? textGroup?.groups?.text;\n text = textGroup?.groups?.text ?? valueGroup?.groups?.value;\n } else if (manyMatches) {\n for (let j = 0; j < matches.length; j++) {\n const match = matches[j];\n options.push({ label: match[1], value: match[1] });\n }\n continue;\n } else if (firstMatch) {\n text = firstMatch[1];\n value = firstMatch[1];\n }\n }\n\n options.push({ label: text, value: value });\n }\n\n options = uniqBy(options, 'value');\n return sortVariableValues(options, sort);\n}\n\nconst getAllMatches = (str: string, regex: RegExp): RegExpExecArray[] => {\n const results: RegExpExecArray[] = [];\n let matches = null;\n\n regex.lastIndex = 0;\n\n do {\n matches = regex.exec(str);\n if (matches) {\n results.push(matches);\n }\n } while (regex.global && matches && matches[0] !== '' && matches[0] !== undefined);\n\n return results;\n};\n\nexport const sortVariableValues = (options: any[], sortOrder: VariableSort) => {\n if (sortOrder === VariableSort.disabled) {\n return options;\n }\n\n // @ts-ignore\n const sortByNumeric = (opt) => {\n if (!opt.text) {\n return -1;\n }\n const matches = opt.text.match(/.*?(\\d+).*/);\n if (!matches || matches.length < 2) {\n return -1;\n } else {\n return parseInt(matches[1], 10);\n }\n };\n\n // @ts-ignore\n const sortByNaturalSort = (options) => {\n //@ts-ignore\n return options.sort((a, b) => {\n if (!a.text) {\n return -1;\n }\n\n if (!b.text) {\n return 1;\n }\n\n return a.text.localeCompare(b.text, undefined, { numeric: true });\n });\n };\n\n switch (sortOrder) {\n case VariableSort.alphabeticalAsc:\n options = sortBy(options, 'label');\n break;\n case VariableSort.alphabeticalDesc:\n options = sortBy(options, 'label').reverse();\n break;\n case VariableSort.numericalAsc:\n options = sortBy(options, sortByNumeric);\n break;\n case VariableSort.numericalDesc:\n options = sortBy(options, sortByNumeric);\n options = options.reverse();\n break;\n case VariableSort.alphabeticalCaseInsensitiveAsc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n break;\n case VariableSort.alphabeticalCaseInsensitiveDesc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n options = options.reverse();\n break;\n case VariableSort.naturalAsc || 7:\n // Sort by natural sort\n options = sortByNaturalSort(options);\n break;\n case VariableSort.naturalDesc || 8:\n options = sortByNaturalSort(options);\n options = options.reverse();\n break;\n default:\n break;\n }\n return options;\n};\n"],"names":["options"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ import * as _grafana_schema from '@grafana/schema';
8
8
  import { VariableType, VariableHide, TimeZone, DataTopic, DataQuery, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
9
9
  import { LocationService, VariableInterpolation } from '@grafana/runtime';
10
10
  import { Location } from 'history';
11
- import { PanelContext, IconName } from '@grafana/ui';
11
+ import { PanelContext, PanelChromeProps, IconName } from '@grafana/ui';
12
12
  import ReactGridLayout from 'react-grid-layout';
13
13
  import { RouteComponentProps } from 'react-router-dom';
14
14
  import { Options, FieldConfig as FieldConfig$1 } from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';
@@ -607,11 +607,6 @@ interface AdHocFiltersVariableState extends SceneVariableState {
607
607
  * impact the current queries are presented to the user.
608
608
  */
609
609
  useQueriesAsFilterForOptions?: boolean;
610
- /**
611
- * Populates the filter pill with the existing value.
612
- * If true, this will hide any results from getTagValuesProvider that don't match the existing value until the user deletes the existing value.
613
- */
614
- populateInputOnEdit?: boolean;
615
610
  /**
616
611
  * Flag that decides whether custom values can be added to the filter
617
612
  */
@@ -1790,6 +1785,10 @@ interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectSta
1790
1785
  * Mainly for advanced use cases that need custom handling of PanelContext callbacks.
1791
1786
  */
1792
1787
  extendPanelContext?: (vizPanel: VizPanel, context: PanelContext) => void;
1788
+ /**
1789
+ * For advanced use cases that need to override PanelChrome props.
1790
+ */
1791
+ panelChromeProps?: Partial<PanelChromeProps>;
1793
1792
  /**
1794
1793
  * @internal
1795
1794
  * Only for use from core to handle migration from old angular panels
@@ -2469,6 +2468,10 @@ declare class VizPanelBuilder<TOptions extends {}, TFieldConfig extends {}> impl
2469
2468
  * Set scene object or react component to use as panel header actions.
2470
2469
  */
2471
2470
  setHeaderActions(headerActions: VizPanelState['headerActions']): this;
2471
+ /**
2472
+ * Set PanelChrome prop overrides
2473
+ */
2474
+ setPanelChromeProps(props: Partial<PanelChromeProps>): this;
2472
2475
  /**
2473
2476
  * Set color.
2474
2477
  */
package/dist/index.js CHANGED
@@ -4725,16 +4725,12 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
4725
4725
  className: css.cx(styles.combinedFilterPill, { [styles.readOnlyCombinedFilter]: readOnly }),
4726
4726
  onClick: (e) => {
4727
4727
  e.stopPropagation();
4728
- if (model.state.populateInputOnEdit) {
4729
- setPopulateInputOnEdit(true);
4730
- }
4728
+ setPopulateInputOnEdit(true);
4731
4729
  handleChangeViewMode();
4732
4730
  },
4733
4731
  onKeyDown: (e) => {
4734
4732
  if (e.key === "Enter") {
4735
- if (model.state.populateInputOnEdit) {
4736
- setPopulateInputOnEdit(true);
4737
- }
4733
+ setPopulateInputOnEdit(true);
4738
4734
  handleChangeViewMode();
4739
4735
  }
4740
4736
  },
@@ -6132,8 +6128,8 @@ function ensureVariableQueryModelIsADataQuery(variable) {
6132
6128
  return variable.state.query;
6133
6129
  }
6134
6130
 
6135
- const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
6136
- var _a, _b, _c, _d, _e, _f;
6131
+ function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
6132
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
6137
6133
  let regex;
6138
6134
  let options = [];
6139
6135
  if (variableRegEx) {
@@ -6141,8 +6137,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
6141
6137
  }
6142
6138
  for (let i = 0; i < metricNames.length; i++) {
6143
6139
  const item = metricNames[i];
6144
- let text = item.text === void 0 || item.text === null ? item.value : item.text;
6145
- let value = item.value === void 0 || item.value === null ? item.text : item.value;
6140
+ let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
6141
+ let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
6146
6142
  if (lodash.isNumber(value)) {
6147
6143
  value = value.toString();
6148
6144
  }
@@ -6159,8 +6155,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
6159
6155
  const firstMatch = matches.find((m) => m.length > 1);
6160
6156
  const manyMatches = matches.length > 1 && firstMatch;
6161
6157
  if (valueGroup || textGroup) {
6162
- value = (_c = (_a = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _a.value) != null ? _c : (_b = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _b.text;
6163
- text = (_f = (_d = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _d.text) != null ? _f : (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value;
6158
+ value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
6159
+ text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
6164
6160
  } else if (manyMatches) {
6165
6161
  for (let j = 0; j < matches.length; j++) {
6166
6162
  const match = matches[j];
@@ -6176,7 +6172,7 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
6176
6172
  }
6177
6173
  options = lodash.uniqBy(options, "value");
6178
6174
  return sortVariableValues(options, sort);
6179
- };
6175
+ }
6180
6176
  const getAllMatches = (str, regex) => {
6181
6177
  const results = [];
6182
6178
  let matches = null;
@@ -6295,8 +6291,8 @@ function toMetricFindValues() {
6295
6291
  for (let index = 0; index < frame.length; index++) {
6296
6292
  const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : void 0;
6297
6293
  const string = frame.fields[stringIndex].values.get(index);
6298
- const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : null;
6299
- const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : null;
6294
+ const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : "";
6295
+ const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : "";
6300
6296
  if (valueIndex === -1 && textIndex === -1) {
6301
6297
  metrics.push({ text: string, value: string, expandable });
6302
6298
  continue;
@@ -7072,7 +7068,7 @@ function VizPanelRenderer({ model }) {
7072
7068
  ref,
7073
7069
  className: absoluteWrapper,
7074
7070
  "data-viz-panel-key": model.state.key
7075
- }, width > 0 && height > 0 && /* @__PURE__ */ React__default["default"].createElement(ui.PanelChrome, {
7071
+ }, width > 0 && height > 0 && /* @__PURE__ */ React__default["default"].createElement(ui.PanelChrome, __spreadValues$t({
7076
7072
  title: titleInterpolated,
7077
7073
  description: (description == null ? void 0 : description.trim()) ? model.getDescription : void 0,
7078
7074
  loadingState: data$1.state,
@@ -7094,7 +7090,7 @@ function VizPanelRenderer({ model }) {
7094
7090
  onFocus: setPanelAttention,
7095
7091
  onMouseEnter: setPanelAttention,
7096
7092
  onMouseMove: debouncedMouseMove
7097
- }, (innerWidth, innerHeight) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(ui.ErrorBoundaryAlert, {
7093
+ }, model.state.panelChromeProps), (innerWidth, innerHeight) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(ui.ErrorBoundaryAlert, {
7098
7094
  dependencies: [plugin, data$1]
7099
7095
  }, /* @__PURE__ */ React__default["default"].createElement(data.PluginContextProvider, {
7100
7096
  meta: plugin.meta
@@ -13136,6 +13132,10 @@ class VizPanelBuilder {
13136
13132
  this._state.headerActions = headerActions;
13137
13133
  return this;
13138
13134
  }
13135
+ setPanelChromeProps(props) {
13136
+ this._state.panelChromeProps = props;
13137
+ return this;
13138
+ }
13139
13139
  setColor(color) {
13140
13140
  this._fieldConfigBuilder.setColor(color);
13141
13141
  return this;