@node-projects/web-component-designer 0.0.279 → 0.0.281
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/commandHandling/CommandType.d.ts +2 -0
- package/dist/commandHandling/CommandType.js +2 -0
- package/dist/elements/helper/TransformHelper.d.ts +0 -1
- package/dist/elements/helper/TransformHelper.js +0 -3
- package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +20 -0
- package/dist/elements/widgets/bindableObjectsBrowser/bindable-objects-browser.d.ts +5 -1
- package/dist/elements/widgets/bindableObjectsBrowser/bindable-objects-browser.js +32 -2
- package/dist/elements/widgets/codeView/code-view-monaco.js +5 -3
- package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +2 -2
- package/package.json +1 -1
- package/_build/1_UpdatePackages.bat +0 -3
- package/_build/2_Compile.bat +0 -13
- package/_build/3_InstallTestComponents.bat +0 -6
- package/_build/RunPolymerWebserver.bat +0 -3
|
@@ -9,6 +9,8 @@ export declare enum CommandType {
|
|
|
9
9
|
'holdRedo' = "holdRedo",
|
|
10
10
|
'rotateCounterClockwise' = "rotateCounterClockwise",
|
|
11
11
|
'rotateClockwise' = "rotateClockwise",
|
|
12
|
+
'mirrorHorizontal' = "mirrorHorizontal",
|
|
13
|
+
'mirrorVertical' = "mirrorVertical",
|
|
12
14
|
'selectAll' = "selectAll",
|
|
13
15
|
'moveToFront' = "moveToFront",
|
|
14
16
|
'moveForward' = "moveForward",
|
|
@@ -10,6 +10,8 @@ export var CommandType;
|
|
|
10
10
|
CommandType["holdRedo"] = "holdRedo";
|
|
11
11
|
CommandType["rotateCounterClockwise"] = "rotateCounterClockwise";
|
|
12
12
|
CommandType["rotateClockwise"] = "rotateClockwise";
|
|
13
|
+
CommandType["mirrorHorizontal"] = "mirrorHorizontal";
|
|
14
|
+
CommandType["mirrorVertical"] = "mirrorVertical";
|
|
13
15
|
CommandType["selectAll"] = "selectAll";
|
|
14
16
|
CommandType["moveToFront"] = "moveToFront";
|
|
15
17
|
CommandType["moveForward"] = "moveForward";
|
|
@@ -2,7 +2,6 @@ import { IPoint } from "../../interfaces/IPoint.js";
|
|
|
2
2
|
import { IDesignerCanvas } from "../widgets/designerView/IDesignerCanvas.js";
|
|
3
3
|
export declare function getElementCombinedTransform(element: HTMLElement): DOMMatrix;
|
|
4
4
|
export declare function combineTransforms(element: HTMLElement, actualTransforms: string, requestedTransformation: string): void;
|
|
5
|
-
export declare function getDomMatrix(element: HTMLElement): DOMMatrix;
|
|
6
5
|
export declare function transformPointByInverseMatrix(point: DOMPoint, matrix: DOMMatrix): DOMPoint;
|
|
7
6
|
export declare function getRotationMatrix3d(axisOfRotation: 'x' | 'y' | 'z' | 'X' | 'Y' | 'Z', angle: number): any[];
|
|
8
7
|
export declare function rotateElementByMatrix3d(element: HTMLElement, matrix: number[]): void;
|
|
@@ -33,9 +33,6 @@ export function combineTransforms(element, actualTransforms, requestedTransforma
|
|
|
33
33
|
const newTransformationMatrix = requestedTransformationMatrix.multiply(actualTransformationMatrix);
|
|
34
34
|
element.style.transform = newTransformationMatrix.toString();
|
|
35
35
|
}
|
|
36
|
-
export function getDomMatrix(element) {
|
|
37
|
-
return new DOMMatrix(window.getComputedStyle(element).transform);
|
|
38
|
-
}
|
|
39
36
|
export function transformPointByInverseMatrix(point, matrix) {
|
|
40
37
|
const inverse = matrix.inverse();
|
|
41
38
|
//fix chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1395645
|
|
@@ -17,6 +17,11 @@ export class DefaultModelCommandService {
|
|
|
17
17
|
command.type == CommandType.unifyHeight ||
|
|
18
18
|
command.type == CommandType.unifyWidth)
|
|
19
19
|
return designerCanvas.instanceServiceContainer.selectionService.selectedElements.length > 1;
|
|
20
|
+
if (command.type == CommandType.rotateCounterClockwise ||
|
|
21
|
+
command.type == CommandType.rotateClockwise ||
|
|
22
|
+
command.type == CommandType.mirrorHorizontal ||
|
|
23
|
+
command.type == CommandType.mirrorVertical)
|
|
24
|
+
return designerCanvas.instanceServiceContainer.selectionService.selectedElements.length > 0;
|
|
20
25
|
return null;
|
|
21
26
|
}
|
|
22
27
|
async executeCommand(designerCanvas, command) {
|
|
@@ -120,9 +125,24 @@ export class DefaultModelCommandService {
|
|
|
120
125
|
}
|
|
121
126
|
grp.commit();
|
|
122
127
|
}
|
|
128
|
+
else if (command.type == CommandType.mirrorHorizontal) {
|
|
129
|
+
const grp = designerCanvas.instanceServiceContainer.selectionService.primarySelection.openGroup('mirrorHorizontal');
|
|
130
|
+
for (let s of designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
131
|
+
s.setStyle('transform', 'scaleX(-1)');
|
|
132
|
+
}
|
|
133
|
+
grp.commit();
|
|
134
|
+
}
|
|
135
|
+
else if (command.type == CommandType.mirrorVertical) {
|
|
136
|
+
const grp = designerCanvas.instanceServiceContainer.selectionService.primarySelection.openGroup('mirrorHorizontal');
|
|
137
|
+
for (let s of designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
138
|
+
s.setStyle('transform', 'scaleY(-1)');
|
|
139
|
+
}
|
|
140
|
+
grp.commit();
|
|
141
|
+
}
|
|
123
142
|
else
|
|
124
143
|
return null;
|
|
125
144
|
designerCanvas.instanceServiceContainer.selectionService.setSelectedElements(selection);
|
|
126
145
|
return true;
|
|
127
146
|
}
|
|
128
147
|
}
|
|
148
|
+
//TODO: combine transforms, could be easy, add new transform, get the matrix and convert back to simple ones (if possible)
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { BaseCustomWebComponentLazyAppend } from '@node-projects/base-custom-webcomponent';
|
|
1
|
+
import { BaseCustomWebComponentLazyAppend, TypedEvent } from '@node-projects/base-custom-webcomponent';
|
|
2
|
+
import { IBindableObject } from '../../services/bindableObjectsService/IBindableObject.js';
|
|
2
3
|
import { ServiceContainer } from '../../services/ServiceContainer.js';
|
|
3
4
|
export declare class BindableObjectsBrowser extends BaseCustomWebComponentLazyAppend {
|
|
4
5
|
private _treeDiv;
|
|
5
6
|
private _tree;
|
|
7
|
+
selectedObject: IBindableObject<any>;
|
|
8
|
+
objectDoubleclicked: TypedEvent<void>;
|
|
6
9
|
static readonly style: CSSStyleSheet;
|
|
7
10
|
constructor();
|
|
8
11
|
initialize(serviceContainer: ServiceContainer): Promise<void>;
|
|
12
|
+
private deselectNodes;
|
|
9
13
|
private lazyLoad;
|
|
10
14
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { BaseCustomWebComponentLazyAppend, css } from '@node-projects/base-custom-webcomponent';
|
|
1
|
+
import { BaseCustomWebComponentLazyAppend, TypedEvent, css } from '@node-projects/base-custom-webcomponent';
|
|
2
2
|
import { dragDropFormatNameBindingObject } from '../../../Constants.js';
|
|
3
3
|
export class BindableObjectsBrowser extends BaseCustomWebComponentLazyAppend {
|
|
4
4
|
_treeDiv;
|
|
5
5
|
_tree;
|
|
6
|
+
selectedObject;
|
|
7
|
+
objectDoubleclicked = new TypedEvent;
|
|
6
8
|
static style = css `
|
|
7
9
|
span.drag-source {
|
|
8
10
|
border: 1px solid grey;
|
|
@@ -45,10 +47,31 @@ export class BindableObjectsBrowser extends BaseCustomWebComponentLazyAppend {
|
|
|
45
47
|
$(this._treeDiv).fancytree({
|
|
46
48
|
debugLevel: 0,
|
|
47
49
|
icon: false,
|
|
48
|
-
extensions: ['dnd5'],
|
|
50
|
+
extensions: ['dnd5', 'filter'],
|
|
49
51
|
quicksearch: true,
|
|
50
52
|
source: [],
|
|
51
53
|
lazyLoad: this.lazyLoad,
|
|
54
|
+
dblclick: (e) => {
|
|
55
|
+
this.objectDoubleclicked.emit();
|
|
56
|
+
return true;
|
|
57
|
+
},
|
|
58
|
+
activate: (event, data) => {
|
|
59
|
+
this.deselectNodes();
|
|
60
|
+
let node = data.node;
|
|
61
|
+
this.selectedObject = node.data.bindable;
|
|
62
|
+
},
|
|
63
|
+
filter: {
|
|
64
|
+
autoApply: true,
|
|
65
|
+
autoExpand: false,
|
|
66
|
+
counter: true,
|
|
67
|
+
fuzzy: false,
|
|
68
|
+
hideExpandedCounter: true,
|
|
69
|
+
hideExpanders: false,
|
|
70
|
+
highlight: true,
|
|
71
|
+
leavesOnly: false,
|
|
72
|
+
nodata: true,
|
|
73
|
+
mode: "dimm" // Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
|
|
74
|
+
},
|
|
52
75
|
dnd5: {
|
|
53
76
|
dropMarkerParent: this.shadowRoot,
|
|
54
77
|
preventRecursion: true,
|
|
@@ -85,6 +108,13 @@ export class BindableObjectsBrowser extends BaseCustomWebComponentLazyAppend {
|
|
|
85
108
|
rootNode.addNode(newNode);
|
|
86
109
|
}
|
|
87
110
|
}
|
|
111
|
+
deselectNodes() {
|
|
112
|
+
let nodes = this._tree.getSelectedNodes();
|
|
113
|
+
nodes.forEach(node => {
|
|
114
|
+
node.setSelected(false);
|
|
115
|
+
node.setActive(false);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
88
118
|
lazyLoad(event, data) {
|
|
89
119
|
data.result = new Promise(async (resolve) => {
|
|
90
120
|
const service = data.node.data.service;
|
|
@@ -186,9 +186,11 @@ export class CodeViewMonaco extends BaseCustomWebComponentLazyAppend {
|
|
|
186
186
|
let model = this._monacoEditor.getModel();
|
|
187
187
|
let point1 = model.getPositionAt(position.start);
|
|
188
188
|
let point2 = model.getPositionAt(position.start + position.length);
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
this._monacoEditor.setSelection({ startLineNumber: point1.lineNumber, startColumn: point1.column, endLineNumber: point2.lineNumber, endColumn: point2.column });
|
|
191
|
+
//@ts-ignore
|
|
192
|
+
this._monacoEditor.revealRangeInCenterIfOutsideViewport(new monaco.Range(point1.lineNumber, point1.column, point2.lineNumber, point2.column), 1);
|
|
193
|
+
}, 50);
|
|
192
194
|
}
|
|
193
195
|
}
|
|
194
196
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventNames } from '../../../../enums/EventNames.js';
|
|
2
2
|
import { getContentBoxContentOffsets } from '../../../helper/ElementHelper.js';
|
|
3
|
-
import { transformPointByInverseMatrix,
|
|
3
|
+
import { transformPointByInverseMatrix, getDesignerCanvasNormalizedTransformedCornerDOMPoints, normalizeToAbsolutePosition, getElementCombinedTransform } from "../../../helper/TransformHelper.js";
|
|
4
4
|
import { AbstractExtension } from './AbstractExtension.js';
|
|
5
5
|
export class ResizeExtension extends AbstractExtension {
|
|
6
6
|
resizeAllSelected;
|
|
@@ -161,7 +161,7 @@ export class ResizeExtension extends AbstractExtension {
|
|
|
161
161
|
const diff = containerService.placePoint(event, this.designerCanvas, this.extendedItem.parent, this._initialPoint, { x: 0, y: 0 }, currentPoint, this.designerCanvas.instanceServiceContainer.selectionService.selectedElements);
|
|
162
162
|
let trackX = Math.round(diff.x - this._initialPoint.x - this._offsetPoint.x);
|
|
163
163
|
let trackY = Math.round(diff.y - this._initialPoint.y - this._offsetPoint.y);
|
|
164
|
-
let matrix =
|
|
164
|
+
let matrix = getElementCombinedTransform(this.extendedItem.element);
|
|
165
165
|
let transformedTrack = transformPointByInverseMatrix(new DOMPoint(trackX, trackY, 0, 0), matrix);
|
|
166
166
|
let deltaX = transformedTrack.x;
|
|
167
167
|
let deltaY = transformedTrack.y;
|
package/package.json
CHANGED
package/_build/2_Compile.bat
DELETED