@grafana/scenes 2.6.2 → 2.6.3

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,15 @@
1
+ # v2.6.3 (Tue Feb 06 2024)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - TextBoxVariable: Fixes url sync key when name changes [#574](https://github.com/grafana/scenes/pull/574) ([@torkelo](https://github.com/torkelo))
6
+
7
+ #### Authors: 1
8
+
9
+ - Torkel Ödegaard ([@torkelo](https://github.com/torkelo))
10
+
11
+ ---
12
+
1
13
  # v2.6.2 (Tue Feb 06 2024)
2
14
 
3
15
  #### 🐛 Bug Fix
@@ -4,6 +4,9 @@ class SceneObjectUrlSyncConfig {
4
4
  this._keys = _options.keys;
5
5
  }
6
6
  getKeys() {
7
+ if (typeof this._keys === "function") {
8
+ return this._keys();
9
+ }
7
10
  return this._keys;
8
11
  }
9
12
  getUrlState() {
@@ -1 +1 @@
1
- {"version":3,"file":"SceneObjectUrlSyncConfig.js","sources":["../../../src/services/SceneObjectUrlSyncConfig.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectWithUrlSync, SceneObjectUrlValues } from '../core/types';\n\ninterface SceneObjectUrlSyncConfigOptions {\n keys: string[];\n}\n\nexport class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {\n private _keys: string[];\n\n public constructor(private _sceneObject: SceneObjectWithUrlSync, _options: SceneObjectUrlSyncConfigOptions) {\n this._keys = _options.keys;\n }\n\n public getKeys(): string[] {\n return this._keys;\n }\n\n public getUrlState(): SceneObjectUrlValues {\n return this._sceneObject.getUrlState();\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n this._sceneObject.updateFromUrl(values);\n }\n}\n"],"names":[],"mappings":"AAMO,MAAM,wBAA8D,CAAA;AAAA,EAGlE,WAAA,CAAoB,cAAsC,QAA2C,EAAA;AAAjF,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA,CAAA;AACzB,IAAA,IAAA,CAAK,QAAQ,QAAS,CAAA,IAAA,CAAA;AAAA,GACxB;AAAA,EAEO,OAAoB,GAAA;AACzB,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,GACd;AAAA,EAEO,WAAoC,GAAA;AACzC,IAAO,OAAA,IAAA,CAAK,aAAa,WAAY,EAAA,CAAA;AAAA,GACvC;AAAA,EAEO,cAAc,MAAoC,EAAA;AACvD,IAAK,IAAA,CAAA,YAAA,CAAa,cAAc,MAAM,CAAA,CAAA;AAAA,GACxC;AACF;;;;"}
1
+ {"version":3,"file":"SceneObjectUrlSyncConfig.js","sources":["../../../src/services/SceneObjectUrlSyncConfig.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectWithUrlSync, SceneObjectUrlValues } from '../core/types';\n\ninterface SceneObjectUrlSyncConfigOptions {\n keys: string[] | (() => string[]);\n}\n\nexport class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {\n private _keys: string[] | (() => string[]);\n\n public constructor(private _sceneObject: SceneObjectWithUrlSync, _options: SceneObjectUrlSyncConfigOptions) {\n this._keys = _options.keys;\n }\n\n public getKeys(): string[] {\n if (typeof this._keys === 'function') {\n return this._keys();\n }\n\n return this._keys;\n }\n\n public getUrlState(): SceneObjectUrlValues {\n return this._sceneObject.getUrlState();\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n this._sceneObject.updateFromUrl(values);\n }\n}\n"],"names":[],"mappings":"AAMO,MAAM,wBAA8D,CAAA;AAAA,EAGlE,WAAA,CAAoB,cAAsC,QAA2C,EAAA;AAAjF,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA,CAAA;AACzB,IAAA,IAAA,CAAK,QAAQ,QAAS,CAAA,IAAA,CAAA;AAAA,GACxB;AAAA,EAEO,OAAoB,GAAA;AACzB,IAAI,IAAA,OAAO,IAAK,CAAA,KAAA,KAAU,UAAY,EAAA;AACpC,MAAA,OAAO,KAAK,KAAM,EAAA,CAAA;AAAA,KACpB;AAEA,IAAA,OAAO,IAAK,CAAA,KAAA,CAAA;AAAA,GACd;AAAA,EAEO,WAAoC,GAAA;AACzC,IAAO,OAAA,IAAA,CAAK,aAAa,WAAY,EAAA,CAAA;AAAA,GACvC;AAAA,EAEO,cAAc,MAAoC,EAAA;AACvD,IAAK,IAAA,CAAA,YAAA,CAAa,cAAc,MAAM,CAAA,CAAA;AAAA,GACxC;AACF;;;;"}
@@ -27,7 +27,7 @@ class TextBoxVariable extends SceneObjectBase {
27
27
  value: "",
28
28
  name: ""
29
29
  }, initialState));
30
- this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [this.getKey()] });
30
+ this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });
31
31
  }
