@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.
Files changed (44) hide show
  1. package/dist/implementation/SessionEngine.d.ts.map +1 -1
  2. package/dist/implementation/SessionEngine.js +5 -4
  3. package/dist/implementation/SessionEngine.js.map +1 -1
  4. package/dist/implementation/SessionEngineCore.d.ts +145 -0
  5. package/dist/implementation/SessionEngineCore.d.ts.map +1 -0
  6. package/dist/implementation/SessionEngineCore.js +544 -0
  7. package/dist/implementation/SessionEngineCore.js.map +1 -0
  8. package/dist/implementation/SessionEngineFacade.d.ts +101 -0
  9. package/dist/implementation/SessionEngineFacade.d.ts.map +1 -0
  10. package/dist/implementation/SessionEngineFacade.js +190 -0
  11. package/dist/implementation/SessionEngineFacade.js.map +1 -0
  12. package/dist/implementation/managers/CustomizationManager.d.ts +32 -0
  13. package/dist/implementation/managers/CustomizationManager.d.ts.map +1 -0
  14. package/dist/implementation/managers/CustomizationManager.js +266 -0
  15. package/dist/implementation/managers/CustomizationManager.js.map +1 -0
  16. package/dist/implementation/managers/ExportManager.d.ts +31 -0
  17. package/dist/implementation/managers/ExportManager.d.ts.map +1 -0
  18. package/dist/implementation/managers/ExportManager.js +150 -0
  19. package/dist/implementation/managers/ExportManager.js.map +1 -0
  20. package/dist/implementation/managers/FileUploadManager.d.ts +36 -0
  21. package/dist/implementation/managers/FileUploadManager.d.ts.map +1 -0
  22. package/dist/implementation/managers/FileUploadManager.js +178 -0
  23. package/dist/implementation/managers/FileUploadManager.js.map +1 -0
  24. package/dist/implementation/managers/ModelStateManager.d.ts +16 -0
  25. package/dist/implementation/managers/ModelStateManager.d.ts.map +1 -0
  26. package/dist/implementation/managers/ModelStateManager.js +130 -0
  27. package/dist/implementation/managers/ModelStateManager.js.map +1 -0
  28. package/dist/implementation/managers/OutputManager.d.ts +61 -0
  29. package/dist/implementation/managers/OutputManager.d.ts.map +1 -0
  30. package/dist/implementation/managers/OutputManager.js +358 -0
  31. package/dist/implementation/managers/OutputManager.js.map +1 -0
  32. package/dist/implementation/managers/ParameterManager.d.ts +28 -0
  33. package/dist/implementation/managers/ParameterManager.d.ts.map +1 -0
  34. package/dist/implementation/managers/ParameterManager.js +84 -0
  35. package/dist/implementation/managers/ParameterManager.js.map +1 -0
  36. package/dist/implementation/managers/SettingsManager.d.ts +55 -0
  37. package/dist/implementation/managers/SettingsManager.d.ts.map +1 -0
  38. package/dist/implementation/managers/SettingsManager.js +456 -0
  39. package/dist/implementation/managers/SettingsManager.js.map +1 -0
  40. package/dist/implementation/managers/UtilsManager.d.ts +65 -0
  41. package/dist/implementation/managers/UtilsManager.d.ts.map +1 -0
  42. package/dist/implementation/managers/UtilsManager.js +345 -0
  43. package/dist/implementation/managers/UtilsManager.js.map +1 -0
  44. package/package.json +8 -8
