@node-projects/web-component-designer 0.1.120 → 0.1.122

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.
Files changed (40) hide show
  1. package/dist/elements/helper/NpmPackageLoader.js +1 -1
  2. package/dist/elements/services/eventsService/EventsService.d.ts +5 -0
  3. package/dist/elements/services/eventsService/EventsService.js +5 -3
  4. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +1 -1
  5. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +1 -1
  6. package/package.json +1 -1
  7. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.d.ts +0 -6
  8. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.js +0 -1
  9. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.d.ts +0 -9
  10. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.js +0 -30
  11. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.d.ts +0 -20
  12. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.js +0 -68
  13. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.d.ts +0 -12
  14. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.js +0 -40
  15. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.d.ts +0 -13
  16. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.js +0 -18
  17. package/dist/elements/widgets/designerView/extensions/EditTextExtension.d.ts +0 -18
  18. package/dist/elements/widgets/designerView/extensions/EditTextExtension.js +0 -107
  19. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.d.ts +0 -12
  20. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.js +0 -58
  21. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.d.ts +0 -12
  22. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.js +0 -34
  23. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.d.ts +0 -9
  24. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.js +0 -12
  25. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.d.ts +0 -12
  26. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.js +0 -66
  27. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.d.ts +0 -10
  28. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.js +0 -17
  29. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.d.ts +0 -12
  30. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.js +0 -66
  31. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.d.ts +0 -10
  32. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.js +0 -17
  33. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.d.ts +0 -28
  34. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.js +0 -355
  35. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.d.ts +0 -12
  36. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.js +0 -20
  37. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.d.ts +0 -9
  38. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.js +0 -14
  39. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.d.ts +0 -30
  40. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.js +0 -181
