@shapediver/viewer.session-engine.session-engine 3.14.7 → 3.14.9

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 (47) hide show
  1. package/dist/implementation/OutputLoader.d.ts.map +1 -1
  2. package/dist/implementation/OutputLoader.js +19 -0
  3. package/dist/implementation/OutputLoader.js.map +1 -1
  4. package/dist/implementation/SessionEngine.d.ts.map +1 -1
  5. package/dist/implementation/SessionEngine.js +5 -8
  6. package/dist/implementation/SessionEngine.js.map +1 -1
  7. package/dist/implementation/SessionEngineCore.d.ts +119 -0
  8. package/dist/implementation/SessionEngineCore.d.ts.map +1 -0
  9. package/dist/implementation/SessionEngineCore.js +367 -0
  10. package/dist/implementation/SessionEngineCore.js.map +1 -0
  11. package/dist/implementation/SessionEngineFacade.d.ts +106 -0
  12. package/dist/implementation/SessionEngineFacade.d.ts.map +1 -0
  13. package/dist/implementation/SessionEngineFacade.js +191 -0
  14. package/dist/implementation/SessionEngineFacade.js.map +1 -0
  15. package/dist/implementation/managers/CustomizationManager.d.ts +67 -0
  16. package/dist/implementation/managers/CustomizationManager.d.ts.map +1 -0
  17. package/dist/implementation/managers/CustomizationManager.js +324 -0
  18. package/dist/implementation/managers/CustomizationManager.js.map +1 -0
  19. package/dist/implementation/managers/ExportManager.d.ts +75 -0
  20. package/dist/implementation/managers/ExportManager.d.ts.map +1 -0
  21. package/dist/implementation/managers/ExportManager.js +213 -0
  22. package/dist/implementation/managers/ExportManager.js.map +1 -0
  23. package/dist/implementation/managers/FileUploadManager.d.ts +74 -0
  24. package/dist/implementation/managers/FileUploadManager.d.ts.map +1 -0
  25. package/dist/implementation/managers/FileUploadManager.js +221 -0
  26. package/dist/implementation/managers/FileUploadManager.js.map +1 -0
  27. package/dist/implementation/managers/ModelStateManager.d.ts +54 -0
  28. package/dist/implementation/managers/ModelStateManager.d.ts.map +1 -0
  29. package/dist/implementation/managers/ModelStateManager.js +177 -0
  30. package/dist/implementation/managers/ModelStateManager.js.map +1 -0
  31. package/dist/implementation/managers/OutputManager.d.ts +99 -0
  32. package/dist/implementation/managers/OutputManager.d.ts.map +1 -0
  33. package/dist/implementation/managers/OutputManager.js +418 -0
  34. package/dist/implementation/managers/OutputManager.js.map +1 -0
  35. package/dist/implementation/managers/ParameterManager.d.ts +75 -0
  36. package/dist/implementation/managers/ParameterManager.d.ts.map +1 -0
  37. package/dist/implementation/managers/ParameterManager.js +235 -0
  38. package/dist/implementation/managers/ParameterManager.js.map +1 -0
  39. package/dist/implementation/managers/SettingsManager.d.ts +80 -0
  40. package/dist/implementation/managers/SettingsManager.d.ts.map +1 -0
  41. package/dist/implementation/managers/SettingsManager.js +502 -0
  42. package/dist/implementation/managers/SettingsManager.js.map +1 -0
  43. package/dist/implementation/managers/UtilsManager.d.ts +127 -0
  44. package/dist/implementation/managers/UtilsManager.d.ts.map +1 -0
  45. package/dist/implementation/managers/UtilsManager.js +410 -0
  46. package/dist/implementation/managers/UtilsManager.js.map +1 -0
  47. package/package.json +8 -8
