@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,20 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SettingsEngine = void 0;
|
|
3
|
+
exports.SESSION_SETTINGS_MODE = exports.SettingsEngine = void 0;
|
|
4
4
|
const viewer_settings_1 = require("@shapediver/viewer.settings");
|
|
5
|
-
const EventEngine_1 = require("../event-engine/EventEngine");
|
|
6
|
-
const Logger_1 = require("../logger/Logger");
|
|
7
5
|
const ShapeDiverViewerErrors_1 = require("../logger/ShapeDiverViewerErrors");
|
|
6
|
+
// #endregion Type aliases (8)
|
|
7
|
+
// #region Classes (1)
|
|
8
8
|
class SettingsEngine {
|
|
9
9
|
constructor() {
|
|
10
|
-
// #region Properties (
|
|
11
|
-
this._eventEngine = EventEngine_1.EventEngine.instance;
|
|
12
|
-
this._logger = Logger_1.Logger.instance;
|
|
10
|
+
// #region Properties (4)
|
|
13
11
|
this._settings = (0, viewer_settings_1.Defaults)();
|
|
14
12
|
// #endregion Private Methods (1)
|
|
15
13
|
}
|
|
16
|
-
// #endregion Properties (
|
|
17
|
-
// #region Public
|
|
14
|
+
// #endregion Properties (4)
|
|
15
|
+
// #region Public Getters And Setters (11)
|
|
18
16
|
get ar() {
|
|
19
17
|
return this._settings.ar;
|
|
20
18
|
}
|
|
@@ -48,43 +46,23 @@ class SettingsEngine {
|
|
|
48
46
|
get settingsJson() {
|
|
49
47
|
return this._settingsJson;
|
|
50
48
|
}
|
|
51
|
-
// #endregion Public
|
|
52
|
-
// #region Public Methods (
|
|
53
|
-
flatten() {
|
|
54
|
-
const flattenObject = (ob) => {
|
|
55
|
-
const toReturn = {};
|
|
56
|
-
for (let i in ob) {
|
|
57
|
-
if (!ob.hasOwnProperty(i))
|
|
58
|
-
continue;
|
|
59
|
-
if ((typeof ob[i]) == 'object') {
|
|
60
|
-
const flatObject = flattenObject(ob[i]);
|
|
61
|
-
for (var x in flatObject) {
|
|
62
|
-
if (!flatObject.hasOwnProperty(x))
|
|
63
|
-
continue;
|
|
64
|
-
toReturn[i + '.' + x] = flatObject[x];
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
toReturn[i] = ob[i];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return toReturn;
|
|
72
|
-
};
|
|
73
|
-
return flattenObject(this.settings);
|
|
74
|
-
}
|
|
49
|
+
// #endregion Public Getters And Setters (11)
|
|
50
|
+
// #region Public Methods (2)
|
|
75
51
|
loadSettings(json) {
|
|
76
52
|
this._settingsJson = json;
|
|
77
53
|
if (JSON.stringify(json) !== JSON.stringify({})) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const v = prevVersions[i];
|
|
54
|
+
for (let i = 0; i < viewer_settings_1.previousVersion.length; i++) {
|
|
55
|
+
const v = viewer_settings_1.previousVersion[i];
|
|
81
56
|
try {
|
|
82
57
|
(0, viewer_settings_1.validate)(json, v);
|
|
83
58
|
this._settings = (0, viewer_settings_1.convert)(json, viewer_settings_1.latestVersion);
|
|
84
59
|
this.cleanSettings(this._settings);
|
|
85
60
|
return;
|
|
86
61
|
}
|
|
87
|
-
catch (e) {
|
|
62
|
+
catch (e) {
|
|
63
|
+
// it's ok, we just try the next version
|
|
64
|
+
// only the latest version is expected to be valid
|
|
65
|
+
}
|
|
88
66
|
}
|
|
89
67
|
try {
|
|
90
68
|
(0, viewer_settings_1.validate)(json, viewer_settings_1.latestVersion);
|
|
@@ -104,10 +82,10 @@ class SettingsEngine {
|
|
|
104
82
|
reset() {
|
|
105
83
|
this._settings = (0, viewer_settings_1.Defaults)();
|
|
106
84
|
}
|
|
107
|
-
// #endregion Public Methods (
|
|
85
|
+
// #endregion Public Methods (2)
|
|
108
86
|
// #region Private Methods (1)
|
|
109
87
|
cleanSettings(json) {
|
|
110
|
-
for (
|
|
88
|
+
for (const c in json.camera.cameras) {
|
|
111
89
|
const camera = json.camera.cameras[c];
|
|
112
90
|
if (camera.type === 'perspective') {
|
|
113
91
|
const restrictions = camera.controls.restrictions;
|
|
@@ -150,4 +128,33 @@ class SettingsEngine {
|
|
|
150
128
|
}
|
|
151
129
|
}
|
|
152
130
|
exports.SettingsEngine = SettingsEngine;
|
|
131
|
+
// #endregion Classes (1)
|
|
132
|
+
// #region Enums (1)
|
|
133
|
+
/**
|
|
134
|
+
* Session settings to be used by a viewport.
|
|
135
|
+
*
|
|
136
|
+
* The {@link https://help.shapediver.com/doc/Geometry-Backend.1863942173.html|ShapeDiver Geometry Backend}
|
|
137
|
+
* allows to persist settings of the viewer, individually for each model that it hosts. Persisting the settings
|
|
138
|
+
* of the viewer requires permissions which are typically only granted to the owner of the model. Editing
|
|
139
|
+
* of the settings typically happens on the model edit page of the ShapeDiver Platform.
|
|
140
|
+
*
|
|
141
|
+
* Whenever an instance of the viewer creates a session with a model, the settings are made available to the viewer.
|
|
142
|
+
* It is possible to use multiple sessions with different models from a single instance of the viewer.
|
|
143
|
+
* Therefore the viewer offers a choice on which settings to use.
|
|
144
|
+
*/
|
|
145
|
+
var SESSION_SETTINGS_MODE;
|
|
146
|
+
(function (SESSION_SETTINGS_MODE) {
|
|
147
|
+
/** No settings of a session will be used for the viewport. */
|
|
148
|
+
SESSION_SETTINGS_MODE["NONE"] = "none";
|
|
149
|
+
/**
|
|
150
|
+
* The settings of the very first session created will be used for the viewport.
|
|
151
|
+
*/
|
|
152
|
+
SESSION_SETTINGS_MODE["FIRST"] = "first";
|
|
153
|
+
/**
|
|
154
|
+
* Use this mode in case you want to assign a specific session identifier
|
|
155
|
+
* to the viewport, whose settings will be used.
|
|
156
|
+
*/
|
|
157
|
+
SESSION_SETTINGS_MODE["MANUAL"] = "manual";
|
|
158
|
+
})(SESSION_SETTINGS_MODE = exports.SESSION_SETTINGS_MODE || (exports.SESSION_SETTINGS_MODE = {}));
|
|
159
|
+
// #endregion Enums (1)
|
|
153
160
|
//# sourceMappingURL=SettingsEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsEngine.js","sourceRoot":"","sources":["../../src/settings-engine/SettingsEngine.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"SettingsEngine.js","sourceRoot":"","sources":["../../src/settings-engine/SettingsEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SettingsEngine } from '../settings-engine/SettingsEngine';
|
|
2
|
+
import { ShapeDiverRequestGltfUploadQueryConversion, ShapeDiverResponseDto } from '@shapediver/sdk.geometry-api-sdk-v2';
|
|
3
|
+
import { StatePromise } from './StatePromise';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for the global access definition of a session.
|
|
6
|
+
* This interface is used to define the properties and methods that are available via the state engine for a session.
|
|
7
|
+
* This means that they can be called without having a direct reference to the session engine.
|
|
8
|
+
*/
|
|
9
|
+
export interface ISessionGlobalAccessObjectDefinition {
|
|
10
|
+
readonly canUploadGLTF: boolean;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly initialOutputsLoaded: StatePromise<boolean>;
|
|
13
|
+
readonly initialized: StatePromise<boolean>;
|
|
14
|
+
readonly modelViewUrl: string;
|
|
15
|
+
readonly settingsEngine: SettingsEngine;
|
|
16
|
+
readonly settingsRegistered: StatePromise<boolean>;
|
|
17
|
+
isFirstSession: boolean;
|
|
18
|
+
uploadGLTF: (gltf: Blob, name: ShapeDiverRequestGltfUploadQueryConversion | undefined) => Promise<ShapeDiverResponseDto>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ISessionGlobalAccessObjectDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISessionGlobalAccessObjectDefinition.d.ts","sourceRoot":"","sources":["../../src/state-engine/ISessionGlobalAccessObjectDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,0CAA0C,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,oCAAoC;IAGjD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAEnD,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0CAA0C,GAAG,SAAS,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAG5H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISessionGlobalAccessObjectDefinition.js","sourceRoot":"","sources":["../../src/state-engine/ISessionGlobalAccessObjectDefinition.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SESSION_SETTINGS_MODE, SettingsEngine } from '../settings-engine/SettingsEngine';
|
|
2
|
+
import { StatePromise } from './StatePromise';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for the global access definition of a viewport.
|
|
5
|
+
* This interface is used to define the properties and methods that are available via the state engine for a viewport.
|
|
6
|
+
* This means that they can be called without having a direct reference to the viewport engine.
|
|
7
|
+
*/
|
|
8
|
+
export interface IViewportGlobalAccessObjectDefinition {
|
|
9
|
+
readonly boundingBoxCreated: StatePromise<boolean>;
|
|
10
|
+
readonly busy: string[];
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly initialized: StatePromise<boolean>;
|
|
13
|
+
readonly sessionSettingsId?: string;
|
|
14
|
+
readonly sessionSettingsMode: SESSION_SETTINGS_MODE;
|
|
15
|
+
readonly settingsAssigned: StatePromise<boolean>;
|
|
16
|
+
applySettings: (sections?: {
|
|
17
|
+
ar?: boolean;
|
|
18
|
+
scene?: boolean;
|
|
19
|
+
camera?: boolean;
|
|
20
|
+
light?: boolean;
|
|
21
|
+
environment?: boolean;
|
|
22
|
+
general?: boolean;
|
|
23
|
+
postprocessing?: boolean;
|
|
24
|
+
}, settingsEngine?: SettingsEngine, updateViewport?: boolean) => Promise<void>;
|
|
25
|
+
assignSettingsEngine: (settingsEngine: SettingsEngine) => void;
|
|
26
|
+
displayErrorMessage: (message: string) => void;
|
|
27
|
+
environmentMapLoaded: StatePromise<boolean>;
|
|
28
|
+
reset: () => void;
|
|
29
|
+
saveSettings: (settingsEngine?: SettingsEngine) => void;
|
|
30
|
+
update: (id: string) => void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=IViewportGlobalAccessObjectDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IViewportGlobalAccessObjectDefinition.d.ts","sourceRoot":"","sources":["../../src/state-engine/IViewportGlobalAccessObjectDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,qCAAqC;IAGlD,QAAQ,CAAC,kBAAkB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAEjD,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjP,oBAAoB,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/D,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAGhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IViewportGlobalAccessObjectDefinition.js","sourceRoot":"","sources":["../../src/state-engine/IViewportGlobalAccessObjectDefinition.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
+
import { ISessionGlobalAccessObjectDefinition } from './ISessionGlobalAccessObjectDefinition';
|
|
2
|
+
import { IViewportGlobalAccessObjectDefinition } from './IViewportGlobalAccessObjectDefinition';
|
|
1
3
|
import { StatePromise } from './StatePromise';
|
|
2
4
|
export declare class StateEngine {
|
|
3
5
|
private readonly _fontLoaded;
|
|
4
|
-
private readonly _renderingEngines;
|
|
5
6
|
private readonly _sessionEngines;
|
|
7
|
+
private readonly _viewportEngines;
|
|
6
8
|
private static _instance;
|
|
7
9
|
private constructor();
|
|
8
10
|
static get instance(): StateEngine;
|
|
9
11
|
get fontLoaded(): StatePromise<boolean>;
|
|
10
|
-
get renderingEngines(): {
|
|
11
|
-
[key: string]: {
|
|
12
|
-
id: string;
|
|
13
|
-
initialized: StatePromise<boolean>;
|
|
14
|
-
settingsAssigned: StatePromise<boolean>;
|
|
15
|
-
environmentMapLoaded: StatePromise<boolean>;
|
|
16
|
-
boundingBoxCreated: StatePromise<boolean>;
|
|
17
|
-
busy: string[];
|
|
18
|
-
update: (id: string) => void;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
12
|
get sessionEngines(): {
|
|
22
|
-
[key: string]:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
settingsRegistered: StatePromise<boolean>;
|
|
27
|
-
};
|
|
13
|
+
[key: string]: ISessionGlobalAccessObjectDefinition;
|
|
14
|
+
};
|
|
15
|
+
get viewportEngines(): {
|
|
16
|
+
[key: string]: IViewportGlobalAccessObjectDefinition;
|
|
28
17
|
};
|
|
29
18
|
}
|
|
30
19
|
//# sourceMappingURL=StateEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateEngine.d.ts","sourceRoot":"","sources":["../../src/state-engine/StateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"StateEngine.d.ts","sourceRoot":"","sources":["../../src/state-engine/StateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,WAAW;IAGpB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+D;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgE;IAEjG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;IAMtC,OAAO;IAQP,WAAkB,QAAQ,gBAEzB;IAMD,IAAW,UAAU,IAAI,YAAY,CAAC,OAAO,CAAC,CAE7C;IAED,IAAW,cAAc,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oCAAoC,CAAA;KAAE,CAEnF;IAED,IAAW,eAAe,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,qCAAqC,CAAA;KAAE,CAErF;CAGJ"}
|
|
@@ -3,31 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StateEngine = void 0;
|
|
4
4
|
const StatePromise_1 = require("./StatePromise");
|
|
5
5
|
class StateEngine {
|
|
6
|
-
// #endregion Properties (
|
|
6
|
+
// #endregion Properties (4)
|
|
7
7
|
// #region Constructors (1)
|
|
8
8
|
constructor() {
|
|
9
|
-
// #region Properties (
|
|
9
|
+
// #region Properties (4)
|
|
10
10
|
this._fontLoaded = new StatePromise_1.StatePromise();
|
|
11
|
-
this._renderingEngines = {};
|
|
12
11
|
this._sessionEngines = {};
|
|
12
|
+
this._viewportEngines = {};
|
|
13
13
|
this._fontLoaded = new StatePromise_1.StatePromise();
|
|
14
14
|
}
|
|
15
15
|
// #endregion Constructors (1)
|
|
16
|
-
// #region Public Static
|
|
16
|
+
// #region Public Static Getters And Setters (1)
|
|
17
17
|
static get instance() {
|
|
18
18
|
return this._instance || (this._instance = new this());
|
|
19
19
|
}
|
|
20
|
-
// #endregion Public Static
|
|
21
|
-
// #region Public
|
|
20
|
+
// #endregion Public Static Getters And Setters (1)
|
|
21
|
+
// #region Public Getters And Setters (3)
|
|
22
22
|
get fontLoaded() {
|
|
23
23
|
return this._fontLoaded;
|
|
24
24
|
}
|
|
25
|
-
get renderingEngines() {
|
|
26
|
-
return this._renderingEngines;
|
|
27
|
-
}
|
|
28
25
|
get sessionEngines() {
|
|
29
26
|
return this._sessionEngines;
|
|
30
27
|
}
|
|
28
|
+
get viewportEngines() {
|
|
29
|
+
return this._viewportEngines;
|
|
30
|
+
}
|
|
31
31
|
}
|
|
32
32
|
exports.StateEngine = StateEngine;
|
|
33
33
|
//# sourceMappingURL=StateEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateEngine.js","sourceRoot":"","sources":["../../src/state-engine/StateEngine.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"StateEngine.js","sourceRoot":"","sources":["../../src/state-engine/StateEngine.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAE9C,MAAa,WAAW;IASpB,4BAA4B;IAE5B,2BAA2B;IAE3B;QAZA,yBAAyB;QAER,gBAAW,GAA0B,IAAI,2BAAY,EAAE,CAAC;QACxD,oBAAe,GAA4D,EAAE,CAAC;QAC9E,qBAAgB,GAA6D,EAAE,CAAC;QAS7F,IAAI,CAAC,WAAW,GAAG,IAAI,2BAAY,EAAE,CAAC;IAC1C,CAAC;IAED,8BAA8B;IAE9B,gDAAgD;IAEzC,MAAM,KAAK,QAAQ;QACtB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,mDAAmD;IAEnD,yCAAyC;IAEzC,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;CAGJ;AA1CD,kCA0CC"}
|
|
@@ -74,7 +74,7 @@ class SystemInfo {
|
|
|
74
74
|
get isIOS() {
|
|
75
75
|
const osName = this._parser.getOS().name;
|
|
76
76
|
return osName === 'iOS' ||
|
|
77
|
-
(window.navigator && window.navigator.maxTouchPoints === 5 && window.navigator.platform === 'MacIntel');
|
|
77
|
+
(typeof window !== undefined && window.navigator && window.navigator.maxTouchPoints === 5 && window.navigator.platform === 'MacIntel');
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Check if we are running in an iframe
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemInfo.js","sourceRoot":"","sources":["../../src/system-info/SystemInfo.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAoC;AAEpC,MAAa,UAAU;IAUnB,4BAA4B;IAE5B,2BAA2B;IAE3B;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAQ,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC,UAAU,GAAG,kBAAkB;YAChC,CAAC,OAAO,QAAQ,KAAK,WAAW;mBACzB,OAAO,QAAQ,CAAC,cAAc,KAAK,UAAU;mBAC7C,MAAM;mBACN,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CACxC,CAAC;QACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,2EAA2E;YAC3E,gCAAgC;YAChC,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC9E;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;SAC3B;IACL,CAAC;IAED,8BAA8B;IAE9B,sCAAsC;IAE/B,MAAM,KAAK,QAAQ;QACtB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,yCAAyC;IAEzC,gCAAgC;IAEhC;;OAEG;IACH,IAAW,SAAS;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;QACzC,OAAO,MAAM,KAAK,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC;QACzC,OAAO,MAAM,KAAK,KAAK;YACvB,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SystemInfo.js","sourceRoot":"","sources":["../../src/system-info/SystemInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/utilities/base64.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAMxC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAMxC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.btoaCustom = exports.atobCustom = void 0;
|
|
4
|
+
const atobCustom = (str) => {
|
|
5
|
+
if (typeof window !== 'undefined' && window.atob) {
|
|
6
|
+
return window.atob(str);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return Buffer.from(str, 'base64').toString();
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
exports.atobCustom = atobCustom;
|
|
13
|
+
const btoaCustom = (str) => {
|
|
14
|
+
if (typeof window !== 'undefined' && window.btoa) {
|
|
15
|
+
return window.btoa(str);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return Buffer.from(str).toString('base64');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.btoaCustom = btoaCustom;
|
|
22
|
+
//# sourceMappingURL=base64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utilities/base64.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE;IAC9C,IAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3B;SAAM;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;KAChD;AACL,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE;IAC9C,IAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3B;SAAM;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC9C;AACL,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.shared.services",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@ctrl/tinycolor": "^3.4.0",
|
|
43
43
|
"@shapediver/sdk.geometry-api-sdk-v2": "1.8.2",
|
|
44
|
-
"@shapediver/viewer.settings": "0.
|
|
45
|
-
"@shapediver/viewer.shared.build-data": "
|
|
44
|
+
"@shapediver/viewer.settings": "1.0.2",
|
|
45
|
+
"@shapediver/viewer.shared.build-data": "3.0.1",
|
|
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": "cae477cab82d2cddddec9cbea6fec7bc2392552b"
|
|
56
56
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { vec3 } from 'gl-matrix';
|
|
2
1
|
import { ColorInput, TinyColor } from '@ctrl/tinycolor';
|
|
3
2
|
import { HttpClient } from '../http-client/HttpClient';
|
|
4
3
|
import { HttpResponse } from '../http-client/HttpResponse';
|
|
4
|
+
import { vec3 } from 'gl-matrix';
|
|
5
|
+
import { atobCustom, btoaCustom } from '../utilities/base64';
|
|
5
6
|
|
|
6
7
|
export class Converter {
|
|
7
8
|
// #region Properties (2)
|
|
@@ -12,13 +13,13 @@ export class Converter {
|
|
|
12
13
|
|
|
13
14
|
// #endregion Properties (2)
|
|
14
15
|
|
|
15
|
-
// #region Public Static
|
|
16
|
+
// #region Public Static Getters And Setters (1)
|
|
16
17
|
|
|
17
18
|
public static get instance() {
|
|
18
19
|
return this._instance || (this._instance = new this());
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
// #endregion Public Static
|
|
22
|
+
// #endregion Public Static Getters And Setters (1)
|
|
22
23
|
|
|
23
24
|
// #region Public Methods (8)
|
|
24
25
|
|
|
@@ -30,7 +31,7 @@ export class Converter {
|
|
|
30
31
|
reader.readAsDataURL(blob);
|
|
31
32
|
});
|
|
32
33
|
data = data.replace('data:image/svg+xml;base64,', '');
|
|
33
|
-
data =
|
|
34
|
+
data = atobCustom(data);
|
|
34
35
|
|
|
35
36
|
const svgC = document.createElement('DIV');
|
|
36
37
|
svgC.id = 'svgc';
|
|
@@ -81,7 +82,7 @@ export class Converter {
|
|
|
81
82
|
while (i--)
|
|
82
83
|
biStr[i] = String.fromCharCode(uInt8Array[i]);
|
|
83
84
|
|
|
84
|
-
const base64Data =
|
|
85
|
+
const base64Data = btoaCustom(biStr.join(''));
|
|
85
86
|
const imgDataUrl = 'data:' + response.headers['content-type'] + ';base64,' + base64Data;
|
|
86
87
|
|
|
87
88
|
// replace url in SVG string
|
|
@@ -121,7 +122,7 @@ export class Converter {
|
|
|
121
122
|
while (i--)
|
|
122
123
|
biStr[i] = String.fromCharCode(uInt8Array[i]);
|
|
123
124
|
|
|
124
|
-
const base64Data =
|
|
125
|
+
const base64Data = btoaCustom(biStr.join(''));
|
|
125
126
|
const fontDataUrl = 'data:' + response.headers['content-type'] + ';base64,' + base64Data;
|
|
126
127
|
if (fUrl.length > 0)
|
|
127
128
|
cssString = cssString.replace(fUrl, fontDataUrl);
|
|
@@ -151,12 +152,12 @@ export class Converter {
|
|
|
151
152
|
return img;
|
|
152
153
|
}
|
|
153
154
|
|
|
154
|
-
public async responseToImage(response: HttpResponse<
|
|
155
|
+
public async responseToImage(response: HttpResponse<{ buffer: ArrayBuffer, blob: Blob }>): Promise<HTMLImageElement> {
|
|
155
156
|
// if we already receive and image, this conversion already happened
|
|
156
|
-
if(response.data instanceof HTMLImageElement) return response.data;
|
|
157
|
-
|
|
157
|
+
if (response.data instanceof HTMLImageElement) return response.data;
|
|
158
|
+
|
|
158
159
|
if (response.headers['content-type'] === 'image/svg+xml') {
|
|
159
|
-
const img = await this.processSVG(blob);
|
|
160
|
+
const img = await this.processSVG(response.data.blob);
|
|
160
161
|
return img;
|
|
161
162
|
} else {
|
|
162
163
|
const img = new Image();
|
|
@@ -165,7 +166,7 @@ export class Converter {
|
|
|
165
166
|
img.onerror = reject;
|
|
166
167
|
});
|
|
167
168
|
img.crossOrigin = 'anonymous';
|
|
168
|
-
img.src = URL.createObjectURL(blob);
|
|
169
|
+
img.src = URL.createObjectURL(response.data.blob);
|
|
169
170
|
await promise;
|
|
170
171
|
URL.revokeObjectURL(img.src);
|
|
171
172
|
return img;
|
|
@@ -179,7 +180,7 @@ export class Converter {
|
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
public toColorArray(color: unknown): number[] {
|
|
182
|
-
if(typeof color !== 'string' || !color.startsWith('#'))
|
|
183
|
+
if (typeof color !== 'string' || !color.startsWith('#'))
|
|
183
184
|
color = this.toHexColor(color);
|
|
184
185
|
const tColor = new TinyColor(color as ColorInput | undefined);
|
|
185
186
|
const rgb = tColor.toRgb();
|
|
@@ -227,8 +228,8 @@ export class Converter {
|
|
|
227
228
|
}
|
|
228
229
|
|
|
229
230
|
// check if the input is a THREE.Color
|
|
230
|
-
if ((color as
|
|
231
|
-
const tc = new TinyColor((color as
|
|
231
|
+
if (typeof color === 'object' && 'isColor' in (color as object) && 'getHexString' in (color as object) && typeof (color as { getHexString: unknown }).getHexString === 'function'){
|
|
232
|
+
const tc = new TinyColor((color as { getHexString: () => string }).getHexString());
|
|
232
233
|
return tc.isValid ? this.tinyColorToString(tc) : defColorString;
|
|
233
234
|
}
|
|
234
235
|
|
|
@@ -296,15 +297,15 @@ export class Converter {
|
|
|
296
297
|
return c.slice(0, c.length - 2);
|
|
297
298
|
}
|
|
298
299
|
|
|
299
|
-
public toVec3(point: vec3 | { x: number, y: number, z: number} | { X: number, Y: number, Z: number}): vec3 {
|
|
300
|
+
public toVec3(point: vec3 | { x: number, y: number, z: number } | { X: number, Y: number, Z: number }): vec3 {
|
|
300
301
|
if (Array.isArray(point) && point.length >= 3 && typeof point[0] === 'number' && typeof point[1] === 'number' && typeof point[2] === 'number')
|
|
301
302
|
return vec3.fromValues(point[0], point[1], point[2]);
|
|
302
303
|
|
|
303
|
-
const pointCast1 = point as { x: number, y: number, z: number};
|
|
304
|
+
const pointCast1 = point as { x: number, y: number, z: number };
|
|
304
305
|
if (((pointCast1.x || pointCast1.x === 0) && typeof pointCast1.x === 'number') && ((pointCast1.y || pointCast1.y === 0) && typeof pointCast1.y === 'number') && ((pointCast1.z || pointCast1.z === 0) && typeof pointCast1.z === 'number'))
|
|
305
306
|
return vec3.fromValues(pointCast1.x, pointCast1.y, pointCast1.z);
|
|
306
307
|
|
|
307
|
-
const pointCast2 = point as { X: number, Y: number, Z: number};
|
|
308
|
+
const pointCast2 = point as { X: number, Y: number, Z: number };
|
|
308
309
|
if (((pointCast2.X || pointCast2.X === 0) && typeof pointCast2.X === 'number') && ((pointCast2.Y || pointCast2.Y === 0) && typeof pointCast2.Y === 'number') && ((pointCast2.Z || pointCast2.Z === 0) && typeof pointCast2.Z === 'number'))
|
|
309
310
|
return vec3.fromValues(pointCast2.X, pointCast2.Y, pointCast2.Z);
|
|
310
311
|
|