@golemio/ndic 1.6.7-dev.2467289210 → 1.6.7-dev.2467492277
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/output-gateway/TrafficRouter.js +3 -3
- package/dist/output-gateway/TrafficRouter.js.map +1 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.d.ts +2 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.js +21 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.js.map +1 -1
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.d.ts +4 -5
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js +9 -12
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,6 @@ const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
|
|
|
8
8
|
const BaseRouter_1 = require("@golemio/core/dist/output-gateway/routes/BaseRouter");
|
|
9
9
|
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
|
|
10
10
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
11
|
-
const output_gateway_1 = require("@golemio/traffic-common/dist/output-gateway");
|
|
12
11
|
const models_1 = require("./models");
|
|
13
12
|
class TrafficRouter extends BaseRouter_1.BaseRouter {
|
|
14
13
|
constructor(trafficRestrictionsModel, outputTrafficRestrictionsTransformation) {
|
|
@@ -27,7 +26,7 @@ class TrafficRouter extends BaseRouter_1.BaseRouter {
|
|
|
27
26
|
if (!dataFromDb?.length) {
|
|
28
27
|
throw new golemio_errors_1.GeneralError("No data found", "TrafficRouter", undefined, 404);
|
|
29
28
|
}
|
|
30
|
-
const transformedData =
|
|
29
|
+
const transformedData = this.outputTrafficRestrictionsTransformation.transform(dataFromDb);
|
|
31
30
|
res.status(200).send(transformedData);
|
|
32
31
|
}
|
|
33
32
|
catch (err) {
|
|
@@ -42,6 +41,7 @@ class TrafficRouter extends BaseRouter_1.BaseRouter {
|
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
exports.TrafficRouter = TrafficRouter;
|
|
45
|
-
const trafficRouter = new TrafficRouter(new models_1.TrafficRestrictionsModel(), new OutputTrafficRestrictionsTransformation_1.OutputTrafficRestrictionsTransformation(
|
|
44
|
+
const trafficRouter = new TrafficRouter(new models_1.TrafficRestrictionsModel(), new OutputTrafficRestrictionsTransformation_1.OutputTrafficRestrictionsTransformation())
|
|
45
|
+
.router;
|
|
46
46
|
exports.trafficRouter = trafficRouter;
|
|
47
47
|
//# sourceMappingURL=TrafficRouter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRouter.js","sourceRoot":"","sources":["../../src/output-gateway/TrafficRouter.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAC3C,uHAAsH;AAEtH,6EAAsG;AACtG,+DAAuE;AACvE,oFAAiF;AAEjF,mFAAiF;AACjF,6EAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"TrafficRouter.js","sourceRoot":"","sources":["../../src/output-gateway/TrafficRouter.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAC3C,uHAAsH;AAEtH,6EAAsG;AACtG,+DAAuE;AACvE,oFAAiF;AAEjF,mFAAiF;AACjF,6EAAwE;AACxE,qCAAoD;AAEpD,MAAa,aAAc,SAAQ,uBAAU;IAGzC,YACc,wBAAkD,EACpD,uCAAgF;QAExF,KAAK,EAAE,CAAC;QAHE,6BAAwB,GAAxB,wBAAwB,CAA0B;QACpD,4CAAuC,GAAvC,uCAAuC,CAAyC;QAmBrF,2BAAsB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtF,IAAI;gBACA,MAAM,SAAS,GAAG,IAAA,+BAAW,EAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAC1D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;oBACrD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBACxD,SAAS,EAAE,SAAS,CAAC,MAAgB;oBACrC,mBAAmB,EAAE,SAAS,CAAC,mBAA6B;iBAC/D,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;oBACrB,MAAM,IAAI,6BAAY,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;iBAC5E;gBACD,MAAM,eAAe,GAAG,IAAI,CAAC,uCAAuC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC3F,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACzC;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QAhCE,IAAI,CAAC,qBAAqB,GAAG,kBAAa,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QAEhH,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,eAAe,EACf;YACI,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACtD,IAAA,yBAAK,EAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;SACrG,EACD,IAAA,sCAAyB,EAAC,eAAe,CAAC,EAC1C,wBAAW,EACX,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EACxD,IAAI,CAAC,sBAAsB,CAC9B,CAAC;IACN,CAAC;CAoBJ;AA1CD,sCA0CC;AAED,MAAM,aAAa,GAAW,IAAI,aAAa,CAAC,IAAI,iCAAwB,EAAE,EAAE,IAAI,iFAAuC,EAAE,CAAC;KACzH,MAAM,CAAC;AAEH,sCAAa"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ITrafficRestrictionsModel } from "../../integration-engine/transformations/TrafficRestrictionsInterface";
|
|
2
2
|
import { SequelizeModel } from "@golemio/core/dist/output-gateway/models";
|
|
3
|
+
export type ITrafficRestrictionsGetAllModel = Pick<ITrafficRestrictionsModel, "publication_time" | "situation_id" | "situation_version" | "situation_record_id" | "situation_record_version" | "situation_record_type" | "situation_record_creation_time" | "situation_record_version_time" | "validity_overall_start_time" | "validity_overall_end_time" | "general_public_comment" | "source" | "impact_delays_type" | "impact_delay_time_value" | "impact_number_of_lanes_restricted" | "impact_number_of_operational_lanes" | "impact_traffic_constriction_type" | "impact_capacity_remaining" | "for_vehicles_with_characteristics_of" | "osm_path">;
|
|
3
4
|
export declare class TrafficRestrictionsModel extends SequelizeModel {
|
|
4
5
|
constructor();
|
|
5
6
|
/**
|
|
@@ -15,6 +16,6 @@ export declare class TrafficRestrictionsModel extends SequelizeModel {
|
|
|
15
16
|
offset?: number;
|
|
16
17
|
reqMoment?: string;
|
|
17
18
|
situationRecordType?: string;
|
|
18
|
-
}) => Promise<
|
|
19
|
+
}) => Promise<ITrafficRestrictionsGetAllModel[]>;
|
|
19
20
|
GetOne: (id: number) => Promise<object | null>;
|
|
20
21
|
}
|
|
@@ -25,7 +25,27 @@ class TrafficRestrictionsModel extends models_1.SequelizeModel {
|
|
|
25
25
|
// take moment from request or now
|
|
26
26
|
let queryMoment = reqMoment ? reqMoment : (0, helpers_1.dateTime)(new Date()).setTimeZone("Europe/Prague").toISOString();
|
|
27
27
|
let query = `
|
|
28
|
-
SELECT
|
|
28
|
+
SELECT
|
|
29
|
+
publication_time,
|
|
30
|
+
situation_id,
|
|
31
|
+
situation_version,
|
|
32
|
+
situation_record_id,
|
|
33
|
+
situation_record_version,
|
|
34
|
+
situation_record_type,
|
|
35
|
+
situation_record_creation_time,
|
|
36
|
+
situation_record_version_time,
|
|
37
|
+
validity_overall_start_time,
|
|
38
|
+
validity_overall_end_time,
|
|
39
|
+
general_public_comment,
|
|
40
|
+
source,
|
|
41
|
+
impact_delays_type,
|
|
42
|
+
impact_delay_time_value,
|
|
43
|
+
impact_number_of_lanes_restricted,
|
|
44
|
+
impact_number_of_operational_lanes,
|
|
45
|
+
impact_traffic_constriction_type,
|
|
46
|
+
impact_capacity_remaining,
|
|
47
|
+
for_vehicles_with_characteristics_of,
|
|
48
|
+
osm_path
|
|
29
49
|
FROM ${index_1.Ndic.pgSchema}.fetch_valid_traffic_restrictions(:queryMoment)
|
|
30
50
|
`;
|
|
31
51
|
if (situationRecordType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRestrictionsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/TrafficRestrictionsModel.ts"],"names":[],"mappings":";;;AACA,0DAAkC;AAClC,yEAAiF;AACjF,qEAA0E;AAC1E,6EAAwE;AACxE,wDAAsD;
|
|
1
|
+
{"version":3,"file":"TrafficRestrictionsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/TrafficRestrictionsModel.ts"],"names":[],"mappings":";;;AACA,0DAAkC;AAClC,yEAAiF;AACjF,qEAA0E;AAC1E,6EAAwE;AACxE,wDAAsD;AA0BtD,MAAa,wBAAyB,SAAQ,uBAAc;IACxD;QACI,KAAK,CAAC,YAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,4BAA4B,EAAE,YAAI,CAAC,oBAAoB,CAAC,yBAAyB,EAAE;YACrH,MAAM,EAAE,YAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAGP;;;;;;;WAOG;QAEI,WAAM,GAAG,KAAK,EACjB,UAKI,EAAE,EACoC,EAAE;YAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;YAElE,IAAI;gBACA,kCAAkC;gBAClC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,kBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE1G,IAAI,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;mBAsBL,YAAI,CAAC,QAAQ;aACnB,CAAC;gBAEF,IAAI,mBAAmB,EAAE;oBACrB,KAAK,IAAI,oDAAoD,CAAC;iBACjE;gBAED,IAAI,KAAK,EAAE;oBACP,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC;iBAC9B;gBAED,IAAI,MAAM,EAAE;oBACR,KAAK,IAAI,WAAW,MAAM,EAAE,CAAC;iBAChC;gBAED,MAAM,yBAAyB,GAAG,CAAC,MAAM,8BAAmB,EAAE,KAAK,CAAC,KAAK,EAAE;oBACvE,YAAY,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE;iBACrD,CAAC,CAAwC,CAAC;gBAE3C,OAAO,yBAAyB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7C;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAClF;QACL,CAAC,CAAC;QAEK,WAAM,GAAG,KAAK,EAAE,EAAU,EAA0B,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC,CAAC;IA1EF,CAAC;CA2EJ;AAhFD,4DAgFC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { IOutputApiRestrictions
|
|
2
|
-
import {
|
|
1
|
+
import { IOutputApiRestrictions } from "../../integration-engine/transformations/TrafficRestrictionsInterface";
|
|
2
|
+
import { ITrafficRestrictionsGetAllModel } from "../models/TrafficRestrictionsModel";
|
|
3
3
|
export declare class OutputTrafficRestrictionsTransformation {
|
|
4
4
|
name: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
transform: (data: ITrafficRestrictionsModel[]) => Promise<IOutputApiRestrictions>;
|
|
5
|
+
constructor();
|
|
6
|
+
transform: (data: ITrafficRestrictionsGetAllModel[]) => IOutputApiRestrictions;
|
|
8
7
|
private transformSituationsArr;
|
|
9
8
|
private transformRecordsArr;
|
|
10
9
|
private generalPublicCommentParsing;
|
|
@@ -5,8 +5,8 @@ const ParserHelper_1 = require("../../integration-engine/transformations/ParserH
|
|
|
5
5
|
const _sch_1 = require("../../schema-definitions");
|
|
6
6
|
const helpers_1 = require("@golemio/core/dist/helpers");
|
|
7
7
|
class OutputTrafficRestrictionsTransformation {
|
|
8
|
-
constructor(
|
|
9
|
-
this.transform =
|
|
8
|
+
constructor() {
|
|
9
|
+
this.transform = (data) => {
|
|
10
10
|
// Format needed: "publicationTime": "2022-03-31T14:12:11+02:00",
|
|
11
11
|
const publicationTime = data.reduce((acc, curr) => (acc.publication_time > curr.publication_time ? acc : curr))
|
|
12
12
|
.publication_time;
|
|
@@ -19,7 +19,7 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
19
19
|
country: "cz",
|
|
20
20
|
nationalIdentifier: "NDIC",
|
|
21
21
|
},
|
|
22
|
-
situation:
|
|
22
|
+
situation: this.transformSituationsArr(data),
|
|
23
23
|
},
|
|
24
24
|
};
|
|
25
25
|
return result;
|
|
@@ -32,17 +32,16 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
32
32
|
return previous;
|
|
33
33
|
}, {});
|
|
34
34
|
this.name = _sch_1.Ndic.traffic_restrictions.name;
|
|
35
|
-
this.rsdTmcOsmMappingRepository = rsdTmcOsmMappingRepository;
|
|
36
35
|
}
|
|
37
|
-
|
|
36
|
+
transformSituationsArr(dataFromDbArr) {
|
|
38
37
|
const resultSituationsArr = [];
|
|
39
38
|
// group by situation_id
|
|
40
|
-
const
|
|
39
|
+
const recordsBySituationIdObj = this.groupByOneProperty(dataFromDbArr, (i) => i.situation_id);
|
|
41
40
|
// Select only records with the latest version
|
|
42
41
|
// situation_record_version = situation_version
|
|
43
|
-
for (const key in
|
|
42
|
+
for (const key in recordsBySituationIdObj) {
|
|
44
43
|
let recordsArr = [];
|
|
45
|
-
for (const record of
|
|
44
|
+
for (const record of recordsBySituationIdObj[key]) {
|
|
46
45
|
if (!recordsArr.length) {
|
|
47
46
|
recordsArr.push(record);
|
|
48
47
|
}
|
|
@@ -54,7 +53,7 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
54
53
|
recordsArr.push(record);
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
|
-
const situationRecord =
|
|
56
|
+
const situationRecord = this.transformRecordsArr(recordsArr);
|
|
58
57
|
// if situation has no records => do not show the situation
|
|
59
58
|
if (!situationRecord.length) {
|
|
60
59
|
continue;
|
|
@@ -67,11 +66,9 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
67
66
|
}
|
|
68
67
|
return resultSituationsArr;
|
|
69
68
|
}
|
|
70
|
-
|
|
69
|
+
transformRecordsArr(oneSituationArr) {
|
|
71
70
|
const resultRecordsArr = [];
|
|
72
71
|
for (const record of oneSituationArr) {
|
|
73
|
-
const ltStart = record.alert_c_linear?.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation || null;
|
|
74
|
-
const ltEnd = record.alert_c_linear?.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation || null;
|
|
75
72
|
const newLine = {
|
|
76
73
|
id: record.situation_record_id,
|
|
77
74
|
situationRecordCreationTime: (0, helpers_1.dateTime)(record.situation_record_creation_time)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputTrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/OutputTrafficRestrictionsTransformation.ts"],"names":[],"mappings":";;;AAAA,wFAA+D;AAO/D,mDAA4B;AAC5B,wDAAsD;
|
|
1
|
+
{"version":3,"file":"OutputTrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/OutputTrafficRestrictionsTransformation.ts"],"names":[],"mappings":";;;AAAA,wFAA+D;AAO/D,mDAA4B;AAC5B,wDAAsD;AAEtD,MAAa,uCAAuC;IAGhD;QAIO,cAAS,GAAG,CAAC,IAAuC,EAAE,EAAE;YAC3D,iEAAiE;YACjE,MAAM,eAAe,GAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAChH,gBAAmC,CAAC;YAEzC,MAAM,MAAM,GAA2B;gBACnC,gBAAgB,EAAE,GAAG;gBACrB,yBAAyB,EAAE;oBACvB,IAAI,EAAE,IAAI;oBACV,eAAe,EAAE,IAAA,kBAAQ,EAAC,eAAe,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE;oBACrF,kBAAkB,EAAE;wBAChB,OAAO,EAAE,IAAI;wBACb,kBAAkB,EAAE,MAAM;qBAC7B;oBACD,SAAS,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;iBAC/C;aACJ,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QAiHM,uBAAkB,GAAG,CAAyB,IAAS,EAAE,MAAsB,EAAE,EAAE,CACvF,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC3C,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,OAAO,QAAQ,CAAC;QACpB,CAAC,EAAE,EAAoB,CAAC,CAAC;QA7IzB,IAAI,CAAC,IAAI,GAAG,WAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC/C,CAAC;IAuBO,sBAAsB,CAAC,aAAgD;QAC3E,MAAM,mBAAmB,GAA0B,EAAE,CAAC;QAEtD,wBAAwB;QACxB,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAE9F,8CAA8C;QAC9C,+CAA+C;QAC/C,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE;YACvC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE;gBAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;oBACpB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;qBAAM,IAAI,MAAM,CAAC,wBAAwB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE;oBAClF,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;qBAAM,IAAI,MAAM,CAAC,wBAAwB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE;oBACjF,UAAU,GAAG,EAAE,CAAC;oBAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;aACJ;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAE7D,4DAA4D;YAC5D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBACzB,SAAS;aACZ;YACD,mBAAmB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,GAAG;gBACP,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBACzC,eAAe;aAClB,CAAC,CAAC;SACN;QAED,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEO,mBAAmB,CAAC,eAAkD;QAC1E,MAAM,gBAAgB,GAAgC,EAAE,CAAC;QAEzD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;YAClC,MAAM,OAAO,GAA8B;gBACvC,EAAE,EAAE,MAAM,CAAC,mBAAmB;gBAC9B,2BAA2B,EAAE,IAAA,kBAAQ,EAAC,MAAM,CAAC,8BAAiD,CAAC;qBAC1F,WAAW,CAAC,eAAe,CAAC;qBAC5B,WAAW,EAAE;gBAClB,0BAA0B,EAAE,IAAA,kBAAQ,EAAC,MAAM,CAAC,6BAAgD,CAAC;qBACxF,WAAW,CAAC,eAAe,CAAC;qBAC5B,WAAW,EAAE;gBAClB,SAAS,EAAE,IAAA,kBAAQ,EAAC,MAAM,CAAC,2BAA8C,CAAC;qBACrE,WAAW,CAAC,eAAe,CAAC;qBAC5B,WAAW,EAAE;gBAClB,OAAO,EAAE,IAAA,kBAAQ,EAAC,MAAM,CAAC,yBAA4C,CAAC;qBACjE,WAAW,CAAC,eAAe,CAAC;qBAC5B,WAAW,EAAE;gBAClB,IAAI,EAAE,MAAM,CAAC,qBAAqB;gBAClC,OAAO,EAAE,IAAA,0BAAW,EAAC,MAAM,CAAC,wBAAwB,CAAW;gBAC/D,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBACrF,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjD,MAAM,EAAE;oBACJ,MAAM,EAAE;wBACJ,IAAI,EAAE,MAAM,CAAC,kBAAkB;wBAC/B,SAAS,EAAE,MAAM,CAAC,uBAAuB;qBAC5C;oBACD,uBAAuB,EAAE,MAAM,CAAC,iCAAiC;oBACjE,wBAAwB,EAAE,MAAM,CAAC,kCAAkC;oBACnE,uBAAuB,EAAE,MAAM,CAAC,gCAAgC;oBAChE,iBAAiB,EAAE,MAAM,CAAC,yBAAyB;iBACtD;gBACD,gCAAgC,EAAE,MAAM,CAAC,oCAAoC,IAAI,SAAS;aAC7F,CAAC;YACF,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;aACrC;YACD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,2BAA2B,CAAC,OAA2B;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACpB,IAAI;gBACA,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAQ,EAAE,CAAC;gBAC1B,KAAK,MAAM,qBAAqB,IAAI,cAAc,EAAE;oBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBACrD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC/F;gBACD,OAAO,SAAS,CAAC;aACpB;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO;YACH,EAAE,EAAE,OAAO;SACd,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,MAA0B;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACnB,IAAI;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrC,OAAO,SAAS,CAAC,oBAAoB,CAAC;aACzC;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CASJ;AAlJD,0FAkJC"}
|