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