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.
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * DevExpress Diagram (dx-diagram.min)
3
- * Version: 2.2.21
4
- * Build date: Wed Aug 20 2025
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
@@ -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);
@@ -1,25 +1,24 @@
1
1
  {
2
2
  "name": "devexpress-diagram",
3
- "version": "2.2.21",
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.3",
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": "^3.9.0",
14
- "@typescript-eslint/parser": "^3.9.0",
15
- "bootstrap": "^4.2.1",
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": "^13.1.0",
38
- "stylelint-config-standard": "^20.0.0",
39
- "stylelint-scss": "^3.17.2",
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": "^3.9.10",
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 onMouseDownHandler: any;
71
- private onMouseMoveHandler: any;
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.onMouseDownHandler = this.onMouseDown.bind(this);
193
- this.onMouseEnterHandler = this.onMouseEnter.bind(this);
194
- this.onMouseLeaveHandler = this.onMouseLeave.bind(this);
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
- if(EventUtils.isPointerEvents())
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
- if(EventUtils.isPointerEvents())
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
- onPointerDown(evt: PointerEvent) {
248
- this.setPointerPosition(evt);
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.onMouseMove(evt);
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
- onMouseDown(evt: MouseEvent) {
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
- onMouseMove(evt: MouseEvent) {
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(itemKeys: string[]) { }
433
- notifyDragEnd(itemKeys: string[]) { }
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.onMouseMove(evt);
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.21",
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.3",
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": "^3.9.0",
17
- "@typescript-eslint/parser": "^3.9.0",
18
- "bootstrap": "^4.2.1",
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": "^13.1.0",
41
- "stylelint-config-standard": "^20.0.0",
42
- "stylelint-scss": "^3.17.2",
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": "^3.9.10",
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-run-all -p -c lint-css lint-ts",
54
- "lint-ts": "eslint --ext .ts . --quiet",
55
- "lint-ts-fix": "eslint --ext .ts . --quiet --fix",
56
- "lint-css": "stylelint css",
57
- "lint-staged": "lint-staged",
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",