@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
|
@@ -2,6 +2,7 @@ import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
|
2
2
|
import { IExtensionManager } from "./IExtensionManger";
|
|
3
3
|
import { OverlayLayerView } from '../overlayLayerView';
|
|
4
4
|
import { OverlayLayer } from './OverlayLayer';
|
|
5
|
+
import { IPoint } from "../../../../interfaces/IPoint";
|
|
5
6
|
export declare abstract class AbstractExtensionBase {
|
|
6
7
|
protected overlays: SVGElement[];
|
|
7
8
|
protected overlayLayerView: OverlayLayerView;
|
|
@@ -14,4 +15,5 @@ export declare abstract class AbstractExtensionBase {
|
|
|
14
15
|
protected _drawRect(x: number, y: number, w: number, h: number, className?: string, rect?: SVGRectElement, overlayLayer?: OverlayLayer): SVGRectElement;
|
|
15
16
|
protected _drawText(text: string, x: number, y: number, className?: string, textEl?: SVGTextElement, overlayLayer?: OverlayLayer): SVGTextElement;
|
|
16
17
|
protected _drawTextWithBackground(text: string, x: number, y: number, backgroundColor: string, className?: string, existingEls?: [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement], overlayLayer?: OverlayLayer): [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement];
|
|
18
|
+
protected _drawTransformedRect(points: [IPoint, IPoint, IPoint, IPoint], className?: string, path?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
|
|
17
19
|
}
|
|
@@ -54,4 +54,12 @@ export class AbstractExtensionBase {
|
|
|
54
54
|
}
|
|
55
55
|
return newEls;
|
|
56
56
|
}
|
|
57
|
+
_drawTransformedRect(points, className, path, overlayLayer) {
|
|
58
|
+
let data = "M" + points[0].x + " " + points[0].y + " L" + points[1].x + " " + points[1].y + " L" + points[3].x + " " + points[3].y + " L" + points[2].x + " " + points[2].y + "Z";
|
|
59
|
+
const newPath = this.overlayLayerView.drawPath(data, className, path, overlayLayer);
|
|
60
|
+
if (!path) {
|
|
61
|
+
this.overlays.push(newPath);
|
|
62
|
+
}
|
|
63
|
+
return newPath;
|
|
64
|
+
}
|
|
57
65
|
}
|
|
@@ -256,6 +256,7 @@ export class ExtensionManager {
|
|
|
256
256
|
this.refreshExtensions(designItems, ExtensionType.ContainerDragOver, ignoredExtension);
|
|
257
257
|
this.refreshExtensions(designItems, ExtensionType.ContainerDrag, ignoredExtension);
|
|
258
258
|
this.refreshExtensions(designItems, ExtensionType.Doubleclick, ignoredExtension);
|
|
259
|
+
this.refreshExtensions(designItems, ExtensionType.Placement, ignoredExtension);
|
|
259
260
|
}
|
|
260
261
|
}
|
|
261
262
|
refreshAllAppliedExtentions() {
|
|
@@ -20,4 +20,5 @@ export var ExtensionType;
|
|
|
20
20
|
*/
|
|
21
21
|
ExtensionType[ExtensionType["ContainerDrag"] = 10] = "ContainerDrag";
|
|
22
22
|
ExtensionType[ExtensionType["Doubleclick"] = 11] = "Doubleclick";
|
|
23
|
+
ExtensionType[ExtensionType["Placement"] = 12] = "Placement";
|
|
23
24
|
})(ExtensionType || (ExtensionType = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
2
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
3
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
4
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
5
|
+
export declare class FlexboxExtension extends AbstractExtension {
|
|
6
|
+
private _path;
|
|
7
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
8
|
+
extend(): void;
|
|
9
|
+
refresh(): void;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getDesignerCanvasNormalizedTransformedCornerDOMPoints } from "../../../helper/TransformHelper";
|
|
2
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
3
|
+
import { OverlayLayer } from "./OverlayLayer";
|
|
4
|
+
export class FlexboxExtension extends AbstractExtension {
|
|
5
|
+
_path;
|
|
6
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
7
|
+
super(extensionManager, designerView, extendedItem);
|
|
8
|
+
}
|
|
9
|
+
extend() {
|
|
10
|
+
let transformedCornerPoints = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, 0, this.designerCanvas);
|
|
11
|
+
this._path = this._drawTransformedRect(transformedCornerPoints, 'svg-flexbox', this._path, OverlayLayer.Background);
|
|
12
|
+
}
|
|
13
|
+
refresh() {
|
|
14
|
+
this._removeAllOverlays();
|
|
15
|
+
this.extend();
|
|
16
|
+
}
|
|
17
|
+
dispose() {
|
|
18
|
+
this._removeAllOverlays();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from "./IDesignerExtensionProvider";
|
|
2
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
3
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
4
|
+
import { IDesignerExtension } from "./IDesignerExtension";
|
|
5
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
6
|
+
export declare class FlexboxExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
|
+
readonly style: CSSStyleSheet;
|
|
10
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { FlexboxExtension } from "./FlexboxExtension";
|
|
3
|
+
export class FlexboxExtensionProvider {
|
|
4
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
5
|
+
const display = getComputedStyle(designItem.element).display;
|
|
6
|
+
if (display == 'flex' || display == 'inline-flex')
|
|
7
|
+
return true;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
11
|
+
return new FlexboxExtension(extensionManager, designerView, designItem);
|
|
12
|
+
}
|
|
13
|
+
style = css `
|
|
14
|
+
.svg-flexbox { stroke: orange; fill: #9a47ff22; }
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getDesignerCanvasNormalizedTransformedCornerDOMPoints } from "../../../helper/TransformHelper";
|
|
1
2
|
import { AbstractExtension } from "./AbstractExtension";
|
|
2
3
|
import { OverlayLayer } from "./OverlayLayer.js";
|
|
3
4
|
export class GrayOutDragOverContainerExtension extends AbstractExtension {
|
|
@@ -9,8 +10,8 @@ export class GrayOutDragOverContainerExtension extends AbstractExtension {
|
|
|
9
10
|
this.refresh();
|
|
10
11
|
}
|
|
11
12
|
refresh() {
|
|
12
|
-
let
|
|
13
|
-
this._rect = this.
|
|
13
|
+
let transformedCornerPoints = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, 0, this.designerCanvas);
|
|
14
|
+
this._rect = this._drawTransformedRect(transformedCornerPoints, 'svg-rect-enter-container', this._rect, OverlayLayer.Background);
|
|
14
15
|
}
|
|
15
16
|
dispose() {
|
|
16
17
|
this._removeAllOverlays();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
2
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
3
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
4
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
5
|
+
export declare class GridExtension extends AbstractExtension {
|
|
6
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
7
|
+
extend(): void;
|
|
8
|
+
refresh(): void;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CalculateGridInformation } from "../../../helper/GridHelper.js";
|
|
2
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
3
|
+
import { OverlayLayer } from "./OverlayLayer.js";
|
|
4
|
+
export class GridExtension extends AbstractExtension {
|
|
5
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
6
|
+
super(extensionManager, designerView, extendedItem);
|
|
7
|
+
}
|
|
8
|
+
extend() {
|
|
9
|
+
const gridInformation = CalculateGridInformation(this.extendedItem);
|
|
10
|
+
for (let gap of gridInformation.gaps) {
|
|
11
|
+
this._drawRect(gap.x, gap.y, gap.width, gap.height, 'svg-grid-gap', null, OverlayLayer.Background);
|
|
12
|
+
}
|
|
13
|
+
for (let cellRow of gridInformation.cells) {
|
|
14
|
+
for (let cell of cellRow) {
|
|
15
|
+
this._drawRect(cell.x, cell.y, cell.width, cell.height, 'svg-grid', null, OverlayLayer.Background);
|
|
16
|
+
if (cell.name) {
|
|
17
|
+
const text = this._drawText(cell.name, cell.x, cell.y, 'svg-grid-area', null, OverlayLayer.Background);
|
|
18
|
+
text.setAttribute("dominant-baseline", "hanging");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
refresh() {
|
|
24
|
+
this._removeAllOverlays();
|
|
25
|
+
this.extend();
|
|
26
|
+
}
|
|
27
|
+
dispose() {
|
|
28
|
+
this._removeAllOverlays();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from "./IDesignerExtensionProvider";
|
|
2
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
3
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
4
|
+
import { IDesignerExtension } from "./IDesignerExtension";
|
|
5
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
6
|
+
export declare const gridExtensionShowOverlayOptionName = "gridExtensionShowOverlay";
|
|
7
|
+
export declare class GridExtensionProvider implements IDesignerExtensionProvider {
|
|
8
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
9
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
10
|
+
readonly style: CSSStyleSheet;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { GridExtension } from './GridExtension';
|
|
2
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
3
|
+
export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
|
|
4
|
+
export class GridExtensionProvider {
|
|
5
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
6
|
+
if (getComputedStyle(designItem.element).display == 'grid')
|
|
7
|
+
return designerView.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
11
|
+
return new GridExtension(extensionManager, designerView, designItem);
|
|
12
|
+
}
|
|
13
|
+
style = css `
|
|
14
|
+
.svg-grid { stroke: orange; stroke-dasharray: 5; fill: #ff944722; }
|
|
15
|
+
.svg-grid-area { font-size: 8px; }
|
|
16
|
+
.svg-grid-gap { stroke: orange; stroke-dasharray: 5; fill: #0000ff22; }
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
@@ -3,7 +3,8 @@ import { css } from "@node-projects/base-custom-webcomponent";
|
|
|
3
3
|
export const gridExtensionShowOverlayOptionName = 'gridExtensionShowOverlay';
|
|
4
4
|
export class GridExtensionProvider {
|
|
5
5
|
shouldExtend(extensionManager, designerView, designItem) {
|
|
6
|
-
|
|
6
|
+
const display = getComputedStyle(designItem.element).display;
|
|
7
|
+
if (display == 'grid' || display == 'inline-grid')
|
|
7
8
|
return designerView.instanceServiceContainer.designContext.extensionOptions[gridExtensionShowOverlayOptionName] !== false;
|
|
8
9
|
return false;
|
|
9
10
|
}
|
|
@@ -3,7 +3,10 @@ import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
|
3
3
|
import { AbstractExtension } from "./AbstractExtension";
|
|
4
4
|
import { IExtensionManager } from "./IExtensionManger";
|
|
5
5
|
export declare class MouseOverExtension extends AbstractExtension {
|
|
6
|
-
private
|
|
6
|
+
private _line1;
|
|
7
|
+
private _line2;
|
|
8
|
+
private _line3;
|
|
9
|
+
private _line4;
|
|
7
10
|
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
8
11
|
extend(): void;
|
|
9
12
|
refresh(): void;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { getDesignerCanvasNormalizedTransformedCornerDOMPoints } from "../../../helper/TransformHelper";
|
|
1
2
|
import { AbstractExtension } from "./AbstractExtension";
|
|
2
3
|
const offset = 3;
|
|
3
4
|
export class MouseOverExtension extends AbstractExtension {
|
|
4
|
-
|
|
5
|
+
_line1;
|
|
6
|
+
_line2;
|
|
7
|
+
_line3;
|
|
8
|
+
_line4;
|
|
5
9
|
constructor(extensionManager, designerView, extendedItem) {
|
|
6
10
|
super(extensionManager, designerView, extendedItem);
|
|
7
11
|
}
|
|
@@ -9,11 +13,15 @@ export class MouseOverExtension extends AbstractExtension {
|
|
|
9
13
|
this.refresh();
|
|
10
14
|
}
|
|
11
15
|
refresh() {
|
|
12
|
-
let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
16
|
+
let transformedCornerPoints = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, offset, this.designerCanvas);
|
|
17
|
+
this._line1 = this._drawLine(transformedCornerPoints[0].x, transformedCornerPoints[0].y, transformedCornerPoints[1].x, transformedCornerPoints[1].y, 'svg-hover', this._line1);
|
|
18
|
+
this._line2 = this._drawLine(transformedCornerPoints[0].x, transformedCornerPoints[0].y, transformedCornerPoints[2].x, transformedCornerPoints[2].y, 'svg-hover', this._line2);
|
|
19
|
+
this._line3 = this._drawLine(transformedCornerPoints[1].x, transformedCornerPoints[1].y, transformedCornerPoints[3].x, transformedCornerPoints[3].y, 'svg-hover', this._line3);
|
|
20
|
+
this._line4 = this._drawLine(transformedCornerPoints[2].x, transformedCornerPoints[2].y, transformedCornerPoints[3].x, transformedCornerPoints[3].y, 'svg-hover', this._line4);
|
|
21
|
+
this._line1.style.strokeWidth = (2 / this.designerCanvas.zoomFactor).toString();
|
|
22
|
+
this._line2.style.strokeWidth = (2 / this.designerCanvas.zoomFactor).toString();
|
|
23
|
+
this._line3.style.strokeWidth = (2 / this.designerCanvas.zoomFactor).toString();
|
|
24
|
+
this._line4.style.strokeWidth = (2 / this.designerCanvas.zoomFactor).toString();
|
|
17
25
|
}
|
|
18
26
|
dispose() {
|
|
19
27
|
this._removeAllOverlays();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
2
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
3
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
4
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
5
|
+
export declare class PlacementExtension extends AbstractExtension {
|
|
6
|
+
private _rect;
|
|
7
|
+
constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
|
|
8
|
+
extend(): void;
|
|
9
|
+
refresh(): void;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AbstractExtension } from "./AbstractExtension";
|
|
2
|
+
export class PlacementExtension extends AbstractExtension {
|
|
3
|
+
_rect;
|
|
4
|
+
constructor(extensionManager, designerView, extendedItem) {
|
|
5
|
+
super(extensionManager, designerView, extendedItem);
|
|
6
|
+
}
|
|
7
|
+
extend() {
|
|
8
|
+
this.refresh();
|
|
9
|
+
}
|
|
10
|
+
refresh() {
|
|
11
|
+
const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
12
|
+
const computedStyle = getComputedStyle(this.extendedItem.element);
|
|
13
|
+
const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
|
|
14
|
+
const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
|
|
15
|
+
const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
|
|
16
|
+
const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
|
|
17
|
+
this._rect = this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top + itemRect.height + bottom, 'svg-hover', this._rect);
|
|
18
|
+
}
|
|
19
|
+
dispose() {
|
|
20
|
+
this._removeAllOverlays();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IDesignerExtensionProvider } from "./IDesignerExtensionProvider";
|
|
2
|
+
import { IDesignItem } from "../../../item/IDesignItem";
|
|
3
|
+
import { IDesignerCanvas } from "../IDesignerCanvas";
|
|
4
|
+
import { IDesignerExtension } from "./IDesignerExtension";
|
|
5
|
+
import { IExtensionManager } from "./IExtensionManger";
|
|
6
|
+
export declare class PlacementExtensionProvider implements IDesignerExtensionProvider {
|
|
7
|
+
shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
|
|
8
|
+
getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
|
|
9
|
+
readonly style: CSSStyleSheet;
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { css } from "@node-projects/base-custom-webcomponent";
|
|
2
|
+
import { PlacementExtension } from "./PlacementExtension";
|
|
3
|
+
export class PlacementExtensionProvider {
|
|
4
|
+
shouldExtend(extensionManager, designerView, designItem) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
getExtension(extensionManager, designerView, designItem) {
|
|
8
|
+
return new PlacementExtension(extensionManager, designerView, designItem);
|
|
9
|
+
}
|
|
10
|
+
style = css `
|
|
11
|
+
.svg-hover { stroke: #90caf9; fill: none; }
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
@@ -16,10 +16,12 @@ export declare class ResizeExtension extends AbstractExtension {
|
|
|
16
16
|
private _circle6;
|
|
17
17
|
private _circle7;
|
|
18
18
|
private _circle8;
|
|
19
|
+
private _initialComputedTransformOrigins;
|
|
20
|
+
private _initialTransformOrigins;
|
|
19
21
|
constructor(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, extendedItem: IDesignItem, resizeAllSelected: boolean);
|
|
20
22
|
extend(): void;
|
|
21
23
|
refresh(): void;
|
|
22
24
|
_drawResizerOverlay(x: number, y: number, cursor: string, oldCircle?: SVGCircleElement): SVGCircleElement;
|
|
23
|
-
_pointerActionTypeResize(circle: SVGCircleElement, event: PointerEvent, actionMode
|
|
25
|
+
_pointerActionTypeResize(circle: SVGCircleElement, event: PointerEvent, actionMode: string): void;
|
|
24
26
|
dispose(): void;
|
|
25
27
|
}
|