@node-projects/web-component-designer 0.1.194 → 0.1.197

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 (74) hide show
  1. package/dist/elements/item/DesignItem.js +1 -1
  2. package/dist/elements/item/DesignItem.js.map +1 -1
  3. package/dist/elements/services/eventsService/EventsService.d.ts +15 -15
  4. package/dist/elements/services/eventsService/EventsService.js +18 -19
  5. package/dist/elements/services/eventsService/EventsService.js.map +1 -1
  6. package/dist/elements/services/eventsService/IEventsService.d.ts +2 -2
  7. package/dist/elements/services/eventsService/WebcomponentManifestEventsService.d.ts +11 -0
  8. package/dist/elements/services/eventsService/WebcomponentManifestEventsService.js +47 -0
  9. package/dist/elements/services/eventsService/WebcomponentManifestEventsService.js.map +1 -0
  10. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.d.ts +5 -0
  11. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +22 -0
  12. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/dist/elements/services/propertiesService/services/BasicWebcomponentPropertiesService copy.d.ts +0 -21
  18. package/dist/elements/services/propertiesService/services/BasicWebcomponentPropertiesService copy.js +0 -243
  19. package/dist/elements/services/propertiesService/services/CssPropertiesService copy.d.ts +0 -25
  20. package/dist/elements/services/propertiesService/services/CssPropertiesService copy.js +0 -126
  21. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService copy.d.ts +0 -21
  22. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService copy.js +0 -243
  23. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.d.ts +0 -6
  24. package/dist/elements/services/selectionService/ISelectionChangedEvent copy.js +0 -1
  25. package/dist/elements/services/stylesheetService/ISpecifity.d.ts +0 -0
  26. package/dist/elements/services/stylesheetService/ISpecifity.js +0 -1
  27. package/dist/elements/services/stylesheetService/SpecifityCalculator.d.ts +0 -3
  28. package/dist/elements/services/stylesheetService/SpecifityCalculator.js +0 -123
  29. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.d.ts +0 -9
  30. package/dist/elements/widgets/designerView/extensions/AbstractToolbarExtension.js +0 -30
  31. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.d.ts +0 -20
  32. package/dist/elements/widgets/designerView/extensions/BasicDisplayToolbarExtension.js +0 -68
  33. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.d.ts +0 -12
  34. package/dist/elements/widgets/designerView/extensions/BlockToolbarExtension.js +0 -40
  35. package/dist/elements/widgets/designerView/extensions/CanvasExtension.d.ts +0 -10
  36. package/dist/elements/widgets/designerView/extensions/CanvasExtension.js +0 -31
  37. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.d.ts +0 -10
  38. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +0 -15
  39. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.d.ts +0 -13
  40. package/dist/elements/widgets/designerView/extensions/ConditionExtensionProvider.js +0 -18
  41. package/dist/elements/widgets/designerView/extensions/EditTextExtension.d.ts +0 -18
  42. package/dist/elements/widgets/designerView/extensions/EditTextExtension.js +0 -107
  43. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension copy.d.ts +0 -15
  44. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension copy.js +0 -68
  45. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider copy.d.ts +0 -10
  46. package/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider copy.js +0 -13
  47. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.d.ts +0 -12
  48. package/dist/elements/widgets/designerView/extensions/GridToolbarExtension.js +0 -58
  49. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.d.ts +0 -12
  50. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtension.js +0 -34
  51. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.d.ts +0 -9
  52. package/dist/elements/widgets/designerView/extensions/block/FlexToolbarExtensionProvider.js +0 -12
  53. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.d.ts +0 -4
  54. package/dist/elements/widgets/designerView/extensions/buttons/GridExtensionDesignViewConfigButtons copy.js +0 -7
  55. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu copy.d.ts +0 -9
  56. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu copy.js +0 -17
  57. package/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu copy.d.ts +0 -8
  58. package/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu copy.js +0 -13
  59. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.d.ts +0 -12
  60. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtension.js +0 -66
  61. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.d.ts +0 -10
  62. package/dist/elements/widgets/designerView/extensions/flex/GridToolbarExtensionProvider.js +0 -17
  63. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.d.ts +0 -12
  64. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtension copy.js +0 -66
  65. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.d.ts +0 -10
  66. package/dist/elements/widgets/designerView/extensions/grid/GridToolbarExtensionProvider copy.js +0 -17
  67. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.d.ts +0 -28
  68. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtension.js +0 -355
  69. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.d.ts +0 -12
  70. package/dist/elements/widgets/designerView/extensions/grid/ResizeExtensionProvider.js +0 -20
  71. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.d.ts +0 -9
  72. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider copy.js +0 -14
  73. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.d.ts +0 -30
  74. package/dist/elements/widgets/designerView/extensions/svg/SvgBaseExtension.js +0 -181
