@shapediver/viewer.creation-control-center.session 3.16.8 → 3.16.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.
@@ -1,434 +1,434 @@
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
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
- };
16
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
- if (kind === "m") throw new TypeError("Private method is not writable");
18
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
20
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
- };
22
- var _CreationControlCenterSession_eventEngine, _CreationControlCenterSession_logger, _CreationControlCenterSession_stateEngine, _CreationControlCenterSession_uuidGenerator, _CreationControlCenterSession_firstSessionEngine;
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.CreationControlCenterSession = void 0;
25
- const viewer_session_engine_session_engine_1 = require("@shapediver/viewer.session-engine.session-engine");
26
- const viewer_settings_1 = require("@shapediver/viewer.settings");
27
- const viewer_shared_build_data_1 = require("@shapediver/viewer.shared.build-data");
28
- const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
29
- const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
30
- const SessionGlobalAccessObject_1 = require("./SessionGlobalAccessObject");
31
- class CreationControlCenterSession {
32
- constructor() {
33
- // #region Properties (8)
34
- _CreationControlCenterSession_eventEngine.set(this, viewer_shared_services_1.EventEngine.instance);
35
- _CreationControlCenterSession_logger.set(this, viewer_shared_services_1.Logger.instance);
36
- _CreationControlCenterSession_stateEngine.set(this, viewer_shared_services_1.StateEngine.instance);
37
- _CreationControlCenterSession_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
38
- _CreationControlCenterSession_firstSessionEngine.set(this, void 0);
39
- this.sessionEngines = {};
40
- // #endregion Private Methods (2)
41
- }
42
- // #endregion Properties (8)
43
- // #region Public Static Getters And Setters (1)
44
- static get instance() {
45
- return this._instance || (this._instance = new this());
46
- }
47
- // #endregion Public Static Getters And Setters (1)
48
- // #region Public Methods (5)
49
- applySettings(sessionId, response, sections) {
50
- sections = sections || {};
51
- this.sessionEngines[sessionId].applySettings(response, sections);
52
- const promises = [];
53
- if (sections.session &&
54
- sections.session.parameter &&
55
- sections.session.parameter.value)
56
- promises.push(this.sessionEngines[sessionId].customize());
57
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
58
- const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
59
- if ((viewportEngineState &&
60
- viewportEngineState.sessionSettingsMode ===
61
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
62
- __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
63
- sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
64
- (viewportEngineState &&
65
- viewportEngineState.sessionSettingsMode ===
66
- viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
67
- sessionId === viewportEngineState.sessionSettingsId)) {
68
- viewportEngineState.settingsAssigned.reset();
69
- promises.push(new Promise((resolve) => {
70
- var _a;
71
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.then(() => {
72
- resolve();
73
- });
74
- }));
75
- viewportEngineState.applySettings(sections.viewport);
76
- }
77
- }
78
- return new Promise((resolve) => Promise.all(promises).then(() => resolve()));
79
- }
80
- closeSessionEngine(id) {
81
- var _a, _b, _c, _d, _e;
82
- return __awaiter(this, void 0, void 0, function* () {
83
- if (!this.sessionEngines[id])
84
- return;
85
- __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debugLow(`CreationControlCenter.closeSession: Closing session ${id}.`);
86
- if (((_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _a === void 0 ? void 0 : _a.initialized.resolved) === false)
87
- yield new Promise((resolve) => {
88
- var _a;
89
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _a === void 0 ? void 0 : _a.initialized.then(() => resolve());
90
- });
91
- yield this.sessionEngines[id].close();
92
- // remove from rendering engines (also directly assigned)
93
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
94
- const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
95
- if ((viewportEngineState &&
96
- viewportEngineState.sessionSettingsMode ===
97
- viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
98
- viewportEngineState.sessionSettingsId === id) ||
99
- (viewportEngineState &&
100
- viewportEngineState.sessionSettingsMode ===
101
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
102
- __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") === this.sessionEngines[id])) {
103
- viewportEngineState.reset();
104
- }
105
- }
106
- if (__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") === this.sessionEngines[id]) {
107
- const engines = Object.values(this.sessionEngines).filter((s) => s.id !== id);
108
- __classPrivateFieldSet(this, _CreationControlCenterSession_firstSessionEngine, engines.length === 0 ? undefined : engines[0], "f");
109
- if (__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) {
110
- if (!__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id])
111
- return;
112
- Object.values(__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines).forEach((s) => {
113
- if (s)
114
- s.isFirstSession = false;
115
- });
116
- __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id].isFirstSession = true;
117
- const promises = [];
118
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
119
- const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
120
- if (((_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _b === void 0 ? void 0 : _b.settingsAssigned.resolved) === false) {
121
- if (viewportEngineState &&
122
- viewportEngineState.sessionSettingsMode ===
123
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST) {
124
- promises.push(viewportEngineState.settingsAssigned);
125
- this.assignSettings(viewportEngineState.id, (_c = __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) === null || _c === void 0 ? void 0 : _c.id);
126
- }
127
- }
128
- }
129
- yield Promise.all(promises);
130
- if (this.updateSessions)
131
- this.updateSessions(this.sessionEngines);
132
- }
133
- }
134
- (_d = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _d === void 0 ? void 0 : _d.settingsRegistered.reset();
135
- this.sessionEngines[id] = undefined;
136
- delete this.sessionEngines[id];
137
- delete __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id];
138
- __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug("CreationControlCenter.closeSessionEngine: Session closed.");
139
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
140
- (_e = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _e === void 0 ? void 0 : _e.update("CreationControlCenter.closeSessionEngine");
141
- if (this.updateSessions)
142
- this.updateSessions(this.sessionEngines);
143
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CLOSED, {
144
- sessionId: id,
145
- });
146
- });
147
- }
148
- createSessionEngine(properties) {
149
- var _a, _b, _c, _d, _e, _f;
150
- return __awaiter(this, void 0, void 0, function* () {
151
- const eventId = __classPrivateFieldGet(this, _CreationControlCenterSession_uuidGenerator, "f").create();
152
- const sessionEngineId = properties.id || __classPrivateFieldGet(this, _CreationControlCenterSession_uuidGenerator, "f").create();
153
- properties.id = sessionEngineId;
154
- properties.loadOutputs =
155
- properties.allowOutputLoading === false
156
- ? false
157
- : properties.loadOutputs;
158
- try {
159
- const eventStart = {
160
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
161
- id: eventId,
162
- progress: 0,
163
- status: "Creating session",
164
- data: { sessionId: sessionEngineId },
165
- };
166
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, eventStart);
167
- // check if the given id is valid
168
- if (this.sessionEngines[sessionEngineId]) {
169
- const eventClose = {
170
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
171
- id: eventId,
172
- progress: 0.1,
173
- status: "Closing session with same id",
174
- data: { sessionId: sessionEngineId },
175
- };
176
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventClose);
177
- __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").warn(`CreationControlCenter.createSession: Session with this id (${sessionEngineId}) already exists. Closing initial instance.`);
178
- yield this.closeSessionEngine(sessionEngineId);
179
- }
180
- // create the actual session
181
- const sessionEngine = new viewer_session_engine_session_engine_1.SessionEngine({
182
- id: sessionEngineId,
183
- guid: properties.guid,
184
- ticket: properties.ticket,
185
- modelViewUrl: properties.modelViewUrl,
186
- excludeViewports: properties.excludeViewports,
187
- buildVersion: viewer_shared_build_data_1.build_data.build_version,
188
- buildDate: viewer_shared_build_data_1.build_data.build_date,
189
- jwtToken: properties.jwtToken,
190
- allowOutputLoading: properties.allowOutputLoading === undefined
191
- ? true
192
- : properties.allowOutputLoading,
193
- loadSdtf: properties.loadSdtf === undefined
194
- ? false
195
- : properties.loadSdtf,
196
- modelStateId: properties.modelStateId,
197
- throwOnCustomizationError: properties.throwOnCustomizationError,
198
- ignoreUnknownParams: properties.ignoreUnknownParams,
199
- });
200
- __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId] =
201
- new SessionGlobalAccessObject_1.SessionGlobalAccessObject(sessionEngine, properties);
202
- const eventInit = {
203
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
204
- id: eventId,
205
- progress: 0.25,
206
- status: "Initializing session.",
207
- data: { sessionId: sessionEngineId },
208
- };
209
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventInit);
210
- yield sessionEngine.init(properties.initialParameterValues);
211
- if (properties.loadOutputs !== false) {
212
- if (properties.waitForOutputs !== false) {
213
- yield sessionEngine.updateOutputs({
214
- id: eventId,
215
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
216
- progressRange: {
217
- min: 0.25,
218
- max: 0.9,
219
- },
220
- data: { sessionId: sessionEngineId },
221
- });
222
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _a === void 0 ? void 0 : _a.initialOutputsLoaded.resolve(true);
223
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_INITIAL_OUTPUTS_LOADED, { sessionId: sessionEngineId });
224
- }
225
- else {
226
- sessionEngine
227
- .updateOutputs({
228
- id: eventId,
229
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
230
- progressRange: {
231
- min: 0.25,
232
- max: 0.9,
233
- },
234
- data: { sessionId: sessionEngineId },
235
- })
236
- .then(() => {
237
- var _a, _b;
238
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _a === void 0 ? void 0 : _a.initialOutputsLoaded.resolve(true);
239
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION
240
- .SESSION_INITIAL_OUTPUTS_LOADED, { sessionId: sessionEngineId });
241
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
242
- (_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _b === void 0 ? void 0 : _b.update("CreationControlCenter.createSessionEngine.waitForOutputs=false");
243
- });
244
- }
245
- }
246
- // save the session
247
- this.sessionEngines[sessionEngineId] = sessionEngine;
248
- (_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _b === void 0 ? void 0 : _b.initialized.resolve(true);
249
- __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug(`CreationControlCenter.createSession: Session(${sessionEngine.id}) created.`);
250
- if (!__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) {
251
- if (__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngine.id]) {
252
- __classPrivateFieldSet(this, _CreationControlCenterSession_firstSessionEngine, sessionEngine, "f");
253
- Object.values(__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines).forEach((s) => {
254
- if (s)
255
- s.isFirstSession = false;
256
- });
257
- __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id].isFirstSession = true;
258
- }
259
- }
260
- const promises = [];
261
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
262
- const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
263
- if (((_c = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _c === void 0 ? void 0 : _c.settingsAssigned.resolved) === false) {
264
- if ((viewportEngine &&
265
- viewportEngine.sessionSettingsMode ===
266
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST) ||
267
- (viewportEngine &&
268
- viewportEngine.sessionSettingsMode ===
269
- viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
270
- viewportEngine.sessionSettingsId ===
271
- sessionEngineId)) {
272
- promises.push(viewportEngine.settingsAssigned);
273
- this.assignSettings(viewportEngine.id, sessionEngineId);
274
- }
275
- }
276
- }
277
- yield Promise.all(promises);
278
- (_d = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _d === void 0 ? void 0 : _d.settingsRegistered.resolve(true);
279
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
280
- (_e = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _e === void 0 ? void 0 : _e.update("CreationControlCenter.createSessionEngine");
281
- if (this.updateSessions)
282
- this.updateSessions(this.sessionEngines);
283
- const eventEnd = {
284
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
285
- id: eventId,
286
- progress: 1,
287
- status: "Session created",
288
- data: { sessionId: sessionEngineId },
289
- };
290
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, eventEnd);
291
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CREATED, {
292
- sessionId: sessionEngineId,
293
- });
294
- return sessionEngine;
295
- }
296
- catch (e) {
297
- // special behavior, if this was the only session, display the error on the logo screen
298
- if ((0, viewer_shared_services_1.isViewerError)(e)) {
299
- if ((this.sessionEngines[sessionEngineId] &&
300
- Object.values(this.sessionEngines).length === 1) ||
301
- (!this.sessionEngines[sessionEngineId] &&
302
- Object.values(this.sessionEngines).length === 0)) {
303
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
304
- (_f = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _f === void 0 ? void 0 : _f.displayErrorMessage(e.message);
305
- }
306
- }
307
- const eventCancel1 = {
308
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
309
- id: eventId,
310
- progress: 0.9,
311
- status: "Session created failed, closing session",
312
- data: { sessionId: sessionEngineId },
313
- };
314
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventCancel1);
315
- yield this.closeSessionEngine(sessionEngineId);
316
- const eventCancel2 = {
317
- type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
318
- id: eventId,
319
- progress: 1,
320
- status: "Session created failed",
321
- data: { sessionId: sessionEngineId },
322
- };
323
- __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel2);
324
- throw e;
325
- }
326
- });
327
- }
328
- resetSettings(sessionId, sections) {
329
- var _a;
330
- sections = sections || {};
331
- this.sessionEngines[sessionId].resetSettings(sections);
332
- const promises = [];
333
- if (sections.session &&
334
- sections.session.parameter &&
335
- sections.session.parameter.value)
336
- promises.push(this.sessionEngines[sessionId].customize());
337
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
338
- const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
339
- if ((viewportEngine &&
340
- viewportEngine.sessionSettingsMode ===
341
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
342
- __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
343
- sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
344
- (viewportEngine &&
345
- viewportEngine.sessionSettingsMode ===
346
- viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
347
- sessionId === viewportEngine.sessionSettingsId)) {
348
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.reset();
349
- promises.push(new Promise((resolve) => {
350
- var _a;
351
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.then(() => {
352
- resolve();
353
- });
354
- }));
355
- viewportEngine.applySettings(sections.viewport);
356
- }
357
- }
358
- return new Promise((resolve) => Promise.all(promises).then(() => resolve()));
359
- }
360
- saveSettings(sessionId, viewportId) {
361
- return __awaiter(this, void 0, void 0, function* () {
362
- const session = this.sessionEngines[sessionId];
363
- yield session.saveUiProperties(false);
364
- const settingsObject = this.createSettingsObject(sessionId, viewportId);
365
- const response = yield session.saveSettings(settingsObject);
366
- if (response) {
367
- __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug(`Session(${sessionId}).saveSettings: Saved settings.`);
368
- }
369
- else {
370
- throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session(${sessionId}).saveSettings: Could not save settings.`);
371
- }
372
- return response;
373
- });
374
- }
375
- // #endregion Public Methods (5)
376
- // #region Private Methods (2)
377
- assignSettings(viewportEngineId, sessionId, updateViewport = false) {
378
- var _a;
379
- return __awaiter(this, void 0, void 0, function* () {
380
- const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportEngineId];
381
- if (!viewportEngine)
382
- return;
383
- if (((_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionId]) === null || _a === void 0 ? void 0 : _a.initialized.resolved) === true) {
384
- // immediate
385
- viewportEngine.assignSettingsEngine(this.sessionEngines[sessionId].settingsEngine);
386
- yield viewportEngine.applySettings(undefined, undefined, updateViewport);
387
- }
388
- else {
389
- yield new Promise((resolve) => {
390
- var _a;
391
- (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionId]) === null || _a === void 0 ? void 0 : _a.initialized.then(() => __awaiter(this, void 0, void 0, function* () {
392
- viewportEngine.assignSettingsEngine(this.sessionEngines[sessionId].settingsEngine);
393
- yield viewportEngine.applySettings(undefined, undefined, updateViewport);
394
- resolve();
395
- }));
396
- });
397
- }
398
- });
399
- }
400
- createSettingsObject(sessionId, viewportId) {
401
- const session = this.sessionEngines[sessionId];
402
- session.settingsEngine.settings.build_version =
403
- viewer_shared_build_data_1.build_data.build_version;
404
- session.settingsEngine.settings.build_date = viewer_shared_build_data_1.build_data.build_date;
405
- session.settingsEngine.settings.settings_version = viewer_settings_1.latestVersion;
406
- let viewportEngine;
407
- if (viewportId && __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportId]) {
408
- viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportId];
409
- }
410
- else {
411
- for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
412
- const viewportEngineToCheck = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
413
- if ((viewportEngineToCheck &&
414
- viewportEngineToCheck.sessionSettingsMode ===
415
- viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
416
- __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
417
- sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
418
- (viewportEngineToCheck &&
419
- viewportEngineToCheck.sessionSettingsMode ===
420
- viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
421
- sessionId === viewportEngineToCheck.sessionSettingsId)) {
422
- viewportEngine = viewportEngineToCheck;
423
- continue;
424
- }
425
- }
426
- }
427
- if (viewportEngine)
428
- viewportEngine.saveSettings();
429
- return session.settingsEngine.settings;
430
- }
431
- }
432
- exports.CreationControlCenterSession = CreationControlCenterSession;
433
- _CreationControlCenterSession_eventEngine = new WeakMap(), _CreationControlCenterSession_logger = new WeakMap(), _CreationControlCenterSession_stateEngine = new WeakMap(), _CreationControlCenterSession_uuidGenerator = new WeakMap(), _CreationControlCenterSession_firstSessionEngine = new WeakMap();
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
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
+ if (kind === "m") throw new TypeError("Private method is not writable");
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
20
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
+ };
22
+ var _CreationControlCenterSession_eventEngine, _CreationControlCenterSession_logger, _CreationControlCenterSession_stateEngine, _CreationControlCenterSession_uuidGenerator, _CreationControlCenterSession_firstSessionEngine;
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.CreationControlCenterSession = void 0;
25
+ const viewer_session_engine_session_engine_1 = require("@shapediver/viewer.session-engine.session-engine");
26
+ const viewer_settings_1 = require("@shapediver/viewer.settings");
27
+ const viewer_shared_build_data_1 = require("@shapediver/viewer.shared.build-data");
28
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
29
+ const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
30
+ const SessionGlobalAccessObject_1 = require("./SessionGlobalAccessObject");
31
+ class CreationControlCenterSession {
32
+ constructor() {
33
+ // #region Properties (8)
34
+ _CreationControlCenterSession_eventEngine.set(this, viewer_shared_services_1.EventEngine.instance);
35
+ _CreationControlCenterSession_logger.set(this, viewer_shared_services_1.Logger.instance);
36
+ _CreationControlCenterSession_stateEngine.set(this, viewer_shared_services_1.StateEngine.instance);
37
+ _CreationControlCenterSession_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
38
+ _CreationControlCenterSession_firstSessionEngine.set(this, void 0);
39
+ this.sessionEngines = {};
40
+ // #endregion Private Methods (2)
41
+ }
42
+ // #endregion Properties (8)
43
+ // #region Public Static Getters And Setters (1)
44
+ static get instance() {
45
+ return this._instance || (this._instance = new this());
46
+ }
47
+ // #endregion Public Static Getters And Setters (1)
48
+ // #region Public Methods (5)
49
+ applySettings(sessionId, response, sections) {
50
+ sections = sections || {};
51
+ this.sessionEngines[sessionId].applySettings(response, sections);
52
+ const promises = [];
53
+ if (sections.session &&
54
+ sections.session.parameter &&
55
+ sections.session.parameter.value)
56
+ promises.push(this.sessionEngines[sessionId].customize());
57
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
58
+ const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
59
+ if ((viewportEngineState &&
60
+ viewportEngineState.sessionSettingsMode ===
61
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
62
+ __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
63
+ sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
64
+ (viewportEngineState &&
65
+ viewportEngineState.sessionSettingsMode ===
66
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
67
+ sessionId === viewportEngineState.sessionSettingsId)) {
68
+ viewportEngineState.settingsAssigned.reset();
69
+ promises.push(new Promise((resolve) => {
70
+ var _a;
71
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.then(() => {
72
+ resolve();
73
+ });
74
+ }));
75
+ viewportEngineState.applySettings(sections.viewport);
76
+ }
77
+ }
78
+ return new Promise((resolve) => Promise.all(promises).then(() => resolve()));
79
+ }
80
+ closeSessionEngine(id) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ var _a, _b, _c, _d, _e;
83
+ if (!this.sessionEngines[id])
84
+ return;
85
+ __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debugLow(`CreationControlCenter.closeSession: Closing session ${id}.`);
86
+ if (((_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _a === void 0 ? void 0 : _a.initialized.resolved) === false)
87
+ yield new Promise((resolve) => {
88
+ var _a;
89
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _a === void 0 ? void 0 : _a.initialized.then(() => resolve());
90
+ });
91
+ yield this.sessionEngines[id].close();
92
+ // remove from rendering engines (also directly assigned)
93
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
94
+ const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
95
+ if ((viewportEngineState &&
96
+ viewportEngineState.sessionSettingsMode ===
97
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
98
+ viewportEngineState.sessionSettingsId === id) ||
99
+ (viewportEngineState &&
100
+ viewportEngineState.sessionSettingsMode ===
101
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
102
+ __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") === this.sessionEngines[id])) {
103
+ viewportEngineState.reset();
104
+ }
105
+ }
106
+ if (__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") === this.sessionEngines[id]) {
107
+ const engines = Object.values(this.sessionEngines).filter((s) => s.id !== id);
108
+ __classPrivateFieldSet(this, _CreationControlCenterSession_firstSessionEngine, engines.length === 0 ? undefined : engines[0], "f");
109
+ if (__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) {
110
+ if (!__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id])
111
+ return;
112
+ Object.values(__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines).forEach((s) => {
113
+ if (s)
114
+ s.isFirstSession = false;
115
+ });
116
+ __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id].isFirstSession = true;
117
+ const promises = [];
118
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
119
+ const viewportEngineState = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
120
+ if (((_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _b === void 0 ? void 0 : _b.settingsAssigned.resolved) === false) {
121
+ if (viewportEngineState &&
122
+ viewportEngineState.sessionSettingsMode ===
123
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST) {
124
+ promises.push(viewportEngineState.settingsAssigned);
125
+ this.assignSettings(viewportEngineState.id, (_c = __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) === null || _c === void 0 ? void 0 : _c.id);
126
+ }
127
+ }
128
+ }
129
+ yield Promise.all(promises);
130
+ if (this.updateSessions)
131
+ this.updateSessions(this.sessionEngines);
132
+ }
133
+ }
134
+ (_d = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id]) === null || _d === void 0 ? void 0 : _d.settingsRegistered.reset();
135
+ this.sessionEngines[id] = undefined;
136
+ delete this.sessionEngines[id];
137
+ delete __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[id];
138
+ __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug("CreationControlCenter.closeSessionEngine: Session closed.");
139
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
140
+ (_e = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _e === void 0 ? void 0 : _e.update("CreationControlCenter.closeSessionEngine");
141
+ if (this.updateSessions)
142
+ this.updateSessions(this.sessionEngines);
143
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CLOSED, {
144
+ sessionId: id,
145
+ });
146
+ });
147
+ }
148
+ createSessionEngine(properties) {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ var _a, _b, _c, _d, _e, _f;
151
+ const eventId = __classPrivateFieldGet(this, _CreationControlCenterSession_uuidGenerator, "f").create();
152
+ const sessionEngineId = properties.id || __classPrivateFieldGet(this, _CreationControlCenterSession_uuidGenerator, "f").create();
153
+ properties.id = sessionEngineId;
154
+ properties.loadOutputs =
155
+ properties.allowOutputLoading === false
156
+ ? false
157
+ : properties.loadOutputs;
158
+ try {
159
+ const eventStart = {
160
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
161
+ id: eventId,
162
+ progress: 0,
163
+ status: "Creating session",
164
+ data: { sessionId: sessionEngineId },
165
+ };
166
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, eventStart);
167
+ // check if the given id is valid
168
+ if (this.sessionEngines[sessionEngineId]) {
169
+ const eventClose = {
170
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
171
+ id: eventId,
172
+ progress: 0.1,
173
+ status: "Closing session with same id",
174
+ data: { sessionId: sessionEngineId },
175
+ };
176
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventClose);
177
+ __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").warn(`CreationControlCenter.createSession: Session with this id (${sessionEngineId}) already exists. Closing initial instance.`);
178
+ yield this.closeSessionEngine(sessionEngineId);
179
+ }
180
+ // create the actual session
181
+ const sessionEngine = new viewer_session_engine_session_engine_1.SessionEngine({
182
+ id: sessionEngineId,
183
+ guid: properties.guid,
184
+ ticket: properties.ticket,
185
+ modelViewUrl: properties.modelViewUrl,
186
+ excludeViewports: properties.excludeViewports,
187
+ buildVersion: viewer_shared_build_data_1.build_data.build_version,
188
+ buildDate: viewer_shared_build_data_1.build_data.build_date,
189
+ jwtToken: properties.jwtToken,
190
+ allowOutputLoading: properties.allowOutputLoading === undefined
191
+ ? true
192
+ : properties.allowOutputLoading,
193
+ loadSdtf: properties.loadSdtf === undefined
194
+ ? false
195
+ : properties.loadSdtf,
196
+ modelStateId: properties.modelStateId,
197
+ throwOnCustomizationError: properties.throwOnCustomizationError,
198
+ ignoreUnknownParams: properties.ignoreUnknownParams,
199
+ });
200
+ __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId] =
201
+ new SessionGlobalAccessObject_1.SessionGlobalAccessObject(sessionEngine, properties);
202
+ const eventInit = {
203
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
204
+ id: eventId,
205
+ progress: 0.25,
206
+ status: "Initializing session.",
207
+ data: { sessionId: sessionEngineId },
208
+ };
209
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventInit);
210
+ yield sessionEngine.init(properties.initialParameterValues);
211
+ if (properties.loadOutputs !== false) {
212
+ if (properties.waitForOutputs !== false) {
213
+ yield sessionEngine.updateOutputs({
214
+ id: eventId,
215
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
216
+ progressRange: {
217
+ min: 0.25,
218
+ max: 0.9,
219
+ },
220
+ data: { sessionId: sessionEngineId },
221
+ });
222
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _a === void 0 ? void 0 : _a.initialOutputsLoaded.resolve(true);
223
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_INITIAL_OUTPUTS_LOADED, { sessionId: sessionEngineId });
224
+ }
225
+ else {
226
+ sessionEngine
227
+ .updateOutputs({
228
+ id: eventId,
229
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
230
+ progressRange: {
231
+ min: 0.25,
232
+ max: 0.9,
233
+ },
234
+ data: { sessionId: sessionEngineId },
235
+ })
236
+ .then(() => {
237
+ var _a, _b;
238
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _a === void 0 ? void 0 : _a.initialOutputsLoaded.resolve(true);
239
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION
240
+ .SESSION_INITIAL_OUTPUTS_LOADED, { sessionId: sessionEngineId });
241
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
242
+ (_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _b === void 0 ? void 0 : _b.update("CreationControlCenter.createSessionEngine.waitForOutputs=false");
243
+ });
244
+ }
245
+ }
246
+ // save the session
247
+ this.sessionEngines[sessionEngineId] = sessionEngine;
248
+ (_b = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _b === void 0 ? void 0 : _b.initialized.resolve(true);
249
+ __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug(`CreationControlCenter.createSession: Session(${sessionEngine.id}) created.`);
250
+ if (!__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f")) {
251
+ if (__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngine.id]) {
252
+ __classPrivateFieldSet(this, _CreationControlCenterSession_firstSessionEngine, sessionEngine, "f");
253
+ Object.values(__classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines).forEach((s) => {
254
+ if (s)
255
+ s.isFirstSession = false;
256
+ });
257
+ __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[__classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id].isFirstSession = true;
258
+ }
259
+ }
260
+ const promises = [];
261
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
262
+ const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
263
+ if (((_c = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _c === void 0 ? void 0 : _c.settingsAssigned.resolved) === false) {
264
+ if ((viewportEngine &&
265
+ viewportEngine.sessionSettingsMode ===
266
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST) ||
267
+ (viewportEngine &&
268
+ viewportEngine.sessionSettingsMode ===
269
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
270
+ viewportEngine.sessionSettingsId ===
271
+ sessionEngineId)) {
272
+ promises.push(viewportEngine.settingsAssigned);
273
+ this.assignSettings(viewportEngine.id, sessionEngineId);
274
+ }
275
+ }
276
+ }
277
+ yield Promise.all(promises);
278
+ (_d = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionEngineId]) === null || _d === void 0 ? void 0 : _d.settingsRegistered.resolve(true);
279
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
280
+ (_e = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _e === void 0 ? void 0 : _e.update("CreationControlCenter.createSessionEngine");
281
+ if (this.updateSessions)
282
+ this.updateSessions(this.sessionEngines);
283
+ const eventEnd = {
284
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
285
+ id: eventId,
286
+ progress: 1,
287
+ status: "Session created",
288
+ data: { sessionId: sessionEngineId },
289
+ };
290
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, eventEnd);
291
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CREATED, {
292
+ sessionId: sessionEngineId,
293
+ });
294
+ return sessionEngine;
295
+ }
296
+ catch (e) {
297
+ // special behavior, if this was the only session, display the error on the logo screen
298
+ if ((0, viewer_shared_services_1.isViewerError)(e)) {
299
+ if ((this.sessionEngines[sessionEngineId] &&
300
+ Object.values(this.sessionEngines).length === 1) ||
301
+ (!this.sessionEngines[sessionEngineId] &&
302
+ Object.values(this.sessionEngines).length === 0)) {
303
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines)
304
+ (_f = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _f === void 0 ? void 0 : _f.displayErrorMessage(e.message);
305
+ }
306
+ }
307
+ const eventCancel1 = {
308
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
309
+ id: eventId,
310
+ progress: 0.9,
311
+ status: "Session created failed, closing session",
312
+ data: { sessionId: sessionEngineId },
313
+ };
314
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventCancel1);
315
+ yield this.closeSessionEngine(sessionEngineId);
316
+ const eventCancel2 = {
317
+ type: viewer_shared_types_1.TASK_TYPE.SESSION_CREATION,
318
+ id: eventId,
319
+ progress: 1,
320
+ status: "Session created failed",
321
+ data: { sessionId: sessionEngineId },
322
+ };
323
+ __classPrivateFieldGet(this, _CreationControlCenterSession_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel2);
324
+ throw e;
325
+ }
326
+ });
327
+ }
328
+ resetSettings(sessionId, sections) {
329
+ var _a;
330
+ sections = sections || {};
331
+ this.sessionEngines[sessionId].resetSettings(sections);
332
+ const promises = [];
333
+ if (sections.session &&
334
+ sections.session.parameter &&
335
+ sections.session.parameter.value)
336
+ promises.push(this.sessionEngines[sessionId].customize());
337
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
338
+ const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
339
+ if ((viewportEngine &&
340
+ viewportEngine.sessionSettingsMode ===
341
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
342
+ __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
343
+ sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
344
+ (viewportEngine &&
345
+ viewportEngine.sessionSettingsMode ===
346
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
347
+ sessionId === viewportEngine.sessionSettingsId)) {
348
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.reset();
349
+ promises.push(new Promise((resolve) => {
350
+ var _a;
351
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r]) === null || _a === void 0 ? void 0 : _a.settingsAssigned.then(() => {
352
+ resolve();
353
+ });
354
+ }));
355
+ viewportEngine.applySettings(sections.viewport);
356
+ }
357
+ }
358
+ return new Promise((resolve) => Promise.all(promises).then(() => resolve()));
359
+ }
360
+ saveSettings(sessionId, viewportId) {
361
+ return __awaiter(this, void 0, void 0, function* () {
362
+ const session = this.sessionEngines[sessionId];
363
+ yield session.saveUiProperties(false);
364
+ const settingsObject = this.createSettingsObject(sessionId, viewportId);
365
+ const response = yield session.saveSettings(settingsObject);
366
+ if (response) {
367
+ __classPrivateFieldGet(this, _CreationControlCenterSession_logger, "f").debug(`Session(${sessionId}).saveSettings: Saved settings.`);
368
+ }
369
+ else {
370
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session(${sessionId}).saveSettings: Could not save settings.`);
371
+ }
372
+ return response;
373
+ });
374
+ }
375
+ // #endregion Public Methods (5)
376
+ // #region Private Methods (2)
377
+ assignSettings(viewportEngineId_1, sessionId_1) {
378
+ return __awaiter(this, arguments, void 0, function* (viewportEngineId, sessionId, updateViewport = false) {
379
+ var _a;
380
+ const viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportEngineId];
381
+ if (!viewportEngine)
382
+ return;
383
+ if (((_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionId]) === null || _a === void 0 ? void 0 : _a.initialized.resolved) === true) {
384
+ // immediate
385
+ viewportEngine.assignSettingsEngine(this.sessionEngines[sessionId].settingsEngine);
386
+ yield viewportEngine.applySettings(undefined, undefined, updateViewport);
387
+ }
388
+ else {
389
+ yield new Promise((resolve) => {
390
+ var _a;
391
+ (_a = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").sessionEngines[sessionId]) === null || _a === void 0 ? void 0 : _a.initialized.then(() => __awaiter(this, void 0, void 0, function* () {
392
+ viewportEngine.assignSettingsEngine(this.sessionEngines[sessionId].settingsEngine);
393
+ yield viewportEngine.applySettings(undefined, undefined, updateViewport);
394
+ resolve();
395
+ }));
396
+ });
397
+ }
398
+ });
399
+ }
400
+ createSettingsObject(sessionId, viewportId) {
401
+ const session = this.sessionEngines[sessionId];
402
+ session.settingsEngine.settings.build_version =
403
+ viewer_shared_build_data_1.build_data.build_version;
404
+ session.settingsEngine.settings.build_date = viewer_shared_build_data_1.build_data.build_date;
405
+ session.settingsEngine.settings.settings_version = viewer_settings_1.latestVersion;
406
+ let viewportEngine;
407
+ if (viewportId && __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportId]) {
408
+ viewportEngine = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[viewportId];
409
+ }
410
+ else {
411
+ for (const r in __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines) {
412
+ const viewportEngineToCheck = __classPrivateFieldGet(this, _CreationControlCenterSession_stateEngine, "f").viewportEngines[r];
413
+ if ((viewportEngineToCheck &&
414
+ viewportEngineToCheck.sessionSettingsMode ===
415
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.FIRST &&
416
+ __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f") &&
417
+ sessionId === __classPrivateFieldGet(this, _CreationControlCenterSession_firstSessionEngine, "f").id) ||
418
+ (viewportEngineToCheck &&
419
+ viewportEngineToCheck.sessionSettingsMode ===
420
+ viewer_shared_services_1.SESSION_SETTINGS_MODE.MANUAL &&
421
+ sessionId === viewportEngineToCheck.sessionSettingsId)) {
422
+ viewportEngine = viewportEngineToCheck;
423
+ continue;
424
+ }
425
+ }
426
+ }
427
+ if (viewportEngine)
428
+ viewportEngine.saveSettings();
429
+ return session.settingsEngine.settings;
430
+ }
431
+ }
432
+ exports.CreationControlCenterSession = CreationControlCenterSession;
433
+ _CreationControlCenterSession_eventEngine = new WeakMap(), _CreationControlCenterSession_logger = new WeakMap(), _CreationControlCenterSession_stateEngine = new WeakMap(), _CreationControlCenterSession_uuidGenerator = new WeakMap(), _CreationControlCenterSession_firstSessionEngine = new WeakMap();
434
434
  //# sourceMappingURL=CreationControlCenterSession.js.map