@shapediver/viewer.session-engine.session-engine 3.14.6 → 3.14.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/implementation/SessionEngine.d.ts.map +1 -1
- package/dist/implementation/SessionEngine.js +5 -4
- package/dist/implementation/SessionEngine.js.map +1 -1
- package/dist/implementation/SessionEngineCore.d.ts +145 -0
- package/dist/implementation/SessionEngineCore.d.ts.map +1 -0
- package/dist/implementation/SessionEngineCore.js +544 -0
- package/dist/implementation/SessionEngineCore.js.map +1 -0
- package/dist/implementation/SessionEngineFacade.d.ts +101 -0
- package/dist/implementation/SessionEngineFacade.d.ts.map +1 -0
- package/dist/implementation/SessionEngineFacade.js +190 -0
- package/dist/implementation/SessionEngineFacade.js.map +1 -0
- package/dist/implementation/managers/CustomizationManager.d.ts +32 -0
- package/dist/implementation/managers/CustomizationManager.d.ts.map +1 -0
- package/dist/implementation/managers/CustomizationManager.js +266 -0
- package/dist/implementation/managers/CustomizationManager.js.map +1 -0
- package/dist/implementation/managers/ExportManager.d.ts +31 -0
- package/dist/implementation/managers/ExportManager.d.ts.map +1 -0
- package/dist/implementation/managers/ExportManager.js +150 -0
- package/dist/implementation/managers/ExportManager.js.map +1 -0
- package/dist/implementation/managers/FileUploadManager.d.ts +36 -0
- package/dist/implementation/managers/FileUploadManager.d.ts.map +1 -0
- package/dist/implementation/managers/FileUploadManager.js +178 -0
- package/dist/implementation/managers/FileUploadManager.js.map +1 -0
- package/dist/implementation/managers/ModelStateManager.d.ts +16 -0
- package/dist/implementation/managers/ModelStateManager.d.ts.map +1 -0
- package/dist/implementation/managers/ModelStateManager.js +130 -0
- package/dist/implementation/managers/ModelStateManager.js.map +1 -0
- package/dist/implementation/managers/OutputManager.d.ts +61 -0
- package/dist/implementation/managers/OutputManager.d.ts.map +1 -0
- package/dist/implementation/managers/OutputManager.js +358 -0
- package/dist/implementation/managers/OutputManager.js.map +1 -0
- package/dist/implementation/managers/ParameterManager.d.ts +28 -0
- package/dist/implementation/managers/ParameterManager.d.ts.map +1 -0
- package/dist/implementation/managers/ParameterManager.js +84 -0
- package/dist/implementation/managers/ParameterManager.js.map +1 -0
- package/dist/implementation/managers/SettingsManager.d.ts +55 -0
- package/dist/implementation/managers/SettingsManager.d.ts.map +1 -0
- package/dist/implementation/managers/SettingsManager.js +456 -0
- package/dist/implementation/managers/SettingsManager.js.map +1 -0
- package/dist/implementation/managers/UtilsManager.d.ts +65 -0
- package/dist/implementation/managers/UtilsManager.d.ts.map +1 -0
- package/dist/implementation/managers/UtilsManager.js +345 -0
- package/dist/implementation/managers/UtilsManager.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { QueryGltfConversion, ReqCustomization, ReqExport, ResAssetDefinition, ResBase, ResExport, ResFileInfo, ResGetModelState, ResModelState } from "@shapediver/sdk.geometry-api-sdk-v2";
|
|
2
|
+
import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
|
|
3
|
+
import { SettingsEngine } from "@shapediver/viewer.shared.services";
|
|
4
|
+
import { ISettingsSections, ITaskEventDescription } from "@shapediver/viewer.shared.types";
|
|
5
|
+
import { IExport } from "../interfaces/dto/IExport";
|
|
6
|
+
import { IOutput } from "../interfaces/dto/IOutput";
|
|
7
|
+
import { IParameter } from "../interfaces/dto/IParameter";
|
|
8
|
+
import { ISessionEngine, ISessionEngineCreationDefinition } from "../interfaces/ISessionEngine";
|
|
9
|
+
export declare class SessionEngineFacade implements ISessionEngine {
|
|
10
|
+
private readonly _sessionEngineCore;
|
|
11
|
+
private readonly _settingsManager;
|
|
12
|
+
private readonly _outputManager;
|
|
13
|
+
private readonly _exportManager;
|
|
14
|
+
private readonly _customizationManager;
|
|
15
|
+
private readonly _parameterManager;
|
|
16
|
+
private readonly _fileUploadManager;
|
|
17
|
+
private readonly _modelStateManager;
|
|
18
|
+
constructor(properties: ISessionEngineCreationDefinition);
|
|
19
|
+
get automaticSceneUpdate(): boolean;
|
|
20
|
+
set automaticSceneUpdate(value: boolean);
|
|
21
|
+
get canUploadGLTF(): boolean;
|
|
22
|
+
get customizeOnParameterChange(): boolean;
|
|
23
|
+
set customizeOnParameterChange(value: boolean);
|
|
24
|
+
get excludeViewports(): string[];
|
|
25
|
+
set excludeViewports(value: string[]);
|
|
26
|
+
get exports(): {
|
|
27
|
+
[key: string]: IExport;
|
|
28
|
+
};
|
|
29
|
+
get guid(): string | undefined;
|
|
30
|
+
get hasStoredSettings(): boolean;
|
|
31
|
+
get id(): string;
|
|
32
|
+
get initialized(): boolean;
|
|
33
|
+
get jwtToken(): string | undefined;
|
|
34
|
+
get loadSdtf(): boolean;
|
|
35
|
+
set loadSdtf(value: boolean);
|
|
36
|
+
get modelState(): ResModelState | undefined;
|
|
37
|
+
get modelViewUrl(): string;
|
|
38
|
+
get node(): ITreeNode;
|
|
39
|
+
get outputs(): {
|
|
40
|
+
[key: string]: IOutput;
|
|
41
|
+
};
|
|
42
|
+
get outputsFreeze(): {
|
|
43
|
+
[key: string]: boolean;
|
|
44
|
+
};
|
|
45
|
+
get parameterValues(): {
|
|
46
|
+
[key: string]: string;
|
|
47
|
+
};
|
|
48
|
+
get parameters(): {
|
|
49
|
+
[key: string]: IParameter<unknown>;
|
|
50
|
+
};
|
|
51
|
+
get refreshJwtToken(): (() => Promise<string>) | undefined;
|
|
52
|
+
set refreshJwtToken(value: (() => Promise<string>) | undefined);
|
|
53
|
+
get settingsEngine(): SettingsEngine;
|
|
54
|
+
get ticket(): string | undefined;
|
|
55
|
+
get updateCallback(): ((newNode?: ITreeNode, oldNode?: ITreeNode) => void) | null;
|
|
56
|
+
set updateCallback(value: ((newNode?: ITreeNode, oldNode?: ITreeNode) => void) | null);
|
|
57
|
+
get viewerSettings(): object | undefined;
|
|
58
|
+
applySettings(response: ResBase, sections?: ISettingsSections): void;
|
|
59
|
+
canGoBack(): boolean;
|
|
60
|
+
canGoForward(): boolean;
|
|
61
|
+
close(): Promise<void>;
|
|
62
|
+
createModelState(parameterValues?: {
|
|
63
|
+
[key: string]: unknown;
|
|
64
|
+
}, omitSessionParameterValues?: boolean, image?: (() => string) | (() => Promise<string>) | string | Promise<string> | Blob | File, data?: Record<string, any>, arScene?: (() => Promise<ArrayBuffer>) | ArrayBuffer | (() => Promise<Blob>) | Blob | File): Promise<string>;
|
|
65
|
+
customize(force?: boolean, waitForViewportUpdate?: boolean): Promise<ITreeNode | ResBase>;
|
|
66
|
+
customizeParallel(parameterValues: {
|
|
67
|
+
[key: string]: string;
|
|
68
|
+
}, loadOutputs: boolean): Promise<ITreeNode | ResBase>;
|
|
69
|
+
customizeWithModelState(modelState: string | ResBase): Promise<ITreeNode>;
|
|
70
|
+
getFileInfo(parameterId: string, fileId: string): Promise<ResFileInfo>;
|
|
71
|
+
getModelState(modelStateId?: string): Promise<ResGetModelState>;
|
|
72
|
+
goBack(): Promise<ITreeNode>;
|
|
73
|
+
goForward(): Promise<ITreeNode>;
|
|
74
|
+
init(parameterValues?: {
|
|
75
|
+
[key: string]: string;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
loadCachedOutputsParallel(outputMapping: {
|
|
78
|
+
[key: string]: string;
|
|
79
|
+
}, taskEventInfo?: ITaskEventDescription, retry?: boolean): Promise<{
|
|
80
|
+
[key: string]: ITreeNode | undefined;
|
|
81
|
+
}>;
|
|
82
|
+
loadOutputs(cancelRequest: () => boolean, taskEventInfo: ITaskEventDescription): Promise<ITreeNode>;
|
|
83
|
+
loadOutputsParallel(responseDto: ResBase, cancelRequest: () => boolean, taskEventInfo: ITaskEventDescription): Promise<ITreeNode>;
|
|
84
|
+
requestExport(exportId: string, parameters: ReqCustomization, maxWaitTime: number): Promise<ResExport>;
|
|
85
|
+
requestExports(body: ReqExport, loadOutputs?: boolean, maxWaitMsec?: number): Promise<ResBase>;
|
|
86
|
+
resetSettings(sections?: ISettingsSections): void;
|
|
87
|
+
saveDefaultParameterValues(): Promise<boolean>;
|
|
88
|
+
saveSettings(json: unknown): Promise<boolean>;
|
|
89
|
+
saveUiProperties(saveInSettings?: boolean): Promise<boolean>;
|
|
90
|
+
setJwtToken(token: string): Promise<void>;
|
|
91
|
+
updateOutputs(taskEventInfo?: ITaskEventDescription, waitForViewportUpdate?: boolean): Promise<ITreeNode>;
|
|
92
|
+
uploadFile(parameterId: string, data: File, type: string): Promise<string>;
|
|
93
|
+
uploadFileParameters(parameterValues?: {
|
|
94
|
+
[key: string]: string | File | Blob;
|
|
95
|
+
}): Promise<{
|
|
96
|
+
[key: string]: string;
|
|
97
|
+
}>;
|
|
98
|
+
uploadGLTF(blob: Blob, conversion?: QueryGltfConversion): Promise<ResBase>;
|
|
99
|
+
uploadSDTF(arrayBuffers: ArrayBuffer[]): Promise<ResAssetDefinition[]>;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=SessionEngineFacade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionEngineFacade.d.ts","sourceRoot":"","sources":["../../src/implementation/SessionEngineFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionEngineFacade = void 0;
|
|
4
|
+
const SessionEngineCore_1 = require("./SessionEngineCore");
|
|
5
|
+
class SessionEngineFacade {
|
|
6
|
+
constructor(properties) {
|
|
7
|
+
this._sessionEngineCore = new SessionEngineCore_1.SessionEngineCore(properties);
|
|
8
|
+
this._settingsManager = this._sessionEngineCore.settingsManager;
|
|
9
|
+
this._outputManager = this._sessionEngineCore.outputManager;
|
|
10
|
+
this._exportManager = this._sessionEngineCore.exportManager;
|
|
11
|
+
this._customizationManager =
|
|
12
|
+
this._sessionEngineCore.customizationManager;
|
|
13
|
+
this._parameterManager = this._sessionEngineCore.parameterManager;
|
|
14
|
+
this._fileUploadManager = this._sessionEngineCore.fileUploadManager;
|
|
15
|
+
this._modelStateManager = this._sessionEngineCore.modelStateManager;
|
|
16
|
+
}
|
|
17
|
+
get automaticSceneUpdate() {
|
|
18
|
+
return this._sessionEngineCore.automaticSceneUpdate;
|
|
19
|
+
}
|
|
20
|
+
set automaticSceneUpdate(value) {
|
|
21
|
+
this._sessionEngineCore.automaticSceneUpdate = value;
|
|
22
|
+
}
|
|
23
|
+
get canUploadGLTF() {
|
|
24
|
+
return this._sessionEngineCore.canUploadGLTF;
|
|
25
|
+
}
|
|
26
|
+
get customizeOnParameterChange() {
|
|
27
|
+
return this._sessionEngineCore.customizeOnParameterChange;
|
|
28
|
+
}
|
|
29
|
+
set customizeOnParameterChange(value) {
|
|
30
|
+
this._sessionEngineCore.customizeOnParameterChange = value;
|
|
31
|
+
}
|
|
32
|
+
get excludeViewports() {
|
|
33
|
+
return this._sessionEngineCore.excludeViewports;
|
|
34
|
+
}
|
|
35
|
+
set excludeViewports(value) {
|
|
36
|
+
this._sessionEngineCore.excludeViewports = value;
|
|
37
|
+
}
|
|
38
|
+
get exports() {
|
|
39
|
+
return this._sessionEngineCore.exports;
|
|
40
|
+
}
|
|
41
|
+
get guid() {
|
|
42
|
+
return this._sessionEngineCore.guid;
|
|
43
|
+
}
|
|
44
|
+
get hasStoredSettings() {
|
|
45
|
+
return this._settingsManager.hasStoredSettings;
|
|
46
|
+
}
|
|
47
|
+
get id() {
|
|
48
|
+
return this._sessionEngineCore.id;
|
|
49
|
+
}
|
|
50
|
+
get initialized() {
|
|
51
|
+
return this._sessionEngineCore.initialized;
|
|
52
|
+
}
|
|
53
|
+
get jwtToken() {
|
|
54
|
+
return this._sessionEngineCore.jwtToken;
|
|
55
|
+
}
|
|
56
|
+
get loadSdtf() {
|
|
57
|
+
return this._sessionEngineCore.loadSdtf;
|
|
58
|
+
}
|
|
59
|
+
set loadSdtf(value) {
|
|
60
|
+
this._sessionEngineCore.loadSdtf = value;
|
|
61
|
+
}
|
|
62
|
+
get modelState() {
|
|
63
|
+
return this._sessionEngineCore.modelState;
|
|
64
|
+
}
|
|
65
|
+
get modelViewUrl() {
|
|
66
|
+
return this._sessionEngineCore.modelViewUrl;
|
|
67
|
+
}
|
|
68
|
+
get node() {
|
|
69
|
+
return this._sessionEngineCore.node;
|
|
70
|
+
}
|
|
71
|
+
get outputs() {
|
|
72
|
+
return this._sessionEngineCore.outputs;
|
|
73
|
+
}
|
|
74
|
+
get outputsFreeze() {
|
|
75
|
+
return this._sessionEngineCore.outputsFreeze;
|
|
76
|
+
}
|
|
77
|
+
get parameterValues() {
|
|
78
|
+
return this._sessionEngineCore.parameterValues;
|
|
79
|
+
}
|
|
80
|
+
get parameters() {
|
|
81
|
+
return this._sessionEngineCore.parameters;
|
|
82
|
+
}
|
|
83
|
+
get refreshJwtToken() {
|
|
84
|
+
return this._sessionEngineCore.refreshJwtToken;
|
|
85
|
+
}
|
|
86
|
+
set refreshJwtToken(value) {
|
|
87
|
+
this._sessionEngineCore.refreshJwtToken = value;
|
|
88
|
+
}
|
|
89
|
+
get settingsEngine() {
|
|
90
|
+
return this._settingsManager.settingsEngine;
|
|
91
|
+
}
|
|
92
|
+
get ticket() {
|
|
93
|
+
return this._sessionEngineCore.ticket;
|
|
94
|
+
}
|
|
95
|
+
get updateCallback() {
|
|
96
|
+
return this._sessionEngineCore.updateCallback;
|
|
97
|
+
}
|
|
98
|
+
set updateCallback(value) {
|
|
99
|
+
this._sessionEngineCore.updateCallback = value;
|
|
100
|
+
}
|
|
101
|
+
get viewerSettings() {
|
|
102
|
+
return this._settingsManager.viewerSettings;
|
|
103
|
+
}
|
|
104
|
+
applySettings(response, sections) {
|
|
105
|
+
return this._settingsManager.applySettings(response, sections);
|
|
106
|
+
}
|
|
107
|
+
canGoBack() {
|
|
108
|
+
return this._parameterManager.canGoBack();
|
|
109
|
+
}
|
|
110
|
+
canGoForward() {
|
|
111
|
+
return this._parameterManager.canGoForward();
|
|
112
|
+
}
|
|
113
|
+
close() {
|
|
114
|
+
return this._sessionEngineCore.close();
|
|
115
|
+
}
|
|
116
|
+
createModelState(parameterValues, omitSessionParameterValues, image, data, arScene) {
|
|
117
|
+
return this._modelStateManager.createModelState(parameterValues, omitSessionParameterValues, image, data, arScene);
|
|
118
|
+
}
|
|
119
|
+
customize(force, waitForViewportUpdate) {
|
|
120
|
+
return this._customizationManager.customize(force, waitForViewportUpdate);
|
|
121
|
+
}
|
|
122
|
+
customizeParallel(parameterValues, loadOutputs) {
|
|
123
|
+
return this._customizationManager.customizeParallel(parameterValues, loadOutputs);
|
|
124
|
+
}
|
|
125
|
+
customizeWithModelState(modelState) {
|
|
126
|
+
return this._modelStateManager.customizeWithModelState(modelState);
|
|
127
|
+
}
|
|
128
|
+
getFileInfo(parameterId, fileId) {
|
|
129
|
+
return this._fileUploadManager.getFileInfo(parameterId, fileId);
|
|
130
|
+
}
|
|
131
|
+
getModelState(modelStateId) {
|
|
132
|
+
return this._modelStateManager.getModelState(modelStateId);
|
|
133
|
+
}
|
|
134
|
+
goBack() {
|
|
135
|
+
return this._parameterManager.goBack();
|
|
136
|
+
}
|
|
137
|
+
goForward() {
|
|
138
|
+
return this._parameterManager.goForward();
|
|
139
|
+
}
|
|
140
|
+
init(parameterValues) {
|
|
141
|
+
return this._sessionEngineCore.init(parameterValues);
|
|
142
|
+
}
|
|
143
|
+
loadCachedOutputsParallel(outputMapping, taskEventInfo, retry) {
|
|
144
|
+
return this._outputManager.loadCachedOutputsParallel(outputMapping, taskEventInfo, retry);
|
|
145
|
+
}
|
|
146
|
+
loadOutputs(cancelRequest, taskEventInfo) {
|
|
147
|
+
return this._outputManager.loadOutputs(cancelRequest, taskEventInfo);
|
|
148
|
+
}
|
|
149
|
+
loadOutputsParallel(responseDto, cancelRequest, taskEventInfo) {
|
|
150
|
+
return this._outputManager.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo);
|
|
151
|
+
}
|
|
152
|
+
requestExport(exportId, parameters, maxWaitTime) {
|
|
153
|
+
return this._exportManager.requestExport(exportId, parameters, maxWaitTime);
|
|
154
|
+
}
|
|
155
|
+
requestExports(body, loadOutputs, maxWaitMsec) {
|
|
156
|
+
return this._exportManager.requestExports(body, loadOutputs, maxWaitMsec);
|
|
157
|
+
}
|
|
158
|
+
resetSettings(sections) {
|
|
159
|
+
return this._settingsManager.resetSettings(sections);
|
|
160
|
+
}
|
|
161
|
+
saveDefaultParameterValues() {
|
|
162
|
+
return this._settingsManager.saveDefaultParameterValues();
|
|
163
|
+
}
|
|
164
|
+
saveSettings(json) {
|
|
165
|
+
return this._settingsManager.saveSettings(json);
|
|
166
|
+
}
|
|
167
|
+
saveUiProperties(saveInSettings) {
|
|
168
|
+
return this._settingsManager.saveUiProperties(saveInSettings);
|
|
169
|
+
}
|
|
170
|
+
setJwtToken(token) {
|
|
171
|
+
return this._sessionEngineCore.setJwtToken(token);
|
|
172
|
+
}
|
|
173
|
+
updateOutputs(taskEventInfo, waitForViewportUpdate) {
|
|
174
|
+
return this._outputManager.updateOutputs(taskEventInfo, waitForViewportUpdate);
|
|
175
|
+
}
|
|
176
|
+
uploadFile(parameterId, data, type) {
|
|
177
|
+
return this._fileUploadManager.uploadFile(parameterId, data, type);
|
|
178
|
+
}
|
|
179
|
+
uploadFileParameters(parameterValues) {
|
|
180
|
+
return this._fileUploadManager.uploadFileParameters(parameterValues);
|
|
181
|
+
}
|
|
182
|
+
uploadGLTF(blob, conversion) {
|
|
183
|
+
return this._fileUploadManager.uploadGLTF(blob, conversion);
|
|
184
|
+
}
|
|
185
|
+
uploadSDTF(arrayBuffers) {
|
|
186
|
+
return this._fileUploadManager.uploadSDTF(arrayBuffers);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.SessionEngineFacade = SessionEngineFacade;
|
|
190
|
+
//# sourceMappingURL=SessionEngineFacade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionEngineFacade.js","sourceRoot":"","sources":["../../src/implementation/SessionEngineFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ResBase } from "@shapediver/sdk.geometry-api-sdk-v2";
|
|
2
|
+
import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
|
|
3
|
+
import { ITaskEventDescription } from "@shapediver/viewer.shared.types";
|
|
4
|
+
import { ISessionTreeNode } from "../../interfaces/ISessionTreeNode";
|
|
5
|
+
import { SessionEngineCore } from "../SessionEngineCore";
|
|
6
|
+
export declare class CustomizationManager {
|
|
7
|
+
private readonly _sessionEngineCore;
|
|
8
|
+
private readonly _utilsManager;
|
|
9
|
+
private readonly _stateEngine;
|
|
10
|
+
private readonly _uuidGenerator;
|
|
11
|
+
private readonly _eventEngine;
|
|
12
|
+
private readonly _logger;
|
|
13
|
+
private readonly _httpClient;
|
|
14
|
+
private readonly _performanceEvaluator;
|
|
15
|
+
constructor(sessionEngineCore: SessionEngineCore);
|
|
16
|
+
cancelCustomization(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Customizes the session with updated parameters to get the updated scene graph node.
|
|
19
|
+
*
|
|
20
|
+
* @param parameters the parameter set to update the session
|
|
21
|
+
* @returns promise with a scene graph node
|
|
22
|
+
*/
|
|
23
|
+
customize(force?: boolean, waitForViewportUpdate?: boolean): Promise<ITreeNode>;
|
|
24
|
+
customizeParallel(parameterValues: {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}, loadOutputs?: boolean): Promise<ISessionTreeNode | ResBase>;
|
|
27
|
+
customizeInternal(cancelRequest: () => boolean, taskEventInfo: ITaskEventDescription): Promise<ISessionTreeNode>;
|
|
28
|
+
customizeSession(parameters: {
|
|
29
|
+
[key: string]: string;
|
|
30
|
+
}, cancelRequest: () => boolean, taskEventInfo: ITaskEventDescription, parallel?: boolean, loadOutputs?: boolean, retry?: boolean): Promise<ISessionTreeNode>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=CustomizationManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomizationManager.d.ts","sourceRoot":"","sources":["../../../src/implementation/managers/CustomizationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EAIP,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAU9D,OAAO,EAGN,qBAAqB,EAGrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiC;gBAE3D,iBAAiB,EAAE,iBAAiB;IAKzC,mBAAmB;IAyB1B;;;;;OAKG;IACU,SAAS,CACrB,KAAK,GAAE,OAAe,EACtB,qBAAqB,GAAE,OAAe,GACpC,OAAO,CAAC,SAAS,CAAC;IAqTR,iBAAiB,CAC7B,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,EACzC,WAAW,UAAO,GAChB,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC;IA2DzB,iBAAiB,CAC7B,aAAa,EAAE,MAAM,OAAO,EAC5B,aAAa,EAAE,qBAAqB,GAClC,OAAO,CAAC,gBAAgB,CAAC;IAQf,gBAAgB,CAC5B,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,EACnC,aAAa,EAAE,MAAM,OAAO,EAC5B,aAAa,EAAE,qBAAqB,EACpC,QAAQ,UAAQ,EAChB,WAAW,UAAO,EAClB,KAAK,UAAQ,GACX,OAAO,CAAC,gBAAgB,CAAC;CAoD5B"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CustomizationManager = void 0;
|
|
13
|
+
const sdk_geometry_api_sdk_v2_1 = require("@shapediver/sdk.geometry-api-sdk-v2");
|
|
14
|
+
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
15
|
+
const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
|
|
16
|
+
const SessionData_1 = require("../SessionData");
|
|
17
|
+
const SessionTreeNode_1 = require("../SessionTreeNode");
|
|
18
|
+
class CustomizationManager {
|
|
19
|
+
constructor(sessionEngineCore) {
|
|
20
|
+
this._stateEngine = viewer_shared_services_1.StateEngine.instance;
|
|
21
|
+
this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
|
|
22
|
+
this._eventEngine = viewer_shared_services_1.EventEngine.instance;
|
|
23
|
+
this._logger = viewer_shared_services_1.Logger.instance;
|
|
24
|
+
this._httpClient = viewer_shared_services_1.HttpClient.instance;
|
|
25
|
+
this._performanceEvaluator = viewer_shared_services_1.PerformanceEvaluator.instance;
|
|
26
|
+
this._sessionEngineCore = sessionEngineCore;
|
|
27
|
+
this._utilsManager = this._sessionEngineCore.utilsManager;
|
|
28
|
+
}
|
|
29
|
+
cancelCustomization() {
|
|
30
|
+
if (this._sessionEngineCore.customizationProcess)
|
|
31
|
+
this._utilsManager.removeBusyMode(this._sessionEngineCore.customizationProcess);
|
|
32
|
+
for (const busyId of this._sessionEngineCore.customizationBusyModes) {
|
|
33
|
+
for (const r in this._stateEngine.viewportEngines) {
|
|
34
|
+
if (this._stateEngine.viewportEngines[r] &&
|
|
35
|
+
this._stateEngine.viewportEngines[r].busy.includes(busyId))
|
|
36
|
+
this._stateEngine.viewportEngines[r].busy.splice(this._stateEngine.viewportEngines[r].busy.indexOf(busyId), 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
this._sessionEngineCore.customizationBusyModes = [];
|
|
40
|
+
this._sessionEngineCore.customizationProcess = undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Customizes the session with updated parameters to get the updated scene graph node.
|
|
44
|
+
*
|
|
45
|
+
* @param parameters the parameter set to update the session
|
|
46
|
+
* @returns promise with a scene graph node
|
|
47
|
+
*/
|
|
48
|
+
customize(force = false, waitForViewportUpdate = false) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const eventInfo = {
|
|
51
|
+
type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION,
|
|
52
|
+
category: viewer_shared_types_1.TASK_CATEGORY.SESSION_CUSTOMIZATION.CUSTOMIZE,
|
|
53
|
+
id: this._uuidGenerator.create(),
|
|
54
|
+
data: { sessionId: this._sessionEngineCore.id },
|
|
55
|
+
progress: 0,
|
|
56
|
+
};
|
|
57
|
+
const customizationId = this._uuidGenerator.create();
|
|
58
|
+
try {
|
|
59
|
+
// we check if something changed
|
|
60
|
+
if (force === false) {
|
|
61
|
+
let changes = false;
|
|
62
|
+
for (const parameterId in this._sessionEngineCore.parameters)
|
|
63
|
+
if (this._sessionEngineCore.parameters[parameterId]
|
|
64
|
+
.sessionValue !==
|
|
65
|
+
this._sessionEngineCore.parameters[parameterId].value)
|
|
66
|
+
changes = true;
|
|
67
|
+
if (changes === false)
|
|
68
|
+
return this._sessionEngineCore.node;
|
|
69
|
+
}
|
|
70
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Customizing session" }));
|
|
71
|
+
const oldNode = this._sessionEngineCore.node;
|
|
72
|
+
this._sessionEngineCore.customizationProcess = customizationId;
|
|
73
|
+
this._logger.debugLow(`Session(${this._sessionEngineCore.id}).customize: Customizing session.`);
|
|
74
|
+
this._utilsManager.addBusyMode(customizationId);
|
|
75
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: 0.1, status: "Uploading file parameters" }));
|
|
76
|
+
// upload file parameters
|
|
77
|
+
yield this._sessionEngineCore.fileUploadManager.uploadFileParameters();
|
|
78
|
+
// OPTION TO SKIP - PART 1b
|
|
79
|
+
const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: 1 }), customizationId);
|
|
80
|
+
if (cancelResult)
|
|
81
|
+
return cancelResult;
|
|
82
|
+
const parameterSet = {};
|
|
83
|
+
// create a set of the current validated parameter values
|
|
84
|
+
for (const parameterId in this._sessionEngineCore.parameters) {
|
|
85
|
+
parameterSet[parameterId] = {
|
|
86
|
+
value: this._sessionEngineCore.parameters[parameterId]
|
|
87
|
+
.value,
|
|
88
|
+
valueString: this._sessionEngineCore.parameters[parameterId].stringify(),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// update the session engine parameter values if everything succeeded
|
|
92
|
+
for (const parameterId in this._sessionEngineCore.parameters)
|
|
93
|
+
this._sessionEngineCore.parameterValues[parameterId] =
|
|
94
|
+
parameterSet[parameterId].valueString;
|
|
95
|
+
this._logger.info(`Session(${this._sessionEngineCore.id}).customize: Customizing session with parameters ${JSON.stringify(this._sessionEngineCore.parameterValues)}.`);
|
|
96
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: 0.1, status: "Sending customization request" }));
|
|
97
|
+
const oldOutputVersions = this._sessionEngineCore.outputManager.getCurrentOutputVersions();
|
|
98
|
+
const newNode = yield this.customizeInternal(() => this._sessionEngineCore.customizationProcess !==
|
|
99
|
+
customizationId, Object.assign(Object.assign({}, eventInfo), { progressRange: {
|
|
100
|
+
min: 0.1,
|
|
101
|
+
max: 0.9,
|
|
102
|
+
} }));
|
|
103
|
+
// OPTION TO SKIP - PART 2
|
|
104
|
+
const cancelResult2 = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: 1 }), customizationId);
|
|
105
|
+
if (cancelResult2)
|
|
106
|
+
return cancelResult2;
|
|
107
|
+
this._utilsManager.warningCreator(this._sessionEngineCore.responseDto.outputs, this._sessionEngineCore.responseDto.exports, this._sessionEngineCore.throwOnCustomizationError);
|
|
108
|
+
const newOutputVersions = this._sessionEngineCore.outputManager.getCurrentOutputVersions();
|
|
109
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: 0.9, status: "Updating scene" }));
|
|
110
|
+
// call the update callbacks
|
|
111
|
+
if (waitForViewportUpdate === false) {
|
|
112
|
+
for (const outputId in this._sessionEngineCore.outputs) {
|
|
113
|
+
if (oldOutputVersions[outputId] !==
|
|
114
|
+
newOutputVersions[outputId]) {
|
|
115
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
|
|
116
|
+
outputId: outputId,
|
|
117
|
+
outputVersion: newOutputVersions[outputId],
|
|
118
|
+
newNode: newNode.children.find((c) => c.name === outputId),
|
|
119
|
+
oldNode: oldNode.children.find((c) => c.name === outputId),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
yield this._utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
|
|
124
|
+
const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: 1 }), customizationId);
|
|
125
|
+
if (cancelResult)
|
|
126
|
+
return cancelResult;
|
|
127
|
+
}
|
|
128
|
+
// if this is not a call by the goBack or goForward functions, add the parameter values to the history and delete the forward history
|
|
129
|
+
if (!this._sessionEngineCore.parameterManager.parameterHistoryCall) {
|
|
130
|
+
this._sessionEngineCore.parameterManager.parameterHistory.push(parameterSet);
|
|
131
|
+
this._sessionEngineCore.parameterManager.parameterHistoryForward =
|
|
132
|
+
[];
|
|
133
|
+
}
|
|
134
|
+
if (this._sessionEngineCore.automaticSceneUpdate)
|
|
135
|
+
this._utilsManager.removeFromSceneTree(this._sessionEngineCore.node);
|
|
136
|
+
this._sessionEngineCore.node = newNode;
|
|
137
|
+
if (this._sessionEngineCore.automaticSceneUpdate &&
|
|
138
|
+
this._sessionEngineCore.closed === false)
|
|
139
|
+
this._utilsManager.addToSceneTree(this._sessionEngineCore.node);
|
|
140
|
+
this._logger.debug(`Session(${this._sessionEngineCore.id}).customize: Customization request finished, updating geometry.`);
|
|
141
|
+
// set the session values to the current ones in all parameters
|
|
142
|
+
for (const parameterId in this._sessionEngineCore.parameters)
|
|
143
|
+
(this._sessionEngineCore.parameters[parameterId].sessionValue) = parameterSet[parameterId].value;
|
|
144
|
+
// set the output content to what has been updated
|
|
145
|
+
for (const outputId in this._sessionEngineCore.outputs)
|
|
146
|
+
this._sessionEngineCore.outputs[outputId].updateOutput(newNode.children.find((c) => c.name === outputId), oldNode.children.find((c) => c.name === outputId));
|
|
147
|
+
// set the export definitions
|
|
148
|
+
for (const exportId in this._sessionEngineCore.exports)
|
|
149
|
+
this._sessionEngineCore.exports[exportId].updateExport();
|
|
150
|
+
this._sessionEngineCore.node.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
|
|
151
|
+
this._utilsManager.removeBusyMode(customizationId);
|
|
152
|
+
this._logger.debug(`Session(${this._sessionEngineCore.id}).customize: Session customized.`);
|
|
153
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CUSTOMIZED, {
|
|
154
|
+
sessionId: this._sessionEngineCore.id,
|
|
155
|
+
});
|
|
156
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Session customized" }));
|
|
157
|
+
// update the viewports
|
|
158
|
+
if (waitForViewportUpdate) {
|
|
159
|
+
for (const r in this._stateEngine.viewportEngines)
|
|
160
|
+
if (this._stateEngine.viewportEngines[r] &&
|
|
161
|
+
!this._sessionEngineCore.excludeViewports.includes(this._stateEngine.viewportEngines[r].id))
|
|
162
|
+
this._stateEngine.viewportEngines[r].update(`SessionEngine(${this._sessionEngineCore.id}).customize`);
|
|
163
|
+
for (const outputId in this._sessionEngineCore.outputs) {
|
|
164
|
+
if (oldOutputVersions[outputId] !==
|
|
165
|
+
newOutputVersions[outputId]) {
|
|
166
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
|
|
167
|
+
outputId: outputId,
|
|
168
|
+
outputVersion: newOutputVersions[outputId],
|
|
169
|
+
newNode: newNode.children.find((c) => c.name === outputId),
|
|
170
|
+
oldNode: oldNode.children.find((c) => c.name === outputId),
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// call the update callbacks
|
|
175
|
+
yield this._utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
|
|
176
|
+
const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: 1 }), customizationId);
|
|
177
|
+
if (cancelResult)
|
|
178
|
+
return cancelResult;
|
|
179
|
+
}
|
|
180
|
+
if (!waitForViewportUpdate) {
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
for (const r in this._stateEngine.viewportEngines)
|
|
183
|
+
if (this._stateEngine.viewportEngines[r] &&
|
|
184
|
+
!this._sessionEngineCore.excludeViewports.includes(this._stateEngine.viewportEngines[r].id))
|
|
185
|
+
this._stateEngine.viewportEngines[r].update(`SessionEngine(${this._sessionEngineCore.id}).customize`);
|
|
186
|
+
}, 0);
|
|
187
|
+
}
|
|
188
|
+
return this._sessionEngineCore.node;
|
|
189
|
+
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Session customization failed" }));
|
|
192
|
+
this._utilsManager.removeBusyMode(customizationId);
|
|
193
|
+
throw this._httpClient.convertError(e);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
customizeParallel(parameterValues, loadOutputs = true) {
|
|
198
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
199
|
+
const eventInfo = {
|
|
200
|
+
type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION,
|
|
201
|
+
category: viewer_shared_types_1.TASK_CATEGORY.SESSION_CUSTOMIZATION.CUSTOMIZE_PARALLEL,
|
|
202
|
+
id: this._uuidGenerator.create(),
|
|
203
|
+
data: { sessionId: this._sessionEngineCore.id },
|
|
204
|
+
};
|
|
205
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Customizing session" }));
|
|
206
|
+
// upload file parameters
|
|
207
|
+
yield this._sessionEngineCore.fileUploadManager.uploadFileParameters(parameterValues);
|
|
208
|
+
const parameterSet = {};
|
|
209
|
+
// create a set of the current validated parameter values
|
|
210
|
+
for (const parameterId in this._sessionEngineCore.parameters)
|
|
211
|
+
parameterSet[parameterId] = (" " +
|
|
212
|
+
this._sessionEngineCore.parameters[parameterId].stringify(parameterValues[parameterId])).slice(1);
|
|
213
|
+
const result = yield this.customizeSession(parameterSet, () => false, Object.assign(Object.assign({}, eventInfo), { progressRange: {
|
|
214
|
+
min: 0.0,
|
|
215
|
+
max: 1,
|
|
216
|
+
} }), true, loadOutputs);
|
|
217
|
+
if (result instanceof SessionTreeNode_1.SessionTreeNode)
|
|
218
|
+
result.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
|
|
219
|
+
this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Session customized" }));
|
|
220
|
+
return result;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
customizeInternal(cancelRequest, taskEventInfo) {
|
|
224
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
225
|
+
return this.customizeSession(this._sessionEngineCore.parameterValues, cancelRequest, taskEventInfo);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
customizeSession(parameters, cancelRequest, taskEventInfo, parallel = false, loadOutputs = true, retry = false) {
|
|
229
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
230
|
+
this._utilsManager.checkAvailability("customize");
|
|
231
|
+
try {
|
|
232
|
+
this._performanceEvaluator.startSection("sessionResponse");
|
|
233
|
+
const responseDto = yield new sdk_geometry_api_sdk_v2_1.UtilsApi(this._sessionEngineCore.sdkConfig).submitAndWaitForOutput(this._sessionEngineCore.sessionId, parameters, undefined, this._sessionEngineCore.ignoreUnknownParams);
|
|
234
|
+
this._performanceEvaluator.endSection("sessionResponse");
|
|
235
|
+
if (loadOutputs === true &&
|
|
236
|
+
this._sessionEngineCore.allowOutputLoading === true) {
|
|
237
|
+
if (cancelRequest())
|
|
238
|
+
return new SessionTreeNode_1.SessionTreeNode();
|
|
239
|
+
if (parallel === true) {
|
|
240
|
+
// special case, we load the outputs put don't add them to the scene
|
|
241
|
+
return this._sessionEngineCore.outputManager.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
// default case, we load the outputs and return the nodes
|
|
245
|
+
this._sessionEngineCore.updateResponseDto(responseDto);
|
|
246
|
+
return this._sessionEngineCore.outputManager.loadOutputs(cancelRequest, taskEventInfo);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
// special case, we don't load the outputs and only return the responseDto
|
|
251
|
+
const node = new SessionTreeNode_1.SessionTreeNode();
|
|
252
|
+
node.data.push(new SessionData_1.SessionData(responseDto));
|
|
253
|
+
return node;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (e) {
|
|
257
|
+
yield this._utilsManager.handleError(e, retry);
|
|
258
|
+
if (cancelRequest())
|
|
259
|
+
return new SessionTreeNode_1.SessionTreeNode();
|
|
260
|
+
return yield this.customizeSession(parameters, cancelRequest, taskEventInfo, parallel, loadOutputs, true);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
exports.CustomizationManager = CustomizationManager;
|
|
266
|
+
//# sourceMappingURL=CustomizationManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomizationManager.js","sourceRoot":"","sources":["../../../src/implementation/managers/CustomizationManager.ts"],"names":[],"mappings":"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"}
|