32
32
  getValue() {
33
33
  return this.state.value;
@@ -1 +1 @@
1
- {"version":3,"file":"TextBoxVariable.js","sources":["../../../../src/variables/variants/TextBoxVariable.tsx"],"sourcesContent":["import React from 'react';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlSyncHandler, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { VariableValueInput } from '../components/VariableValueInput';\nimport { SceneVariable, SceneVariableState, SceneVariableValueChangedEvent, VariableValue } from '../types';\n\nexport interface TextBoxVariableState extends SceneVariableState {\n value: string;\n}\n\nexport class TextBoxVariable\n extends SceneObjectBase<TextBoxVariableState>\n implements SceneVariable<TextBoxVariableState>\n{\n protected _urlSync: SceneObjectUrlSyncHandler;\n\n public constructor(initialState: Partial<TextBoxVariableState>) {\n super({\n type: 'textbox',\n value: '',\n name: '',\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [this.getKey()] });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public setValue(newValue: string) {\n if (newValue !== this.state.value) {\n this.setState({ value: newValue });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\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<TextBoxVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n update.value = val;\n }\n\n this.setState(update);\n }\n\n public static Component = ({ model }: SceneComponentProps<TextBoxVariable>) => {\n return <VariableValueInput model={model} />;\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,wBACH,eAEV,CAAA;AAAA,EAGS,YAAY,YAA6C,EAAA;AAC9D,IAAM,KAAA,CAAA,cAAA,CAAA;AAAA,MACJ,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,KAAA,EACH,YACJ,CAAA,CAAA,CAAA;AAED,IAAK,IAAA,CAAA,QAAA,GAAW,IAAI,wBAAA,CAAyB,IAAM,EAAA,EAAE,IAAM,EAAA,CAAC,IAAK,CAAA,MAAA,EAAQ,CAAA,EAAG,CAAA,CAAA;AAAA,GAC9E;AAAA,EAEO,QAA0B,GAAA;AAC/B,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA,CAAA;AAAA,GACpB;AAAA,EAEO,SAAS,QAAkB,EAAA;AAChC,IAAI,IAAA,QAAA,KAAa,IAAK,CAAA,KAAA,CAAM,KAAO,EAAA;AACjC,MAAA,IAAA,CAAK,QAAS,CAAA,EAAE,KAAO,EAAA,QAAA,EAAU,CAAA,CAAA;AACjC,MAAA,IAAA,CAAK,YAAa,CAAA,IAAI,8BAA+B,CAAA,IAAI,GAAG,IAAI,CAAA,CAAA;AAAA,KAClE;AAAA,GACF;AAAA,EAEQ,MAAiB,GAAA;AACvB,IAAO,OAAA,CAAA,IAAA,EAAO,KAAK,KAAM,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAC3B;AAAA,EAEO,WAAc,GAAA;AACnB,IAAA,OAAO,EAAE,CAAC,IAAA,CAAK,QAAW,GAAA,IAAA,CAAK,MAAM,KAAM,EAAA,CAAA;AAAA,GAC7C;AAAA,EAEO,cAAc,MAA8B,EAAA;AACjD,IAAA,MAAM,SAAwC,EAAC,CAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,IAAA,CAAK,MAAO,EAAA,CAAA,CAAA;AAC/B,IAAI,IAAA,OAAO,QAAQ,QAAU,EAAA;AAC3B,MAAA,MAAA,CAAO,KAAQ,GAAA,GAAA,CAAA;AAAA,KACjB;AAEA,IAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,GACtB;AAKF,CAAA;AAjDa,eAAA,CA8CG,SAAY,GAAA,CAAC,EAAE,KAAA,EAAkD,KAAA;AAC7E,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA;AAAA,IAAmB,KAAA;AAAA,GAAc,CAAA,CAAA;AAC3C,CAAA;;;;"}
1
+ {"version":3,"file":"TextBoxVariable.js","sources":["../../../../src/variables/variants/TextBoxVariable.tsx"],"sourcesContent":["import React from 'react';\nimport { SceneObjectBase } from '../../core/SceneObjectBase';\nimport { SceneComponentProps, SceneObjectUrlValues } from '../../core/types';\nimport { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig';\nimport { VariableValueInput } from '../components/VariableValueInput';\nimport { SceneVariable, SceneVariableState, SceneVariableValueChangedEvent, VariableValue } from '../types';\n\nexport interface TextBoxVariableState extends SceneVariableState {\n value: string;\n}\n\nexport class TextBoxVariable\n extends SceneObjectBase<TextBoxVariableState>\n implements SceneVariable<TextBoxVariableState>\n{\n public constructor(initialState: Partial<TextBoxVariableState>) {\n super({\n type: 'textbox',\n value: '',\n name: '',\n ...initialState,\n });\n\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });\n }\n\n public getValue(): VariableValue {\n return this.state.value;\n }\n\n public setValue(newValue: string) {\n if (newValue !== this.state.value) {\n this.setState({ value: newValue });\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\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<TextBoxVariableState> = {};\n const val = values[this.getKey()];\n if (typeof val === 'string') {\n update.value = val;\n }\n\n this.setState(update);\n }\n\n public static Component = ({ model }: SceneComponentProps<TextBoxVariable>) => {\n return <VariableValueInput model={model} />;\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,wBACH,eAEV,CAAA;AAAA,EACS,YAAY,YAA6C,EAAA;AAC9D,IAAM,KAAA,CAAA,cAAA,CAAA;AAAA,MACJ,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,EAAA;AAAA,KAAA,EACH,YACJ,CAAA,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,QAAW,GAAA,IAAI,wBAAyB,CAAA,IAAA,EAAM,EAAE,IAAA,EAAM,MAAM,CAAC,IAAK,CAAA,MAAA,EAAQ,CAAA,EAAG,CAAA,CAAA;AAAA,GACpF;AAAA,EAEO,QAA0B,GAAA;AAC/B,IAAA,OAAO,KAAK,KAAM,CAAA,KAAA,CAAA;AAAA,GACpB;AAAA,EAEO,SAAS,QAAkB,EAAA;AAChC,IAAI,IAAA,QAAA,KAAa,IAAK,CAAA,KAAA,CAAM,KAAO,EAAA;AACjC,MAAA,IAAA,CAAK,QAAS,CAAA,EAAE,KAAO,EAAA,QAAA,EAAU,CAAA,CAAA;AACjC,MAAA,IAAA,CAAK,YAAa,CAAA,IAAI,8BAA+B,CAAA,IAAI,GAAG,IAAI,CAAA,CAAA;AAAA,KAClE;AAAA,GACF;AAAA,EAEQ,MAAiB,GAAA;AACvB,IAAO,OAAA,CAAA,IAAA,EAAO,KAAK,KAAM,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAC3B;AAAA,EAEO,WAAc,GAAA;AACnB,IAAA,OAAO,EAAE,CAAC,IAAA,CAAK,QAAW,GAAA,IAAA,CAAK,MAAM,KAAM,EAAA,CAAA;AAAA,GAC7C;AAAA,EAEO,cAAc,MAA8B,EAAA;AACjD,IAAA,MAAM,SAAwC,EAAC,CAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,IAAA,CAAK,MAAO,EAAA,CAAA,CAAA;AAC/B,IAAI,IAAA,OAAO,QAAQ,QAAU,EAAA;AAC3B,MAAA,MAAA,CAAO,KAAQ,GAAA,GAAA,CAAA;AAAA,KACjB;AAEA,IAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,GACtB;AAKF,CAAA;AA/Ca,eAAA,CA4CG,SAAY,GAAA,CAAC,EAAE,KAAA,EAAkD,KAAA;AAC7E,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA;AAAA,IAAmB,KAAA;AAAA,GAAc,CAAA,CAAA;AAC3C,CAAA;;;;"}
package/dist/index.d.ts CHANGED
@@ -721,7 +721,6 @@ interface TextBoxVariableState extends SceneVariableState {
721
721
  value: string;
722
722
  }
723
723
  declare class TextBoxVariable extends SceneObjectBase<TextBoxVariableState> implements SceneVariable<TextBoxVariableState> {
724
- protected _urlSync: SceneObjectUrlSyncHandler;
725
724
  constructor(initialState: Partial<TextBoxVariableState>);
726
725
  getValue(): VariableValue;
727
726
  setValue(newValue: string): void;
@@ -1070,7 +1069,7 @@ declare class SceneDataNode extends SceneObjectBase<SceneDataNodeState> implemen
1070
1069
  }
1071
1070
 
1072
1071
  interface SceneObjectUrlSyncConfigOptions {
1073
- keys: string[];
1072
+ keys: string[] | (() => string[]);
1074
1073
  }
1075
1074
  declare class SceneObjectUrlSyncConfig implements SceneObjectUrlSyncHandler {
1076
1075
  private _sceneObject;
package/dist/index.js CHANGED
@@ -683,6 +683,9 @@ class SceneObjectUrlSyncConfig {
683
683
  this._keys = _options.keys;
684
684
  }
685
685
  getKeys() {
686
+ if (typeof this._keys === "function") {
687
+ return this._keys();
688
+ }
686
689
  return this._keys;
687
690
  }
688
691
  getUrlState() {
@@ -5403,7 +5406,7 @@ class TextBoxVariable extends SceneObjectBase {
5403
5406
  value: "",
5404
5407
  name: ""
5405
5408
  }, initialState));
5406
- this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [this.getKey()] });
5409
+ this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });
5407
5410
  }
5408
5411
  getValue() {
5409
5412
  return this.state.value;