@@ -0,0 +1,61 @@
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 OutputManager {
7
+ private readonly _outputLoader;
8
+ private readonly _sessionEngineCore;
9
+ private readonly _eventEngine;
10
+ private readonly _logger;
11
+ private readonly _uuidGenerator;
12
+ private readonly _stateEngine;
13
+ private readonly _utilsManager;
14
+ constructor(sessionEngineCore: SessionEngineCore);
15
+ get loadSdtf(): boolean;
16
+ get jwtToken(): string | undefined;
17
+ get reloadSdtf(): boolean;
18
+ set reloadSdtf(value: boolean);
19
+ getCurrentOutputVersions(): {
20
+ [key: string]: string;
21
+ };
22
+ /**
23
+ * Load the outputs and return the scene graph node of the result.
24
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
25
+ *
26
+ * @param parameters the parameter set to update the session
27
+ * @param outputs the outputs to load
28
+ * @returns promise with a scene graph node
29
+ */
30
+ loadOutputs(cancelRequest: (() => boolean) | undefined, taskEventInfo: ITaskEventDescription, retry?: boolean): Promise<ISessionTreeNode>;
31
+ loadCachedOutputsParallel(outputMapping: {
32
+ [key: string]: string;
33
+ }, taskEventInfo?: ITaskEventDescription, retry?: boolean): Promise<{
34
+ [key: string]: ITreeNode | undefined;
35
+ }>;
36
+ /**
37
+ * Load the outputs and return the scene graph node of the result.
38
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
39
+ *
40
+ * @param parameters the parameter set to update the session
41
+ * @param outputs the outputs to load
42
+ * @returns promise with a scene graph node
43
+ */
44
+ loadOutputsParallel(responseDto: ResBase, cancelRequest: (() => boolean) | undefined, taskEventInfo: ITaskEventDescription, retry?: boolean): Promise<ISessionTreeNode>;
45
+ /**
46
+ * Save the output properties for displayname, order, tooltip and hidden
47
+ *
48
+ * @param outputs
49
+ * @returns
50
+ */
51
+ saveOutputProperties(outputs: {
52
+ [key: string]: {
53
+ displayname: string;
54
+ hidden: boolean;
55
+ order: number;
56
+ tooltip: string;
57
+ };
58
+ }, retry?: boolean): Promise<boolean>;
59
+ updateOutputs(taskEventInfo?: ITaskEventDescription, waitForViewportUpdate?: boolean): Promise<ITreeNode>;
60
+ }
61
+ //# sourceMappingURL=OutputManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputManager.d.ts","sourceRoot":"","sources":["../../../src/implementation/managers/OutputManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,OAAO,EAIP,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAQ9D,OAAO,EAEN,qBAAqB,EAErB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAKnE,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAIvD,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAEzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,iBAAiB,EAAE,iBAAiB;IAMhD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAEnC;IAEM,wBAAwB,IAAI;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC;IAI1D;;;;;;;OAOG;IACU,WAAW,CACvB,aAAa,SAAQ,OAAO,aAAc,EAC1C,aAAa,EAAE,qBAAqB,EACpC,KAAK,UAAQ,GACX,OAAO,CAAC,gBAAgB,CAAC;IA6Df,yBAAyB,CACrC,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,EACtC,aAAa,CAAC,EAAE,qBAAqB,EACrC,KAAK,UAAQ,GACX,OAAO,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;KAAC,CAAC;IAuFlD;;;;;;;OAOG;IACU,mBAAmB,CAC/B,WAAW,EAAE,OAAO,EACpB,aAAa,SAAQ,OAAO,aAAc,EAC1C,aAAa,EAAE,qBAAqB,EACpC,KAAK,UAAQ,GACX,OAAO,CAAC,gBAAgB,CAAC;IA+E5B;;;;;OAKG;IACU,oBAAoB,CAChC,OAAO,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC;KACF,EACD,KAAK,UAAQ,GACX,OAAO,CAAC,OAAO,CAAC;IAgBN,aAAa,CACzB,aAAa,CAAC,EAAE,qBAAqB,EACrC,qBAAqB,GAAE,OAAe,GACpC,OAAO,CAAC,SAAS,CAAC;CAgQrB"}
@@ -0,0 +1,358 @@
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.OutputManager = 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 Output_1 = require("../dto/Output");
17
+ const OutputDelayException_1 = require("../OutputDelayException");
18
+ const OutputLoader_1 = require("../OutputLoader");
19
+ const SessionData_1 = require("../SessionData");
20
+ const SessionTreeNode_1 = require("../SessionTreeNode");
21
+ class OutputManager {
22
+ constructor(sessionEngineCore) {
23
+ this._eventEngine = viewer_shared_services_1.EventEngine.instance;
24
+ this._logger = viewer_shared_services_1.Logger.instance;
25
+ this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
26
+ this._stateEngine = viewer_shared_services_1.StateEngine.instance;
27
+ this._outputLoader = new OutputLoader_1.OutputLoader(this);
28
+ this._sessionEngineCore = sessionEngineCore;
29
+ this._utilsManager = this._sessionEngineCore.utilsManager;
30
+ }
31
+ get loadSdtf() {
32
+ return this._sessionEngineCore.loadSdtf;
33
+ }
34
+ get jwtToken() {
35
+ return this._sessionEngineCore.jwtToken;
36
+ }
37
+ get reloadSdtf() {
38
+ return this._outputLoader.reloadSdtf;
39
+ }
40
+ set reloadSdtf(value) {
41
+ this._outputLoader.reloadSdtf = value;
42
+ }
43
+ getCurrentOutputVersions() {
44
+ return this._outputLoader.getCurrentOutputVersions();
45
+ }
46
+ /**
47
+ * Load the outputs and return the scene graph node of the result.
48
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
49
+ *
50
+ * @param parameters the parameter set to update the session
51
+ * @param outputs the outputs to load
52
+ * @returns promise with a scene graph node
53
+ */
54
+ loadOutputs(cancelRequest = () => false, taskEventInfo, retry = false) {
55
+ var _a;
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ this._utilsManager.checkAvailability();
58
+ const o = Object.assign({}, this._sessionEngineCore.outputs);
59
+ const of = Object.assign({}, this._sessionEngineCore.outputsFreeze);
60
+ try {
61
+ const node = yield this._outputLoader.loadOutputs(((_a = this._sessionEngineCore.responseDto.model) === null || _a === void 0 ? void 0 : _a.name) || "model", o, of, taskEventInfo);
62
+ node.data.push(new SessionData_1.SessionData(this._sessionEngineCore.responseDto));
63
+ if (cancelRequest())
64
+ return node;
65
+ node.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
66
+ return node;
67
+ }
68
+ catch (e) {
69
+ if (e instanceof OutputDelayException_1.OutputDelayException) {
70
+ yield this._utilsManager.timeout(e.delay);
71
+ }
72
+ else {
73
+ yield this._utilsManager.handleError(e, retry);
74
+ if (cancelRequest())
75
+ return new SessionTreeNode_1.SessionTreeNode();
76
+ return yield this.loadOutputs(cancelRequest, taskEventInfo, true);
77
+ }
78
+ if (cancelRequest())
79
+ return new SessionTreeNode_1.SessionTreeNode();
80
+ const outputMapping = {};
81
+ for (const output in o)
82
+ outputMapping[output] = o[output].version;
83
+ try {
84
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
85
+ if (cancelRequest())
86
+ return new SessionTreeNode_1.SessionTreeNode();
87
+ this._sessionEngineCore.updateResponseDto(responseDto);
88
+ return yield this.loadOutputs(cancelRequest, taskEventInfo);
89
+ }
90
+ catch (e) {
91
+ yield this._utilsManager.handleError(e, retry);
92
+ if (cancelRequest())
93
+ return new SessionTreeNode_1.SessionTreeNode();
94
+ return yield this.loadOutputs(cancelRequest, taskEventInfo, true);
95
+ }
96
+ }
97
+ });
98
+ }
99
+ loadCachedOutputsParallel(outputMapping, taskEventInfo, retry = false) {
100
+ var _a;
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ this._utilsManager.checkAvailability();
103
+ // if there is already task event info, use it
104
+ // this happens after a retry
105
+ const eventInfo = {
106
+ type: taskEventInfo
107
+ ? taskEventInfo.type
108
+ : viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_LOADING,
109
+ category: taskEventInfo ? taskEventInfo.category : undefined,
110
+ id: taskEventInfo ? taskEventInfo.id : this._uuidGenerator.create(),
111
+ data: taskEventInfo
112
+ ? taskEventInfo.data
113
+ : { sessionId: this._sessionEngineCore.id },
114
+ progressRange: {
115
+ min: 0,
116
+ max: 1,
117
+ },
118
+ };
119
+ try {
120
+ // send start event if this function was called initially
121
+ if (!taskEventInfo) {
122
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Loading cached outputs" }));
123
+ }
124
+ // get the cached outputs
125
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
126
+ // create atomic output api objects for them
127
+ const outputs = {};
128
+ for (const outputId in responseDto.outputs) {
129
+ responseDto.outputs[outputId].id = outputId;
130
+ outputs[outputId] = new Output_1.Output(responseDto.outputs[outputId], this._sessionEngineCore);
131
+ }
132
+ // process the output data
133
+ const node = yield this._outputLoader.loadOutputs(((_a = this._sessionEngineCore.responseDto.model) === null || _a === void 0 ? void 0 : _a.name) || "model", outputs, {}, eventInfo, false);
134
+ // send the end event once done
135
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Loaded cached outputs" }));
136
+ // create a mapping with a dictionary for the id of the outputs
137
+ const outputNodeMapping = {};
138
+ for (const outputId in outputMapping)
139
+ outputNodeMapping[outputId] = node.children.find((n) => n.name === outputId);
140
+ return outputNodeMapping;
141
+ }
142
+ catch (e) {
143
+ yield this._utilsManager.handleError(e, retry);
144
+ return yield this.loadCachedOutputsParallel(outputMapping, eventInfo, true);
145
+ }
146
+ });
147
+ }
148
+ /**
149
+ * Load the outputs and return the scene graph node of the result.
150
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
151
+ *
152
+ * @param parameters the parameter set to update the session
153
+ * @param outputs the outputs to load
154
+ * @returns promise with a scene graph node
155
+ */
156
+ loadOutputsParallel(responseDto, cancelRequest = () => false, taskEventInfo, retry = false) {
157
+ var _a;
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ this._utilsManager.checkAvailability();
160
+ const outputs = {};
161
+ const outputsFreeze = {};
162
+ for (const outputId in responseDto.outputs) {
163
+ responseDto.outputs[outputId].id = outputId;
164
+ if (this._sessionEngineCore.outputsFreeze[outputId] === undefined)
165
+ outputsFreeze[outputId] = false;
166
+ outputs[outputId] = new Output_1.Output(responseDto.outputs[outputId], this._sessionEngineCore);
167
+ }
168
+ try {
169
+ const node = yield this._outputLoader.loadOutputs(((_a = this._sessionEngineCore.responseDto.model) === null || _a === void 0 ? void 0 : _a.name) || "model", outputs, outputsFreeze, taskEventInfo, true, true);
170
+ node.data.push(new SessionData_1.SessionData(responseDto));
171
+ return node;
172
+ }
173
+ catch (e) {
174
+ if (e instanceof OutputDelayException_1.OutputDelayException) {
175
+ yield this._utilsManager.timeout(e.delay);
176
+ }
177
+ else {
178
+ yield this._utilsManager.handleError(e, retry);
179
+ if (cancelRequest())
180
+ return new SessionTreeNode_1.SessionTreeNode();
181
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo, true);
182
+ }
183
+ if (cancelRequest())
184
+ return new SessionTreeNode_1.SessionTreeNode();
185
+ const outputMapping = {};
186
+ for (const output in outputs)
187
+ outputMapping[output] = outputs[output].version;
188
+ try {
189
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
190
+ if (cancelRequest())
191
+ return new SessionTreeNode_1.SessionTreeNode();
192
+ this._sessionEngineCore.updateResponseDto(responseDto);
193
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo);
194
+ }
195
+ catch (e) {
196
+ yield this._utilsManager.handleError(e, retry);
197
+ if (cancelRequest())
198
+ return new SessionTreeNode_1.SessionTreeNode();
199
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo, true);
200
+ }
201
+ }
202
+ });
203
+ }
204
+ /**
205
+ * Save the output properties for displayname, order, tooltip and hidden
206
+ *
207
+ * @param outputs
208
+ * @returns
209
+ */
210
+ saveOutputProperties(outputs, retry = false) {
211
+ return __awaiter(this, void 0, void 0, function* () {
212
+ this._utilsManager.checkAvailability("output-definition", true);
213
+ try {
214
+ yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).updateOutputDefinitions(this._sessionEngineCore.modelId, outputs);
215
+ return true;
216
+ }
217
+ catch (e) {
218
+ yield this._utilsManager.handleError(e, retry);
219
+ return yield this.saveOutputProperties(outputs, true);
220
+ }
221
+ });
222
+ }
223
+ updateOutputs(taskEventInfo, waitForViewportUpdate = false) {
224
+ return __awaiter(this, void 0, void 0, function* () {
225
+ const eventInfo = {
226
+ type: taskEventInfo
227
+ ? taskEventInfo.type
228
+ : viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_UPDATE,
229
+ category: taskEventInfo ? taskEventInfo.category : undefined,
230
+ id: taskEventInfo ? taskEventInfo.id : this._uuidGenerator.create(),
231
+ data: taskEventInfo
232
+ ? taskEventInfo.data
233
+ : { sessionId: this._sessionEngineCore.id },
234
+ progress: 0,
235
+ };
236
+ const customizationId = this._uuidGenerator.create();
237
+ if (!taskEventInfo) {
238
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Updating outputs" }));
239
+ }
240
+ const oldNode = this._sessionEngineCore.node;
241
+ this._sessionEngineCore.customizationProcess = customizationId;
242
+ this._logger.debugLow(`Session(${this._sessionEngineCore.id}).updateOutputs: Updating Outputs.`);
243
+ this._utilsManager.addBusyMode(customizationId);
244
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
245
+ ? (taskEventInfo.progressRange.max -
246
+ taskEventInfo.progressRange.min) *
247
+ 0.1 +
248
+ taskEventInfo.progressRange.min
249
+ : 0.1, status: "Loading outputs" }));
250
+ const oldOutputVersions = this._outputLoader.getCurrentOutputVersions();
251
+ const newNode = yield this.loadOutputs(() => this._sessionEngineCore.customizationProcess !==
252
+ customizationId, Object.assign(Object.assign({}, eventInfo), { progressRange: {
253
+ min: taskEventInfo
254
+ ? (taskEventInfo.progressRange.max -
255
+ taskEventInfo.progressRange.min) *
256
+ 0.1 +
257
+ taskEventInfo.progressRange.min
258
+ : 0.1,
259
+ max: taskEventInfo
260
+ ? (taskEventInfo.progressRange.max -
261
+ taskEventInfo.progressRange.min) *
262
+ 0.9 +
263
+ taskEventInfo.progressRange.min
264
+ : 0.9,
265
+ } }));
266
+ this._utilsManager.warningCreator(this._sessionEngineCore.responseDto.outputs, this._sessionEngineCore.responseDto.exports, this._sessionEngineCore.throwOnCustomizationError);
267
+ const newOutputVersions = this._outputLoader.getCurrentOutputVersions();
268
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
269
+ ? (taskEventInfo.progressRange.max -
270
+ taskEventInfo.progressRange.min) *
271
+ 0.9 +
272
+ taskEventInfo.progressRange.min
273
+ : 0.9, status: "Updating scene" }));
274
+ // OPTION TO SKIP - PART 1
275
+ const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
276
+ ? (taskEventInfo.progressRange.max -
277
+ taskEventInfo.progressRange.min) *
278
+ 1 +
279
+ taskEventInfo.progressRange.min
280
+ : 1 }), customizationId, newNode);
281
+ if (cancelResult)
282
+ return cancelResult;
283
+ // call the update callbacks
284
+ if (waitForViewportUpdate === false) {
285
+ for (const outputId in this._sessionEngineCore.outputs) {
286
+ if (oldOutputVersions[outputId] !== newOutputVersions[outputId]) {
287
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
288
+ outputId: outputId,
289
+ outputVersion: newOutputVersions[outputId],
290
+ newNode: newNode.children.find((c) => c.name === outputId),
291
+ oldNode: oldNode.children.find((c) => c.name === outputId),
292
+ });
293
+ }
294
+ }
295
+ yield this._utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
296
+ // OPTION TO SKIP - PART 2
297
+ const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
298
+ ? (taskEventInfo.progressRange.max -
299
+ taskEventInfo.progressRange.min) *
300
+ 1 +
301
+ taskEventInfo.progressRange.min
302
+ : 1 }), customizationId, newNode);
303
+ if (cancelResult)
304
+ return cancelResult;
305
+ }
306
+ if (this._sessionEngineCore.automaticSceneUpdate)
307
+ this._utilsManager.removeFromSceneTree(this._sessionEngineCore.node);
308
+ this._sessionEngineCore.node = newNode;
309
+ if (this._sessionEngineCore.automaticSceneUpdate &&
310
+ this._sessionEngineCore.closed === false)
311
+ this._utilsManager.addToSceneTree(this._sessionEngineCore.node);
312
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).updateOutputs: Updating outputs finished, updating geometry.`);
313
+ // set the output content to what has been updated
314
+ for (const outputId in this._sessionEngineCore.outputs) {
315
+ this._sessionEngineCore.outputs[outputId].updateOutput(newNode.children.find((c) => c.name === outputId), oldNode.children.find((c) => c.name === outputId));
316
+ }
317
+ // set the export definitions
318
+ for (const exportId in this._sessionEngineCore.exports)
319
+ this._sessionEngineCore.exports[exportId].updateExport();
320
+ this._sessionEngineCore.node.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
321
+ this._utilsManager.removeBusyMode(customizationId);
322
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).updateOutputs: Updated outputs.`);
323
+ if (!taskEventInfo) {
324
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Outputs updated" }));
325
+ }
326
+ // update the viewports
327
+ if (waitForViewportUpdate) {
328
+ for (const r in this._stateEngine.viewportEngines)
329
+ if (this._stateEngine.viewportEngines[r] &&
330
+ !this._sessionEngineCore.excludeViewports.includes(this._stateEngine.viewportEngines[r].id))
331
+ this._stateEngine.viewportEngines[r].update(`SessionEngine(${this._sessionEngineCore.id}).updateOutputs`);
332
+ for (const outputId in this._sessionEngineCore.outputs) {
333
+ if (oldOutputVersions[outputId] !== newOutputVersions[outputId]) {
334
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
335
+ outputId: outputId,
336
+ outputVersion: newOutputVersions[outputId],
337
+ newNode: newNode.children.find((c) => c.name === outputId),
338
+ oldNode: oldNode.children.find((c) => c.name === outputId),
339
+ });
340
+ }
341
+ }
342
+ yield this._utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
343
+ // OPTION TO SKIP - PART 3
344
+ const cancelResult = this._utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
345
+ ? (taskEventInfo.progressRange.max -
346
+ taskEventInfo.progressRange.min) *
347
+ 1 +
348
+ taskEventInfo.progressRange.min
349
+ : 1 }), customizationId, newNode);
350
+ if (cancelResult)
351
+ return cancelResult;
352
+ }
353
+ return this._sessionEngineCore.node;
354
+ });
355
+ }
356
+ }
357
+ exports.OutputManager = OutputManager;
358
+ //# sourceMappingURL=OutputManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputManager.js","sourceRoot":"","sources":["../../../src/implementation/managers/OutputManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
2
+ import { SessionEngineCore } from "../SessionEngineCore";
3
+ export declare class ParameterManager {
4
+ private readonly _logger;
5
+ private readonly _sessionEngineCore;
6
+ private _parameterHistoryCall;
7
+ private _parameterHistory;
8
+ private _parameterHistoryForward;
9
+ constructor(sessionEngineCore: SessionEngineCore);
10
+ get parameterHistoryCall(): boolean;
11
+ get parameterHistory(): {
12
+ [key: string]: {
13
+ value: unknown;
14
+ valueString: string;
15
+ };
16
+ }[];
17
+ set parameterHistoryForward(value: {
18
+ [key: string]: {
19
+ value: unknown;
20
+ valueString: string;
21
+ };
22
+ }[]);
23
+ goBack(): Promise<ITreeNode>;
24
+ goForward(): Promise<ITreeNode>;
25
+ canGoBack(): boolean;
26
+ canGoForward(): boolean;
27
+ }
28
+ //# sourceMappingURL=ParameterManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterManager.d.ts","sourceRoot":"","sources":["../../../src/implementation/managers/ParameterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAW,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAEvD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,wBAAwB,CAKvB;gBAEG,iBAAiB,EAAE,iBAAiB;IAIhD,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED,IAAW,gBAAgB,IAAI;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG;YACd,KAAK,EAAE,OAAO,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;SACpB,CAAC;KACF,EAAE,CAEF;IAED,IAAW,uBAAuB,CACjC,KAAK,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG;YACd,KAAK,EAAE,OAAO,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;SACpB,CAAC;KACF,EAAE,EAGH;IAEY,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IA4B5B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAwBrC,SAAS,IAAI,OAAO;IAMpB,YAAY,IAAI,OAAO;CAG9B"}
@@ -0,0 +1,84 @@
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.ParameterManager = void 0;
13
+ const viewer_shared_node_tree_1 = require("@shapediver/viewer.shared.node-tree");
14
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
15
+ class ParameterManager {
16
+ constructor(sessionEngineCore) {
17
+ this._logger = viewer_shared_services_1.Logger.instance;
18
+ this._parameterHistoryCall = false;
19
+ this._parameterHistory = [];
20
+ this._parameterHistoryForward = [];
21
+ this._sessionEngineCore = sessionEngineCore;
22
+ }
23
+ get parameterHistoryCall() {
24
+ return this._parameterHistoryCall;
25
+ }
26
+ get parameterHistory() {
27
+ return this._parameterHistory;
28
+ }
29
+ set parameterHistoryForward(value) {
30
+ this._parameterHistoryForward = value;
31
+ }
32
+ goBack() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (!this.canGoBack()) {
35
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).goBack: Cannot go further back.`);
36
+ return new viewer_shared_node_tree_1.TreeNode();
37
+ }
38
+ // get the current parameter set and store it in the forward history later on
39
+ const currentParameterSet = this._parameterHistory.pop();
40
+ // adjust the parameters according to the last parameter set
41
+ const lastParameterSet = this._parameterHistory[this._parameterHistory.length - 1];
42
+ for (const parameterId in lastParameterSet)
43
+ this._sessionEngineCore.parameters[parameterId].value =
44
+ lastParameterSet[parameterId].value;
45
+ // call the customization function with the parameterHistoryCall value set to true
46
+ this._parameterHistoryCall = true;
47
+ const node = yield this._sessionEngineCore.customizationManager.customize();
48
+ this._parameterHistoryCall = false;
49
+ // add the current (not anymore current) parameter set to the forward history
50
+ this._parameterHistoryForward.push(currentParameterSet);
51
+ return node;
52
+ });
53
+ }
54
+ goForward() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ if (!this.canGoForward()) {
57
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).goForward: Cannot go further forward.`);
58
+ return new viewer_shared_node_tree_1.TreeNode();
59
+ }
60
+ // get the last undone parameter set and apply the values to the parameters
61
+ const lastParameterSet = this._parameterHistoryForward.pop();
62
+ for (const parameterId in lastParameterSet)
63
+ this._sessionEngineCore.parameters[parameterId].value =
64
+ lastParameterSet[parameterId].value;
65
+ // call the customization function with the parameterHistoryCall value set to true
66
+ this._parameterHistoryCall = true;
67
+ const node = yield this._sessionEngineCore.customizationManager.customize();
68
+ this._parameterHistoryCall = false;
69
+ // add the current parameter set to the history
70
+ this._parameterHistory.push(lastParameterSet);
71
+ return node;
72
+ });
73
+ }
74
+ canGoBack() {
75
+ // the first entry is always the one from the init call
76
+ // all additional entries can be undone
77
+ return this._parameterHistory.length > 1;
78
+ }
79
+ canGoForward() {
80
+ return this._parameterHistoryForward.length > 0;
81
+ }
82
+ }
83
+ exports.ParameterManager = ParameterManager;
84
+ //# sourceMappingURL=ParameterManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParameterManager.js","sourceRoot":"","sources":["../../../src/implementation/managers/ParameterManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { ResBase } from "@shapediver/sdk.geometry-api-sdk-v2";
2
+ import { SettingsEngine } from "@shapediver/viewer.shared.services";
3
+ import { ISettingsSections } from "@shapediver/viewer.shared.types";
4
+ import { SessionEngineCore } from "../SessionEngineCore";
5
+ export declare class SettingsManager {
6
+ private readonly _logger;
7
+ private readonly _sessionEngineCore;
8
+ private readonly _settingsEngine;
9
+ private _viewerSettings?;
10
+ private _viewerSettingsVersion;
11
+ private _viewerSettingsVersionBackend;
12
+ private readonly _utilsManager;
13
+ constructor(sessionEngineCore: SessionEngineCore);
14
+ get hasStoredSettings(): boolean;
15
+ get settingsEngine(): SettingsEngine;
16
+ get viewerSettings(): object | undefined;
17
+ set viewerSettings(value: object | undefined);
18
+ set viewerSettingsVersionBackend(value: string);
19
+ _saveSessionSettings(): void;
20
+ applySettings(response: ResBase, sections?: ISettingsSections): void;
21
+ resetSettings(sections?: ISettingsSections): void;
22
+ saveDefaultParameterValues(): Promise<boolean>;
23
+ /**
24
+ * Save the default parameter values
25
+ *
26
+ * @param retry
27
+ * @returns
28
+ */
29
+ saveDefaultParameters(retry?: boolean): Promise<boolean>;
30
+ /**
31
+ * Save the parameter properties for displayname, order, tooltip and hidden
32
+ *
33
+ * @param parameters
34
+ * @param retry
35
+ * @returns
36
+ */
37
+ saveParameterProperties(parameters: {
38
+ [key: string]: {
39
+ displayname: string;
40
+ hidden: boolean;
41
+ order: number;
42
+ tooltip: string;
43
+ };
44
+ }, retry?: boolean): Promise<boolean>;
45
+ /**
46
+ * Save the viewer settings
47
+ *
48
+ * @param json
49
+ * @param retry
50
+ * @returns
51
+ */
52
+ saveSettings(json: unknown, retry?: boolean): Promise<boolean>;
53
+ saveUiProperties(saveInSettings?: boolean): Promise<boolean>;
54
+ }
55
+ //# sourceMappingURL=SettingsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsManager.d.ts","sourceRoot":"","sources":["../../../src/implementation/managers/SettingsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,OAAO,EACP,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,EAEN,cAAc,EAGd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,6BAA6B,CAAyB;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,iBAAiB,EAAE,iBAAiB;IAKhD,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,IAAW,cAAc,IAAI,MAAM,GAAG,SAAS,CAE9C;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElD;IAED,IAAW,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAEpD;IAEM,oBAAoB;IA4BpB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IA8N7D,aAAa,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IA2C3C,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB3D;;;;;OAKG;IACU,qBAAqB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBnE;;;;;;OAMG;IACU,uBAAuB,CACnC,UAAU,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SAChB,CAAC;KACF,EACD,KAAK,UAAQ,GACX,OAAO,CAAC,OAAO,CAAC;IAgBnB;;;;;;OAMG;IACU,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAsC5D,gBAAgB,CAC5B,cAAc,GAAE,OAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;CAkHnB"}