@node-projects/web-component-designer-visualization-addons 0.1.8 → 0.1.9
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,15 @@ export class BindingsHelper {
|
|
|
412
424
|
}
|
|
413
425
|
else {
|
|
414
426
|
signals[i] = root[s];
|
|
427
|
+
let evtCallback = () => {
|
|
428
|
+
cleanUp();
|
|
429
|
+
this.applyBinding(element, binding, relativeSignalPath, root);
|
|
430
|
+
};
|
|
431
|
+
const evtNm = getChangeEventName(element, PropertiesHelper.camelToDashCase(s));
|
|
432
|
+
root.addEventListener(evtNm, evtCallback);
|
|
433
|
+
if (!cleanupCalls)
|
|
434
|
+
cleanupCalls = [];
|
|
435
|
+
cleanupCalls.push(() => root.removeEventListener(evtNm, evtCallback));
|
|
415
436
|
}
|
|
416
437
|
}
|
|
417
438
|
}
|
|
@@ -419,8 +440,6 @@ export class BindingsHelper {
|
|
|
419
440
|
signals[i] = relativeSignalPath + sng;
|
|
420
441
|
}
|
|
421
442
|
}
|
|
422
|
-
let unsubscribeList = [];
|
|
423
|
-
let cleanupCalls;
|
|
424
443
|
let valuesObject = new Array(signals.length);
|
|
425
444
|
for (let i = 0; i < signals.length; i++) {
|
|
426
445
|
const s = signals[i];
|
|
@@ -491,16 +510,7 @@ export class BindingsHelper {
|
|
|
491
510
|
}
|
|
492
511
|
}
|
|
493
512
|
}
|
|
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
|
-
};
|
|
513
|
+
return cleanUp;
|
|
504
514
|
}
|
|
505
515
|
addTwoWayBinding(binding, element, setter) {
|
|
506
516
|
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.9",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"author": "jochen.kuehner@gmx.de",
|