@@ -0,0 +1,418 @@
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
+ /**
22
+ * Manager responsible for outputs.
23
+ *
24
+ * The manager is created by the SessionEngineCore and can be accessed
25
+ * via the `outputManager` property.
26
+ */
27
+ class OutputManager {
28
+ constructor(sessionEngineCore) {
29
+ this._eventEngine = viewer_shared_services_1.EventEngine.instance;
30
+ this._logger = viewer_shared_services_1.Logger.instance;
31
+ this._outputs = {};
32
+ this._outputsFreeze = {};
33
+ this._stateEngine = viewer_shared_services_1.StateEngine.instance;
34
+ this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
35
+ this._allowOutputLoading = true;
36
+ this._outputLoader = new OutputLoader_1.OutputLoader(this);
37
+ this._sessionEngineCore = sessionEngineCore;
38
+ }
39
+ init() {
40
+ // Initialization logic here
41
+ }
42
+ get allowOutputLoading() {
43
+ return this._allowOutputLoading;
44
+ }
45
+ set allowOutputLoading(value) {
46
+ this._allowOutputLoading = value;
47
+ }
48
+ get jwtToken() {
49
+ return this._sessionEngineCore.jwtToken;
50
+ }
51
+ get loadSdtf() {
52
+ return this._sessionEngineCore.loadSdtf;
53
+ }
54
+ get outputs() {
55
+ return this._outputs;
56
+ }
57
+ get outputsFreeze() {
58
+ return this._outputsFreeze;
59
+ }
60
+ get reloadSdtf() {
61
+ return this._outputLoader.reloadSdtf;
62
+ }
63
+ set reloadSdtf(value) {
64
+ this._outputLoader.reloadSdtf = value;
65
+ }
66
+ /**
67
+ * Create outputs from the response DTO.
68
+ */
69
+ createOutputsFromDto() {
70
+ if (!this._sessionEngineCore.responseDto)
71
+ return;
72
+ for (const outputId in this._sessionEngineCore.responseDto.outputs) {
73
+ if (!this.outputs[outputId]) {
74
+ this._sessionEngineCore.responseDto.outputs[outputId].id =
75
+ outputId;
76
+ if (this.outputsFreeze[outputId] === undefined)
77
+ this.outputsFreeze[outputId] = false;
78
+ this.outputs[outputId] = new Output_1.Output(this._sessionEngineCore.responseDto.outputs[outputId], this._sessionEngineCore, this);
79
+ }
80
+ else {
81
+ this.outputs[outputId].updateOutputDefinition((this._sessionEngineCore.responseDto.outputs[outputId]));
82
+ }
83
+ }
84
+ }
85
+ getCurrentOutputVersions() {
86
+ return this._outputLoader.getCurrentOutputVersions();
87
+ }
88
+ /**
89
+ * Load cached outputs in parallel.
90
+ *
91
+ * @param outputMapping mapping of output ids to their versions
92
+ * @param taskEventInfo optional task event info
93
+ * @param retry whether to retry the request in case of failure
94
+ * @returns promise with a mapping of output ids to their scene graph nodes
95
+ */
96
+ loadCachedOutputsParallel(outputMapping, taskEventInfo, retry = false) {
97
+ var _a;
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ this._sessionEngineCore.utilsManager.checkAvailability();
100
+ // if there is already task event info, use it
101
+ // this happens after a retry
102
+ const eventInfo = {
103
+ type: taskEventInfo
104
+ ? taskEventInfo.type
105
+ : viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_LOADING,
106
+ category: taskEventInfo ? taskEventInfo.category : undefined,
107
+ id: taskEventInfo ? taskEventInfo.id : this._uuidGenerator.create(),
108
+ data: taskEventInfo
109
+ ? taskEventInfo.data
110
+ : { sessionId: this._sessionEngineCore.id },
111
+ progressRange: {
112
+ min: 0,
113
+ max: 1,
114
+ },
115
+ };
116
+ try {
117
+ // send start event if this function was called initially
118
+ if (!taskEventInfo) {
119
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Loading cached outputs" }));
120
+ }
121
+ // get the cached outputs
122
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
123
+ // create atomic output api objects for them
124
+ const outputs = {};
125
+ for (const outputId in responseDto.outputs) {
126
+ responseDto.outputs[outputId].id = outputId;
127
+ outputs[outputId] = new Output_1.Output(responseDto.outputs[outputId], this._sessionEngineCore, this);
128
+ }
129
+ // process the output data
130
+ const node = yield this._outputLoader.loadOutputs(((_a = this._sessionEngineCore.responseDto.model) === null || _a === void 0 ? void 0 : _a.name) || "model", outputs, {}, eventInfo, false);
131
+ // send the end event once done
132
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Loaded cached outputs" }));
133
+ // create a mapping with a dictionary for the id of the outputs
134
+ const outputNodeMapping = {};
135
+ for (const outputId in outputMapping)
136
+ outputNodeMapping[outputId] = node.children.find((n) => n.name === outputId);
137
+ return outputNodeMapping;
138
+ }
139
+ catch (e) {
140
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
141
+ return yield this.loadCachedOutputsParallel(outputMapping, eventInfo, true);
142
+ }
143
+ });
144
+ }
145
+ /**
146
+ * Load the outputs and return the scene graph node of the result.
147
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
148
+ *
149
+ * @param parameters the parameter set to update the session
150
+ * @param outputs the outputs to load
151
+ * @returns promise with a scene graph node
152
+ */
153
+ loadOutputs(cancelRequest = () => false, taskEventInfo, retry = false) {
154
+ var _a;
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ this._sessionEngineCore.utilsManager.checkAvailability();
157
+ const o = Object.assign({}, this.outputs);
158
+ const of = Object.assign({}, this.outputsFreeze);
159
+ try {
160
+ const node = yield this._outputLoader.loadOutputs(((_a = this._sessionEngineCore.responseDto.model) === null || _a === void 0 ? void 0 : _a.name) || "model", o, of, taskEventInfo);
161
+ node.data.push(new SessionData_1.SessionData(this._sessionEngineCore.responseDto));
162
+ if (cancelRequest())
163
+ return node;
164
+ node.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
165
+ return node;
166
+ }
167
+ catch (e) {
168
+ if (e instanceof OutputDelayException_1.OutputDelayException) {
169
+ yield this._sessionEngineCore.utilsManager.timeout(e.delay);
170
+ }
171
+ else {
172
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
173
+ if (cancelRequest())
174
+ return new SessionTreeNode_1.SessionTreeNode();
175
+ return yield this.loadOutputs(cancelRequest, taskEventInfo, true);
176
+ }
177
+ if (cancelRequest())
178
+ return new SessionTreeNode_1.SessionTreeNode();
179
+ const outputMapping = {};
180
+ for (const output in o)
181
+ outputMapping[output] = o[output].version;
182
+ try {
183
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
184
+ if (cancelRequest())
185
+ return new SessionTreeNode_1.SessionTreeNode();
186
+ this._sessionEngineCore.updateResponseDto(responseDto);
187
+ return yield this.loadOutputs(cancelRequest, taskEventInfo);
188
+ }
189
+ catch (e) {
190
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
191
+ if (cancelRequest())
192
+ return new SessionTreeNode_1.SessionTreeNode();
193
+ return yield this.loadOutputs(cancelRequest, taskEventInfo, true);
194
+ }
195
+ }
196
+ });
197
+ }
198
+ /**
199
+ * Load the outputs and return the scene graph node of the result.
200
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
201
+ *
202
+ * @param parameters the parameter set to update the session
203
+ * @param outputs the outputs to load
204
+ * @returns promise with a scene graph node
205
+ */
206
+ loadOutputsParallel(responseDto, cancelRequest = () => false, taskEventInfo, retry = false) {
207
+ var _a;
208
+ return __awaiter(this, void 0, void 0, function* () {
209
+ this._sessionEngineCore.utilsManager.checkAvailability();
210
+ const outputs = {};
211
+ const outputsFreeze = {};
212
+ for (const outputId in responseDto.outputs) {
213
+ responseDto.outputs[outputId].id = outputId;
214
+ if (this.outputsFreeze[outputId] === undefined)
215
+ outputsFreeze[outputId] = false;
216
+ outputs[outputId] = new Output_1.Output(responseDto.outputs[outputId], this._sessionEngineCore, this);
217
+ }
218
+ try {
219
+ 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);
220
+ node.data.push(new SessionData_1.SessionData(responseDto));
221
+ return node;
222
+ }
223
+ catch (e) {
224
+ if (e instanceof OutputDelayException_1.OutputDelayException) {
225
+ yield this._sessionEngineCore.utilsManager.timeout(e.delay);
226
+ }
227
+ else {
228
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
229
+ if (cancelRequest())
230
+ return new SessionTreeNode_1.SessionTreeNode();
231
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo, true);
232
+ }
233
+ if (cancelRequest())
234
+ return new SessionTreeNode_1.SessionTreeNode();
235
+ const outputMapping = {};
236
+ for (const output in outputs)
237
+ outputMapping[output] = outputs[output].version;
238
+ try {
239
+ const responseDto = (yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).getCachedOutputs(this._sessionEngineCore.sessionId, outputMapping)).data;
240
+ if (cancelRequest())
241
+ return new SessionTreeNode_1.SessionTreeNode();
242
+ this._sessionEngineCore.updateResponseDto(responseDto);
243
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo);
244
+ }
245
+ catch (e) {
246
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
247
+ if (cancelRequest())
248
+ return new SessionTreeNode_1.SessionTreeNode();
249
+ return yield this.loadOutputsParallel(responseDto, cancelRequest, taskEventInfo, true);
250
+ }
251
+ }
252
+ });
253
+ }
254
+ /**
255
+ * Save the output properties for displayname, order, tooltip and hidden
256
+ *
257
+ * @param outputs
258
+ * @returns
259
+ */
260
+ saveOutputProperties(outputs, retry = false) {
261
+ return __awaiter(this, void 0, void 0, function* () {
262
+ this._sessionEngineCore.utilsManager.checkAvailability("output-definition", true);
263
+ try {
264
+ yield new sdk_geometry_api_sdk_v2_1.OutputApi(this._sessionEngineCore.sdkConfig).updateOutputDefinitions(this._sessionEngineCore.modelId, outputs);
265
+ return true;
266
+ }
267
+ catch (e) {
268
+ yield this._sessionEngineCore.utilsManager.handleError(e, retry);
269
+ return yield this.saveOutputProperties(outputs, true);
270
+ }
271
+ });
272
+ }
273
+ /**
274
+ * Update the outputs and return the scene graph node of the result.
275
+ * In case the outputs have a delay property, another customization request with the parameter set is sent.
276
+ *
277
+ * @param taskEventInfo optional task event info
278
+ * @param waitForViewportUpdate whether to wait for the viewport update callbacks before returning
279
+ * @returns promise with a scene graph node
280
+ */
281
+ updateOutputs(taskEventInfo, waitForViewportUpdate = false) {
282
+ return __awaiter(this, void 0, void 0, function* () {
283
+ const eventInfo = {
284
+ type: taskEventInfo
285
+ ? taskEventInfo.type
286
+ : viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_UPDATE,
287
+ category: taskEventInfo ? taskEventInfo.category : undefined,
288
+ id: taskEventInfo ? taskEventInfo.id : this._uuidGenerator.create(),
289
+ data: taskEventInfo
290
+ ? taskEventInfo.data
291
+ : { sessionId: this._sessionEngineCore.id },
292
+ progress: 0,
293
+ };
294
+ const customizationId = this._uuidGenerator.create();
295
+ if (!taskEventInfo) {
296
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, Object.assign(Object.assign({}, eventInfo), { progress: 0, status: "Updating outputs" }));
297
+ }
298
+ const oldNode = this._sessionEngineCore.node;
299
+ this._sessionEngineCore.customizationManager.customizationProcess =
300
+ customizationId;
301
+ this._logger.debugLow(`Session(${this._sessionEngineCore.id}).updateOutputs: Updating Outputs.`);
302
+ this._sessionEngineCore.utilsManager.addBusyMode(customizationId);
303
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
304
+ ? (taskEventInfo.progressRange.max -
305
+ taskEventInfo.progressRange.min) *
306
+ 0.1 +
307
+ taskEventInfo.progressRange.min
308
+ : 0.1, status: "Loading outputs" }));
309
+ const oldOutputVersions = this._outputLoader.getCurrentOutputVersions();
310
+ const newNode = yield this.loadOutputs(() => this._sessionEngineCore.customizationManager
311
+ .customizationProcess !== customizationId, Object.assign(Object.assign({}, eventInfo), { progressRange: {
312
+ min: taskEventInfo
313
+ ? (taskEventInfo.progressRange.max -
314
+ taskEventInfo.progressRange.min) *
315
+ 0.1 +
316
+ taskEventInfo.progressRange.min
317
+ : 0.1,
318
+ max: taskEventInfo
319
+ ? (taskEventInfo.progressRange.max -
320
+ taskEventInfo.progressRange.min) *
321
+ 0.9 +
322
+ taskEventInfo.progressRange.min
323
+ : 0.9,
324
+ } }));
325
+ this._sessionEngineCore.utilsManager.warningCreator(this._sessionEngineCore.responseDto.outputs, this._sessionEngineCore.responseDto.exports, this._sessionEngineCore.customizationManager
326
+ .throwOnCustomizationError);
327
+ const newOutputVersions = this._outputLoader.getCurrentOutputVersions();
328
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
329
+ ? (taskEventInfo.progressRange.max -
330
+ taskEventInfo.progressRange.min) *
331
+ 0.9 +
332
+ taskEventInfo.progressRange.min
333
+ : 0.9, status: "Updating scene" }));
334
+ // OPTION TO SKIP - PART 1
335
+ const cancelResult = this._sessionEngineCore.utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
336
+ ? (taskEventInfo.progressRange.max -
337
+ taskEventInfo.progressRange.min) *
338
+ 1 +
339
+ taskEventInfo.progressRange.min
340
+ : 1 }), customizationId, newNode);
341
+ if (cancelResult)
342
+ return cancelResult;
343
+ // call the update callbacks
344
+ if (waitForViewportUpdate === false) {
345
+ for (const outputId in this.outputs) {
346
+ if (oldOutputVersions[outputId] !== newOutputVersions[outputId]) {
347
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
348
+ outputId: outputId,
349
+ outputVersion: newOutputVersions[outputId],
350
+ newNode: newNode.children.find((c) => c.name === outputId),
351
+ oldNode: oldNode.children.find((c) => c.name === outputId),
352
+ });
353
+ }
354
+ }
355
+ yield this._sessionEngineCore.utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
356
+ // OPTION TO SKIP - PART 2
357
+ const cancelResult = this._sessionEngineCore.utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
358
+ ? (taskEventInfo.progressRange.max -
359
+ taskEventInfo.progressRange.min) *
360
+ 1 +
361
+ taskEventInfo.progressRange.min
362
+ : 1 }), customizationId, newNode);
363
+ if (cancelResult)
364
+ return cancelResult;
365
+ }
366
+ if (this._sessionEngineCore.automaticSceneUpdate)
367
+ this._sessionEngineCore.utilsManager.removeFromSceneTree(this._sessionEngineCore.node);
368
+ this._sessionEngineCore.node = newNode;
369
+ if (this._sessionEngineCore.automaticSceneUpdate &&
370
+ this._sessionEngineCore.closed === false)
371
+ this._sessionEngineCore.utilsManager.addToSceneTree(this._sessionEngineCore.node);
372
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).updateOutputs: Updating outputs finished, updating geometry.`);
373
+ // set the output content to what has been updated
374
+ for (const outputId in this.outputs) {
375
+ this.outputs[outputId].updateOutput(newNode.children.find((c) => c.name === outputId), oldNode.children.find((c) => c.name === outputId));
376
+ }
377
+ // set the export definitions
378
+ for (const exportId in this._sessionEngineCore.exportManager.exports)
379
+ this._sessionEngineCore.exportManager.exports[exportId].updateExport();
380
+ this._sessionEngineCore.node.excludeViewports = JSON.parse(JSON.stringify(this._sessionEngineCore.excludeViewports));
381
+ this._sessionEngineCore.utilsManager.removeBusyMode(customizationId);
382
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).updateOutputs: Updated outputs.`);
383
+ if (!taskEventInfo) {
384
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, Object.assign(Object.assign({}, eventInfo), { progress: 1, status: "Outputs updated" }));
385
+ }
386
+ // update the viewports
387
+ if (waitForViewportUpdate) {
388
+ for (const r in this._stateEngine.viewportEngines)
389
+ if (this._stateEngine.viewportEngines[r] &&
390
+ !this._sessionEngineCore.excludeViewports.includes(this._stateEngine.viewportEngines[r].id))
391
+ this._stateEngine.viewportEngines[r].update(`SessionEngine(${this._sessionEngineCore.id}).updateOutputs`);
392
+ for (const outputId in this.outputs) {
393
+ if (oldOutputVersions[outputId] !== newOutputVersions[outputId]) {
394
+ this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.OUTPUT.OUTPUT_UPDATED, {
395
+ outputId: outputId,
396
+ outputVersion: newOutputVersions[outputId],
397
+ newNode: newNode.children.find((c) => c.name === outputId),
398
+ oldNode: oldNode.children.find((c) => c.name === outputId),
399
+ });
400
+ }
401
+ }
402
+ yield this._sessionEngineCore.utilsManager.waitForUpdateCallbacks(newOutputVersions, oldOutputVersions, newNode, oldNode);
403
+ // OPTION TO SKIP - PART 3
404
+ const cancelResult = this._sessionEngineCore.utilsManager.cancelProcess(Object.assign(Object.assign({}, eventInfo), { progress: taskEventInfo
405
+ ? (taskEventInfo.progressRange.max -
406
+ taskEventInfo.progressRange.min) *
407
+ 1 +
408
+ taskEventInfo.progressRange.min
409
+ : 1 }), customizationId, newNode);
410
+ if (cancelResult)
411
+ return cancelResult;
412
+ }
413
+ return this._sessionEngineCore.node;
414
+ });
415
+ }
416
+ }
417
+ exports.OutputManager = OutputManager;
418
+ //# 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,75 @@
1
+ import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
2
+ import { IParameter } from "../../interfaces/dto/IParameter";
3
+ import { SessionEngineCore } from "../SessionEngineCore";
4
+ /**
5
+ * Manager responsible for parameters.
6
+ *
7
+ * The manager is created by the SessionEngineCore and can be accessed
8
+ * via the `parameterManager` property.
9
+ */
10
+ export declare class ParameterManager {
11
+ private readonly _logger;
12
+ private readonly _parameterValues;
13
+ private readonly _parameters;
14
+ private readonly _sessionEngineCore;
15
+ private _ignoreUnknownParams?;
16
+ private _parameterHistory;
17
+ private _parameterHistoryCall;
18
+ private _parameterHistoryForward;
19
+ constructor(sessionEngineCore: SessionEngineCore);
20
+ get ignoreUnknownParams(): boolean | undefined;
21
+ set ignoreUnknownParams(value: boolean | undefined);
22
+ get parameterHistory(): {
23
+ [key: string]: {
24
+ value: unknown;
25
+ valueString: string;
26
+ };
27
+ }[];
28
+ get parameterHistoryCall(): boolean;
29
+ set parameterHistoryForward(value: {
30
+ [key: string]: {
31
+ value: unknown;
32
+ valueString: string;
33
+ };
34
+ }[]);
35
+ get parameterValues(): {
36
+ [key: string]: string;
37
+ };
38
+ get parameters(): {
39
+ [key: string]: IParameter<unknown>;
40
+ };
41
+ /**
42
+ * Checks whether it is possible to go back in the parameter history.
43
+ *
44
+ * @returns True if it is possible to go back, false otherwise.
45
+ */
46
+ canGoBack(): boolean;
47
+ /**
48
+ * Checks whether it is possible to go forward in the parameter history.
49
+ *
50
+ * @returns True if it is possible to go forward, false otherwise.
51
+ */
52
+ canGoForward(): boolean;
53
+ /**
54
+ * Creates parameters from the session engine's response DTO.
55
+ *
56
+ * @param initialParameters
57
+ * @returns
58
+ */
59
+ createParametersFromDto(initialParameters?: {
60
+ [key: string]: string;
61
+ }): void;
62
+ /**
63
+ * Goes one step back in the parameter history and applies the parameter values.
64
+ *
65
+ * @returns The tree node returned by the customization function.
66
+ */
67
+ goBack(): Promise<ITreeNode>;
68
+ /**
69
+ * Goes one step forward in the parameter history and applies the parameter values.
70
+ *
71
+ * @returns The tree node returned by the customization function.
72
+ */
73
+ goForward(): Promise<ITreeNode>;
74
+ }
75
+ //# 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;AAMxE,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAI3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAEvD,OAAO,CAAC,oBAAoB,CAAC,CAAU;IACvC,OAAO,CAAC,iBAAiB,CAKhB;IACT,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAKvB;gBAEG,iBAAiB,EAAE,iBAAiB;IAIhD,IAAW,mBAAmB,IAAI,OAAO,GAAG,SAAS,CAEpD;IAED,IAAW,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAExD;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,oBAAoB,IAAI,OAAO,CAEzC;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;IAED,IAAW,eAAe,IAAI;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAEpD;IAED,IAAW,UAAU,IAAI;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;KAAC,CAE5D;IAED;;;;OAIG;IACI,SAAS,IAAI,OAAO;IAM3B;;;;OAIG;IACI,YAAY,IAAI,OAAO;IAI9B;;;;;OAKG;IACI,uBAAuB,CAAC,iBAAiB,CAAC,EAAE;QAClD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACtB,GAAG,IAAI;IAyKR;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IA4BzC;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;CAuB5C"}