@grafana/scenes 6.42.2--canary.1293.18968800163.0 → 6.42.3--canary.1294.18971111328.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.
- package/CHANGELOG.md +13 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/variables/variants/ExperimentalIntervalVariable.js +106 -0
- package/dist/esm/variables/variants/ExperimentalIntervalVariable.js.map +1 -0
- package/dist/index.d.ts +32 -5
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# v6.42.2 (Fri Oct 31 2025)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- I18n: Download translations from Crowdin [#1293](https://github.com/grafana/scenes/pull/1293) ([@github-actions[bot]](https://github.com/github-actions[bot]) [@grafana-pr-automation[bot]](https://github.com/grafana-pr-automation[bot]))
|
|
6
|
+
|
|
7
|
+
#### Authors: 2
|
|
8
|
+
|
|
9
|
+
- [@github-actions[bot]](https://github.com/github-actions[bot])
|
|
10
|
+
- [@grafana-pr-automation[bot]](https://github.com/grafana-pr-automation[bot])
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
1
14
|
# v6.42.1 (Thu Oct 30 2025)
|
|
2
15
|
|
|
3
16
|
#### 🐛 Bug Fix
|
package/dist/esm/index.js
CHANGED
|
@@ -49,6 +49,7 @@ export { ScopesVariable } from './variables/variants/ScopesVariable.js';
|
|
|
49
49
|
export { MultiValueVariable } from './variables/variants/MultiValueVariable.js';
|
|
50
50
|
export { LocalValueVariable } from './variables/variants/LocalValueVariable.js';
|
|
51
51
|
export { IntervalVariable } from './variables/variants/IntervalVariable.js';
|
|
52
|
+
export { ExperimentalIntervalVariable } from './variables/variants/ExperimentalIntervalVariable.js';
|
|
52
53
|
export { AdHocFiltersVariable } from './variables/adhoc/AdHocFiltersVariable.js';
|
|
53
54
|
export { AdHocFiltersVariableController } from './variables/adhoc/controller/AdHocFiltersVariableController.js';
|
|
54
55
|
export { AdHocFiltersComboboxRenderer } from './variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { getUrlWithAppState } from './components/SceneApp/utils';\nimport { registerRuntimePanelPlugin } from './components/VizPanel/registerRuntimePanelPlugin';\nimport { cloneSceneObjectState } from './core/sceneGraph/cloneSceneObject';\nimport { registerRuntimeDataSource } from './querying/RuntimeDataSource';\nimport { getUrlState, syncStateFromSearchParams } from './services/utils';\nimport { buildPathIdFor } from './utils/pathId';\nimport { isRepeatCloneOrChildOf } from './utils/utils';\n\nimport { registerVariableMacro } from './variables/macros';\nimport {\n escapeLabelValueInExactSelector,\n escapeLabelValueInRegexSelector,\n escapeURLDelimiters,\n renderPrometheusLabelFilters,\n} from './variables/utils';\nimport {\n isAdHocVariable,\n isQueryVariable,\n isTextBoxVariable,\n isCustomVariable,\n isDataSourceVariable,\n isConstantVariable,\n isIntervalVariable,\n isGroupByVariable,\n isSwitchVariable,\n} from './variables/variants/guards';\n\nexport * from './core/types';\nexport * from './core/events';\nexport { sceneGraph } from './core/sceneGraph';\nexport * as behaviors from './behaviors';\nexport * as performanceUtils from './performance';\nexport { writePerformanceLog } from './utils/writePerformanceLog';\nexport * as dataLayers from './querying/layers';\n\nexport { SceneObjectBase, useSceneObjectState } from './core/SceneObjectBase';\nexport { SceneDataNode } from './core/SceneDataNode';\nexport { SceneTimeRange } from './core/SceneTimeRange';\nexport { SceneTimeZoneOverride } from './core/SceneTimeZoneOverride';\n\nexport { SceneQueryRunner, type QueryRunnerState } from './querying/SceneQueryRunner';\nexport { DataProviderProxy } from './querying/DataProviderProxy';\nexport {\n type ExtraQueryDescriptor,\n type ExtraQueryProvider,\n type ExtraQueryDataProcessor,\n} from './querying/ExtraQueryProvider';\nexport { SceneDataLayerSet, SceneDataLayerSetBase } from './querying/SceneDataLayerSet';\nexport { SceneDataLayerBase } from './querying/layers/SceneDataLayerBase';\nexport { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls';\nexport { SceneDataTransformer, type SceneDataTransformerState } from './querying/SceneDataTransformer';\nexport { registerQueryWithController } from './querying/registerQueryWithController';\nexport { registerRuntimeDataSource, RuntimeDataSource } from './querying/RuntimeDataSource';\nexport type {\n SceneQueryControllerLike,\n SceneQueryControllerEntryType,\n SceneQueryControllerEntry,\n} from './behaviors/types';\n\nexport * from './variables/types';\nexport { VariableDependencyConfig } from './variables/VariableDependencyConfig';\nexport { formatRegistry, type FormatVariable } from './variables/interpolation/formatRegistry';\nexport { VariableValueSelectors } from './variables/components/VariableValueSelectors';\nexport { VariableValueControl } from './variables/components/VariableValueControl';\nexport { SceneVariableSet } from './variables/sets/SceneVariableSet';\nexport { ConstantVariable } from './variables/variants/ConstantVariable';\nexport { CustomVariable } from './variables/variants/CustomVariable';\nexport { SwitchVariable } from './variables/variants/SwitchVariable';\nexport { DataSourceVariable } from './variables/variants/DataSourceVariable';\nexport { QueryVariable } from './variables/variants/query/QueryVariable';\nexport { TestVariable } from './variables/variants/TestVariable';\nexport { TextBoxVariable } from './variables/variants/TextBoxVariable';\nexport { ScopesVariable } from './variables/variants/ScopesVariable';\nexport {\n MultiValueVariable,\n type MultiValueVariableState,\n type VariableGetOptionsArgs,\n} from './variables/variants/MultiValueVariable';\nexport { LocalValueVariable } from './variables/variants/LocalValueVariable';\nexport { IntervalVariable } from './variables/variants/IntervalVariable';\nexport { AdHocFiltersVariable } from './variables/adhoc/AdHocFiltersVariable';\nexport type { AdHocFilterWithLabels } from './variables/adhoc/AdHocFiltersVariable';\nexport type {\n AdHocFiltersController,\n AdHocFiltersControllerState,\n} from './variables/adhoc/controller/AdHocFiltersController';\nexport { AdHocFiltersVariableController } from './variables/adhoc/controller/AdHocFiltersVariableController';\nexport { AdHocFiltersComboboxRenderer } from './variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer';\nexport { GroupByVariable } from './variables/groupby/GroupByVariable';\nexport { type MacroVariableConstructor } from './variables/macros/types';\nexport { escapeUrlPipeDelimiters } from './variables/utils';\n\nexport { type UrlSyncManagerLike, UrlSyncManager, NewSceneObjectAddedEvent } from './services/UrlSyncManager';\nexport { useUrlSync } from './services/useUrlSync';\nexport { UrlSyncContextProvider } from './services/UrlSyncContextProvider';\nexport { SceneObjectUrlSyncConfig } from './services/SceneObjectUrlSyncConfig';\n\nexport { EmbeddedScene, type EmbeddedSceneState } from './components/EmbeddedScene';\nexport { VizPanel, type VizPanelState } from './components/VizPanel/VizPanel';\nexport { VizPanelMenu } from './components/VizPanel/VizPanelMenu';\nexport { VizPanelExploreButton } from './components/VizPanel/VizPanelExploreButton';\nexport { NestedScene } from './components/NestedScene';\nexport { SceneCanvasText } from './components/SceneCanvasText';\nexport { SceneToolbarButton, SceneToolbarInput } from './components/SceneToolbarButton';\nexport { SceneTimePicker } from './components/SceneTimePicker';\nexport { SceneRefreshPicker, type SceneRefreshPickerState } from './components/SceneRefreshPicker';\nexport { SceneTimeRangeTransformerBase } from './core/SceneTimeRangeTransformerBase';\nexport { SceneTimeRangeCompare } from './components/SceneTimeRangeCompare';\nexport { SceneByFrameRepeater } from './components/SceneByFrameRepeater';\nexport { SceneByVariableRepeater } from './components/SceneByVariableRepeater';\nexport { SceneControlsSpacer } from './components/SceneControlsSpacer';\nexport {\n SceneFlexLayout,\n SceneFlexItem,\n type SceneFlexItemState,\n type SceneFlexItemLike,\n} from './components/layout/SceneFlexLayout';\nexport { SceneCSSGridLayout, SceneCSSGridItem } from './components/layout/CSSGrid/SceneCSSGridLayout';\nexport { SceneGridLayout } from './components/layout/grid/SceneGridLayout';\nexport { SceneGridLayoutDragStartEvent } from './components/layout/grid/types';\nexport { SceneGridItem } from './components/layout/grid/SceneGridItem';\nexport { SceneGridRow } from './components/layout/grid/SceneGridRow';\nexport { type SceneGridItemStateLike, type SceneGridItemLike } from './components/layout/grid/types';\nexport { SplitLayout } from './components/layout/split/SplitLayout';\nexport { LazyLoader } from './components/layout/LazyLoader';\nexport {\n type SceneAppPageLike,\n type SceneRouteMatch,\n type SceneAppPageState,\n type SceneAppDrilldownView,\n type SceneAppRoute,\n} from './components/SceneApp/types';\nexport { SceneApp, useSceneApp } from './components/SceneApp/SceneApp';\nexport { SceneAppPage } from './components/SceneApp/SceneAppPage';\nexport { SceneReactObject } from './components/SceneReactObject';\nexport { SceneObjectRef } from './core/SceneObjectRef';\nexport {\n PanelBuilders,\n PanelOptionsBuilders,\n FieldConfigBuilders,\n FieldConfigOverridesBuilder,\n} from './core/PanelBuilders';\nexport { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder';\nexport { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder';\nexport { SceneDebugger } from './components/SceneDebugger/SceneDebugger';\nexport { VariableValueSelectWrapper } from './variables/components/VariableValueSelectors';\nexport { ControlsLabel } from './utils/ControlsLabel';\nexport { MultiOrSingleValueSelect } from './variables/components/VariableValueSelect';\nexport { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder';\nexport { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders';\nexport { type VizConfig } from './core/PanelBuilders/types';\n\nexport const sceneUtils = {\n getUrlWithAppState,\n registerRuntimePanelPlugin,\n registerRuntimeDataSource,\n registerVariableMacro,\n cloneSceneObjectState,\n syncStateFromSearchParams,\n getUrlState,\n renderPrometheusLabelFilters,\n escapeLabelValueInRegexSelector,\n escapeLabelValueInExactSelector,\n escapeURLDelimiters,\n\n // Variable guards\n isAdHocVariable,\n isConstantVariable,\n isCustomVariable,\n isDataSourceVariable,\n isIntervalVariable,\n isQueryVariable,\n isTextBoxVariable,\n isGroupByVariable,\n isSwitchVariable,\n isRepeatCloneOrChildOf,\n buildPathIdFor,\n};\n\nexport { SafeSerializableSceneObject } from './utils/SafeSerializableSceneObject';\nexport { getExploreURL } from './utils/explore';\nexport { loadResources } from './utils/loadResources';\nexport { PATH_ID_SEPARATOR } from './utils/pathId';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { getUrlWithAppState } from './components/SceneApp/utils';\nimport { registerRuntimePanelPlugin } from './components/VizPanel/registerRuntimePanelPlugin';\nimport { cloneSceneObjectState } from './core/sceneGraph/cloneSceneObject';\nimport { registerRuntimeDataSource } from './querying/RuntimeDataSource';\nimport { getUrlState, syncStateFromSearchParams } from './services/utils';\nimport { buildPathIdFor } from './utils/pathId';\nimport { isRepeatCloneOrChildOf } from './utils/utils';\n\nimport { registerVariableMacro } from './variables/macros';\nimport {\n escapeLabelValueInExactSelector,\n escapeLabelValueInRegexSelector,\n escapeURLDelimiters,\n renderPrometheusLabelFilters,\n} from './variables/utils';\nimport {\n isAdHocVariable,\n isQueryVariable,\n isTextBoxVariable,\n isCustomVariable,\n isDataSourceVariable,\n isConstantVariable,\n isIntervalVariable,\n isGroupByVariable,\n isSwitchVariable,\n} from './variables/variants/guards';\n\nexport * from './core/types';\nexport * from './core/events';\nexport { sceneGraph } from './core/sceneGraph';\nexport * as behaviors from './behaviors';\nexport * as performanceUtils from './performance';\nexport { writePerformanceLog } from './utils/writePerformanceLog';\nexport * as dataLayers from './querying/layers';\n\nexport { SceneObjectBase, useSceneObjectState } from './core/SceneObjectBase';\nexport { SceneDataNode } from './core/SceneDataNode';\nexport { SceneTimeRange } from './core/SceneTimeRange';\nexport { SceneTimeZoneOverride } from './core/SceneTimeZoneOverride';\n\nexport { SceneQueryRunner, type QueryRunnerState } from './querying/SceneQueryRunner';\nexport { DataProviderProxy } from './querying/DataProviderProxy';\nexport {\n type ExtraQueryDescriptor,\n type ExtraQueryProvider,\n type ExtraQueryDataProcessor,\n} from './querying/ExtraQueryProvider';\nexport { SceneDataLayerSet, SceneDataLayerSetBase } from './querying/SceneDataLayerSet';\nexport { SceneDataLayerBase } from './querying/layers/SceneDataLayerBase';\nexport { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls';\nexport { SceneDataTransformer, type SceneDataTransformerState } from './querying/SceneDataTransformer';\nexport { registerQueryWithController } from './querying/registerQueryWithController';\nexport { registerRuntimeDataSource, RuntimeDataSource } from './querying/RuntimeDataSource';\nexport type {\n SceneQueryControllerLike,\n SceneQueryControllerEntryType,\n SceneQueryControllerEntry,\n} from './behaviors/types';\n\nexport * from './variables/types';\nexport { VariableDependencyConfig } from './variables/VariableDependencyConfig';\nexport { formatRegistry, type FormatVariable } from './variables/interpolation/formatRegistry';\nexport { VariableValueSelectors } from './variables/components/VariableValueSelectors';\nexport { VariableValueControl } from './variables/components/VariableValueControl';\nexport { SceneVariableSet } from './variables/sets/SceneVariableSet';\nexport { ConstantVariable } from './variables/variants/ConstantVariable';\nexport { CustomVariable } from './variables/variants/CustomVariable';\nexport { SwitchVariable } from './variables/variants/SwitchVariable';\nexport { DataSourceVariable } from './variables/variants/DataSourceVariable';\nexport { QueryVariable } from './variables/variants/query/QueryVariable';\nexport { TestVariable } from './variables/variants/TestVariable';\nexport { TextBoxVariable } from './variables/variants/TextBoxVariable';\nexport { ScopesVariable } from './variables/variants/ScopesVariable';\nexport {\n MultiValueVariable,\n type MultiValueVariableState,\n type VariableGetOptionsArgs,\n} from './variables/variants/MultiValueVariable';\nexport { LocalValueVariable } from './variables/variants/LocalValueVariable';\nexport { IntervalVariable } from './variables/variants/IntervalVariable';\nexport { ExperimentalIntervalVariable } from './variables/variants/ExperimentalIntervalVariable';\nexport { AdHocFiltersVariable } from './variables/adhoc/AdHocFiltersVariable';\nexport type { AdHocFilterWithLabels } from './variables/adhoc/AdHocFiltersVariable';\nexport type {\n AdHocFiltersController,\n AdHocFiltersControllerState,\n} from './variables/adhoc/controller/AdHocFiltersController';\nexport { AdHocFiltersVariableController } from './variables/adhoc/controller/AdHocFiltersVariableController';\nexport { AdHocFiltersComboboxRenderer } from './variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer';\nexport { GroupByVariable } from './variables/groupby/GroupByVariable';\nexport { type MacroVariableConstructor } from './variables/macros/types';\nexport { escapeUrlPipeDelimiters } from './variables/utils';\n\nexport { type UrlSyncManagerLike, UrlSyncManager, NewSceneObjectAddedEvent } from './services/UrlSyncManager';\nexport { useUrlSync } from './services/useUrlSync';\nexport { UrlSyncContextProvider } from './services/UrlSyncContextProvider';\nexport { SceneObjectUrlSyncConfig } from './services/SceneObjectUrlSyncConfig';\n\nexport { EmbeddedScene, type EmbeddedSceneState } from './components/EmbeddedScene';\nexport { VizPanel, type VizPanelState } from './components/VizPanel/VizPanel';\nexport { VizPanelMenu } from './components/VizPanel/VizPanelMenu';\nexport { VizPanelExploreButton } from './components/VizPanel/VizPanelExploreButton';\nexport { NestedScene } from './components/NestedScene';\nexport { SceneCanvasText } from './components/SceneCanvasText';\nexport { SceneToolbarButton, SceneToolbarInput } from './components/SceneToolbarButton';\nexport { SceneTimePicker } from './components/SceneTimePicker';\nexport { SceneRefreshPicker, type SceneRefreshPickerState } from './components/SceneRefreshPicker';\nexport { SceneTimeRangeTransformerBase } from './core/SceneTimeRangeTransformerBase';\nexport { SceneTimeRangeCompare } from './components/SceneTimeRangeCompare';\nexport { SceneByFrameRepeater } from './components/SceneByFrameRepeater';\nexport { SceneByVariableRepeater } from './components/SceneByVariableRepeater';\nexport { SceneControlsSpacer } from './components/SceneControlsSpacer';\nexport {\n SceneFlexLayout,\n SceneFlexItem,\n type SceneFlexItemState,\n type SceneFlexItemLike,\n} from './components/layout/SceneFlexLayout';\nexport { SceneCSSGridLayout, SceneCSSGridItem } from './components/layout/CSSGrid/SceneCSSGridLayout';\nexport { SceneGridLayout } from './components/layout/grid/SceneGridLayout';\nexport { SceneGridLayoutDragStartEvent } from './components/layout/grid/types';\nexport { SceneGridItem } from './components/layout/grid/SceneGridItem';\nexport { SceneGridRow } from './components/layout/grid/SceneGridRow';\nexport { type SceneGridItemStateLike, type SceneGridItemLike } from './components/layout/grid/types';\nexport { SplitLayout } from './components/layout/split/SplitLayout';\nexport { LazyLoader } from './components/layout/LazyLoader';\nexport {\n type SceneAppPageLike,\n type SceneRouteMatch,\n type SceneAppPageState,\n type SceneAppDrilldownView,\n type SceneAppRoute,\n} from './components/SceneApp/types';\nexport { SceneApp, useSceneApp } from './components/SceneApp/SceneApp';\nexport { SceneAppPage } from './components/SceneApp/SceneAppPage';\nexport { SceneReactObject } from './components/SceneReactObject';\nexport { SceneObjectRef } from './core/SceneObjectRef';\nexport {\n PanelBuilders,\n PanelOptionsBuilders,\n FieldConfigBuilders,\n FieldConfigOverridesBuilder,\n} from './core/PanelBuilders';\nexport { FieldConfigBuilder } from './core/PanelBuilders/FieldConfigBuilder';\nexport { VizPanelBuilder } from './core/PanelBuilders/VizPanelBuilder';\nexport { SceneDebugger } from './components/SceneDebugger/SceneDebugger';\nexport { VariableValueSelectWrapper } from './variables/components/VariableValueSelectors';\nexport { ControlsLabel } from './utils/ControlsLabel';\nexport { MultiOrSingleValueSelect } from './variables/components/VariableValueSelect';\nexport { VizConfigBuilder } from './core/PanelBuilders/VizConfigBuilder';\nexport { VizConfigBuilders } from './core/PanelBuilders/VizConfigBuilders';\nexport { type VizConfig } from './core/PanelBuilders/types';\n\nexport const sceneUtils = {\n getUrlWithAppState,\n registerRuntimePanelPlugin,\n registerRuntimeDataSource,\n registerVariableMacro,\n cloneSceneObjectState,\n syncStateFromSearchParams,\n getUrlState,\n renderPrometheusLabelFilters,\n escapeLabelValueInRegexSelector,\n escapeLabelValueInExactSelector,\n escapeURLDelimiters,\n\n // Variable guards\n isAdHocVariable,\n isConstantVariable,\n isCustomVariable,\n isDataSourceVariable,\n isIntervalVariable,\n isQueryVariable,\n isTextBoxVariable,\n isGroupByVariable,\n isSwitchVariable,\n isRepeatCloneOrChildOf,\n buildPathIdFor,\n};\n\nexport { SafeSerializableSceneObject } from './utils/SafeSerializableSceneObject';\nexport { getExploreURL } from './utils/explore';\nexport { loadResources } from './utils/loadResources';\nexport { PATH_ID_SEPARATOR } from './utils/pathId';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJO,MAAM,UAAa,GAAA;AAAA,EACxB,kBAAA;AAAA,EACA,0BAAA;AAAA,EACA,yBAAA;AAAA,EACA,qBAAA;AAAA,EACA,qBAAA;AAAA,EACA,yBAAA;AAAA,EACA,WAAA;AAAA,EACA,4BAAA;AAAA,EACA,+BAAA;AAAA,EACA,+BAAA;AAAA,EACA,mBAAA;AAAA;AAAA,EAGA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,oBAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { t } from '@grafana/i18n';
|
|
2
|
+
import { rangeUtil } from '@grafana/data';
|
|
3
|
+
import { VariableRefresh } from '@grafana/schema';
|
|
4
|
+
import { Combobox } from '@grafana/ui';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { of } from 'rxjs';
|
|
7
|
+
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
8
|
+
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
9
|
+
import { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig.js';
|
|
10
|
+
import { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants.js';
|
|
11
|
+
import { SceneVariableValueChangedEvent } from '../types.js';
|
|
12
|
+
|
|
13
|
+
class ExperimentalIntervalVariable extends SceneObjectBase {
|
|
14
|
+
constructor(initialState) {
|
|
15
|
+
super({
|
|
16
|
+
type: "interval",
|
|
17
|
+
value: "",
|
|
18
|
+
intervals: ["1m", "10m", "30m", "1h", "6h", "12h", "1d", "7d", "14d", "30d"],
|
|
19
|
+
name: "",
|
|
20
|
+
autoStepCount: 30,
|
|
21
|
+
autoMinInterval: "10s",
|
|
22
|
+
autoEnabled: false,
|
|
23
|
+
refresh: VariableRefresh.onTimeRangeChanged,
|
|
24
|
+
...initialState
|
|
25
|
+
});
|
|
26
|
+
this._onChange = (value) => {
|
|
27
|
+
this.setState({ value: value.value });
|
|
28
|
+
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
29
|
+
};
|
|
30
|
+
this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });
|
|
31
|
+
}
|
|
32
|
+
getKey() {
|
|
33
|
+
return `var-${this.state.name}`;
|
|
34
|
+
}
|
|
35
|
+
getUrlState() {
|
|
36
|
+
return { [this.getKey()]: this.state.value };
|
|
37
|
+
}
|
|
38
|
+
updateFromUrl(values) {
|
|
39
|
+
const update = {};
|
|
40
|
+
const val = values[this.getKey()];
|
|
41
|
+
if (typeof val === "string") {
|
|
42
|
+
if (val.startsWith("$__auto_interval_")) {
|
|
43
|
+
update.value = AUTO_VARIABLE_VALUE;
|
|
44
|
+
} else {
|
|
45
|
+
update.value = val;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
this.setState(update);
|
|
49
|
+
}
|
|
50
|
+
getOptionsForSelect() {
|
|
51
|
+
const { value: currentValue, intervals, autoEnabled } = this.state;
|
|
52
|
+
let options = intervals.map((interval) => ({ value: interval, label: interval }));
|
|
53
|
+
if (autoEnabled) {
|
|
54
|
+
options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];
|
|
55
|
+
}
|
|
56
|
+
if (currentValue && !options.some((option) => option.value === currentValue)) {
|
|
57
|
+
options.push({ value: currentValue, label: currentValue });
|
|
58
|
+
}
|
|
59
|
+
return options;
|
|
60
|
+
}
|
|
61
|
+
getValue() {
|
|
62
|
+
const { value, autoStepCount, autoMinInterval } = this.state;
|
|
63
|
+
if (value === AUTO_VARIABLE_VALUE) {
|
|
64
|
+
return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);
|
|
65
|
+
}
|
|
66
|
+
return value;
|
|
67
|
+
}
|
|
68
|
+
getAutoRefreshInteval(autoStepCount, minRefreshInterval) {
|
|
69
|
+
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
|
70
|
+
const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);
|
|
71
|
+
return intervalObject.interval;
|
|
72
|
+
}
|
|
73
|
+
validateAndUpdate() {
|
|
74
|
+
const { value, intervals } = this.state;
|
|
75
|
+
let shouldPublish = false;
|
|
76
|
+
if (value === AUTO_VARIABLE_VALUE) {
|
|
77
|
+
shouldPublish = true;
|
|
78
|
+
} else if (!value && intervals.length > 0) {
|
|
79
|
+
const firstOption = intervals[0];
|
|
80
|
+
this.setState({ value: firstOption });
|
|
81
|
+
shouldPublish = true;
|
|
82
|
+
}
|
|
83
|
+
if (shouldPublish) {
|
|
84
|
+
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
85
|
+
}
|
|
86
|
+
return of({});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
ExperimentalIntervalVariable.Component = ({ model }) => {
|
|
90
|
+
const { key, value } = model.useState();
|
|
91
|
+
return /* @__PURE__ */ React.createElement(
|
|
92
|
+
Combobox,
|
|
93
|
+
{
|
|
94
|
+
id: key,
|
|
95
|
+
placeholder: t("grafana-scenes.variables.interval-variable.placeholder-select-value", "Select value"),
|
|
96
|
+
value,
|
|
97
|
+
options: model.getOptionsForSelect(),
|
|
98
|
+
onChange: model._onChange,
|
|
99
|
+
width: "auto",
|
|
100
|
+
minWidth: 32
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export { ExperimentalIntervalVariable };
|
|
106
|
+
//# sourceMappingURL=ExperimentalIntervalVariable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExperimentalIntervalVariable.js","sources":["../../../../src/variables/variants/ExperimentalIntervalVariable.tsx"],"sourcesContent":["import { t } from '@grafana/i18n';\nimport { rangeUtil } from '@grafana/data';\nimport { VariableRefresh } from '@grafana/schema';\nimport { Combobox, ComboboxOption } from '@grafana/ui';\nimport React from 'react';\nimport { Observable, of } from 'rxjs';\nimport { sceneGraph } from '../../core/sceneGraph';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE } from '../constants';\nimport {\n SceneVariable,\n SceneVariableState,\n SceneVariableValueChangedEvent,\n ValidateAndUpdateResult,\n VariableValue,\n} from '../types';\n\nexport interface IntervalVariableState extends SceneVariableState {\n intervals: string[];\n value: string;\n autoEnabled: boolean;\n autoMinInterval: string;\n autoStepCount: number;\n refresh: VariableRefresh;\n}\n\n/**\n * @experimental Temporary experimental alternative to IntervalVariable\n * that implements new `<Combobox />` instead of `<Select />`\n */\n\nexport class ExperimentalIntervalVariable\n extends SceneObjectBase<IntervalVariableState>\n implements SceneVariable<IntervalVariableState>\n{\n public constructor(initialState: Partial<IntervalVariableState>) {\n super({\n type: 'interval',\n value: '',\n intervals: ['1m', '10m', '30m', '1h', '6h', '12h', '1d', '7d', '14d', '30d'],\n name: '',\n autoStepCount: 30,\n autoMinInterval: '10s',\n autoEnabled: false,\n refresh: VariableRefresh.onTimeRangeChanged,\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });\n }\n\n private getKey(): string {\n return `var-${this.state.name}`;\n }\n\n public getUrlState() {\n return { [this.getKey()]: this.state.value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues) {\n const update: Partial<IntervalVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n // support old auto interval url value\n if (val.startsWith('$__auto_interval_')) {\n update.value = AUTO_VARIABLE_VALUE;\n } else {\n update.value = val;\n }\n }\n this.setState(update);\n }\n\n public getOptionsForSelect(): Array<ComboboxOption<string>> {\n const { value: currentValue, intervals, autoEnabled } = this.state;\n\n let options = intervals.map((interval) => ({ value: interval, label: interval }));\n\n if (autoEnabled) {\n options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];\n }\n\n // If the current value is not in the list of intervals, add it to the list\n if (currentValue && !options.some((option) => option.value === currentValue)) {\n options.push({ value: currentValue, label: currentValue });\n }\n\n return options;\n }\n\n public getValue(): VariableValue {\n const { value, autoStepCount, autoMinInterval } = this.state;\n if (value === AUTO_VARIABLE_VALUE) {\n return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);\n }\n\n return value;\n }\n\n private getAutoRefreshInteval(autoStepCount: number, minRefreshInterval: string) {\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);\n return intervalObject.interval;\n }\n\n public _onChange = (value: ComboboxOption<string>) => {\n this.setState({ value: value.value! });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n };\n\n public validateAndUpdate(): Observable<ValidateAndUpdateResult> {\n const { value, intervals } = this.state;\n let shouldPublish = false;\n\n if (value === AUTO_VARIABLE_VALUE) {\n shouldPublish = true;\n } else if (!value && intervals.length > 0) {\n const firstOption = intervals[0];\n this.setState({ value: firstOption });\n shouldPublish = true;\n }\n\n if (shouldPublish) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n\n return of({});\n }\n\n public static Component = ({ model }: SceneComponentProps<ExperimentalIntervalVariable>) => {\n const { key, value } = model.useState();\n\n return (\n <Combobox\n id={key}\n placeholder={t('grafana-scenes.variables.interval-variable.placeholder-select-value', 'Select value')}\n value={value}\n options={model.getOptionsForSelect()}\n onChange={model._onChange}\n width=\"auto\"\n minWidth={32}\n />\n );\n };\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as React$1 from 'react';
|
|
|
6
6
|
import React__default, { ComponentType, CSSProperties, PointerEvent, ForwardRefExoticComponent } from 'react';
|
|
7
7
|
import * as rxjs from 'rxjs';
|
|
8
8
|
import { Observable, Subscription, Unsubscribable, MonoTypeOperatorFunction, ReplaySubject } from 'rxjs';
|
|
9
|
-
import { PanelContext, WeekStart, IconName as IconName$1 } from '@grafana/ui';
|
|
9
|
+
import { PanelContext, WeekStart, ComboboxOption, IconName as IconName$1 } from '@grafana/ui';
|
|
10
10
|
import { LocationService, VariableInterpolation, ScopesContextValue } from '@grafana/runtime';
|
|
11
11
|
import { Location } from 'history';
|
|
12
12
|
import ReactGridLayout from 'react-grid-layout';
|
|
@@ -1276,7 +1276,7 @@ declare class DataSourceVariable extends MultiValueVariable<DataSourceVariableSt
|
|
|
1276
1276
|
static Component: ({ model }: SceneComponentProps<MultiValueVariable>) => React__default.JSX.Element;
|
|
1277
1277
|
}
|
|
1278
1278
|
|
|
1279
|
-
interface IntervalVariableState extends SceneVariableState {
|
|
1279
|
+
interface IntervalVariableState$1 extends SceneVariableState {
|
|
1280
1280
|
intervals: string[];
|
|
1281
1281
|
value: string;
|
|
1282
1282
|
autoEnabled: boolean;
|
|
@@ -1284,8 +1284,8 @@ interface IntervalVariableState extends SceneVariableState {
|
|
|
1284
1284
|
autoStepCount: number;
|
|
1285
1285
|
refresh: VariableRefresh;
|
|
1286
1286
|
}
|
|
1287
|
-
declare class IntervalVariable extends SceneObjectBase<IntervalVariableState> implements SceneVariable<IntervalVariableState> {
|
|
1288
|
-
constructor(initialState: Partial<IntervalVariableState>);
|
|
1287
|
+
declare class IntervalVariable extends SceneObjectBase<IntervalVariableState$1> implements SceneVariable<IntervalVariableState$1> {
|
|
1288
|
+
constructor(initialState: Partial<IntervalVariableState$1>);
|
|
1289
1289
|
private getKey;
|
|
1290
1290
|
getUrlState(): {
|
|
1291
1291
|
[x: string]: string;
|
|
@@ -2448,6 +2448,33 @@ declare class LocalValueVariable extends SceneObjectBase<LocalValueVariableState
|
|
|
2448
2448
|
isAncestorLoading(): boolean;
|
|
2449
2449
|
}
|
|
2450
2450
|
|
|
2451
|
+
interface IntervalVariableState extends SceneVariableState {
|
|
2452
|
+
intervals: string[];
|
|
2453
|
+
value: string;
|
|
2454
|
+
autoEnabled: boolean;
|
|
2455
|
+
autoMinInterval: string;
|
|
2456
|
+
autoStepCount: number;
|
|
2457
|
+
refresh: VariableRefresh;
|
|
2458
|
+
}
|
|
2459
|
+
/**
|
|
2460
|
+
* @experimental Temporary experimental alternative to IntervalVariable
|
|
2461
|
+
* that implements new `<Combobox />` instead of `<Select />`
|
|
2462
|
+
*/
|
|
2463
|
+
declare class ExperimentalIntervalVariable extends SceneObjectBase<IntervalVariableState> implements SceneVariable<IntervalVariableState> {
|
|
2464
|
+
constructor(initialState: Partial<IntervalVariableState>);
|
|
2465
|
+
private getKey;
|
|
2466
|
+
getUrlState(): {
|
|
2467
|
+
[x: string]: string;
|
|
2468
|
+
};
|
|
2469
|
+
updateFromUrl(values: SceneObjectUrlValues): void;
|
|
2470
|
+
getOptionsForSelect(): Array<ComboboxOption<string>>;
|
|
2471
|
+
getValue(): VariableValue;
|
|
2472
|
+
private getAutoRefreshInteval;
|
|
2473
|
+
_onChange: (value: ComboboxOption<string>) => void;
|
|
2474
|
+
validateAndUpdate(): Observable<ValidateAndUpdateResult>;
|
|
2475
|
+
static Component: ({ model }: SceneComponentProps<ExperimentalIntervalVariable>) => React__default.JSX.Element;
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2451
2478
|
/**
|
|
2452
2479
|
* Controller state returned by useState hook
|
|
2453
2480
|
*/
|
|
@@ -3582,5 +3609,5 @@ declare const sceneUtils: {
|
|
|
3582
3609
|
buildPathIdFor: typeof buildPathIdFor;
|
|
3583
3610
|
};
|
|
3584
3611
|
|
|
3585
|
-
export { AdHocFiltersComboboxRenderer, AdHocFiltersVariable, AdHocFiltersVariableController, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, SwitchVariable, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$2 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, index$1 as performanceUtils, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync, writePerformanceLog };
|
|
3612
|
+
export { AdHocFiltersComboboxRenderer, AdHocFiltersVariable, AdHocFiltersVariableController, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, ExperimentalIntervalVariable, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, SwitchVariable, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$2 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, index$1 as performanceUtils, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync, writePerformanceLog };
|
|
3586
3613
|
export type { AdHocFilterWithLabels, AdHocFiltersController, AdHocFiltersControllerState, CancelActivationHandler, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DeepPartial, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FiltersRequestEnricher, FormatVariable, InterpolationFormatParameter, MacroVariableConstructor, MultiValueVariableState, QueryRunnerState, SceneActivationHandler, SceneAppDrilldownView, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneComponent, SceneComponentProps, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformerState, SceneDeactivationHandler, SceneFlexItemLike, SceneFlexItemState, SceneGridItemLike, SceneGridItemStateLike, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectState, SceneObjectStateChangedPayload, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimeRangeLike, SceneTimeRangeState, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSetState, SceneVariableState, SceneVariables, UrlSyncManagerLike, UseStateHookOptions, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableGetOptionsArgs, VariableValue, VariableValueOption, VariableValueSingle, VizConfig, VizPanelState };
|
package/dist/index.js
CHANGED
|
@@ -12282,6 +12282,98 @@ IntervalVariable.Component = ({ model }) => {
|
|
|
12282
12282
|
);
|
|
12283
12283
|
};
|
|
12284
12284
|
|
|
12285
|
+
class ExperimentalIntervalVariable extends SceneObjectBase {
|
|
12286
|
+
constructor(initialState) {
|
|
12287
|
+
super({
|
|
12288
|
+
type: "interval",
|
|
12289
|
+
value: "",
|
|
12290
|
+
intervals: ["1m", "10m", "30m", "1h", "6h", "12h", "1d", "7d", "14d", "30d"],
|
|
12291
|
+
name: "",
|
|
12292
|
+
autoStepCount: 30,
|
|
12293
|
+
autoMinInterval: "10s",
|
|
12294
|
+
autoEnabled: false,
|
|
12295
|
+
refresh: schema.VariableRefresh.onTimeRangeChanged,
|
|
12296
|
+
...initialState
|
|
12297
|
+
});
|
|
12298
|
+
this._onChange = (value) => {
|
|
12299
|
+
this.setState({ value: value.value });
|
|
12300
|
+
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
12301
|
+
};
|
|
12302
|
+
this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });
|
|
12303
|
+
}
|
|
12304
|
+
getKey() {
|
|
12305
|
+
return `var-${this.state.name}`;
|
|
12306
|
+
}
|
|
12307
|
+
getUrlState() {
|
|
12308
|
+
return { [this.getKey()]: this.state.value };
|
|
12309
|
+
}
|
|
12310
|
+
updateFromUrl(values) {
|
|
12311
|
+
const update = {};
|
|
12312
|
+
const val = values[this.getKey()];
|
|
12313
|
+
if (typeof val === "string") {
|
|
12314
|
+
if (val.startsWith("$__auto_interval_")) {
|
|
12315
|
+
update.value = AUTO_VARIABLE_VALUE;
|
|
12316
|
+
} else {
|
|
12317
|
+
update.value = val;
|
|
12318
|
+
}
|
|
12319
|
+
}
|
|
12320
|
+
this.setState(update);
|
|
12321
|
+
}
|
|
12322
|
+
getOptionsForSelect() {
|
|
12323
|
+
const { value: currentValue, intervals, autoEnabled } = this.state;
|
|
12324
|
+
let options = intervals.map((interval) => ({ value: interval, label: interval }));
|
|
12325
|
+
if (autoEnabled) {
|
|
12326
|
+
options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];
|
|
12327
|
+
}
|
|
12328
|
+
if (currentValue && !options.some((option) => option.value === currentValue)) {
|
|
12329
|
+
options.push({ value: currentValue, label: currentValue });
|
|
12330
|
+
}
|
|
12331
|
+
return options;
|
|
12332
|
+
}
|
|
12333
|
+
getValue() {
|
|
12334
|
+
const { value, autoStepCount, autoMinInterval } = this.state;
|
|
12335
|
+
if (value === AUTO_VARIABLE_VALUE) {
|
|
12336
|
+
return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);
|
|
12337
|
+
}
|
|
12338
|
+
return value;
|
|
12339
|
+
}
|
|
12340
|
+
getAutoRefreshInteval(autoStepCount, minRefreshInterval) {
|
|
12341
|
+
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
|
12342
|
+
const intervalObject = data.rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);
|
|
12343
|
+
return intervalObject.interval;
|
|
12344
|
+
}
|
|
12345
|
+
validateAndUpdate() {
|
|
12346
|
+
const { value, intervals } = this.state;
|
|
12347
|
+
let shouldPublish = false;
|
|
12348
|
+
if (value === AUTO_VARIABLE_VALUE) {
|
|
12349
|
+
shouldPublish = true;
|
|
12350
|
+
} else if (!value && intervals.length > 0) {
|
|
12351
|
+
const firstOption = intervals[0];
|
|
12352
|
+
this.setState({ value: firstOption });
|
|
12353
|
+
shouldPublish = true;
|
|
12354
|
+
}
|
|
12355
|
+
if (shouldPublish) {
|
|
12356
|
+
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
12357
|
+
}
|
|
12358
|
+
return rxjs.of({});
|
|
12359
|
+
}
|
|
12360
|
+
}
|
|
12361
|
+
ExperimentalIntervalVariable.Component = ({ model }) => {
|
|
12362
|
+
const { key, value } = model.useState();
|
|
12363
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
12364
|
+
ui.Combobox,
|
|
12365
|
+
{
|
|
12366
|
+
id: key,
|
|
12367
|
+
placeholder: i18n.t("grafana-scenes.variables.interval-variable.placeholder-select-value", "Select value"),
|
|
12368
|
+
value,
|
|
12369
|
+
options: model.getOptionsForSelect(),
|
|
12370
|
+
onChange: model._onChange,
|
|
12371
|
+
width: "auto",
|
|
12372
|
+
minWidth: 32
|
|
12373
|
+
}
|
|
12374
|
+
);
|
|
12375
|
+
};
|
|
12376
|
+
|
|
12285
12377
|
var __typeError = (msg) => {
|
|
12286
12378
|
throw TypeError(msg);
|
|
12287
12379
|
};
|
|
@@ -16101,6 +16193,7 @@ exports.CustomVariable = CustomVariable;
|
|
|
16101
16193
|
exports.DataProviderProxy = DataProviderProxy;
|
|
16102
16194
|
exports.DataSourceVariable = DataSourceVariable;
|
|
16103
16195
|
exports.EmbeddedScene = EmbeddedScene;
|
|
16196
|
+
exports.ExperimentalIntervalVariable = ExperimentalIntervalVariable;
|
|
16104
16197
|
exports.FieldConfigBuilder = FieldConfigBuilder;
|
|
16105
16198
|
exports.FieldConfigBuilders = FieldConfigBuilders;
|
|
16106
16199
|
exports.FieldConfigOverridesBuilder = FieldConfigOverridesBuilder;
|