@grafana/scenes 6.47.0--canary.1236.19300012282.0 → 6.47.0--canary.1236.19306776868.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CustomVariable.js","sources":["../../../../src/variables/variants/CustomVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { MultiOrSingleValueSelect } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport React from 'react';\n\nexport interface CustomVariableState extends MultiValueVariableState {\n query: string;\n valuesFormat?: 'csv' | 'json';\n}\n\nexport class CustomVariable extends MultiValueVariable<CustomVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['query'],\n });\n\n public constructor(initialState: Partial<CustomVariableState>) {\n super({\n type: 'custom',\n query: '',\n valuesFormat: 'csv',\n value: '',\n text: '',\n options: [],\n name: '',\n ...initialState,\n });\n }\n\n // We expose this publicly as we also need it outside the variable\n // The interpolate flag is needed since we don't always want to get the interpolated options\n public transformCsvStringToOptions(str: string, interpolate = true): VariableValueOption[] {\n str = interpolate ? sceneGraph.interpolate(this, str) : str;\n const match = str.match(/(?:\\\\,|[^,])+/g) ?? [];\n\n return match.map((text) => {\n text = text.replace(/\\\\,/g, ',');\n const textMatch = /^\\s*(.+)\\s:\\s(.+)$/g.exec(text) ?? [];\n if (textMatch.length === 3) {\n const [, key, value] = textMatch;\n return { label: key.trim(), value: value.trim() };\n } else {\n return { label: text.trim(), value: text.trim() };\n }\n });\n }\n\n private transformJsonToOptions(json: string) {\n const parsedOptions = JSON.parse(json);\n\n if (!Array.isArray(parsedOptions)) {\n throw new Error('Query must be a JSON array');\n }\n\n if (typeof parsedOptions[0] === 'string') {\n return parsedOptions.map((value) => ({ label: value.trim(), value: value.trim() }));\n }\n\n if (typeof parsedOptions[0] !== 'object' || parsedOptions[0] === null) {\n throw new Error('Query must be a JSON array of strings or objects');\n }\n\n const valueProp = 'value';\n const textProp = 'text';\n\n return parsedOptions.map((o) => ({\n value: String(o[valueProp]).trim(),\n label: String(o[textProp] || o[valueProp])?.trim(),\n properties: o,\n }));\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n const options =\n this.state.valuesFormat === 'csv'\n ? this.transformCsvStringToOptions(this.state.query)\n : this.transformJsonToOptions(this.state.query);\n\n if (!options.length) {\n this.skipNextValidation = true;\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return <MultiOrSingleValueSelect model={model} />;\n };\n}\n"],"names":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"CustomVariable.js","sources":["../../../../src/variables/variants/CustomVariable.tsx"],"sourcesContent":["import { Observable, of } from 'rxjs';\n\nimport { SceneComponentProps } from '../../core/types';\nimport { VariableDependencyConfig } from '../VariableDependencyConfig';\nimport { MultiOrSingleValueSelect } from '../components/VariableValueSelect';\nimport { VariableValueOption } from '../types';\n\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from './MultiValueVariable';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport React from 'react';\n\nexport interface CustomVariableState extends MultiValueVariableState {\n query: string;\n valuesFormat?: 'csv' | 'json';\n}\n\nexport class CustomVariable extends MultiValueVariable<CustomVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['query'],\n });\n\n public constructor(initialState: Partial<CustomVariableState>) {\n super({\n type: 'custom',\n query: '',\n valuesFormat: 'csv',\n value: '',\n text: '',\n options: [],\n name: '',\n ...initialState,\n });\n }\n\n // We expose this publicly as we also need it outside the variable\n // The interpolate flag is needed since we don't always want to get the interpolated options\n public transformCsvStringToOptions(str: string, interpolate = true): VariableValueOption[] {\n str = interpolate ? sceneGraph.interpolate(this, str) : str;\n const match = str.match(/(?:\\\\,|[^,])+/g) ?? [];\n\n return match.map((text) => {\n text = text.replace(/\\\\,/g, ',');\n const textMatch = /^\\s*(.+)\\s:\\s(.+)$/g.exec(text) ?? [];\n if (textMatch.length === 3) {\n const [, key, value] = textMatch;\n return { label: key.trim(), value: value.trim() };\n } else {\n return { label: text.trim(), value: text.trim() };\n }\n });\n }\n\n public transformJsonToOptions(json: string) {\n const parsedOptions = JSON.parse(json);\n\n if (!Array.isArray(parsedOptions)) {\n throw new Error('Query must be a JSON array');\n }\n\n if (typeof parsedOptions[0] === 'string') {\n return parsedOptions.map((value) => ({ label: value.trim(), value: value.trim() }));\n }\n\n if (typeof parsedOptions[0] !== 'object' || parsedOptions[0] === null) {\n throw new Error('Query must be a JSON array of strings or objects');\n }\n\n const valueProp = 'value';\n const textProp = 'text';\n\n return parsedOptions.map((o) => ({\n value: String(o[valueProp]).trim(),\n label: String(o[textProp] || o[valueProp])?.trim(),\n properties: o,\n }));\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n const options =\n this.state.valuesFormat === 'csv'\n ? this.transformCsvStringToOptions(this.state.query)\n : this.transformJsonToOptions(this.state.query);\n\n if (!options.length) {\n this.skipNextValidation = true;\n }\n\n return of(options);\n }\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return <MultiOrSingleValueSelect model={model} />;\n };\n}\n"],"names":["_a"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1264,7 +1264,10 @@ declare class CustomVariable extends MultiValueVariable<CustomVariableState> {
1264
1264
  protected _variableDependency: VariableDependencyConfig<CustomVariableState>;
1265
1265
  constructor(initialState: Partial<CustomVariableState>);
1266
1266
  transformCsvStringToOptions(str: string, interpolate?: boolean): VariableValueOption[];
1267
- private transformJsonToOptions;
1267
+ transformJsonToOptions(json: string): {
1268
+ label: any;
1269
+ value: any;
1270
+ }[];
1268
1271
  getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
1269
1272
  static Component: ({ model }: SceneComponentProps<MultiValueVariable>) => React__default.JSX.Element;
1270
1273
  }