@shapediver/viewer.shared.services 3.2.6 → 3.2.8
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/dist/http-client/HttpClient.d.ts +5 -3
- package/dist/http-client/HttpClient.d.ts.map +1 -1
- package/dist/http-client/HttpClient.js +33 -18
- package/dist/http-client/HttpClient.js.map +1 -1
- package/package.json +3 -3
- package/src/dom-event-engine/DomEventEngine.ts +59 -15
- package/src/http-client/HttpClient.ts +38 -21
|
@@ -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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"}
|
|
@@ -2,6 +2,7 @@ import { AxiosRequestConfig } from 'axios';
|
|
|
2
2
|
import { ShapeDiverError as ShapeDiverBackendError } from '@shapediver/sdk.geometry-api-sdk-v2';
|
|
3
3
|
import { HttpResponse } from './HttpResponse';
|
|
4
4
|
export declare class HttpClient {
|
|
5
|
+
private readonly _logger;
|
|
5
6
|
private static _instance;
|
|
6
7
|
private _dataCache;
|
|
7
8
|
private _enableCaching;
|
|
@@ -51,14 +52,15 @@ export declare class HttpClient {
|
|
|
51
52
|
get(href: string, config?: AxiosRequestConfig, textureLoading?: boolean): Promise<HttpResponse<unknown>>;
|
|
52
53
|
/**
|
|
53
54
|
* Get the requested texture either as a download or from the cache.
|
|
55
|
+
* If the texture is not available, undefined is returned.
|
|
54
56
|
*
|
|
55
|
-
* @param href
|
|
56
|
-
* @returns
|
|
57
|
+
* @param href The URL of the texture to load.
|
|
58
|
+
* @returns Either the texture as a buffer and blob or undefined if the texture could not be loaded.
|
|
57
59
|
*/
|
|
58
60
|
loadTexture(href: string): Promise<HttpResponse<{
|
|
59
61
|
buffer: ArrayBuffer;
|
|
60
62
|
blob: Blob;
|
|
61
|
-
}
|
|
63
|
+
}> | undefined>;
|
|
62
64
|
/**
|
|
63
65
|
* Add the data loading options from a session.
|
|
64
66
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAkD,MAAM,qCAAqC,CAAC;AAEhJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,qBAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,eAAe,IAAI,sBAAsB,EAAkD,MAAM,qCAAqC,CAAC;AAEhJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,qBAAa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;IAErC,OAAO,CAAC,UAAU,CAOC;IACnB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,wBAAwB,CAAqD;IACrF,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,eAAe,CAKhB;IAOP,OAAO;IAMP,WAAkB,QAAQ,eAEzB;IAMD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,aAAa,CAAC,KAAK,EAAE,OAAO,EAItC;IAED,IAAW,uBAAuB,IAAI,MAAM,EAAE,CAE7C;IAED,IAAW,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,EAEjD;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAEpC;IAMD;;;;;OAKG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;QAChD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;KACvF;IAID;;;;;;;;OAQG;IACI,YAAY,CAAC,CAAC,EAAE,sBAAsB,GAAG,KAAK,GAAG,OAAO;IAY/D;;;;;;;;;;;OAWG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,kBAAoD,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAgF7J;;;;;;OAMG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IA4B9G;;;;OAIG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAQ1C;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAmBlB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAepB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;CAkBxB"}
|
|
@@ -17,11 +17,14 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
17
17
|
const sdk_geometry_api_sdk_v2_1 = require("@shapediver/sdk.geometry-api-sdk-v2");
|
|
18
18
|
const ShapeDiverBackendErrors_1 = require("../logger/ShapeDiverBackendErrors");
|
|
19
19
|
const base64_1 = require("../utilities/base64");
|
|
20
|
+
const Logger_1 = require("../logger/Logger");
|
|
20
21
|
class HttpClient {
|
|
21
22
|
// #endregion Properties (7)
|
|
22
23
|
// #region Constructors (1)
|
|
23
24
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
24
25
|
constructor() {
|
|
26
|
+
// #region Properties (7)
|
|
27
|
+
this._logger = Logger_1.Logger.instance;
|
|
25
28
|
this._dataCache = new Map();
|
|
26
29
|
this._enableCaching = true;
|
|
27
30
|
this._excludedQueryParameters = ['Expires', 'Signature', 'Key-Pair-Id'];
|
|
@@ -29,12 +32,12 @@ class HttpClient {
|
|
|
29
32
|
this._sessionLoading = {};
|
|
30
33
|
}
|
|
31
34
|
// #endregion Constructors (1)
|
|
32
|
-
// #region Public Static
|
|
35
|
+
// #region Public Static Getters And Setters (1)
|
|
33
36
|
static get instance() {
|
|
34
37
|
return this._instance || (this._instance = new this());
|
|
35
38
|
}
|
|
36
|
-
// #endregion Public Static
|
|
37
|
-
// #region Public
|
|
39
|
+
// #endregion Public Static Getters And Setters (1)
|
|
40
|
+
// #region Public Getters And Setters (6)
|
|
38
41
|
get enableCaching() {
|
|
39
42
|
return this._enableCaching;
|
|
40
43
|
}
|
|
@@ -55,7 +58,7 @@ class HttpClient {
|
|
|
55
58
|
set maxCacheSize(value) {
|
|
56
59
|
this._maxCacheSize = value;
|
|
57
60
|
}
|
|
58
|
-
// #endregion Public
|
|
61
|
+
// #endregion Public Getters And Setters (6)
|
|
59
62
|
// #region Public Methods (5)
|
|
60
63
|
/**
|
|
61
64
|
* Add the data loading options from a session.
|
|
@@ -177,24 +180,36 @@ class HttpClient {
|
|
|
177
180
|
}
|
|
178
181
|
/**
|
|
179
182
|
* Get the requested texture either as a download or from the cache.
|
|
183
|
+
* If the texture is not available, undefined is returned.
|
|
180
184
|
*
|
|
181
|
-
* @param href
|
|
182
|
-
* @returns
|
|
185
|
+
* @param href The URL of the texture to load.
|
|
186
|
+
* @returns Either the texture as a buffer and blob or undefined if the texture could not be loaded.
|
|
183
187
|
*/
|
|
184
188
|
loadTexture(href) {
|
|
185
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
190
|
+
let result;
|
|
191
|
+
try {
|
|
192
|
+
const response = yield this.get(href, undefined, true);
|
|
193
|
+
const buffer = response.data;
|
|
194
|
+
const arrayBufferView = new Uint8Array(response.data);
|
|
195
|
+
const blob = new Blob([arrayBufferView], { type: response.headers['content-type'] });
|
|
196
|
+
// assign the result
|
|
197
|
+
result = {
|
|
198
|
+
data: {
|
|
199
|
+
buffer,
|
|
200
|
+
blob
|
|
201
|
+
},
|
|
202
|
+
size: response.data.byteLength,
|
|
203
|
+
headers: response.headers
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
// log the error and return undefined
|
|
208
|
+
this._logger.error(`Failed to load texture: ${e}`);
|
|
209
|
+
}
|
|
210
|
+
// return undefined if the texture could not be loaded
|
|
211
|
+
// that way the loading can be continued without the texture
|
|
212
|
+
return result;
|
|
198
213
|
});
|
|
199
214
|
}
|
|
200
215
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/http-client/HttpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,iFAAgJ;AAChJ,+EAAkK;
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../src/http-client/HttpClient.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.8",
|
|
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.8",
|
|
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": "a8c27c745498812d103635aeec6d5311d6e8c8e3"
|
|
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() {
|
|
@@ -2,11 +2,14 @@ import axios, { AxiosRequestConfig } from 'axios';
|
|
|
2
2
|
import { ShapeDiverError as ShapeDiverBackendError, isGBResponseError, isGBRequestError, isGBError } from '@shapediver/sdk.geometry-api-sdk-v2';
|
|
3
3
|
import { ShapeDiverGeometryBackendError, ShapeDiverGeometryBackendRequestError, ShapeDiverGeometryBackendResponseError } from '../logger/ShapeDiverBackendErrors';
|
|
4
4
|
import { HttpResponse } from './HttpResponse';
|
|
5
|
-
import { Converter } from '../converter/Converter';
|
|
6
5
|
import { btoaCustom } from '../utilities/base64';
|
|
6
|
+
import { Logger } from '../logger/Logger';
|
|
7
7
|
|
|
8
8
|
export class HttpClient {
|
|
9
9
|
// #region Properties (7)
|
|
10
|
+
|
|
11
|
+
private readonly _logger: Logger = Logger.instance;
|
|
12
|
+
|
|
10
13
|
private static _instance: HttpClient;
|
|
11
14
|
|
|
12
15
|
private _dataCache: Map<
|
|
@@ -36,15 +39,15 @@ export class HttpClient {
|
|
|
36
39
|
|
|
37
40
|
// #endregion Constructors (1)
|
|
38
41
|
|
|
39
|
-
// #region Public Static
|
|
42
|
+
// #region Public Static Getters And Setters (1)
|
|
40
43
|
|
|
41
44
|
public static get instance() {
|
|
42
45
|
return this._instance || (this._instance = new this());
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
// #endregion Public Static
|
|
48
|
+
// #endregion Public Static Getters And Setters (1)
|
|
46
49
|
|
|
47
|
-
// #region Public
|
|
50
|
+
// #region Public Getters And Setters (6)
|
|
48
51
|
|
|
49
52
|
public get enableCaching(): boolean {
|
|
50
53
|
return this._enableCaching;
|
|
@@ -72,7 +75,7 @@ export class HttpClient {
|
|
|
72
75
|
this._maxCacheSize = value;
|
|
73
76
|
}
|
|
74
77
|
|
|
75
|
-
// #endregion Public
|
|
78
|
+
// #endregion Public Getters And Setters (6)
|
|
76
79
|
|
|
77
80
|
// #region Public Methods (5)
|
|
78
81
|
|
|
@@ -122,7 +125,7 @@ export class HttpClient {
|
|
|
122
125
|
* @param textureConversion
|
|
123
126
|
* @returns
|
|
124
127
|
*/
|
|
125
|
-
public async get(href: string, config: AxiosRequestConfig = { responseType: 'arraybuffer' }, textureLoading: boolean = false): Promise<HttpResponse<unknown>> {
|
|
128
|
+
public async get(href: string, config: AxiosRequestConfig = { responseType: 'arraybuffer' }, textureLoading: boolean = false): Promise<HttpResponse<unknown>> {
|
|
126
129
|
const dataKey = this.hrefToDataKey(href);
|
|
127
130
|
|
|
128
131
|
// return element if it exists in cache
|
|
@@ -204,23 +207,37 @@ export class HttpClient {
|
|
|
204
207
|
|
|
205
208
|
/**
|
|
206
209
|
* Get the requested texture either as a download or from the cache.
|
|
210
|
+
* If the texture is not available, undefined is returned.
|
|
207
211
|
*
|
|
208
|
-
* @param href
|
|
209
|
-
* @returns
|
|
212
|
+
* @param href The URL of the texture to load.
|
|
213
|
+
* @returns Either the texture as a buffer and blob or undefined if the texture could not be loaded.
|
|
210
214
|
*/
|
|
211
|
-
public async loadTexture(href: string): Promise<HttpResponse<{ buffer: ArrayBuffer, blob: Blob }
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
data
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
215
|
+
public async loadTexture(href: string): Promise<HttpResponse<{ buffer: ArrayBuffer, blob: Blob }> | undefined> {
|
|
216
|
+
let result: HttpResponse<{ buffer: ArrayBuffer, blob: Blob }> | undefined;
|
|
217
|
+
|
|
218
|
+
try {
|
|
219
|
+
const response = await this.get(href, undefined, true) as HttpResponse<ArrayBuffer>;
|
|
220
|
+
const buffer = response.data;
|
|
221
|
+
const arrayBufferView = new Uint8Array(response.data);
|
|
222
|
+
const blob = new Blob([arrayBufferView], { type: response.headers['content-type'] });
|
|
223
|
+
|
|
224
|
+
// assign the result
|
|
225
|
+
result = {
|
|
226
|
+
data: {
|
|
227
|
+
buffer,
|
|
228
|
+
blob
|
|
229
|
+
},
|
|
230
|
+
size: response.data.byteLength,
|
|
231
|
+
headers: response.headers
|
|
232
|
+
};
|
|
233
|
+
} catch (e) {
|
|
234
|
+
// log the error and return undefined
|
|
235
|
+
this._logger.error(`Failed to load texture: ${e}`);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// return undefined if the texture could not be loaded
|
|
239
|
+
// that way the loading can be continued without the texture
|
|
240
|
+
return result;
|
|
224
241
|
}
|
|
225
242
|
|
|
226
243
|
/**
|