@node-projects/web-component-designer 0.1.117 → 0.1.119
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/dist/elements/services/propertiesService/services/AbstractPropertiesService.d.ts +2 -1
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +20 -12
- package/dist/elements/services/propertiesService/services/AttributesPropertiesService.js +3 -8
- package/dist/elements/services/propertiesService/services/ContentAndIdPropertiesService.js +1 -4
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ export declare abstract class AbstractPropertiesService implements IPropertiesSe
|
|
|
11
11
|
private static _stylesCache;
|
|
12
12
|
private _cssCacheClearTimer;
|
|
13
13
|
private static _bindingsCache;
|
|
14
|
-
private _bindingsCacheClearTimer;
|
|
14
|
+
private static _bindingsCacheClearTimer;
|
|
15
15
|
abstract getRefreshMode(designItem: IDesignItem): RefreshMode;
|
|
16
16
|
abstract isHandledElement(designItem: IDesignItem): boolean;
|
|
17
17
|
protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
|
|
@@ -21,6 +21,7 @@ export declare abstract class AbstractPropertiesService implements IPropertiesSe
|
|
|
21
21
|
getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
|
|
22
22
|
clearValue(designItems: IDesignItem[], property: IProperty, clearType: 'all' | 'binding' | 'value'): void;
|
|
23
23
|
isSet(designItems: IDesignItem[], property: IProperty): ValueType;
|
|
24
|
+
static getOrBuildCachedBindings(designItem: IDesignItem): IBinding[];
|
|
24
25
|
getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
|
|
25
26
|
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
26
27
|
getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
|
|
@@ -12,7 +12,7 @@ export class AbstractPropertiesService {
|
|
|
12
12
|
static _stylesCache = new Map;
|
|
13
13
|
_cssCacheClearTimer;
|
|
14
14
|
static _bindingsCache = new Map;
|
|
15
|
-
_bindingsCacheClearTimer;
|
|
15
|
+
static _bindingsCacheClearTimer;
|
|
16
16
|
_notifyChangedProperty(designItem, property, value) {
|
|
17
17
|
}
|
|
18
18
|
getProperty(designItem, name) {
|
|
@@ -123,13 +123,7 @@ export class AbstractPropertiesService {
|
|
|
123
123
|
break;
|
|
124
124
|
}
|
|
125
125
|
;
|
|
126
|
-
|
|
127
|
-
if (!bindings) {
|
|
128
|
-
bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => s.getBindings(designItems[0]));
|
|
129
|
-
AbstractPropertiesService._bindingsCache.set(designItems[0], bindings);
|
|
130
|
-
clearTimeout(this._bindingsCacheClearTimer);
|
|
131
|
-
this._bindingsCacheClearTimer = setTimeout(() => AbstractPropertiesService._bindingsCache.clear(), 30);
|
|
132
|
-
}
|
|
126
|
+
const bindings = AbstractPropertiesService.getOrBuildCachedBindings(designItems[0]);
|
|
133
127
|
if (property.propertyType == PropertyType.cssValue) {
|
|
134
128
|
if (bindings && bindings.find(x => (x.target == BindingTarget.css || x.target == BindingTarget.cssvar) && x.targetName == property.name))
|
|
135
129
|
return ValueType.bound;
|
|
@@ -165,6 +159,23 @@ export class AbstractPropertiesService {
|
|
|
165
159
|
return ValueType.none;
|
|
166
160
|
return all ? ValueType.all : some ? ValueType.some : ValueType.none;
|
|
167
161
|
}
|
|
162
|
+
static getOrBuildCachedBindings(designItem) {
|
|
163
|
+
let bindings = AbstractPropertiesService._bindingsCache.get(designItem);
|
|
164
|
+
if (!bindings) {
|
|
165
|
+
const services = designItem.serviceContainer.getServices('bindingService');
|
|
166
|
+
const bindings = [];
|
|
167
|
+
for (const s of services) {
|
|
168
|
+
const bs = s.getBindings(designItem);
|
|
169
|
+
if (bs && bs.length > 0) {
|
|
170
|
+
bindings.push(...bs);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
AbstractPropertiesService._bindingsCache.set(designItem, bindings);
|
|
174
|
+
clearTimeout(this._bindingsCacheClearTimer);
|
|
175
|
+
this._bindingsCacheClearTimer = setTimeout(() => AbstractPropertiesService._bindingsCache.clear(), 30);
|
|
176
|
+
}
|
|
177
|
+
return bindings;
|
|
178
|
+
}
|
|
168
179
|
getValue(designItems, property) {
|
|
169
180
|
if (designItems != null && designItems.length !== 0) {
|
|
170
181
|
if (property.propertyType == PropertyType.cssValue) {
|
|
@@ -207,10 +218,7 @@ export class AbstractPropertiesService {
|
|
|
207
218
|
return null;
|
|
208
219
|
}
|
|
209
220
|
getBinding(designItems, property) {
|
|
210
|
-
|
|
211
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
212
|
-
return s.getBindings(designItems[0]);
|
|
213
|
-
});
|
|
221
|
+
const bindings = AbstractPropertiesService.getOrBuildCachedBindings(designItems[0]);
|
|
214
222
|
if (bindings != null) {
|
|
215
223
|
if (property.propertyType == PropertyType.cssValue) {
|
|
216
224
|
return bindings.find(x => (x.target == BindingTarget.css || x.target == BindingTarget.cssvar) && x.targetName == property.name);
|
|
@@ -3,6 +3,7 @@ import { ValueType } from '../ValueType.js';
|
|
|
3
3
|
import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
4
4
|
import { PropertyType } from '../PropertyType.js';
|
|
5
5
|
import { PropertiesHelper } from './PropertiesHelper.js';
|
|
6
|
+
import { AbstractPropertiesService } from './AbstractPropertiesService.js';
|
|
6
7
|
export class AttributesPropertiesService {
|
|
7
8
|
name = "attributes";
|
|
8
9
|
getRefreshMode(designItem) {
|
|
@@ -56,10 +57,7 @@ export class AttributesPropertiesService {
|
|
|
56
57
|
all = all && has;
|
|
57
58
|
some = some || has;
|
|
58
59
|
});
|
|
59
|
-
|
|
60
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
61
|
-
return s.getBindings(designItems[0]);
|
|
62
|
-
});
|
|
60
|
+
const bindings = AbstractPropertiesService.getOrBuildCachedBindings(designItems[0]);
|
|
63
61
|
if (bindings && bindings.find(x => x.target == BindingTarget.attribute && x.targetName == propName))
|
|
64
62
|
return ValueType.bound;
|
|
65
63
|
}
|
|
@@ -87,10 +85,7 @@ export class AttributesPropertiesService {
|
|
|
87
85
|
return null;
|
|
88
86
|
}
|
|
89
87
|
getBinding(designItems, property) {
|
|
90
|
-
|
|
91
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
92
|
-
return s.getBindings(designItems[0]);
|
|
93
|
-
});
|
|
88
|
+
const bindings = AbstractPropertiesService.getOrBuildCachedBindings(designItems[0]);
|
|
94
89
|
return bindings.find(x => (x.target == BindingTarget.property || x.target == BindingTarget.attribute) && x.targetName == property.name);
|
|
95
90
|
}
|
|
96
91
|
getUnsetValue(designItems, property) {
|
|
@@ -64,10 +64,7 @@ export class ContentAndIdPropertiesService extends AbstractPropertiesService {
|
|
|
64
64
|
all = all && has;
|
|
65
65
|
some = some || has;
|
|
66
66
|
});
|
|
67
|
-
|
|
68
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
69
|
-
return s.getBindings(designItems[0]);
|
|
70
|
-
});
|
|
67
|
+
const bindings = AbstractPropertiesService.getOrBuildCachedBindings(designItems[0]);
|
|
71
68
|
if (bindings && bindings.find(x => x.target == BindingTarget.property && x.targetName == property.name))
|
|
72
69
|
return ValueType.bound;
|
|
73
70
|
}
|
package/package.json
CHANGED