@node-projects/web-component-designer 0.1.96 → 0.1.97
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/LayoutHelper.d.ts +1 -0
- package/dist/elements/helper/LayoutHelper.js +10 -4
- package/dist/elements/services/DefaultServiceBootstrap.js +2 -1
- package/dist/elements/services/ServiceContainer.d.ts +1 -0
- package/dist/elements/services/ServiceContainer.js +2 -1
- package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +29 -28
- package/dist/elements/widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.d.ts +7 -0
- package/dist/elements/widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js +16 -0
- package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons copy.d.ts +5 -0
- package/dist/elements/widgets/designerView/extensions/buttons/StylesheetServiceDesignViewConfigButtons copy.js +7 -0
- package/dist/elements/widgets/designerView/tools/DrawElementTool.js +10 -9
- package/package.json +1 -1
|
@@ -6,3 +6,4 @@ import { IDesignItem } from "../item/IDesignItem.js";
|
|
|
6
6
|
export declare function filterChildPlaceItems(items: IDesignItem[]): IDesignItem[];
|
|
7
7
|
export declare function getDesignItemCurrentPos(designItem: IDesignItem, mode: 'position' | 'transform' | 'margin' | 'padding'): IPoint;
|
|
8
8
|
export declare function placeDesignItem(container: IDesignItem, designItem: IDesignItem, offset: IPoint, mode: 'position' | 'transform' | 'margin' | 'padding'): void;
|
|
9
|
+
export declare function roundValue(designItem: IDesignItem, value: number): string | number;
|
|
@@ -71,15 +71,21 @@ export function placeDesignItem(container, designItem, offset, mode) {
|
|
|
71
71
|
if (!hasPositionedLayout)
|
|
72
72
|
designItem.setStyle('position', 'absolute');
|
|
73
73
|
if (oldLeft || oldRight == null)
|
|
74
|
-
designItem.setStyle('left', (offset.x + (oldLeft ?? 0) + containerLeft) + "px");
|
|
74
|
+
designItem.setStyle('left', roundValue(designItem, offset.x + (oldLeft ?? 0) + containerLeft) + "px");
|
|
75
75
|
if (oldTop || oldBottom == null)
|
|
76
|
-
designItem.setStyle('top', (offset.y + (oldTop ?? 0) + containerTop) + "px");
|
|
76
|
+
designItem.setStyle('top', roundValue(designItem, offset.y + (oldTop ?? 0) + containerTop) + "px");
|
|
77
77
|
if (oldRight)
|
|
78
|
-
designItem.setStyle('right', ((oldRight ?? 0) - offset.x + containerRight) + "px");
|
|
78
|
+
designItem.setStyle('right', roundValue(designItem, (oldRight ?? 0) - offset.x + containerRight) + "px");
|
|
79
79
|
if (oldBottom)
|
|
80
|
-
designItem.setStyle('bottom', ((oldBottom ?? 0) - offset.y + containerBottom) + "px");
|
|
80
|
+
designItem.setStyle('bottom', roundValue(designItem, (oldBottom ?? 0) - offset.y + containerBottom) + "px");
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
export function roundValue(designItem, value) {
|
|
84
|
+
if (designItem.serviceContainer.options.roundPixelsToDecimalPlaces >= 0) {
|
|
85
|
+
return value.toFixed(designItem.serviceContainer.options.roundPixelsToDecimalPlaces);
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
83
89
|
/*function placeViaPosition(container: IDesignItem, designItem: IDesignItem, offset: IPoint, mode: 'position' | 'transform' | 'margin' | 'padding') {
|
|
84
90
|
|
|
85
91
|
}*/
|
|
@@ -85,6 +85,7 @@ import { DragDropService } from './dragDropService/DragDropService.js';
|
|
|
85
85
|
import { EventsService } from './eventsService/EventsService.js';
|
|
86
86
|
import { SimpleDemoProviderService } from './demoProviderService/SimpleDemoProviderService.js';
|
|
87
87
|
import { DrawElementTool } from '../widgets/designerView/tools/DrawElementTool.js';
|
|
88
|
+
import { RoundPixelsDesignViewConfigButton } from '../widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js';
|
|
88
89
|
export function createDefaultServiceContainer() {
|
|
89
90
|
let serviceContainer = new ServiceContainer();
|
|
90
91
|
let defaultPlacementService = new DefaultPlacementService();
|
|
@@ -180,7 +181,7 @@ export function createDefaultServiceContainer() {
|
|
|
180
181
|
serviceContainer.designerPointerExtensions.push(
|
|
181
182
|
//new CursorLinePointerExtensionProvider()
|
|
182
183
|
);
|
|
183
|
-
serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new StylesheetServiceDesignViewConfigButtons());
|
|
184
|
+
serviceContainer.designViewConfigButtons.push(new ButtonSeperatorProvider(20), new GridExtensionDesignViewConfigButtons(), new FlexboxExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new InvisibleElementExtensionDesignViewConfigButtons(), new ButtonSeperatorProvider(10), new StylesheetServiceDesignViewConfigButtons(), new ButtonSeperatorProvider(30), new RoundPixelsDesignViewConfigButton());
|
|
184
185
|
serviceContainer.designViewToolbarButtons.push(new PointerToolButtonProvider(), new SeperatorToolProvider(22), new SelectorToolButtonProvider(), new SeperatorToolProvider(22), new ZoomToolButtonProvider(), new SeperatorToolProvider(22), new DrawToolButtonProvider(), new SeperatorToolProvider(22), new TextToolButtonProvider(), new SeperatorToolProvider(22), new TransformToolButtonProvider());
|
|
185
186
|
serviceContainer.designerContextMenuExtensions = [
|
|
186
187
|
new CopyPasteContextMenu(),
|
|
@@ -93,6 +93,7 @@ export declare class ServiceContainer extends BaseServiceContainer<ServiceNameMa
|
|
|
93
93
|
readonly globalContext: GlobalContext;
|
|
94
94
|
readonly options: {
|
|
95
95
|
zoomDesignerBackground: boolean;
|
|
96
|
+
roundPixelsToDecimalPlaces: number;
|
|
96
97
|
};
|
|
97
98
|
readonly designerTools: Map<string | NamedTools, ITool | (new (IElementDefinition: any) => ITool)>;
|
|
98
99
|
get bindingService(): IBindingService;
|
|
@@ -22,7 +22,8 @@ export class ServiceContainer extends BaseServiceContainer {
|
|
|
22
22
|
designerContextMenuExtensions;
|
|
23
23
|
globalContext = new GlobalContext(this);
|
|
24
24
|
options = {
|
|
25
|
-
zoomDesignerBackground: true
|
|
25
|
+
zoomDesignerBackground: true,
|
|
26
|
+
roundPixelsToDecimalPlaces: -1
|
|
26
27
|
};
|
|
27
28
|
designerTools = new Map();
|
|
28
29
|
get bindingService() {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventNames } from '../../../../enums/EventNames.js';
|
|
2
2
|
import { getContentBoxContentOffsets } from '../../../helper/ElementHelper.js';
|
|
3
|
+
import { roundValue } from '../../../helper/LayoutHelper.js';
|
|
3
4
|
import { transformPointByInverseMatrix, getDesignerCanvasNormalizedTransformedCornerDOMPoints, normalizeToAbsolutePosition, getElementCombinedTransform } from "../../../helper/TransformHelper.js";
|
|
4
5
|
import { AbstractExtension } from './AbstractExtension.js';
|
|
5
6
|
//TODO: use PlacementService, size is not always width/height could also be margin etc...
|
|
@@ -124,108 +125,108 @@ export class ResizeExtension extends AbstractExtension {
|
|
|
124
125
|
switch (this._actionModeStarted) {
|
|
125
126
|
case 'e-resize':
|
|
126
127
|
width = (this._initialSizes[i].width + deltaX);
|
|
127
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
128
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
128
129
|
if (this.resizeAllSelected) {
|
|
129
130
|
i++;
|
|
130
131
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
131
132
|
if (designItem !== this.extendedItem) {
|
|
132
|
-
designItem.element.style.width = this._initialSizes[i].width + deltaX + 'px';
|
|
133
|
+
designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width + deltaX) + 'px';
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
break;
|
|
137
138
|
case 'se-resize':
|
|
138
139
|
width = (this._initialSizes[i].width + deltaX);
|
|
139
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
140
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
140
141
|
height = (this._initialSizes[i].height + deltaY);
|
|
141
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
142
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
142
143
|
if (this.resizeAllSelected) {
|
|
143
144
|
i++;
|
|
144
145
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
145
146
|
if (designItem !== this.extendedItem) {
|
|
146
|
-
designItem.element.style.width = this._initialSizes[i].width + deltaX + 'px';
|
|
147
|
-
designItem.element.style.height = this._initialSizes[i].height + deltaY + 'px';
|
|
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';
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
break;
|
|
152
153
|
case 's-resize':
|
|
153
154
|
height = (this._initialSizes[i].height + deltaY);
|
|
154
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
155
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
155
156
|
if (this.resizeAllSelected) {
|
|
156
157
|
i++;
|
|
157
158
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
158
159
|
if (designItem !== this.extendedItem) {
|
|
159
|
-
designItem.element.style.height = this._initialSizes[i].height + deltaY + 'px';
|
|
160
|
+
designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height + deltaY) + 'px';
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
}
|
|
163
164
|
break;
|
|
164
165
|
case 'sw-resize':
|
|
165
166
|
width = (this._initialSizes[i].width - deltaX);
|
|
166
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
167
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
167
168
|
height = (this._initialSizes[i].height + deltaY);
|
|
168
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
169
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
169
170
|
if (this.resizeAllSelected) {
|
|
170
171
|
i++;
|
|
171
172
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
172
173
|
if (designItem !== this.extendedItem) {
|
|
173
|
-
designItem.element.style.width = this._initialSizes[i].width - deltaX + 'px';
|
|
174
|
-
designItem.element.style.height = this._initialSizes[i].height + deltaY + 'px';
|
|
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';
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
179
|
break;
|
|
179
180
|
case 'w-resize':
|
|
180
181
|
width = (this._initialSizes[i].width - deltaX);
|
|
181
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
182
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
182
183
|
if (this.resizeAllSelected) {
|
|
183
184
|
i++;
|
|
184
185
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
185
186
|
if (designItem !== this.extendedItem) {
|
|
186
|
-
designItem.element.style.width = this._initialSizes[i].width - deltaX + 'px';
|
|
187
|
+
designItem.element.style.width = roundValue(this.extendedItem, this._initialSizes[i].width - deltaX) + 'px';
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
break;
|
|
191
192
|
case 'nw-resize':
|
|
192
193
|
width = (this._initialSizes[i].width - deltaX);
|
|
193
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
194
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
194
195
|
height = (this._initialSizes[i].height - deltaY);
|
|
195
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
196
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
196
197
|
if (this.resizeAllSelected) {
|
|
197
198
|
i++;
|
|
198
199
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
199
200
|
if (designItem !== this.extendedItem) {
|
|
200
|
-
designItem.element.style.width = this._initialSizes[i].width - deltaX + 'px';
|
|
201
|
-
designItem.element.style.height = this._initialSizes[i].height - deltaY + 'px';
|
|
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';
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
}
|
|
205
206
|
break;
|
|
206
207
|
case 'n-resize':
|
|
207
208
|
height = (this._initialSizes[i].height - deltaY);
|
|
208
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
209
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
209
210
|
if (this.resizeAllSelected) {
|
|
210
211
|
i++;
|
|
211
212
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
212
213
|
if (designItem !== this.extendedItem) {
|
|
213
|
-
designItem.element.style.height = this._initialSizes[i].height - deltaY + 'px';
|
|
214
|
+
designItem.element.style.height = roundValue(this.extendedItem, this._initialSizes[i].height - deltaY) + 'px';
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
218
|
break;
|
|
218
219
|
case 'ne-resize':
|
|
219
220
|
width = (this._initialSizes[i].width + deltaX);
|
|
220
|
-
this.extendedItem.element.style.width = width + 'px';
|
|
221
|
+
this.extendedItem.element.style.width = roundValue(this.extendedItem, width) + 'px';
|
|
221
222
|
height = (this._initialSizes[i].height - deltaY);
|
|
222
|
-
this.extendedItem.element.style.height = height + 'px';
|
|
223
|
+
this.extendedItem.element.style.height = roundValue(this.extendedItem, height) + 'px';
|
|
223
224
|
if (this.resizeAllSelected) {
|
|
224
225
|
i++;
|
|
225
226
|
for (const designItem of this.designerCanvas.instanceServiceContainer.selectionService.selectedElements) {
|
|
226
227
|
if (designItem !== this.extendedItem) {
|
|
227
|
-
designItem.element.style.width = this._initialSizes[i].width + deltaX + 'px';
|
|
228
|
-
designItem.element.style.height = this._initialSizes[i].height - deltaY + 'px';
|
|
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';
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
232
|
}
|
|
@@ -242,8 +243,8 @@ export class ResizeExtension extends AbstractExtension {
|
|
|
242
243
|
let cg = this.extendedItem.openGroup((this.resizeAllSelected && this.designerCanvas.instanceServiceContainer.selectionService.selectedElements.length > 1) ? "Resize Elements" : "Resize <" + this.extendedItem.name + ">");
|
|
243
244
|
this.extendedItem.setStyle('width', this.extendedItem.element.style.width);
|
|
244
245
|
this.extendedItem.setStyle('height', this.extendedItem.element.style.height);
|
|
245
|
-
this.extendedItem.setStyle('left', normalizeToAbsolutePosition(this.extendedItem.element, 'left'));
|
|
246
|
-
this.extendedItem.setStyle('top', normalizeToAbsolutePosition(this.extendedItem.element, 'top'));
|
|
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');
|
|
247
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', '')));
|
|
248
249
|
this.extendedItem.element.style.transformOrigin = this._initialTransformOrigins[0];
|
|
249
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', '')));
|
|
@@ -268,8 +269,8 @@ export class ResizeExtension extends AbstractExtension {
|
|
|
268
269
|
if (designItem !== this.extendedItem) {
|
|
269
270
|
designItem.setStyle('width', designItem.element.style.width);
|
|
270
271
|
designItem.setStyle('height', designItem.element.style.height);
|
|
271
|
-
designItem.setStyle('left', normalizeToAbsolutePosition(designItem.element, 'left'));
|
|
272
|
-
designItem.setStyle('top', normalizeToAbsolutePosition(designItem.element, 'top'));
|
|
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');
|
|
273
274
|
}
|
|
274
275
|
}
|
|
275
276
|
}
|
package/dist/elements/widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DesignerView } from "../../designerView.js";
|
|
2
|
+
import { IDesignerCanvas } from '../../IDesignerCanvas.js';
|
|
3
|
+
import { IDesignViewConfigButtonsProvider } from "./IDesignViewConfigButtonsProvider.js";
|
|
4
|
+
export declare class RoundPixelsDesignViewConfigButton implements IDesignViewConfigButtonsProvider {
|
|
5
|
+
constructor();
|
|
6
|
+
provideButtons(designerView: DesignerView, designerCanvas: IDesignerCanvas): HTMLElement[];
|
|
7
|
+
}
|
package/dist/elements/widgets/designerView/extensions/buttons/RoundPixelsDesignViewConfigButton.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class RoundPixelsDesignViewConfigButton {
|
|
2
|
+
constructor() { }
|
|
3
|
+
provideButtons(designerView, designerCanvas) {
|
|
4
|
+
const btn = document.createElement('div');
|
|
5
|
+
btn.className = 'toolbar-control';
|
|
6
|
+
btn.title = 'round pixels to';
|
|
7
|
+
const ip = document.createElement('input');
|
|
8
|
+
ip.type = 'number';
|
|
9
|
+
ip.step = '1';
|
|
10
|
+
ip.min = '-1';
|
|
11
|
+
ip.valueAsNumber = designerView.serviceContainer.options.roundPixelsToDecimalPlaces;
|
|
12
|
+
ip.onchange = () => designerView.serviceContainer.options.roundPixelsToDecimalPlaces = ip.valueAsNumber;
|
|
13
|
+
btn.appendChild(ip);
|
|
14
|
+
return [btn];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
|
|
2
|
+
export declare const enableStylesheetService = "enableStylesheetService";
|
|
3
|
+
export declare class StylesheetServiceDesignViewConfigButtons extends AbstractDesignViewConfigButton {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AbstractDesignViewConfigButton } from "./AbstractDesignViewConfigButton.js";
|
|
2
|
+
export const enableStylesheetService = 'enableStylesheetService';
|
|
3
|
+
export class StylesheetServiceDesignViewConfigButtons extends AbstractDesignViewConfigButton {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(enableStylesheetService, "ss", "modify Stylesheet");
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventNames } from '../../../../enums/EventNames.js';
|
|
2
|
+
import { roundValue } from '../../../helper/LayoutHelper.js';
|
|
2
3
|
import { OverlayLayer } from '../extensions/OverlayLayer.js';
|
|
3
4
|
export class DrawElementTool {
|
|
4
5
|
_elementDefinition;
|
|
@@ -38,8 +39,8 @@ export class DrawElementTool {
|
|
|
38
39
|
this._changeGroup = designerCanvas.rootDesignItem.openGroup("Insert Item");
|
|
39
40
|
this._createdItem = await designerCanvas.serviceContainer.forSomeServicesTillResult("instanceService", (service) => service.getElement(this._elementDefinition, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer));
|
|
40
41
|
this._createdItem.setStyle('position', 'absolute');
|
|
41
|
-
this._createdItem.setStyle('left', evPos.x + 'px');
|
|
42
|
-
this._createdItem.setStyle('top', evPos.y + 'px');
|
|
42
|
+
this._createdItem.setStyle('left', roundValue(this._createdItem, evPos.x) + 'px');
|
|
43
|
+
this._createdItem.setStyle('top', roundValue(this._createdItem, evPos.y) + 'px');
|
|
43
44
|
this._createdItem.setStyle('width', '0');
|
|
44
45
|
this._createdItem.setStyle('height', '0');
|
|
45
46
|
this._createdItem.element.style.overflow = 'hidden';
|
|
@@ -54,20 +55,20 @@ export class DrawElementTool {
|
|
|
54
55
|
this._rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
|
|
55
56
|
designerCanvas.overlayLayer.addOverlay(this.constructor.name, this._rect, OverlayLayer.Foreground);
|
|
56
57
|
this._rect.setAttribute('class', 'svg-draw-new-element');
|
|
57
|
-
this._rect.setAttribute('x', (this._startPosition.x));
|
|
58
|
-
this._rect.setAttribute('y', (this._startPosition.y));
|
|
58
|
+
this._rect.setAttribute('x', roundValue(this._createdItem, this._startPosition.x));
|
|
59
|
+
this._rect.setAttribute('y', roundValue(this._createdItem, this._startPosition.y));
|
|
59
60
|
}
|
|
60
|
-
const w = evPos.x - this._startPosition.x;
|
|
61
|
-
const h = evPos.y - this._startPosition.y;
|
|
62
|
-
if (w >= 0) {
|
|
61
|
+
const w = roundValue(this._createdItem, evPos.x - this._startPosition.x);
|
|
62
|
+
const h = roundValue(this._createdItem, evPos.y - this._startPosition.y);
|
|
63
|
+
if (parseFloat('' + w) >= 0) {
|
|
63
64
|
this._rect.setAttribute('width', w);
|
|
64
65
|
this._createdItem.setStyle('width', w + 'px');
|
|
65
66
|
}
|
|
66
|
-
if (h >= 0) {
|
|
67
|
+
if (parseFloat('' + h) >= 0) {
|
|
67
68
|
this._rect.setAttribute('height', h);
|
|
68
69
|
this._createdItem.setStyle('height', h + 'px');
|
|
69
70
|
}
|
|
70
|
-
if (w > 5 || h > 5)
|
|
71
|
+
if (parseFloat('' + w) > 5 || parseFloat('' + h) > 5)
|
|
71
72
|
this.sizeOverlapThreshold = true;
|
|
72
73
|
}
|
|
73
74
|
}
|