@grafana/scenes 6.17.1--canary.1140.15417528383.0 β 6.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
# v6.18.1 (Wed Jun 04 2025)
|
2
|
+
|
3
|
+
#### π Bug Fix
|
4
|
+
|
5
|
+
- GroupBy: Fix edge cases on dashboard default values [#1142](https://github.com/grafana/scenes/pull/1142) ([@mdvictor](https://github.com/mdvictor))
|
6
|
+
|
7
|
+
#### Authors: 1
|
8
|
+
|
9
|
+
- Victor Marin ([@mdvictor](https://github.com/mdvictor))
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
# v6.18.0 (Tue Jun 03 2025)
|
14
|
+
|
15
|
+
#### π Enhancement
|
16
|
+
|
17
|
+
- ScopesVariable: Emit value changed when there no scopes selected [#1136](https://github.com/grafana/scenes/pull/1136) ([@torkelo](https://github.com/torkelo))
|
18
|
+
|
19
|
+
#### π Bug Fix
|
20
|
+
|
21
|
+
- Frontend: fix:recompute time range on timezone change in SceneTimeRange [#1135](https://github.com/grafana/scenes/pull/1135) ([@keerthanamsys](https://github.com/keerthanamsys))
|
22
|
+
|
23
|
+
#### Authors: 2
|
24
|
+
|
25
|
+
- [@keerthanamsys](https://github.com/keerthanamsys)
|
26
|
+
- Torkel Γdegaard ([@torkelo](https://github.com/torkelo))
|
27
|
+
|
28
|
+
---
|
29
|
+
|
1
30
|
# v6.17.0 (Thu May 29 2025)
|
2
31
|
|
3
32
|
#### π Enhancement
|
@@ -15,7 +15,7 @@ class GroupByVariableUrlSyncHandler {
|
|
15
15
|
if (this._sceneObject.state.skipUrlSync) {
|
16
16
|
return [];
|
17
17
|
}
|
18
|
-
return [this.getKey(),
|
18
|
+
return [this.getKey(), this.getRestorableKey()];
|
19
19
|
}
|
20
20
|
getUrlState() {
|
21
21
|
if (this._sceneObject.state.skipUrlSync) {
|
@@ -23,13 +23,11 @@ class GroupByVariableUrlSyncHandler {
|
|
23
23
|
}
|
24
24
|
return {
|
25
25
|
[this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),
|
26
|
-
|
27
|
-
[this.getRestorableKey()]: this._sceneObject.state.restorable ? "true" : void 0
|
28
|
-
} : {}
|
26
|
+
[this.getRestorableKey()]: this._sceneObject.state.defaultValue ? this._sceneObject.state.restorable ? "true" : "false" : null
|
29
27
|
};
|
30
28
|
}
|
31
29
|
updateFromUrl(values) {
|
32
|
-
var _a, _b;
|
30
|
+
var _a, _b, _c, _d;
|
33
31
|
let urlValue = values[this.getKey()];
|
34
32
|
let restorableValue = values[this.getRestorableKey()];
|
35
33
|
if (urlValue != null) {
|
@@ -37,10 +35,22 @@ class GroupByVariableUrlSyncHandler {
|
|
37
35
|
this._sceneObject.skipNextValidation = true;
|
38
36
|
}
|
39
37
|
const { values: values2, texts } = fromUrlValues(urlValue);
|
40
|
-
if (
|
38
|
+
if (restorableValue === "false") {
|
39
|
+
if (this._sceneObject.state.defaultValue) {
|
40
|
+
this._sceneObject.changeValueTo(
|
41
|
+
(_a = this._sceneObject.state.defaultValue) == null ? void 0 : _a.value,
|
42
|
+
(_b = this._sceneObject.state.defaultValue) == null ? void 0 : _b.text,
|
43
|
+
false
|
44
|
+
);
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
this._sceneObject.changeValueTo([], []);
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
if (restorableValue === void 0 && this._sceneObject.state.defaultValue) {
|
41
51
|
this._sceneObject.changeValueTo(
|
42
|
-
(
|
43
|
-
(
|
52
|
+
(_c = this._sceneObject.state.defaultValue) == null ? void 0 : _c.value,
|
53
|
+
(_d = this._sceneObject.state.defaultValue) == null ? void 0 : _d.text,
|
44
54
|
false
|
45
55
|
);
|
46
56
|
return;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"GroupByVariableUrlSyncHandler.js","sources":["../../../../src/variables/groupby/GroupByVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport { GroupByVariable } from './GroupByVariable';\nimport { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils';\nimport { VariableValue } from '../types';\n\nexport class GroupByVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _sceneObject: GroupByVariable) {}\n\n protected _nextChangeShouldAddHistoryStep = false;\n\n private getRestorableKey(): string {\n return `restorable-var-${this._sceneObject.state.name}`;\n }\n\n private getKey(): string {\n return `var-${this._sceneObject.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey(),
|
1
|
+
{"version":3,"file":"GroupByVariableUrlSyncHandler.js","sources":["../../../../src/variables/groupby/GroupByVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport { GroupByVariable } from './GroupByVariable';\nimport { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils';\nimport { VariableValue } from '../types';\n\nexport class GroupByVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _sceneObject: GroupByVariable) {}\n\n protected _nextChangeShouldAddHistoryStep = false;\n\n private getRestorableKey(): string {\n return `restorable-var-${this._sceneObject.state.name}`;\n }\n\n private getKey(): string {\n return `var-${this._sceneObject.state.name}`;\n }\n\n public getKeys(): string[] {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n\n return [this.getKey(), this.getRestorableKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n\n return {\n [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),\n [this.getRestorableKey()]: this._sceneObject.state.defaultValue\n ? this._sceneObject.state.restorable\n ? 'true'\n : 'false'\n : null,\n };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n let urlValue = values[this.getKey()];\n let restorableValue = values[this.getRestorableKey()];\n\n if (urlValue != null) {\n /**\n * Initial URL Sync happens before scene objects are activated.\n * We need to skip validation in this case to make sure values set via URL are maintained.\n */\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n\n const { values, texts } = fromUrlValues(urlValue);\n\n if (restorableValue === 'false') {\n if (this._sceneObject.state.defaultValue) {\n this._sceneObject.changeValueTo(\n this._sceneObject.state.defaultValue?.value,\n this._sceneObject.state.defaultValue?.text,\n false\n );\n return;\n }\n\n this._sceneObject.changeValueTo([], []);\n return;\n }\n\n if (restorableValue === undefined && this._sceneObject.state.defaultValue) {\n this._sceneObject.changeValueTo(\n this._sceneObject.state.defaultValue?.value,\n this._sceneObject.state.defaultValue?.text,\n false\n );\n return;\n }\n\n this._sceneObject.changeValueTo(values, texts);\n }\n }\n\n public performBrowserHistoryAction(callback: () => void) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n\n public shouldCreateHistoryStep(values: SceneObjectUrlValues): boolean {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\n\nfunction toUrlValues(values: VariableValue, texts: VariableValue): string[] {\n values = Array.isArray(values) ? values : [values];\n texts = Array.isArray(texts) ? texts : [texts];\n\n return values.map((value, idx) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n value = String(value);\n\n let text = texts[idx];\n text = text === undefined || text === null ? value : String(text);\n\n return toUrlCommaDelimitedString(value, text);\n });\n}\n\nfunction fromUrlValues(urlValues: string | string[]): { values: string[]; texts: string[] } {\n urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];\n\n return urlValues.reduce<{ values: string[]; texts: string[] }>(\n (acc, urlValue) => {\n const [value, label] = (urlValue ?? '').split(',');\n\n acc.values.push(unescapeUrlDelimiters(value));\n acc.texts.push(unescapeUrlDelimiters(label ?? value));\n\n return acc;\n },\n {\n values: [],\n texts: [],\n }\n );\n}\n"],"names":["values"],"mappings":";;AAKO,MAAM,6BAAmE,CAAA;AAAA,EACvE,YAAoB,YAA+B,EAAA;AAA/B,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAE3B,IAAA,IAAA,CAAU,+BAAkC,GAAA,KAAA;AAAA;AAFe,EAInD,gBAA2B,GAAA;AACjC,IAAA,OAAO,CAAkB,eAAA,EAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAAA;AACvD,EAEQ,MAAiB,GAAA;AACvB,IAAA,OAAO,CAAO,IAAA,EAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAAA;AAC5C,EAEO,OAAoB,GAAA;AACzB,IAAI,IAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,WAAa,EAAA;AACvC,MAAA,OAAO,EAAC;AAAA;AAGV,IAAA,OAAO,CAAC,IAAK,CAAA,MAAA,EAAU,EAAA,IAAA,CAAK,kBAAkB,CAAA;AAAA;AAChD,EAEO,WAAoC,GAAA;AACzC,IAAI,IAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,WAAa,EAAA;AACvC,MAAA,OAAO,EAAC;AAAA;AAGV,IAAO,OAAA;AAAA,MACL,CAAC,IAAA,CAAK,MAAO,EAAC,GAAG,WAAA,CAAY,IAAK,CAAA,YAAA,CAAa,KAAM,CAAA,KAAA,EAAO,IAAK,CAAA,YAAA,CAAa,MAAM,IAAI,CAAA;AAAA,MACxF,CAAC,IAAA,CAAK,gBAAiB,EAAC,GAAG,IAAK,CAAA,YAAA,CAAa,KAAM,CAAA,YAAA,GAC/C,IAAK,CAAA,YAAA,CAAa,KAAM,CAAA,UAAA,GACtB,SACA,OACF,GAAA;AAAA,KACN;AAAA;AACF,EAEO,cAAc,MAAoC,EAAA;AAzC3D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0CI,IAAA,IAAI,QAAW,GAAA,MAAA,CAAO,IAAK,CAAA,MAAA,EAAQ,CAAA;AACnC,IAAA,IAAI,eAAkB,GAAA,MAAA,CAAO,IAAK,CAAA,gBAAA,EAAkB,CAAA;AAEpD,IAAA,IAAI,YAAY,IAAM,EAAA;AAKpB,MAAI,IAAA,CAAC,IAAK,CAAA,YAAA,CAAa,QAAU,EAAA;AAC/B,QAAA,IAAA,CAAK,aAAa,kBAAqB,GAAA,IAAA;AAAA;AAGzC,MAAA,MAAM,EAAE,MAAAA,EAAAA,OAAAA,EAAQ,KAAM,EAAA,GAAI,cAAc,QAAQ,CAAA;AAEhD,MAAA,IAAI,oBAAoB,OAAS,EAAA;AAC/B,QAAI,IAAA,IAAA,CAAK,YAAa,CAAA,KAAA,CAAM,YAAc,EAAA;AACxC,UAAA,IAAA,CAAK,YAAa,CAAA,aAAA;AAAA,YAAA,CAChB,EAAK,GAAA,IAAA,CAAA,YAAA,CAAa,KAAM,CAAA,YAAA,KAAxB,IAAsC,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA;AAAA,YAAA,CACtC,EAAK,GAAA,IAAA,CAAA,YAAA,CAAa,KAAM,CAAA,YAAA,KAAxB,IAAsC,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA;AAAA,YACtC;AAAA,WACF;AACA,UAAA;AAAA;AAGF,QAAA,IAAA,CAAK,YAAa,CAAA,aAAA,CAAc,EAAC,EAAG,EAAE,CAAA;AACtC,QAAA;AAAA;AAGF,MAAA,IAAI,eAAoB,KAAA,MAAA,IAAa,IAAK,CAAA,YAAA,CAAa,MAAM,YAAc,EAAA;AACzE,QAAA,IAAA,CAAK,YAAa,CAAA,aAAA;AAAA,UAAA,CAChB,EAAK,GAAA,IAAA,CAAA,YAAA,CAAa,KAAM,CAAA,YAAA,KAAxB,IAAsC,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA;AAAA,UAAA,CACtC,EAAK,GAAA,IAAA,CAAA,YAAA,CAAa,KAAM,CAAA,YAAA,KAAxB,IAAsC,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA;AAAA,UACtC;AAAA,SACF;AACA,QAAA;AAAA;AAGF,MAAK,IAAA,CAAA,YAAA,CAAa,aAAcA,CAAAA,OAAAA,EAAQ,KAAK,CAAA;AAAA;AAC/C;AACF,EAEO,4BAA4B,QAAsB,EAAA;AACvD,IAAA,IAAA,CAAK,+BAAkC,GAAA,IAAA;AACvC,IAAS,QAAA,EAAA;AACT,IAAA,IAAA,CAAK,+BAAkC,GAAA,KAAA;AAAA;AACzC,EAEO,wBAAwB,MAAuC,EAAA;AACpE,IAAA,OAAO,IAAK,CAAA,+BAAA;AAAA;AAEhB;AAEA,SAAS,WAAA,CAAY,QAAuB,KAAgC,EAAA;AAC1E,EAAA,MAAA,GAAS,MAAM,OAAQ,CAAA,MAAM,CAAI,GAAA,MAAA,GAAS,CAAC,MAAM,CAAA;AACjD,EAAA,KAAA,GAAQ,MAAM,OAAQ,CAAA,KAAK,CAAI,GAAA,KAAA,GAAQ,CAAC,KAAK,CAAA;AAE7C,EAAA,OAAO,MAAO,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,GAAQ,KAAA;AAChC,IAAI,IAAA,KAAA,KAAU,MAAa,IAAA,KAAA,KAAU,IAAM,EAAA;AACzC,MAAO,OAAA,EAAA;AAAA;AAGT,IAAA,KAAA,GAAQ,OAAO,KAAK,CAAA;AAEpB,IAAI,IAAA,IAAA,GAAO,MAAM,GAAG,CAAA;AACpB,IAAA,IAAA,GAAO,SAAS,MAAa,IAAA,IAAA,KAAS,IAAO,GAAA,KAAA,GAAQ,OAAO,IAAI,CAAA;AAEhE,IAAO,OAAA,yBAAA,CAA0B,OAAO,IAAI,CAAA;AAAA,GAC7C,CAAA;AACH;AAEA,SAAS,cAAc,SAAqE,EAAA;AAC1F,EAAA,SAAA,GAAY,MAAM,OAAQ,CAAA,SAAS,CAAI,GAAA,SAAA,GAAY,CAAC,SAAS,CAAA;AAE7D,EAAA,OAAO,SAAU,CAAA,MAAA;AAAA,IACf,CAAC,KAAK,QAAa,KAAA;AACjB,MAAA,MAAM,CAAC,KAAO,EAAA,KAAK,KAAK,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,EAAA,EAAI,MAAM,GAAG,CAAA;AAEjD,MAAA,GAAA,CAAI,MAAO,CAAA,IAAA,CAAK,qBAAsB,CAAA,KAAK,CAAC,CAAA;AAC5C,MAAA,GAAA,CAAI,KAAM,CAAA,IAAA,CAAK,qBAAsB,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,KAAK,CAAC,CAAA;AAEpD,MAAO,OAAA,GAAA;AAAA,KACT;AAAA,IACA;AAAA,MACE,QAAQ,EAAC;AAAA,MACT,OAAO;AAAC;AACV,GACF;AACF;;;;"}
|
package/dist/index.js
CHANGED
@@ -2974,7 +2974,7 @@ class GroupByVariableUrlSyncHandler {
|
|
2974
2974
|
if (this._sceneObject.state.skipUrlSync) {
|
2975
2975
|
return [];
|
2976
2976
|
}
|
2977
|
-
return [this.getKey(),
|
2977
|
+
return [this.getKey(), this.getRestorableKey()];
|
2978
2978
|
}
|
2979
2979
|
getUrlState() {
|
2980
2980
|
if (this._sceneObject.state.skipUrlSync) {
|
@@ -2982,13 +2982,11 @@ class GroupByVariableUrlSyncHandler {
|
|
2982
2982
|
}
|
2983
2983
|
return {
|
2984
2984
|
[this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text),
|
2985
|
-
|
2986
|
-
[this.getRestorableKey()]: this._sceneObject.state.restorable ? "true" : void 0
|
2987
|
-
} : {}
|
2985
|
+
[this.getRestorableKey()]: this._sceneObject.state.defaultValue ? this._sceneObject.state.restorable ? "true" : "false" : null
|
2988
2986
|
};
|
2989
2987
|
}
|
2990
2988
|
updateFromUrl(values) {
|
2991
|
-
var _a, _b;
|
2989
|
+
var _a, _b, _c, _d;
|
2992
2990
|
let urlValue = values[this.getKey()];
|
2993
2991
|
let restorableValue = values[this.getRestorableKey()];
|
2994
2992
|
if (urlValue != null) {
|
@@ -2996,10 +2994,22 @@ class GroupByVariableUrlSyncHandler {
|
|
2996
2994
|
this._sceneObject.skipNextValidation = true;
|
2997
2995
|
}
|
2998
2996
|
const { values: values2, texts } = fromUrlValues(urlValue);
|
2999
|
-
if (
|
2997
|
+
if (restorableValue === "false") {
|
2998
|
+
if (this._sceneObject.state.defaultValue) {
|
2999
|
+
this._sceneObject.changeValueTo(
|
3000
|
+
(_a = this._sceneObject.state.defaultValue) == null ? void 0 : _a.value,
|
3001
|
+
(_b = this._sceneObject.state.defaultValue) == null ? void 0 : _b.text,
|
3002
|
+
false
|
3003
|
+
);
|
3004
|
+
return;
|
3005
|
+
}
|
3006
|
+
this._sceneObject.changeValueTo([], []);
|
3007
|
+
return;
|
3008
|
+
}
|
3009
|
+
if (restorableValue === void 0 && this._sceneObject.state.defaultValue) {
|
3000
3010
|
this._sceneObject.changeValueTo(
|
3001
|
-
(
|
3002
|
-
(
|
3011
|
+
(_c = this._sceneObject.state.defaultValue) == null ? void 0 : _c.value,
|
3012
|
+
(_d = this._sceneObject.state.defaultValue) == null ? void 0 : _d.text,
|
3003
3013
|
false
|
3004
3014
|
);
|
3005
3015
|
return;
|