@shapediver/viewer.shared.services 3.2.5 → 3.2.7
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/dom-event-engine/DomEventEngine.d.ts +3 -0
- package/dist/dom-event-engine/DomEventEngine.d.ts.map +1 -1
- package/dist/dom-event-engine/DomEventEngine.js +58 -15
- package/dist/dom-event-engine/DomEventEngine.js.map +1 -1
- package/package.json +3 -3
- package/src/dom-event-engine/DomEventEngine.ts +59 -15
|
@@ -14,8 +14,10 @@ export declare class DomEventEngine {
|
|
|
14
14
|
private _onPointerMove;
|
|
15
15
|
private _onPointerOut;
|
|
16
16
|
private _onPointerUp;
|
|
17
|
+
private _restrictedListenerTokens;
|
|
17
18
|
constructor(canvas: HTMLCanvasElement);
|
|
18
19
|
addDomEventListener(listener: IDomEventListener): string;
|
|
20
|
+
addRestrictedListenerToken(token: string): void;
|
|
19
21
|
/**
|
|
20
22
|
* Allow / disallow events.
|
|
21
23
|
* This can be used to disable events for a specific viewer.
|
|
@@ -39,6 +41,7 @@ export declare class DomEventEngine {
|
|
|
39
41
|
dispose(): void;
|
|
40
42
|
removeAllDomEventListener(): void;
|
|
41
43
|
removeDomEventListener(id: string): boolean;
|
|
44
|
+
removeRestrictedListenerToken(token: string): void;
|
|
42
45
|
private addEventListeners;
|
|
43
46
|
private onContextMenu;
|
|
44
47
|
private onKeyDown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomEventEngine.d.ts","sourceRoot":"","sources":["../../src/dom-event-engine/DomEventEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE5B;IACP,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE,OAAO,CAAC,eAAe,CASrB;IACF,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,uBAAuB,CAA4C;IAC3E,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,+BAA+B,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,YAAY,CAAgC;
|
|
1
|
+
{"version":3,"file":"DomEventEngine.d.ts","sourceRoot":"","sources":["../../src/dom-event-engine/DomEventEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,qBAAa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE5B;IACP,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE,OAAO,CAAC,eAAe,CASrB;IACF,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,uBAAuB,CAA4C;IAC3E,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,+BAA+B,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,yBAAyB,CAAgB;gBAMrC,MAAM,EAAE,iBAAiB;IAmB9B,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;IAMxD,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtD;;;;;;;;;OASG;IACI,mBAAmB,CAAC,gBAAgB,EAAE;QACzC,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,GAAG,IAAI;IAgFD,OAAO;IAIP,yBAAyB,IAAI,IAAI;IAOjC,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS3C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASzD,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,oBAAoB;CAkB/B"}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DomEventEngine = void 0;
|
|
4
4
|
const UuidGenerator_1 = require("../uuid-generator/UuidGenerator");
|
|
5
5
|
class DomEventEngine {
|
|
6
|
-
// #endregion Properties (
|
|
6
|
+
// #endregion Properties (15)
|
|
7
7
|
// #region Constructors (1)
|
|
8
8
|
constructor(canvas) {
|
|
9
|
-
// #region Properties (
|
|
9
|
+
// #region Properties (15)
|
|
10
10
|
this._domEventListeners = {};
|
|
11
11
|
this._uuidGenerator = UuidGenerator_1.UuidGenerator.instance;
|
|
12
12
|
this._allowListeners = {
|
|
@@ -20,6 +20,7 @@ class DomEventEngine {
|
|
|
20
20
|
contextmenu: true,
|
|
21
21
|
};
|
|
22
22
|
this._currentPointerPosition = { x: 0, y: 0 };
|
|
23
|
+
this._restrictedListenerTokens = [];
|
|
23
24
|
this._canvas = canvas;
|
|
24
25
|
this._onMouseWheel = this.onMouseWheel.bind(this);
|
|
25
26
|
this._onPointerDown = this.onPointerDown.bind(this);
|
|
@@ -33,12 +34,17 @@ class DomEventEngine {
|
|
|
33
34
|
this.addEventListeners();
|
|
34
35
|
}
|
|
35
36
|
// #endregion Constructors (1)
|
|
36
|
-
// #region Public Methods (
|
|
37
|
+
// #region Public Methods (7)
|
|
37
38
|
addDomEventListener(listener) {
|
|
38
39
|
const id = this._uuidGenerator.create();
|
|
39
40
|
this._domEventListeners[id] = listener;
|
|
40
41
|
return id;
|
|
41
42
|
}
|
|
43
|
+
addRestrictedListenerToken(token) {
|
|
44
|
+
if (this._restrictedListenerTokens.includes(token))
|
|
45
|
+
return;
|
|
46
|
+
this._restrictedListenerTokens.push(token);
|
|
47
|
+
}
|
|
42
48
|
/**
|
|
43
49
|
* Allow / disallow events.
|
|
44
50
|
* This can be used to disable events for a specific viewer.
|
|
@@ -135,15 +141,22 @@ class DomEventEngine {
|
|
|
135
141
|
removeAllDomEventListener() {
|
|
136
142
|
for (const id in this._domEventListeners)
|
|
137
143
|
delete this._domEventListeners[id];
|
|
144
|
+
this._restrictedListenerTokens = [];
|
|
138
145
|
}
|
|
139
146
|
removeDomEventListener(id) {
|
|
140
147
|
if (this._domEventListeners[id]) {
|
|
141
148
|
delete this._domEventListeners[id];
|
|
149
|
+
this._restrictedListenerTokens = this._restrictedListenerTokens.filter(t => t !== id);
|
|
142
150
|
return true;
|
|
143
151
|
}
|
|
144
152
|
return false;
|
|
145
153
|
}
|
|
146
|
-
|
|
154
|
+
removeRestrictedListenerToken(token) {
|
|
155
|
+
const index = this._restrictedListenerTokens.indexOf(token);
|
|
156
|
+
if (index !== -1)
|
|
157
|
+
this._restrictedListenerTokens.splice(index, 1);
|
|
158
|
+
}
|
|
159
|
+
// #endregion Public Methods (7)
|
|
147
160
|
// #region Private Methods (11)
|
|
148
161
|
addEventListeners() {
|
|
149
162
|
if (typeof window === undefined)
|
|
@@ -164,38 +177,68 @@ class DomEventEngine {
|
|
|
164
177
|
event.preventDefault();
|
|
165
178
|
}
|
|
166
179
|
onKeyDown(event) {
|
|
167
|
-
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
168
|
-
Object.
|
|
180
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y)) {
|
|
181
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
182
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
183
|
+
listener.onKeyDown(event);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
169
187
|
}
|
|
170
188
|
onKeyDownPointerPositionHelper(event) {
|
|
171
189
|
this._currentPointerPosition = { x: event.pageX, y: event.pageY };
|
|
172
190
|
}
|
|
173
191
|
onKeyUp(event) {
|
|
174
|
-
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
175
|
-
Object.
|
|
192
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y)) {
|
|
193
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
194
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
195
|
+
listener.onKeyUp(event);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
176
199
|
}
|
|
177
200
|
onMouseWheel(event) {
|
|
178
201
|
event.preventDefault();
|
|
179
202
|
event.stopPropagation();
|
|
180
|
-
Object.
|
|
203
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
204
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
205
|
+
listener.onMouseWheel(event);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
181
208
|
}
|
|
182
209
|
onPointerDown(event) {
|
|
183
210
|
event.preventDefault();
|
|
184
|
-
Object.
|
|
211
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
212
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
213
|
+
listener.onPointerDown(event);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
185
216
|
}
|
|
186
217
|
onPointerMove(event) {
|
|
187
218
|
event.preventDefault();
|
|
188
|
-
Object.
|
|
219
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
220
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
221
|
+
listener.onPointerMove(event);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
189
224
|
}
|
|
190
225
|
onPointerOut(event) {
|
|
191
226
|
event.preventDefault();
|
|
192
|
-
Object.
|
|
193
|
-
|
|
227
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
228
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
229
|
+
listener.onPointerOut(event);
|
|
230
|
+
listener.onPointerEnd(event);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
194
233
|
}
|
|
195
234
|
onPointerUp(event) {
|
|
196
235
|
event.preventDefault();
|
|
197
|
-
Object.
|
|
198
|
-
|
|
236
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
237
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
238
|
+
listener.onPointerUp(event);
|
|
239
|
+
listener.onPointerEnd(event);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
199
242
|
}
|
|
200
243
|
removeEventListeners() {
|
|
201
244
|
if (typeof window === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomEventEngine.js","sourceRoot":"","sources":["../../src/dom-event-engine/DomEventEngine.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAEhE,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"DomEventEngine.js","sourceRoot":"","sources":["../../src/dom-event-engine/DomEventEngine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.shared.services",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@ctrl/tinycolor": "^3.4.0",
|
|
43
43
|
"@shapediver/sdk.geometry-api-sdk-v2": "1.10.0",
|
|
44
44
|
"@shapediver/viewer.settings": "1.0.2",
|
|
45
|
-
"@shapediver/viewer.shared.build-data": "3.2.
|
|
45
|
+
"@shapediver/viewer.shared.build-data": "3.2.7",
|
|
46
46
|
"@types/dompurify": "^2.3.1",
|
|
47
47
|
"@types/ua-parser-js": "^0.7.36",
|
|
48
48
|
"@types/uuid": "^9.0.0",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"ua-parser-js": "^0.7.28",
|
|
53
53
|
"uuid": "^9.0.0"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "d21783f03fd4f64b1e44708998c55c1685f76701"
|
|
56
56
|
}
|
|
@@ -2,7 +2,7 @@ import { IDomEventListener } from './IDomEventListener';
|
|
|
2
2
|
import { UuidGenerator } from '../uuid-generator/UuidGenerator';
|
|
3
3
|
|
|
4
4
|
export class DomEventEngine {
|
|
5
|
-
// #region Properties (
|
|
5
|
+
// #region Properties (15)
|
|
6
6
|
|
|
7
7
|
private readonly _domEventListeners: {
|
|
8
8
|
[key: string]: IDomEventListener
|
|
@@ -30,8 +30,9 @@ export class DomEventEngine {
|
|
|
30
30
|
private _onPointerMove: (event: PointerEvent) => void;
|
|
31
31
|
private _onPointerOut: (event: PointerEvent) => void;
|
|
32
32
|
private _onPointerUp: (event: PointerEvent) => void;
|
|
33
|
+
private _restrictedListenerTokens: string[] = [];
|
|
33
34
|
|
|
34
|
-
// #endregion Properties (
|
|
35
|
+
// #endregion Properties (15)
|
|
35
36
|
|
|
36
37
|
// #region Constructors (1)
|
|
37
38
|
|
|
@@ -52,7 +53,7 @@ export class DomEventEngine {
|
|
|
52
53
|
|
|
53
54
|
// #endregion Constructors (1)
|
|
54
55
|
|
|
55
|
-
// #region Public Methods (
|
|
56
|
+
// #region Public Methods (7)
|
|
56
57
|
|
|
57
58
|
public addDomEventListener(listener: IDomEventListener): string {
|
|
58
59
|
const id = this._uuidGenerator.create();
|
|
@@ -60,6 +61,11 @@ export class DomEventEngine {
|
|
|
60
61
|
return id;
|
|
61
62
|
}
|
|
62
63
|
|
|
64
|
+
public addRestrictedListenerToken(token: string): void {
|
|
65
|
+
if(this._restrictedListenerTokens.includes(token)) return;
|
|
66
|
+
this._restrictedListenerTokens.push(token);
|
|
67
|
+
}
|
|
68
|
+
|
|
63
69
|
/**
|
|
64
70
|
* Allow / disallow events.
|
|
65
71
|
* This can be used to disable events for a specific viewer.
|
|
@@ -166,17 +172,25 @@ export class DomEventEngine {
|
|
|
166
172
|
public removeAllDomEventListener(): void {
|
|
167
173
|
for (const id in this._domEventListeners)
|
|
168
174
|
delete this._domEventListeners[id];
|
|
175
|
+
|
|
176
|
+
this._restrictedListenerTokens = [];
|
|
169
177
|
}
|
|
170
178
|
|
|
171
179
|
public removeDomEventListener(id: string): boolean {
|
|
172
180
|
if (this._domEventListeners[id]) {
|
|
173
181
|
delete this._domEventListeners[id];
|
|
182
|
+
this._restrictedListenerTokens = this._restrictedListenerTokens.filter(t => t !== id);
|
|
174
183
|
return true;
|
|
175
184
|
}
|
|
176
185
|
return false;
|
|
177
186
|
}
|
|
178
187
|
|
|
179
|
-
|
|
188
|
+
public removeRestrictedListenerToken(token: string): void {
|
|
189
|
+
const index = this._restrictedListenerTokens.indexOf(token);
|
|
190
|
+
if (index !== -1) this._restrictedListenerTokens.splice(index, 1);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// #endregion Public Methods (7)
|
|
180
194
|
|
|
181
195
|
// #region Private Methods (11)
|
|
182
196
|
|
|
@@ -204,8 +218,13 @@ export class DomEventEngine {
|
|
|
204
218
|
}
|
|
205
219
|
|
|
206
220
|
private onKeyDown(event: KeyboardEvent): void {
|
|
207
|
-
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
208
|
-
Object.
|
|
221
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y)) {
|
|
222
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
223
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
224
|
+
listener.onKeyDown(event);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
209
228
|
}
|
|
210
229
|
|
|
211
230
|
private onKeyDownPointerPositionHelper(event: PointerEvent): void {
|
|
@@ -213,36 +232,61 @@ export class DomEventEngine {
|
|
|
213
232
|
}
|
|
214
233
|
|
|
215
234
|
private onKeyUp(event: KeyboardEvent): void {
|
|
216
|
-
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y))
|
|
217
|
-
Object.
|
|
235
|
+
if (this._canvas === document.elementFromPoint(this._currentPointerPosition.x, this._currentPointerPosition.y)) {
|
|
236
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
237
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
238
|
+
listener.onKeyUp(event);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
218
242
|
}
|
|
219
243
|
|
|
220
244
|
private onMouseWheel(event: Event): void {
|
|
221
245
|
event.preventDefault();
|
|
222
246
|
event.stopPropagation();
|
|
223
|
-
Object.
|
|
247
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
248
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
249
|
+
listener.onMouseWheel(<WheelEvent>event);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
224
252
|
}
|
|
225
253
|
|
|
226
254
|
private onPointerDown(event: PointerEvent): void {
|
|
227
255
|
event.preventDefault();
|
|
228
|
-
Object.
|
|
256
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
257
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
258
|
+
listener.onPointerDown(event);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
229
261
|
}
|
|
230
262
|
|
|
231
263
|
private onPointerMove(event: PointerEvent): void {
|
|
232
264
|
event.preventDefault();
|
|
233
|
-
Object.
|
|
265
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
266
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
267
|
+
listener.onPointerMove(event);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
234
270
|
}
|
|
235
271
|
|
|
236
272
|
private onPointerOut(event: PointerEvent): void {
|
|
237
273
|
event.preventDefault();
|
|
238
|
-
Object.
|
|
239
|
-
|
|
274
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
275
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
276
|
+
listener.onPointerOut(event);
|
|
277
|
+
listener.onPointerEnd(event);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
240
280
|
}
|
|
241
281
|
|
|
242
282
|
private onPointerUp(event: PointerEvent): void {
|
|
243
283
|
event.preventDefault();
|
|
244
|
-
Object.
|
|
245
|
-
|
|
284
|
+
Object.entries(this._domEventListeners).forEach(([key, listener]) => {
|
|
285
|
+
if (this._restrictedListenerTokens.length === 0 || this._restrictedListenerTokens.includes(key)) {
|
|
286
|
+
listener.onPointerUp(event);
|
|
287
|
+
listener.onPointerEnd(event);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
246
290
|
}
|
|
247
291
|
|
|
248
292
|
private removeEventListeners() {
|