@node-projects/web-component-designer-visualization-addons 0.1.115 → 0.1.116

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ //@ts-ignore
2
+ class FieldObjectId extends Blockly.FieldTextInput {
3
+ }
4
+ //@ts-ignore
5
+ Blockly.FieldObjectId = FieldObjectId;
6
+ export {};
@@ -8,7 +8,7 @@ export class BindingsEditor extends BaseCustomWebComponentConstructorAppend {
8
8
  <div style="grid-column: 1/3">
9
9
  <div style="display: flex; flex-direction: column;">
10
10
  <div class="row">
11
- <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>
11
+ <span style="cursor: pointer;" title="to use multiple objects, seprate them with semicolon (;).&#010;Access signal objects in properties via ?propertyName, access the propertyValue via ??propertyName.&#010;Access signal objects in properties of the target via #propertyName, access the propertyValue via ##propertyName.&#010;Bind to signal configurations via $objectId.&#010;You could also use signals inside of a Signal Name via {name}">objects</span>
12
12
  </div>
13
13
  <div id="groupObjectName" style="display:flex;align-items: flex-end;">
14
14
  <input id="objectName" class="row" value="{{?this.objectNames::change}}" style="flex-grow: 1;">
@@ -65,9 +65,16 @@ export class IndirectSignal {
65
65
  this.handleValueChanged(root[nm.substring(2)], i);
66
66
  continue;
67
67
  }
68
+ else if (nm[0] === '#' && nm[1] === '#') {
69
+ this.handleValueChanged(element[nm.substring(2)], i);
70
+ continue;
71
+ }
68
72
  else if (nm[0] === '?') {
69
73
  nm = root[nm.substring(1)];
70
74
  }
75
+ else if (nm[0] === '#') {
76
+ nm = element[nm.substring(1)];
77
+ }
71
78
  let cb = (id, value) => this.handleValueChanged(value.val, i);
72
79
  this.unsubscribeList.push([cb, this.visualizationHandler.subscribeState(nm, cb)]);
73
80
  }
@@ -578,6 +585,28 @@ export class BindingsHelper {
578
585
  }
579
586
  }
580
587
  }
588
+ else if (sng[0] === '#') { //access object path in target element
589
+ let s = sng.substring(1);
590
+ if (s[0] == '#') {
591
+ signals[i] = s;
592
+ }
593
+ else {
594
+ signals[i] = root[s];
595
+ if (s[0] === '$') {
596
+ s = s.substring(1);
597
+ signals[i] = '$' + root[s];
598
+ }
599
+ let evtCallback = () => {
600
+ cleanUp();
601
+ this.applyBinding(element, binding, relativeSignalPath, root, specialValueHandler);
602
+ };
603
+ const evtNm = getChangeEventName(element, PropertiesHelper.camelToDashCase(s));
604
+ root.addEventListener(evtNm, evtCallback);
605
+ if (!cleanupCalls)
606
+ cleanupCalls = [];
607
+ cleanupCalls.push(() => root.removeEventListener(evtNm, evtCallback));
608
+ }
609
+ }
581
610
  if (sng[0] === '.') {
582
611
  signals[i] = this._visualizationHandler.getNormalizedSignalName(sng, relativeSignalPath, element);
583
612
  }
@@ -611,6 +640,30 @@ export class BindingsHelper {
611
640
  }
612
641
  }
613
642
  }
643
+ else if (s[0] === '#') { //Binding to element properties
644
+ const nm = s.substring(1);
645
+ let evtCallback = () => {
646
+ let disableValueChanged = false;
647
+ if (!disableValueChanged) {
648
+ disableValueChanged = true;
649
+ this.handleValueChanged(element, binding, element[nm], valuesObject, i, signalVars, false, relativeSignalPath);
650
+ disableValueChanged = false;
651
+ }
652
+ };
653
+ element.addEventListener(PropertiesHelper.camelToDashCase(nm) + '-changed', evtCallback);
654
+ if (!cleanupCalls)
655
+ cleanupCalls = [];
656
+ cleanupCalls.push(() => element.removeEventListener(PropertiesHelper.camelToDashCase(nm) + '-changed', evtCallback));
657
+ try {
658
+ this.handleValueChanged(element, binding, element[nm], valuesObject, i, signalVars, false, relativeSignalPath);
659
+ }
660
+ catch (err) {
661
+ console.error(err);
662
+ }
663
+ if (binding[1].twoWay && i == 0) {
664
+ this.addTwoWayBinding(binding, element, v => element[nm] = v);
665
+ }
666
+ }
614
667
  else if (s[0] === '$') {
615
668
  let mS = s.substring(1);
616
669
  if (mS[0] === '.') {
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.115",
4
+ "version": "0.1.116",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",