@node-projects/web-component-designer 0.0.149 → 0.0.151
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/helper/ElementHelper.d.ts +5 -0
- package/dist/elements/helper/ElementHelper.js +20 -0
- package/dist/elements/helper/GridHelper.js +2 -2
- package/dist/elements/helper/LayoutHelper.js +8 -2
- package/dist/elements/helper/TransformHelper.d.ts +17 -3
- package/dist/elements/helper/TransformHelper.js +204 -13
- package/dist/elements/services/DefaultServiceBootstrap.js +8 -1
- package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +2 -1
- package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +1 -0
- package/dist/elements/services/placementService/DefaultPlacementService.d.ts +1 -0
- package/dist/elements/services/placementService/DefaultPlacementService.js +24 -8
- package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +1 -0
- package/dist/elements/services/placementService/FlexBoxPlacementService.js +2 -0
- package/dist/elements/services/placementService/GridPlacementService.d.ts +1 -0
- package/dist/elements/services/placementService/GridPlacementService.js +2 -0
- package/dist/elements/services/placementService/IPlacementService.d.ts +1 -0
- package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +4 -0
- package/dist/elements/widgets/designerView/IPlacementView.d.ts +0 -1
- package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -2
- package/dist/elements/widgets/designerView/designerCanvas.js +19 -9
- package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.d.ts +2 -0
- package/dist/elements/widgets/designerView/extensions/AbstractExtensionBase.js +8 -0
- package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +1 -0
- package/dist/elements/widgets/designerView/extensions/ExtensionType.d.ts +2 -1
- package/dist/elements/widgets/designerView/extensions/ExtensionType.js +1 -0
- package/dist/elements/widgets/designerView/extensions/FlexboxExtension.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js +20 -0
- package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.js +16 -0
- package/dist/elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js +3 -2
- package/dist/elements/widgets/designerView/extensions/GridExtension copy.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/GridExtension copy.js +30 -0
- package/dist/elements/widgets/designerView/extensions/GridExtensionProvider copy.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/GridExtensionProvider copy.js +18 -0
- package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.js +2 -1
- package/dist/elements/widgets/designerView/extensions/MouseOverExtension.d.ts +4 -1
- package/dist/elements/widgets/designerView/extensions/MouseOverExtension.js +14 -6
- package/dist/elements/widgets/designerView/extensions/PlacementExtension.d.ts +11 -0
- package/dist/elements/widgets/designerView/extensions/PlacementExtension.js +22 -0
- package/dist/elements/widgets/designerView/extensions/PlacementExtensionProvider.d.ts +10 -0
- package/dist/elements/widgets/designerView/extensions/PlacementExtensionProvider.js +13 -0
- package/dist/elements/widgets/designerView/extensions/ResizeExtension.d.ts +3 -1
- package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +201 -41
- package/dist/elements/widgets/designerView/extensions/RotateExtension.d.ts +8 -2
- package/dist/elements/widgets/designerView/extensions/RotateExtension.js +77 -43
- package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js +1 -0
- package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.d.ts +4 -1
- package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +14 -9
- package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +30 -20
- package/dist/elements/widgets/designerView/overlayLayerView.d.ts +1 -0
- package/dist/elements/widgets/designerView/overlayLayerView.js +10 -0
- package/dist/elements/widgets/designerView/tools/PointerTool.d.ts +1 -0
- package/dist/elements/widgets/designerView/tools/PointerTool.js +16 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/interfaces/IPoint3D.d.ts +5 -0
- package/dist/interfaces/IPoint3D.js +1 -0
- package/package.json +1 -1
|
@@ -8,25 +8,39 @@ export class TransformOriginExtension extends AbstractExtension {
|
|
|
8
8
|
super(extensionManager, designerView, extendedItem);
|
|
9
9
|
}
|
|
10
10
|
extend() {
|
|
11
|
-
const rect = this.extendedItem.element
|
|
11
|
+
const rect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
12
12
|
const computed = getComputedStyle(this.extendedItem.element);
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const x = 0;
|
|
14
|
+
const y = 1;
|
|
15
|
+
const to = computed.transformOrigin.split(' '); // This value remains the same regardless of scalefactor
|
|
16
|
+
const toInPercentage = [];
|
|
17
|
+
toInPercentage[0] = parseInt(to[0]) / parseInt(this.extendedItem.element.style.width); // This value remains the same regardless of scalefactor
|
|
18
|
+
toInPercentage[1] = parseInt(to[1]) / parseInt(this.extendedItem.element.style.height); // This value remains the same regardless of scalefactor
|
|
19
|
+
const toDOMPoint = new DOMPoint(rect.x + toInPercentage[x] * rect.width, rect.y + toInPercentage[y] * rect.height);
|
|
20
|
+
this._circle = this._drawCircle(toDOMPoint.x, toDOMPoint.y, 5 / this.designerCanvas.scaleFactor, 'svg-transform-origin');
|
|
15
21
|
this._circle.style.strokeWidth = (1 / this.designerCanvas.zoomFactor).toString();
|
|
16
|
-
this._circle.style
|
|
17
|
-
this._circle2 = this._drawCircle(
|
|
22
|
+
this._circle.setAttribute('style', 'cursor: pointer');
|
|
23
|
+
this._circle2 = this._drawCircle(toDOMPoint.x, toDOMPoint.y, 1 / this.designerCanvas.scaleFactor, 'svg-transform-origin');
|
|
18
24
|
this._circle2.style.strokeWidth = (1 / this.designerCanvas.zoomFactor).toString();
|
|
19
|
-
this._circle2.style
|
|
25
|
+
this._circle2.setAttribute('style', 'pointer-events: none');
|
|
20
26
|
this._circle.addEventListener(EventNames.PointerDown, event => this.pointerEvent(event));
|
|
21
27
|
this._circle.addEventListener(EventNames.PointerMove, event => this.pointerEvent(event));
|
|
22
28
|
this._circle.addEventListener(EventNames.PointerUp, event => this.pointerEvent(event)); //TODO: -> assign to window
|
|
29
|
+
if (this.extendedItem.styles.get('transform-origin') == null || this.extendedItem.styles.get('transform-origin') == '') {
|
|
30
|
+
this.extendedItem.setStyle('transform-origin', this._circle.getAttribute('cx') + ' ' + this._circle.getAttribute('cy'));
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
33
|
pointerEvent(event) {
|
|
25
34
|
event.stopPropagation();
|
|
26
|
-
const rect = this.extendedItem.element
|
|
27
|
-
const rectNr = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element); //.getBoundingClientRect();
|
|
35
|
+
const rect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
28
36
|
const computed = getComputedStyle(this.extendedItem.element);
|
|
29
|
-
const
|
|
37
|
+
const x = 0;
|
|
38
|
+
const y = 1;
|
|
39
|
+
const to = computed.transformOrigin.split(' '); // This value remains the same regardless of scalefactor
|
|
40
|
+
const toInPercentage = [];
|
|
41
|
+
toInPercentage[0] = parseInt(to[0]) / parseInt(this.extendedItem.element.style.width); // This value remains the same regardless of scalefactor
|
|
42
|
+
toInPercentage[1] = parseInt(to[1]) / parseInt(this.extendedItem.element.style.height); // This value remains the same regardless of scalefactor
|
|
43
|
+
const toDOMPoint = new DOMPoint(rect.x + toInPercentage[x] * rect.width, rect.y + toInPercentage[y] * rect.height);
|
|
30
44
|
const normalized = this.designerCanvas.getNormalizedEventCoordinates(event);
|
|
31
45
|
switch (event.type) {
|
|
32
46
|
case EventNames.PointerDown:
|
|
@@ -37,10 +51,10 @@ export class TransformOriginExtension extends AbstractExtension {
|
|
|
37
51
|
if (this._startPos && event.buttons > 0) {
|
|
38
52
|
const dx = normalized.x - this._startPos.x;
|
|
39
53
|
const dy = normalized.y - this._startPos.y;
|
|
40
|
-
this._circle.setAttribute('cx', (
|
|
41
|
-
this._circle.setAttribute('cy', (
|
|
42
|
-
this._circle2.setAttribute('cx', (
|
|
43
|
-
this._circle2.setAttribute('cy', (
|
|
54
|
+
this._circle.setAttribute('cx', (toDOMPoint.x + dx));
|
|
55
|
+
this._circle.setAttribute('cy', (toDOMPoint.y + dy));
|
|
56
|
+
this._circle2.setAttribute('cx', (toDOMPoint.x + dx));
|
|
57
|
+
this._circle2.setAttribute('cy', (toDOMPoint.y + dy));
|
|
44
58
|
}
|
|
45
59
|
break;
|
|
46
60
|
case EventNames.PointerUp:
|
|
@@ -48,13 +62,9 @@ export class TransformOriginExtension extends AbstractExtension {
|
|
|
48
62
|
if (this._startPos) {
|
|
49
63
|
const dx = normalized.x - this._startPos.x;
|
|
50
64
|
const dy = normalized.y - this._startPos.y;
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const newY = (dy + y);
|
|
55
|
-
const przX = Math.round(newX / rectNr.width * 10000) / 100;
|
|
56
|
-
const przY = Math.round(newY / rectNr.height * 10000) / 100;
|
|
57
|
-
this.extendedItem.setStyle('transform-origin', przX + '% ' + przY + '%');
|
|
65
|
+
const newX = (dx + parseFloat(to[x]));
|
|
66
|
+
const newY = (dy + parseFloat(to[y]));
|
|
67
|
+
this.extendedItem.setStyle('transform-origin', newX + 'px' + ' ' + newY + 'px');
|
|
58
68
|
this.refresh();
|
|
59
69
|
this._startPos = null;
|
|
60
70
|
}
|
|
@@ -23,6 +23,7 @@ export declare class OverlayLayerView extends BaseCustomWebComponentConstructorA
|
|
|
23
23
|
drawLine(x1: number, y1: number, x2: number, y2: number, className?: string, line?: SVGLineElement, overlayLayer?: OverlayLayer): SVGLineElement;
|
|
24
24
|
drawCircle(x: number, y: number, radius: number, className?: string, circle?: SVGCircleElement, overlayLayer?: OverlayLayer): SVGCircleElement;
|
|
25
25
|
drawRect(x: number, y: number, w: number, h: number, className?: string, rect?: SVGRectElement, overlayLayer?: OverlayLayer): SVGRectElement;
|
|
26
|
+
drawPath(data: string, className?: string, path?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
|
|
26
27
|
drawText(text: string, x: number, y: number, className?: string, textEl?: SVGTextElement, overlayLayer?: OverlayLayer): SVGTextElement;
|
|
27
28
|
drawTextWithBackground(text: string, x: number, y: number, backgroundColor: string, className?: string, existingEls?: [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement], overlayLayer?: OverlayLayer): [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement];
|
|
28
29
|
}
|
|
@@ -135,6 +135,16 @@ export class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
|
|
|
135
135
|
rect.setAttribute('class', className);
|
|
136
136
|
return rect;
|
|
137
137
|
}
|
|
138
|
+
drawPath(data, className, path, overlayLayer) {
|
|
139
|
+
if (!path) {
|
|
140
|
+
path = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
141
|
+
this.addOverlay(path, overlayLayer);
|
|
142
|
+
}
|
|
143
|
+
path.setAttribute('d', data);
|
|
144
|
+
if (className)
|
|
145
|
+
path.setAttribute('class', className);
|
|
146
|
+
return path;
|
|
147
|
+
}
|
|
138
148
|
drawText(text, x, y, className, textEl, overlayLayer) {
|
|
139
149
|
if (!textEl) {
|
|
140
150
|
textEl = document.createElementNS("http://www.w3.org/2000/svg", "text");
|
|
@@ -17,6 +17,8 @@ export class PointerTool {
|
|
|
17
17
|
_dragExtensionItem;
|
|
18
18
|
_moveItemsOffset = { x: 0, y: 0 };
|
|
19
19
|
_initialOffset;
|
|
20
|
+
_started = false;
|
|
21
|
+
;
|
|
20
22
|
_firstTimeInMove;
|
|
21
23
|
_secondTimeInMove;
|
|
22
24
|
_changeGroup;
|
|
@@ -273,6 +275,15 @@ export class PointerTool {
|
|
|
273
275
|
}
|
|
274
276
|
else {
|
|
275
277
|
const cp = { x: currentPoint.x - this._moveItemsOffset.x, y: currentPoint.y - this._moveItemsOffset.y };
|
|
278
|
+
if (!this._started) {
|
|
279
|
+
for (const item of this._actionStartedDesignItems) {
|
|
280
|
+
designerCanvas.extensionManager.removeExtension(item, ExtensionType.Placement);
|
|
281
|
+
designerCanvas.extensionManager.removeExtension(item, ExtensionType.MouseOver);
|
|
282
|
+
designerCanvas.extensionManager.applyExtension(item, ExtensionType.Placement);
|
|
283
|
+
}
|
|
284
|
+
currentContainerService.startPlace(event, designerCanvas, this._actionStartedDesignItem.parent, this._initialPoint, this._initialOffset, cp, this._actionStartedDesignItems);
|
|
285
|
+
this._started = true;
|
|
286
|
+
}
|
|
276
287
|
currentContainerService.place(event, designerCanvas, this._actionStartedDesignItem.parent, this._initialPoint, this._initialOffset, cp, this._actionStartedDesignItems);
|
|
277
288
|
}
|
|
278
289
|
designerCanvas.extensionManager.refreshExtensions(this._actionStartedDesignItems);
|
|
@@ -282,6 +293,7 @@ export class PointerTool {
|
|
|
282
293
|
}
|
|
283
294
|
case EventNames.PointerUp:
|
|
284
295
|
{
|
|
296
|
+
this._started = false;
|
|
285
297
|
if (!this._movedSinceStartedAction || this._actionType == PointerActionType.DragOrSelect) {
|
|
286
298
|
if (this._previousEventName == EventNames.PointerDown && !event.shiftKey && !event.ctrlKey) {
|
|
287
299
|
designerCanvas.instanceServiceContainer.selectionService.setSelectedElements([this._actionStartedDesignItem]);
|
|
@@ -301,6 +313,10 @@ export class PointerTool {
|
|
|
301
313
|
containerService.finishPlace(event, designerCanvas, this._actionStartedDesignItem.parent, this._initialPoint, this._initialOffset, cp, designerCanvas.instanceServiceContainer.selectionService.selectedElements);
|
|
302
314
|
this._changeGroup.commit();
|
|
303
315
|
this._changeGroup = null;
|
|
316
|
+
for (const item of this._actionStartedDesignItems) {
|
|
317
|
+
designerCanvas.extensionManager.applyExtension(item, ExtensionType.MouseOver);
|
|
318
|
+
designerCanvas.extensionManager.removeExtension(item, ExtensionType.Placement);
|
|
319
|
+
}
|
|
304
320
|
}
|
|
305
321
|
designerCanvas.extensionManager.removeExtension(this._dragExtensionItem, ExtensionType.ContainerDrag);
|
|
306
322
|
this._dragExtensionItem = null;
|
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export type { IBindableObjectsService } from "./elements/services/bindableObject
|
|
|
23
23
|
export type { IBindableObjectDragDropService } from "./elements/services/bindableObjectsService/IBindableObjectDragDropService.js";
|
|
24
24
|
export type { IBindingService } from "./elements/services/bindingsService/IBindingService.js";
|
|
25
25
|
export * from "./elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js";
|
|
26
|
-
export * from "./elements/services/bindingsService/SpecialTagsBindingService.js";
|
|
27
26
|
export * from "./elements/services/placementService/DefaultPlacementService.js";
|
|
28
27
|
export * from "./elements/services/placementService/FlexBoxPlacementService.js";
|
|
29
28
|
export * from "./elements/services/placementService/GridPlacementService.js";
|
|
@@ -161,6 +160,8 @@ export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExt
|
|
|
161
160
|
export * from "./elements/widgets/designerView/extensions/CanvasExtension.js";
|
|
162
161
|
export * from "./elements/widgets/designerView/extensions/CanvasExtensionProvider.js";
|
|
163
162
|
export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
|
|
163
|
+
export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
|
|
164
|
+
export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
|
|
164
165
|
export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
|
|
165
166
|
export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
|
|
166
167
|
export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,6 @@ export * from "./elements/item/BindingMode.js";
|
|
|
16
16
|
export * from "./elements/item/BindingTarget.js";
|
|
17
17
|
export * from "./elements/services/bindableObjectsService/BindableObjectType.js";
|
|
18
18
|
export * from "./elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js";
|
|
19
|
-
export * from "./elements/services/bindingsService/SpecialTagsBindingService.js";
|
|
20
19
|
export * from "./elements/services/placementService/DefaultPlacementService.js";
|
|
21
20
|
export * from "./elements/services/placementService/FlexBoxPlacementService.js";
|
|
22
21
|
export * from "./elements/services/placementService/GridPlacementService.js";
|
|
@@ -118,6 +117,8 @@ export * from "./elements/widgets/designerView/extensions/AltToEnterContainerExt
|
|
|
118
117
|
export * from "./elements/widgets/designerView/extensions/CanvasExtension.js";
|
|
119
118
|
export * from "./elements/widgets/designerView/extensions/CanvasExtensionProvider.js";
|
|
120
119
|
export * from "./elements/widgets/designerView/extensions/ExtensionManager.js";
|
|
120
|
+
export * from "./elements/widgets/designerView/extensions/FlexboxExtension.js";
|
|
121
|
+
export * from "./elements/widgets/designerView/extensions/FlexboxExtensionProvider.js";
|
|
121
122
|
export * from "./elements/widgets/designerView/extensions/GrayOutExtension.js";
|
|
122
123
|
export * from "./elements/widgets/designerView/extensions/GrayOutExtensionProvider.js";
|
|
123
124
|
export * from "./elements/widgets/designerView/extensions/GrayOutDragOverContainerExtension.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|