devexpress-diagram 2.2.21 → 2.2.24
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/dx-diagram.css +2 -2
- package/dist/dx-diagram.js +33889 -33410
- package/dist/dx-diagram.min.css +2 -2
- package/dist/dx-diagram.min.js +1 -1
- package/dist/dx-diagram.min.js.LICENSE.txt +2 -2
- package/dist/lib/css/system.scss +0 -2
- package/dist/lib/package.json +9 -11
- package/dist/lib/src/Layout/Structures.ts +0 -6
- package/dist/lib/src/Render/RenderManager.ts +61 -90
- package/package.json +14 -16
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* DevExpress Diagram (dx-diagram.min)
|
|
3
|
-
* Version: 2.2.
|
|
4
|
-
* Build date:
|
|
3
|
+
* Version: 2.2.24
|
|
4
|
+
* Build date: Tue Sep 23 2025
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
|
|
7
7
|
* Read about DevExpress licensing here: https://www.devexpress.com/Support/EULAs
|
package/dist/lib/css/system.scss
CHANGED
|
@@ -4,7 +4,6 @@ $PagesGridColor: rgba(0, 0, 0, 0.15);
|
|
|
4
4
|
$PagesGridLineWidth: 2;
|
|
5
5
|
$GridMajorColor: rgba(0, 0, 0, 0.1);
|
|
6
6
|
$GridMinorColor: rgba(0, 0, 0, 0.05);
|
|
7
|
-
|
|
8
7
|
$FontName: arial, helvetica, sans-serif;
|
|
9
8
|
$FonSize: 10pt;
|
|
10
9
|
$FontColor: black;
|
|
@@ -12,7 +11,6 @@ $FillColor: white;
|
|
|
12
11
|
$LineColor: black;
|
|
13
12
|
$LineWidth: 2;
|
|
14
13
|
$LineWidthPx: 2px;
|
|
15
|
-
|
|
16
14
|
$SelectionBorderColor: dodgerblue;
|
|
17
15
|
$SelectionBorderColorUnfocused: #666;
|
|
18
16
|
$SelectionBackColor: rgba(30, 144, 255, 0.02);
|
package/dist/lib/package.json
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devexpress-diagram",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.24",
|
|
4
4
|
"description": "DevExpress Diagram Control",
|
|
5
5
|
"main": "dist/dx-diagram.min.js",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@devexpress/utils": "^1.4.
|
|
7
|
+
"@devexpress/utils": "^1.4.6",
|
|
8
8
|
"es6-object-assign": "^1.1.0"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@fortawesome/fontawesome-free": "^5.6.3",
|
|
12
12
|
"@types/jasmine": "^3.10.11",
|
|
13
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
14
|
-
"@typescript-eslint/parser": "^
|
|
15
|
-
"bootstrap": "^
|
|
13
|
+
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
14
|
+
"@typescript-eslint/parser": "^5.62.0",
|
|
15
|
+
"bootstrap": "^5.3.8",
|
|
16
16
|
"concurrently": "^8.2.0",
|
|
17
17
|
"copy-webpack-plugin": "^11.0.0",
|
|
18
18
|
"css-loader": "^6.8.1",
|
|
19
19
|
"css-minimizer-webpack-plugin": "^5.0.1",
|
|
20
20
|
"decomment": "^0.9.5",
|
|
21
21
|
"eslint": "^7.3.1",
|
|
22
|
-
"eslint-config-airbnb-typescript": "^8.0.0",
|
|
23
22
|
"eslint-plugin-import": "^2.22.0",
|
|
24
23
|
"eslint-plugin-no-loops": "^0.3.0",
|
|
25
24
|
"eslint-plugin-spellcheck": "0.0.11",
|
|
@@ -32,15 +31,14 @@
|
|
|
32
31
|
"mini-css-extract-plugin": "^2.7.6",
|
|
33
32
|
"node-sass": "^9.0.0",
|
|
34
33
|
"popper.js": "^1.14.6",
|
|
35
|
-
"pre-commit": "^1.2.2",
|
|
36
34
|
"sass-loader": "^13.3.2",
|
|
37
|
-
"stylelint": "^
|
|
38
|
-
"stylelint-config-standard": "^
|
|
39
|
-
"stylelint-scss": "^3.
|
|
35
|
+
"stylelint": "^15.11.0",
|
|
36
|
+
"stylelint-config-standard-scss": "^11.0.0",
|
|
37
|
+
"stylelint-scss": "^5.3.2",
|
|
40
38
|
"terser-webpack-plugin": "^5.3.9",
|
|
41
39
|
"ts-loader": "^9.4.4",
|
|
42
40
|
"ts-node": "^7.0.1",
|
|
43
|
-
"typescript": "^
|
|
41
|
+
"typescript": "^4.9.5",
|
|
44
42
|
"webpack": "^5.88.2",
|
|
45
43
|
"webpack-cli": "^5.1.4",
|
|
46
44
|
"webpack-merge": "^4.2.1",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ItemKey } from "../Model/DiagramItem";
|
|
2
|
-
import { IKeyOwner } from "../Interfaces";
|
|
3
2
|
import { IEdge } from "./Graph";
|
|
4
3
|
|
|
5
4
|
export class Edge implements IEdge {
|
|
@@ -21,11 +20,6 @@ export class Edge implements IEdge {
|
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
export class PositionInfo<T extends IKeyOwner> {
|
|
25
|
-
constructor(public item: T, public position: Position) { }
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
23
|
export enum ConnectionMode {
|
|
30
24
|
Outgoing = 1,
|
|
31
25
|
Incoming = 2,
|
|
@@ -55,10 +55,6 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
55
55
|
|
|
56
56
|
static touchPositionLimit = 4;
|
|
57
57
|
|
|
58
|
-
private mouseDownEventName: string;
|
|
59
|
-
private mouseMoveEventName: string;
|
|
60
|
-
private mouseUpEventName: string;
|
|
61
|
-
|
|
62
58
|
private pointers:Record<string, any> = { };
|
|
63
59
|
|
|
64
60
|
private onPointerDownHandler: any;
|
|
@@ -67,11 +63,8 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
67
63
|
private onPointerCancelHandler: any;
|
|
68
64
|
private onPointerLeaveHandler: any;
|
|
69
65
|
|
|
70
|
-
private
|
|
71
|
-
private
|
|
72
|
-
private onMouseUpHandler: any;
|
|
73
|
-
private onMouseEnterHandler: any;
|
|
74
|
-
private onMouseLeaveHandler: any;
|
|
66
|
+
private onSvgMouseMoveHandler: any;
|
|
67
|
+
private onSvgMouseDownHandler: any;
|
|
75
68
|
private onMouseDblClickHandler: any;
|
|
76
69
|
private onMouseWheelHandler: any;
|
|
77
70
|
private onContextMenuHandler: any;
|
|
@@ -113,7 +106,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
113
106
|
|
|
114
107
|
this.notifyReadOnlyChanged(settings.readOnly);
|
|
115
108
|
}
|
|
116
|
-
clean(removeElement?: (element: HTMLElement) => void) {
|
|
109
|
+
clean(removeElement?: (element: HTMLElement) => void): void {
|
|
117
110
|
this.killLockMouseMoveTimer();
|
|
118
111
|
this.clearLastMouseDownEvent();
|
|
119
112
|
|
|
@@ -125,7 +118,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
125
118
|
removeElement(this.mainElement);
|
|
126
119
|
}
|
|
127
120
|
|
|
128
|
-
replaceParent(parent: HTMLElement, scroll?: IScrollView) {
|
|
121
|
+
replaceParent(parent: HTMLElement, scroll?: IScrollView): void {
|
|
129
122
|
if(this.mainElement && this.mainElement.parentNode !== parent)
|
|
130
123
|
parent.appendChild(this.mainElement);
|
|
131
124
|
if(scroll && scroll !== this.scroll) {
|
|
@@ -135,30 +128,34 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
135
128
|
if(this.measurer instanceof TextMeasurer)
|
|
136
129
|
this.measurer.replaceParent(parent);
|
|
137
130
|
}
|
|
138
|
-
update(saveScrollPosition: boolean) {
|
|
131
|
+
update(saveScrollPosition: boolean): void {
|
|
139
132
|
this.view.adjust({ horizontal: !saveScrollPosition, vertical: !saveScrollPosition });
|
|
140
133
|
this.page.redraw();
|
|
141
134
|
}
|
|
142
|
-
onNewModel(items: DiagramItem[]) {
|
|
135
|
+
onNewModel(items: DiagramItem[]): void {
|
|
143
136
|
this.measurer.onNewModel(items, this.dom);
|
|
144
137
|
}
|
|
145
|
-
clear() {
|
|
138
|
+
clear(): void {
|
|
146
139
|
this.items.clear();
|
|
147
140
|
this.selection.clear();
|
|
148
141
|
this.input.clear();
|
|
149
142
|
}
|
|
150
|
-
protected attachPointerEvents(svgElement: SVGSVGElement) {
|
|
143
|
+
protected attachPointerEvents(svgElement: SVGSVGElement): void {
|
|
151
144
|
DomUtils.addClassName(svgElement, TOUCH_ACTION_CSSCLASS);
|
|
152
145
|
|
|
153
146
|
RenderHelper.addEventListener(svgElement, "pointerdown", this.onPointerDownHandler);
|
|
147
|
+
RenderHelper.addEventListener(svgElement, "mousedown", this.onSvgMouseDownHandler);
|
|
148
|
+
RenderHelper.addEventListener(svgElement, "mousemove", this.onSvgMouseMoveHandler);
|
|
154
149
|
RenderHelper.addEventListener(Browser.TouchUI ? svgElement : document, "pointerup", this.onPointerUpHandler);
|
|
155
150
|
RenderHelper.addEventListener(Browser.TouchUI ? svgElement : document, "pointermove", this.onPointerMoveHandler);
|
|
156
151
|
|
|
157
152
|
RenderHelper.addEventListener(svgElement, "pointercancel", this.onPointerCancelHandler);
|
|
158
153
|
RenderHelper.addEventListener(svgElement, "pointerleave", this.onPointerLeaveHandler);
|
|
159
154
|
}
|
|
160
|
-
protected detachPointerEvents(svgElement: SVGSVGElement) {
|
|
155
|
+
protected detachPointerEvents(svgElement: SVGSVGElement): void {
|
|
161
156
|
RenderHelper.removeEventListener(svgElement, "pointerdown", this.onPointerDownHandler);
|
|
157
|
+
RenderHelper.removeEventListener(svgElement, "mousedown", this.onSvgMouseDownHandler);
|
|
158
|
+
RenderHelper.removeEventListener(svgElement, "mousemove", this.onSvgMouseMoveHandler);
|
|
162
159
|
RenderHelper.removeEventListener(Browser.TouchUI ? svgElement : document, "pointerup", this.onPointerUpHandler);
|
|
163
160
|
RenderHelper.removeEventListener(Browser.TouchUI ? svgElement : document, "pointermove", this.onPointerMoveHandler);
|
|
164
161
|
RenderHelper.removeEventListener(svgElement, "pointercancel", this.onPointerCancelHandler);
|
|
@@ -167,47 +164,24 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
167
164
|
DomUtils.removeClassName(svgElement, TOUCH_ACTION_CSSCLASS);
|
|
168
165
|
}
|
|
169
166
|
|
|
170
|
-
protected attachMouseTouchEvents(svgElement: SVGSVGElement) {
|
|
171
|
-
RenderHelper.addEventListener(svgElement, this.mouseDownEventName, this.onMouseDownHandler);
|
|
172
|
-
RenderHelper.addEventListener(document, this.mouseMoveEventName, this.onMouseMoveHandler);
|
|
173
|
-
RenderHelper.addEventListener(document, this.mouseUpEventName, this.onMouseUpHandler);
|
|
174
|
-
}
|
|
175
|
-
protected detachMouseTouchEvents(svgElement: SVGSVGElement) {
|
|
176
|
-
RenderHelper.removeEventListener(svgElement, this.mouseDownEventName, this.onMouseDownHandler);
|
|
177
|
-
RenderHelper.removeEventListener(document, this.mouseMoveEventName, this.onMouseMoveHandler);
|
|
178
|
-
RenderHelper.removeEventListener(document, this.mouseUpEventName, this.onMouseUpHandler);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
167
|
private attachEvents(svgElement: SVGSVGElement) {
|
|
182
|
-
this.mouseDownEventName = Browser.TouchUI ? "touchstart" : "mousedown";
|
|
183
|
-
this.mouseMoveEventName = Browser.TouchUI ? "touchmove" : "mousemove";
|
|
184
|
-
this.mouseUpEventName = Browser.TouchUI ? "touchend" : "mouseup";
|
|
185
|
-
|
|
186
168
|
this.onPointerDownHandler = this.onPointerDown.bind(this);
|
|
187
169
|
this.onPointerUpHandler = this.onPointerUp.bind(this);
|
|
188
170
|
this.onPointerMoveHandler = this.onPointerMove.bind(this);
|
|
189
171
|
this.onPointerCancelHandler = this.onPointerCancel.bind(this);
|
|
190
172
|
this.onPointerLeaveHandler = this.onPointerLeave.bind(this);
|
|
191
173
|
|
|
192
|
-
this.
|
|
193
|
-
this.
|
|
194
|
-
|
|
174
|
+
this.onSvgMouseDownHandler = this.onSvgMouseDown.bind(this);
|
|
175
|
+
this.onSvgMouseMoveHandler = this.onSvgMouseMove.bind(this);
|
|
176
|
+
|
|
195
177
|
this.onMouseWheelHandler = this.onMouseWheel.bind(this);
|
|
196
178
|
this.onMouseDblClickHandler = this.onMouseDblClick.bind(this);
|
|
197
179
|
this.onContextMenuHandler = this.onContextMenu.bind(this);
|
|
198
|
-
this.onMouseMoveHandler = this.onMouseMove.bind(this);
|
|
199
|
-
this.onMouseUpHandler = this.onMouseUp.bind(this);
|
|
200
180
|
this.onWindowResizelHandler = this.onWindowResize.bind(this);
|
|
201
181
|
this.onOrientationChangeHandler = this.onOrientationChange.bind(this);
|
|
202
182
|
this.onMouseClickHandler = this.onMouseClick.bind(this);
|
|
203
183
|
|
|
204
|
-
|
|
205
|
-
this.attachPointerEvents(svgElement);
|
|
206
|
-
else {
|
|
207
|
-
this.attachMouseTouchEvents(svgElement);
|
|
208
|
-
RenderHelper.addEventListener(svgElement, "mouseenter", this.onMouseEnterHandler);
|
|
209
|
-
RenderHelper.addEventListener(svgElement, "mouseleave", this.onMouseLeaveHandler);
|
|
210
|
-
}
|
|
184
|
+
this.attachPointerEvents(svgElement);
|
|
211
185
|
|
|
212
186
|
RenderHelper.addEventListener(svgElement, "wheel", this.onMouseWheelHandler);
|
|
213
187
|
RenderHelper.addEventListener(svgElement, "dblclick", this.onMouseDblClickHandler);
|
|
@@ -219,13 +193,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
219
193
|
this.input.mouseWheelHandler = this.onMouseWheelHandler;
|
|
220
194
|
}
|
|
221
195
|
private detachEvents(svgElement: SVGSVGElement) {
|
|
222
|
-
|
|
223
|
-
this.detachPointerEvents(svgElement);
|
|
224
|
-
else {
|
|
225
|
-
this.detachMouseTouchEvents(svgElement);
|
|
226
|
-
RenderHelper.removeEventListener(svgElement, "mouseenter", this.onMouseEnterHandler);
|
|
227
|
-
RenderHelper.removeEventListener(svgElement, "mouseleave", this.onMouseLeaveHandler);
|
|
228
|
-
}
|
|
196
|
+
this.detachPointerEvents(svgElement);
|
|
229
197
|
|
|
230
198
|
RenderHelper.removeEventListener(svgElement, "wheel", this.onMouseWheelHandler);
|
|
231
199
|
RenderHelper.removeEventListener(svgElement, "dblclick", this.onMouseDblClickHandler);
|
|
@@ -235,40 +203,39 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
235
203
|
RenderHelper.removeEventListener(window, "orientationchange", this.onOrientationChangeHandler);
|
|
236
204
|
}
|
|
237
205
|
|
|
238
|
-
setPointerPosition(evt: PointerEvent) {
|
|
206
|
+
setPointerPosition(evt: PointerEvent): void {
|
|
239
207
|
this.pointers[evt.pointerId] = {
|
|
240
208
|
clientX: evt.clientX,
|
|
241
209
|
clientY: evt.clientY
|
|
242
210
|
};
|
|
243
211
|
}
|
|
244
|
-
clearPointerPosition(evt: PointerEvent) {
|
|
212
|
+
clearPointerPosition(evt: PointerEvent): void {
|
|
245
213
|
delete this.pointers[evt.pointerId];
|
|
246
214
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
if(this.getPointerCount() > 2)
|
|
250
|
-
this.pointers = {};
|
|
251
|
-
this.onMouseDown(evt);
|
|
252
|
-
}
|
|
253
|
-
onPointerUp(evt: PointerEvent) {
|
|
215
|
+
|
|
216
|
+
onPointerUp(evt: PointerEvent): void {
|
|
254
217
|
this.clearPointerPosition(evt);
|
|
255
218
|
this.onMouseUp(evt);
|
|
256
219
|
}
|
|
257
|
-
onPointerMove(evt: PointerEvent) {
|
|
220
|
+
onPointerMove(evt: PointerEvent): void {
|
|
258
221
|
if((Browser.TouchUI && !EventUtils.isMousePointer(evt)) || EventUtils.isLeftButtonPressed(evt))
|
|
259
222
|
this.setPointerPosition(evt);
|
|
260
|
-
this.
|
|
223
|
+
this.onDocumentMouseMove(evt);
|
|
261
224
|
}
|
|
262
|
-
onPointerCancel(evt: PointerEvent) {
|
|
225
|
+
onPointerCancel(evt: PointerEvent): void {
|
|
263
226
|
this.clearPointerPosition(evt);
|
|
264
227
|
}
|
|
265
|
-
onPointerLeave(evt: PointerEvent) {
|
|
228
|
+
onPointerLeave(evt: PointerEvent): void {
|
|
266
229
|
if(EventUtils.isMousePointer(evt))
|
|
267
230
|
this.onMouseLeave(evt);
|
|
268
231
|
this.clearPointerPosition(evt);
|
|
269
232
|
}
|
|
270
233
|
|
|
271
|
-
|
|
234
|
+
onPointerDown(evt: PointerEvent): void {
|
|
235
|
+
this.setPointerPosition(evt);
|
|
236
|
+
if(this.getPointerCount() > 2)
|
|
237
|
+
this.pointers = {};
|
|
238
|
+
|
|
272
239
|
this.lockMouseMove();
|
|
273
240
|
this.input.lockFocus();
|
|
274
241
|
this.autoScroll.onMouseDown(evt);
|
|
@@ -279,10 +246,11 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
279
246
|
|
|
280
247
|
if(EventUtils.isTouchEvent(evt))
|
|
281
248
|
this.processTouchDown(evt);
|
|
282
|
-
EvtUtils.preventEventAndBubble(evt);
|
|
283
|
-
return false;
|
|
284
249
|
}
|
|
285
|
-
|
|
250
|
+
onSvgMouseDown(evt: MouseEvent): void {
|
|
251
|
+
EvtUtils.preventEvent(evt);
|
|
252
|
+
}
|
|
253
|
+
onDocumentMouseMove(evt: MouseEvent): void {
|
|
286
254
|
if(this.moveLocked) return;
|
|
287
255
|
this.autoScroll.onMouseMove(evt, () => this.onMouseMoveCore(evt));
|
|
288
256
|
this.onMouseMoveCore(evt);
|
|
@@ -291,10 +259,13 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
291
259
|
if(EventUtils.isTouchEvent(evt))
|
|
292
260
|
this.processTouchMove(evt);
|
|
293
261
|
}
|
|
262
|
+
onSvgMouseMove(evt: MouseEvent): void {
|
|
263
|
+
EvtUtils.preventEventAndBubble(evt);
|
|
264
|
+
}
|
|
294
265
|
private onMouseMoveCore(evt: MouseEvent) {
|
|
295
266
|
raiseEvent(evt, this.createDiagramMouseEvent(evt), e => this.events.onMouseMove(e));
|
|
296
267
|
}
|
|
297
|
-
onMouseUp(evt: MouseEvent) {
|
|
268
|
+
onMouseUp(evt: MouseEvent): void {
|
|
298
269
|
this.lockMouseMove();
|
|
299
270
|
const mouseEvent = this.createDiagramMouseEvent(evt);
|
|
300
271
|
raiseEvent(evt, mouseEvent, e => this.events.onMouseUp(e));
|
|
@@ -304,17 +275,17 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
304
275
|
if(EventUtils.isTouchEvent(evt))
|
|
305
276
|
this.processTouchUp(evt);
|
|
306
277
|
}
|
|
307
|
-
private onMouseEnter(evt: MouseEvent) {
|
|
278
|
+
private onMouseEnter(evt: MouseEvent): void {
|
|
308
279
|
this.autoScroll.onMouseEnter(evt);
|
|
309
280
|
raiseEvent(evt, this.createDiagramMouseEvent(evt), e => this.events.onMouseEnter(e));
|
|
310
281
|
}
|
|
311
|
-
private onMouseLeave(evt: MouseEvent) {
|
|
282
|
+
private onMouseLeave(evt: MouseEvent): void {
|
|
312
283
|
raiseEvent(evt, this.createDiagramMouseEvent(evt), e => this.events.onMouseLeave(e));
|
|
313
284
|
}
|
|
314
|
-
private onMouseDblClick(evt: MouseEvent) {
|
|
285
|
+
private onMouseDblClick(evt: MouseEvent): void {
|
|
315
286
|
raiseEvent(evt, this.createDiagramMouseEvent(evt), e => this.events.onDblClick(e));
|
|
316
287
|
}
|
|
317
|
-
private onMouseClick(evt: MouseEvent) {
|
|
288
|
+
private onMouseClick(evt: MouseEvent): void {
|
|
318
289
|
if(!EventUtils.isTouchEvent(evt))
|
|
319
290
|
raiseEvent(evt, this.createActualMouseClickEvent(evt), e => this.events.onClick(e));
|
|
320
291
|
else if(!EventUtils.isMousePointer(evt))
|
|
@@ -338,7 +309,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
338
309
|
this.input.captureFocus();
|
|
339
310
|
return EvtUtils.preventEventAndBubble(evt);
|
|
340
311
|
}
|
|
341
|
-
processTouchDown(evt: MouseEvent) {
|
|
312
|
+
processTouchDown(evt: MouseEvent): void {
|
|
342
313
|
this.touchDownPoint = this.getTouchPointFromEvent(evt);
|
|
343
314
|
this.resetLongTouch();
|
|
344
315
|
this.longTouchTimer = setTimeout(() => {
|
|
@@ -347,7 +318,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
347
318
|
this.resetDblClick();
|
|
348
319
|
}, LONG_TOUCH_TIMEOUT);
|
|
349
320
|
}
|
|
350
|
-
processTouchMove(evt: MouseEvent) {
|
|
321
|
+
processTouchMove(evt: MouseEvent): void {
|
|
351
322
|
const currentTouchPoint = this.getTouchPointFromEvent(evt);
|
|
352
323
|
if(this.touchDownPoint && currentTouchPoint && (Math.abs(this.touchDownPoint.x - currentTouchPoint.x) > RenderManager.touchPositionLimit ||
|
|
353
324
|
Math.abs(this.touchDownPoint.y - currentTouchPoint.y) > RenderManager.touchPositionLimit)) {
|
|
@@ -373,7 +344,7 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
373
344
|
}
|
|
374
345
|
return touchPosition;
|
|
375
346
|
}
|
|
376
|
-
processTouchUp(evt: MouseEvent) {
|
|
347
|
+
processTouchUp(evt: MouseEvent): void {
|
|
377
348
|
if(this.longTouchTimer !== undefined) {
|
|
378
349
|
raiseEvent(evt, this.createDiagramMouseEvent(evt), e => this.events.onClick(e));
|
|
379
350
|
const element = EvtUtils.getEventSource(evt);
|
|
@@ -400,10 +371,10 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
400
371
|
clearTimeout(this.dblTouchTimer);
|
|
401
372
|
this.dblTouchTimer = undefined;
|
|
402
373
|
}
|
|
403
|
-
onOrientationChange() {
|
|
374
|
+
onOrientationChange(): void {
|
|
404
375
|
setTimeout(() => this.onWindowResize(), 100);
|
|
405
376
|
}
|
|
406
|
-
onWindowResize() {
|
|
377
|
+
onWindowResize(): void {
|
|
407
378
|
let resetTo = { horizontal: false, vertical: false };
|
|
408
379
|
if(this.view.autoZoom !== AutoZoomMode.Disabled) {
|
|
409
380
|
resetTo.horizontal = true;
|
|
@@ -416,39 +387,39 @@ export class RenderManager implements IReadOnlyChangesListener, IMouseOperations
|
|
|
416
387
|
}
|
|
417
388
|
this.view.adjust(resetTo);
|
|
418
389
|
}
|
|
419
|
-
onMouseWheel(evt: WheelEvent) {
|
|
390
|
+
onMouseWheel(evt: WheelEvent): void {
|
|
420
391
|
raiseEvent(evt, this.createDiagramWheelEvent(evt), e => this.events.onMouseWheel(e));
|
|
421
392
|
}
|
|
422
393
|
|
|
423
|
-
notifyModelSizeChanged(size: Size, offset?: Offsets) {
|
|
394
|
+
notifyModelSizeChanged(size: Size, offset?: Offsets): void {
|
|
424
395
|
this.view.notifyModelSizeChanged(size, offset);
|
|
425
396
|
}
|
|
426
|
-
notifyModelRectangleChanged(rectangle: Rectangle) {
|
|
397
|
+
notifyModelRectangleChanged(rectangle: Rectangle): void {
|
|
427
398
|
this.view.notifyModelRectangleChanged(rectangle);
|
|
428
399
|
}
|
|
429
|
-
notifyReadOnlyChanged(readOnly: boolean) {
|
|
400
|
+
notifyReadOnlyChanged(readOnly: boolean): void {
|
|
430
401
|
DomUtils.toggleClassName(this.mainElement, READONLY_CSSCLASS, readOnly);
|
|
431
402
|
}
|
|
432
|
-
notifyDragStart(
|
|
433
|
-
notifyDragEnd(
|
|
434
|
-
notifyDragScrollStart() {
|
|
403
|
+
notifyDragStart(_itemKeys: string[]): void { }
|
|
404
|
+
notifyDragEnd(_itemKeys: string[]): void { }
|
|
405
|
+
notifyDragScrollStart(): void {
|
|
435
406
|
this.autoScroll.onDragScrollStart();
|
|
436
407
|
}
|
|
437
|
-
notifyDragScrollEnd() {
|
|
408
|
+
notifyDragScrollEnd(): void {
|
|
438
409
|
this.autoScroll.onDragScrollEnd();
|
|
439
410
|
}
|
|
440
|
-
notifyToolboxDragStart(evt: MouseEvent) {
|
|
411
|
+
notifyToolboxDragStart(evt: MouseEvent): void {
|
|
441
412
|
this.onMouseEnter(evt);
|
|
442
413
|
}
|
|
443
|
-
notifyToolboxDragEnd(evt: MouseEvent) {
|
|
414
|
+
notifyToolboxDragEnd(evt: MouseEvent): void {
|
|
444
415
|
if(evt && EventUtils.isPointerEvents())
|
|
445
416
|
this.onMouseUp(evt);
|
|
446
417
|
}
|
|
447
|
-
notifyToolboxDraggingMouseMove(evt: MouseEvent) {
|
|
448
|
-
this.
|
|
418
|
+
notifyToolboxDraggingMouseMove(evt: MouseEvent): void {
|
|
419
|
+
this.onDocumentMouseMove(evt);
|
|
449
420
|
}
|
|
450
421
|
|
|
451
|
-
private createDiagramMouseEvent(evt: MouseEvent) {
|
|
422
|
+
private createDiagramMouseEvent(evt: MouseEvent): DiagramMouseEvent {
|
|
452
423
|
const modifiers = KeyUtils.getKeyModifiers(evt);
|
|
453
424
|
const button = isLeftButtonPressed(evt) ? MouseButton.Left : MouseButton.Right;
|
|
454
425
|
const offsetPoint = this.getOffsetPointByEvent(evt);
|
package/package.json
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devexpress-diagram",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.24",
|
|
4
4
|
"description": "DevExpress Diagram Control",
|
|
5
5
|
"main": "dist/dx-diagram.min.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist/"
|
|
8
8
|
],
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@devexpress/utils": "^1.4.
|
|
10
|
+
"@devexpress/utils": "^1.4.6",
|
|
11
11
|
"es6-object-assign": "^1.1.0"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@fortawesome/fontawesome-free": "^5.6.3",
|
|
15
15
|
"@types/jasmine": "^3.10.11",
|
|
16
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
17
|
-
"@typescript-eslint/parser": "^
|
|
18
|
-
"bootstrap": "^
|
|
16
|
+
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
17
|
+
"@typescript-eslint/parser": "^5.62.0",
|
|
18
|
+
"bootstrap": "^5.3.8",
|
|
19
19
|
"concurrently": "^8.2.0",
|
|
20
20
|
"copy-webpack-plugin": "^11.0.0",
|
|
21
21
|
"css-loader": "^6.8.1",
|
|
22
22
|
"css-minimizer-webpack-plugin": "^5.0.1",
|
|
23
23
|
"decomment": "^0.9.5",
|
|
24
24
|
"eslint": "^7.3.1",
|
|
25
|
-
"eslint-config-airbnb-typescript": "^8.0.0",
|
|
26
25
|
"eslint-plugin-import": "^2.22.0",
|
|
27
26
|
"eslint-plugin-no-loops": "^0.3.0",
|
|
28
27
|
"eslint-plugin-spellcheck": "0.0.11",
|
|
@@ -35,26 +34,25 @@
|
|
|
35
34
|
"mini-css-extract-plugin": "^2.7.6",
|
|
36
35
|
"node-sass": "^9.0.0",
|
|
37
36
|
"popper.js": "^1.14.6",
|
|
38
|
-
"pre-commit": "^1.2.2",
|
|
39
37
|
"sass-loader": "^13.3.2",
|
|
40
|
-
"stylelint": "^
|
|
41
|
-
"stylelint-config-standard": "^
|
|
42
|
-
"stylelint-scss": "^3.
|
|
38
|
+
"stylelint": "^15.11.0",
|
|
39
|
+
"stylelint-config-standard-scss": "^11.0.0",
|
|
40
|
+
"stylelint-scss": "^5.3.2",
|
|
43
41
|
"terser-webpack-plugin": "^5.3.9",
|
|
44
42
|
"ts-loader": "^9.4.4",
|
|
45
43
|
"ts-node": "^7.0.1",
|
|
46
|
-
"typescript": "^
|
|
44
|
+
"typescript": "^4.9.5",
|
|
47
45
|
"webpack": "^5.88.2",
|
|
48
46
|
"webpack-cli": "^5.1.4",
|
|
49
47
|
"webpack-merge": "^4.2.1",
|
|
50
48
|
"xhr-mock": "^2.5.0"
|
|
51
49
|
},
|
|
52
50
|
"scripts": {
|
|
53
|
-
"lint": "npm
|
|
54
|
-
"lint
|
|
55
|
-
"lint
|
|
56
|
-
"lint
|
|
57
|
-
"lint
|
|
51
|
+
"lint": "npm run lint:ts & npm run lint:css",
|
|
52
|
+
"lint:ts": "eslint --ext .ts . --quiet",
|
|
53
|
+
"lint:ts-fix": "eslint --ext .ts . --quiet --fix",
|
|
54
|
+
"lint:css": "stylelint css/**/*.scss",
|
|
55
|
+
"lint:staged": "lint-staged",
|
|
58
56
|
"build": "webpack --config webpack.build.js --mode production --progress",
|
|
59
57
|
"build-dev": "webpack --config webpack.dev.js --mode development --progress",
|
|
60
58
|
"watch": "webpack --config webpack.dev.js --mode development --progress --watch",
|