@node-projects/web-component-designer 0.1.93 → 0.1.95
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 +3 -0
- package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +28 -0
- package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +1 -1
- package/dist/elements/services/propertiesService/services/CssCustomPropertiesService.js +1 -1
- package/dist/elements/services/propertiesService/services/CssPropertiesService.js +1 -1
- package/dist/elements/services/propertiesService/services/ListPropertiesService.d.ts +1 -1
- package/dist/elements/services/propertiesService/services/ListPropertiesService.js +2 -2
- package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts +1 -1
- package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js +2 -2
- package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +1 -0
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -0
- package/dist/elements/widgets/designerView/designerCanvas.js +6 -0
- package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +5 -1
- package/package.json +1 -1
|
@@ -6,6 +6,8 @@ import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
|
6
6
|
import { IBinding } from '../../../item/IBinding.js';
|
|
7
7
|
import { IPropertyGroup } from '../IPropertyGroup.js';
|
|
8
8
|
export declare abstract class AbstractPropertiesService implements IPropertiesService {
|
|
9
|
+
constructor(recreateElementsOnPropertyChange?: boolean);
|
|
10
|
+
protected _recreateElementsOnPropertyChange: boolean;
|
|
9
11
|
private static _stylesCache;
|
|
10
12
|
private _cssCacheClearTimer;
|
|
11
13
|
private static _bindingsCache;
|
|
@@ -22,4 +24,5 @@ export declare abstract class AbstractPropertiesService implements IPropertiesSe
|
|
|
22
24
|
getValue(designItems: IDesignItem[], property: IProperty): string | boolean;
|
|
23
25
|
getBinding(designItems: IDesignItem[], property: IProperty): IBinding;
|
|
24
26
|
getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
|
|
27
|
+
protected static recreateElements(service: IPropertiesService, designItems: IDesignItem[]): void;
|
|
25
28
|
}
|
|
@@ -3,7 +3,12 @@ import { PropertiesHelper } from './PropertiesHelper.js';
|
|
|
3
3
|
import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
4
4
|
import { PropertyType } from '../PropertyType.js';
|
|
5
5
|
import { NodeType } from '../../../item/NodeType.js';
|
|
6
|
+
import { newElementFromString } from '../../../helper/ElementHelper.js';
|
|
6
7
|
export class AbstractPropertiesService {
|
|
8
|
+
constructor(recreateElementsOnPropertyChange) {
|
|
9
|
+
this._recreateElementsOnPropertyChange = recreateElementsOnPropertyChange;
|
|
10
|
+
}
|
|
11
|
+
_recreateElementsOnPropertyChange = false;
|
|
7
12
|
static _stylesCache = new Map;
|
|
8
13
|
_cssCacheClearTimer;
|
|
9
14
|
static _bindingsCache = new Map;
|
|
@@ -64,6 +69,8 @@ export class AbstractPropertiesService {
|
|
|
64
69
|
this._notifyChangedProperty(d, property, value);
|
|
65
70
|
}
|
|
66
71
|
cg.commit();
|
|
72
|
+
if (this._recreateElementsOnPropertyChange)
|
|
73
|
+
AbstractPropertiesService.recreateElements(this, designItems);
|
|
67
74
|
}
|
|
68
75
|
getPropertyTarget(designItem, property) {
|
|
69
76
|
if (property.propertyType == PropertyType.attribute)
|
|
@@ -94,6 +101,8 @@ export class AbstractPropertiesService {
|
|
|
94
101
|
this._notifyChangedProperty(d, property, undefined);
|
|
95
102
|
}
|
|
96
103
|
cg.commit();
|
|
104
|
+
if (this._recreateElementsOnPropertyChange)
|
|
105
|
+
AbstractPropertiesService.recreateElements(this, designItems);
|
|
97
106
|
}
|
|
98
107
|
isSet(designItems, property) {
|
|
99
108
|
let all = true;
|
|
@@ -233,4 +242,23 @@ export class AbstractPropertiesService {
|
|
|
233
242
|
else
|
|
234
243
|
return property.defaultValue;
|
|
235
244
|
}
|
|
245
|
+
static recreateElements(service, designItems) {
|
|
246
|
+
for (let d of designItems) {
|
|
247
|
+
if (!service.isHandledElement(d))
|
|
248
|
+
continue;
|
|
249
|
+
let txt = '<' + d.name + ' ';
|
|
250
|
+
for (let a of d.element.attributes) {
|
|
251
|
+
txt += a.name + '="' + a.value.replaceAll('"', '"') + '" ';
|
|
252
|
+
}
|
|
253
|
+
txt += '></' + d.name + '>';
|
|
254
|
+
let element = newElementFromString(txt); // some custom elements only parse attributes during constructor call
|
|
255
|
+
for (let c of [...d.element.childNodes])
|
|
256
|
+
element.appendChild(c);
|
|
257
|
+
element.style.pointerEvents = 'auto';
|
|
258
|
+
d.node.insertAdjacentElement('beforebegin', element);
|
|
259
|
+
if (d.node.parentNode)
|
|
260
|
+
d.node.parentNode.removeChild(d.node);
|
|
261
|
+
d.replaceNode(element);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
236
264
|
}
|
|
@@ -6,7 +6,7 @@ import { BindingTarget } from '../../../item/BindingTarget.js';
|
|
|
6
6
|
export class CssCustomPropertiesService extends CommonPropertiesService {
|
|
7
7
|
removeInheritedCustomProperties;
|
|
8
8
|
constructor(removeInheritedCustomProperties = true) {
|
|
9
|
-
super();
|
|
9
|
+
super(false);
|
|
10
10
|
this.name = 'customProperties';
|
|
11
11
|
this.removeInheritedCustomProperties = removeInheritedCustomProperties;
|
|
12
12
|
}
|
|
@@ -8,7 +8,7 @@ export declare class ListPropertiesService extends AbstractPropertiesService {
|
|
|
8
8
|
getRefreshMode(designItem: IDesignItem): RefreshMode;
|
|
9
9
|
name: string;
|
|
10
10
|
private _propertys;
|
|
11
|
-
constructor(propertyDefinitions: IJsonPropertyDefinitions);
|
|
11
|
+
constructor(propertyDefinitions: IJsonPropertyDefinitions, recreateElementsOnPropertyChange?: boolean);
|
|
12
12
|
isHandledElement(designItem: IDesignItem): boolean;
|
|
13
13
|
protected _notifyChangedProperty(designItem: IDesignItem, property: IProperty, value: any): void;
|
|
14
14
|
getProperties(designItem: IDesignItem): IProperty[] | IPropertyGroup[];
|
|
@@ -7,8 +7,8 @@ export class ListPropertiesService extends AbstractPropertiesService {
|
|
|
7
7
|
}
|
|
8
8
|
name = "list";
|
|
9
9
|
_propertys = new Map();
|
|
10
|
-
constructor(propertyDefinitions) {
|
|
11
|
-
super();
|
|
10
|
+
constructor(propertyDefinitions, recreateElementsOnPropertyChange) {
|
|
11
|
+
super(recreateElementsOnPropertyChange);
|
|
12
12
|
for (let e in propertyDefinitions) {
|
|
13
13
|
let parr = [];
|
|
14
14
|
this._propertys.set(e, parr);
|
package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare class WebcomponentManifestPropertiesService extends AbstractPrope
|
|
|
9
9
|
private _name;
|
|
10
10
|
get name(): string;
|
|
11
11
|
private _propertiesList;
|
|
12
|
-
constructor(name: string, manifest: any);
|
|
12
|
+
constructor(name: string, manifest: any, recreateElementsOnPropertyChange?: boolean);
|
|
13
13
|
private _parseManifest;
|
|
14
14
|
static manifestClassPropertyTypeToEditorPropertyType(type: string, editor: string): [type: string, values?: string[]];
|
|
15
15
|
isHandledElement(designItem: IDesignItem): boolean;
|
package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js
CHANGED
|
@@ -9,8 +9,8 @@ export class WebcomponentManifestPropertiesService extends AbstractPropertiesSer
|
|
|
9
9
|
_name;
|
|
10
10
|
get name() { return this._name; }
|
|
11
11
|
_propertiesList;
|
|
12
|
-
constructor(name, manifest) {
|
|
13
|
-
super();
|
|
12
|
+
constructor(name, manifest, recreateElementsOnPropertyChange) {
|
|
13
|
+
super(recreateElementsOnPropertyChange);
|
|
14
14
|
this._name = name;
|
|
15
15
|
this._parseManifest(manifest);
|
|
16
16
|
}
|
|
@@ -32,6 +32,7 @@ export interface IDesignerCanvas extends IPlacementView, IUiCommandHandler {
|
|
|
32
32
|
canvasOffset: IPoint;
|
|
33
33
|
canvas: HTMLElement;
|
|
34
34
|
additionalStyles: CSSStyleSheet[];
|
|
35
|
+
ignoreEvent(event: Event): any;
|
|
35
36
|
initialize(serviceContainer: ServiceContainer): any;
|
|
36
37
|
getNormalizedEventCoordinates(event: MouseEvent): IPoint;
|
|
37
38
|
getViewportCoordinates(event: MouseEvent): IPoint;
|
|
@@ -63,6 +63,7 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
63
63
|
extensionManager: IExtensionManager;
|
|
64
64
|
private _pointerextensions;
|
|
65
65
|
private _lastCopiedPrimaryItem;
|
|
66
|
+
private _ignoreEvent;
|
|
66
67
|
constructor();
|
|
67
68
|
get designerWidth(): string;
|
|
68
69
|
set designerWidth(value: string);
|
|
@@ -74,6 +75,7 @@ export declare class DesignerCanvas extends BaseCustomWebComponentLazyAppend imp
|
|
|
74
75
|
set additionalStyles(value: CSSStyleSheet[]);
|
|
75
76
|
get additionalStyles(): CSSStyleSheet[];
|
|
76
77
|
private applyAllStyles;
|
|
78
|
+
ignoreEvent(event: Event): void;
|
|
77
79
|
executeCommand(command: IUiCommand): Promise<void>;
|
|
78
80
|
disableBackgroud(): void;
|
|
79
81
|
enableBackground(): void;
|
|
@@ -275,6 +275,7 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
275
275
|
extensionManager;
|
|
276
276
|
_pointerextensions;
|
|
277
277
|
_lastCopiedPrimaryItem;
|
|
278
|
+
_ignoreEvent;
|
|
278
279
|
constructor() {
|
|
279
280
|
super();
|
|
280
281
|
this._restoreCachedInititalValues();
|
|
@@ -342,6 +343,9 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
342
343
|
}
|
|
343
344
|
this._canvasShadowRoot.adoptedStyleSheets = styles;
|
|
344
345
|
}
|
|
346
|
+
ignoreEvent(event) {
|
|
347
|
+
this._ignoreEvent = event;
|
|
348
|
+
}
|
|
345
349
|
/* --- start IUiCommandHandler --- */
|
|
346
350
|
async executeCommand(command) {
|
|
347
351
|
const modelCommandService = this.serviceContainer.modelCommandService;
|
|
@@ -1026,6 +1030,8 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
1026
1030
|
}
|
|
1027
1031
|
}
|
|
1028
1032
|
_pointerEventHandler(event, forceElement = null) {
|
|
1033
|
+
if (this._ignoreEvent === event)
|
|
1034
|
+
return;
|
|
1029
1035
|
if (!this.serviceContainer)
|
|
1030
1036
|
return;
|
|
1031
1037
|
if (this._touchGestureHelper.multitouchEventActive)
|
|
@@ -47,7 +47,11 @@ export class EditTextExtension extends AbstractExtension {
|
|
|
47
47
|
let itemRect = this.extendedItem.element.getBoundingClientRect();
|
|
48
48
|
const elements = EditTextExtension.template.content.cloneNode(true);
|
|
49
49
|
FontPropertyEditor.addFontsToSelect(elements.querySelector('#fontFamily'));
|
|
50
|
-
elements.querySelectorAll('button').forEach(x => x.onpointerdown = () =>
|
|
50
|
+
elements.querySelectorAll('button').forEach(x => x.onpointerdown = (e) => {
|
|
51
|
+
this.designerCanvas.ignoreEvent(e);
|
|
52
|
+
this._formatSelection(x.dataset['command'], x.dataset['commandParameter']);
|
|
53
|
+
});
|
|
54
|
+
elements.querySelectorAll('select').forEach(x => x.onpointerdown = (e) => this.designerCanvas.ignoreEvent(e));
|
|
51
55
|
elements.querySelectorAll('select').forEach(x => x.onchange = () => this._formatSelection(x.dataset['command'], x.value));
|
|
52
56
|
//Button overlay
|
|
53
57
|
const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
|