@shapediver/viewer.session-engine.session-engine 3.14.7 → 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,456 @@
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.SettingsManager = void 0;
13
+ const sdk_geometry_api_sdk_v2_1 = require("@shapediver/sdk.geometry-api-sdk-v2");
14
+ const viewer_settings_1 = require("@shapediver/viewer.settings");
15
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
16
+ const FileParameter_1 = require("../dto/FileParameter");
17
+ class SettingsManager {
18
+ constructor(sessionEngineCore) {
19
+ this._logger = viewer_shared_services_1.Logger.instance;
20
+ this._settingsEngine = new viewer_shared_services_1.SettingsEngine();
21
+ this._viewerSettingsVersion = viewer_settings_1.latestVersion;
22
+ this._viewerSettingsVersionBackend = viewer_settings_1.latestVersion;
23
+ this._sessionEngineCore = sessionEngineCore;
24
+ this._utilsManager = this._sessionEngineCore.utilsManager;
25
+ }
26
+ get hasStoredSettings() {
27
+ return this._settingsEngine.hasStoredSettings;
28
+ }
29
+ get settingsEngine() {
30
+ return this._settingsEngine;
31
+ }
32
+ get viewerSettings() {
33
+ return this._viewerSettings;
34
+ }
35
+ set viewerSettings(value) {
36
+ this._viewerSettings = value;
37
+ }
38
+ set viewerSettingsVersionBackend(value) {
39
+ this._viewerSettingsVersionBackend = value;
40
+ }
41
+ _saveSessionSettings() {
42
+ const parameters = this._sessionEngineCore.parameters;
43
+ const exports = this._sessionEngineCore.exports;
44
+ const sessionProperties = {};
45
+ for (const p in parameters) {
46
+ sessionProperties[p] = {
47
+ order: parameters[p].order || 0,
48
+ displayname: parameters[p].displayname || "",
49
+ hidden: parameters[p].hidden,
50
+ };
51
+ }
52
+ for (const e in exports) {
53
+ sessionProperties[e] = {
54
+ order: exports[e].order || 0,
55
+ displayname: exports[e].displayname || "",
56
+ hidden: exports[e].hidden,
57
+ };
58
+ }
59
+ this._settingsEngine.session = sessionProperties;
60
+ }
61
+ applySettings(response, sections) {
62
+ sections = sections || {};
63
+ if (sections.session === undefined) {
64
+ sections.session = {
65
+ parameter: { displayname: false, order: false, hidden: false },
66
+ export: { displayname: false, order: false, hidden: false },
67
+ };
68
+ }
69
+ if (sections.session.parameter === undefined)
70
+ sections.session.parameter = {
71
+ displayname: false,
72
+ order: false,
73
+ hidden: false,
74
+ value: false,
75
+ };
76
+ if (sections.session.export === undefined)
77
+ sections.session.export = {
78
+ displayname: false,
79
+ order: false,
80
+ hidden: false,
81
+ };
82
+ if (sections.viewport === undefined)
83
+ sections.viewport = {
84
+ ar: false,
85
+ scene: false,
86
+ camera: false,
87
+ light: false,
88
+ environment: false,
89
+ general: false,
90
+ postprocessing: false,
91
+ };
92
+ let config;
93
+ if (response.viewer !== undefined) {
94
+ config = response.viewer.config;
95
+ }
96
+ else {
97
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError("Session.applySettings: No config object available.");
98
+ }
99
+ try {
100
+ (0, viewer_settings_1.validate)(config);
101
+ }
102
+ catch (e) {
103
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError("Session.applySettings: Was not able to validate config object.");
104
+ }
105
+ const settings = (0, viewer_settings_1.convert)(config, viewer_settings_1.latestVersion);
106
+ const exportMappingUid = {};
107
+ if (sections.session.export.displayname ||
108
+ sections.session.export.order ||
109
+ sections.session.export.hidden)
110
+ if (response.exports)
111
+ for (const exportId in response.exports)
112
+ if (response.exports[exportId].uid !== undefined)
113
+ exportMappingUid[response.exports[exportId].uid] =
114
+ exportId;
115
+ const currentSettings = this._settingsEngine.settings;
116
+ // apply parameter settings
117
+ if (sections.session.parameter.displayname ||
118
+ sections.session.parameter.order ||
119
+ sections.session.parameter.hidden ||
120
+ sections.session.parameter.value) {
121
+ for (const p in this._sessionEngineCore.parameters) {
122
+ if (settings.session[p]) {
123
+ if (sections.session.parameter.displayname)
124
+ this._sessionEngineCore.parameters[p].displayname =
125
+ settings.session[p].displayname;
126
+ if (sections.session.parameter.order)
127
+ this._sessionEngineCore.parameters[p].order =
128
+ settings.session[p].order;
129
+ if (sections.session.parameter.hidden)
130
+ this._sessionEngineCore.parameters[p].hidden =
131
+ settings.session[p].hidden || false;
132
+ }
133
+ if (response.parameters &&
134
+ response.parameters[p] &&
135
+ !(this._sessionEngineCore.parameters[p] instanceof
136
+ FileParameter_1.FileParameter ||
137
+ this._sessionEngineCore.parameters[p].type.startsWith("s"))) {
138
+ if (sections.session.parameter.value)
139
+ this._sessionEngineCore.parameters[p].value =
140
+ response.parameters[p].defval !== undefined
141
+ ? response.parameters[p].defval
142
+ : this._sessionEngineCore.parameters[p].value;
143
+ }
144
+ }
145
+ }
146
+ // apply export settings
147
+ if (sections.session.export.displayname ||
148
+ sections.session.export.order ||
149
+ sections.session.export.hidden) {
150
+ for (const p in this._sessionEngineCore.exports) {
151
+ let idForSettings = "";
152
+ if (settings.session[p]) {
153
+ idForSettings = p;
154
+ }
155
+ else {
156
+ const uid = this._sessionEngineCore.exports[p].uid;
157
+ if (!uid)
158
+ continue;
159
+ if (!exportMappingUid[uid])
160
+ continue;
161
+ idForSettings = exportMappingUid[uid];
162
+ }
163
+ if (settings.session[idForSettings]) {
164
+ if (sections.session.export.displayname)
165
+ this._sessionEngineCore.exports[p].displayname =
166
+ settings.session[idForSettings].displayname;
167
+ if (sections.session.export.order)
168
+ this._sessionEngineCore.exports[p].order =
169
+ settings.session[idForSettings].order;
170
+ if (sections.session.export.hidden)
171
+ this._sessionEngineCore.exports[p].hidden =
172
+ settings.session[idForSettings].hidden || false;
173
+ }
174
+ }
175
+ }
176
+ // apply ar settings
177
+ if (sections.viewport.ar) {
178
+ currentSettings.ar = settings.ar;
179
+ currentSettings.general.transformation =
180
+ settings.general.transformation;
181
+ }
182
+ // apply camera settings
183
+ if (sections.viewport.camera)
184
+ currentSettings.camera = settings.camera;
185
+ // apply light settings
186
+ if (sections.viewport.light)
187
+ currentSettings.light = settings.light;
188
+ // apply scene settings
189
+ if (sections.viewport.scene) {
190
+ currentSettings.environmentGeometry.gridColor =
191
+ settings.environmentGeometry.gridColor;
192
+ currentSettings.environmentGeometry.gridVisibility =
193
+ settings.environmentGeometry.gridVisibility;
194
+ currentSettings.environmentGeometry.groundPlaneColor =
195
+ settings.environmentGeometry.groundPlaneColor;
196
+ currentSettings.environmentGeometry.groundPlaneVisibility =
197
+ settings.environmentGeometry.groundPlaneVisibility;
198
+ currentSettings.environmentGeometry.groundPlaneShadowColor =
199
+ settings.environmentGeometry.groundPlaneShadowColor;
200
+ currentSettings.environmentGeometry.groundPlaneShadowVisibility =
201
+ settings.environmentGeometry.groundPlaneShadowVisibility;
202
+ currentSettings.environmentGeometry.contactShadowVisibility =
203
+ settings.environmentGeometry.contactShadowVisibility;
204
+ currentSettings.environmentGeometry.contactShadowHeight =
205
+ settings.environmentGeometry.contactShadowHeight;
206
+ currentSettings.environmentGeometry.contactShadowBlur =
207
+ settings.environmentGeometry.contactShadowBlur;
208
+ currentSettings.environmentGeometry.contactShadowOpacity =
209
+ settings.environmentGeometry.contactShadowOpacity;
210
+ currentSettings.environmentGeometry.contactShadowDarkness =
211
+ settings.environmentGeometry.contactShadowDarkness;
212
+ currentSettings.rendering.shadows = settings.rendering.shadows;
213
+ currentSettings.rendering.softShadows =
214
+ settings.rendering.softShadows;
215
+ currentSettings.rendering.automaticColorAdjustment =
216
+ settings.rendering.automaticColorAdjustment;
217
+ currentSettings.rendering.textureEncoding =
218
+ settings.rendering.textureEncoding;
219
+ currentSettings.rendering.outputEncoding =
220
+ settings.rendering.outputEncoding;
221
+ currentSettings.rendering.physicallyCorrectLights =
222
+ settings.rendering.physicallyCorrectLights;
223
+ currentSettings.rendering.toneMapping =
224
+ settings.rendering.toneMapping;
225
+ currentSettings.rendering.toneMappingExposure =
226
+ settings.rendering.toneMappingExposure;
227
+ }
228
+ if (sections.viewport.general) {
229
+ currentSettings.configuration = settings.configuration;
230
+ currentSettings.general.pointSize = settings.general.pointSize;
231
+ currentSettings.material.defaultMaterialColor =
232
+ settings.material.defaultMaterialColor;
233
+ currentSettings.material.materialOverrideType =
234
+ settings.material.materialOverrideType;
235
+ }
236
+ // apply postprocessing settings
237
+ if (sections.viewport.postprocessing)
238
+ currentSettings.postprocessing = settings.postprocessing;
239
+ // apply environment settings
240
+ if (sections.viewport.environment) {
241
+ currentSettings.environment.clearAlpha =
242
+ settings.environment.clearAlpha;
243
+ currentSettings.environment.clearColor =
244
+ settings.environment.clearColor;
245
+ currentSettings.environment.map = settings.environment.map;
246
+ currentSettings.environment.mapAsBackground =
247
+ settings.environment.mapAsBackground;
248
+ currentSettings.environment.rotation =
249
+ settings.environment.rotation;
250
+ currentSettings.environment.blurriness =
251
+ settings.environment.blurriness;
252
+ currentSettings.environment.intensity =
253
+ settings.environment.intensity;
254
+ }
255
+ }
256
+ resetSettings(sections) {
257
+ if (!this._sessionEngineCore.responseDto)
258
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError("Session.resetSettings: responseDto not available.");
259
+ sections = sections || {};
260
+ if (sections.session === undefined) {
261
+ sections.session = {
262
+ parameter: { displayname: true, order: true, hidden: true },
263
+ export: { displayname: true, order: true, hidden: true },
264
+ };
265
+ }
266
+ if (sections.session.parameter === undefined)
267
+ sections.session.parameter = {
268
+ displayname: true,
269
+ order: true,
270
+ hidden: true,
271
+ value: true,
272
+ };
273
+ if (sections.session.export === undefined)
274
+ sections.session.export = {
275
+ displayname: true,
276
+ order: true,
277
+ hidden: true,
278
+ };
279
+ if (sections.viewport === undefined)
280
+ sections.viewport = {
281
+ ar: true,
282
+ scene: true,
283
+ camera: true,
284
+ light: true,
285
+ environment: true,
286
+ general: true,
287
+ postprocessing: true,
288
+ };
289
+ return this.applySettings(this._sessionEngineCore.responseDto, sections);
290
+ }
291
+ saveDefaultParameterValues() {
292
+ return __awaiter(this, void 0, void 0, function* () {
293
+ this._logger.debugLow(`Session(${this._sessionEngineCore.id}).saveDefaultParameters: Saving default parameters.`);
294
+ const response = yield this.saveDefaultParameters();
295
+ if (response) {
296
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).saveDefaultParameters: Saved default parameters.`);
297
+ }
298
+ else {
299
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session(${this._sessionEngineCore.id}).saveDefaultParameters: Could not save default parameters.`);
300
+ }
301
+ return response;
302
+ });
303
+ }
304
+ /**
305
+ * Save the default parameter values
306
+ *
307
+ * @param retry
308
+ * @returns
309
+ */
310
+ saveDefaultParameters(retry = false) {
311
+ return __awaiter(this, void 0, void 0, function* () {
312
+ this._utilsManager.checkAvailability("defaultparam", true);
313
+ try {
314
+ yield new sdk_geometry_api_sdk_v2_1.ModelApi(this._sessionEngineCore.sdkConfig).updateParameterDefaultValues(this._sessionEngineCore.modelId, this._sessionEngineCore.parameterValues);
315
+ return true;
316
+ }
317
+ catch (e) {
318
+ yield this._utilsManager.handleError(e, retry);
319
+ return yield this.saveDefaultParameters(true);
320
+ }
321
+ });
322
+ }
323
+ /**
324
+ * Save the parameter properties for displayname, order, tooltip and hidden
325
+ *
326
+ * @param parameters
327
+ * @param retry
328
+ * @returns
329
+ */
330
+ saveParameterProperties(parameters, retry = false) {
331
+ return __awaiter(this, void 0, void 0, function* () {
332
+ this._utilsManager.checkAvailability("parameter-definition", true);
333
+ try {
334
+ yield new sdk_geometry_api_sdk_v2_1.ModelApi(this._sessionEngineCore.sdkConfig).updateParameterDefinitions(this._sessionEngineCore.modelId, parameters);
335
+ return true;
336
+ }
337
+ catch (e) {
338
+ yield this._utilsManager.handleError(e, retry);
339
+ return yield this.saveParameterProperties(parameters, true);
340
+ }
341
+ });
342
+ }
343
+ /**
344
+ * Save the viewer settings
345
+ *
346
+ * @param json
347
+ * @param retry
348
+ * @returns
349
+ */
350
+ saveSettings(json, retry = false) {
351
+ return __awaiter(this, void 0, void 0, function* () {
352
+ this._utilsManager.checkAvailability("configure", true);
353
+ try {
354
+ (0, viewer_settings_1.validate)(json, this._viewerSettingsVersion);
355
+ // if viewer settings version is higher than backend settings version
356
+ // convert to backend settings version
357
+ if (+this._viewerSettingsVersion >
358
+ +this._viewerSettingsVersionBackend)
359
+ json = (0, viewer_settings_1.convert)(json, this._viewerSettingsVersionBackend);
360
+ }
361
+ catch (e) {
362
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError("Session.saveSettings: Settings could not be validated. " +
363
+ e.message, e);
364
+ }
365
+ try {
366
+ yield new sdk_geometry_api_sdk_v2_1.ModelApi(this._sessionEngineCore.sdkConfig).updateModelConfig(this._sessionEngineCore.modelId, json);
367
+ return true;
368
+ }
369
+ catch (e) {
370
+ yield this._utilsManager.handleError(e, retry);
371
+ return yield this.saveSettings(json, true);
372
+ }
373
+ });
374
+ }
375
+ saveUiProperties(saveInSettings = true) {
376
+ return __awaiter(this, void 0, void 0, function* () {
377
+ this._logger.debugLow(`Session(${this._sessionEngineCore.id}).saveSessionProperties: Saving session properties.`);
378
+ // settings saving
379
+ this._saveSessionSettings();
380
+ let properties = {};
381
+ for (const p in this._sessionEngineCore.parameters) {
382
+ properties[p] = {
383
+ displayname: this._sessionEngineCore.parameters[p].displayname !==
384
+ undefined
385
+ ? this._sessionEngineCore.parameters[p].displayname
386
+ : "",
387
+ hidden: this._sessionEngineCore.parameters[p].hidden !== undefined
388
+ ? this._sessionEngineCore.parameters[p].hidden
389
+ : false,
390
+ order: this._sessionEngineCore.parameters[p].order !== undefined
391
+ ? this._sessionEngineCore.parameters[p].order
392
+ : 0,
393
+ tooltip: this._sessionEngineCore.parameters[p].tooltip !== undefined
394
+ ? this._sessionEngineCore.parameters[p].tooltip
395
+ : "",
396
+ };
397
+ }
398
+ const responseP = Object.values(properties).length !== 0
399
+ ? yield this.saveParameterProperties(properties)
400
+ : true;
401
+ properties = {};
402
+ for (const e in this._sessionEngineCore.exports) {
403
+ properties[e] = {
404
+ displayname: this._sessionEngineCore.exports[e].displayname !== undefined
405
+ ? this._sessionEngineCore.exports[e].displayname
406
+ : "",
407
+ hidden: this._sessionEngineCore.exports[e].hidden !== undefined
408
+ ? this._sessionEngineCore.exports[e].hidden
409
+ : false,
410
+ order: this._sessionEngineCore.exports[e].order !== undefined
411
+ ? this._sessionEngineCore.exports[e].order
412
+ : 0,
413
+ tooltip: this._sessionEngineCore.exports[e].tooltip !== undefined
414
+ ? this._sessionEngineCore.exports[e].tooltip
415
+ : "",
416
+ };
417
+ }
418
+ const responseE = Object.values(properties).length !== 0
419
+ ? yield this._sessionEngineCore.exportManager.saveExportProperties(properties)
420
+ : true;
421
+ properties = {};
422
+ for (const o in this._sessionEngineCore.outputs) {
423
+ properties[o] = {
424
+ displayname: this._sessionEngineCore.outputs[o].displayname !== undefined
425
+ ? this._sessionEngineCore.outputs[o].displayname
426
+ : "",
427
+ hidden: this._sessionEngineCore.outputs[o].hidden !== undefined
428
+ ? this._sessionEngineCore.outputs[o].hidden
429
+ : false,
430
+ order: this._sessionEngineCore.outputs[o].order !== undefined
431
+ ? this._sessionEngineCore.outputs[o].order
432
+ : 0,
433
+ tooltip: this._sessionEngineCore.outputs[o].tooltip !== undefined
434
+ ? this._sessionEngineCore.outputs[o].tooltip
435
+ : "",
436
+ };
437
+ }
438
+ const responseO = Object.values(properties).length !== 0
439
+ ? yield this._sessionEngineCore.outputManager.saveOutputProperties(properties)
440
+ : true;
441
+ // save partial settings
442
+ const response = saveInSettings
443
+ ? yield this.saveSettings(this._settingsEngine.settings)
444
+ : true;
445
+ if (response && responseP && responseO && responseE) {
446
+ this._logger.debug(`Session(${this._sessionEngineCore.id}).saveSessionProperties: Saved session properties.`);
447
+ }
448
+ else {
449
+ this._logger.warn(`Session(${this._sessionEngineCore.id}).saveSessionProperties: Could not save session properties.`);
450
+ }
451
+ return response && responseP && responseO && responseE;
452
+ });
453
+ }
454
+ }
455
+ exports.SettingsManager = SettingsManager;
456
+ //# sourceMappingURL=SettingsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsManager.js","sourceRoot":"","sources":["../../../src/implementation/managers/SettingsManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { ReqFileDefinition, ResExport, ResOutput, ResParameter, SdGeometryError } from "@shapediver/sdk.geometry-api-sdk-v2";
2
+ import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
3
+ import { ShapeDiverViewerError } from "@shapediver/viewer.shared.services";
4
+ import { ITaskEvent } from "@shapediver/viewer.shared.types";
5
+ import { IParameter } from "../../interfaces/dto/IParameter";
6
+ import { SessionEngineCore } from "../SessionEngineCore";
7
+ export declare class UtilsManager {
8
+ private readonly _converter;
9
+ private readonly _eventEngine;
10
+ private readonly _httpClient;
11
+ private readonly _logger;
12
+ private readonly _globalAccessObjects;
13
+ private readonly _sceneTree;
14
+ private readonly _stateEngine;
15
+ private _retryCounter;
16
+ private readonly _sessionEngineCore;
17
+ constructor(sessionEngineCore: SessionEngineCore);
18
+ addBusyMode(busyId: string): void;
19
+ /**
20
+ * Create an interaction parameter based on the parameter definition.
21
+ *
22
+ * @param parameter
23
+ * @returns
24
+ */
25
+ createInteractionParameter(parameter: ResParameter): IParameter<unknown>;
26
+ waitForUpdateCallbacks(newOutputVersions: {
27
+ [key: string]: string;
28
+ }, oldOutputVersions: {
29
+ [key: string]: string;
30
+ }, newNode: ITreeNode, oldNode: ITreeNode): Promise<void>;
31
+ warningCreator(outputs: {
32
+ [id: string]: ResOutput;
33
+ } | undefined, exports: {
34
+ [key: string]: ResExport;
35
+ }, throwError?: boolean): void;
36
+ addToSceneTree(node: ITreeNode): void;
37
+ cancelProcess(eventInfo: ITaskEvent, customizationId: string, newNode?: ITreeNode): ITreeNode | undefined;
38
+ checkAvailability(action?: string, checkForModelId?: boolean): void;
39
+ handleError(err: SdGeometryError | ShapeDiverViewerError | Error | unknown, retry?: boolean): Promise<void>;
40
+ /**
41
+ * Process the image input and return the image data and array buffer.
42
+ *
43
+ * In the case of the image being a Blob or File, the image data is constructed from the Blob or File.
44
+ * In the case of the image being a string, we check if it is a data URL or a URL.
45
+ * If it is a data URL, we convert it to a Blob and construct the image data from the Blob.
46
+ * If it is a URL, we download the image and return the image data and array buffer.
47
+ *
48
+ * @param image
49
+ * @returns
50
+ */
51
+ processImageInput(image: (() => string) | (() => Promise<string>) | string | Promise<string> | Blob | File): Promise<{
52
+ imageData: ReqFileDefinition;
53
+ arrayBuffer: ArrayBuffer;
54
+ }>;
55
+ /**
56
+ * Returns a promise that resolves after the amount of milliseconds provided.
57
+ *
58
+ * @param ms the milliseconds
59
+ * @returns promise that resolve after specified milliseconds
60
+ */
61
+ timeout(ms: number): Promise<unknown>;
62
+ removeBusyMode(busyId: string): void;
63
+ removeFromSceneTree(node: ITreeNode): void;
64
+ }
65
+ //# sourceMappingURL=UtilsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtilsManager.d.ts","sourceRoot":"","sources":["../../../src/implementation/managers/UtilsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EAGjB,SAAS,EACT,SAAS,EACT,YAAY,EAEZ,eAAe,EAEf,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAQ,SAAS,EAAO,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAON,qBAAqB,EAGrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEN,UAAU,EAEV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAK3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CACP;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE3C,iBAAiB,EAAE,iBAAiB;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM;IAYjC;;;;;OAKG;IACI,0BAA0B,CAChC,SAAS,EAAE,YAAY,GACrB,UAAU,CAAC,OAAO,CAAC;IA8BT,sBAAsB,CAClC,iBAAiB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,EAC1C,iBAAiB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,EAC1C,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS;IA8BZ,cAAc,CACpB,OAAO,EAAE;QAAC,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC,GAAG,SAAS,EAC9C,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC,EACnC,UAAU,UAAQ;IA0FZ,cAAc,CAAC,IAAI,EAAE,SAAS;IAK9B,aAAa,CACnB,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,SAAiC,GACxC,SAAS,GAAG,SAAS;IA4BjB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,UAAQ;IA+BpD,WAAW,CACvB,GAAG,EAAE,eAAe,GAAG,qBAAqB,GAAG,KAAK,GAAG,OAAO,EAC9D,KAAK,UAAQ;IAqFd;;;;;;;;;;OAUG;IACU,iBAAiB,CAC7B,KAAK,EACF,CAAC,MAAM,MAAM,CAAC,GACd,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GACvB,MAAM,GACN,OAAO,CAAC,MAAM,CAAC,GACf,IAAI,GACJ,IAAI,GACL,OAAO,CAAC;QACV,SAAS,EAAE,iBAAiB,CAAC;QAC7B,WAAW,EAAE,WAAW,CAAC;KACzB,CAAC;IA+CF;;;;;OAKG;IACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3C,cAAc,CAAC,MAAM,EAAE,MAAM;IAqB7B,mBAAmB,CAAC,IAAI,EAAE,SAAS;CAI1C"}