@grafana/scenes 4.24.2--canary.755.9282326022.0 → 4.24.2--canary.757.9282504133.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/components/EmbeddedScene.js +1 -2
  3. package/dist/esm/components/EmbeddedScene.js.map +1 -1
  4. package/dist/esm/components/VizPanel/VizPanel.js +0 -3
  5. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  6. package/dist/esm/components/layout/grid/SceneGridLayout.js +15 -1
  7. package/dist/esm/components/layout/grid/SceneGridLayout.js.map +1 -1
  8. package/dist/esm/core/types.js.map +1 -1
  9. package/dist/esm/index.js +1 -4
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  12. package/dist/esm/services/UniqueUrlKeyMapper.js +1 -1
  13. package/dist/esm/services/UniqueUrlKeyMapper.js.map +1 -1
  14. package/dist/esm/services/UrlSyncManager.js +3 -11
  15. package/dist/esm/services/UrlSyncManager.js.map +1 -1
  16. package/dist/esm/utils/writeSceneLog.js +1 -5
  17. package/dist/esm/utils/writeSceneLog.js.map +1 -1
  18. package/dist/esm/variables/utils.js.map +1 -1
  19. package/dist/esm/variables/variants/MultiValueVariable.js +34 -17
  20. package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
  21. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  22. package/dist/index.d.ts +147 -245
  23. package/dist/index.js +55 -212
  24. package/dist/index.js.map +1 -1
  25. package/package.json +2 -2
  26. package/dist/esm/core/PanelBuilders/VizConfigBuilder.js +0 -78
  27. package/dist/esm/core/PanelBuilders/VizConfigBuilder.js.map +0 -1
  28. package/dist/esm/core/PanelBuilders/VizConfigBuilders.js +0 -114
  29. package/dist/esm/core/PanelBuilders/VizConfigBuilders.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"QueryVariable.js","sources":["../../../../../src/variables/variants/query/QueryVariable.tsx"],"sourcesContent":["import { Observable, of, filter, take, mergeMap, catchError, throwError, from, lastValueFrom } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n CoreApp,\n DataQueryRequest,\n LoadingState,\n PanelData,\n ScopedVars,\n VariableRefresh,\n VariableSort,\n} from '@grafana/data';\n\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { SceneComponentProps, SceneDataQuery } from '../../../core/types';\nimport { VariableDependencyConfig } from '../../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../../components/VariableValueSelect';\nimport { VariableValueOption } from '../../types';\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from '../MultiValueVariable';\n\nimport { createQueryVariableRunner } from './createQueryVariableRunner';\nimport { metricNamesToVariableValues } from './utils';\nimport { toMetricFindValues } from './toMetricFindValues';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { safeStringifyValue } from '../../utils';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\nimport { SEARCH_FILTER_VARIABLE } from '../../constants';\nimport { debounce } from 'lodash';\nimport { registerQueryWithController } from '../../../querying/registerQueryWithController';\n\nexport interface QueryVariableState extends MultiValueVariableState {\n type: 'query';\n datasource: DataSourceRef | null;\n query: string | SceneDataQuery;\n regex: string;\n refresh: VariableRefresh;\n sort: VariableSort;\n /** @internal Only for use inside core dashboards */\n definition?: string;\n}\n\nexport class QueryVariable extends MultiValueVariable<QueryVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['regex', 'query', 'datasource'],\n });\n\n public constructor(initialState: Partial<QueryVariableState>) {\n super({\n type: 'query',\n name: '',\n value: '',\n text: '',\n options: [],\n datasource: null,\n regex: '',\n query: { refId: 'A' },\n refresh: VariableRefresh.onDashboardLoad,\n sort: VariableSort.disabled,\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n if (!this.state.query) {\n return of([]);\n }\n\n this.setState({ loading: true, error: null });\n\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: { text: '__sceneObject', value: this },\n })\n ).pipe(\n mergeMap((ds) => {\n const runner = createQueryVariableRunner(ds);\n const target = runner.getTarget(this);\n const request = this.getRequest(target, args.searchFilter);\n\n return runner.runRequest({ variable: this, searchFilter: args.searchFilter }, request).pipe(\n registerQueryWithController({\n type: 'variable',\n request: request,\n origin: this,\n }),\n filter((data) => data.state === LoadingState.Done || data.state === LoadingState.Error), // we only care about done or error for now\n take(1), // take the first result, using first caused a bug where it in some situations throw an uncaught error because of no results had been received yet\n mergeMap((data: PanelData) => {\n if (data.state === LoadingState.Error) {\n return throwError(() => data.error);\n }\n return of(data);\n }),\n toMetricFindValues(),\n mergeMap((values) => {\n let regex = '';\n if (this.state.regex) {\n regex = sceneGraph.interpolate(this, this.state.regex, undefined, 'regex');\n }\n return of(metricNamesToVariableValues(regex, this.state.sort, values));\n }),\n catchError((error) => {\n if (error.cancelled) {\n return of([]);\n }\n return throwError(() => error);\n })\n );\n })\n );\n }\n\n private getRequest(target: DataQuery | string, searchFilter?: string) {\n const scopedVars: ScopedVars = {\n __sceneObject: { text: '__sceneObject', value: this },\n };\n\n if (searchFilter) {\n scopedVars.__searchFilter = { value: searchFilter, text: searchFilter };\n }\n\n const range = sceneGraph.getTimeRange(this).state.value;\n\n const request: DataQueryRequest = {\n app: CoreApp.Dashboard,\n requestId: uuidv4(),\n timezone: '',\n range,\n interval: '',\n intervalMs: 0,\n // @ts-ignore\n targets: [target],\n scopedVars,\n startTime: Date.now(),\n };\n\n return request;\n }\n\n onSearchChange = (searchFilter: string) => {\n if (!containsSearchFilter(this.state.query)) {\n return;\n }\n\n this._updateOptionsBasedOnSearchFilter(searchFilter);\n };\n\n private _updateOptionsBasedOnSearchFilter = debounce(async (searchFilter: string) => {\n const result = await lastValueFrom(this.getValueOptions({ searchFilter }));\n this.setState({ options: result, loading: false });\n }, 400);\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n\nfunction containsSearchFilter(query: string | DataQuery) {\n const str = safeStringifyValue(query);\n return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;\n}\n"],"names":["uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"QueryVariable.js","sources":["../../../../../src/variables/variants/query/QueryVariable.tsx"],"sourcesContent":["import { Observable, of, filter, take, mergeMap, catchError, throwError, from, lastValueFrom } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n CoreApp,\n DataQueryRequest,\n LoadingState,\n PanelData,\n ScopedVars,\n VariableRefresh,\n VariableSort,\n} from '@grafana/data';\n\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { SceneComponentProps } from '../../../core/types';\nimport { VariableDependencyConfig } from '../../VariableDependencyConfig';\nimport { renderSelectForVariable } from '../../components/VariableValueSelect';\nimport { VariableValueOption } from '../../types';\nimport { MultiValueVariable, MultiValueVariableState, VariableGetOptionsArgs } from '../MultiValueVariable';\n\nimport { createQueryVariableRunner } from './createQueryVariableRunner';\nimport { metricNamesToVariableValues } from './utils';\nimport { toMetricFindValues } from './toMetricFindValues';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { safeStringifyValue } from '../../utils';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\nimport { SEARCH_FILTER_VARIABLE } from '../../constants';\nimport { DataQueryExtended } from '../../../querying/SceneQueryRunner';\nimport { debounce } from 'lodash';\nimport { registerQueryWithController } from '../../../querying/registerQueryWithController';\n\nexport interface QueryVariableState extends MultiValueVariableState {\n type: 'query';\n datasource: DataSourceRef | null;\n query: string | DataQueryExtended;\n regex: string;\n refresh: VariableRefresh;\n sort: VariableSort;\n /** @internal Only for use inside core dashboards */\n definition?: string;\n}\n\nexport class QueryVariable extends MultiValueVariable<QueryVariableState> {\n protected _variableDependency = new VariableDependencyConfig(this, {\n statePaths: ['regex', 'query', 'datasource'],\n });\n\n public constructor(initialState: Partial<QueryVariableState>) {\n super({\n type: 'query',\n name: '',\n value: '',\n text: '',\n options: [],\n datasource: null,\n regex: '',\n query: { refId: 'A' },\n refresh: VariableRefresh.onDashboardLoad,\n sort: VariableSort.disabled,\n ...initialState,\n });\n }\n\n public getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]> {\n if (!this.state.query) {\n return of([]);\n }\n\n this.setState({ loading: true, error: null });\n\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: { text: '__sceneObject', value: this },\n })\n ).pipe(\n mergeMap((ds) => {\n const runner = createQueryVariableRunner(ds);\n const target = runner.getTarget(this);\n const request = this.getRequest(target, args.searchFilter);\n\n return runner.runRequest({ variable: this, searchFilter: args.searchFilter }, request).pipe(\n registerQueryWithController({\n type: 'variable',\n request: request,\n origin: this,\n }),\n filter((data) => data.state === LoadingState.Done || data.state === LoadingState.Error), // we only care about done or error for now\n take(1), // take the first result, using first caused a bug where it in some situations throw an uncaught error because of no results had been received yet\n mergeMap((data: PanelData) => {\n if (data.state === LoadingState.Error) {\n return throwError(() => data.error);\n }\n return of(data);\n }),\n toMetricFindValues(),\n mergeMap((values) => {\n let regex = '';\n if (this.state.regex) {\n regex = sceneGraph.interpolate(this, this.state.regex, undefined, 'regex');\n }\n return of(metricNamesToVariableValues(regex, this.state.sort, values));\n }),\n catchError((error) => {\n if (error.cancelled) {\n return of([]);\n }\n return throwError(() => error);\n })\n );\n })\n );\n }\n\n private getRequest(target: DataQuery | string, searchFilter?: string) {\n const scopedVars: ScopedVars = {\n __sceneObject: { text: '__sceneObject', value: this },\n };\n\n if (searchFilter) {\n scopedVars.__searchFilter = { value: searchFilter, text: searchFilter };\n }\n\n const range = sceneGraph.getTimeRange(this).state.value;\n\n const request: DataQueryRequest = {\n app: CoreApp.Dashboard,\n requestId: uuidv4(),\n timezone: '',\n range,\n interval: '',\n intervalMs: 0,\n // @ts-ignore\n targets: [target],\n scopedVars,\n startTime: Date.now(),\n };\n\n return request;\n }\n\n onSearchChange = (searchFilter: string) => {\n if (!containsSearchFilter(this.state.query)) {\n return;\n }\n\n this._updateOptionsBasedOnSearchFilter(searchFilter);\n };\n\n private _updateOptionsBasedOnSearchFilter = debounce(async (searchFilter: string) => {\n const result = await lastValueFrom(this.getValueOptions({ searchFilter }));\n this.setState({ options: result, loading: false });\n }, 400);\n\n public static Component = ({ model }: SceneComponentProps<MultiValueVariable>) => {\n return renderSelectForVariable(model);\n };\n}\n\nfunction containsSearchFilter(query: string | DataQuery) {\n const str = safeStringifyValue(query);\n return str.indexOf(SEARCH_FILTER_VARIABLE) > -1;\n}\n"],"names":["uuidv4"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as _grafana_data from '@grafana/data';
2
- import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeRange, DataQueryRequest, DataTransformContext, DataFrame, PanelPlugin, EventBus, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, SelectableValue, MetricFindValue, VariableRefresh as VariableRefresh$1, VariableSort, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, PanelMenuItem, FieldConfigSource, PanelModel, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1, FieldConfig, FieldType, FieldValueMatcherConfig } from '@grafana/data';
2
+ import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeRange, DataQueryRequest, DataTransformContext, DataFrame, PanelPlugin, EventBus, DataQuery, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, SelectableValue, MetricFindValue, VariableRefresh as VariableRefresh$1, VariableSort, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, PanelMenuItem, FieldConfigSource, PanelModel, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1, FieldConfig, FieldType, FieldValueMatcherConfig } from '@grafana/data';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { CSSProperties, ComponentType } from 'react';
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Observable, Unsubscribable, MonoTypeOperatorFunction, Subscription, ReplaySubject } from 'rxjs';
7
7
  import * as _grafana_schema from '@grafana/schema';
8
- import { VariableType, VariableHide, TimeZone, DataTopic, DataQuery, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
8
+ import { VariableType, VariableHide, TimeZone, DataTopic, DataSourceRef, DataQuery as DataQuery$1, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
9
9
  import { VariableInterpolation } from '@grafana/runtime';
10
10
  import { PanelContext, IconName } from '@grafana/ui';
11
11
  import ReactGridLayout from 'react-grid-layout';
@@ -309,10 +309,6 @@ interface UseStateHookOptions {
309
309
  */
310
310
  shouldActivateOrKeepAlive?: boolean;
311
311
  }
312
- interface SceneDataQuery extends DataQuery {
313
- [key: string]: any;
314
- timeRangeCompare?: boolean;
315
- }
316
312
 
317
313
  /**
318
314
  *
@@ -426,7 +422,7 @@ declare function useSceneObjectState<TState extends SceneObjectState>(model: Sce
426
422
 
427
423
  declare function cloneSceneObjectState<TState extends SceneObjectState>(sceneState: TState, withState?: Partial<TState>): TState;
428
424
 
429
- declare abstract class RuntimeDataSource<TQuery extends DataQuery$1 = DataQuery$1> extends DataSourceApi<TQuery> {
425
+ declare abstract class RuntimeDataSource<TQuery extends DataQuery = DataQuery> extends DataSourceApi<TQuery> {
430
426
  constructor(pluginId: string, uid: string);
431
427
  testDatasource(): Promise<any>;
432
428
  }
@@ -481,6 +477,143 @@ interface MacroVariableConstructor {
481
477
  */
482
478
  declare function registerVariableMacro(name: string, macro: MacroVariableConstructor): () => void;
483
479
 
480
+ interface VariableDependencyConfigOptions<TState extends SceneObjectState> {
481
+ /**
482
+ * State paths to scan / extract variable dependencies from. Leave empty to scan all paths.
483
+ */
484
+ statePaths?: Array<keyof TState | '*'>;
485
+ /**
486
+ * Explicit list of variable names to depend on. Leave empty to scan state for dependencies.
487
+ */
488
+ variableNames?: string[];
489
+ /**
490
+ * Optional way to customize how to handle when a dependent variable changes
491
+ * If not specified the default behavior is to trigger a re-render
492
+ */
493
+ onReferencedVariableValueChanged?: (variable: SceneVariable) => void;
494
+ /**
495
+ * Two scenarios trigger this callback to be called.
496
+ * 1. When any direct dependency changed value
497
+ * 2. In case hasDependencyInLoadingState was called and returned true we really care about any variable update. So in this scenario this callback is called
498
+ * after any variable update completes. This is to cover scenarios where an object is waiting for indirect dependencies to complete.
499
+ */
500
+ onVariableUpdateCompleted?: () => void;
501
+ /**
502
+ * Optional way to subscribe to all variable value changes, even to variables that are not dependencies.
503
+ */
504
+ onAnyVariableChanged?: (variable: SceneVariable) => void;
505
+ }
506
+ declare class VariableDependencyConfig<TState extends SceneObjectState> implements SceneVariableDependencyConfigLike {
507
+ private _sceneObject;
508
+ private _options;
509
+ private _state;
510
+ private _dependencies;
511
+ private _statePaths?;
512
+ private _isWaitingForVariables;
513
+ scanCount: number;
514
+ constructor(_sceneObject: SceneObject<TState>, _options: VariableDependencyConfigOptions<TState>);
515
+ /**
516
+ * Used to check for dependency on a specific variable
517
+ */
518
+ hasDependencyOn(name: string): boolean;
519
+ /**
520
+ * This is called whenever any set of variables have new values. It is up to this implementation to check if it's relevant given the current dependencies.
521
+ */
522
+ variableUpdateCompleted(variable: SceneVariable, hasChanged: boolean): void;
523
+ hasDependencyInLoadingState(): boolean;
524
+ getNames(): Set<string>;
525
+ /**
526
+ * Update variableNames
527
+ */
528
+ setVariableNames(varNames: string[]): void;
529
+ setPaths(paths: Array<keyof TState | '*'>): void;
530
+ private scanStateForDependencies;
531
+ private extractVariablesFrom;
532
+ }
533
+
534
+ interface QueryRunnerState extends SceneObjectState {
535
+ data?: PanelData;
536
+ queries: DataQueryExtended[];
537
+ datasource?: DataSourceRef;
538
+ minInterval?: string;
539
+ maxDataPoints?: number;
540
+ liveStreaming?: boolean;
541
+ maxDataPointsFromWidth?: boolean;
542
+ cacheTimeout?: DataQueryRequest['cacheTimeout'];
543
+ queryCachingTTL?: DataQueryRequest['queryCachingTTL'];
544
+ dataLayerFilter?: DataLayerFilter;
545
+ _hasFetchedData?: boolean;
546
+ }
547
+ interface DataQueryExtended extends DataQuery$1 {
548
+ [key: string]: any;
549
+ timeRangeCompare?: boolean;
550
+ }
551
+ declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> implements SceneDataProvider {
552
+ private _querySub?;
553
+ private _dataLayersSub?;
554
+ private _dataLayersMerger;
555
+ private _timeSub?;
556
+ private _timeSubRange?;
557
+ private _containerWidth?;
558
+ private _variableValueRecorder;
559
+ private _results;
560
+ private _scopedVars;
561
+ private _layerAnnotations?;
562
+ private _resultAnnotations?;
563
+ private _adhocFiltersVar?;
564
+ private _groupByVar?;
565
+ getResultsStream(): ReplaySubject<SceneDataProviderResult>;
566
+ protected _variableDependency: VariableDependencyConfig<QueryRunnerState>;
567
+ constructor(initialState: QueryRunnerState);
568
+ private _onActivate;
569
+ private _handleDataLayers;
570
+ private _onLayersReceived;
571
+ /**
572
+ * This tries to start a new query whenever a variable completes or is changed.
573
+ *
574
+ * We care about variable update completions even when the variable has not changed and even when it is not a direct dependency.
575
+ * Example: Variables A and B (B depends on A). A update depends on time range. So when time change query runner will
576
+ * find that variable A is loading which is a dependency on of variable B so will set _isWaitingForVariables to true and
577
+ * not issue any query.
578
+ *
579
+ * When A completes it's loading (with no value change, so B never updates) it will cause a call of this function letting
580
+ * the query runner know that A has completed, and in case _isWaitingForVariables we try to run the query. The query will
581
+ * only run if all variables are in a non loading state so in other scenarios where a query depends on many variables this will
582
+ * be called many times until all dependencies are in a non loading state. *
583
+ */
584
+ private onVariableUpdatesCompleted;
585
+ /**
586
+ * Check if value changed is a adhoc filter o group by variable that did not exist when we issued the last query
587
+ */
588
+ private onAnyVariableChanged;
589
+ private _isRelevantAutoVariable;
590
+ private shouldRunQueriesOnActivate;
591
+ private _isDataTimeRangeStale;
592
+ private _onDeactivate;
593
+ setContainerWidth(width: number): void;
594
+ isDataReadyToDisplay(): boolean;
595
+ private subscribeToTimeRangeChanges;
596
+ runQueries(): void;
597
+ private getMaxDataPoints;
598
+ cancelQuery(): void;
599
+ private runWithTimeRange;
600
+ clone(withState?: Partial<QueryRunnerState>): this;
601
+ private prepareRequests;
602
+ private onDataReceived;
603
+ private _combineDataLayers;
604
+ private _setNoDataState;
605
+ /**
606
+ * Will walk up the scene graph and find the closest time range compare object
607
+ * It performs buttom-up search, including shallow search across object children for supporting controls/header actions
608
+ */
609
+ private getTimeCompare;
610
+ /**
611
+ * Walk up scene graph and find the closest filterset with matching data source
612
+ */
613
+ private findAndSubscribeToAdHocFilters;
614
+ private _updateExplicitVariableDependencies;
615
+ }
616
+
484
617
  declare function renderPrometheusLabelFilters(filters: AdHocVariableFilter[]): string;
485
618
 
486
619
  declare class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {
@@ -600,60 +733,6 @@ declare class ConstantVariable extends SceneObjectBase<ConstantVariableState> im
600
733
  getValue(): VariableValue;
601
734
  }
602
735
 
603
- interface VariableDependencyConfigOptions<TState extends SceneObjectState> {
604
- /**
605
- * State paths to scan / extract variable dependencies from. Leave empty to scan all paths.
606
- */
607
- statePaths?: Array<keyof TState | '*'>;
608
- /**
609
- * Explicit list of variable names to depend on. Leave empty to scan state for dependencies.
610
- */
611
- variableNames?: string[];
612
- /**
613
- * Optional way to customize how to handle when a dependent variable changes
614
- * If not specified the default behavior is to trigger a re-render
615
- */
616
- onReferencedVariableValueChanged?: (variable: SceneVariable) => void;
617
- /**
618
- * Two scenarios trigger this callback to be called.
619
- * 1. When any direct dependency changed value
620
- * 2. In case hasDependencyInLoadingState was called and returned true we really care about any variable update. So in this scenario this callback is called
621
- * after any variable update completes. This is to cover scenarios where an object is waiting for indirect dependencies to complete.
622
- */
623
- onVariableUpdateCompleted?: () => void;
624
- /**
625
- * Optional way to subscribe to all variable value changes, even to variables that are not dependencies.
626
- */
627
- onAnyVariableChanged?: (variable: SceneVariable) => void;
628
- }
629
- declare class VariableDependencyConfig<TState extends SceneObjectState> implements SceneVariableDependencyConfigLike {
630
- private _sceneObject;
631
- private _options;
632
- private _state;
633
- private _dependencies;
634
- private _statePaths?;
635
- private _isWaitingForVariables;
636
- scanCount: number;
637
- constructor(_sceneObject: SceneObject<TState>, _options: VariableDependencyConfigOptions<TState>);
638
- /**
639
- * Used to check for dependency on a specific variable
640
- */
641
- hasDependencyOn(name: string): boolean;
642
- /**
643
- * This is called whenever any set of variables have new values. It is up to this implementation to check if it's relevant given the current dependencies.
644
- */
645
- variableUpdateCompleted(variable: SceneVariable, hasChanged: boolean): void;
646
- hasDependencyInLoadingState(): boolean;
647
- getNames(): Set<string>;
648
- /**
649
- * Update variableNames
650
- */
651
- setVariableNames(varNames: string[]): void;
652
- setPaths(paths: Array<keyof TState | '*'>): void;
653
- private scanStateForDependencies;
654
- private extractVariablesFrom;
655
- }
656
-
657
736
  interface MultiValueVariableState extends SceneVariableState {
658
737
  value: VariableValue;
659
738
  text: VariableValue;
@@ -692,6 +771,7 @@ declare abstract class MultiValueVariable<TState extends MultiValueVariableState
692
771
  * Check if current value is valid given new options. If not update the value.
693
772
  */
694
773
  private updateValueGivenNewOptions;
774
+ private getStateUpdateGivenNewOptions;
695
775
  /**
696
776
  * Values set by initial URL sync needs to survive the next validation and update.
697
777
  * This function can intercept and make sure those values are preserved.
@@ -792,7 +872,7 @@ declare class TextBoxVariable extends SceneObjectBase<TextBoxVariableState> impl
792
872
  interface QueryVariableState extends MultiValueVariableState {
793
873
  type: 'query';
794
874
  datasource: DataSourceRef | null;
795
- query: string | SceneDataQuery;
875
+ query: string | DataQueryExtended;
796
876
  regex: string;
797
877
  refresh: VariableRefresh$1;
798
878
  sort: VariableSort;
@@ -1219,85 +1299,6 @@ declare class SceneTimeZoneOverride extends SceneTimeRangeTransformerBase<SceneT
1219
1299
  onTimeZoneChange(timeZone: string): void;
1220
1300
  }
1221
1301
 
1222
- interface QueryRunnerState extends SceneObjectState {
1223
- data?: PanelData;
1224
- queries: SceneDataQuery[];
1225
- datasource?: DataSourceRef;
1226
- minInterval?: string;
1227
- maxDataPoints?: number;
1228
- liveStreaming?: boolean;
1229
- maxDataPointsFromWidth?: boolean;
1230
- cacheTimeout?: DataQueryRequest['cacheTimeout'];
1231
- queryCachingTTL?: DataQueryRequest['queryCachingTTL'];
1232
- dataLayerFilter?: DataLayerFilter;
1233
- _hasFetchedData?: boolean;
1234
- }
1235
- declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> implements SceneDataProvider {
1236
- private _querySub?;
1237
- private _dataLayersSub?;
1238
- private _dataLayersMerger;
1239
- private _timeSub?;
1240
- private _timeSubRange?;
1241
- private _containerWidth?;
1242
- private _variableValueRecorder;
1243
- private _results;
1244
- private _scopedVars;
1245
- private _layerAnnotations?;
1246
- private _resultAnnotations?;
1247
- private _adhocFiltersVar?;
1248
- private _groupByVar?;
1249
- getResultsStream(): ReplaySubject<SceneDataProviderResult>;
1250
- protected _variableDependency: VariableDependencyConfig<QueryRunnerState>;
1251
- constructor(initialState: QueryRunnerState);
1252
- private _onActivate;
1253
- private _handleDataLayers;
1254
- private _onLayersReceived;
1255
- /**
1256
- * This tries to start a new query whenever a variable completes or is changed.
1257
- *
1258
- * We care about variable update completions even when the variable has not changed and even when it is not a direct dependency.
1259
- * Example: Variables A and B (B depends on A). A update depends on time range. So when time change query runner will
1260
- * find that variable A is loading which is a dependency on of variable B so will set _isWaitingForVariables to true and
1261
- * not issue any query.
1262
- *
1263
- * When A completes it's loading (with no value change, so B never updates) it will cause a call of this function letting
1264
- * the query runner know that A has completed, and in case _isWaitingForVariables we try to run the query. The query will
1265
- * only run if all variables are in a non loading state so in other scenarios where a query depends on many variables this will
1266
- * be called many times until all dependencies are in a non loading state. *
1267
- */
1268
- private onVariableUpdatesCompleted;
1269
- /**
1270
- * Check if value changed is a adhoc filter o group by variable that did not exist when we issued the last query
1271
- */
1272
- private onAnyVariableChanged;
1273
- private _isRelevantAutoVariable;
1274
- private shouldRunQueriesOnActivate;
1275
- private _isDataTimeRangeStale;
1276
- private _onDeactivate;
1277
- setContainerWidth(width: number): void;
1278
- isDataReadyToDisplay(): boolean;
1279
- private subscribeToTimeRangeChanges;
1280
- runQueries(): void;
1281
- private getMaxDataPoints;
1282
- cancelQuery(): void;
1283
- private runWithTimeRange;
1284
- clone(withState?: Partial<QueryRunnerState>): this;
1285
- private prepareRequests;
1286
- private onDataReceived;
1287
- private _combineDataLayers;
1288
- private _setNoDataState;
1289
- /**
1290
- * Will walk up the scene graph and find the closest time range compare object
1291
- * It performs buttom-up search, including shallow search across object children for supporting controls/header actions
1292
- */
1293
- private getTimeCompare;
1294
- /**
1295
- * Walk up scene graph and find the closest filterset with matching data source
1296
- */
1297
- private findAndSubscribeToAdHocFilters;
1298
- private _updateExplicitVariableDependencies;
1299
- }
1300
-
1301
1302
  declare abstract class SceneDataLayerSetBase<T extends SceneDataLayerProviderState> extends SceneObjectBase<T> implements SceneDataLayerProvider {
1302
1303
  /** Mark it as a data layer */
1303
1304
  isDataLayer: true;
@@ -1383,13 +1384,6 @@ declare class VariableValueSelectors extends SceneObjectBase<VariableValueSelect
1383
1384
  static Component: typeof VariableValueSelectorsRenderer;
1384
1385
  }
1385
1386
  declare function VariableValueSelectorsRenderer({ model }: SceneComponentProps<VariableValueSelectors>): React__default.JSX.Element;
1386
- interface VariableSelectProps {
1387
- layout?: ControlsLayout;
1388
- variable: SceneVariable;
1389
- /** To override hide from VariableValueSelectByName */
1390
- showAlways?: boolean;
1391
- }
1392
- declare function VariableValueSelectWrapper({ variable, layout, showAlways }: VariableSelectProps): React__default.JSX.Element | null;
1393
1387
 
1394
1388
  interface VariableValueControlState extends SceneObjectState {
1395
1389
  layout?: ControlsLayout;
@@ -1530,7 +1524,6 @@ interface UrlSyncManagerLike {
1530
1524
  initSync(root: SceneObject): void;
1531
1525
  cleanUp(root: SceneObject): void;
1532
1526
  getUrlState(root: SceneObject): SceneObjectUrlValues;
1533
- syncNewObj(obj: SceneObject): void;
1534
1527
  }
1535
1528
  declare class UrlSyncManager implements UrlSyncManagerLike {
1536
1529
  private _urlKeyMapper;
@@ -1539,7 +1532,6 @@ declare class UrlSyncManager implements UrlSyncManagerLike {
1539
1532
  private _locationSub?;
1540
1533
  private _lastPath?;
1541
1534
  private _ignoreNextLocationUpdate;
1542
- private _urlParams;
1543
1535
  /**
1544
1536
  * Updates the current scene state to match URL state.
1545
1537
  */
@@ -1548,7 +1540,6 @@ declare class UrlSyncManager implements UrlSyncManagerLike {
1548
1540
  syncFrom(sceneObj: SceneObject): void;
1549
1541
  private _onLocationUpdate;
1550
1542
  private _onStateChanged;
1551
- syncNewObj(obj: SceneObject): void;
1552
1543
  getUrlState(root: SceneObject): SceneObjectUrlValues;
1553
1544
  }
1554
1545
  declare function getUrlSyncManager(): UrlSyncManagerLike;
@@ -1660,7 +1651,6 @@ declare class VizPanel<TOptions = {}, TFieldConfig extends {} = {}> extends Scen
1660
1651
  onFieldConfigChange: (fieldConfigUpdate: FieldConfigSource<DeepPartial<TFieldConfig>>, replace?: boolean) => void;
1661
1652
  interpolate: InterpolateFunction;
1662
1653
  getDescription: () => string;
1663
- clearFieldConfigCache(): void;
1664
1654
  /**
1665
1655
  * Called from the react render path to apply the field config to the data provided by the data provider
1666
1656
  */
@@ -2015,6 +2005,10 @@ declare class SceneGridLayout extends SceneObjectBase<SceneGridLayoutState> impl
2015
2005
  * If it is collapsed there is no row to add it to. The default is then to return the SceneGridLayout itself
2016
2006
  */
2017
2007
  private findGridItemSceneParent;
2008
+ /**
2009
+ * Helper func to check if we are dropping a row in between panels of another row
2010
+ */
2011
+ private isRowDropValid;
2018
2012
  /**
2019
2013
  * This likely needs a slightly different approach. Where we clone or deactivate or and re-activate the moved child
2020
2014
  */
@@ -2185,12 +2179,6 @@ type StandardFieldConfigInterface<T, C, Prefix extends string> = {
2185
2179
  [K in Exclude<keyof T, keyof any[]> as `${Prefix}${Capitalize<string & K>}`]: (value: T[K]) => C;
2186
2180
  };
2187
2181
  type StandardFieldConfig = Pick<FieldConfig, 'color' | 'decimals' | 'displayName' | 'filterable' | 'links' | 'mappings' | 'max' | 'min' | 'noValue' | 'thresholds' | 'unit'>;
2188
- interface VizConfig<TOptions = {}, TFieldConfig = {}> {
2189
- pluginId: string;
2190
- pluginVersion: string;
2191
- options: DeepPartial<TOptions>;
2192
- fieldConfig: FieldConfigSource<DeepPartial<TFieldConfig>>;
2193
- }
2194
2182
 
2195
2183
  declare class StandardFieldConfigOverridesBuilder<T extends StandardFieldConfigOverridesBuilder<T>> implements StandardFieldConfigInterface<StandardFieldConfig, T, 'override'> {
2196
2184
  protected _overrides: Array<{
@@ -2499,92 +2487,6 @@ interface Props {
2499
2487
  */
2500
2488
  declare function SceneDebugger({ scene }: Props): React__default.JSX.Element;
2501
2489
 
2502
- declare class VizConfigBuilder<TOptions extends {}, TFieldConfig extends {}> implements StandardFieldConfigInterface<StandardFieldConfig, VizConfigBuilder<TOptions, TFieldConfig>, 'set'> {
2503
- private _fieldConfigBuilder;
2504
- private _panelOptionsBuilder;
2505
- private _pluginId;
2506
- private _pluginVersion;
2507
- constructor(pluginId: string, pluginVersion: string, defaultOptions?: () => Partial<TOptions>, defaultFieldConfig?: () => TFieldConfig);
2508
- /**
2509
- * Set color.
2510
- */
2511
- setColor(color: StandardFieldConfig['color']): this;
2512
- /**
2513
- * Set number of decimals to show.
2514
- */
2515
- setDecimals(decimals: StandardFieldConfig['decimals']): this;
2516
- /**
2517
- * Set field display name.
2518
- */
2519
- setDisplayName(displayName: StandardFieldConfig['displayName']): this;
2520
- /**
2521
- * Set the standard field config property filterable.
2522
- */
2523
- setFilterable(filterable: StandardFieldConfig['filterable']): this;
2524
- /**
2525
- * Set data links.
2526
- */
2527
- setLinks(links: StandardFieldConfig['links']): this;
2528
- /**
2529
- * Set value mappings.
2530
- */
2531
- setMappings(mappings: StandardFieldConfig['mappings']): this;
2532
- /**
2533
- * Set the standard field config property max.
2534
- */
2535
- setMax(max: StandardFieldConfig['max']): this;
2536
- /**
2537
- * Set the standard field config property min.
2538
- */
2539
- setMin(min: StandardFieldConfig['min']): this;
2540
- /**
2541
- * Set the standard field config property noValue.
2542
- */
2543
- setNoValue(noValue: StandardFieldConfig['noValue']): this;
2544
- /**
2545
- * Set the standard field config property thresholds.
2546
- */
2547
- setThresholds(thresholds: StandardFieldConfig['thresholds']): this;
2548
- /**
2549
- * Set the standard field config property unit.
2550
- */
2551
- setUnit(unit: StandardFieldConfig['unit']): this;
2552
- setCustomFieldConfig<T extends TFieldConfig, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this;
2553
- setOverrides(builder: (b: FieldConfigOverridesBuilder<TFieldConfig>) => void): this;
2554
- /**
2555
- * Set an individual panel option. This will merge the value with the existing options.
2556
- */
2557
- setOption<T extends TOptions, K extends keyof T>(id: K, value: DeepPartial<T[K]>): this;
2558
- /**
2559
- * Build the panel.
2560
- */
2561
- build(): VizConfig<TOptions, TFieldConfig>;
2562
- }
2563
-
2564
- declare const VizConfigBuilders: {
2565
- barchart(): VizConfigBuilder<Options, FieldConfig$1>;
2566
- bargauge(): VizConfigBuilder<Options$1, {}>;
2567
- datagrid(): VizConfigBuilder<Options$2, {}>;
2568
- flamegraph(): VizConfigBuilder<{}, {}>;
2569
- gauge(): VizConfigBuilder<Options$3, {}>;
2570
- geomap(): VizConfigBuilder<Options$4, {}>;
2571
- heatmap(): VizConfigBuilder<Options$5, FieldConfig$2>;
2572
- histogram(): VizConfigBuilder<Options$6, FieldConfig$3>;
2573
- logs(): VizConfigBuilder<Options$7, {}>;
2574
- news(): VizConfigBuilder<Options$8, {}>;
2575
- nodegraph(): VizConfigBuilder<Options$9, {}>;
2576
- piechart(): VizConfigBuilder<Options$a, FieldConfig$4>;
2577
- stat(): VizConfigBuilder<Options$b, {}>;
2578
- statetimeline(): VizConfigBuilder<Options$c, FieldConfig$5>;
2579
- statushistory(): VizConfigBuilder<Options$d, FieldConfig$6>;
2580
- table(): VizConfigBuilder<Options$e, TableFieldOptions>;
2581
- text(): VizConfigBuilder<Options$f, {}>;
2582
- timeseries(): VizConfigBuilder<Options$g, FieldConfig$7>;
2583
- trend(): VizConfigBuilder<{}, {}>;
2584
- traces(): VizConfigBuilder<Options$h, FieldConfig$8>;
2585
- xychart(): VizConfigBuilder<Options$i, {}>;
2586
- };
2587
-
2588
2490
  declare const sceneUtils: {
2589
2491
  getUrlWithAppState: typeof getUrlWithAppState;
2590
2492
  registerRuntimePanelPlugin: typeof registerRuntimePanelPlugin;
@@ -2604,4 +2506,4 @@ declare const sceneUtils: {
2604
2506
  isGroupByVariable: typeof isGroupByVariable;
2605
2507
  };
2606
2508
 
2607
- export { AdHocFiltersVariable, CancelActivationHandler, ConstantVariable, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariable, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, FormatVariable, GroupByVariable, InterpolationFormatParameter, IntervalVariable, LocalValueVariable, MacroVariableConstructor, MultiValueVariable, NestedScene, PanelBuilders, PanelOptionsBuilders, QueryRunnerState, QueryVariable, RuntimeDataSource, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformer, SceneDeactivationHandler, SceneDebugger, SceneFlexItem, SceneFlexItemLike, SceneFlexItemState, SceneFlexLayout, SceneGridItem, SceneGridItemLike, SceneGridItemStateLike, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeLike, SceneTimeRangeState, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, SplitLayout, TestVariable, TextBoxVariable, UrlSyncManager, UrlSyncManagerLike, UseStateHookOptions, UserActionEvent, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableValue, VariableValueControl, VariableValueOption, VariableValueSelectWrapper, VariableValueSelectors, VariableValueSingle, VizConfig, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelMenu, VizPanelState, index$1 as behaviors, index as dataLayers, formatRegistry, getUrlSyncManager, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isSceneObject, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState };
2509
+ export { AdHocFiltersVariable, CancelActivationHandler, ConstantVariable, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariable, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DataSourceVariable, DeepPartial, EmbeddedScene, EmbeddedSceneState, FieldConfigBuilders, FieldConfigOverridesBuilder, FormatVariable, GroupByVariable, InterpolationFormatParameter, IntervalVariable, LocalValueVariable, MacroVariableConstructor, MultiValueVariable, NestedScene, PanelBuilders, PanelOptionsBuilders, QueryRunnerState, QueryVariable, RuntimeDataSource, SceneActivationHandler, SceneApp, SceneAppDrilldownView, SceneAppPage, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneComponent, SceneComponentProps, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataProvider, SceneDataProviderResult, SceneDataState, SceneDataTransformer, SceneDeactivationHandler, SceneDebugger, SceneFlexItem, SceneFlexItemLike, SceneFlexItemState, SceneFlexLayout, SceneGridItem, SceneGridItemLike, SceneGridItemStateLike, SceneGridLayout, SceneGridRow, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectBase, SceneObjectRef, SceneObjectState, SceneObjectStateChangedEvent, SceneObjectStateChangedPayload, SceneObjectUrlSyncConfig, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeLike, SceneTimeRangeState, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSet, SceneVariableSetState, SceneVariableState, SceneVariableValueChangedEvent, SceneVariables, SplitLayout, TestVariable, TextBoxVariable, UrlSyncManager, UrlSyncManagerLike, UseStateHookOptions, UserActionEvent, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableDependencyConfig, VariableValue, VariableValueControl, VariableValueOption, VariableValueSelectors, VariableValueSingle, VizPanel, VizPanelBuilder, VizPanelMenu, VizPanelState, index$1 as behaviors, index as dataLayers, formatRegistry, getUrlSyncManager, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isSceneObject, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState };