@shapediver/viewer.shared.services 2.12.8 → 3.0.1
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/converter/Converter.d.ts +5 -2
- package/dist/converter/Converter.d.ts.map +1 -1
- package/dist/converter/Converter.js +11 -10
- package/dist/converter/Converter.js.map +1 -1
- package/dist/dom-event-engine/DomEventEngine.d.ts +21 -31
- package/dist/dom-event-engine/DomEventEngine.d.ts.map +1 -1
- package/dist/dom-event-engine/DomEventEngine.js +101 -172
- package/dist/dom-event-engine/DomEventEngine.js.map +1 -1
- package/dist/dom-event-engine/IDomEventListener.d.ts +6 -10
- package/dist/dom-event-engine/IDomEventListener.d.ts.map +1 -1
- package/dist/event-engine/EventTypes.d.ts +199 -2
- package/dist/event-engine/EventTypes.d.ts.map +1 -1
- package/dist/event-engine/EventTypes.js +201 -10
- package/dist/event-engine/EventTypes.js.map +1 -1
- package/dist/http-client/HttpClient.d.ts +1 -1
- package/dist/http-client/HttpClient.d.ts.map +1 -1
- package/dist/http-client/HttpClient.js +7 -4
- package/dist/http-client/HttpClient.js.map +1 -1
- package/dist/index.d.ts +25 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -46
- package/dist/index.js.map +1 -1
- package/dist/logger/ErrorTypeGuards.d.ts +3 -1
- package/dist/logger/ErrorTypeGuards.d.ts.map +1 -1
- package/dist/logger/ErrorTypeGuards.js +8 -1
- package/dist/logger/ErrorTypeGuards.js.map +1 -1
- package/dist/logger/ShapeDiverError.d.ts +1 -0
- package/dist/logger/ShapeDiverError.d.ts.map +1 -1
- package/dist/logger/ShapeDiverError.js +1 -0
- package/dist/logger/ShapeDiverError.js.map +1 -1
- package/dist/logger/ShapeDiverViewerErrors.d.ts +4 -0
- package/dist/logger/ShapeDiverViewerErrors.d.ts.map +1 -1
- package/dist/logger/ShapeDiverViewerErrors.js +8 -1
- package/dist/logger/ShapeDiverViewerErrors.js.map +1 -1
- package/dist/settings-engine/SettingsEngine.d.ts +36 -16
- package/dist/settings-engine/SettingsEngine.d.ts.map +1 -1
- package/dist/settings-engine/SettingsEngine.js +45 -38
- package/dist/settings-engine/SettingsEngine.js.map +1 -1
- package/dist/state-engine/ISessionGlobalAccessObjectDefinition.d.ts +20 -0
- package/dist/state-engine/ISessionGlobalAccessObjectDefinition.d.ts.map +1 -0
- package/dist/state-engine/ISessionGlobalAccessObjectDefinition.js +3 -0
- package/dist/state-engine/ISessionGlobalAccessObjectDefinition.js.map +1 -0
- package/dist/state-engine/IViewportGlobalAccessObjectDefinition.d.ts +32 -0
- package/dist/state-engine/IViewportGlobalAccessObjectDefinition.d.ts.map +1 -0
- package/dist/state-engine/IViewportGlobalAccessObjectDefinition.js +3 -0
- package/dist/state-engine/IViewportGlobalAccessObjectDefinition.js.map +1 -0
- package/dist/state-engine/StateEngine.d.ts +7 -18
- package/dist/state-engine/StateEngine.d.ts.map +1 -1
- package/dist/state-engine/StateEngine.js +9 -9
- package/dist/state-engine/StateEngine.js.map +1 -1
- package/dist/system-info/SystemInfo.js +1 -1
- package/dist/system-info/SystemInfo.js.map +1 -1
- package/dist/utilities/base64.d.ts +3 -0
- package/dist/utilities/base64.d.ts.map +1 -0
- package/dist/utilities/base64.js +22 -0
- package/dist/utilities/base64.js.map +1 -0
- package/package.json +4 -4
- package/src/converter/Converter.ts +18 -17
- package/src/dom-event-engine/DomEventEngine.ts +118 -194
- package/src/dom-event-engine/IDomEventListener.ts +10 -10
- package/src/event-engine/EventTypes.ts +231 -41
- package/src/http-client/HttpClient.ts +7 -4
- package/src/index.ts +99 -43
- package/src/logger/ErrorTypeGuards.ts +8 -1
- package/src/logger/ShapeDiverError.ts +1 -0
- package/src/logger/ShapeDiverViewerErrors.ts +8 -0
- package/src/settings-engine/SettingsEngine.ts +101 -80
- package/src/state-engine/ISessionGlobalAccessObjectDefinition.ts +25 -0
- package/src/state-engine/IViewportGlobalAccessObjectDefinition.ts +29 -0
- package/src/state-engine/StateEngine.ts +16 -48
- package/src/system-info/SystemInfo.ts +1 -1
- package/src/utilities/base64.ts +15 -0
|
@@ -1,63 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDomEventListener } from './IDomEventListener';
|
|
2
2
|
import { UuidGenerator } from '../uuid-generator/UuidGenerator';
|
|
3
3
|
|
|
4
|
-
import { IDomEventListener } from './IDomEventListener'
|
|
5
|
-
|
|
6
4
|
export class DomEventEngine {
|
|
7
|
-
// #region Properties (
|
|
5
|
+
// #region Properties (14)
|
|
8
6
|
|
|
9
7
|
private readonly _domEventListeners: {
|
|
10
8
|
[key: string]: IDomEventListener
|
|
11
9
|
} = {};
|
|
12
10
|
private readonly _uuidGenerator: UuidGenerator = UuidGenerator.instance;
|
|
13
|
-
private readonly _systemInfo: SystemInfo = SystemInfo.instance;
|
|
14
11
|
|
|
15
12
|
private _allowListeners = {
|
|
16
13
|
mousewheel: true,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
touchstart: true,
|
|
22
|
-
touchmove: true,
|
|
23
|
-
touchend: true,
|
|
24
|
-
touchcancel: true,
|
|
14
|
+
pointerdown: true,
|
|
15
|
+
pointermove: true,
|
|
16
|
+
pointerup: true,
|
|
17
|
+
pointerout: true,
|
|
25
18
|
keydown: true,
|
|
19
|
+
keyup: true,
|
|
26
20
|
contextmenu: true,
|
|
27
21
|
};
|
|
28
22
|
private _canvas: HTMLCanvasElement;
|
|
29
|
-
private
|
|
30
|
-
private _onMouseWheel: (event: Event) => void;
|
|
31
|
-
private _onMouseDown: (event: MouseEvent) => void;
|
|
32
|
-
private _onMouseMove: (event: MouseEvent) => void;
|
|
33
|
-
private _onKeyDownMousePositionHelper: (event: MouseEvent) => void;
|
|
34
|
-
private _onMouseUp: (event: MouseEvent) => void;
|
|
35
|
-
private _onMouseOut: (event: MouseEvent) => void;
|
|
36
|
-
private _onTouchStart: (event: TouchEvent) => void;
|
|
37
|
-
private _onTouchMove: (event: TouchEvent) => void;
|
|
38
|
-
private _onTouchUp: (event: TouchEvent) => void;
|
|
39
|
-
private _onTouchCancel: (event: TouchEvent) => void;
|
|
40
|
-
private _onKeyDown: (event: KeyboardEvent) => void;
|
|
23
|
+
private _currentPointerPosition: { x: number, y: number } = { x: 0, y: 0 };
|
|
41
24
|
private _onContextMenu: (event: MouseEvent) => void;
|
|
25
|
+
private _onKeyDown: (event: KeyboardEvent) => void;
|
|
26
|
+
private _onKeyDownPointerPositionHelper: (event: PointerEvent) => void;
|
|
27
|
+
private _onKeyUp: (event: KeyboardEvent) => void;
|
|
28
|
+
private _onMouseWheel: (event: Event) => void;
|
|
29
|
+
private _onPointerDown: (event: PointerEvent) => void;
|
|
30
|
+
private _onPointerMove: (event: PointerEvent) => void;
|
|
31
|
+
private _onPointerOut: (event: PointerEvent) => void;
|
|
32
|
+
private _onPointerUp: (event: PointerEvent) => void;
|
|
42
33
|
|
|
43
|
-
// #endregion Properties (
|
|
34
|
+
// #endregion Properties (14)
|
|
44
35
|
|
|
45
36
|
// #region Constructors (1)
|
|
46
37
|
|
|
47
38
|
constructor(canvas: HTMLCanvasElement) {
|
|
48
39
|
this._canvas = canvas;
|
|
49
40
|
this._onMouseWheel = this.onMouseWheel.bind(this);
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
this._onTouchCancel = this.onTouchCancel.bind(this)
|
|
59
|
-
this._onKeyDown = this.onKeyDown.bind(this)
|
|
60
|
-
this._onContextMenu = this.onContextMenu.bind(this)
|
|
41
|
+
this._onPointerDown = this.onPointerDown.bind(this);
|
|
42
|
+
this._onPointerMove = this.onPointerMove.bind(this);
|
|
43
|
+
this._onKeyDownPointerPositionHelper = this.onKeyDownPointerPositionHelper.bind(this);
|
|
44
|
+
this._onPointerUp = this.onPointerUp.bind(this);
|
|
45
|
+
this._onPointerOut = this.onPointerOut.bind(this);
|
|
46
|
+
this._onKeyDown = this.onKeyDown.bind(this);
|
|
47
|
+
this._onKeyUp = this.onKeyUp.bind(this);
|
|
48
|
+
this._onContextMenu = this.onContextMenu.bind(this);
|
|
61
49
|
|
|
62
50
|
this.addEventListeners();
|
|
63
51
|
}
|
|
@@ -78,122 +66,94 @@ export class DomEventEngine {
|
|
|
78
66
|
*
|
|
79
67
|
* Example use case: If you don't want to allow mouse wheel events for a specific viewer so that users can scroll past the viewer.
|
|
80
68
|
*
|
|
81
|
-
* Be aware that this might cause some issues with the the camera controls if the
|
|
69
|
+
* Be aware that this might cause some issues with the the camera controls if the pointer events are disabled only partially.
|
|
82
70
|
*
|
|
83
71
|
* @param allowedListeners
|
|
84
72
|
*/
|
|
85
73
|
public allowEventListeners(allowedListeners: {
|
|
86
74
|
mousewheel?: boolean,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
touchstart?: boolean,
|
|
92
|
-
touchmove?: boolean,
|
|
93
|
-
touchend?: boolean,
|
|
94
|
-
touchcancel?: boolean,
|
|
75
|
+
pointerdown?: boolean,
|
|
76
|
+
pointermove?: boolean,
|
|
77
|
+
pointerup?: boolean,
|
|
78
|
+
pointerout?: boolean,
|
|
95
79
|
keydown?: boolean,
|
|
80
|
+
keyup?: boolean,
|
|
96
81
|
contextmenu?: boolean,
|
|
97
82
|
}): void {
|
|
83
|
+
if (typeof window === undefined) return;
|
|
84
|
+
|
|
98
85
|
if (allowedListeners.mousewheel !== undefined && this._allowListeners.mousewheel !== allowedListeners.mousewheel) {
|
|
99
86
|
if (allowedListeners.mousewheel) {
|
|
100
|
-
this._canvas.addEventListener(
|
|
101
|
-
this._canvas.addEventListener(
|
|
87
|
+
this._canvas.addEventListener('mousewheel', this._onMouseWheel);
|
|
88
|
+
this._canvas.addEventListener('MozMousePixelScroll', this._onMouseWheel); // firefox
|
|
102
89
|
} else {
|
|
103
|
-
this._canvas.removeEventListener(
|
|
104
|
-
this._canvas.removeEventListener(
|
|
90
|
+
this._canvas.removeEventListener('mousewheel', this._onMouseWheel);
|
|
91
|
+
this._canvas.removeEventListener('MozMousePixelScroll', this._onMouseWheel); // firefox
|
|
105
92
|
}
|
|
106
93
|
this._allowListeners.mousewheel = allowedListeners.mousewheel;
|
|
107
94
|
}
|
|
108
95
|
|
|
109
|
-
if (allowedListeners.
|
|
110
|
-
if (allowedListeners.
|
|
111
|
-
this._canvas.addEventListener(
|
|
96
|
+
if (allowedListeners.pointerdown !== undefined && this._allowListeners.pointerdown !== allowedListeners.pointerdown) {
|
|
97
|
+
if (allowedListeners.pointerdown) {
|
|
98
|
+
this._canvas.addEventListener('pointerdown', this._onPointerDown);
|
|
112
99
|
} else {
|
|
113
|
-
this._canvas.removeEventListener(
|
|
100
|
+
this._canvas.removeEventListener('pointerdown', this._onPointerDown);
|
|
114
101
|
}
|
|
115
|
-
this._allowListeners.
|
|
102
|
+
this._allowListeners.pointerdown = allowedListeners.pointerdown;
|
|
116
103
|
}
|
|
117
104
|
|
|
118
|
-
if (allowedListeners.
|
|
119
|
-
if (allowedListeners.
|
|
120
|
-
this._canvas.addEventListener(
|
|
121
|
-
window.addEventListener(
|
|
105
|
+
if (allowedListeners.pointermove !== undefined && this._allowListeners.pointermove !== allowedListeners.pointermove) {
|
|
106
|
+
if (allowedListeners.pointermove) {
|
|
107
|
+
this._canvas.addEventListener('pointermove', this._onPointerMove);
|
|
108
|
+
window.addEventListener('pointermove', this._onKeyDownPointerPositionHelper);
|
|
122
109
|
} else {
|
|
123
|
-
this._canvas.removeEventListener(
|
|
124
|
-
window.removeEventListener(
|
|
110
|
+
this._canvas.removeEventListener('pointermove', this._onPointerMove);
|
|
111
|
+
window.removeEventListener('pointermove', this._onKeyDownPointerPositionHelper);
|
|
125
112
|
}
|
|
126
|
-
this._allowListeners.
|
|
113
|
+
this._allowListeners.pointermove = allowedListeners.pointermove;
|
|
127
114
|
}
|
|
128
115
|
|
|
129
|
-
if (allowedListeners.
|
|
130
|
-
if (allowedListeners.
|
|
131
|
-
this._canvas.addEventListener(
|
|
116
|
+
if (allowedListeners.pointerup !== undefined && this._allowListeners.pointerup !== allowedListeners.pointerup) {
|
|
117
|
+
if (allowedListeners.pointerup) {
|
|
118
|
+
this._canvas.addEventListener('pointerup', this._onPointerUp);
|
|
132
119
|
} else {
|
|
133
|
-
this._canvas.removeEventListener(
|
|
120
|
+
this._canvas.removeEventListener('pointerup', this._onPointerUp);
|
|
134
121
|
}
|
|
135
|
-
this._allowListeners.
|
|
122
|
+
this._allowListeners.pointerup = allowedListeners.pointerup;
|
|
136
123
|
}
|
|
137
124
|
|
|
138
|
-
if (allowedListeners.
|
|
139
|
-
if (allowedListeners.
|
|
140
|
-
this._canvas.addEventListener(
|
|
125
|
+
if (allowedListeners.pointerout !== undefined && this._allowListeners.pointerout !== allowedListeners.pointerout) {
|
|
126
|
+
if (allowedListeners.pointerout) {
|
|
127
|
+
this._canvas.addEventListener('pointerout', this._onPointerOut);
|
|
141
128
|
} else {
|
|
142
|
-
this._canvas.removeEventListener(
|
|
129
|
+
this._canvas.removeEventListener('pointerout', this._onPointerOut);
|
|
143
130
|
}
|
|
144
|
-
this._allowListeners.
|
|
131
|
+
this._allowListeners.pointerout = allowedListeners.pointerout;
|
|
145
132
|
}
|
|
146
133
|
|
|
147
|
-
if (allowedListeners.
|
|
148
|
-
if (allowedListeners.
|
|
149
|
-
window.addEventListener(
|
|
150
|
-
} else {
|
|
151
|
-
window.removeEventListener("touchstart", this._onTouchStart);
|
|
152
|
-
}
|
|
153
|
-
this._allowListeners.touchstart = allowedListeners.touchstart;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (allowedListeners.touchmove !== undefined && this._allowListeners.touchmove !== allowedListeners.touchmove) {
|
|
157
|
-
if (allowedListeners.touchmove) {
|
|
158
|
-
window.addEventListener("touchmove", this._onTouchMove, { passive: false });
|
|
159
|
-
} else {
|
|
160
|
-
window.removeEventListener("touchmove", this._onTouchMove);
|
|
161
|
-
}
|
|
162
|
-
this._allowListeners.touchmove = allowedListeners.touchmove;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (allowedListeners.touchend !== undefined && this._allowListeners.touchend !== allowedListeners.touchend) {
|
|
166
|
-
if (allowedListeners.touchend) {
|
|
167
|
-
window.addEventListener("touchend", this._onTouchUp, { passive: false });
|
|
134
|
+
if (allowedListeners.keydown !== undefined && this._allowListeners.keydown !== allowedListeners.keydown) {
|
|
135
|
+
if (allowedListeners.keydown) {
|
|
136
|
+
window.addEventListener('keydown', this._onKeyDown);
|
|
168
137
|
} else {
|
|
169
|
-
window.removeEventListener(
|
|
138
|
+
window.removeEventListener('keydown', this._onKeyDown);
|
|
170
139
|
}
|
|
171
|
-
this._allowListeners.
|
|
140
|
+
this._allowListeners.keydown = allowedListeners.keydown;
|
|
172
141
|
}
|
|
173
142
|
|
|
174
|
-
if (allowedListeners.
|
|
175
|
-
if (allowedListeners.
|
|
176
|
-
window.addEventListener(
|
|
143
|
+
if (allowedListeners.keyup !== undefined && this._allowListeners.keyup !== allowedListeners.keyup) {
|
|
144
|
+
if (allowedListeners.keyup) {
|
|
145
|
+
window.addEventListener('keyup', this._onKeyUp);
|
|
177
146
|
} else {
|
|
178
|
-
window.removeEventListener(
|
|
147
|
+
window.removeEventListener('keyup', this._onKeyUp);
|
|
179
148
|
}
|
|
180
|
-
this._allowListeners.
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
if (allowedListeners.keydown !== undefined && this._allowListeners.keydown !== allowedListeners.keydown) {
|
|
184
|
-
if (allowedListeners.keydown) {
|
|
185
|
-
window.addEventListener("keydown", this._onKeyDown);
|
|
186
|
-
} else {
|
|
187
|
-
window.removeEventListener("keydown", this._onKeyDown);
|
|
188
|
-
}
|
|
189
|
-
this._allowListeners.keydown = allowedListeners.keydown;
|
|
149
|
+
this._allowListeners.keyup = allowedListeners.keyup;
|
|
190
150
|
}
|
|
191
151
|
|
|
192
152
|
if (allowedListeners.contextmenu !== undefined && this._allowListeners.contextmenu !== allowedListeners.contextmenu) {
|
|
193
153
|
if (allowedListeners.contextmenu) {
|
|
194
|
-
this._canvas.addEventListener(
|
|
154
|
+
this._canvas.addEventListener('contextmenu', this._onContextMenu);
|
|
195
155
|
} else {
|
|
196
|
-
this._canvas.removeEventListener(
|
|
156
|
+
this._canvas.removeEventListener('contextmenu', this._onContextMenu);
|
|
197
157
|
}
|
|
198
158
|
this._allowListeners.contextmenu = allowedListeners.contextmenu;
|
|
199
159
|
}
|
|
@@ -204,12 +164,12 @@ export class DomEventEngine {
|
|
|
204
164
|
}
|
|
205
165
|
|
|
206
166
|
public removeAllDomEventListener(): void {
|
|
207
|
-
for(
|
|
167
|
+
for (const id in this._domEventListeners)
|
|
208
168
|
delete this._domEventListeners[id];
|
|
209
169
|
}
|
|
210
170
|
|
|
211
171
|
public removeDomEventListener(id: string): boolean {
|
|
212
|
-
if(this._domEventListeners[id]) {
|
|
172
|
+
if (this._domEventListeners[id]) {
|
|
213
173
|
delete this._domEventListeners[id];
|
|
214
174
|
return true;
|
|
215
175
|
}
|
|
@@ -218,125 +178,89 @@ export class DomEventEngine {
|
|
|
218
178
|
|
|
219
179
|
// #endregion Public Methods (5)
|
|
220
180
|
|
|
221
|
-
// #region Private Methods (
|
|
181
|
+
// #region Private Methods (11)
|
|
222
182
|
|
|
223
183
|
private addEventListeners() {
|
|
224
|
-
|
|
225
|
-
this._canvas.addEventListener("MozMousePixelScroll", this._onMouseWheel); // firefox
|
|
184
|
+
if (typeof window === undefined) return;
|
|
226
185
|
|
|
227
|
-
this._canvas.addEventListener(
|
|
228
|
-
this._canvas.addEventListener(
|
|
229
|
-
this._canvas.addEventListener("mouseup", this._onMouseUp);
|
|
230
|
-
this._canvas.addEventListener("mouseout", this._onMouseOut);
|
|
186
|
+
this._canvas.addEventListener('mousewheel', this._onMouseWheel);
|
|
187
|
+
this._canvas.addEventListener('MozMousePixelScroll', this._onMouseWheel); // firefox
|
|
231
188
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
189
|
+
this._canvas.addEventListener('pointerdown', this._onPointerDown);
|
|
190
|
+
this._canvas.addEventListener('pointermove', this._onPointerMove);
|
|
191
|
+
this._canvas.addEventListener('pointerup', this._onPointerUp);
|
|
192
|
+
this._canvas.addEventListener('pointerout', this._onPointerOut);
|
|
236
193
|
|
|
237
|
-
window.addEventListener(
|
|
238
|
-
window.addEventListener(
|
|
194
|
+
window.addEventListener('keyup', this._onKeyUp);
|
|
195
|
+
window.addEventListener('keydown', this._onKeyDown);
|
|
196
|
+
window.addEventListener('pointermove', this._onKeyDownPointerPositionHelper);
|
|
239
197
|
|
|
240
198
|
// just prevent right click menu
|
|
241
|
-
this._canvas.addEventListener(
|
|
199
|
+
this._canvas.addEventListener('contextmenu', this._onContextMenu);
|
|
242
200
|
}
|
|
243
201
|
|
|
244
202
|
private onContextMenu(event: MouseEvent): void {
|
|
245
|
-
if(this._systemInfo.isMobile === true) return;
|
|
246
203
|
event.preventDefault();
|
|
247
204
|
}
|
|
248
205
|
|
|
249
206
|
private onKeyDown(event: KeyboardEvent): void {
|
|
250
|
-
if (this._canvas === document.elementFromPoint(this.
|
|
207
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
251
208
|
Object.values(this._domEventListeners).forEach(e => e.onKeyDown(event));
|
|
252
209
|
}
|
|
253
210
|
|
|
254
|
-
private
|
|
255
|
-
|
|
256
|
-
this._currentMousePosition = { x: event.pageX, y: event.pageY };
|
|
211
|
+
private onKeyDownPointerPositionHelper(event: PointerEvent): void {
|
|
212
|
+
this._currentPointerPosition = { x: event.pageX, y: event.pageY };
|
|
257
213
|
}
|
|
258
214
|
|
|
259
|
-
private
|
|
260
|
-
if(this.
|
|
261
|
-
|
|
262
|
-
Object.values(this._domEventListeners).forEach(e => e.onMouseDown(event));
|
|
215
|
+
private onKeyUp(event: KeyboardEvent): void {
|
|
216
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
217
|
+
Object.values(this._domEventListeners).forEach(e => e.onKeyUp(event));
|
|
263
218
|
}
|
|
264
219
|
|
|
265
|
-
private
|
|
266
|
-
if(this._systemInfo.isMobile === true) return;
|
|
220
|
+
private onMouseWheel(event: Event): void {
|
|
267
221
|
event.preventDefault();
|
|
268
|
-
|
|
222
|
+
event.stopPropagation();
|
|
223
|
+
Object.values(this._domEventListeners).forEach(e => e.onMouseWheel(<WheelEvent>event));
|
|
269
224
|
}
|
|
270
225
|
|
|
271
|
-
private
|
|
272
|
-
if(this._systemInfo.isMobile === true) return;
|
|
226
|
+
private onPointerDown(event: PointerEvent): void {
|
|
273
227
|
event.preventDefault();
|
|
274
|
-
Object.values(this._domEventListeners).forEach(e => e.
|
|
275
|
-
Object.values(this._domEventListeners).forEach(e => e.onMouseEnd(event));
|
|
228
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerDown(event));
|
|
276
229
|
}
|
|
277
230
|
|
|
278
|
-
private
|
|
279
|
-
if(this._systemInfo.isMobile === true) return;
|
|
231
|
+
private onPointerMove(event: PointerEvent): void {
|
|
280
232
|
event.preventDefault();
|
|
281
|
-
Object.values(this._domEventListeners).forEach(e => e.
|
|
282
|
-
Object.values(this._domEventListeners).forEach(e => e.onMouseEnd(event));
|
|
233
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerMove(event));
|
|
283
234
|
}
|
|
284
235
|
|
|
285
|
-
private
|
|
286
|
-
if(this._systemInfo.isMobile === true) return;
|
|
236
|
+
private onPointerOut(event: PointerEvent): void {
|
|
287
237
|
event.preventDefault();
|
|
288
|
-
|
|
289
|
-
Object.values(this._domEventListeners).forEach(e => e.
|
|
238
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerOut(event));
|
|
239
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerEnd(event));
|
|
290
240
|
}
|
|
291
241
|
|
|
292
|
-
private
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
Object.values(this._domEventListeners).forEach(e => e.onTouchEnd(event));
|
|
297
|
-
}
|
|
242
|
+
private onPointerUp(event: PointerEvent): void {
|
|
243
|
+
event.preventDefault();
|
|
244
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerUp(event));
|
|
245
|
+
Object.values(this._domEventListeners).forEach(e => e.onPointerEnd(event));
|
|
298
246
|
}
|
|
299
247
|
|
|
300
|
-
private
|
|
301
|
-
if (
|
|
302
|
-
event.stopPropagation();
|
|
303
|
-
Object.values(this._domEventListeners).forEach(e => e.onTouchCancel(event));
|
|
304
|
-
Object.values(this._domEventListeners).forEach(e => e.onTouchEnd(event));
|
|
305
|
-
}
|
|
306
|
-
}
|
|
248
|
+
private removeEventListeners() {
|
|
249
|
+
if (typeof window === undefined) return;
|
|
307
250
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
event.stopPropagation();
|
|
311
|
-
Object.values(this._domEventListeners).forEach(e => e.onTouchMove(event))
|
|
312
|
-
}
|
|
313
|
-
}
|
|
251
|
+
this._canvas.removeEventListener('mousewheel', this._onMouseWheel);
|
|
252
|
+
this._canvas.removeEventListener('MozMousePixelScroll', this._onMouseWheel); // firefox
|
|
314
253
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
}
|
|
254
|
+
this._canvas.removeEventListener('pointerdown', this._onPointerDown);
|
|
255
|
+
this._canvas.removeEventListener('pointermove', this._onPointerMove);
|
|
256
|
+
this._canvas.removeEventListener('pointerup', this._onPointerUp);
|
|
257
|
+
this._canvas.removeEventListener('pointerout', this._onPointerOut);
|
|
321
258
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
this._canvas.removeEventListener("mousedown", this._onMouseDown);
|
|
327
|
-
this._canvas.removeEventListener("mousemove", this._onMouseMove);
|
|
328
|
-
this._canvas.removeEventListener("mouseup", this._onMouseUp);
|
|
329
|
-
this._canvas.removeEventListener("mouseout", this._onMouseOut);
|
|
330
|
-
|
|
331
|
-
window.removeEventListener("touchstart", this._onTouchStart);
|
|
332
|
-
window.removeEventListener("touchmove", this._onTouchMove);
|
|
333
|
-
window.removeEventListener("touchend", this._onTouchUp);
|
|
334
|
-
window.removeEventListener("touchcancel", this._onTouchCancel);
|
|
335
|
-
|
|
336
|
-
window.removeEventListener("keydown", this._onKeyDown);
|
|
337
|
-
window.removeEventListener("mousemove", this._onKeyDownMousePositionHelper);
|
|
338
|
-
this._canvas.removeEventListener("contextmenu", this._onContextMenu);
|
|
259
|
+
window.removeEventListener('keydown', this._onKeyDown);
|
|
260
|
+
window.removeEventListener('keyup', this._onKeyUp);
|
|
261
|
+
window.removeEventListener('pointermove', this._onKeyDownPointerPositionHelper);
|
|
262
|
+
this._canvas.removeEventListener('contextmenu', this._onContextMenu);
|
|
339
263
|
}
|
|
340
264
|
|
|
341
|
-
// #endregion Private Methods (
|
|
265
|
+
// #endregion Private Methods (11)
|
|
342
266
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export interface IDomEventListener {
|
|
2
|
+
// #region Public Methods (8)
|
|
3
|
+
|
|
2
4
|
onKeyDown(event: KeyboardEvent): void;
|
|
3
|
-
|
|
4
|
-
onMouseMove(event: MouseEvent): void;
|
|
5
|
-
onMouseEnd(event: MouseEvent): void;
|
|
6
|
-
onMouseUp(event: MouseEvent): void;
|
|
7
|
-
onMouseOut(event: MouseEvent): void;
|
|
5
|
+
onKeyUp(event: KeyboardEvent): void;
|
|
8
6
|
onMouseWheel(event: WheelEvent): void;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
onPointerDown(event: PointerEvent): void;
|
|
8
|
+
onPointerEnd(event: PointerEvent): void;
|
|
9
|
+
onPointerMove(event: PointerEvent): void;
|
|
10
|
+
onPointerOut(event: PointerEvent): void;
|
|
11
|
+
onPointerUp(event: PointerEvent): void;
|
|
12
|
+
|
|
13
|
+
// #endregion Public Methods (8)
|
|
14
14
|
}
|