@@ -1,66 +0,0 @@
1
- import { html } from "@node-projects/base-custom-webcomponent";
2
- import { AbstractExtension } from "../AbstractExtension.js";
3
- export class GridToolbarExtension extends AbstractExtension {
4
- static template = html `
5
- <div style="height: 100%; width: 100%;">
6
- <select id="displayType" style="pointer-events: all; height: 24px; width: 70px; padding: 0; font-weight: 900; text-transform: uppercase; margin-right: 10px;">
7
- <option>block</option>
8
- <option>flex</option>
9
- <option selected>grid</option>
10
- </select>
11
- <select id="gridType" style="pointer-events: all; height: 24px; width: 60px; padding: 0;">
12
- <option>1x1</option>
13
- <option>1x16</option>
14
- <option>2x8</option>
15
- <option>4x4</option>
16
- <option>8x2</option>
17
- <option>16x1</option>
18
- <option>custom</option>
19
- </select>
20
- </div>
21
- `;
22
- _toolbar;
23
- constructor(extensionManager, designerView, extendedItem) {
24
- super(extensionManager, designerView, extendedItem);
25
- }
26
- extend(cache, event) {
27
- const style = getComputedStyle(this.extendedItem.element);
28
- this._toolbar = this.createToolbar(GridToolbarExtension.template, 200, 30);
29
- const displayTypeEl = this._toolbar.getById('displayType');
30
- displayTypeEl.onchange = () => {
31
- this.extendedItem.updateStyleInSheetOrLocal('display', displayTypeEl.value);
32
- };
33
- const gridTypeEl = this._toolbar.getById('gridType');
34
- let op = document.createElement('option');
35
- op.innerText = style.gridTemplateColumns.split(' ').length + 'x' + style.gridTemplateRows.split(' ').length;
36
- gridTypeEl.insertAdjacentElement('afterbegin', op);
37
- gridTypeEl.selectedIndex = 0;
38
- gridTypeEl.onchange = () => {
39
- if (gridTypeEl.value == 'custom') {
40
- const columns = prompt("Number of columns?", '4');
41
- if (!columns)
42
- return;
43
- const rows = prompt("Number of rows?", '4');
44
- if (!rows)
45
- return;
46
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-columns', '1fr '.repeat(parseInt(columns)).trim());
47
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-rows', '1fr '.repeat(parseInt(rows)).trim());
48
- }
49
- else {
50
- const parts = gridTypeEl.value.split('x');
51
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-columns', '1fr '.repeat(parseInt(parts[0])).trim());
52
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-rows', '1fr '.repeat(parseInt(parts[1])).trim());
53
- }
54
- };
55
- this.refresh(cache, event);
56
- }
57
- refresh(cache, event) {
58
- if (event) {
59
- const pos = this.designerCanvas.getNormalizedEventCoordinates(event);
60
- this._toolbar.updatePosition({ x: (pos.x - 16), y: (pos.y - 36) });
61
- }
62
- }
63
- dispose() {
64
- this._removeAllOverlays();
65
- }
66
- }
@@ -1,10 +0,0 @@
1
- import { IDesignerExtensionProvider } from '../IDesignerExtensionProvider.js';
2
- import { IDesignItem } from '../../../../item/IDesignItem.js';
3
- import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
- import { IDesignerExtension } from '../IDesignerExtension.js';
5
- import { IExtensionManager } from '../IExtensionManger.js';
6
- export declare class GridToolbarExtensionProvider 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
- }
@@ -1,17 +0,0 @@
1
- import { css } from '@node-projects/base-custom-webcomponent';
2
- import { GridToolbarExtension } from './GridToolbarExtension.js';
3
- import { NodeType } from '../../../../item/NodeType.js';
4
- export class GridToolbarExtensionProvider {
5
- shouldExtend(extensionManager, designerView, designItem) {
6
- if (designItem.nodeType === NodeType.Element && getComputedStyle(designItem.element).display === 'grid')
7
- return true;
8
- return false;
9
- }
10
- getExtension(extensionManager, designerView, designItem) {
11
- return new GridToolbarExtension(extensionManager, designerView, designItem);
12
- }
13
- style = css `
14
- .svg-toolbar-container { overflow: visible }
15
- .svg-toolbar-container div { padding: 5px; display: flex; gap: 2px; background: white; border-radius: 4px; box-shadow: 0 2px 10px 0 rgba(19,23,32,.2); align-items: center; }
16
- `;
17
- }
@@ -1,12 +0,0 @@
1
- import { IDesignItem } from '../../../../item/IDesignItem.js';
2
- import { IDesignerCanvas } from '../../IDesignerCanvas.js';
3
- import { AbstractExtension } from "../AbstractExtension.js";
4
- import { IExtensionManager } from '../IExtensionManger.js';
5
- export declare class GridToolbarExtension extends AbstractExtension {
6
- private static template;
7
- private _toolbar;
8
- constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
9
- extend(cache: Record<string | symbol, any>, event: MouseEvent): void;
10
- refresh(cache: Record<string | symbol, any>, event?: MouseEvent): void;
11
- dispose(): void;
12
- }
@@ -1,66 +0,0 @@
1
- import { html } from "@node-projects/base-custom-webcomponent";
2
- import { AbstractExtension } from "../AbstractExtension.js";
3
- export class GridToolbarExtension extends AbstractExtension {
4
- static template = html `
5
- <div style="height: 100%; width: 100%;">
6
- <select id="displayType" style="pointer-events: all; height: 24px; width: 70px; padding: 0; font-weight: 900; text-transform: uppercase; margin-right: 10px;">
7
- <option>block</option>
8
- <option>flex</option>
9
- <option selected>grid</option>
10
- </select>
11
- <select id="gridType" style="pointer-events: all; height: 24px; width: 60px; padding: 0;">
12
- <option>1x1</option>
13
- <option>1x16</option>
14
- <option>2x8</option>
15
- <option>4x4</option>
16
- <option>8x2</option>
17
- <option>16x1</option>
18
- <option>custom</option>
19
- </select>
20
- </div>
21
- `;
22
- _toolbar;
23
- constructor(extensionManager, designerView, extendedItem) {
24
- super(extensionManager, designerView, extendedItem);
25
- }
26
- extend(cache, event) {
27
- const style = getComputedStyle(this.extendedItem.element);
28
- this._toolbar = this.createToolbar(GridToolbarExtension.template, 200, 30);
29
- const displayTypeEl = this._toolbar.getById('displayType');
30
- displayTypeEl.onchange = () => {
31
- this.extendedItem.updateStyleInSheetOrLocal('display', displayTypeEl.value);
32
- };
33
- const gridTypeEl = this._toolbar.getById('gridType');
34
- let op = document.createElement('option');
35
- op.innerText = style.gridTemplateColumns.split(' ').length + 'x' + style.gridTemplateRows.split(' ').length;
36
- gridTypeEl.insertAdjacentElement('afterbegin', op);
37
- gridTypeEl.selectedIndex = 0;
38
- gridTypeEl.onchange = () => {
39
- if (gridTypeEl.value == 'custom') {
40
- const columns = prompt("Number of columns?", '4');
41
- if (!columns)
42
- return;
43
- const rows = prompt("Number of rows?", '4');
44
- if (!rows)
45
- return;
46
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-columns', '1fr '.repeat(parseInt(columns)).trim());
47
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-rows', '1fr '.repeat(parseInt(rows)).trim());
48
- }
49
- else {
50
- const parts = gridTypeEl.value.split('x');
51
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-columns', '1fr '.repeat(parseInt(parts[0])).trim());
52
- this.extendedItem.updateStyleInSheetOrLocal('grid-template-rows', '1fr '.repeat(parseInt(parts[1])).trim());
53
- }
54
- };
55
- this.refresh(cache, event);
56
- }
57
- refresh(cache, event) {
58
- if (event) {
59
- const pos = this.designerCanvas.getNormalizedEventCoordinates(event);
60
- this._toolbar.updatePosition({ x: (pos.x - 16), y: (pos.y - 44) });
61
- }
62
- }
63
- dispose() {
64
- this._removeAllOverlays();
65
- }
66
- }
@@ -1,10 +0,0 @@
1
- import { IDesignerExtensionProvider } from '../IDesignerExtensionProvider.js';
2
- import { IDesignItem } from '../../../../item/IDesignItem.js';
3
- import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
- import { IDesignerExtension } from '../IDesignerExtension.js';
5
- import { IExtensionManager } from '../IExtensionManger.js';
6
- export declare class GridToolbarExtensionProvider 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
- }
@@ -1,17 +0,0 @@
1
- import { css } from '@node-projects/base-custom-webcomponent';
2
- import { GridToolbarExtension } from './GridToolbarExtension.js';
3
- import { NodeType } from '../../../../item/NodeType.js';
4
- export class GridToolbarExtensionProvider {
5
- shouldExtend(extensionManager, designerView, designItem) {
6
- if (designItem.nodeType === NodeType.Element && getComputedStyle(designItem.element).display === 'grid')
7
- return true;
8
- return false;
9
- }
10
- getExtension(extensionManager, designerView, designItem) {
11
- return new GridToolbarExtension(extensionManager, designerView, designItem);
12
- }
13
- style = css `
14
- .svg-toolbar-container { overflow: visible }
15
- .svg-toolbar-container div { padding: 5px; display: flex; gap: 2px; background: white; border-radius: 4px; box-shadow: 0 2px 10px 0 rgba(19,23,32,.2); align-items: center; }
16
- `;
17
- }
@@ -1,28 +0,0 @@
1
- import { IDesignItem } from '../../../item/IDesignItem.js';
2
- import { IDesignerCanvas } from '../IDesignerCanvas.js';
3
- import { AbstractExtension } from './AbstractExtension.js';
4
- import { IExtensionManager } from './IExtensionManger.js';
5
- export declare class ResizeExtension extends AbstractExtension {
6
- private resizeAllSelected;
7
- private _initialSizes;
8
- private _actionModeStarted;
9
- private _initialPoint;
10
- private _offsetPoint;
11
- private _circle1;
12
- private _circle2;
13
- private _circle3;
14
- private _circle4;
15
- private _circle5;
16
- private _circle6;
17
- private _circle7;
18
- private _circle8;
19
- private _initialComputedTransformOrigins;
20
- private _initialTransformOrigins;
21
- constructor(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas, extendedItem: IDesignItem, resizeAllSelected: boolean);
22
- extend(cache: Record<string | symbol, any>, event?: Event): void;
23
- refresh(cache: Record<string | symbol, any>, event?: Event): void;
24
- _drawResizerOverlay(x: number, y: number, cursor: string, oldCircle?: SVGCircleElement): SVGCircleElement;
25
- _pointerActionTypeResize(circle: SVGCircleElement, event: PointerEvent, actionMode: string): void;
26
- private prepareResize;
27
- dispose(): void;
28
- }
@@ -1,355 +0,0 @@
1
- import { EventNames } from '../../../../enums/EventNames.js';
2
- import { getContentBoxContentOffsets } from '../../../helper/ElementHelper.js';
3
- import { roundValue } from '../../../helper/LayoutHelper.js';
4
- import { transformPointByInverseMatrix, getDesignerCanvasNormalizedTransformedCornerDOMPoints, normalizeToAbsolutePosition, getElementCombinedTransform } from "../../../helper/TransformHelper.js";
5
- import { AbstractExtension } from './AbstractExtension.js';
6
- //TODO: use PlacementService, size is not always width/height could also be margin etc...
7
- // also when elment aligned to bottom, will it later also be?
8
- export class ResizeExtension extends AbstractExtension {
9
- resizeAllSelected;
10
- _initialSizes;
11
- _actionModeStarted;
12
- _initialPoint;
13
- _offsetPoint;
14
- _circle1;
15
- _circle2;
16
- _circle3;
17
- _circle4;
18
- _circle5;
19
- _circle6;
20
- _circle7;
21
- _circle8;
22
- _initialComputedTransformOrigins;
23
- _initialTransformOrigins;
24
- constructor(extensionManager, designerCanvas, extendedItem, resizeAllSelected) {
25
- super(extensionManager, designerCanvas, extendedItem);
26
- this.resizeAllSelected = resizeAllSelected;
27
- }
28
- extend(cache, event) {
29
- this.refresh(cache, event);
30
- }
31
- refresh(cache, event) {
32
- //#region Resizer circles
33
- let transformedCornerPoints = getDesignerCanvasNormalizedTransformedCornerDOMPoints(this.extendedItem.element, null, this.designerCanvas, cache);
34
- if (isNaN(transformedCornerPoints[0].x) || isNaN(transformedCornerPoints[1].x)) {
35
- this.remove();
36
- return;
37
- }
38
- if (this._valuesHaveChanges(this.designerCanvas.zoomFactor, transformedCornerPoints[0].x, transformedCornerPoints[0].y, transformedCornerPoints[1].x, transformedCornerPoints[1].y, transformedCornerPoints[2].x, transformedCornerPoints[2].y, transformedCornerPoints[3].x, transformedCornerPoints[3].y)) {
39
- this._circle1 = this._drawResizerOverlay(transformedCornerPoints[0].x, transformedCornerPoints[0].y, 'nw-resize', this._circle1);
40
- this._circle2 = this._drawResizerOverlay((transformedCornerPoints[0].x + (transformedCornerPoints[1].x - transformedCornerPoints[0].x) / 2), (transformedCornerPoints[0].y + (transformedCornerPoints[1].y - transformedCornerPoints[0].y) / 2), 'n-resize', this._circle2);
41
- this._circle3 = this._drawResizerOverlay(transformedCornerPoints[1].x, transformedCornerPoints[1].y, 'ne-resize', this._circle3);
42
- this._circle4 = this._drawResizerOverlay((transformedCornerPoints[0].x + (transformedCornerPoints[2].x - transformedCornerPoints[0].x) / 2), (transformedCornerPoints[0].y + (transformedCornerPoints[2].y - transformedCornerPoints[0].y) / 2), 'w-resize', this._circle4);
43
- this._circle5 = this._drawResizerOverlay(transformedCornerPoints[2].x, transformedCornerPoints[2].y, 'sw-resize', this._circle5);
44
- this._circle6 = this._drawResizerOverlay((transformedCornerPoints[2].x + (transformedCornerPoints[3].x - transformedCornerPoints[2].x) / 2), (transformedCornerPoints[2].y + (transformedCornerPoints[3].y - transformedCornerPoints[2].y) / 2), 's-resize', this._circle6);
45
- this._circle8 = this._drawResizerOverlay((transformedCornerPoints[1].x + (transformedCornerPoints[3].x - transformedCornerPoints[1].x) / 2), (transformedCornerPoints[1].y + (transformedCornerPoints[3].y - transformedCornerPoints[1].y) / 2), 'e-resize', this._circle8);
46
- this._circle7 = this._drawResizerOverlay(transformedCornerPoints[3].x, transformedCornerPoints[3].y, 'se-resize', this._circle7);
47
- }
48
- //#endregion Circles
49
- }
50
- _drawResizerOverlay(x, y, cursor, oldCircle) {
51
- let circle = this._drawCircle(x, y, 3 / this.designerCanvas.zoomFactor, 'svg-primary-resizer', oldCircle);
52
- circle.style.strokeWidth = (1 / this.designerCanvas.zoomFactor).toString();
53
- if (!oldCircle) {
54
- circle.addEventListener(EventNames.PointerDown, event => this._pointerActionTypeResize(circle, event, cursor));
55
- circle.addEventListener(EventNames.PointerMove, event => this._pointerActionTypeResize(circle, event, cursor));
56
- circle.addEventListener(EventNames.PointerUp, event => this._pointerActionTypeResize(circle, event, cursor));
57
- }
58
- circle.style.cursor = cursor;
59
- return circle;
60
- }
61
- _pointerActionTypeResize(circle, event, actionMode) {
62
- event.stopPropagation();
63
- const currentPoint = this.designerCanvas.getNormalizedEventCoordinates(event);
64
- switch (event.type) {
65
- case EventNames.PointerDown:
66
- const cx = parseFloat(circle.getAttribute('cx'));
67
- const cy = parseFloat(circle.getAttribute('cy'));
68
- this._offsetPoint = { x: cx - currentPoint.x, y: cy - currentPoint.y };
69
- event.target.setPointerCapture(event.pointerId);
70
- this._initialPoint = currentPoint;
71
- this._initialSizes = [];
72
- this._actionModeStarted = actionMode;
73
- this._initialComputedTransformOrigins = [];
74
- this._initialTransformOrigins = [];
75
- //#region Calc elements' dimension
76
- const transformBackup = this.extendedItem.element.style.transform;
77
- this.extendedItem.element.style.transform = '';
78
- let rect = this.extendedItem.element.getBoundingClientRect();
79
- this.extendedItem.element.style.transform = transformBackup;
80
- //#endregion Calc element's dimension
81
- let contentBoxOffset = { x: 0, y: 0 };
82
- if (getComputedStyle(this.extendedItem.element).boxSizing == 'content-box') {
83
- contentBoxOffset = getContentBoxContentOffsets(this.extendedItem.element);
84
- }
85
- this._initialSizes.push({ width: (rect.width - contentBoxOffset.x * this.designerCanvas.scaleFactor) / this.designerCanvas.scaleFactor, height: (rect.height - contentBoxOffset.y * this.designerCanvas.scaleFactor) / this.designerCanvas.scaleFactor });
86
- const toArr = getComputedStyle(this.extendedItem.element).transformOrigin.split(' ').map(x => parseFloat(x.replace('px', '')));
87
- const transformOrigin = new DOMPoint(toArr[0], toArr[1]);
88
- this._initialComputedTransformOrigins.push(transformOrigin);
89
- this._initialTransformOrigins.push(this.extendedItem.element.style.transformOrigin);
90
- if (this.resizeAllSelected) {
91
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
92
- rect = designItem.element.getBoundingClientRect();
93
- this._initialSizes.push({ width: rect.width / this.designerCanvas.scaleFactor, height: rect.height / this.designerCanvas.scaleFactor });
94
- }
95
- }
96
- if (this.designerCanvas.alignOnSnap)
97
- this.designerCanvas.snapLines.calculateSnaplines(this.designerCanvas.instanceServiceContainer.selectionService.selectedElements);
98
- this.prepareResize(this.extendedItem, this._actionModeStarted);
99
- if (this.resizeAllSelected) {
100
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
101
- if (designItem !== this.extendedItem) {
102
- this.prepareResize(designItem, this._actionModeStarted);
103
- }
104
- }
105
- }
106
- break;
107
- case EventNames.PointerMove:
108
- if (this._initialPoint) {
109
- const containerStyle = getComputedStyle(this.extendedItem.parent.element);
110
- const containerService = this.designerCanvas.serviceContainer.getLastServiceWhere('containerService', x => x.serviceForContainer(this.extendedItem.parent, containerStyle));
111
- const diff = containerService.placePoint(event, this.designerCanvas, this.extendedItem.parent, this._initialPoint, { x: 0, y: 0 }, currentPoint, this.designerCanvas.instanceServiceContainer.selectionService.selectedElements);
112
- let trackX = Math.round(diff.x - this._initialPoint.x - this._offsetPoint.x);
113
- let trackY = Math.round(diff.y - this._initialPoint.y - this._offsetPoint.y);
114
- let matrix = getElementCombinedTransform(this.extendedItem.element);
115
- let transformedTrack = transformPointByInverseMatrix(new DOMPoint(trackX, trackY, 0, 0), matrix);
116
- let deltaX = transformedTrack.x;
117
- let deltaY = transformedTrack.y;
118
- if (event.shiftKey) {
119
- deltaX = deltaX < deltaY ? deltaX : deltaY;
120
- deltaY = deltaX;
121
- }
122
- let i = 0;
123
- let width = null;
124
- let height = null;
125
- switch (this._actionModeStarted) {
126
- case 'e-resize':
127
- width = (this._initialSizes[i].width + deltaX);
128
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
129
- if (this.resizeAllSelected) {
130
- i++;
131
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
132
- if (designItem !== this.extendedItem) {
133
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width + deltaX) + 'px';
134
- }
135
- }
136
- }
137
- break;
138
- case 'se-resize':
139
- width = (this._initialSizes[i].width + deltaX);
140
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
141
- height = (this._initialSizes[i].height + deltaY);
142
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
143
- if (this.resizeAllSelected) {
144
- i++;
145
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
146
- if (designItem !== this.extendedItem) {
147
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width + deltaX) + 'px';
148
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height + deltaY) + 'px';
149
- }
150
- }
151
- }
152
- break;
153
- case 's-resize':
154
- height = (this._initialSizes[i].height + deltaY);
155
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
156
- if (this.resizeAllSelected) {
157
- i++;
158
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
159
- if (designItem !== this.extendedItem) {
160
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height + deltaY) + 'px';
161
- }
162
- }
163
- }
164
- break;
165
- case 'sw-resize':
166
- width = (this._initialSizes[i].width - deltaX);
167
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
168
- height = (this._initialSizes[i].height + deltaY);
169
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
170
- if (this.resizeAllSelected) {
171
- i++;
172
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
173
- if (designItem !== this.extendedItem) {
174
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width - deltaX) + 'px';
175
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height + deltaY) + 'px';
176
- }
177
- }
178
- }
179
- break;
180
- case 'w-resize':
181
- width = (this._initialSizes[i].width - deltaX);
182
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
183
- if (this.resizeAllSelected) {
184
- i++;
185
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
186
- if (designItem !== this.extendedItem) {
187
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width - deltaX) + 'px';
188
- }
189
- }
190
- }
191
- break;
192
- case 'nw-resize':
193
- width = (this._initialSizes[i].width - deltaX);
194
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
195
- height = (this._initialSizes[i].height - deltaY);
196
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
197
- if (this.resizeAllSelected) {
198
- i++;
199
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
200
- if (designItem !== this.extendedItem) {
201
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width - deltaX) + 'px';
202
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height - deltaY) + 'px';
203
- }
204
- }
205
- }
206
- break;
207
- case 'n-resize':
208
- height = (this._initialSizes[i].height - deltaY);
209
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
210
- if (this.resizeAllSelected) {
211
- i++;
212
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
213
- if (designItem !== this.extendedItem) {
214
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height - deltaY) + 'px';
215
- }
216
- }
217
- }
218
- break;
219
- case 'ne-resize':
220
- width = (this._initialSizes[i].width + deltaX);
221
- this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
222
- height = (this._initialSizes[i].height - deltaY);
223
- this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
224
- if (this.resizeAllSelected) {
225
- i++;
226
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
227
- if (designItem !== this.extendedItem) {
228
- designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width + deltaX) + 'px';
229
- designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height - deltaY) + 'px';
230
- }
231
- }
232
- }
233
- break;
234
- }
235
- const resizedElements = [this.extendedItem, this.extendedItem.parent];
236
- if (this.resizeAllSelected)
237
- resizedElements.push(...this.designerCanvas.instanceServiceContainer.selectionService.selectedElements);
238
- this.extensionManager.refreshExtensions(resizedElements);
239
- }
240
- break;
241
- case EventNames.PointerUp:
242
- event.target.releasePointerCapture(event.pointerId);
243
- let cg = this.extendedItem.openGroup((this.resizeAllSelected && this.designerCanvas.instanceServiceContainer.selectionService.selectedElements.length > 1) ? "Resize Elements" : "Resize &lt;" + this.extendedItem.name + "&gt;");
244
- this.extendedItem.setStyle('width', this.extendedItem.element.style.width);
245
- this.extendedItem.setStyle('height', this.extendedItem.element.style.height);
246
- this.extendedItem.setStyle('left', roundValue(this.extendedItem, parseFloat(normalizeToAbsolutePosition(this.extendedItem.element, 'left'))) + 'px');
247
- this.extendedItem.setStyle('top', roundValue(this.extendedItem, parseFloat(normalizeToAbsolutePosition(this.extendedItem.element, 'top'))) + 'px');
248
- let p3Abs = new DOMPoint(this.extendedItem.element.offsetLeft + parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(' ')[0].replace('px', '')), this.extendedItem.element.offsetTop + parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(' ')[1].replace('px', '')));
249
- this.extendedItem.element.style.transformOrigin = this._initialTransformOrigins[0];
250
- let p1Abs = new DOMPoint(this.extendedItem.element.offsetLeft + parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(' ')[0].replace('px', '')), this.extendedItem.element.offsetTop + parseFloat(getComputedStyle(this.extendedItem.element).transformOrigin.split(' ')[1].replace('px', '')));
251
- let p1 = new DOMPoint(p1Abs.x - p3Abs.x, -(p1Abs.y - p3Abs.y));
252
- let matrix = new DOMMatrix(getComputedStyle(this.extendedItem.element).transform);
253
- let deltaX = 0;
254
- let deltaY = 0;
255
- let p1transformed = transformPointByInverseMatrix(p1, matrix);
256
- let p2Abs = new DOMPoint(p3Abs.x + p1transformed.x, p3Abs.y - p1transformed.y);
257
- let p1p2 = new DOMPoint(p2Abs.x - p1Abs.x, -(p2Abs.y - p1Abs.y));
258
- let p1p2transformed = p1p2.matrixTransform(matrix);
259
- let p4Abs = new DOMPoint(p1Abs.x + p1p2transformed.x, p1Abs.y - p1p2transformed.y);
260
- deltaX = p4Abs.x - p1Abs.x;
261
- deltaY = p4Abs.y - p1Abs.y;
262
- this.extendedItem.element.style.transform = matrix.translate(deltaX, deltaY).toString();
263
- if (matrix.isIdentity) {
264
- this.extendedItem.element.style.transform = '';
265
- }
266
- this.extendedItem.setStyle('transform', this.extendedItem.element.style.transform);
267
- if (this.resizeAllSelected) {
268
- for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
269
- if (designItem !== this.extendedItem) {
270
- designItem.setStyle('width', designItem.element.style.width);
271
- designItem.setStyle('height', designItem.element.style.height);
272
- designItem.setStyle('left', roundValue(this.extendedItem, parseFloat(normalizeToAbsolutePosition(designItem.element, 'left'))) + 'px');
273
- designItem.setStyle('top', roundValue(this.extendedItem, parseFloat(normalizeToAbsolutePosition(designItem.element, 'top'))) + 'px');
274
- }
275
- }
276
- }
277
- cg.commit();
278
- this._initialSizes = null;
279
- this._initialPoint = null;
280
- break;
281
- }
282
- }
283
- prepareResize(designItem, mode) {
284
- let i = 0;
285
- let top = null;
286
- let bottom = null;
287
- let left = null;
288
- let right = null;
289
- switch (this._actionModeStarted) {
290
- case 'e-resize':
291
- left = getComputedStyle(designItem.element).left;
292
- designItem.element.style.removeProperty('right');
293
- designItem.element.style.left = left;
294
- designItem.element.style.transformOrigin = this._initialComputedTransformOrigins[i].x + 'px ' + this._initialComputedTransformOrigins[i].y + 'px';
295
- break;
296
- case 'se-resize':
297
- top = getComputedStyle(designItem.element).top;
298
- designItem.element.style.removeProperty('bottom');
299
- designItem.element.style.top = top;
300
- left = getComputedStyle(designItem.element).left;
301
- designItem.element.style.removeProperty('right');
302
- designItem.element.style.left = left;
303
- designItem.element.style.transformOrigin = this._initialComputedTransformOrigins[i].x + 'px ' + this._initialComputedTransformOrigins[i].y + 'px';
304
- break;
305
- case 's-resize':
306
- top = getComputedStyle(designItem.element).top;
307
- designItem.element.style.removeProperty('bottom');
308
- designItem.element.style.top = top;
309
- designItem.element.style.transformOrigin = this._initialComputedTransformOrigins[i].x + 'px ' + this._initialComputedTransformOrigins[i].y + 'px';
310
- break;
311
- case 'sw-resize':
312
- top = getComputedStyle(designItem.element).top;
313
- designItem.element.style.removeProperty('bottom');
314
- designItem.element.style.top = top;
315
- right = getComputedStyle(designItem.element).right;
316
- designItem.element.style.removeProperty('left');
317
- designItem.element.style.right = right;
318
- designItem.element.style.transformOrigin = 'calc(100% - ' + this._initialComputedTransformOrigins[i].x + 'px) ' + this._initialComputedTransformOrigins[i].y + 'px';
319
- break;
320
- case 'w-resize':
321
- right = getComputedStyle(designItem.element).right;
322
- designItem.element.style.removeProperty('left');
323
- designItem.element.style.right = right;
324
- designItem.element.style.transformOrigin = 'calc(100% - ' + this._initialComputedTransformOrigins[i].x + 'px) ' + this._initialComputedTransformOrigins[i].y + 'px';
325
- break;
326
- case 'nw-resize':
327
- bottom = getComputedStyle(designItem.element).bottom;
328
- designItem.element.style.removeProperty('top');
329
- designItem.element.style.bottom = bottom;
330
- right = getComputedStyle(designItem.element).right;
331
- designItem.element.style.removeProperty('left');
332
- designItem.element.style.right = right;
333
- designItem.element.style.transformOrigin = 'calc(100% - ' + this._initialComputedTransformOrigins[i].x + 'px) ' + 'calc(100% - ' + this._initialComputedTransformOrigins[i].y + 'px)';
334
- break;
335
- case 'n-resize':
336
- bottom = getComputedStyle(designItem.element).bottom;
337
- designItem.element.style.removeProperty('top');
338
- designItem.element.style.bottom = bottom;
339
- designItem.element.style.transformOrigin = 'calc(100% - ' + this._initialComputedTransformOrigins[i].x + 'px) ' + 'calc(100% - ' + this._initialComputedTransformOrigins[i].y + 'px)';
340
- break;
341
- case 'ne-resize':
342
- bottom = getComputedStyle(designItem.element).bottom;
343
- designItem.element.style.removeProperty('top');
344
- designItem.element.style.bottom = bottom;
345
- left = getComputedStyle(designItem.element).left;
346
- designItem.element.style.removeProperty('right');
347
- designItem.element.style.left = left;
348
- designItem.element.style.transformOrigin = this._initialComputedTransformOrigins[i].x + 'px ' + 'calc(100% - ' + this._initialComputedTransformOrigins[i].y + 'px)';
349
- break;
350
- }
351
- }
352
- dispose() {
353
- this._removeAllOverlays();
354
- }
355
- }
@@ -1,12 +0,0 @@
1
- import { IDesignerExtensionProvider } from './IDesignerExtensionProvider.js';
2
- import { IDesignItem } from '../../../item/IDesignItem.js';
3
- import { IDesignerCanvas } from '../IDesignerCanvas.js';
4
- import { IDesignerExtension } from './IDesignerExtension.js';
5
- import { IExtensionManager } from './IExtensionManger.js';
6
- export declare class ResizeExtensionProvider implements IDesignerExtensionProvider {
7
- private resizeAllSelected;
8
- constructor(resizeAllSelected?: boolean);
9
- shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
10
- getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
11
- readonly style: CSSStyleSheet;
12
- }
@@ -1,20 +0,0 @@
1
- import { ResizeExtension } from './ResizeExtension.js';
2
- import { css } from "@node-projects/base-custom-webcomponent";
3
- import { NodeType } from "../../../item/NodeType.js";
4
- export class ResizeExtensionProvider {
5
- resizeAllSelected;
6
- constructor(resizeAllSelected = false) {
7
- this.resizeAllSelected = resizeAllSelected;
8
- }
9
- shouldExtend(extensionManager, designerView, designItem) {
10
- if (designItem.element instanceof SVGElement)
11
- return false;
12
- return designItem.nodeType == NodeType.Element;
13
- }
14
- getExtension(extensionManager, designerView, designItem) {
15
- return new ResizeExtension(extensionManager, designerView, designItem, this.resizeAllSelected);
16
- }
17
- style = css `
18
- .svg-primary-resizer { stroke: #3899ec; fill: white; pointer-events: all }
19
- `;
20
- }
@@ -1,9 +0,0 @@
1
- import { IDesignerExtensionProvider } from '../IDesignerExtensionProvider.js';
2
- import { IDesignItem } from '../../../../item/IDesignItem.js';
3
- import { IDesignerCanvas } from '../../IDesignerCanvas.js';
4
- import { IDesignerExtension } from '../IDesignerExtension.js';
5
- import { IExtensionManager } from '../IExtensionManger.js';
6
- export declare class RectExtentionProvider implements IDesignerExtensionProvider {
7
- shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): boolean;
8
- getExtension(extensionManager: IExtensionManager, designerView: IDesignerCanvas, designItem: IDesignItem): IDesignerExtension;
9
- }