@@ -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
- }
@@ -1,14 +0,0 @@
1
- import { RectExtension } from './RectExtension.js';
2
- import { isVisualSvgElement } from '../../../../helper/SvgHelper.js';
3
- export class RectExtentionProvider {
4
- shouldExtend(extensionManager, designerView, designItem) {
5
- if (designItem.node instanceof SVGRectElement) {
6
- return isVisualSvgElement(designItem.node);
7
- ;
8
- }
9
- return false;
10
- }
11
- getExtension(extensionManager, designerView, designItem) {
12
- return new RectExtension(extensionManager, designerView, designItem);
13
- }
14
- }
@@ -1,30 +0,0 @@
1
- import { IPoint } from '../../../../../interfaces/IPoint.js';
2
- import { IRect } from '../../../../../interfaces/IRect.js';
3
- import { IDesignItem } from '../../../../item/IDesignItem.js';
4
- import { IDesignerCanvas } from '../../IDesignerCanvas.js';
5
- import { AbstractExtension } from '../AbstractExtension.js';
6
- import { IExtensionManager } from '../IExtensionManger.js';
7
- export declare class RectExtension extends AbstractExtension {
8
- constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
9
- extend(): void;
10
- refresh(): void;
11
- pointerEvent(event: PointerEvent, circle: SVGCircleElement, r: SVGRectElement, index: number): void;
12
- _drawPathCircle(point: IPoint, changedCallback: () => void): void;
13
- _redrawPathCircle(x: number, y: number, oldCircle: SVGCircleElement): SVGCircleElement;
14
- _calculateRect(x: number, y: number, w: number, h: number): {
15
- x: number;
16
- y: number;
17
- w: number;
18
- h: number;
19
- };
20
- _getPointsFromRect(elementCoords: IRect): number[];
21
- _getMinMaxValues(coords: any): {
22
- xMin: number;
23
- xMax: number;
24
- yMin: number;
25
- yMax: number;
26
- };
27
- _rearrangeSvgParent(newRectExtrema: any): void;
28
- _rearrangePointsFromElement(oldParentCoords: IRect): void;
29
- dispose(): void;
30
- }
@@ -1,181 +0,0 @@
1
- import { EventNames } from '../../../../../enums/EventNames.js';
2
- import { AbstractExtension } from '../AbstractExtension.js';
3
- export class RectExtension extends AbstractExtension {
4
- constructor(extensionManager, designerView, extendedItem) {
5
- super(extensionManager, designerView, extendedItem);
6
- }
7
- extend() {
8
- this.refresh();
9
- }
10
- refresh() {
11
- }
12
- pointerEvent(event, circle, r, index) {
13
- event.stopPropagation();
14
- const cursorPos = this.designerCanvas.getNormalizedEventCoordinates(event);
15
- switch (event.type) {
16
- case EventNames.PointerDown:
17
- event.target.setPointerCapture(event.pointerId);
18
- this._startPos = cursorPos;
19
- this._circlePos = { x: parseFloat(circle.getAttribute("cx")), y: parseFloat(circle.getAttribute("cy")) };
20
- this._originalPoint = { x: this._x, y: this._y };
21
- this._parentCoordinates = this.designerCanvas.getNormalizedElementCoordinates(this._rectElement.parentElement);
22
- break;
23
- case EventNames.PointerMove:
24
- if (this._startPos && event.buttons > 0) {
25
- this._deltaScrollOffset = {
26
- x: this._startScrollOffset.x - this.designerCanvas.canvasOffset.x,
27
- y: this._startScrollOffset.y - this.designerCanvas.canvasOffset.y
28
- };
29
- this._lastPos = { x: this._startPos.x, y: this._startPos.y };
30
- const cx = cursorPos.x - this._lastPos.x + this._circlePos.x;
31
- const cy = cursorPos.y - this._lastPos.y + this._circlePos.y;
32
- let dx = cx - this._circlePos.x;
33
- let dy = cy - this._circlePos.y;
34
- if (dx != 0 || dy != 0)
35
- this._circleMoved = true;
36
- if (event.shiftKey) {
37
- if (Math.abs(dx) < Math.abs(dy)) {
38
- dx = 0;
39
- }
40
- else {
41
- dy = 0;
42
- }
43
- }
44
- switch (index) {
45
- case 0:
46
- this._rect = this._calculateRect(this._originalPoint.x + dx, this._originalPoint.y + dy, this._w - dx, this._h - dy);
47
- break;
48
- case 1:
49
- this._rect = this._calculateRect(this._originalPoint.x, this._originalPoint.y + dy, this._w + dx, this._h - dy);
50
- break;
51
- case 2:
52
- this._rect = this._calculateRect(this._originalPoint.x, this._originalPoint.y, this._w + dx, this._h + dy);
53
- break;
54
- case 3:
55
- this._rect = this._calculateRect(this._originalPoint.x + dx, this._originalPoint.y, this._w - dx, this._h + dy);
56
- break;
57
- }
58
- r.setAttribute("x", this._rect.x.toString());
59
- r.setAttribute("y", this._rect.y.toString());
60
- r.setAttribute("width", this._rect.w.toString());
61
- r.setAttribute("height", this._rect.h.toString());
62
- circle.setAttribute("cx", (this._circlePos.x + dx).toString());
63
- circle.setAttribute("cy", (this._circlePos.y + dy).toString());
64
- this.designerCanvas.extensionManager.refreshAllExtensions([this.extendedItem], this);
65
- this._redrawPathCircle(this._rect.x, this._rect.y, this._circle1);
66
- this._redrawPathCircle(this._rect.x + this._rect.w, this._rect.y, this._circle2);
67
- this._redrawPathCircle(this._rect.x + this._rect.w, this._rect.y + this._rect.h, this._circle3);
68
- this._redrawPathCircle(this._rect.x, this._rect.y + this._rect.h, this._circle4);
69
- }
70
- break;
71
- case EventNames.PointerUp:
72
- event.target.releasePointerCapture(event.pointerId);
73
- this._startPos = null;
74
- this._circlePos = null;
75
- this._originalPoint = null;
76
- if (this._circleMoved) {
77
- this.extendedItem.setAttribute("x", this._rect.x.toString());
78
- this.extendedItem.setAttribute("y", this._rect.y.toString());
79
- this.extendedItem.setAttribute("width", this._rect.w.toString());
80
- this.extendedItem.setAttribute("height", this._rect.h.toString());
81
- }
82
- if (getComputedStyle(this._rectElement.parentElement).position == "absolute") {
83
- let group = this.extendedItem.openGroup('rearrangeSvg');
84
- let newRectCoordinates = this.designerCanvas.getNormalizedElementCoordinates(this._rectElement);
85
- let newRectCoordinatesCloud = this._getPointsFromRect(newRectCoordinates);
86
- let newRectExtrema = this._getMinMaxValues(newRectCoordinatesCloud);
87
- this._rearrangeSvgParent(newRectExtrema);
88
- this._rearrangePointsFromElement(this._parentCoordinates);
89
- group.commit();
90
- }
91
- break;
92
- }
93
- }
94
- _drawPathCircle(point, changedCallback) {
95
- let newCircle = this._drawCircle((this._parentRect.x - this.designerCanvas.containerBoundingRect.x) / this.designerCanvas.scaleFactor + point.x, (this._parentRect.y - this.designerCanvas.containerBoundingRect.y) / this.designerCanvas.scaleFactor + point.y, 5 / this.designerCanvas.scaleFactor, 'svg-path', circle);
96
- newCircle.style.strokeWidth = (1 / this.designerCanvas.zoomFactor).toString();
97
- /*if (!circle) {
98
- newCircle.addEventListener(EventNames.PointerDown, event => this.pointerEvent(event, newCircle, r, index));
99
- newCircle.addEventListener(EventNames.PointerMove, event => this.pointerEvent(event, newCircle, r, index));
100
- newCircle.addEventListener(EventNames.PointerUp, event => this.pointerEvent(event, newCircle, r, index));
101
- }
102
- return newCircle;*/
103
- }
104
- _redrawPathCircle(x, y, oldCircle) {
105
- let circle = this._drawCircle((this._parentRect.x - this.designerCanvas.containerBoundingRect.x) / this.designerCanvas.scaleFactor + x - this._deltaScrollOffset.x, (this._parentRect.y - this.designerCanvas.containerBoundingRect.y) / this.designerCanvas.scaleFactor + y - this._deltaScrollOffset.y, 5 / this.designerCanvas.scaleFactor, 'svg-path', oldCircle);
106
- circle.style.strokeWidth = (1 / this.designerCanvas.zoomFactor).toString();
107
- return circle;
108
- }
109
- _calculateRect(x, y, w, h) {
110
- let rect = { x: 0, y: 0, w: 0, h: 0 };
111
- if (w >= 0) {
112
- rect.x = x;
113
- rect.w = w;
114
- }
115
- else {
116
- rect.x = x + w;
117
- rect.w = -w;
118
- }
119
- if (h >= 0) {
120
- rect.y = y;
121
- rect.h = h;
122
- }
123
- else {
124
- rect.y = y + h;
125
- rect.h = -h;
126
- }
127
- return rect;
128
- }
129
- _getPointsFromRect(elementCoords) {
130
- let Coords = [];
131
- Coords.push(elementCoords.x);
132
- Coords.push(elementCoords.x + elementCoords.width);
133
- Coords.push(elementCoords.x);
134
- Coords.push(elementCoords.x + elementCoords.width);
135
- Coords.push(elementCoords.y);
136
- Coords.push(elementCoords.y);
137
- Coords.push(elementCoords.y + elementCoords.height);
138
- Coords.push(elementCoords.y + elementCoords.height);
139
- Coords.push(elementCoords.height);
140
- Coords.push(elementCoords.width);
141
- return Coords;
142
- }
143
- _getMinMaxValues(coords) {
144
- let extrema = { xMin: 0.0, xMax: 0.0, yMin: 0.0, yMax: 0.0 };
145
- for (let i = 0; i < coords.length - 2; i++) {
146
- if (coords[i] < coords[i + 1] && i <= 3) {
147
- extrema.xMin = coords[i];
148
- }
149
- else if (coords[i] < coords[i + 1] && i > 3 && i <= 7) {
150
- extrema.yMin = coords[i];
151
- }
152
- if (coords[i] > coords[i + 1] && i <= 3) {
153
- extrema.xMax = coords[i];
154
- }
155
- else if (coords[i] > coords[i + 1] && i > 3 && i <= 8) {
156
- extrema.yMax = coords[i];
157
- }
158
- }
159
- return extrema;
160
- }
161
- _rearrangeSvgParent(newRectExtrema) {
162
- let parentLeft = newRectExtrema.xMin - this._offsetSvg;
163
- let parentTop = newRectExtrema.yMin - this._offsetSvg;
164
- let widthRectElement = newRectExtrema.xMax - newRectExtrema.xMin + (2 * this._offsetSvg);
165
- let heightRectElement = newRectExtrema.yMax - newRectExtrema.yMin + (2 * this._offsetSvg);
166
- this.extendedItem.parent.setStyle("left", parentLeft.toString() + "px");
167
- this.extendedItem.parent.setStyle("top", parentTop.toString() + "px");
168
- this.extendedItem.parent.setStyle("height", Math.round(heightRectElement).toString() + "px");
169
- this.extendedItem.parent.setStyle("width", Math.round(widthRectElement).toString() + "px");
170
- }
171
- _rearrangePointsFromElement(oldParentCoords) {
172
- let newParentCoords = this.designerCanvas.getNormalizedElementCoordinates(this._rectElement.parentElement);
173
- let diffX = oldParentCoords.x - newParentCoords.x;
174
- let diffY = oldParentCoords.y - newParentCoords.y;
175
- this.extendedItem.setAttribute('x', (this._rectElement.x.baseVal.value + diffX).toString());
176
- this.extendedItem.setAttribute('y', (this._rectElement.y.baseVal.value + diffY).toString());
177
- }
178
- dispose() {
179
- this._removeAllOverlays();
180
- }
181
- }