@node-projects/web-component-designer-visualization-addons 0.1.49 → 0.1.51

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.
@@ -9,7 +9,7 @@ export class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
9
9
  <div style="grid-column: 1/3">
10
10
  <div style="display: flex; flex-direction: column;">
11
11
  <div class="row">
12
- <span style="cursor: pointer;" title="to use multiple objects, seprate them with semicolon (;). access iobroker objects in properties via ?propertyName, access the propertyValue via ??propertyName. Bind to ioBroker object via $objectId. You could also use ioBroker signals inside of a Signal Name via {name}">objects</span>
12
+ <span style="cursor: pointer;" title="to use multiple objects, seprate them with semicolon (;). access signal objects in properties via ?propertyName, access the propertyValue via ??propertyName. Bind to signal configurations via $objectId. You could also use signals inside of a Signal Name via {name}">objects</span>
13
13
  </div>
14
14
  <div style="display:flex;align-items: flex-end;">
15
15
  <input id="objnm" class="row" value="{{?this.objectNames::change}}" style="flex-grow: 1;">
@@ -30,7 +30,7 @@ export declare class IndirectSignal {
30
30
  private visualizationHandler;
31
31
  private element;
32
32
  private relativeSignalPath;
33
- constructor(visualizationHandler: VisualizationHandler, id: string, valueChangedCb: (value: State) => void, element: Element, relativeSignalPath: string);
33
+ constructor(visualizationHandler: VisualizationHandler, id: string, valueChangedCb: (value: State) => void, element: Element, relativeSignalPath: string, root: HTMLElement);
34
34
  private parseIndirectBinding;
35
35
  handleValueChanged(value: any, index: number): void;
36
36
  dispose(): void;
@@ -53,7 +53,7 @@ export class IndirectSignal {
53
53
  visualizationHandler;
54
54
  element;
55
55
  relativeSignalPath;
56
- constructor(visualizationHandler, id, valueChangedCb, element, relativeSignalPath) {
56
+ constructor(visualizationHandler, id, valueChangedCb, element, relativeSignalPath, root) {
57
57
  this.visualizationHandler = visualizationHandler;
58
58
  this.valueChangedCb = valueChangedCb;
59
59
  this.element = element;
@@ -61,8 +61,16 @@ export class IndirectSignal {
61
61
  this.parseIndirectBinding(id);
62
62
  this.values = new Array(this.signals.length);
63
63
  for (let i = 0; i < this.signals.length; i++) {
64
+ let nm = this.signals[i];
65
+ if (nm[0] === '?' && nm[1] === '?') {
66
+ this.handleValueChanged(root[nm.substring(2)], i);
67
+ continue;
68
+ }
69
+ else if (nm[0] === '?') {
70
+ nm = root[nm.substring(1)];
71
+ }
64
72
  let cb = (id, value) => this.handleValueChanged(value.val, i);
65
- this.unsubscribeList.push([cb, this.visualizationHandler.subscribeState(this.signals[i], cb)]);
73
+ this.unsubscribeList.push([cb, this.visualizationHandler.subscribeState(nm, cb)]);
66
74
  }
67
75
  }
68
76
  parseIndirectBinding(id) {
@@ -593,7 +601,7 @@ export class BindingsHelper {
593
601
  }
594
602
  else {
595
603
  if (s.includes('{')) {
596
- let indirectSignal = new IndirectSignal(this._visualizationHandler, s, (value) => this.handleValueChanged(element, binding, value.val, valuesObject, i, signalVars, false), element, relativeSignalPath);
604
+ let indirectSignal = new IndirectSignal(this._visualizationHandler, s, (value) => this.handleValueChanged(element, binding, value.val, valuesObject, i, signalVars, false), element, relativeSignalPath, root);
597
605
  if (!cleanupCalls)
598
606
  cleanupCalls = [];
599
607
  cleanupCalls.push(() => indirectSignal.dispose());
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "web-component-designer addon for visualizations",
3
3
  "name": "@node-projects/web-component-designer-visualization-addons",
4
- "version": "0.1.49",
4
+ "version": "0.1.51",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",