@node-projects/web-component-designer 0.0.260 → 0.0.262
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/IPropertiesService.d.ts +1 -1
- package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +1 -1
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.d.ts +1 -1
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +15 -11
- package/dist/elements/services/propertiesService/services/ContentAndIdPropertiesService.js +9 -13
- package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +25 -14
- package/package.json +1 -1
|
@@ -18,7 +18,7 @@ export interface IPropertiesService extends IService {
|
|
|
18
18
|
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
19
19
|
getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
|
|
20
20
|
setValue(designItems: IDesignItem[], property: IProperty, value: any): any;
|
|
21
|
-
clearValue(designItems: IDesignItem[], property: IProperty): any;
|
|
21
|
+
clearValue(designItems: IDesignItem[], property: IProperty, clearType: 'all' | 'binding' | 'value'): any;
|
|
22
22
|
isSet(designItems: IDesignItem[], property: IProperty): ValueType;
|
|
23
23
|
getValue(designItems: IDesignItem[], property: IProperty): any;
|
|
24
24
|
getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
|
|
@@ -13,7 +13,7 @@ export class BasePropertyEditor {
|
|
|
13
13
|
const cg = this.designItems[0].openGroup("set property: " + this.property.name);
|
|
14
14
|
for (let d of this.designItems) {
|
|
15
15
|
if (newValue == null)
|
|
16
|
-
this.property.service.clearValue([d], this.property);
|
|
16
|
+
this.property.service.clearValue([d], this.property, 'value');
|
|
17
17
|
else
|
|
18
18
|
this.property.service.setValue([d], this.property, newValue);
|
|
19
19
|
}
|
|
@@ -13,7 +13,7 @@ export declare abstract class AbstractPropertiesService implements IPropertiesSe
|
|
|
13
13
|
abstract getProperties(designItem: IDesignItem): IProperty[] | IPropertyGroup[];
|
|
14
14
|
setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
|
|
15
15
|
getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
|
|
16
|
-
clearValue(designItems: IDesignItem[], property: IProperty): void;
|
|
16
|
+
clearValue(designItems: IDesignItem[], property: IProperty, clearType?: 'all' | 'binding' | 'value'): void;
|
|
17
17
|
isSet(designItems: IDesignItem[], property: IProperty): ValueType;
|
|
18
18
|
getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
|
|
19
19
|
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
@@ -60,21 +60,25 @@ export class AbstractPropertiesService {
|
|
|
60
60
|
getPropertyTarget(designItem, property) {
|
|
61
61
|
return BindingTarget.property;
|
|
62
62
|
}
|
|
63
|
-
clearValue(designItems, property) {
|
|
63
|
+
clearValue(designItems, property, clearType = 'all') {
|
|
64
64
|
const cg = designItems[0].openGroup("property cleared: " + property.name);
|
|
65
65
|
for (let d of designItems) {
|
|
66
|
-
if (
|
|
67
|
-
|
|
66
|
+
if (clearType != 'binding') {
|
|
67
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
68
|
+
d.removeStyle(property.name);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
let attributeName = property.attributeName;
|
|
72
|
+
if (!attributeName)
|
|
73
|
+
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
74
|
+
d.removeAttribute(attributeName);
|
|
75
|
+
}
|
|
68
76
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
d.removeAttribute(attributeName);
|
|
77
|
+
if (clearType != 'value') {
|
|
78
|
+
d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
79
|
+
return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
|
|
80
|
+
});
|
|
74
81
|
}
|
|
75
|
-
d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
76
|
-
return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
|
|
77
|
-
});
|
|
78
82
|
this._notifyChangedProperty(d, property, undefined);
|
|
79
83
|
}
|
|
80
84
|
cg.commit();
|
|
@@ -2,15 +2,16 @@ import { PropertyType } from '../PropertyType.js';
|
|
|
2
2
|
import { AbstractPropertiesService } from './AbstractPropertiesService.js';
|
|
3
3
|
import { RefreshMode } from '../IPropertiesService.js';
|
|
4
4
|
import { ValueType } from '../ValueType.js';
|
|
5
|
+
import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
5
6
|
export class ContentAndIdPropertiesService extends AbstractPropertiesService {
|
|
6
7
|
getRefreshMode(designItem) {
|
|
7
8
|
return RefreshMode.none;
|
|
8
9
|
}
|
|
9
10
|
contentProperty = {
|
|
10
|
-
name: "
|
|
11
|
+
name: "textContent",
|
|
11
12
|
type: "string",
|
|
12
13
|
service: this,
|
|
13
|
-
propertyType: PropertyType.
|
|
14
|
+
propertyType: PropertyType.property
|
|
14
15
|
};
|
|
15
16
|
idProperty = {
|
|
16
17
|
name: "id",
|
|
@@ -29,7 +30,7 @@ export class ContentAndIdPropertiesService extends AbstractPropertiesService {
|
|
|
29
30
|
return [this.idProperty, this.contentProperty];
|
|
30
31
|
}
|
|
31
32
|
clearValue(designItems, property) {
|
|
32
|
-
if (property.name ==
|
|
33
|
+
if (property.name == this.contentProperty.name) {
|
|
33
34
|
designItems[0].clearChildren();
|
|
34
35
|
}
|
|
35
36
|
else {
|
|
@@ -37,7 +38,7 @@ export class ContentAndIdPropertiesService extends AbstractPropertiesService {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
isSet(designItems, property) {
|
|
40
|
-
if (property.name ==
|
|
41
|
+
if (property.name == this.contentProperty.name) {
|
|
41
42
|
let all = true;
|
|
42
43
|
let some = false;
|
|
43
44
|
if (designItems != null && designItems.length !== 0) {
|
|
@@ -48,23 +49,18 @@ export class ContentAndIdPropertiesService extends AbstractPropertiesService {
|
|
|
48
49
|
some = some || has;
|
|
49
50
|
});
|
|
50
51
|
//todo: optimize perf, do not call bindings service for each property.
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
53
|
+
return s.getBindings(designItems[0]);
|
|
53
54
|
});
|
|
54
|
-
if (property.
|
|
55
|
-
if (bindings && bindings.find(x => x.target == BindingTarget.css && x.targetName == property.name))
|
|
55
|
+
if (bindings && bindings.find(x => x.target == BindingTarget.property && x.targetName == property.name))
|
|
56
56
|
return ValueType.bound;
|
|
57
|
-
} else {
|
|
58
|
-
if (bindings && bindings.find(x => x.target == BindingTarget.property && x.targetName == property.name))
|
|
59
|
-
return ValueType.bound;
|
|
60
|
-
}*/
|
|
61
57
|
}
|
|
62
58
|
return all ? ValueType.all : some ? ValueType.some : ValueType.none;
|
|
63
59
|
}
|
|
64
60
|
return super.isSet(designItems, property);
|
|
65
61
|
}
|
|
66
62
|
getValue(designItems, property) {
|
|
67
|
-
if (property.name ==
|
|
63
|
+
if (property.name == this.contentProperty.name) {
|
|
68
64
|
return designItems[0].element.textContent;
|
|
69
65
|
}
|
|
70
66
|
return super.getValue(designItems, property);
|
|
@@ -190,7 +190,7 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
190
190
|
label.onkeyup = e => {
|
|
191
191
|
if (e.key == 'Enter' && label.value) {
|
|
192
192
|
const pg = this._designItems[0].openGroup("rename property name from '" + p.name + "' to '" + label.value + "'");
|
|
193
|
-
p.service.clearValue(this._designItems, p);
|
|
193
|
+
p.service.clearValue(this._designItems, p, 'all');
|
|
194
194
|
p.name = label.value;
|
|
195
195
|
p.service.setValue(this._designItems, p, input.value);
|
|
196
196
|
pg.commit();
|
|
@@ -213,7 +213,7 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
213
213
|
const ctxMenu = [
|
|
214
214
|
{
|
|
215
215
|
title: 'clear', action: (e) => {
|
|
216
|
-
property.service.clearValue(designItems, property);
|
|
216
|
+
property.service.clearValue(designItems, property, 'value');
|
|
217
217
|
designItems[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(designItems);
|
|
218
218
|
}
|
|
219
219
|
},
|
|
@@ -227,6 +227,12 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
227
227
|
let binding = property.service.getBinding(designItems, property);
|
|
228
228
|
designItems[0].serviceContainer.config.openBindingsEditor(property, designItems, binding, target);
|
|
229
229
|
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
title: 'clear binding', action: () => {
|
|
233
|
+
property.service.clearValue(designItems, property, 'binding');
|
|
234
|
+
designItems[0].instanceServiceContainer.designerCanvas.extensionManager.refreshAllExtensions(designItems);
|
|
235
|
+
}
|
|
230
236
|
}
|
|
231
237
|
]);
|
|
232
238
|
}
|
|
@@ -245,20 +251,25 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
245
251
|
}
|
|
246
252
|
}
|
|
247
253
|
static refreshIsSetElementAndEditorForDesignItems(isSetElement, property, items, propertiesService, editor) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
254
|
+
if (items) {
|
|
255
|
+
let s = propertiesService.isSet(items, property);
|
|
256
|
+
let v = propertiesService.getValue(items, property);
|
|
257
|
+
isSetElement.title = s;
|
|
258
|
+
if (s == ValueType.none) {
|
|
259
|
+
isSetElement.style.background = '';
|
|
260
|
+
v = propertiesService.getUnsetValue(items, property);
|
|
261
|
+
}
|
|
262
|
+
else if (s == ValueType.all)
|
|
263
|
+
isSetElement.style.background = 'white';
|
|
264
|
+
else if (s == ValueType.some)
|
|
265
|
+
isSetElement.style.background = 'gray';
|
|
266
|
+
else if (s == ValueType.bound)
|
|
267
|
+
isSetElement.style.background = 'orange';
|
|
268
|
+
editor?.refreshValueWithoutNotification(s, v);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
252
271
|
isSetElement.style.background = '';
|
|
253
|
-
v = propertiesService.getUnsetValue(items, property);
|
|
254
272
|
}
|
|
255
|
-
else if (s == ValueType.all)
|
|
256
|
-
isSetElement.style.background = 'white';
|
|
257
|
-
else if (s == ValueType.some)
|
|
258
|
-
isSetElement.style.background = 'gray';
|
|
259
|
-
else if (s == ValueType.bound)
|
|
260
|
-
isSetElement.style.background = 'orange';
|
|
261
|
-
editor?.refreshValueWithoutNotification(s, v);
|
|
262
273
|
}
|
|
263
274
|
}
|
|
264
275
|
customElements.define('node-projects-property-grid-property-list', PropertyGridPropertyList);
|