@aggdirect/coolmap-services 1.2.2 → 1.3.0
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/README.md +38 -38
- package/{esm2020 → esm2022}/aggdirect-coolmap-services.mjs +4 -4
- package/esm2022/lib/service/coolmap.service.mjs +454 -0
- package/esm2022/lib/service/data-model.mjs +90 -0
- package/esm2022/lib/service/utils.service.mjs +293 -0
- package/{esm2020 → esm2022}/public-api.mjs +7 -7
- package/{fesm2020 → fesm2022}/aggdirect-coolmap-services.mjs +821 -756
- package/fesm2022/aggdirect-coolmap-services.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/service/coolmap.service.d.ts +47 -47
- package/lib/service/data-model.d.ts +92 -92
- package/lib/service/utils.service.d.ts +58 -58
- package/package.json +7 -13
- package/public-api.d.ts +3 -3
- package/esm2020/lib/service/coolmap.service.mjs +0 -446
- package/esm2020/lib/service/data-model.mjs +0 -40
- package/esm2020/lib/service/utils.service.mjs +0 -286
- package/fesm2015/aggdirect-coolmap-services.mjs +0 -799
- package/fesm2015/aggdirect-coolmap-services.mjs.map +0 -1
- package/fesm2020/aggdirect-coolmap-services.mjs.map +0 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export class Route {
|
|
2
|
+
index = 0;
|
|
3
|
+
type;
|
|
4
|
+
// Job Code
|
|
5
|
+
customer_contact;
|
|
6
|
+
customer_name;
|
|
7
|
+
delivery_contact;
|
|
8
|
+
delivery_lat;
|
|
9
|
+
delivery_location;
|
|
10
|
+
delivery_lon;
|
|
11
|
+
driver_list;
|
|
12
|
+
material;
|
|
13
|
+
order_number;
|
|
14
|
+
pickup_lat;
|
|
15
|
+
pickup_location;
|
|
16
|
+
pickup_lon;
|
|
17
|
+
project;
|
|
18
|
+
total_count;
|
|
19
|
+
unit;
|
|
20
|
+
values;
|
|
21
|
+
job_id;
|
|
22
|
+
isSelected;
|
|
23
|
+
date;
|
|
24
|
+
// Add Route
|
|
25
|
+
created_at;
|
|
26
|
+
created_by_name;
|
|
27
|
+
customer_id;
|
|
28
|
+
delivery_lat_lng;
|
|
29
|
+
estimated_distance;
|
|
30
|
+
estimated_time;
|
|
31
|
+
materials_id;
|
|
32
|
+
path;
|
|
33
|
+
pickup_lat_lng;
|
|
34
|
+
route_id;
|
|
35
|
+
route_name;
|
|
36
|
+
unit_id;
|
|
37
|
+
note;
|
|
38
|
+
materialLabel;
|
|
39
|
+
isActive;
|
|
40
|
+
prevent;
|
|
41
|
+
}
|
|
42
|
+
export const EstinationData = ['estimated_distance', 'estimated_time'];
|
|
43
|
+
export var EstinationEnum;
|
|
44
|
+
(function (EstinationEnum) {
|
|
45
|
+
EstinationEnum["estimated_distance"] = "miles";
|
|
46
|
+
EstinationEnum["estimated_time"] = "time";
|
|
47
|
+
})(EstinationEnum || (EstinationEnum = {}));
|
|
48
|
+
export const JobCodeOverviewData = ['order_number', 'customer_name', 'project', 'unit', 'material', 'customer_contact', 'delivery_contact', 'pickup_location', 'delivery_location'];
|
|
49
|
+
export var JobCodeOverviewEnum;
|
|
50
|
+
(function (JobCodeOverviewEnum) {
|
|
51
|
+
JobCodeOverviewEnum["material"] = "Material";
|
|
52
|
+
JobCodeOverviewEnum["order_number"] = "Job Code";
|
|
53
|
+
JobCodeOverviewEnum["customer_name"] = "Customer";
|
|
54
|
+
JobCodeOverviewEnum["customer_contact"] = "Customer Contact";
|
|
55
|
+
JobCodeOverviewEnum["delivery_contact"] = "Delivery Contact";
|
|
56
|
+
JobCodeOverviewEnum["project"] = "Project Name";
|
|
57
|
+
JobCodeOverviewEnum["unit"] = "Job Type";
|
|
58
|
+
JobCodeOverviewEnum["pickup_location"] = "Pickup";
|
|
59
|
+
JobCodeOverviewEnum["delivery_location"] = "Delivery";
|
|
60
|
+
})(JobCodeOverviewEnum || (JobCodeOverviewEnum = {}));
|
|
61
|
+
export const DriversmsCardKey = ['order_number', 'date', 'values', 'material', 'unit', 'pickup_location', 'delivery_location'];
|
|
62
|
+
export var DriverSmsCardEnum;
|
|
63
|
+
(function (DriverSmsCardEnum) {
|
|
64
|
+
DriverSmsCardEnum["order_number"] = "Jobcode";
|
|
65
|
+
DriverSmsCardEnum["date"] = "Date";
|
|
66
|
+
DriverSmsCardEnum["values"] = "Total tasks";
|
|
67
|
+
DriverSmsCardEnum["material"] = "Material";
|
|
68
|
+
DriverSmsCardEnum["unit"] = "Unit";
|
|
69
|
+
DriverSmsCardEnum["pickup_location"] = "Pickup Address";
|
|
70
|
+
DriverSmsCardEnum["delivery_location"] = "Delivery Address";
|
|
71
|
+
})(DriverSmsCardEnum || (DriverSmsCardEnum = {}));
|
|
72
|
+
export class PopupData {
|
|
73
|
+
coordinate;
|
|
74
|
+
pickup;
|
|
75
|
+
jobCode;
|
|
76
|
+
customer;
|
|
77
|
+
drop;
|
|
78
|
+
routeType;
|
|
79
|
+
title;
|
|
80
|
+
material;
|
|
81
|
+
type;
|
|
82
|
+
}
|
|
83
|
+
export class CoolmapConfigModel {
|
|
84
|
+
analyticsRESTURL;
|
|
85
|
+
RESTURLPrefix;
|
|
86
|
+
repository;
|
|
87
|
+
mapboxStyle;
|
|
88
|
+
mapboxAccessToken;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlL2RhdGEtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLEtBQUs7SUFDaEIsS0FBSyxHQUFXLENBQUMsQ0FBQztJQUNsQixJQUFJLENBQWlCO0lBQ3JCLFdBQVc7SUFDWCxnQkFBZ0IsQ0FBaUI7SUFDakMsYUFBYSxDQUFpQjtJQUM5QixnQkFBZ0IsQ0FBaUI7SUFDakMsWUFBWSxDQUFpQjtJQUM3QixpQkFBaUIsQ0FBNkI7SUFDOUMsWUFBWSxDQUFpQjtJQUM3QixXQUFXLENBQWM7SUFDekIsUUFBUSxDQUFpQjtJQUN6QixZQUFZLENBQWlCO0lBQzdCLFVBQVUsQ0FBaUI7SUFDM0IsZUFBZSxDQUE2QjtJQUM1QyxVQUFVLENBQWlCO0lBQzNCLE9BQU8sQ0FBaUI7SUFDeEIsV0FBVyxDQUFVO0lBQ3JCLElBQUksQ0FBaUI7SUFDckIsTUFBTSxDQUFNO0lBQ1osTUFBTSxDQUFVO0lBQ2hCLFVBQVUsQ0FBVztJQUNyQixJQUFJLENBQVU7SUFDZCxZQUFZO0lBQ1osVUFBVSxDQUFpQjtJQUMzQixlQUFlLENBQWlCO0lBQ2hDLFdBQVcsQ0FBaUI7SUFDNUIsZ0JBQWdCLENBQWlCO0lBQ2pDLGtCQUFrQixDQUFpQjtJQUNuQyxjQUFjLENBQWlCO0lBQy9CLFlBQVksQ0FBaUI7SUFDN0IsSUFBSSxDQUFvQjtJQUN4QixjQUFjLENBQWlCO0lBQy9CLFFBQVEsQ0FBaUI7SUFDekIsVUFBVSxDQUFpQjtJQUMzQixPQUFPLENBQWlCO0lBQ3hCLElBQUksQ0FBaUI7SUFDckIsYUFBYSxDQUFpQjtJQUM5QixRQUFRLENBQVc7SUFDbkIsT0FBTyxDQUFXO0NBQ25CO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtBQUN0RSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLDhDQUE0QixDQUFBO0lBQzVCLHlDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO0FBQ25MLE1BQU0sQ0FBTixJQUFZLG1CQVVYO0FBVkQsV0FBWSxtQkFBbUI7SUFDN0IsNENBQXFCLENBQUE7SUFDckIsZ0RBQXlCLENBQUE7SUFDekIsaURBQTBCLENBQUE7SUFDMUIsNERBQXFDLENBQUE7SUFDckMsNERBQXFDLENBQUE7SUFDckMsK0NBQXdCLENBQUE7SUFDeEIsd0NBQWlCLENBQUE7SUFDakIsaURBQTBCLENBQUE7SUFDMUIscURBQThCLENBQUE7QUFDaEMsQ0FBQyxFQVZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFVOUI7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtBQUM5SCxNQUFNLENBQU4sSUFBWSxpQkFRWDtBQVJELFdBQVksaUJBQWlCO0lBQzNCLDZDQUF3QixDQUFBO0lBQ3hCLGtDQUFhLENBQUE7SUFDYiwyQ0FBc0IsQ0FBQTtJQUN0QiwwQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBYSxDQUFBO0lBQ2IsdURBQWtDLENBQUE7SUFDbEMsMkRBQXNDLENBQUE7QUFDeEMsQ0FBQyxFQVJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFRNUI7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUNwQixVQUFVLENBQW1CO0lBQzdCLE1BQU0sQ0FBZ0I7SUFDdEIsT0FBTyxDQUFpQjtJQUN4QixRQUFRLENBQWlCO0lBQ3pCLElBQUksQ0FBZ0I7SUFDcEIsU0FBUyxDQUFnQjtJQUN6QixLQUFLLENBQWdCO0lBQ3JCLFFBQVEsQ0FBZ0I7SUFDeEIsSUFBSSxDQUFnQjtDQUNyQjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZ0JBQWdCLENBQWdCO0lBQ2hDLGFBQWEsQ0FBZ0I7SUFDN0IsVUFBVSxDQUFnQjtJQUMxQixXQUFXLENBQWdCO0lBQzNCLGlCQUFpQixDQUFnQjtDQUNsQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIFJvdXRlIHtcbiAgaW5kZXg6IG51bWJlciA9IDA7XG4gIHR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICAvLyBKb2IgQ29kZVxuICBjdXN0b21lcl9jb250YWN0Pzogc3RyaW5nIHwgbnVsbDtcbiAgY3VzdG9tZXJfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGRlbGl2ZXJ5X2NvbnRhY3Q/OiBzdHJpbmcgfCBudWxsO1xuICBkZWxpdmVyeV9sYXQ/OiBudW1iZXIgfCBudWxsO1xuICBkZWxpdmVyeV9sb2NhdGlvbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGRlbGl2ZXJ5X2xvbj86IG51bWJlciB8IG51bGw7XG4gIGRyaXZlcl9saXN0PzogQXJyYXk8YW55PjtcbiAgbWF0ZXJpYWw/OiBzdHJpbmcgfCBudWxsO1xuICBvcmRlcl9udW1iZXI/OiBzdHJpbmcgfCBudWxsO1xuICBwaWNrdXBfbGF0PzogbnVtYmVyIHwgbnVsbDtcbiAgcGlja3VwX2xvY2F0aW9uPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGlja3VwX2xvbj86IG51bWJlciB8IG51bGw7XG4gIHByb2plY3Q/OiBzdHJpbmcgfCBudWxsO1xuICB0b3RhbF9jb3VudD86IG51bWJlcjtcbiAgdW5pdD86IHN0cmluZyB8IG51bGw7XG4gIHZhbHVlczogYW55O1xuICBqb2JfaWQ/OiBzdHJpbmc7XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBkYXRlPzogc3RyaW5nO1xuICAvLyBBZGQgUm91dGVcbiAgY3JlYXRlZF9hdD86IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRfYnlfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGN1c3RvbWVyX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgZGVsaXZlcnlfbGF0X2xuZz86IHN0cmluZyB8IG51bGw7XG4gIGVzdGltYXRlZF9kaXN0YW5jZT86IHN0cmluZyB8IG51bGw7XG4gIGVzdGltYXRlZF90aW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgbWF0ZXJpYWxzX2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgcGF0aD86IFtudW1iZXIsIG51bWJlcl07XG4gIHBpY2t1cF9sYXRfbG5nPzogc3RyaW5nIHwgbnVsbDtcbiAgcm91dGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICByb3V0ZV9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgdW5pdF9pZD86IHN0cmluZyB8IG51bGw7XG4gIG5vdGU/OiBzdHJpbmcgfCBudWxsO1xuICBtYXRlcmlhbExhYmVsPzogc3RyaW5nIHwgbnVsbDtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBwcmV2ZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEVzdGluYXRpb25EYXRhID0gWydlc3RpbWF0ZWRfZGlzdGFuY2UnLCAnZXN0aW1hdGVkX3RpbWUnXVxuZXhwb3J0IGVudW0gRXN0aW5hdGlvbkVudW0ge1xuICBlc3RpbWF0ZWRfZGlzdGFuY2UgPSBcIm1pbGVzXCIsXG4gIGVzdGltYXRlZF90aW1lID0gXCJ0aW1lXCJcbn1cblxuZXhwb3J0IGNvbnN0IEpvYkNvZGVPdmVydmlld0RhdGEgPSBbJ29yZGVyX251bWJlcicsICdjdXN0b21lcl9uYW1lJywgJ3Byb2plY3QnLCAndW5pdCcsICdtYXRlcmlhbCcsICdjdXN0b21lcl9jb250YWN0JywgJ2RlbGl2ZXJ5X2NvbnRhY3QnLCAncGlja3VwX2xvY2F0aW9uJywgJ2RlbGl2ZXJ5X2xvY2F0aW9uJ11cbmV4cG9ydCBlbnVtIEpvYkNvZGVPdmVydmlld0VudW0ge1xuICBtYXRlcmlhbCA9IFwiTWF0ZXJpYWxcIixcbiAgb3JkZXJfbnVtYmVyID0gXCJKb2IgQ29kZVwiLFxuICBjdXN0b21lcl9uYW1lID0gXCJDdXN0b21lclwiLFxuICBjdXN0b21lcl9jb250YWN0ID0gXCJDdXN0b21lciBDb250YWN0XCIsXG4gIGRlbGl2ZXJ5X2NvbnRhY3QgPSBcIkRlbGl2ZXJ5IENvbnRhY3RcIixcbiAgcHJvamVjdCA9IFwiUHJvamVjdCBOYW1lXCIsXG4gIHVuaXQgPSBcIkpvYiBUeXBlXCIsXG4gIHBpY2t1cF9sb2NhdGlvbiA9IFwiUGlja3VwXCIsXG4gIGRlbGl2ZXJ5X2xvY2F0aW9uID0gXCJEZWxpdmVyeVwiLFxufVxuXG5leHBvcnQgY29uc3QgRHJpdmVyc21zQ2FyZEtleSA9IFsnb3JkZXJfbnVtYmVyJywgJ2RhdGUnLCAndmFsdWVzJywgJ21hdGVyaWFsJywgJ3VuaXQnLCAncGlja3VwX2xvY2F0aW9uJywgJ2RlbGl2ZXJ5X2xvY2F0aW9uJ11cbmV4cG9ydCBlbnVtIERyaXZlclNtc0NhcmRFbnVtIHtcbiAgb3JkZXJfbnVtYmVyID0gJ0pvYmNvZGUnLFxuICBkYXRlID0gJ0RhdGUnLFxuICB2YWx1ZXMgPSAnVG90YWwgdGFza3MnLFxuICBtYXRlcmlhbCA9ICdNYXRlcmlhbCcsXG4gIHVuaXQgPSAnVW5pdCcsXG4gIHBpY2t1cF9sb2NhdGlvbiA9ICdQaWNrdXAgQWRkcmVzcycsXG4gIGRlbGl2ZXJ5X2xvY2F0aW9uID0gJ0RlbGl2ZXJ5IEFkZHJlc3MnXG59XG5cbmV4cG9ydCBjbGFzcyBQb3B1cERhdGEge1xuICBjb29yZGluYXRlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBwaWNrdXA6IHN0cmluZyB8IG51bGw7XG4gIGpvYkNvZGU/OiBzdHJpbmcgfCBudWxsO1xuICBjdXN0b21lcj86IHN0cmluZyB8IG51bGw7XG4gIGRyb3A6IHN0cmluZyB8IG51bGw7XG4gIHJvdXRlVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gIG1hdGVyaWFsOiBzdHJpbmcgfCBudWxsO1xuICB0eXBlOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgQ29vbG1hcENvbmZpZ01vZGVsIHtcbiAgYW5hbHl0aWNzUkVTVFVSTDogc3RyaW5nIHwgbnVsbDtcbiAgUkVTVFVSTFByZWZpeDogc3RyaW5nIHwgbnVsbDtcbiAgcmVwb3NpdG9yeTogc3RyaW5nIHwgbnVsbDtcbiAgbWFwYm94U3R5bGU6IHN0cmluZyB8IG51bGw7XG4gIG1hcGJveEFjY2Vzc1Rva2VuOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBDdXN0b21lclJlcG9EZXRhaWxzTW9kZWwge1xuICBjdXN0b21lcjogQ3VzdG9tZXJEZXRhaWxzTW9kZWwgfCBudWxsO1xuICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEN1c3RvbWVyRGV0YWlsc01vZGVsIHtcbiAgaWQ6IHN0cmluZyB8IG51bGw7XG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
import * as i2 from "@angular/material/snack-bar";
|
|
6
|
+
import * as i3 from "./data-model";
|
|
7
|
+
export class UtilsService {
|
|
8
|
+
http;
|
|
9
|
+
snackBar;
|
|
10
|
+
config;
|
|
11
|
+
analyticsRESTURL = '';
|
|
12
|
+
RESTURLPrefix = '';
|
|
13
|
+
pickupOptions = [];
|
|
14
|
+
destOptions = [];
|
|
15
|
+
ownerOptions = [];
|
|
16
|
+
customerOptions = [];
|
|
17
|
+
unitOptions = [];
|
|
18
|
+
materialOptions = [];
|
|
19
|
+
jcodeOptions = [];
|
|
20
|
+
driverOption = [];
|
|
21
|
+
truckingCompanayOption = [];
|
|
22
|
+
routeNameOptions = [];
|
|
23
|
+
preventnavChange = new BehaviorSubject(false);
|
|
24
|
+
navChangeObserve = this.preventnavChange.asObservable();
|
|
25
|
+
clearViewRouteforJobCode = new BehaviorSubject(false);
|
|
26
|
+
clearViewRouteforJobCodeObserve = this.clearViewRouteforJobCode.asObservable();
|
|
27
|
+
preVentJobdetailclose = new BehaviorSubject(false);
|
|
28
|
+
getpreVentJobdetailclose = this.preVentJobdetailclose.asObservable();
|
|
29
|
+
routeDetailsUtility = new BehaviorSubject({});
|
|
30
|
+
getrouteDetailsUtility = this.routeDetailsUtility.asObservable();
|
|
31
|
+
removeMapEntity = new BehaviorSubject({});
|
|
32
|
+
removeMapEntityUtility = this.removeMapEntity.asObservable();
|
|
33
|
+
dict = new Map();
|
|
34
|
+
unitsList;
|
|
35
|
+
materialsList;
|
|
36
|
+
materialsListForCustomer;
|
|
37
|
+
customersList;
|
|
38
|
+
constructor(http, snackBar, config) {
|
|
39
|
+
this.http = http;
|
|
40
|
+
this.snackBar = snackBar;
|
|
41
|
+
this.config = config;
|
|
42
|
+
this.analyticsRESTURL = config.analyticsRESTURL;
|
|
43
|
+
this.RESTURLPrefix = config.RESTURLPrefix;
|
|
44
|
+
}
|
|
45
|
+
getDateFormat(strVal, seprater) {
|
|
46
|
+
seprater = seprater ? seprater : '-';
|
|
47
|
+
const mydate = strVal;
|
|
48
|
+
return mydate?.getFullYear() + seprater + ((mydate ? mydate.getMonth() : 0) + 1) + seprater + mydate?.getDate();
|
|
49
|
+
}
|
|
50
|
+
getData(path) { return this.http.get(`${this.analyticsRESTURL}${this.config.repository}/${path}`); }
|
|
51
|
+
postdata(path, data) { return this.http.post(`${this.analyticsRESTURL}${this.config.repository}/${path}`, data); }
|
|
52
|
+
postDataWithRestUrl(path, data) { return this.http.post(`${this.RESTURLPrefix}${path}`, data); }
|
|
53
|
+
fetchAutoCompleteLocations(keyword) {
|
|
54
|
+
return this.http.get(`https://api.mapbox.com/geocoding/v5/mapbox.places/${keyword}.json?access_token=${this.config.mapboxAccessToken}&country=US`);
|
|
55
|
+
}
|
|
56
|
+
openSnackBar(message, className) {
|
|
57
|
+
this.snackBar.open(message, '', {
|
|
58
|
+
duration: 5000, verticalPosition: 'top', horizontalPosition: 'center', panelClass: [className ? className : 'default']
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
makeOptions(item) {
|
|
62
|
+
if (item.order_number) {
|
|
63
|
+
(this.jcodeOptions.findIndex((elem) => elem.job_id === item.job_id) === -1) ? this.jcodeOptions.push({ job_code: item.order_number, job_id: item.job_id }) : null;
|
|
64
|
+
if (item.driver_list && item.driver_list?.length > 0) {
|
|
65
|
+
item.driver_list.forEach((driver) => {
|
|
66
|
+
this.driverOption.findIndex(elem => elem === driver['driver_name']) === -1 ? this.driverOption.push(driver['driver_name']) : null;
|
|
67
|
+
this.truckingCompanayOption.findIndex(elem => elem === driver['trucking_company']) === -1 ? this.truckingCompanayOption.push(driver['trucking_company']) : null;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
((this.pickupOptions.findIndex((elem) => elem === item.pickup_location)) === -1) ? this.pickupOptions.push(item.pickup_location) : null;
|
|
72
|
+
((this.destOptions.findIndex((elem) => elem === item.delivery_location)) === -1) ? this.destOptions.push(item.delivery_location) : null;
|
|
73
|
+
(this.customerOptions.findIndex((customer) => customer === item.customer_name) === -1) ? this.customerOptions.push(item.customer_name) : null;
|
|
74
|
+
(this.unitOptions.findIndex((elem) => elem === item.unit) === -1) ? this.unitOptions.push(item.unit) : null;
|
|
75
|
+
(this.materialOptions.findIndex((elem) => elem === item.material) === -1) ? this.materialOptions.push(item.material) : null;
|
|
76
|
+
if (item.route_name)
|
|
77
|
+
this.routeNameOptions.findIndex(elem => elem === item.route_name) === -1 ? this.routeNameOptions.push(item.route_name) : null;
|
|
78
|
+
}
|
|
79
|
+
filter(value, filters) {
|
|
80
|
+
if (typeof value !== 'string') {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
const filterValue = value.toLowerCase();
|
|
84
|
+
if (filterValue === '') {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
const searchResults = [];
|
|
88
|
+
this.unitOptions.map(unit => {
|
|
89
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
90
|
+
searchResults.push({ "type": "unit", "label": unit, "value": unit });
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
this.customerOptions.map(unit => {
|
|
94
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
95
|
+
searchResults.push({ "type": "customer", "label": unit, "value": unit });
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
this.materialOptions.map(unit => {
|
|
99
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
100
|
+
searchResults.push({ "type": "material", "label": unit, "value": unit });
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
this.pickupOptions.map(unit => {
|
|
104
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
105
|
+
searchResults.push({ "type": "pickup location", "label": unit, "value": unit });
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
this.destOptions.map(unit => {
|
|
109
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
110
|
+
searchResults.push({ "type": "destination location", "label": unit, "value": unit });
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
this.jcodeOptions.map(unit => {
|
|
114
|
+
if (unit.job_code.toLowerCase().includes(filterValue)) {
|
|
115
|
+
searchResults.push({ "type": "job", "label": unit['job_code'], "value": unit });
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
this.driverOption.map(unit => {
|
|
119
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
120
|
+
searchResults.push({ "type": "Driver", "label": unit, "value": unit });
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
this.truckingCompanayOption.map(unit => {
|
|
124
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
125
|
+
searchResults.push({ "type": "Trucking Company", "label": unit, "value": unit });
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
this.routeNameOptions.map(unit => {
|
|
129
|
+
if (unit.toLowerCase().includes(filterValue)) {
|
|
130
|
+
searchResults.push({ "type": "Route name", "label": unit, "value": unit });
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
const searchDict = {};
|
|
134
|
+
filters.map((filter) => {
|
|
135
|
+
searchDict[filter['name'] + filter['type']] = filter;
|
|
136
|
+
});
|
|
137
|
+
const furtherFilter = [];
|
|
138
|
+
searchResults.map(search => {
|
|
139
|
+
if ((search['label'] + search['type']) in searchDict) { }
|
|
140
|
+
else {
|
|
141
|
+
furtherFilter.push(search);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
return furtherFilter;
|
|
145
|
+
}
|
|
146
|
+
getSearchResults(list, filterval) {
|
|
147
|
+
return list.filter(element => {
|
|
148
|
+
const result_list_boolean = [];
|
|
149
|
+
if (filterval.length > 0) {
|
|
150
|
+
if (filterval[0]['type'] === 'unit') {
|
|
151
|
+
result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type']]);
|
|
152
|
+
}
|
|
153
|
+
if (filterval[0]['type'] === 'customer') {
|
|
154
|
+
result_list_boolean.push(filterval[0]['name'] === element['customer_name']);
|
|
155
|
+
}
|
|
156
|
+
if (filterval[0]['type'] === 'material') {
|
|
157
|
+
result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type']]);
|
|
158
|
+
}
|
|
159
|
+
if (filterval[0]['type'] === 'pickup location') {
|
|
160
|
+
result_list_boolean.push(filterval[0]['name'] === element['pickup_location']);
|
|
161
|
+
}
|
|
162
|
+
if (filterval[0]['type'] === 'destination location') {
|
|
163
|
+
result_list_boolean.push(filterval[0]['name'] === element['delivery_location']);
|
|
164
|
+
}
|
|
165
|
+
if (filterval[0]['type'] === 'job') {
|
|
166
|
+
result_list_boolean.push(filterval[0]['name'] === element['order_number']);
|
|
167
|
+
}
|
|
168
|
+
if (filterval[0]['type'] === 'Route name') {
|
|
169
|
+
result_list_boolean.push(filterval[0]['name'] === element['route_name']);
|
|
170
|
+
}
|
|
171
|
+
if (filterval[0]['type'] === 'Driver') {
|
|
172
|
+
const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['driver_name']; });
|
|
173
|
+
if (index !== -1)
|
|
174
|
+
result_list_boolean.push(true);
|
|
175
|
+
}
|
|
176
|
+
if (filterval[0]['type'] === 'Trucking Company') {
|
|
177
|
+
const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['trucking_company']; });
|
|
178
|
+
if (index !== -1)
|
|
179
|
+
result_list_boolean.push(true);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (result_list_boolean.length > 0) {
|
|
183
|
+
return result_list_boolean.reduce((prev, curr) => prev && curr);
|
|
184
|
+
}
|
|
185
|
+
return false;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
clearOptions() {
|
|
189
|
+
this.pickupOptions = [];
|
|
190
|
+
this.destOptions = [];
|
|
191
|
+
this.ownerOptions = [];
|
|
192
|
+
this.customerOptions = [];
|
|
193
|
+
this.unitOptions = [];
|
|
194
|
+
this.materialOptions = [];
|
|
195
|
+
this.jcodeOptions = [];
|
|
196
|
+
this.routeNameOptions = [];
|
|
197
|
+
}
|
|
198
|
+
setdictValue(key, value) {
|
|
199
|
+
this.dict.set(key, value);
|
|
200
|
+
}
|
|
201
|
+
getdictValue(key) {
|
|
202
|
+
return JSON.parse(this.dict.get(key));
|
|
203
|
+
}
|
|
204
|
+
removedictValue(key) {
|
|
205
|
+
this.dict.delete(key);
|
|
206
|
+
}
|
|
207
|
+
conveySearchIcon(value) {
|
|
208
|
+
if (value && typeof (value) !== 'object')
|
|
209
|
+
return true;
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
fetchUnitsList() {
|
|
213
|
+
return new Promise((resolve, reject) => {
|
|
214
|
+
if (!this.unitsList) {
|
|
215
|
+
this.getData('unit/list/view').subscribe((res) => {
|
|
216
|
+
if (res) {
|
|
217
|
+
this.unitsList = res.data;
|
|
218
|
+
resolve(this.unitsList);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
resolve(this.unitsList);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
fetchMaterialsList() {
|
|
228
|
+
return new Promise((resolve, reject) => {
|
|
229
|
+
if (!this.materialsList) {
|
|
230
|
+
this.getData('material/list/view').subscribe(((res) => {
|
|
231
|
+
res.data.sort((a, b) => a.material.localeCompare(b.material));
|
|
232
|
+
this.materialsList = res.data;
|
|
233
|
+
resolve(this.materialsList);
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
resolve(this.materialsList);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
fetchMaterialsListForCustomer() {
|
|
242
|
+
return new Promise((resolve, reject) => {
|
|
243
|
+
if (!this.materialsListForCustomer) {
|
|
244
|
+
this.getData('material/list/view').subscribe(((res) => {
|
|
245
|
+
let meterialListDetails = [];
|
|
246
|
+
res.data.map((item) => {
|
|
247
|
+
if (item.sub.length > 0) {
|
|
248
|
+
item.sub.map((subItem) => {
|
|
249
|
+
if (subItem.add_to_marketplace) {
|
|
250
|
+
subItem.material = item.material;
|
|
251
|
+
subItem.material_id = item.material_id;
|
|
252
|
+
subItem.label = item.material + ' | ' + subItem.sub_material;
|
|
253
|
+
meterialListDetails.push(subItem);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
meterialListDetails.sort((a, b) => a.label.localeCompare(b.label));
|
|
259
|
+
this.materialsListForCustomer = meterialListDetails;
|
|
260
|
+
resolve(this.materialsListForCustomer);
|
|
261
|
+
}));
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
resolve(this.materialsListForCustomer);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
fetchCustomersList() {
|
|
269
|
+
return new Promise((resolve, reject) => {
|
|
270
|
+
if (!this.customersList) {
|
|
271
|
+
this.getData('company/list/view').subscribe((res) => {
|
|
272
|
+
if (res) {
|
|
273
|
+
this.customersList = res.data;
|
|
274
|
+
resolve(this.customersList);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
resolve(this.customersList);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UtilsService, deps: [{ token: i1.HttpClient }, { token: i2.MatSnackBar }, { token: 'memberData' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
284
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UtilsService, providedIn: 'root' });
|
|
285
|
+
}
|
|
286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UtilsService, decorators: [{
|
|
287
|
+
type: Injectable,
|
|
288
|
+
args: [{ providedIn: 'root' }]
|
|
289
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MatSnackBar }, { type: i3.CoolmapConfigModel, decorators: [{
|
|
290
|
+
type: Inject,
|
|
291
|
+
args: ['memberData']
|
|
292
|
+
}] }] });
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFJdkMsTUFBTSxPQUFPLFlBQVk7SUE0Qko7SUFBeUI7SUFDWjtJQTVCaEMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUMxQixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLFlBQVksR0FBVSxFQUFFLENBQUM7SUFDekIsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixZQUFZLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLHNCQUFzQixHQUFVLEVBQUUsQ0FBQztJQUNuQyxnQkFBZ0IsR0FBVSxFQUFFLENBQUM7SUFDdEIsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELHdCQUF3QixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELCtCQUErQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvRSxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCx3QkFBd0IsR0FBRyxJQUFJLENB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QyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMs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QWEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUN2RCxJQUFJLEdBQUcsRUFBRTt3QkFBRSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFBRTtnQkFDMUUsQ0FBQyxDQUFDLENBQUE7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3VHQWpRVSxZQUFZLHVFQTZCYixZQUFZOzJHQTdCWCxZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkE4QjdCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29vbG1hcENvbmZpZ01vZGVsLCBSb3V0ZSB9IGZyb20gJy4vZGF0YS1tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcbiAgYW5hbHl0aWNzUkVTVFVSTCA9ICcnO1xuICBSRVNUVVJMUHJlZml4ID0gJyc7XG4gIHBpY2t1cE9wdGlvbnM6IGFueVtdID0gW107XG4gIGRlc3RPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBvd25lck9wdGlvbnM6IGFueVtdID0gW107XG4gIGN1c3RvbWVyT3B0aW9uczogYW55W10gPSBbXTtcbiAgdW5pdE9wdGlvbnM6IGFueVtdID0gW107XG4gIG1hdGVyaWFsT3B0aW9uczogYW55W10gPSBbXTtcbiAgamNvZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBkcml2ZXJPcHRpb246IGFueVtdID0gW107XG4gIHRydWNraW5nQ29tcGFuYXlPcHRpb246IGFueVtdID0gW107XG4gIHJvdXRlTmFtZU9wdGlvbnM6IGFueVtdID0gW107XG4gIHB1YmxpYyBwcmV2ZW50bmF2Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIG5hdkNoYW5nZU9ic2VydmUgPSB0aGlzLnByZXZlbnRuYXZDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIGNsZWFyVmlld1JvdXRlZm9ySm9iQ29kZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBjbGVhclZpZXdSb3V0ZWZvckpvYkNvZGVPYnNlcnZlID0gdGhpcy5jbGVhclZpZXdSb3V0ZWZvckpvYkNvZGUuYXNPYnNlcnZhYmxlKCk7XG4gIHByZVZlbnRKb2JkZXRhaWxjbG9zZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBnZXRwcmVWZW50Sm9iZGV0YWlsY2xvc2UgPSB0aGlzLnByZVZlbnRKb2JkZXRhaWxjbG9zZS5hc09ic2VydmFibGUoKTtcbiAgcm91dGVEZXRhaWxzVXRpbGl0eSA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICBnZXRyb3V0ZURldGFpbHNVdGlsaXR5ID0gdGhpcy5yb3V0ZURldGFpbHNVdGlsaXR5LmFzT2JzZXJ2YWJsZSgpO1xuICByZW1vdmVNYXBFbnRpdHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgcmVtb3ZlTWFwRW50aXR5VXRpbGl0eSA9IHRoaXMucmVtb3ZlTWFwRW50aXR5LmFzT2JzZXJ2YWJsZSgpO1xuICBkaWN0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgdW5pdHNMaXN0OiBhbnk7XG4gIG1hdGVyaWFsc0xpc3Q6IGFueTtcbiAgbWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyOiBhbnk7XG4gIGN1c3RvbWVyc0xpc3Q6IGFueTtcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgQEluamVjdCgnbWVtYmVyRGF0YScpIHByaXZhdGUgY29uZmlnOiBDb29sbWFwQ29uZmlnTW9kZWwpIHtcbiAgICB0aGlzLmFuYWx5dGljc1JFU1RVUkwgPSBjb25maWcuYW5hbHl0aWNzUkVTVFVSTDtcbiAgICB0aGlzLlJFU1RVUkxQcmVmaXggPSBjb25maWcuUkVTVFVSTFByZWZpeDtcbiAgfVxuICBnZXREYXRlRm9ybWF0KHN0clZhbDogRGF0ZSB8IG51bGwsIHNlcHJhdGVyPzogc3RyaW5nKSB7XG4gICAgc2VwcmF0ZXIgPSBzZXByYXRlciA/IHNlcHJhdGVyIDogJy0nO1xuICAgIGNvbnN0IG15ZGF0ZSA9IHN0clZhbDtcbiAgICByZXR1cm4gbXlkYXRlPy5nZXRGdWxsWWVhcigpICsgc2VwcmF0ZXIgKyAoKG15ZGF0ZSA/IG15ZGF0ZS5nZXRNb250aCgpIDogMCkgKyAxKSArIHNlcHJhdGVyICsgbXlkYXRlPy5nZXREYXRlKCk7XG4gIH1cbiAgZ2V0RGF0YShwYXRoOiBzdHJpbmcpIHsgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hbmFseXRpY3NSRVNUVVJMfSR7dGhpcy5jb25maWcucmVwb3NpdG9yeX0vJHtwYXRofWApIH1cbiAgcG9zdGRhdGEocGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpIHsgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYW5hbHl0aWNzUkVTVFVSTH0ke3RoaXMuY29uZmlnLnJlcG9zaXRvcnl9LyR7cGF0aH1gLCBkYXRhKSB9XG4gIHBvc3REYXRhV2l0aFJlc3RVcmwocGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpIHsgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuUkVTVFVSTFByZWZpeH0ke3BhdGh9YCwgZGF0YSkgfVxuICBmZXRjaEF1dG9Db21wbGV0ZUxvY2F0aW9ucyhrZXl3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgaHR0cHM6Ly9hcGkubWFwYm94LmNvbS9nZW9jb2RpbmcvdjUvbWFwYm94LnBsYWNlcy8ke2tleXdvcmR9Lmpzb24/YWNjZXNzX3Rva2VuPSR7dGhpcy5jb25maWcubWFwYm94QWNjZXNzVG9rZW59JmNvdW50cnk9VVNgKVxuICB9XG4gIG9wZW5TbmFja0JhcihtZXNzYWdlOiBzdHJpbmcsIGNsYXNzTmFtZT86IHN0cmluZykge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlLCAnJywge1xuICAgICAgZHVyYXRpb246IDUwMDAsIHZlcnRpY2FsUG9zaXRpb246ICd0b3AnLCBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLCBwYW5lbENsYXNzOiBbY2xhc3NOYW1lID8gY2xhc3NOYW1lIDogJ2RlZmF1bHQnXVxuICAgIH0pO1xuICB9XG5cbiAgbWFrZU9wdGlvbnMoaXRlbTogUm91dGUpIHtcbiAgICBpZiAoaXRlbS5vcmRlcl9udW1iZXIpIHtcbiAgICAgICh0aGlzLmpjb2RlT3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0uam9iX2lkID09PSBpdGVtLmpvYl9pZCkgPT09IC0xKSA/IHRoaXMuamNvZGVPcHRpb25zLnB1c2goeyBqb2JfY29kZTogaXRlbS5vcmRlcl9udW1iZXIsIGpvYl9pZDogaXRlbS5qb2JfaWQgfSkgOiBudWxsO1xuICAgICAgaWYgKGl0ZW0uZHJpdmVyX2xpc3QgJiYgaXRlbS5kcml2ZXJfbGlzdD8ubGVuZ3RoID4gMCkge1xuICAgICAgICBpdGVtLmRyaXZlcl9saXN0LmZvckVhY2goKGRyaXZlcikgPT4ge1xuICAgICAgICAgIHRoaXMuZHJpdmVyT3B0aW9uLmZpbmRJbmRleChlbGVtID0+IGVsZW0gPT09IGRyaXZlclsnZHJpdmVyX25hbWUnXSkgPT09IC0xID8gdGhpcy5kcml2ZXJPcHRpb24ucHVzaChkcml2ZXJbJ2RyaXZlcl9uYW1lJ10pIDogbnVsbDtcbiAgICAgICAgICB0aGlzLnRydWNraW5nQ29tcGFuYXlPcHRpb24uZmluZEluZGV4KGVsZW0gPT4gZWxlbSA9PT0gZHJpdmVyWyd0cnVja2luZ19jb21wYW55J10pID09PSAtMSA/IHRoaXMudHJ1Y2tpbmdDb21wYW5heU9wdGlvbi5wdXNoKGRyaXZlclsndHJ1Y2tpbmdfY29tcGFueSddKSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICAoKHRoaXMucGlja3VwT3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0ucGlja3VwX2xvY2F0aW9uKSkgPT09IC0xKSA/IHRoaXMucGlja3VwT3B0aW9ucy5wdXNoKGl0ZW0ucGlja3VwX2xvY2F0aW9uKSA6IG51bGw7XG4gICAgKCh0aGlzLmRlc3RPcHRpb25zLmZpbmRJbmRleCgoZWxlbSkgPT4gZWxlbSA9PT0gaXRlbS5kZWxpdmVyeV9sb2NhdGlvbikpID09PSAtMSkgPyB0aGlzLmRlc3RPcHRpb25zLnB1c2goaXRlbS5kZWxpdmVyeV9sb2NhdGlvbikgOiBudWxsO1xuICAgICh0aGlzLmN1c3RvbWVyT3B0aW9ucy5maW5kSW5kZXgoKGN1c3RvbWVyKSA9PiBjdXN0b21lciA9PT0gaXRlbS5jdXN0b21lcl9uYW1lKSA9PT0gLTEpID8gdGhpcy5jdXN0b21lck9wdGlvbnMucHVzaChpdGVtLmN1c3RvbWVyX25hbWUpIDogbnVsbDtcbiAgICAodGhpcy51bml0T3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0udW5pdCkgPT09IC0xKSA/IHRoaXMudW5pdE9wdGlvbnMucHVzaChpdGVtLnVuaXQpIDogbnVsbDtcbiAgICAodGhpcy5tYXRlcmlhbE9wdGlvbnMuZmluZEluZGV4KChlbGVtKSA9PiBlbGVtID09PSBpdGVtLm1hdGVyaWFsKSA9PT0gLTEpID8gdGhpcy5tYXRlcmlhbE9wdGlvbnMucHVzaChpdGVtLm1hdGVyaWFsKSA6IG51bGw7XG4gICAgaWYgKGl0ZW0ucm91dGVfbmFtZSkgdGhpcy5yb3V0ZU5hbWVPcHRpb25zLmZpbmRJbmRleChlbGVtID0+IGVsZW0gPT09IGl0ZW0ucm91dGVfbmFtZSkgPT09IC0xID8gdGhpcy5yb3V0ZU5hbWVPcHRpb25zLnB1c2goaXRlbS5yb3V0ZV9uYW1lKSA6IG51bGw7XG4gIH1cblxuICBmaWx0ZXIodmFsdWU6IHN0cmluZywgZmlsdGVyczogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHsgcmV0dXJuIFtdIH1cbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGZpbHRlclZhbHVlID09PSAnJykgeyByZXR1cm4gW10gfVxuICAgIGNvbnN0IHNlYXJjaFJlc3VsdHM6IGFueVtdID0gW107XG4gICAgdGhpcy51bml0T3B0aW9ucy5tYXAodW5pdCA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyBcInR5cGVcIjogXCJ1bml0XCIsIFwibGFiZWxcIjogdW5pdCwgXCJ2YWx1ZVwiOiB1bml0IH0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21lck9wdGlvbnMubWFwKHVuaXQgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgXCJ0eXBlXCI6IFwiY3VzdG9tZXJcIiwgXCJsYWJlbFwiOiB1bml0LCBcInZhbHVlXCI6IHVuaXQgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1hdGVyaWFsT3B0aW9ucy5tYXAodW5pdCA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyBcInR5cGVcIjogXCJtYXRlcmlhbFwiLCBcImxhYmVsXCI6IHVuaXQsIFwidmFsdWVcIjogdW5pdCB9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGlja3VwT3B0aW9ucy5tYXAodW5pdCA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyBcInR5cGVcIjogXCJwaWNrdXAgbG9jYXRpb25cIiwgXCJsYWJlbFwiOiB1bml0LCBcInZhbHVlXCI6IHVuaXQgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmRlc3RPcHRpb25zLm1hcCh1bml0ID0+IHtcbiAgICAgIGlmICh1bml0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7IFwidHlwZVwiOiBcImRlc3RpbmF0aW9uIGxvY2F0aW9uXCIsIFwibGFiZWxcIjogdW5pdCwgXCJ2YWx1ZVwiOiB1bml0IH0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5qY29kZU9wdGlvbnMubWFwKHVuaXQgPT4ge1xuICAgICAgaWYgKHVuaXQuam9iX2NvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgXCJ0eXBlXCI6IFwiam9iXCIsIFwibGFiZWxcIjogdW5pdFsnam9iX2NvZGUnXSwgXCJ2YWx1ZVwiOiB1bml0IH0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kcml2ZXJPcHRpb24ubWFwKHVuaXQgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgXCJ0eXBlXCI6IFwiRHJpdmVyXCIsIFwibGFiZWxcIjogdW5pdCwgXCJ2YWx1ZVwiOiB1bml0IH0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnRydWNraW5nQ29tcGFuYXlPcHRpb24ubWFwKHVuaXQgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgXCJ0eXBlXCI6IFwiVHJ1Y2tpbmcgQ29tcGFueVwiLCBcImxhYmVsXCI6IHVuaXQsIFwidmFsdWVcIjogdW5pdCB9KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucm91dGVOYW1lT3B0aW9ucy5tYXAodW5pdCA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyBcInR5cGVcIjogXCJSb3V0ZSBuYW1lXCIsIFwibGFiZWxcIjogdW5pdCwgXCJ2YWx1ZVwiOiB1bml0IH0pXG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgc2VhcmNoRGljdDogYW55ID0ge31cbiAgICBmaWx0ZXJzLm1hcCgoZmlsdGVyOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pID0+IHtcbiAgICAgIHNlYXJjaERpY3RbZmlsdGVyWyduYW1lJ10gKyBmaWx0ZXJbJ3R5cGUnXV0gPSBmaWx0ZXI7XG4gICAgfSlcbiAgICBjb25zdCBmdXJ0aGVyRmlsdGVyOiBhbnlbXSA9IFtdO1xuICAgIHNlYXJjaFJlc3VsdHMubWFwKHNlYXJjaCA9PiB7XG4gICAgICBpZiAoKHNlYXJjaFsnbGFiZWwnXSArIHNlYXJjaFsndHlwZSddKSBpbiBzZWFyY2hEaWN0KSB7IH1cbiAgICAgIGVsc2UgeyBmdXJ0aGVyRmlsdGVyLnB1c2goc2VhcmNoKSB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1cnRoZXJGaWx0ZXI7XG4gIH1cblxuICBnZXRTZWFyY2hSZXN1bHRzKGxpc3Q6IFJvdXRlW10sIGZpbHRlcnZhbDogYW55KTogYW55IHtcbiAgICByZXR1cm4gbGlzdC5maWx0ZXIoZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCByZXN1bHRfbGlzdF9ib29sZWFuID0gW11cbiAgICAgIGlmIChmaWx0ZXJ2YWwubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICd1bml0Jykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlbWVudFtmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSBhcyBrZXlvZiBSb3V0ZV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ2N1c3RvbWVyJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlbWVudFsnY3VzdG9tZXJfbmFtZSddKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdtYXRlcmlhbCcpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZW1lbnRbZmlsdGVydmFsWzBdWyd0eXBlJ10gYXMga2V5b2YgUm91dGVdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdwaWNrdXAgbG9jYXRpb24nKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydwaWNrdXBfbG9jYXRpb24nXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnZGVzdGluYXRpb24gbG9jYXRpb24nKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydkZWxpdmVyeV9sb2NhdGlvbiddKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdqb2InKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydvcmRlcl9udW1iZXInXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnUm91dGUgbmFtZScpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZW1lbnRbJ3JvdXRlX25hbWUnXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnRHJpdmVyJykge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudC5kcml2ZXJfbGlzdD8uZmluZEluZGV4KGVsZSA9PiB7IHJldHVybiBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlWydkcml2ZXJfbmFtZSddIH0pO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdUcnVja2luZyBDb21wYW55Jykge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudC5kcml2ZXJfbGlzdD8uZmluZEluZGV4KGVsZSA9PiB7IHJldHVybiBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlWyd0cnVja2luZ19jb21wYW55J10gfSk7XG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0X2xpc3RfYm9vbGVhbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHRfbGlzdF9ib29sZWFuLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiAmJiBjdXJyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyT3B0aW9ucygpIHtcbiAgICB0aGlzLnBpY2t1cE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLmRlc3RPcHRpb25zID0gW107XG4gICAgdGhpcy5vd25lck9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLmN1c3RvbWVyT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMudW5pdE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLm1hdGVyaWFsT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMuamNvZGVPcHRpb25zID0gW107XG4gICAgdGhpcy5yb3V0ZU5hbWVPcHRpb25zID0gW107XG4gIH1cbiAgc2V0ZGljdFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaWN0LnNldChrZXksIHZhbHVlKTtcbiAgfVxuICBnZXRkaWN0VmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRpY3QuZ2V0KGtleSkpO1xuICB9XG4gIHJlbW92ZWRpY3RWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZGljdC5kZWxldGUoa2V5KTtcbiAgfVxuICBjb252ZXlTZWFyY2hJY29uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mICh2YWx1ZSkgIT09ICdvYmplY3QnKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBmZXRjaFVuaXRzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnVuaXRzTGlzdCkge1xuICAgICAgICB0aGlzLmdldERhdGEoJ3VuaXQvbGlzdC92aWV3Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHsgdGhpcy51bml0c0xpc3QgPSByZXMuZGF0YTsgcmVzb2x2ZSh0aGlzLnVuaXRzTGlzdCk7IH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodGhpcy51bml0c0xpc3QpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBmZXRjaE1hdGVyaWFsc0xpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXRlcmlhbHNMaXN0KSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgnbWF0ZXJpYWwvbGlzdC92aWV3Jykuc3Vic2NyaWJlKCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICByZXMuZGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYS5tYXRlcmlhbC5sb2NhbGVDb21wYXJlKGIubWF0ZXJpYWwpKVxuICAgICAgICAgIHRoaXMubWF0ZXJpYWxzTGlzdCA9IHJlcy5kYXRhXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3QpO1xuICAgICAgICB9KSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5tYXRlcmlhbHNMaXN0KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGZldGNoTWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyKSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgnbWF0ZXJpYWwvbGlzdC92aWV3Jykuc3Vic2NyaWJlKCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgbWV0ZXJpYWxMaXN0RGV0YWlscyA9IFtdXG4gICAgICAgICAgcmVzLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnN1Yi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGl0ZW0uc3ViLm1hcCgoc3ViSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdWJJdGVtLmFkZF90b19tYXJrZXRwbGFjZSkge1xuICAgICAgICAgICAgICAgICAgc3ViSXRlbS5tYXRlcmlhbCA9IGl0ZW0ubWF0ZXJpYWw7XG4gICAgICAgICAgICAgICAgICBzdWJJdGVtLm1hdGVyaWFsX2lkID0gaXRlbS5tYXRlcmlhbF9pZDtcbiAgICAgICAgICAgICAgICAgIHN1Ykl0ZW0ubGFiZWwgPSBpdGVtLm1hdGVyaWFsICsgJyB8ICcgKyBzdWJJdGVtLnN1Yl9tYXRlcmlhbDtcbiAgICAgICAgICAgICAgICAgIG1ldGVyaWFsTGlzdERldGFpbHMucHVzaChzdWJJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbWV0ZXJpYWxMaXN0RGV0YWlscy5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgICAgICB0aGlzLm1hdGVyaWFsc0xpc3RGb3JDdXN0b21lciA9IG1ldGVyaWFsTGlzdERldGFpbHM7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3RGb3JDdXN0b21lcik7XG4gICAgICAgIH0pKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3RGb3JDdXN0b21lcik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGZldGNoQ3VzdG9tZXJzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmN1c3RvbWVyc0xpc3QpIHtcbiAgICAgICAgdGhpcy5nZXREYXRhKCdjb21wYW55L2xpc3QvdmlldycpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7IHRoaXMuY3VzdG9tZXJzTGlzdCA9IHJlcy5kYXRhOyByZXNvbHZlKHRoaXMuY3VzdG9tZXJzTGlzdCk7IH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5jdXN0b21lcnNMaXN0KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG59Il19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of @aggdirect/coolmap-services
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/service/coolmap.service';
|
|
5
|
-
export * from './lib/service/utils.service';
|
|
6
|
-
export * from './lib/service/data-model';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of @aggdirect/coolmap-services
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/service/coolmap.service';
|
|
5
|
+
export * from './lib/service/utils.service';
|
|
6
|
+
export * from './lib/service/data-model';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgQGFnZ2RpcmVjdC9jb29sbWFwLXNlcnZpY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29vbG1hcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXRpbHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2RhdGEtbW9kZWwnO1xuIl19
|