@node-projects/web-component-designer 0.0.142 → 0.0.144
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/README.md +10 -2
- package/dist/elements/helper/ArrangeHelper.d.ts +2 -2
- package/dist/elements/helper/ArrangeHelper.js +49 -23
- package/dist/elements/helper/ElementHelper.d.ts +1 -0
- package/dist/elements/helper/ElementHelper.js +3 -0
- package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +1 -0
- package/dist/elements/services/htmlWriterService/HtmlWriterService.js +14 -8
- package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.d.ts +3 -2
- package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +5 -2
- package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +6 -6
- package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.d.ts +8 -0
- package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js +47 -0
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.d.ts +20 -0
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +162 -0
- package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.d.ts +2 -2
- package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js +2 -2
- package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +2 -12
- package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +3 -82
- package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +2 -11
- package/dist/elements/services/propertiesService/services/CssPropertiesService.js +3 -72
- package/dist/elements/services/propertiesService/services/ListPropertiesService.d.ts +3 -2
- package/dist/elements/services/propertiesService/services/ListPropertiesService.js +5 -2
- package/dist/elements/services/propertiesService/services/Lit2PropertiesService.d.ts +2 -2
- package/dist/elements/services/propertiesService/services/Lit2PropertiesService.js +2 -2
- package/dist/elements/services/propertiesService/services/LitElementPropertiesService.d.ts +2 -2
- package/dist/elements/services/propertiesService/services/LitElementPropertiesService.js +2 -2
- package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js +6 -0
- package/dist/elements/services/propertiesService/services/PolymerPropertiesService.d.ts +2 -2
- package/dist/elements/services/propertiesService/services/PolymerPropertiesService.js +2 -2
- package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts +4 -4
- package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.js +95 -50
- package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts +3 -2
- package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js +5 -2
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +9 -2
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +20 -4
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.d.ts +4 -1
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.js +10 -1
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +2 -1
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +4 -0
- package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +2 -1
- package/dist/elements/widgets/designerView/tools/TextTool.d.ts +4 -1
- package/dist/elements/widgets/designerView/tools/TextTool.js +31 -15
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.d.ts +3 -0
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +18 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.js +54 -2
- package/dist/elements/widgets/paletteView/paletteView.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ValueType } from "../ValueType";
|
|
2
|
-
import { BindingTarget } from "../../../item/BindingTarget";
|
|
3
1
|
import { PropertyType } from "../PropertyType";
|
|
4
|
-
|
|
2
|
+
import { AbstractPropertiesService } from "./AbstractPropertiesService";
|
|
3
|
+
export class CommonPropertiesService extends AbstractPropertiesService {
|
|
5
4
|
listNeedsRefresh(designItem) {
|
|
6
|
-
return
|
|
5
|
+
return false;
|
|
7
6
|
}
|
|
8
7
|
//@ts-ignore
|
|
9
8
|
commonProperties = [
|
|
@@ -41,82 +40,4 @@ export class CommonPropertiesService {
|
|
|
41
40
|
getProperties(designItem) {
|
|
42
41
|
return this.commonProperties;
|
|
43
42
|
}
|
|
44
|
-
setValue(designItems, property, value) {
|
|
45
|
-
for (let d of designItems) {
|
|
46
|
-
if (property.type == 'boolean' && !value) {
|
|
47
|
-
d.attributes.delete(property.name);
|
|
48
|
-
d.element.removeAttribute(property.name);
|
|
49
|
-
}
|
|
50
|
-
else if (property.type == 'boolean' && value) {
|
|
51
|
-
d.attributes.set(property.name, "");
|
|
52
|
-
d.element.setAttribute(property.name, "");
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
d.attributes.set(property.name, value);
|
|
56
|
-
d.element.setAttribute(property.name, value);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
getPropertyTarget(designItem, property) {
|
|
61
|
-
return BindingTarget.property;
|
|
62
|
-
}
|
|
63
|
-
clearValue(designItems, property) {
|
|
64
|
-
for (let d of designItems) {
|
|
65
|
-
d.attributes.delete(property.name);
|
|
66
|
-
d.element.removeAttribute(property.name);
|
|
67
|
-
d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
68
|
-
return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
isSet(designItems, property) {
|
|
73
|
-
let all = true;
|
|
74
|
-
let some = false;
|
|
75
|
-
if (designItems != null && designItems.length !== 0) {
|
|
76
|
-
let attributeName = property.name;
|
|
77
|
-
designItems.forEach((x) => {
|
|
78
|
-
let has = x.attributes.has(attributeName);
|
|
79
|
-
all = all && has;
|
|
80
|
-
some = some || has;
|
|
81
|
-
});
|
|
82
|
-
//todo: optimize perf, do not call bindings service for each property.
|
|
83
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
84
|
-
return s.getBindings(designItems[0]);
|
|
85
|
-
});
|
|
86
|
-
if (bindings && bindings.find(x => x.target == BindingTarget.property && x.targetName == property.name))
|
|
87
|
-
return ValueType.bound;
|
|
88
|
-
}
|
|
89
|
-
else
|
|
90
|
-
return ValueType.none;
|
|
91
|
-
return all ? ValueType.all : some ? ValueType.some : ValueType.none;
|
|
92
|
-
}
|
|
93
|
-
getValue(designItems, property) {
|
|
94
|
-
if (designItems != null && designItems.length !== 0) {
|
|
95
|
-
let attributeName = property.name;
|
|
96
|
-
if (property.type == 'boolean')
|
|
97
|
-
return designItems[0].attributes.has(attributeName);
|
|
98
|
-
let lastValue = designItems[0].attributes.get(attributeName);
|
|
99
|
-
/*
|
|
100
|
-
for (const x of designItems) {
|
|
101
|
-
let value = x.attributes.get(attributeName);
|
|
102
|
-
if (value != lastValue) {
|
|
103
|
-
lastValue = null;
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
*/
|
|
108
|
-
return lastValue;
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
getBinding(designItems, property) {
|
|
113
|
-
//TODO: optimize perf, do not call bindings service for each property.
|
|
114
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
115
|
-
return s.getBindings(designItems[0]);
|
|
116
|
-
});
|
|
117
|
-
return bindings.find(x => (x.target == BindingTarget.property || x.target == BindingTarget.attribute) && x.targetName == property.name);
|
|
118
|
-
}
|
|
119
|
-
getUnsetValue(designItems, property) {
|
|
120
|
-
return property.defaultValue;
|
|
121
|
-
}
|
|
122
43
|
}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import { IPropertiesService } from '../IPropertiesService';
|
|
2
1
|
import { IProperty } from '../IProperty';
|
|
3
2
|
import { IDesignItem } from '../../../item/IDesignItem';
|
|
4
|
-
import { ValueType } from '../ValueType';
|
|
5
3
|
import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
6
|
-
import {
|
|
7
|
-
export declare class CssPropertiesService
|
|
4
|
+
import { CommonPropertiesService } from './CommonPropertiesService';
|
|
5
|
+
export declare class CssPropertiesService extends CommonPropertiesService {
|
|
8
6
|
listNeedsRefresh(designItem: IDesignItem): boolean;
|
|
9
7
|
layout: IProperty[];
|
|
10
8
|
grid: IProperty[];
|
|
11
9
|
flex: IProperty[];
|
|
12
|
-
name: 'styles' | 'layout' | 'grid' | 'flex';
|
|
13
10
|
constructor(name: 'styles' | 'layout' | 'grid' | 'flex');
|
|
14
11
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
15
12
|
getProperty(designItem: IDesignItem, name: string): IProperty;
|
|
16
13
|
getProperties(designItem: IDesignItem): IProperty[];
|
|
17
|
-
setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
|
|
18
14
|
getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
|
|
19
|
-
clearValue(designItems: IDesignItem[], property: IProperty): void;
|
|
20
|
-
isSet(designItems: IDesignItem[], property: IProperty): ValueType;
|
|
21
|
-
getValue(designItems: IDesignItem[], property: IProperty): string;
|
|
22
|
-
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
23
|
-
getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
|
|
24
15
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ValueType } from '../ValueType';
|
|
2
|
-
import { NodeType } from '../../../item/NodeType';
|
|
3
1
|
import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
4
2
|
import { PropertyType } from '../PropertyType';
|
|
5
|
-
|
|
3
|
+
import { CommonPropertiesService } from './CommonPropertiesService';
|
|
4
|
+
export class CssPropertiesService extends CommonPropertiesService {
|
|
6
5
|
listNeedsRefresh(designItem) {
|
|
7
6
|
return this.name == 'styles' ? true : false;
|
|
8
7
|
}
|
|
@@ -178,8 +177,8 @@ export class CssPropertiesService {
|
|
|
178
177
|
propertyType: PropertyType.cssValue
|
|
179
178
|
}
|
|
180
179
|
];
|
|
181
|
-
name;
|
|
182
180
|
constructor(name) {
|
|
181
|
+
super();
|
|
183
182
|
this.name = name;
|
|
184
183
|
}
|
|
185
184
|
isHandledElement(designItem) {
|
|
@@ -201,75 +200,7 @@ export class CssPropertiesService {
|
|
|
201
200
|
}
|
|
202
201
|
return this[this.name];
|
|
203
202
|
}
|
|
204
|
-
setValue(designItems, property, value) {
|
|
205
|
-
const cg = designItems[0].openGroup("properties changed");
|
|
206
|
-
for (let d of designItems) {
|
|
207
|
-
d.styles.set(property.name, value);
|
|
208
|
-
d.element.style[property.name] = value;
|
|
209
|
-
}
|
|
210
|
-
cg.commit();
|
|
211
|
-
}
|
|
212
203
|
getPropertyTarget(designItem, property) {
|
|
213
204
|
return BindingTarget.css;
|
|
214
205
|
}
|
|
215
|
-
clearValue(designItems, property) {
|
|
216
|
-
for (let d of designItems) {
|
|
217
|
-
d.styles.delete(property.name);
|
|
218
|
-
d.element.style[property.name] = '';
|
|
219
|
-
d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
220
|
-
return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
isSet(designItems, property) {
|
|
225
|
-
let all = true;
|
|
226
|
-
let some = false;
|
|
227
|
-
if (designItems != null && designItems.length !== 0) {
|
|
228
|
-
designItems.forEach((x) => {
|
|
229
|
-
let has = x.styles.has(property.name);
|
|
230
|
-
all = all && has;
|
|
231
|
-
some = some || has;
|
|
232
|
-
});
|
|
233
|
-
//todo: optimize perf, do not call bindings service for each property.
|
|
234
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
235
|
-
return s.getBindings(designItems[0]);
|
|
236
|
-
});
|
|
237
|
-
if (bindings && bindings.find(x => x.target == BindingTarget.css && x.targetName == property.name))
|
|
238
|
-
return ValueType.bound;
|
|
239
|
-
}
|
|
240
|
-
else
|
|
241
|
-
return ValueType.none;
|
|
242
|
-
return all ? ValueType.all : some ? ValueType.some : ValueType.none;
|
|
243
|
-
}
|
|
244
|
-
getValue(designItems, property) {
|
|
245
|
-
if (designItems != null && designItems.length !== 0) {
|
|
246
|
-
let lastValue = designItems[0].styles.get(property.name);
|
|
247
|
-
for (const x of designItems) {
|
|
248
|
-
let value = x.styles.get(property.name);
|
|
249
|
-
if (value != lastValue) {
|
|
250
|
-
lastValue = null;
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return lastValue;
|
|
255
|
-
}
|
|
256
|
-
return null;
|
|
257
|
-
}
|
|
258
|
-
getBinding(designItems, property) {
|
|
259
|
-
//TODO: optimize perf, do not call bindings service for each property.
|
|
260
|
-
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
261
|
-
return s.getBindings(designItems[0]);
|
|
262
|
-
});
|
|
263
|
-
return bindings.find(x => (x.target == BindingTarget.css) && x.targetName == property.name);
|
|
264
|
-
}
|
|
265
|
-
//todo: optimize perf, call window.getComputedStyle only once per item, and not per property
|
|
266
|
-
getUnsetValue(designItems, property) {
|
|
267
|
-
if (designItems != null && designItems.length !== 0) {
|
|
268
|
-
if (designItems[0].nodeType == NodeType.Element) {
|
|
269
|
-
let v = window.getComputedStyle(designItems[0].element)[property.name];
|
|
270
|
-
return v;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return null;
|
|
274
|
-
}
|
|
275
206
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { IProperty } from '../IProperty';
|
|
2
2
|
import { IDesignItem } from '../../../item/IDesignItem';
|
|
3
3
|
import { IJsonPropertyDefinitions } from './IJsonPropertyDefinitions';
|
|
4
|
-
import {
|
|
5
|
-
export declare class ListPropertiesService extends
|
|
4
|
+
import { AbstractPropertiesService } from './AbstractPropertiesService';
|
|
5
|
+
export declare class ListPropertiesService extends AbstractPropertiesService {
|
|
6
|
+
listNeedsRefresh(designItem: IDesignItem): boolean;
|
|
6
7
|
name: string;
|
|
7
8
|
private _propertys;
|
|
8
9
|
constructor(propertyDefinitions: IJsonPropertyDefinitions);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbstractPropertiesService } from './AbstractPropertiesService';
|
|
2
2
|
import { PropertyType } from '../PropertyType';
|
|
3
|
-
export class ListPropertiesService extends
|
|
3
|
+
export class ListPropertiesService extends AbstractPropertiesService {
|
|
4
|
+
listNeedsRefresh(designItem) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
4
7
|
name = "list";
|
|
5
8
|
_propertys = new Map();
|
|
6
9
|
constructor(propertyDefinitions) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IProperty } from '../IProperty';
|
|
2
2
|
import { IDesignItem } from '../../../item/IDesignItem';
|
|
3
|
-
import {
|
|
4
|
-
export declare class Lit2PropertiesService extends
|
|
3
|
+
import { AbstractPolymerLikePropertiesService } from "./AbstractPolymerLikePropertiesService";
|
|
4
|
+
export declare class Lit2PropertiesService extends AbstractPolymerLikePropertiesService {
|
|
5
5
|
name: string;
|
|
6
6
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
7
7
|
getProperties(designItem: IDesignItem): IProperty[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AbstractPolymerLikePropertiesService } from "./AbstractPolymerLikePropertiesService";
|
|
2
2
|
import { PropertiesHelper } from './PropertiesHelper';
|
|
3
3
|
import { PropertyType } from '../PropertyType';
|
|
4
|
-
export class Lit2PropertiesService extends
|
|
4
|
+
export class Lit2PropertiesService extends AbstractPolymerLikePropertiesService {
|
|
5
5
|
name = "lit2";
|
|
6
6
|
isHandledElement(designItem) {
|
|
7
7
|
let prop = designItem.element.constructor.elementProperties;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IProperty } from '../IProperty';
|
|
2
2
|
import { IDesignItem } from '../../../item/IDesignItem';
|
|
3
|
-
import {
|
|
4
|
-
export declare class LitElementPropertiesService extends
|
|
3
|
+
import { AbstractPolymerLikePropertiesService } from "./AbstractPolymerLikePropertiesService";
|
|
4
|
+
export declare class LitElementPropertiesService extends AbstractPolymerLikePropertiesService {
|
|
5
5
|
name: string;
|
|
6
6
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
7
7
|
protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export class LitElementPropertiesService extends
|
|
1
|
+
import { AbstractPolymerLikePropertiesService } from "./AbstractPolymerLikePropertiesService";
|
|
2
|
+
export class LitElementPropertiesService extends AbstractPolymerLikePropertiesService {
|
|
3
3
|
name = "lit";
|
|
4
4
|
isHandledElement(designItem) {
|
|
5
5
|
let proto = designItem.element.constructor.__proto__;
|
package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js
CHANGED
|
@@ -67,6 +67,12 @@ export class NativeElementsPropertiesService extends CommonPropertiesService {
|
|
|
67
67
|
type: "boolean",
|
|
68
68
|
service: this,
|
|
69
69
|
propertyType: PropertyType.propertyAndAttribute
|
|
70
|
+
}, {
|
|
71
|
+
name: "resize",
|
|
72
|
+
type: "list",
|
|
73
|
+
values: ["both", "none", "horizontal", "vertical"],
|
|
74
|
+
service: this,
|
|
75
|
+
propertyType: PropertyType.cssValue
|
|
70
76
|
}
|
|
71
77
|
];
|
|
72
78
|
selectProperties = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IProperty } from '../IProperty';
|
|
2
2
|
import { IDesignItem } from '../../../item/IDesignItem';
|
|
3
|
-
import {
|
|
4
|
-
export declare class PolymerPropertiesService extends
|
|
3
|
+
import { AbstractPolymerLikePropertiesService } from './AbstractPolymerLikePropertiesService';
|
|
4
|
+
export declare class PolymerPropertiesService extends AbstractPolymerLikePropertiesService {
|
|
5
5
|
name: string;
|
|
6
6
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
7
7
|
protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export class PolymerPropertiesService extends
|
|
1
|
+
import { AbstractPolymerLikePropertiesService } from './AbstractPolymerLikePropertiesService';
|
|
2
|
+
export class PolymerPropertiesService extends AbstractPolymerLikePropertiesService {
|
|
3
3
|
name = "polymer";
|
|
4
4
|
isHandledElement(designItem) {
|
|
5
5
|
return designItem.element.constructor.polymerElementVersion != null;
|
package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts
CHANGED
|
@@ -5,16 +5,16 @@ import { ValueType } from "../ValueType";
|
|
|
5
5
|
import { BindingTarget } from "../../../item/BindingTarget";
|
|
6
6
|
import { IBinding } from "../../../item/IBinding";
|
|
7
7
|
export declare abstract class UnkownElementPropertiesService implements IPropertiesService {
|
|
8
|
-
listNeedsRefresh(designItem: IDesignItem): boolean;
|
|
9
|
-
isHandledElement(designItem: IDesignItem): boolean;
|
|
8
|
+
abstract listNeedsRefresh(designItem: IDesignItem): boolean;
|
|
9
|
+
abstract isHandledElement(designItem: IDesignItem): boolean;
|
|
10
10
|
protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
|
|
11
11
|
getProperty(designItem: IDesignItem, name: string): IProperty;
|
|
12
|
-
getProperties(designItem: IDesignItem): IProperty[];
|
|
12
|
+
abstract getProperties(designItem: IDesignItem): IProperty[];
|
|
13
13
|
setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
|
|
14
14
|
getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
|
|
15
15
|
clearValue(designItems: IDesignItem[], property: IProperty): void;
|
|
16
16
|
isSet(designItems: IDesignItem[], property: IProperty): ValueType;
|
|
17
|
-
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
18
17
|
getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
|
|
18
|
+
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
19
19
|
getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
|
|
20
20
|
}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
import { ValueType } from "../ValueType";
|
|
2
2
|
import { PropertiesHelper } from './PropertiesHelper';
|
|
3
3
|
import { BindingTarget } from "../../../item/BindingTarget";
|
|
4
|
-
|
|
4
|
+
import { PropertyType } from "../PropertyType";
|
|
5
|
+
import { NodeType } from "../../../item/NodeType";
|
|
5
6
|
export class UnkownElementPropertiesService {
|
|
6
|
-
listNeedsRefresh(designItem) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
isHandledElement(designItem) {
|
|
10
|
-
return true;
|
|
11
|
-
}
|
|
12
7
|
_notifyChangedProperty(designItem, property, value) {
|
|
13
8
|
}
|
|
14
9
|
getProperty(designItem, name) {
|
|
15
|
-
return
|
|
16
|
-
}
|
|
17
|
-
getProperties(designItem) {
|
|
18
|
-
return null;
|
|
10
|
+
return this.getProperties(designItem).find(x => x.name == name);
|
|
19
11
|
}
|
|
20
12
|
setValue(designItems, property, value) {
|
|
21
|
-
let attributeName = property.attributeName;
|
|
22
|
-
if (!attributeName)
|
|
23
|
-
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
24
13
|
const cg = designItems[0].openGroup("properties changed");
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
for (let d of designItems) {
|
|
15
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
16
|
+
d.styles.set(property.name, value);
|
|
17
|
+
d.element.style[property.name] = value;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
let attributeName = property.attributeName;
|
|
21
|
+
if (!attributeName)
|
|
22
|
+
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
27
23
|
if (property.type === 'object') {
|
|
28
24
|
const json = JSON.stringify(value);
|
|
29
25
|
d.attributes.set(attributeName, json);
|
|
@@ -41,77 +37,126 @@ export class UnkownElementPropertiesService {
|
|
|
41
37
|
d.attributes.set(attributeName, value);
|
|
42
38
|
d.element.setAttribute(attributeName, value);
|
|
43
39
|
}
|
|
44
|
-
this._notifyChangedProperty(d, property, value);
|
|
45
40
|
}
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
console.log(err);
|
|
50
|
-
cg.undo();
|
|
41
|
+
this._notifyChangedProperty(d, property, value);
|
|
51
42
|
}
|
|
43
|
+
cg.commit();
|
|
52
44
|
}
|
|
53
45
|
getPropertyTarget(designItem, property) {
|
|
54
46
|
return BindingTarget.property;
|
|
55
47
|
}
|
|
56
48
|
clearValue(designItems, property) {
|
|
57
|
-
const
|
|
49
|
+
const cg = designItems[0].openGroup("properties cleared");
|
|
58
50
|
for (let d of designItems) {
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
52
|
+
d.styles.delete(property.name);
|
|
53
|
+
d.element.style[property.name] = '';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
let attributeName = property.attributeName;
|
|
57
|
+
if (!attributeName)
|
|
58
|
+
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
59
|
+
d.attributes.delete(attributeName);
|
|
60
|
+
d.element.removeAttribute(attributeName);
|
|
61
|
+
}
|
|
61
62
|
d.serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
62
63
|
return s.clearBinding(d, property.name, this.getPropertyTarget(d, property));
|
|
63
64
|
});
|
|
64
65
|
this._notifyChangedProperty(d, property, undefined);
|
|
65
66
|
}
|
|
67
|
+
cg.commit();
|
|
66
68
|
}
|
|
67
69
|
isSet(designItems, property) {
|
|
68
70
|
let all = true;
|
|
69
71
|
let some = false;
|
|
70
72
|
if (designItems != null && designItems.length !== 0) {
|
|
71
|
-
let attributeName =
|
|
73
|
+
let attributeName = property.attributeName;
|
|
74
|
+
if (!attributeName)
|
|
75
|
+
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
72
76
|
designItems.forEach((x) => {
|
|
73
|
-
let has =
|
|
77
|
+
let has = false;
|
|
78
|
+
if (property.propertyType == PropertyType.cssValue)
|
|
79
|
+
has = x.styles.has(property.name);
|
|
80
|
+
else
|
|
81
|
+
has = x.attributes.has(attributeName);
|
|
74
82
|
all = all && has;
|
|
75
83
|
some = some || has;
|
|
76
84
|
});
|
|
77
|
-
//
|
|
85
|
+
//todo: optimize perf, do not call bindings service for each property.
|
|
78
86
|
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
79
87
|
return s.getBindings(designItems[0]);
|
|
80
88
|
});
|
|
81
|
-
if (
|
|
82
|
-
|
|
89
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
90
|
+
if (bindings && bindings.find(x => x.target == BindingTarget.css && x.targetName == property.name))
|
|
91
|
+
return ValueType.bound;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
if (bindings && bindings.find(x => x.target == BindingTarget.property && x.targetName == property.name))
|
|
95
|
+
return ValueType.bound;
|
|
96
|
+
}
|
|
83
97
|
}
|
|
84
98
|
else
|
|
85
99
|
return ValueType.none;
|
|
86
100
|
return all ? ValueType.all : some ? ValueType.some : ValueType.none;
|
|
87
101
|
}
|
|
102
|
+
getValue(designItems, property) {
|
|
103
|
+
if (designItems != null && designItems.length !== 0) {
|
|
104
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
105
|
+
let lastValue = designItems[0].styles.get(property.name);
|
|
106
|
+
for (const x of designItems) {
|
|
107
|
+
let value = x.styles.get(property.name);
|
|
108
|
+
if (value != lastValue) {
|
|
109
|
+
lastValue = null;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return lastValue;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
let attributeName = property.attributeName;
|
|
117
|
+
if (!attributeName)
|
|
118
|
+
attributeName = PropertiesHelper.camelToDashCase(property.name);
|
|
119
|
+
if (property.type == 'boolean')
|
|
120
|
+
return designItems[0].attributes.has(attributeName);
|
|
121
|
+
let lastValue = designItems[0].attributes.get(attributeName);
|
|
122
|
+
/*
|
|
123
|
+
for (const x of designItems) {
|
|
124
|
+
let value = x.attributes.get(attributeName);
|
|
125
|
+
if (value != lastValue) {
|
|
126
|
+
lastValue = null;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
*/
|
|
131
|
+
return lastValue;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
88
136
|
getBinding(designItems, property) {
|
|
89
137
|
//TODO: optimize perf, do not call bindings service for each property.
|
|
90
138
|
const bindings = designItems[0].serviceContainer.forSomeServicesTillResult('bindingService', (s) => {
|
|
91
139
|
return s.getBindings(designItems[0]);
|
|
92
140
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (property.type == 'boolean')
|
|
99
|
-
return designItems[0].attributes.has(attributeName);
|
|
100
|
-
let lastValue = designItems[0].attributes.get(attributeName);
|
|
101
|
-
/*
|
|
102
|
-
for (const x of designItems) {
|
|
103
|
-
let value = x.attributes.get(attributeName);
|
|
104
|
-
if (value != lastValue) {
|
|
105
|
-
lastValue = null;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
*/
|
|
110
|
-
return lastValue;
|
|
141
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
142
|
+
return bindings.find(x => (x.target == BindingTarget.css) && x.targetName == property.name);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
return bindings.find(x => (x.target == BindingTarget.property || x.target == BindingTarget.attribute) && x.targetName == property.name);
|
|
111
146
|
}
|
|
112
|
-
return null;
|
|
113
147
|
}
|
|
148
|
+
//todo: optimize perf, call window.getComputedStyle only once per item, and not per property
|
|
114
149
|
getUnsetValue(designItems, property) {
|
|
115
|
-
|
|
150
|
+
if (property.propertyType == PropertyType.cssValue) {
|
|
151
|
+
if (designItems != null && designItems.length !== 0) {
|
|
152
|
+
if (designItems[0].nodeType == NodeType.Element) {
|
|
153
|
+
let v = window.getComputedStyle(designItems[0].element)[property.name];
|
|
154
|
+
return v;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
else
|
|
160
|
+
return property.defaultValue;
|
|
116
161
|
}
|
|
117
162
|
}
|
package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { BindingTarget } from "../../../item/BindingTarget.js";
|
|
|
2
2
|
import { IDesignItem } from "../../../item/IDesignItem.js";
|
|
3
3
|
import { IPropertiesService } from "../IPropertiesService.js";
|
|
4
4
|
import { IProperty } from "../IProperty.js";
|
|
5
|
-
import {
|
|
6
|
-
export declare class WebcomponentManifestPropertiesService extends
|
|
5
|
+
import { AbstractPropertiesService } from "./AbstractPropertiesService.js";
|
|
6
|
+
export declare class WebcomponentManifestPropertiesService extends AbstractPropertiesService implements IPropertiesService {
|
|
7
|
+
listNeedsRefresh(designItem: IDesignItem): boolean;
|
|
7
8
|
private _name;
|
|
8
9
|
get name(): string;
|
|
9
10
|
private _propertiesList;
|
package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { BindingTarget } from "../../../item/BindingTarget.js";
|
|
2
2
|
import { PropertyType } from "../PropertyType.js";
|
|
3
|
-
import {
|
|
4
|
-
export class WebcomponentManifestPropertiesService extends
|
|
3
|
+
import { AbstractPropertiesService } from "./AbstractPropertiesService.js";
|
|
4
|
+
export class WebcomponentManifestPropertiesService extends AbstractPropertiesService {
|
|
5
|
+
listNeedsRefresh(designItem) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
5
8
|
_name;
|
|
6
9
|
get name() { return this._name; }
|
|
7
10
|
_propertiesList;
|
|
@@ -2,16 +2,23 @@ import { IDesignItem } from "../../../../item/IDesignItem";
|
|
|
2
2
|
import { IDesignerCanvas } from "../../IDesignerCanvas";
|
|
3
3
|
import { AbstractExtension } from "../AbstractExtension.js";
|
|
4
4
|
import { IExtensionManager } from "../IExtensionManger";
|
|
5
|
-
export declare
|
|
5
|
+
export declare type handlesPointerEvent = {
|
|
6
|
+
handlesPointerEvent(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare class EditTextExtension extends AbstractExtension implements handlesPointerEvent {
|
|
9
|
+
private static template;
|
|
6
10
|
private _contentEditedBound;
|
|
7
11
|
private _blurBound;
|
|
8
|
-
private static template;
|
|
9
12
|
private _blurTimeout;
|
|
13
|
+
private _foreignObject;
|
|
14
|
+
private _focusBound;
|
|
10
15
|
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
11
16
|
extend(): void;
|
|
12
17
|
refresh(): void;
|
|
13
18
|
dispose(): void;
|
|
19
|
+
handlesPointerEvent(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): boolean;
|
|
14
20
|
_contentEdited(): void;
|
|
15
21
|
_blur(): void;
|
|
22
|
+
_focus(): void;
|
|
16
23
|
_formatSelection(type: string): void;
|
|
17
24
|
}
|