@node-projects/web-component-designer-visualization-addons 0.1.8 → 0.1.10
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.
|
@@ -10,6 +10,7 @@ export declare const bindingPrefixContent = "bind-content:";
|
|
|
10
10
|
export declare const bindingsInCssRegex: RegExp;
|
|
11
11
|
export type namedBinding = [name: string, binding: VisualizationBinding];
|
|
12
12
|
export declare function isLit(element: Element): boolean;
|
|
13
|
+
export declare function getChangeEventName(element: Element, propertyName: string): string;
|
|
13
14
|
export declare function parseBindingString(id: string): {
|
|
14
15
|
parts: string[];
|
|
15
16
|
signals: string[];
|
|
@@ -13,6 +13,11 @@ export function isLit(element) {
|
|
|
13
13
|
//@ts-ignore
|
|
14
14
|
return element.constructor?.elementProperties != null;
|
|
15
15
|
}
|
|
16
|
+
export function getChangeEventName(element, propertyName) {
|
|
17
|
+
if (isLit(element))
|
|
18
|
+
return propertyName;
|
|
19
|
+
return propertyName + '-changed';
|
|
20
|
+
}
|
|
16
21
|
export function parseBindingString(id) {
|
|
17
22
|
let parts = [];
|
|
18
23
|
let signals = [];
|
|
@@ -157,12 +162,7 @@ export class BindingsHelper {
|
|
|
157
162
|
else if (element instanceof HTMLSelectElement)
|
|
158
163
|
binding.events = ['change'];
|
|
159
164
|
else {
|
|
160
|
-
|
|
161
|
-
binding.events = [propname];
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
binding.events = [propname + '-changed'];
|
|
165
|
-
}
|
|
165
|
+
binding.events = [getChangeEventName(element, propname)];
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
if (bindingTarget === BindingTarget.cssvar || bindingTarget === BindingTarget.class)
|
|
@@ -393,6 +393,18 @@ export class BindingsHelper {
|
|
|
393
393
|
return retVal;
|
|
394
394
|
}
|
|
395
395
|
applyBinding(element, binding, relativeSignalPath, root) {
|
|
396
|
+
let unsubscribeList = [];
|
|
397
|
+
let cleanupCalls;
|
|
398
|
+
const cleanUp = () => {
|
|
399
|
+
for (const u of unsubscribeList) {
|
|
400
|
+
this._visualizationHandler.unsubscribeState(u[0], u[1]);
|
|
401
|
+
}
|
|
402
|
+
if (cleanupCalls) {
|
|
403
|
+
for (let e of cleanupCalls) {
|
|
404
|
+
e();
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
};
|
|
396
408
|
const signals = binding[1].signal.split(';');
|
|
397
409
|
const signalVars = new Array(signals.length);
|
|
398
410
|
for (let i = 0; i < signals.length; i++) {
|
|
@@ -412,6 +424,19 @@ export class BindingsHelper {
|
|
|
412
424
|
}
|
|
413
425
|
else {
|
|
414
426
|
signals[i] = root[s];
|
|
427
|
+
if (s[0] === '$') {
|
|
428
|
+
s = s.substring(1);
|
|
429
|
+
signals[i] = '$' + root[s];
|
|
430
|
+
}
|
|
431
|
+
let evtCallback = () => {
|
|
432
|
+
cleanUp();
|
|
433
|
+
this.applyBinding(element, binding, relativeSignalPath, root);
|
|
434
|
+
};
|
|
435
|
+
const evtNm = getChangeEventName(element, PropertiesHelper.camelToDashCase(s));
|
|
436
|
+
root.addEventListener(evtNm, evtCallback);
|
|
437
|
+
if (!cleanupCalls)
|
|
438
|
+
cleanupCalls = [];
|
|
439
|
+
cleanupCalls.push(() => root.removeEventListener(evtNm, evtCallback));
|
|
415
440
|
}
|
|
416
441
|
}
|
|
417
442
|
}
|
|
@@ -419,8 +444,6 @@ export class BindingsHelper {
|
|
|
419
444
|
signals[i] = relativeSignalPath + sng;
|
|
420
445
|
}
|
|
421
446
|
}
|
|
422
|
-
let unsubscribeList = [];
|
|
423
|
-
let cleanupCalls;
|
|
424
447
|
let valuesObject = new Array(signals.length);
|
|
425
448
|
for (let i = 0; i < signals.length; i++) {
|
|
426
449
|
const s = signals[i];
|
|
@@ -491,16 +514,7 @@ export class BindingsHelper {
|
|
|
491
514
|
}
|
|
492
515
|
}
|
|
493
516
|
}
|
|
494
|
-
return
|
|
495
|
-
for (const u of unsubscribeList) {
|
|
496
|
-
this._visualizationHandler.unsubscribeState(u[0], u[1]);
|
|
497
|
-
}
|
|
498
|
-
if (cleanupCalls) {
|
|
499
|
-
for (let e of cleanupCalls) {
|
|
500
|
-
e();
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
};
|
|
517
|
+
return cleanUp;
|
|
504
518
|
}
|
|
505
519
|
addTwoWayBinding(binding, element, setter) {
|
|
506
520
|
if (binding[1].expressionTwoWay) {
|
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.
|
|
4
|
+
"version": "0.1.10",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"author": "jochen.kuehner@gmx.de",
|