@grafana/scenes 6.52.8 → 6.52.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v6.52.9 (Wed Jan 21 2026)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - QueryVariable: Ensure numeric value field is always added to MetricFindValue properties when parsing data frames [#1341](https://github.com/grafana/scenes/pull/1341) ([@grafakus](https://github.com/grafakus))
6
+
7
+ #### Authors: 1
8
+
9
+ - Marc M. ([@grafakus](https://github.com/grafakus))
10
+
11
+ ---
12
+
1
13
  # v6.52.8 (Tue Jan 20 2026)
2
14
 
3
15
  #### 🐛 Bug Fix
@@ -52,6 +52,7 @@ function findFieldsIndices(frames, valueProp, textProp) {
52
52
  if (fieldName === "value" && indices.value === -1) {
53
53
  indices.value = index;
54
54
  }
55
+ indices.properties.push({ name: fieldName, index });
55
56
  }
56
57
  if (field.type === FieldType.string) {
57
58
  if (fieldName === "text" && indices.text === -1) {
@@ -70,7 +71,7 @@ function findFieldsIndices(frames, valueProp, textProp) {
70
71
  function validateIndices(indices) {
71
72
  const hasNoValueOrText = indices.value === -1 && indices.text === -1;
72
73
  if (!indices.properties.length) {
73
- throw new Error("Couldn't find any field of type string in the results");
74
+ throw new Error("Couldn't find any field of type string or number in the results");
74
75
  }
75
76
  if (hasNoValueOrText) {
76
77
  indices.value = indices.properties[0].index;
@@ -1 +1 @@
1
- {"version":3,"file":"toMetricFindValues.js","sources":["../../../../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n DataFrame,\n FieldType,\n getFieldDisplayName,\n getProcessedDataFrames,\n isDataFrame,\n MetricFindValue,\n PanelData,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\ninterface MetricFindValueWithOptionalProperties extends MetricFindValue {\n properties?: Record<string, string>;\n}\n\nexport function toMetricFindValues(\n valueProp?: string,\n textProp?: string\n): OperatorFunction<PanelData, MetricFindValueWithOptionalProperties[]> {\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 indices = validateIndices(findFieldsIndices(frames, valueProp, textProp));\n\n const metrics: MetricFindValueWithOptionalProperties[] = [];\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const fieldValue = (fieldIndex: number) =>\n fieldIndex !== -1 ? frame.fields[fieldIndex].values.get(index) : undefined;\n\n const value = fieldValue(indices.value);\n const text = fieldValue(indices.text);\n const expandable = fieldValue(indices.expandable);\n\n const properties: MetricFindValueWithOptionalProperties['properties'] = {};\n\n for (const p of indices.properties) {\n properties[p.name] = fieldValue(p.index);\n }\n\n const result: MetricFindValueWithOptionalProperties = { value, text, properties: properties };\n\n if (expandable !== undefined) {\n result.expandable = Boolean(expandable);\n }\n\n metrics.push(result);\n }\n }\n\n return metrics;\n })\n );\n}\n\ntype Indices = {\n value: number;\n text: number;\n properties: Array<{ name: string; index: number }>;\n expandable: number;\n};\n\nfunction findFieldsIndices(frames: DataFrame[], valueProp?: string, textProp?: string): Indices {\n const indices: Indices = {\n value: -1,\n text: -1,\n expandable: -1,\n properties: [],\n };\n for (const frame of getProcessedDataFrames(frames)) {\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 // value field\n if (field.type === FieldType.string || field.type === FieldType.number) {\n if (valueProp && fieldName === valueProp) {\n indices.value = index;\n }\n\n if (fieldName === 'value' && indices.value === -1) {\n indices.value = index;\n }\n }\n\n // text and properties fields\n if (field.type === FieldType.string) {\n if (textProp && fieldName === textProp) {\n indices.text = index;\n }\n\n if (fieldName === 'text' && indices.text === -1) {\n indices.text = index;\n }\n\n indices.properties.push({ name: fieldName, index });\n continue;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n indices.expandable === -1\n ) {\n indices.expandable = index;\n }\n }\n }\n\n return indices;\n}\n\nfunction validateIndices(indices: Indices): Indices {\n const hasNoValueOrText = indices.value === -1 && indices.text === -1;\n\n if (!indices.properties.length) {\n throw new Error(\"Couldn't find any field of type string in the results\");\n }\n\n if (hasNoValueOrText) {\n indices.value = indices.properties[0].index;\n indices.text = indices.properties[0].index;\n }\n\n if (indices.value === -1 && indices.text !== -1) {\n indices.value = indices.text;\n }\n\n if (indices.text === -1 && indices.value !== -1) {\n indices.text = indices.value;\n }\n\n return indices;\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 const value = firstValue[firstValueKey];\n if (value !== null && typeof value !== 'string' && typeof value !== 'number') {\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 DataFrame,\n FieldType,\n getFieldDisplayName,\n getProcessedDataFrames,\n isDataFrame,\n MetricFindValue,\n PanelData,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\ninterface MetricFindValueWithOptionalProperties extends MetricFindValue {\n properties?: Record<string, string>;\n}\n\nexport function toMetricFindValues(\n valueProp?: string,\n textProp?: string\n): OperatorFunction<PanelData, MetricFindValueWithOptionalProperties[]> {\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 indices = validateIndices(findFieldsIndices(frames, valueProp, textProp));\n\n const metrics: MetricFindValueWithOptionalProperties[] = [];\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const fieldValue = (fieldIndex: number) =>\n fieldIndex !== -1 ? frame.fields[fieldIndex].values.get(index) : undefined;\n\n const value = fieldValue(indices.value);\n const text = fieldValue(indices.text);\n const expandable = fieldValue(indices.expandable);\n\n const properties: MetricFindValueWithOptionalProperties['properties'] = {};\n\n for (const p of indices.properties) {\n properties[p.name] = fieldValue(p.index);\n }\n\n const result: MetricFindValueWithOptionalProperties = { value, text, properties: properties };\n\n if (expandable !== undefined) {\n result.expandable = Boolean(expandable);\n }\n\n metrics.push(result);\n }\n }\n\n return metrics;\n })\n );\n}\n\ntype Indices = {\n value: number;\n text: number;\n properties: Array<{ name: string; index: number }>;\n expandable: number;\n};\n\nfunction findFieldsIndices(frames: DataFrame[], valueProp?: string, textProp?: string): Indices {\n const indices: Indices = {\n value: -1,\n text: -1,\n expandable: -1,\n properties: [],\n };\n for (const frame of getProcessedDataFrames(frames)) {\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 // value field\n if (field.type === FieldType.string || field.type === FieldType.number) {\n if (valueProp && fieldName === valueProp) {\n indices.value = index;\n }\n\n if (fieldName === 'value' && indices.value === -1) {\n indices.value = index;\n }\n\n indices.properties.push({ name: fieldName, index });\n }\n\n // text and properties fields\n if (field.type === FieldType.string) {\n if (textProp && fieldName === textProp) {\n indices.text = index;\n }\n\n if (fieldName === 'text' && indices.text === -1) {\n indices.text = index;\n }\n\n indices.properties.push({ name: fieldName, index });\n continue;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n indices.expandable === -1\n ) {\n indices.expandable = index;\n }\n }\n }\n\n return indices;\n}\n\nfunction validateIndices(indices: Indices): Indices {\n const hasNoValueOrText = indices.value === -1 && indices.text === -1;\n\n if (!indices.properties.length) {\n throw new Error(\"Couldn't find any field of type string or number in the results\");\n }\n\n if (hasNoValueOrText) {\n indices.value = indices.properties[0].index;\n indices.text = indices.properties[0].index;\n }\n\n if (indices.value === -1 && indices.text !== -1) {\n indices.value = indices.text;\n }\n\n if (indices.text === -1 && indices.value !== -1) {\n indices.text = indices.value;\n }\n\n return indices;\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 const value = firstValue[firstValueKey];\n if (value !== null && typeof value !== 'string' && typeof value !== 'number') {\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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"}
package/dist/index.js CHANGED
@@ -10486,6 +10486,7 @@ function findFieldsIndices(frames, valueProp, textProp) {
10486
10486
  if (fieldName === "value" && indices.value === -1) {
10487
10487
  indices.value = index;
10488
10488
  }
10489
+ indices.properties.push({ name: fieldName, index });
10489
10490
  }
10490
10491
  if (field.type === data.FieldType.string) {
10491
10492
  if (fieldName === "text" && indices.text === -1) {
@@ -10504,7 +10505,7 @@ function findFieldsIndices(frames, valueProp, textProp) {
10504
10505
  function validateIndices(indices) {
10505
10506
  const hasNoValueOrText = indices.value === -1 && indices.text === -1;
10506
10507
  if (!indices.properties.length) {
10507
- throw new Error("Couldn't find any field of type string in the results");
10508
+ throw new Error("Couldn't find any field of type string or number in the results");
10508
10509
  }
10509
10510
  if (hasNoValueOrText) {
10510
10511
  indices.value = indices.properties[0].index;