@grafana/scenes 6.36.0--canary.1240.17760349466.0 → 6.36.0--canary.1248.17797615374.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/dist/esm/behaviors/SceneQueryController.js +13 -30
- package/dist/esm/behaviors/SceneQueryController.js.map +1 -1
- package/dist/esm/components/SceneTimePicker.js +19 -3
- package/dist/esm/components/SceneTimePicker.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/locales/en-US/grafana-scenes.json.js +4 -0
- package/dist/esm/locales/en-US/grafana-scenes.json.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -8
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariable.js +0 -8
- package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +1 -1
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -1
- package/dist/{grafana-scenes-C_CT7peT.js → grafana-scenes-Bnbq8XI2.js} +5 -1
- package/dist/{grafana-scenes-C_CT7peT.js.map → grafana-scenes-Bnbq8XI2.js.map} +1 -1
- package/dist/index.d.ts +9 -27
- package/dist/index.js +181 -278
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/behaviors/SceneInteractionProfiler.js +0 -86
- package/dist/esm/behaviors/SceneInteractionProfiler.js.map +0 -1
|
@@ -13,52 +13,35 @@ function isQueryController(s) {
|
|
|
13
13
|
return "isQueryController" in s;
|
|
14
14
|
}
|
|
15
15
|
class SceneQueryController extends SceneObjectBase {
|
|
16
|
-
constructor(state = {},
|
|
16
|
+
constructor(state = {}, profiler) {
|
|
17
17
|
super({ ...state, isRunning: false });
|
|
18
|
-
this.
|
|
19
|
-
this.interactionProfiler = interactionProfiler;
|
|
18
|
+
this.profiler = profiler;
|
|
20
19
|
this.isQueryController = true;
|
|
21
20
|
__privateAdd(this, _running, /* @__PURE__ */ new Set());
|
|
22
21
|
__privateAdd(this, _tryCompleteProfileFrameId, null);
|
|
23
22
|
this.runningQueriesCount = () => {
|
|
24
23
|
return __privateGet(this, _running).size;
|
|
25
24
|
};
|
|
26
|
-
if (
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
if (interactionProfiler) {
|
|
31
|
-
this.interactionProfiler = interactionProfiler;
|
|
32
|
-
interactionProfiler.setQueryController(this);
|
|
25
|
+
if (profiler) {
|
|
26
|
+
this.profiler = profiler;
|
|
27
|
+
profiler.setQueryController(this);
|
|
33
28
|
}
|
|
34
29
|
this.addActivationHandler(() => {
|
|
35
|
-
var _a
|
|
36
|
-
(_a = this.
|
|
37
|
-
(_b = this.interactionProfiler) == null ? void 0 : _b.setQueryController(this);
|
|
30
|
+
var _a;
|
|
31
|
+
(_a = this.profiler) == null ? void 0 : _a.setQueryController(this);
|
|
38
32
|
return () => __privateGet(this, _running).clear();
|
|
39
33
|
});
|
|
40
34
|
}
|
|
41
|
-
startInteractionProfile(name) {
|
|
42
|
-
var _a;
|
|
43
|
-
if (!this.state.enableProfiling) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
(_a = this.interactionProfiler) == null ? void 0 : _a.startProfile(name);
|
|
47
|
-
}
|
|
48
|
-
stopInteractionProfile() {
|
|
49
|
-
var _a;
|
|
50
|
-
(_a = this.interactionProfiler) == null ? void 0 : _a.stopProfile();
|
|
51
|
-
}
|
|
52
35
|
startProfile(name) {
|
|
53
36
|
var _a;
|
|
54
37
|
if (!this.state.enableProfiling) {
|
|
55
38
|
return;
|
|
56
39
|
}
|
|
57
|
-
(_a = this.
|
|
40
|
+
(_a = this.profiler) == null ? void 0 : _a.startProfile(name);
|
|
58
41
|
}
|
|
59
42
|
cancelProfile() {
|
|
60
43
|
var _a;
|
|
61
|
-
(_a = this.
|
|
44
|
+
(_a = this.profiler) == null ? void 0 : _a.cancelProfile();
|
|
62
45
|
}
|
|
63
46
|
queryStarted(entry) {
|
|
64
47
|
__privateGet(this, _running).add(entry);
|
|
@@ -82,11 +65,11 @@ class SceneQueryController extends SceneObjectBase {
|
|
|
82
65
|
window.__grafanaRunningQueryCount = ((_a = window.__grafanaRunningQueryCount) != null ? _a : 0) + dir;
|
|
83
66
|
if (dir === 1 && this.state.enableProfiling) {
|
|
84
67
|
if (entry) {
|
|
85
|
-
(_b = this.
|
|
68
|
+
(_b = this.profiler) == null ? void 0 : _b.addCrumb(`${entry.type}`);
|
|
86
69
|
}
|
|
87
|
-
if ((_c = this.
|
|
70
|
+
if ((_c = this.profiler) == null ? void 0 : _c.isTailRecording()) {
|
|
88
71
|
writeSceneLog("SceneQueryController", "New query started, cancelling tail recording");
|
|
89
|
-
(_d = this.
|
|
72
|
+
(_d = this.profiler) == null ? void 0 : _d.cancelTailRecording();
|
|
90
73
|
}
|
|
91
74
|
}
|
|
92
75
|
if (this.state.enableProfiling) {
|
|
@@ -95,7 +78,7 @@ class SceneQueryController extends SceneObjectBase {
|
|
|
95
78
|
}
|
|
96
79
|
__privateSet(this, _tryCompleteProfileFrameId, requestAnimationFrame(() => {
|
|
97
80
|
var _a2;
|
|
98
|
-
(_a2 = this.
|
|
81
|
+
(_a2 = this.profiler) == null ? void 0 : _a2.tryCompletingProfile();
|
|
99
82
|
}));
|
|
100
83
|
}
|
|
101
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneQueryController.js","sources":["../../../src/behaviors/SceneQueryController.ts"],"sourcesContent":["import { SceneObjectBase } from '../core/SceneObjectBase';\nimport { SceneObject, SceneStatelessBehavior } from '../core/types';\nimport { writeSceneLog } from '../utils/writeSceneLog';\nimport {
|
|
1
|
+
{"version":3,"file":"SceneQueryController.js","sources":["../../../src/behaviors/SceneQueryController.ts"],"sourcesContent":["import { SceneObjectBase } from '../core/SceneObjectBase';\nimport { SceneObject, SceneStatelessBehavior } from '../core/types';\nimport { writeSceneLog } from '../utils/writeSceneLog';\nimport { SceneRenderProfiler } from './SceneRenderProfiler';\nimport { SceneQueryControllerEntry, SceneQueryControllerLike, SceneQueryStateControllerState } from './types';\n\nexport function isQueryController(s: SceneObject | SceneStatelessBehavior): s is SceneQueryControllerLike {\n return 'isQueryController' in s;\n}\n\nexport class SceneQueryController\n extends SceneObjectBase<SceneQueryStateControllerState>\n implements SceneQueryControllerLike\n{\n public isQueryController: true = true;\n\n #running = new Set<SceneQueryControllerEntry>();\n\n #tryCompleteProfileFrameId: number | null = null;\n\n public constructor(state: Partial<SceneQueryStateControllerState> = {}, private profiler?: SceneRenderProfiler) {\n super({ ...state, isRunning: false });\n\n if (profiler) {\n this.profiler = profiler;\n profiler.setQueryController(this);\n }\n\n // Clear running state on deactivate\n this.addActivationHandler(() => {\n // In cases of re-activation, we need to set the query controller again as it might have been set by other scene\n this.profiler?.setQueryController(this);\n return () => this.#running.clear();\n });\n }\n\n public runningQueriesCount = () => {\n return this.#running.size;\n };\n\n public startProfile(name: string) {\n if (!this.state.enableProfiling) {\n return;\n }\n this.profiler?.startProfile(name);\n }\n\n public cancelProfile() {\n this.profiler?.cancelProfile();\n }\n\n public queryStarted(entry: SceneQueryControllerEntry) {\n this.#running.add(entry);\n this.changeRunningQueryCount(1, entry);\n\n if (!this.state.isRunning) {\n this.setState({ isRunning: true });\n }\n }\n\n public queryCompleted(entry: SceneQueryControllerEntry) {\n if (!this.#running.has(entry)) {\n return;\n }\n\n this.#running.delete(entry);\n\n this.changeRunningQueryCount(-1);\n\n if (this.#running.size === 0) {\n this.setState({ isRunning: false });\n }\n }\n\n private changeRunningQueryCount(dir: 1 | -1, entry?: SceneQueryControllerEntry) {\n /**\n * Used by grafana-image-renderer to know when all queries are completed.\n */\n (window as any).__grafanaRunningQueryCount = ((window as any).__grafanaRunningQueryCount ?? 0) + dir;\n\n if (dir === 1 && this.state.enableProfiling) {\n if (entry) {\n // Collect profile crumbs, variables, annotations, queries and plugins\n this.profiler?.addCrumb(`${entry.type}`);\n }\n if (this.profiler?.isTailRecording()) {\n writeSceneLog('SceneQueryController', 'New query started, cancelling tail recording');\n this.profiler?.cancelTailRecording();\n }\n }\n\n if (this.state.enableProfiling) {\n // Delegate to next frame to check if all queries are completed\n // This is to account for scenarios when there's \"yet another\" query that's started\n if (this.#tryCompleteProfileFrameId) {\n cancelAnimationFrame(this.#tryCompleteProfileFrameId);\n }\n\n this.#tryCompleteProfileFrameId = requestAnimationFrame(() => {\n this.profiler?.tryCompletingProfile();\n });\n }\n }\n\n public cancelAll() {\n for (const entry of this.#running.values()) {\n entry.cancel?.();\n }\n }\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useLocalStorage } from 'react-use';
|
|
3
3
|
import { uniqBy } from 'lodash';
|
|
4
|
-
import { rangeUtil, isDateTime, toUtc } from '@grafana/data';
|
|
4
|
+
import { intervalToAbbreviatedDurationString, rangeUtil, isDateTime, toUtc } from '@grafana/data';
|
|
5
5
|
import { TimeRangePicker } from '@grafana/ui';
|
|
6
6
|
import { SceneObjectBase } from '../core/SceneObjectBase.js';
|
|
7
7
|
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
8
|
+
import { t } from '@grafana/i18n';
|
|
8
9
|
|
|
9
10
|
class SceneTimePicker extends SceneObjectBase {
|
|
10
11
|
constructor() {
|
|
@@ -30,7 +31,7 @@ class SceneTimePicker extends SceneObjectBase {
|
|
|
30
31
|
const {
|
|
31
32
|
state: { value: range }
|
|
32
33
|
} = timeRange;
|
|
33
|
-
timeRange.onTimeRangeChange(getShiftedTimeRange(0 /* Backward */, range
|
|
34
|
+
timeRange.onTimeRangeChange(getShiftedTimeRange(0 /* Backward */, range));
|
|
34
35
|
};
|
|
35
36
|
this.onMoveForward = () => {
|
|
36
37
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
@@ -56,6 +57,13 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
56
57
|
return null;
|
|
57
58
|
}
|
|
58
59
|
const rangesToUse = quickRanges || defaultQuickRanges;
|
|
60
|
+
const halfSpanMs = (timeRangeState.value.to.valueOf() - timeRangeState.value.from.valueOf()) / 2;
|
|
61
|
+
const moveBackwardDuration = intervalToAbbreviatedDurationString({
|
|
62
|
+
start: new Date(timeRangeState.value.from.valueOf()),
|
|
63
|
+
end: new Date(timeRangeState.value.from.valueOf() + halfSpanMs)
|
|
64
|
+
});
|
|
65
|
+
const canMoveForward = timeRangeState.value.to.valueOf() + halfSpanMs <= Date.now();
|
|
66
|
+
const moveForwardDuration = canMoveForward ? moveBackwardDuration : void 0;
|
|
59
67
|
return /* @__PURE__ */ React.createElement(
|
|
60
68
|
TimeRangePicker,
|
|
61
69
|
{
|
|
@@ -71,6 +79,14 @@ function SceneTimePickerRenderer({ model }) {
|
|
|
71
79
|
fiscalYearStartMonth: timeRangeState.fiscalYearStartMonth,
|
|
72
80
|
onMoveBackward: model.onMoveBackward,
|
|
73
81
|
onMoveForward: model.onMoveForward,
|
|
82
|
+
moveForwardTooltip: moveForwardDuration ? t("grafana-scenes.components.time-picker.move-forward-tooltip", "Move {{moveForwardDuration}} forward", {
|
|
83
|
+
moveForwardDuration
|
|
84
|
+
}) : void 0,
|
|
85
|
+
moveBackwardTooltip: t(
|
|
86
|
+
"grafana-scenes.components.time-picker.move-backward-tooltip",
|
|
87
|
+
"Move {{moveBackwardDuration}} backward",
|
|
88
|
+
{ moveBackwardDuration }
|
|
89
|
+
),
|
|
74
90
|
onZoom: model.onZoom,
|
|
75
91
|
onChangeTimeZone: timeRange.onTimeZoneChange,
|
|
76
92
|
onChangeFiscalYearStartMonth: model.onChangeFiscalYearStartMonth,
|
|
@@ -100,7 +116,7 @@ function getShiftedTimeRange(dir, timeRange, upperLimit) {
|
|
|
100
116
|
} else {
|
|
101
117
|
fromRaw = oldFrom + halfSpan;
|
|
102
118
|
toRaw = oldTo + halfSpan;
|
|
103
|
-
if (toRaw > upperLimit && oldTo < upperLimit) {
|
|
119
|
+
if (upperLimit !== void 0 && toRaw > upperLimit && oldTo < upperLimit) {
|
|
104
120
|
toRaw = upperLimit;
|
|
105
121
|
fromRaw = oldFrom;
|
|
106
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneTimePicker.js","sources":["../../../src/components/SceneTimePicker.tsx"],"sourcesContent":["import React from 'react';\nimport { useLocalStorage } from 'react-use';\nimport { uniqBy } from 'lodash';\n\nimport { TimeOption, TimeRange, isDateTime, rangeUtil, toUtc } from '@grafana/data';\nimport { TimeRangePicker } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneComponentProps, SceneObjectState } from '../core/types';\n\nexport interface SceneTimePickerState extends SceneObjectState {\n hidePicker?: boolean;\n isOnCanvas?: boolean;\n quickRanges?: TimeOption[];\n defaultQuickRanges?: TimeOption[]; // Overrides default time ranges from server config, so not serialised back to JSON\n}\n\nexport class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {\n public static Component = SceneTimePickerRenderer;\n\n public onZoom = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const zoomedTimeRange = getZoomedTimeRange(timeRange.state.value, 2);\n timeRange.onTimeRangeChange(zoomedTimeRange);\n };\n\n public onChangeFiscalYearStartMonth = (month: number) => {\n const timeRange = sceneGraph.getTimeRange(this);\n timeRange.setState({ fiscalYearStartMonth: month });\n };\n\n public toAbsolute = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const timeRangeVal = timeRange.state.value;\n const from = toUtc(timeRangeVal.from);\n const to = toUtc(timeRangeVal.to);\n timeRange.onTimeRangeChange({ from, to, raw: { from, to } });\n };\n\n public onMoveBackward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Backward, range, Date.now()));\n };\n\n public onMoveForward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Forward, range, Date.now()));\n };\n}\n\nfunction SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>) {\n const { hidePicker, isOnCanvas, quickRanges, defaultQuickRanges } = model.useState();\n const timeRange = sceneGraph.getTimeRange(model);\n const timeZone = timeRange.getTimeZone();\n const timeRangeState = timeRange.useState();\n const [timeRangeHistory, setTimeRangeHistory] = useLocalStorage<TimeRange[]>(HISTORY_LOCAL_STORAGE_KEY, [], {\n raw: false,\n serializer: serializeHistory,\n deserializer: deserializeHistory,\n });\n\n if (hidePicker) {\n return null;\n }\n\n const rangesToUse = quickRanges || defaultQuickRanges;\n\n return (\n <TimeRangePicker\n isOnCanvas={isOnCanvas ?? true}\n value={timeRangeState.value}\n onChange={(range) => {\n if (isAbsolute(range)) {\n setTimeRangeHistory([range, ...(timeRangeHistory ?? [])]);\n }\n\n timeRange.onTimeRangeChange(range);\n }}\n timeZone={timeZone}\n fiscalYearStartMonth={timeRangeState.fiscalYearStartMonth}\n onMoveBackward={model.onMoveBackward}\n onMoveForward={model.onMoveForward}\n onZoom={model.onZoom}\n onChangeTimeZone={timeRange.onTimeZoneChange}\n onChangeFiscalYearStartMonth={model.onChangeFiscalYearStartMonth}\n weekStart={timeRangeState.weekStart}\n history={timeRangeHistory}\n quickRanges={rangesToUse}\n />\n );\n}\n\nexport function getZoomedTimeRange(timeRange: TimeRange, factor: number): TimeRange {\n const timespan = timeRange.to.valueOf() - timeRange.from.valueOf();\n const center = timeRange.to.valueOf() - timespan / 2;\n // If the timepsan is 0, zooming out would do nothing, so we force a zoom out to 30s\n const newTimespan = timespan === 0 ? 30000 : timespan * factor;\n\n const to = center + newTimespan / 2;\n const from = center - newTimespan / 2;\n\n return { from: toUtc(from), to: toUtc(to), raw: { from: toUtc(from), to: toUtc(to) } };\n}\n\nexport enum TimeRangeDirection {\n Backward,\n Forward,\n}\n\nexport function getShiftedTimeRange(dir: TimeRangeDirection, timeRange: TimeRange, upperLimit: number): TimeRange {\n const oldTo = timeRange.to.valueOf();\n const oldFrom = timeRange.from.valueOf();\n const halfSpan = (oldTo - oldFrom) / 2;\n\n let fromRaw: number;\n let toRaw: number;\n if (dir === TimeRangeDirection.Backward) {\n fromRaw = oldFrom - halfSpan;\n toRaw = oldTo - halfSpan;\n } else {\n fromRaw = oldFrom + halfSpan;\n toRaw = oldTo + halfSpan;\n\n if (toRaw > upperLimit && oldTo < upperLimit) {\n toRaw = upperLimit;\n fromRaw = oldFrom;\n }\n }\n\n const from = toUtc(fromRaw);\n const to = toUtc(toRaw);\n return {\n from,\n to,\n raw: { from, to },\n };\n}\n\nconst HISTORY_LOCAL_STORAGE_KEY = 'grafana.dashboard.timepicker.history';\n\n// Simplified object to store in local storage\ninterface TimePickerHistoryItem {\n from: string;\n to: string;\n}\n\nfunction deserializeHistory(value: string): TimeRange[] {\n const values: TimePickerHistoryItem[] = JSON.parse(value);\n // The history is saved in UTC and with the default date format, so we need to pass those values to the convertRawToRange\n return values.map((item) => rangeUtil.convertRawToRange(item, 'utc', undefined, 'YYYY-MM-DD HH:mm:ss'));\n}\n\nfunction serializeHistory(values: TimeRange[]) {\n return JSON.stringify(\n limit(\n values.map((v) => ({\n from: typeof v.raw.from === 'string' ? v.raw.from : v.raw.from.toISOString(),\n to: typeof v.raw.to === 'string' ? v.raw.to : v.raw.to.toISOString(),\n }))\n )\n );\n}\n\nfunction limit(value: TimePickerHistoryItem[]): TimePickerHistoryItem[] {\n return uniqBy(value, (v) => v.from + v.to).slice(0, 4);\n}\n\nfunction isAbsolute(value: TimeRange): boolean {\n return isDateTime(value.raw.from) || isDateTime(value.raw.to);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SceneTimePicker.js","sources":["../../../src/components/SceneTimePicker.tsx"],"sourcesContent":["import React from 'react';\nimport { useLocalStorage } from 'react-use';\nimport { uniqBy } from 'lodash';\n\nimport {\n TimeOption,\n TimeRange,\n intervalToAbbreviatedDurationString,\n isDateTime,\n rangeUtil,\n toUtc,\n} from '@grafana/data';\nimport { TimeRangePicker } from '@grafana/ui';\n\nimport { SceneObjectBase } from '../core/SceneObjectBase';\nimport { sceneGraph } from '../core/sceneGraph';\nimport { SceneComponentProps, SceneObjectState } from '../core/types';\nimport { t } from '@grafana/i18n';\n\nexport interface SceneTimePickerState extends SceneObjectState {\n hidePicker?: boolean;\n isOnCanvas?: boolean;\n quickRanges?: TimeOption[];\n defaultQuickRanges?: TimeOption[]; // Overrides default time ranges from server config, so not serialised back to JSON\n}\n\nexport class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {\n public static Component = SceneTimePickerRenderer;\n\n public onZoom = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const zoomedTimeRange = getZoomedTimeRange(timeRange.state.value, 2);\n timeRange.onTimeRangeChange(zoomedTimeRange);\n };\n\n public onChangeFiscalYearStartMonth = (month: number) => {\n const timeRange = sceneGraph.getTimeRange(this);\n timeRange.setState({ fiscalYearStartMonth: month });\n };\n\n public toAbsolute = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const timeRangeVal = timeRange.state.value;\n const from = toUtc(timeRangeVal.from);\n const to = toUtc(timeRangeVal.to);\n timeRange.onTimeRangeChange({ from, to, raw: { from, to } });\n };\n\n public onMoveBackward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Backward, range));\n };\n\n public onMoveForward = () => {\n const timeRange = sceneGraph.getTimeRange(this);\n const {\n state: { value: range },\n } = timeRange;\n\n timeRange.onTimeRangeChange(getShiftedTimeRange(TimeRangeDirection.Forward, range, Date.now()));\n };\n}\n\nfunction SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>) {\n const { hidePicker, isOnCanvas, quickRanges, defaultQuickRanges } = model.useState();\n const timeRange = sceneGraph.getTimeRange(model);\n const timeZone = timeRange.getTimeZone();\n const timeRangeState = timeRange.useState();\n const [timeRangeHistory, setTimeRangeHistory] = useLocalStorage<TimeRange[]>(HISTORY_LOCAL_STORAGE_KEY, [], {\n raw: false,\n serializer: serializeHistory,\n deserializer: deserializeHistory,\n });\n\n if (hidePicker) {\n return null;\n }\n\n const rangesToUse = quickRanges || defaultQuickRanges;\n\n // Calculate half of the time range duration for forward/backward movement\n const halfSpanMs = (timeRangeState.value.to.valueOf() - timeRangeState.value.from.valueOf()) / 2;\n\n const moveBackwardDuration = intervalToAbbreviatedDurationString({\n start: new Date(timeRangeState.value.from.valueOf()),\n end: new Date(timeRangeState.value.from.valueOf() + halfSpanMs),\n });\n\n // Only show forward duration if moving forward wouldn't exceed current time\n const canMoveForward = timeRangeState.value.to.valueOf() + halfSpanMs <= Date.now();\n const moveForwardDuration = canMoveForward ? moveBackwardDuration : undefined;\n\n return (\n <TimeRangePicker\n isOnCanvas={isOnCanvas ?? true}\n value={timeRangeState.value}\n onChange={(range) => {\n if (isAbsolute(range)) {\n setTimeRangeHistory([range, ...(timeRangeHistory ?? [])]);\n }\n\n timeRange.onTimeRangeChange(range);\n }}\n timeZone={timeZone}\n fiscalYearStartMonth={timeRangeState.fiscalYearStartMonth}\n onMoveBackward={model.onMoveBackward}\n onMoveForward={model.onMoveForward}\n // @ts-expect-error (temporary till we update grafana/ui)\n moveForwardTooltip={\n moveForwardDuration\n ? t('grafana-scenes.components.time-picker.move-forward-tooltip', 'Move {{moveForwardDuration}} forward', {\n moveForwardDuration,\n })\n : undefined\n }\n moveBackwardTooltip={t(\n 'grafana-scenes.components.time-picker.move-backward-tooltip',\n 'Move {{moveBackwardDuration}} backward',\n { moveBackwardDuration }\n )}\n onZoom={model.onZoom}\n onChangeTimeZone={timeRange.onTimeZoneChange}\n onChangeFiscalYearStartMonth={model.onChangeFiscalYearStartMonth}\n weekStart={timeRangeState.weekStart}\n history={timeRangeHistory}\n quickRanges={rangesToUse}\n />\n );\n}\n\nexport function getZoomedTimeRange(timeRange: TimeRange, factor: number): TimeRange {\n const timespan = timeRange.to.valueOf() - timeRange.from.valueOf();\n const center = timeRange.to.valueOf() - timespan / 2;\n // If the timepsan is 0, zooming out would do nothing, so we force a zoom out to 30s\n const newTimespan = timespan === 0 ? 30000 : timespan * factor;\n\n const to = center + newTimespan / 2;\n const from = center - newTimespan / 2;\n\n return { from: toUtc(from), to: toUtc(to), raw: { from: toUtc(from), to: toUtc(to) } };\n}\n\nexport enum TimeRangeDirection {\n Backward,\n Forward,\n}\n\nexport function getShiftedTimeRange(dir: TimeRangeDirection, timeRange: TimeRange, upperLimit?: number): TimeRange {\n const oldTo = timeRange.to.valueOf();\n const oldFrom = timeRange.from.valueOf();\n const halfSpan = (oldTo - oldFrom) / 2;\n\n let fromRaw: number;\n let toRaw: number;\n if (dir === TimeRangeDirection.Backward) {\n fromRaw = oldFrom - halfSpan;\n toRaw = oldTo - halfSpan;\n } else {\n fromRaw = oldFrom + halfSpan;\n toRaw = oldTo + halfSpan;\n\n if (upperLimit !== undefined && toRaw > upperLimit && oldTo < upperLimit) {\n toRaw = upperLimit;\n fromRaw = oldFrom;\n }\n }\n\n const from = toUtc(fromRaw);\n const to = toUtc(toRaw);\n return {\n from,\n to,\n raw: { from, to },\n };\n}\n\nconst HISTORY_LOCAL_STORAGE_KEY = 'grafana.dashboard.timepicker.history';\n\n// Simplified object to store in local storage\ninterface TimePickerHistoryItem {\n from: string;\n to: string;\n}\n\nfunction deserializeHistory(value: string): TimeRange[] {\n const values: TimePickerHistoryItem[] = JSON.parse(value);\n // The history is saved in UTC and with the default date format, so we need to pass those values to the convertRawToRange\n return values.map((item) => rangeUtil.convertRawToRange(item, 'utc', undefined, 'YYYY-MM-DD HH:mm:ss'));\n}\n\nfunction serializeHistory(values: TimeRange[]) {\n return JSON.stringify(\n limit(\n values.map((v) => ({\n from: typeof v.raw.from === 'string' ? v.raw.from : v.raw.from.toISOString(),\n to: typeof v.raw.to === 'string' ? v.raw.to : v.raw.to.toISOString(),\n }))\n )\n );\n}\n\nfunction limit(value: TimePickerHistoryItem[]): TimePickerHistoryItem[] {\n return uniqBy(value, (v) => v.from + v.to).slice(0, 4);\n}\n\nfunction isAbsolute(value: TimeRange): boolean {\n return isDateTime(value.raw.from) || isDateTime(value.raw.to);\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -30,7 +30,6 @@ export { SceneDataLayerControls } from './querying/layers/SceneDataLayerControls
|
|
|
30
30
|
export { SceneDataTransformer } from './querying/SceneDataTransformer.js';
|
|
31
31
|
export { registerQueryWithController } from './querying/registerQueryWithController.js';
|
|
32
32
|
export { SceneRenderProfiler } from './behaviors/SceneRenderProfiler.js';
|
|
33
|
-
export { SceneInteractionProfiler } from './behaviors/SceneInteractionProfiler.js';
|
|
34
33
|
export { SceneVariableValueChangedEvent, isCustomVariableValue } from './variables/types.js';
|
|
35
34
|
export { VariableDependencyConfig } from './variables/VariableDependencyConfig.js';
|
|
36
35
|
export { formatRegistry } from './variables/interpolation/formatRegistry.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} 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 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 SceneInteractionProfileEvent,\n} from './behaviors/types';\nexport { SceneRenderProfiler } from './behaviors/SceneRenderProfiler';\
|
|
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} 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 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 SceneInteractionProfileEvent,\n} from './behaviors/types';\nexport { SceneRenderProfiler } from './behaviors/SceneRenderProfiler';\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 { 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 { 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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJO,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,sBAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -40,6 +40,10 @@ var grafanaScenes = {
|
|
|
40
40
|
splitter: {
|
|
41
41
|
"aria-label-pane-resize-widget": "Pane resize widget"
|
|
42
42
|
},
|
|
43
|
+
"time-picker": {
|
|
44
|
+
"move-backward-tooltip": "Move {{moveBackwardDuration}} backward",
|
|
45
|
+
"move-forward-tooltip": "Move {{moveForwardDuration}} forward"
|
|
46
|
+
},
|
|
43
47
|
"viz-panel": {
|
|
44
48
|
title: {
|
|
45
49
|
title: "Title"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grafana-scenes.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grafana-scenes.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -13,7 +13,6 @@ import { MultiValuePill } from './MultiValuePill.js';
|
|
|
13
13
|
import { getAdhocOptionSearcher } from '../getAdhocOptionSearcher.js';
|
|
14
14
|
import { getQueryController } from '../../../core/sceneGraph/getQueryController.js';
|
|
15
15
|
import { FILTER_CHANGED_INTERACTION, FILTER_REMOVED_INTERACTION } from '../../../behaviors/SceneRenderProfiler.js';
|
|
16
|
-
import { USER_INTERACTIONS } from '../../../behaviors/SceneInteractionProfiler.js';
|
|
17
16
|
|
|
18
17
|
const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwaysWip, handleChangeViewMode, focusOnWipInputRef, populateInputOnEdit }, parentRef) {
|
|
19
18
|
var _a, _b, _c, _d;
|
|
@@ -176,11 +175,6 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
|
|
|
176
175
|
const handleFetchOptions = useCallback(
|
|
177
176
|
async (inputType) => {
|
|
178
177
|
var _a2;
|
|
179
|
-
const profiler = getQueryController(model);
|
|
180
|
-
const interactionName = inputType === "key" ? USER_INTERACTIONS.ADHOC_KEYS_DROPDOWN : USER_INTERACTIONS.ADHOC_VALUES_DROPDOWN;
|
|
181
|
-
if (inputType !== "operator") {
|
|
182
|
-
profiler == null ? void 0 : profiler.startInteractionProfile(interactionName);
|
|
183
|
-
}
|
|
184
178
|
setOptionsError(false);
|
|
185
179
|
setOptionsLoading(true);
|
|
186
180
|
setOptions([]);
|
|
@@ -194,7 +188,6 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
|
|
|
194
188
|
options2 = await model._getValuesFor(filter);
|
|
195
189
|
}
|
|
196
190
|
if (filterInputTypeRef.current !== inputType) {
|
|
197
|
-
profiler == null ? void 0 : profiler.stopInteractionProfile();
|
|
198
191
|
return;
|
|
199
192
|
}
|
|
200
193
|
setOptions(options2);
|
|
@@ -207,7 +200,6 @@ const AdHocCombobox = forwardRef(function AdHocCombobox2({ filter, model, isAlwa
|
|
|
207
200
|
setOptionsError(true);
|
|
208
201
|
}
|
|
209
202
|
setOptionsLoading(false);
|
|
210
|
-
profiler == null ? void 0 : profiler.stopInteractionProfile();
|
|
211
203
|
},
|
|
212
204
|
[filter, model]
|
|
213
205
|
);
|