kwikid-agent-dashboard 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/bundles/kwikid-agent-dashboard.umd.js +3655 -1317
  2. package/bundles/kwikid-agent-dashboard.umd.js.map +1 -1
  3. package/esm2015/lib/kwikid-agent-dashboard.component.js +39 -120
  4. package/esm2015/lib/kwikid-agent-dashboard.module.js +26 -35
  5. package/esm2015/lib/v1/components/action-button/action-button.component.js +91 -0
  6. package/esm2015/lib/v1/components/customer-details/customer-details.component.js +139 -0
  7. package/esm2015/lib/v1/components/customer-list/customer-list.component.js +201 -0
  8. package/esm2015/lib/v1/components/customer-tile/customer-tile.component.js +137 -0
  9. package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.component.js +54 -0
  10. package/esm2015/lib/v1/components/customer-tile/status-pill/status-pill.definitions.js +36 -0
  11. package/esm2015/lib/v1/helpers/maps.helpers.js +46 -0
  12. package/esm2015/lib/v1/kwikid-agent-dashboard.component.js +177 -0
  13. package/esm2015/lib/v1/kwikid-agent-dashboard.module.js +120 -0
  14. package/esm2015/lib/v1/pipes/search-filter.pipe.js +62 -0
  15. package/esm2015/lib/v1/services/agent.service.js +149 -0
  16. package/esm2015/lib/v1/services/google-maps.service.js +201 -0
  17. package/esm2015/lib/v1/services/open-street-maps.service.js +252 -0
  18. package/esm2015/lib/v2/components/agent-info/agent-info.component.js +20 -0
  19. package/esm2015/lib/v2/components/agent-info/agent-info.module.js +37 -0
  20. package/esm2015/lib/v2/components/bottom-sheet/bottom-sheet.component.js +111 -0
  21. package/esm2015/lib/v2/components/bottom-sheet/bottom-sheet.module.js +41 -0
  22. package/esm2015/lib/v2/components/components.module.js +79 -0
  23. package/esm2015/lib/v2/components/map-view/map-view.component.js +39 -0
  24. package/esm2015/lib/v2/components/map-view/map-view.module.js +37 -0
  25. package/esm2015/lib/v2/components/primary-actions/primary-actions.component.js +65 -0
  26. package/esm2015/lib/v2/components/primary-actions/primary-actions.module.js +54 -0
  27. package/esm2015/lib/v2/components/task-detail/task-detail.component.js +82 -0
  28. package/esm2015/lib/v2/components/task-detail/task-detail.module.js +41 -0
  29. package/esm2015/lib/v2/components/task-item/task-item.component.js +107 -0
  30. package/esm2015/lib/v2/components/task-item/task-item.constant.js +12 -0
  31. package/esm2015/lib/v2/components/task-item/task-item.module.js +45 -0
  32. package/esm2015/lib/v2/components/task-item-status/task-item-status.component.js +51 -0
  33. package/esm2015/lib/v2/components/task-item-status/task-item-status.module.js +19 -0
  34. package/esm2015/lib/v2/components/task-list/task-list.component.js +186 -0
  35. package/esm2015/lib/v2/components/task-list/task-list.module.js +57 -0
  36. package/esm2015/lib/v2/components/task-list-search/task-list-search.component.js +118 -0
  37. package/esm2015/lib/v2/components/task-list-search/task-list-search.module.js +41 -0
  38. package/esm2015/lib/v2/components/task-preview/task-preview.component.js +30 -0
  39. package/esm2015/lib/v2/components/task-preview/task-preview.module.js +37 -0
  40. package/esm2015/lib/v2/helpers/array.helper.js +10 -0
  41. package/esm2015/lib/v2/helpers/date.helplers.js +17 -0
  42. package/esm2015/lib/v2/kwikid-agent-dashboard.component.js +61 -0
  43. package/esm2015/lib/v2/kwikid-agent-dashboard.module.js +45 -0
  44. package/esm2015/lib/v2/layout/layout-body/layout-body.component.js +274 -0
  45. package/esm2015/lib/v2/layout/layout-body/layout-body.module.js +55 -0
  46. package/esm2015/lib/v2/layout/layout-header/layout-header.component.js +60 -0
  47. package/esm2015/lib/v2/layout/layout-header/layout-header.module.js +48 -0
  48. package/esm2015/lib/v2/layout/layout.module.js +18 -0
  49. package/esm2015/lib/v2/pipes/search-filter.pipe.js +62 -0
  50. package/fesm2015/kwikid-agent-dashboard.js +3255 -1100
  51. package/fesm2015/kwikid-agent-dashboard.js.map +1 -1
  52. package/lib/kwikid-agent-dashboard.component.d.ts +11 -36
  53. package/lib/kwikid-agent-dashboard.module.d.ts +13 -16
  54. package/lib/v1/components/action-button/action-button.component.d.ts +18 -0
  55. package/lib/{components → v1/components}/customer-details/customer-details.component.d.ts +13 -6
  56. package/lib/{components → v1/components}/customer-list/customer-list.component.d.ts +25 -15
  57. package/lib/{components → v1/components}/customer-tile/customer-tile.component.d.ts +12 -5
  58. package/lib/{components → v1/components}/customer-tile/status-pill/status-pill.component.d.ts +6 -2
  59. package/lib/{components → v1/components}/customer-tile/status-pill/status-pill.definitions.d.ts +1 -1
  60. package/lib/v1/kwikid-agent-dashboard.component.d.ts +54 -0
  61. package/lib/v1/kwikid-agent-dashboard.module.d.ts +23 -0
  62. package/lib/{pipes → v1/pipes}/search-filter.pipe.d.ts +1 -1
  63. package/lib/{services → v1/services}/agent.service.d.ts +1 -1
  64. package/lib/{services → v1/services}/google-maps.service.d.ts +4 -4
  65. package/lib/{services → v1/services}/open-street-maps.service.d.ts +5 -5
  66. package/lib/v2/components/agent-info/agent-info.component.d.ts +8 -0
  67. package/lib/v2/components/agent-info/agent-info.module.d.ts +11 -0
  68. package/lib/v2/components/bottom-sheet/bottom-sheet.component.d.ts +24 -0
  69. package/lib/v2/components/bottom-sheet/bottom-sheet.module.d.ts +12 -0
  70. package/lib/v2/components/components.module.d.ts +15 -0
  71. package/lib/v2/components/map-view/map-view.component.d.ts +10 -0
  72. package/lib/v2/components/map-view/map-view.module.d.ts +11 -0
  73. package/lib/v2/components/primary-actions/primary-actions.component.d.ts +14 -0
  74. package/lib/v2/components/primary-actions/primary-actions.module.d.ts +13 -0
  75. package/lib/v2/components/task-detail/task-detail.component.d.ts +23 -0
  76. package/lib/v2/components/task-detail/task-detail.module.d.ts +12 -0
  77. package/lib/v2/components/task-item/task-item.component.d.ts +23 -0
  78. package/lib/v2/components/task-item/task-item.constant.d.ts +11 -0
  79. package/lib/v2/components/task-item/task-item.module.d.ts +13 -0
  80. package/lib/v2/components/task-item-status/task-item-status.component.d.ts +14 -0
  81. package/lib/v2/components/task-item-status/task-item-status.module.d.ts +9 -0
  82. package/lib/v2/components/task-list/task-list.component.d.ts +45 -0
  83. package/lib/v2/components/task-list/task-list.module.d.ts +16 -0
  84. package/lib/v2/components/task-list-search/task-list-search.component.d.ts +34 -0
  85. package/lib/v2/components/task-list-search/task-list-search.module.d.ts +12 -0
  86. package/lib/v2/components/task-preview/task-preview.component.d.ts +11 -0
  87. package/lib/v2/components/task-preview/task-preview.module.d.ts +11 -0
  88. package/lib/v2/helpers/array.helper.d.ts +1 -0
  89. package/lib/v2/helpers/date.helplers.d.ts +3 -0
  90. package/lib/v2/kwikid-agent-dashboard.component.d.ts +17 -0
  91. package/lib/v2/kwikid-agent-dashboard.module.d.ts +13 -0
  92. package/lib/v2/layout/layout-body/layout-body.component.d.ts +42 -0
  93. package/lib/v2/layout/layout-body/layout-body.module.d.ts +14 -0
  94. package/lib/v2/layout/layout-header/layout-header.component.d.ts +20 -0
  95. package/lib/v2/layout/layout-header/layout-header.module.d.ts +13 -0
  96. package/lib/v2/layout/layout.module.d.ts +8 -0
  97. package/lib/v2/pipes/search-filter.pipe.d.ts +25 -0
  98. package/package.json +2 -2
  99. package/esm2015/lib/components/customer-details/customer-details.component.js +0 -90
  100. package/esm2015/lib/components/customer-list/customer-list.component.js +0 -165
  101. package/esm2015/lib/components/customer-tile/customer-tile.component.js +0 -87
  102. package/esm2015/lib/components/customer-tile/status-pill/status-pill.component.js +0 -32
  103. package/esm2015/lib/components/customer-tile/status-pill/status-pill.definitions.js +0 -36
  104. package/esm2015/lib/helpers/maps.helpers.js +0 -46
  105. package/esm2015/lib/pipes/search-filter.pipe.js +0 -62
  106. package/esm2015/lib/services/agent.service.js +0 -153
  107. package/esm2015/lib/services/google-maps.service.js +0 -201
  108. package/esm2015/lib/services/open-street-maps.service.js +0 -252
  109. /package/lib/{helpers → v1/helpers}/maps.helpers.d.ts +0 -0
@@ -0,0 +1,252 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable, ViewChildren } from "@angular/core";
3
+ import * as L from "leaflet";
4
+ import "leaflet-routing-machine";
5
+ import { checkObjectPathExists, getObjectValueFromPath, isNotEmptyArray } from "kwikid-toolkit";
6
+ import { addressConcator, nearestNeighborAlgorithm } from "../helpers/maps.helpers";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./agent.service";
9
+ import * as i2 from "@angular/google-maps";
10
+ import * as i3 from "@angular/common/http";
11
+ export class OpenStreetMapsService {
12
+ constructor(agentService, mapDirectionsService, httpClient) {
13
+ this.agentService = agentService;
14
+ this.mapDirectionsService = mapDirectionsService;
15
+ this.httpClient = httpClient;
16
+ this.allMarkers = [];
17
+ }
18
+ // To get Current Position
19
+ getPosition() {
20
+ return new Promise((resolve, reject) => {
21
+ navigator.geolocation.watchPosition((resp) => {
22
+ resolve({
23
+ lng: resp.coords.longitude,
24
+ lat: resp.coords.latitude
25
+ });
26
+ }, (err) => {
27
+ reject(err);
28
+ });
29
+ });
30
+ }
31
+ // To extract Location from the Task Details
32
+ getLocation(task) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
36
+ let encodedAddres;
37
+ // If Fetch Address from Multiple Paths
38
+ if (checkObjectPathExists(this.agentService.config, "dashboard.taskLocationPaths")) {
39
+ // Get address string from multiple paths
40
+ const config = this.agentService.config.dashboard.taskLocationPaths;
41
+ const address = addressConcator(task, config);
42
+ // Encode the Address in URI
43
+ encodedAddres = encodeURI(address);
44
+ }
45
+ // If Fetch Address from Single Path
46
+ else if (checkObjectPathExists(this.agentService.config, "dashboard.taskLocationPath")) {
47
+ // Get Address from Single Path
48
+ const config = this.agentService.config.dashboard.taskLocationPath;
49
+ const address = getObjectValueFromPath(task, config);
50
+ // Encode the Address in URI
51
+ encodedAddres = encodeURI(address);
52
+ }
53
+ // Default Address Paths Avaiable
54
+ else {
55
+ const address = (_k = (_j = (_g = (_d = (_c = (_b = (_a = task === null || task === void 0 ? void 0 : task.extras) === null || _a === void 0 ? void 0 : _a.task_details) === null || _b === void 0 ? void 0 : _b.customer_details) === null || _c === void 0 ? void 0 : _c.address) !== null && _d !== void 0 ? _d : (_f = (_e = task === null || task === void 0 ? void 0 : task.task_details) === null || _e === void 0 ? void 0 : _e.customer_details) === null || _f === void 0 ? void 0 : _f.address) !== null && _g !== void 0 ? _g : (_h = task === null || task === void 0 ? void 0 : task.extras) === null || _h === void 0 ? void 0 : _h.address) !== null && _j !== void 0 ? _j : task === null || task === void 0 ? void 0 : task.address) !== null && _k !== void 0 ? _k : "";
56
+ // Encode the Address in URI
57
+ encodedAddres = encodeURI(address);
58
+ }
59
+ // URL to geocode Address String to Latitude & Longitude
60
+ const url = `https://nominatim.openstreetmap.org/search?q=${encodedAddres}&format=json`;
61
+ const response = yield fetch(url);
62
+ const data = yield response.json();
63
+ // Set Location {lat: LAT, lng: LNG} from address geocoded
64
+ const isValidLocation = isNotEmptyArray(data) && ((_l = data[0]) === null || _l === void 0 ? void 0 : _l.lat) & ((_m = data[0]) === null || _m === void 0 ? void 0 : _m.lon);
65
+ const location = isValidLocation
66
+ ? { lat: (_o = data[0]) === null || _o === void 0 ? void 0 : _o.lat, lng: (_p = data[0]) === null || _p === void 0 ? void 0 : _p.lon }
67
+ : { lat: null, lng: null };
68
+ // Set Location validation & Google Maps URL
69
+ location.isValidLocation = isValidLocation;
70
+ location.color = isValidLocation ? "blue" : "red";
71
+ location.googleMapsUrl = `https://www.google.com/maps/place/${location === null || location === void 0 ? void 0 : location.lat},${location === null || location === void 0 ? void 0 : location.lng}`;
72
+ resolve(location);
73
+ }));
74
+ });
75
+ }
76
+ // Get Tasks | Markers Location Co Ordinates
77
+ getMarkersLocation(myMarker, tasks) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
80
+ const markers = [];
81
+ markers.push(myMarker);
82
+ const promises = tasks.map((task) => __awaiter(this, void 0, void 0, function* () {
83
+ const marker = yield this.getLocation(task);
84
+ task = Object.assign(Object.assign({}, task), marker);
85
+ markers.push(task);
86
+ }));
87
+ yield Promise.all(promises);
88
+ resolve(markers);
89
+ }));
90
+ });
91
+ }
92
+ // To Initialize Open Street Map
93
+ initializeMap() {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ console.log("Running Init Open Street Maps");
96
+ this.myPosition = yield this.getPosition();
97
+ this.map = L.map("map", {
98
+ center: [this.myPosition.lat, this.myPosition.lng],
99
+ zoom: 11
100
+ });
101
+ L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png").addTo(this.map);
102
+ });
103
+ }
104
+ // To Add Open Street Marker in Map
105
+ addMarker({ lat, lng, title, color }) {
106
+ L.marker([lat, lng], {
107
+ icon: L.icon({
108
+ iconUrl: color == "red"
109
+ ? "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/assets/map-marker-0.png"
110
+ : "https://kwikid.s3.ap-south-1.amazonaws.com/CONFIG/USER/assets/map-marker-1.png"
111
+ })
112
+ })
113
+ .addTo(this.map)
114
+ .bindPopup(title);
115
+ }
116
+ // To Plot Open Street Directions for All Tasks
117
+ plotDirectionsForAllTasks(tasks) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ if (this.map) {
120
+ this.allMarkers = [];
121
+ // Create Agent Marker & Plot It.
122
+ const myMarker = {
123
+ lat: this.myPosition.lat,
124
+ lng: this.myPosition.lng,
125
+ title: 0,
126
+ color: "red"
127
+ };
128
+ this.addMarker(myMarker);
129
+ this.allMarkers.push(myMarker);
130
+ // Create Markers for all Tasks
131
+ this.allMarkers = yield this.getMarkersLocation(myMarker, tasks);
132
+ // Run Algorithm to get optimized Routes
133
+ const startingPoint = this.allMarkers[0];
134
+ const unvisitedWaypoints = this.allMarkers.slice(1);
135
+ const optimizedRoute = nearestNeighborAlgorithm(startingPoint, unvisitedWaypoints);
136
+ // Sort All Markers as per optimized routes
137
+ this.allMarkers = this.sortTasksAsPerDistance(optimizedRoute, this.allMarkers, true);
138
+ // Sort All Tasks as per optimized routes
139
+ tasks = this.sortTasksAsPerDistance(optimizedRoute.slice(1), tasks, false);
140
+ // Plot Markers for All Tasks
141
+ tasks.map((task) => {
142
+ if (task === null || task === void 0 ? void 0 : task.isValidLocation) {
143
+ const marker = this.getLocation(task);
144
+ this.addMarker(marker);
145
+ }
146
+ });
147
+ // Set Styles for all Task Routes
148
+ const styles = [
149
+ { color: "blue", opacity: 1, weight: 8 },
150
+ { color: "white", opacity: 0.6, weight: 12 }
151
+ ];
152
+ // Set Routes for all Tasks
153
+ this.allTasksRoutes = this.setRoutes(this.allMarkers, styles);
154
+ this.fitMapBounds();
155
+ }
156
+ return tasks;
157
+ });
158
+ }
159
+ // To plot Open Street Direction for selected Task
160
+ plotDirectionsForSelectedTask(task) {
161
+ if (task !== null) {
162
+ // Remove Previously Selected Task Route
163
+ if (this.selectedTaskRoutes) {
164
+ this.map.removeControl(this.selectedTaskRoutes);
165
+ }
166
+ // Remove All Tasks Routes
167
+ if (this.allTasksRoutes) {
168
+ this.map.removeControl(this.allTasksRoutes);
169
+ }
170
+ const taskMarker = task;
171
+ // If Location is Available in Task Details
172
+ if (taskMarker.color != "red") {
173
+ const markers = [this.allMarkers[0], taskMarker];
174
+ const styles = [
175
+ { color: "green", opacity: 1, weight: 8 },
176
+ { color: "white", opacity: 0.4, weight: 12 }
177
+ ];
178
+ this.selectedTaskRoutes = this.setRoutes(markers, styles);
179
+ this.setSelectedTaskDistanceAndTime();
180
+ }
181
+ else {
182
+ alert("No Location Available");
183
+ }
184
+ }
185
+ // Set All Tasks Routes Again & Remove Selected Tasks route
186
+ else {
187
+ if (this.selectedTaskRoutes) {
188
+ this.map.removeControl(this.selectedTaskRoutes);
189
+ }
190
+ this.map.addControl(this.allTasksRoutes);
191
+ this.selectedTaskRoutes = undefined;
192
+ }
193
+ this.fitMapBounds();
194
+ }
195
+ // Get Distance & Time of Selected Task
196
+ getSelectedTaskDistanceAndTime() {
197
+ return this.selectedTaskDistanceAndTime;
198
+ }
199
+ // Set Distance & Time of Selected Task
200
+ setSelectedTaskDistanceAndTime() {
201
+ this.selectedTaskRoutes.on("routesfound", function (e) {
202
+ const { routes } = e;
203
+ const { summary } = routes[0];
204
+ const distance = summary.totalDistance / 1000;
205
+ const time = Math.round((summary.totalTime % 3600) / 60);
206
+ this.selectedTaskDistanceAndTime = {
207
+ distance,
208
+ time
209
+ };
210
+ });
211
+ }
212
+ // To sort Open Street Maps Task as per nearest distance
213
+ sortTasksAsPerDistance(order, tasks, isMarker) {
214
+ const sortedTasks = [];
215
+ for (let i = 0; i < tasks.length; i++) {
216
+ const title = isMarker ? order[i].title : order[i].title - 1;
217
+ const task = tasks[title];
218
+ sortedTasks.push(task);
219
+ }
220
+ return sortedTasks;
221
+ }
222
+ // To set Open Street routes in the maps
223
+ setRoutes(markers, styles) {
224
+ return L.Routing.control({
225
+ waypoints: markers,
226
+ lineOptions: {
227
+ styles
228
+ },
229
+ createMarker() {
230
+ return null;
231
+ },
232
+ routeWhileDragging: true
233
+ }).addTo(this.map);
234
+ }
235
+ // To set Open Street view point on the map
236
+ fitMapBounds() {
237
+ const markerLatLngs = this.allMarkers.map((marker) => L.latLng(marker.lat, marker.lng));
238
+ this.map.fitBounds(markerLatLngs);
239
+ }
240
+ }
241
+ /** @nocollapse */ OpenStreetMapsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OpenStreetMapsService, deps: [{ token: i1.AgentService }, { token: i2.MapDirectionsService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
242
+ /** @nocollapse */ OpenStreetMapsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OpenStreetMapsService, providedIn: "root" });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OpenStreetMapsService, decorators: [{
244
+ type: Injectable,
245
+ args: [{
246
+ providedIn: "root"
247
+ }]
248
+ }], ctorParameters: function () { return [{ type: i1.AgentService }, { type: i2.MapDirectionsService }, { type: i3.HttpClient }]; }, propDecorators: { directionsRenders: [{
249
+ type: ViewChildren,
250
+ args: ["directionsRender"]
251
+ }] } });
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1zdHJlZXQtbWFwcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YxL3NlcnZpY2VzL29wZW4tc3RyZWV0LW1hcHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFjLFVBQVUsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxLQUFLLENBQUMsTUFBTSxTQUFTLENBQUM7QUFDN0IsT0FBTyx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEIsT0FBTyxFQUNMLGVBQWUsRUFDZix3QkFBd0IsRUFDekIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFLakMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCaEMsWUFDVSxZQUEwQixFQUMzQixvQkFBMEMsRUFDMUMsVUFBc0I7UUFGckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZi9CLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFnQmxCLENBQUM7SUFFSiwwQkFBMEI7SUFDMUIsV0FBVztRQUNULE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQ2pDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1AsT0FBTyxDQUFDO29CQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7b0JBQzFCLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7aUJBQzFCLENBQUMsQ0FBQztZQUNMLENBQUMsRUFDRCxDQUFD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QyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O3NJQWxUVSxxQkFBcUI7MElBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7K0pBY21DLGlCQUFpQjtzQkFBbEQsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgKiBhcyBMIGZyb20gXCJsZWFmbGV0XCI7XG5pbXBvcnQgXCJsZWFmbGV0LXJvdXRpbmctbWFjaGluZVwiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RQYXRoRXhpc3RzLFxuICBnZXRPYmplY3RWYWx1ZUZyb21QYXRoLFxuICBpc05vdEVtcHR5QXJyYXlcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbmltcG9ydCB7IE1hcERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIkBhbmd1bGFyL2dvb2dsZS1tYXBzXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBBZ2VudFNlcnZpY2UgfSBmcm9tIFwiLi9hZ2VudC5zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICBhZGRyZXNzQ29uY2F0b3IsXG4gIG5lYXJlc3ROZWlnaGJvckFsZ29yaXRobVxufSBmcm9tIFwiLi4vaGVscGVycy9tYXBzLmhlbHBlcnNcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBPcGVuU3RyZWV0TWFwc1NlcnZpY2Uge1xuICBteVBvc2l0aW9uO1xuXG4gIG1hcDogYW55O1xuXG4gIGFsbE1hcmtlcnM6IGFueSA9IFtdO1xuXG4gIGFsbFRhc2tzUm91dGVzOiBhbnk7XG5cbiAgc2VsZWN0ZWRUYXNrUm91dGVzOiBhbnk7XG5cbiAgc2VsZWN0ZWRUYXNrRGlzdGFuY2VBbmRUaW1lOiBhbnk7XG5cbiAgQFZpZXdDaGlsZHJlbihcImRpcmVjdGlvbnNSZW5kZXJcIikgZGlyZWN0aW9uc1JlbmRlcnM6IFF1ZXJ5TGlzdDxcbiAgICBFbGVtZW50UmVmPGdvb2dsZS5tYXBzLkRpcmVjdGlvbnNSZW5kZXJlcj5cbiAgPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFnZW50U2VydmljZTogQWdlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBtYXBEaXJlY3Rpb25zU2VydmljZTogTWFwRGlyZWN0aW9uc1NlcnZpY2UsXG4gICAgcHVibGljIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcbiAgKSB7fVxuXG4gIC8vIFRvIGdldCBDdXJyZW50IFBvc2l0aW9uXG4gIGdldFBvc2l0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKFxuICAgICAgICAocmVzcCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgbG5nOiByZXNwLmNvb3Jkcy5sb25naXR1ZGUsXG4gICAgICAgICAgICBsYXQ6IHJlc3AuY29vcmRzLmxhdGl0dWRlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRvIGV4dHJhY3QgTG9jYXRpb24gZnJvbSB0aGUgVGFzayBEZXRhaWxzXG4gIGFzeW5jIGdldExvY2F0aW9uKHRhc2spIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IGVuY29kZWRBZGRyZXM7XG5cbiAgICAgIC8vIElmIEZldGNoIEFkZHJlc3MgZnJvbSBNdWx0aXBsZSBQYXRoc1xuICAgICAgaWYgKFxuICAgICAgICBjaGVja09iamVjdFBhdGhFeGlzdHMoXG4gICAgICAgICAgdGhpcy5hZ2VudFNlcnZpY2UuY29uZmlnLFxuICAgICAgICAgIFwiZGFzaGJvYXJkLnRhc2tMb2NhdGlvblBhdGhzXCJcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIC8vIEdldCBhZGRyZXNzIHN0cmluZyBmcm9tIG11bHRpcGxlIHBhdGhzXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYWdlbnRTZXJ2aWNlLmNvbmZpZy5kYXNoYm9hcmQudGFza0xvY2F0aW9uUGF0aHM7XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPSBhZGRyZXNzQ29uY2F0b3IodGFzaywgY29uZmlnKTtcblxuICAgICAgICAvLyBFbmNvZGUgdGhlIEFkZHJlc3MgaW4gVVJJXG4gICAgICAgIGVuY29kZWRBZGRyZXMgPSBlbmNvZGVVUkkoYWRkcmVzcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIEZldGNoIEFkZHJlc3MgZnJvbSBTaW5nbGUgUGF0aFxuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhcbiAgICAgICAgICB0aGlzLmFnZW50U2VydmljZS5jb25maWcsXG4gICAgICAgICAgXCJkYXNoYm9hcmQudGFza0xvY2F0aW9uUGF0aFwiXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICAvLyBHZXQgQWRkcmVzcyBmcm9tIFNpbmdsZSBQYXRoXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYWdlbnRTZXJ2aWNlLmNvbmZpZy5kYXNoYm9hcmQudGFza0xvY2F0aW9uUGF0aDtcbiAgICAgICAgY29uc3QgYWRkcmVzcyA9IGdldE9iamVjdFZhbHVlRnJvbVBhdGgodGFzaywgY29uZmlnKTtcblxuICAgICAgICAvLyBFbmNvZGUgdGhlIEFkZHJlc3MgaW4gVVJJXG4gICAgICAgIGVuY29kZWRBZGRyZXMgPSBlbmNvZGVVUkkoYWRkcmVzcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIERlZmF1bHQgQWRkcmVzcyBQYXRocyBBdmFpYWJsZVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPVxuICAgICAgICAgIHRhc2s/LmV4dHJhcz8udGFza19kZXRhaWxzPy5jdXN0b21lcl9kZXRhaWxzPy5hZGRyZXNzID8/XG4gICAgICAgICAgdGFzaz8udGFza19kZXRhaWxzPy5jdXN0b21lcl9kZXRhaWxzPy5hZGRyZXNzID8/XG4gICAgICAgICAgdGFzaz8uZXh0cmFzPy5hZGRyZXNzID8/XG4gICAgICAgICAgdGFzaz8uYWRkcmVzcyA/P1xuICAgICAgICAgIFwiXCI7XG5cbiAgICAgICAgLy8gRW5jb2RlIHRoZSBBZGRyZXNzIGluIFVSSVxuICAgICAgICBlbmNvZGVkQWRkcmVzID0gZW5jb2RlVVJJKGFkZHJlc3MpO1xuICAgICAgfVxuXG4gICAgICAvLyBVUkwgdG8gZ2VvY29kZSBBZGRyZXNzIFN0cmluZyB0byBMYXRpdHVkZSAmIExvbmdpdHVkZVxuICAgICAgY29uc3QgdXJsID0gYGh0dHBzOi8vbm9taW5hdGltLm9wZW5zdHJlZXRtYXAub3JnL3NlYXJjaD9xPSR7ZW5jb2RlZEFkZHJlc30mZm9ybWF0PWpzb25gO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICAgIC8vIFNldCBMb2NhdGlvbiB7bGF0OiBMQVQsIGxuZzogTE5HfSBmcm9tIGFkZHJlc3MgZ2VvY29kZWRcbiAgICAgIGNvbnN0IGlzVmFsaWRMb2NhdGlvbiA9XG4gICAgICAgIGlzTm90RW1wdHlBcnJheShkYXRhKSAmJiBkYXRhWzBdPy5sYXQgJiBkYXRhWzBdPy5sb247XG4gICAgICBjb25zdCBsb2NhdGlvbjogYW55ID0gaXNWYWxpZExvY2F0aW9uXG4gICAgICAgID8geyBsYXQ6IGRhdGFbMF0/LmxhdCwgbG5nOiBkYXRhWzBdPy5sb24gfVxuICAgICAgICA6IHsgbGF0OiBudWxsLCBsbmc6IG51bGwgfTtcblxuICAgICAgLy8gU2V0IExvY2F0aW9uIHZhbGlkYXRpb24gJiBHb29nbGUgTWFwcyBVUkxcbiAgICAgIGxvY2F0aW9uLmlzVmFsaWRMb2NhdGlvbiA9IGlzVmFsaWRMb2NhdGlvbjtcbiAgICAgIGxvY2F0aW9uLmNvbG9yID0gaXNWYWxpZExvY2F0aW9uID8gXCJibHVlXCIgOiBcInJlZFwiO1xuICAgICAgbG9jYXRpb24uZ29vZ2xlTWFwc1VybCA9IGBodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvcGxhY2UvJHtsb2NhdGlvbj8ubGF0fSwke2xvY2F0aW9uPy5sbmd9YDtcblxuICAgICAgcmVzb2x2ZShsb2NhdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICAvLyBHZXQgVGFza3MgfCBNYXJrZXJzIExvY2F0aW9uIENvIE9yZGluYXRlc1xuICBhc3luYyBnZXRNYXJrZXJzTG9jYXRpb24obXlNYXJrZXIsIHRhc2tzKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtlcnMgPSBbXTtcbiAgICAgIG1hcmtlcnMucHVzaChteU1hcmtlcik7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHRhc2tzLm1hcChhc3luYyh0YXNrKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlcjogYW55ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbih0YXNrKTtcbiAgICAgICAgdGFzayA9IHsgLi4udGFzaywgLi4ubWFya2VyIH07XG4gICAgICAgIG1hcmtlcnMucHVzaCh0YXNrKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cbiAgICAgIHJlc29sdmUobWFya2Vycyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBUbyBJbml0aWFsaXplIE9wZW4gU3RyZWV0IE1hcFxuICBhc3luYyBpbml0aWFsaXplTWFwKCkge1xuICAgIGNvbnNvbGUubG9nKFwiUnVubmluZyBJbml0IE9wZW4gU3RyZWV0IE1hcHNcIik7XG4gICAgdGhpcy5teVBvc2l0aW9uID0gYXdhaXQgdGhpcy5nZXRQb3NpdGlvbigpO1xuICAgIHRoaXMubWFwID0gTC5tYXAoXCJtYXBcIiwge1xuICAgICAgY2VudGVyOiBbdGhpcy5teVBvc2l0aW9uLmxhdCwgdGhpcy5teVBvc2l0aW9uLmxuZ10sXG4gICAgICB6b29tOiAxMVxuICAgIH0pO1xuICAgIEwudGlsZUxheWVyKFwiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmdcIikuYWRkVG8oXG4gICAgICB0aGlzLm1hcFxuICAgICk7XG4gIH1cblxuICAvLyBUbyBBZGQgT3BlbiBTdHJlZXQgTWFya2VyIGluIE1hcFxuICBhZGRNYXJrZXIoeyBsYXQsIGxuZywgdGl0bGUsIGNvbG9yIH0pIHtcbiAgICBMLm1hcmtlcihbbGF0LCBsbmddLCB7XG4gICAgICBpY29uOiBMLmljb24oe1xuICAgICAgICBpY29uVXJsOlxuICAgICAgICAgIGNvbG9yID09IFwicmVkXCJcbiAgICAgICAgICAgID8gXCJodHRwczovL2t3aWtpZC5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vQ09ORklHL1VTRVIvYXNzZXRzL21hcC1tYXJrZXItMC5wbmdcIlxuICAgICAgICAgICAgOiBcImh0dHBzOi8va3dpa2lkLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9DT05GSUcvVVNFUi9hc3NldHMvbWFwLW1hcmtlci0xLnBuZ1wiXG4gICAgICB9KVxuICAgIH0pXG4gICAgICAuYWRkVG8odGhpcy5tYXApXG4gICAgICAuYmluZFBvcHVwKHRpdGxlKTtcbiAgfVxuXG4gIC8vIFRvIFBsb3QgT3BlbiBTdHJlZXQgRGlyZWN0aW9ucyBmb3IgQWxsIFRhc2tzXG4gIGFzeW5jIHBsb3REaXJlY3Rpb25zRm9yQWxsVGFza3ModGFza3MpIHtcbiAgICBpZiAodGhpcy5tYXApIHtcbiAgICAgIHRoaXMuYWxsTWFya2VycyA9IFtdO1xuXG4gICAgICAvLyBDcmVhdGUgQWdlbnQgTWFya2VyICYgUGxvdCBJdC5cbiAgICAgIGNvbnN0IG15TWFya2VyID0ge1xuICAgICAgICBsYXQ6IHRoaXMubXlQb3NpdGlvbi5sYXQsXG4gICAgICAgIGxuZzogdGhpcy5teVBvc2l0aW9uLmxuZyxcbiAgICAgICAgdGl0bGU6IDAsXG4gICAgICAgIGNvbG9yOiBcInJlZFwiXG4gICAgICB9O1xuICAgICAgdGhpcy5hZGRNYXJrZXIobXlNYXJrZXIpO1xuICAgICAgdGhpcy5hbGxNYXJrZXJzLnB1c2gobXlNYXJrZXIpO1xuXG4gICAgICAvLyBDcmVhdGUgTWFya2VycyBmb3IgYWxsIFRhc2tzXG4gICAgICB0aGlzLmFsbE1hcmtlcnMgPSBhd2FpdCB0aGlzLmdldE1hcmtlcnNMb2NhdGlvbihteU1hcmtlciwgdGFza3MpO1xuXG4gICAgICAvLyBSdW4gQWxnb3JpdGhtIHRvIGdldCBvcHRpbWl6ZWQgUm91dGVzXG4gICAgICBjb25zdCBzdGFydGluZ1BvaW50ID0gdGhpcy5hbGxNYXJrZXJzWzBdO1xuICAgICAgY29uc3QgdW52aXNpdGVkV2F5cG9pbnRzID0gdGhpcy5hbGxNYXJrZXJzLnNsaWNlKDEpO1xuICAgICAgY29uc3Qgb3B0aW1pemVkUm91dGUgPSBuZWFyZXN0TmVpZ2hib3JBbGdvcml0aG0oXG4gICAgICAgIHN0YXJ0aW5nUG9pbnQsXG4gICAgICAgIHVudmlzaXRlZFdheXBvaW50c1xuICAgICAgKTtcblxuICAgICAgLy8gU29ydCBBbGwgTWFya2VycyBhcyBwZXIgb3B0aW1pemVkIHJvdXRlc1xuICAgICAgdGhpcy5hbGxNYXJrZXJzID0gdGhpcy5zb3J0VGFza3NBc1BlckRpc3RhbmNlKFxuICAgICAgICBvcHRpbWl6ZWRSb3V0ZSxcbiAgICAgICAgdGhpcy5hbGxNYXJrZXJzLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuXG4gICAgICAvLyBTb3J0IEFsbCBUYXNrcyBhcyBwZXIgb3B0aW1pemVkIHJvdXRlc1xuICAgICAgdGFza3MgPSB0aGlzLnNvcnRUYXNrc0FzUGVyRGlzdGFuY2UoXG4gICAgICAgIG9wdGltaXplZFJvdXRlLnNsaWNlKDEpLFxuICAgICAgICB0YXNrcyxcbiAgICAgICAgZmFsc2VcbiAgICAgICk7XG5cbiAgICAgIC8vIFBsb3QgTWFya2VycyBmb3IgQWxsIFRhc2tzXG4gICAgICB0YXNrcy5tYXAoKHRhc2spID0+IHtcbiAgICAgICAgaWYgKHRhc2s/LmlzVmFsaWRMb2NhdGlvbikge1xuICAgICAgICAgIGNvbnN0IG1hcmtlcjogYW55ID0gdGhpcy5nZXRMb2NhdGlvbih0YXNrKTtcbiAgICAgICAgICB0aGlzLmFkZE1hcmtlcihtYXJrZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gU2V0IFN0eWxlcyBmb3IgYWxsIFRhc2sgUm91dGVzXG4gICAgICBjb25zdCBzdHlsZXMgPSBbXG4gICAgICAgIHsgY29sb3I6IFwiYmx1ZVwiLCBvcGFjaXR5OiAxLCB3ZWlnaHQ6IDggfSxcbiAgICAgICAgeyBjb2xvcjogXCJ3aGl0ZVwiLCBvcGFjaXR5OiAwLjYsIHdlaWdodDogMTIgfVxuICAgICAgXTtcblxuICAgICAgLy8gU2V0IFJvdXRlcyBmb3IgYWxsIFRhc2tzXG4gICAgICB0aGlzLmFsbFRhc2tzUm91dGVzID0gdGhpcy5zZXRSb3V0ZXModGhpcy5hbGxNYXJrZXJzLCBzdHlsZXMpO1xuICAgICAgdGhpcy5maXRNYXBCb3VuZHMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhc2tzO1xuICB9XG5cbiAgLy8gVG8gcGxvdCBPcGVuIFN0cmVldCBEaXJlY3Rpb24gZm9yIHNlbGVjdGVkIFRhc2tcbiAgcGxvdERpcmVjdGlvbnNGb3JTZWxlY3RlZFRhc2sodGFzaykge1xuICAgIGlmICh0YXNrICE9PSBudWxsKSB7XG4gICAgICAvLyBSZW1vdmUgUHJldmlvdXNseSBTZWxlY3RlZCBUYXNrIFJvdXRlXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFRhc2tSb3V0ZXMpIHtcbiAgICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLnNlbGVjdGVkVGFza1JvdXRlcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSBBbGwgVGFza3MgUm91dGVzXG4gICAgICBpZiAodGhpcy5hbGxUYXNrc1JvdXRlcykge1xuICAgICAgICB0aGlzLm1hcC5yZW1vdmVDb250cm9sKHRoaXMuYWxsVGFza3NSb3V0ZXMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0YXNrTWFya2VyID0gdGFzaztcblxuICAgICAgLy8gSWYgTG9jYXRpb24gaXMgQXZhaWxhYmxlIGluIFRhc2sgRGV0YWlsc1xuICAgICAgaWYgKHRhc2tNYXJrZXIuY29sb3IgIT0gXCJyZWRcIikge1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gW3RoaXMuYWxsTWFya2Vyc1swXSwgdGFza01hcmtlcl07XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IFtcbiAgICAgICAgICB7IGNvbG9yOiBcImdyZWVuXCIsIG9wYWNpdHk6IDEsIHdlaWdodDogOCB9LFxuICAgICAgICAgIHsgY29sb3I6IFwid2hpdGVcIiwgb3BhY2l0eTogMC40LCB3ZWlnaHQ6IDEyIH1cbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhc2tSb3V0ZXMgPSB0aGlzLnNldFJvdXRlcyhtYXJrZXJzLCBzdHlsZXMpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVGFza0Rpc3RhbmNlQW5kVGltZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxlcnQoXCJObyBMb2NhdGlvbiBBdmFpbGFibGVcIik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBBbGwgVGFza3MgUm91dGVzIEFnYWluICYgUmVtb3ZlIFNlbGVjdGVkIFRhc2tzIHJvdXRlXG4gICAgZWxzZSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFRhc2tSb3V0ZXMpIHtcbiAgICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLnNlbGVjdGVkVGFza1JvdXRlcyk7XG4gICAgICB9XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMuYWxsVGFza3NSb3V0ZXMpO1xuICAgICAgdGhpcy5zZWxlY3RlZFRhc2tSb3V0ZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuZml0TWFwQm91bmRzKCk7XG4gIH1cblxuICAvLyBHZXQgRGlzdGFuY2UgJiBUaW1lIG9mIFNlbGVjdGVkIFRhc2tcbiAgZ2V0U2VsZWN0ZWRUYXNrRGlzdGFuY2VBbmRUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFza0Rpc3RhbmNlQW5kVGltZTtcbiAgfVxuXG4gIC8vIFNldCBEaXN0YW5jZSAmIFRpbWUgb2YgU2VsZWN0ZWQgVGFza1xuICBzZXRTZWxlY3RlZFRhc2tEaXN0YW5jZUFuZFRpbWUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFRhc2tSb3V0ZXMub24oXCJyb3V0ZXNmb3VuZFwiLCBmdW5jdGlvbihlKSB7XG4gICAgICBjb25zdCB7IHJvdXRlcyB9ID0gZTtcbiAgICAgIGNvbnN0IHsgc3VtbWFyeSB9ID0gcm91dGVzWzBdO1xuXG4gICAgICBjb25zdCBkaXN0YW5jZSA9IHN1bW1hcnkudG90YWxEaXN0YW5jZSAvIDEwMDA7XG4gICAgICBjb25zdCB0aW1lID0gTWF0aC5yb3VuZCgoc3VtbWFyeS50b3RhbFRpbWUgJSAzNjAwKSAvIDYwKTtcblxuICAgICAgdGhpcy5zZWxlY3RlZFRhc2tEaXN0YW5jZUFuZFRpbWUgPSB7XG4gICAgICAgIGRpc3RhbmNlLFxuICAgICAgICB0aW1lXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVG8gc29ydCBPcGVuIFN0cmVldCBNYXBzIFRhc2sgYXMgcGVyIG5lYXJlc3QgZGlzdGFuY2VcbiAgc29ydFRhc2tzQXNQZXJEaXN0YW5jZShvcmRlciwgdGFza3MsIGlzTWFya2VyKSB7XG4gICAgY29uc3Qgc29ydGVkVGFza3MgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhc2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGlzTWFya2VyID8gb3JkZXJbaV0udGl0bGUgOiBvcmRlcltpXS50aXRsZSAtIDE7XG4gICAgICBjb25zdCB0YXNrID0gdGFza3NbdGl0bGVdO1xuICAgICAgc29ydGVkVGFza3MucHVzaCh0YXNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvcnRlZFRhc2tzO1xuICB9XG5cbiAgLy8gVG8gc2V0IE9wZW4gU3RyZWV0IHJvdXRlcyBpbiB0aGUgbWFwc1xuICBzZXRSb3V0ZXMobWFya2Vycywgc3R5bGVzKSB7XG4gICAgcmV0dXJuIEwuUm91dGluZy5jb250cm9sKHtcbiAgICAgIHdheXBvaW50czogbWFya2VycyxcbiAgICAgIGxpbmVPcHRpb25zOiB7XG4gICAgICAgIHN0eWxlc1xuICAgICAgfSxcbiAgICAgIGNyZWF0ZU1hcmtlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgICAgcm91dGVXaGlsZURyYWdnaW5nOiB0cnVlXG4gICAgfSkuYWRkVG8odGhpcy5tYXApO1xuICB9XG5cbiAgLy8gVG8gc2V0IE9wZW4gU3RyZWV0IHZpZXcgcG9pbnQgb24gdGhlIG1hcFxuICBmaXRNYXBCb3VuZHMoKSB7XG4gICAgY29uc3QgbWFya2VyTGF0TG5ncyA9IHRoaXMuYWxsTWFya2Vycy5tYXAoKG1hcmtlcikgPT5cbiAgICAgIEwubGF0TG5nKG1hcmtlci5sYXQsIG1hcmtlci5sbmcpXG4gICAgKTtcbiAgICB0aGlzLm1hcC5maXRCb3VuZHMobWFya2VyTGF0TG5ncyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ export class AgentInfoComponent {
5
+ constructor() { }
6
+ ngOnInit() {
7
+ return __awaiter(this, void 0, void 0, function* () { });
8
+ }
9
+ }
10
+ /** @nocollapse */ AgentInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ /** @nocollapse */ AgentInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AgentInfoComponent, selector: "agent-info", ngImport: i0, template: "Agent Info\n", styles: [""] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoComponent, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: "agent-info",
16
+ templateUrl: "./agent-info.component.html",
17
+ styleUrls: ["./agent-info.component.scss"]
18
+ }]
19
+ }], ctorParameters: function () { return []; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjIvY29tcG9uZW50cy9hZ2VudC1pbmZvL2FnZW50LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YyL2NvbXBvbmVudHMvYWdlbnQtaW5mby9hZ2VudC1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQU9sRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFVixRQUFROzhEQUFJLENBQUM7S0FBQTs7bUlBSFIsa0JBQWtCO3VIQUFsQixrQkFBa0Isa0RDUC9CLGNBQ0E7NEZETWEsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhZ2VudC1pbmZvXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWdlbnQtaW5mby5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWdlbnQtaW5mby5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBBZ2VudEluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7fVxufVxuIiwiQWdlbnQgSW5mb1xuIl19
@@ -0,0 +1,37 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { KwikIDFormsModule } from "kwikid-forms";
5
+ import { KwikUIModule } from "kwikui";
6
+ import { AgentInfoComponent } from "./agent-info.component";
7
+ import * as i0 from "@angular/core";
8
+ export class AgentInfoModule {
9
+ }
10
+ /** @nocollapse */ AgentInfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ /** @nocollapse */ AgentInfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoModule, declarations: [AgentInfoComponent], imports: [CommonModule,
12
+ FormsModule,
13
+ ReactiveFormsModule,
14
+ KwikUIModule,
15
+ KwikIDFormsModule], exports: [AgentInfoComponent] });
16
+ /** @nocollapse */ AgentInfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoModule, imports: [[
17
+ CommonModule,
18
+ FormsModule,
19
+ ReactiveFormsModule,
20
+ KwikUIModule,
21
+ KwikIDFormsModule
22
+ ]] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AgentInfoModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ declarations: [AgentInfoComponent],
27
+ imports: [
28
+ CommonModule,
29
+ FormsModule,
30
+ ReactiveFormsModule,
31
+ KwikUIModule,
32
+ KwikIDFormsModule
33
+ ],
34
+ exports: [AgentInfoComponent]
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtaW5mby5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjIvY29tcG9uZW50cy9hZ2VudC1pbmZvL2FnZW50LWluZm8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFhNUQsTUFBTSxPQUFPLGVBQWU7O2dJQUFmLGVBQWU7aUlBQWYsZUFBZSxpQkFWWCxrQkFBa0IsYUFFL0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLGlCQUFpQixhQUVULGtCQUFrQjtpSUFFakIsZUFBZSxZQVRqQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixpQkFBaUI7U0FDbEI7NEZBR1UsZUFBZTtrQkFYM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgS3dpa0lERm9ybXNNb2R1bGUgfSBmcm9tIFwia3dpa2lkLWZvcm1zXCI7XG5pbXBvcnQgeyBLd2lrVUlNb2R1bGUgfSBmcm9tIFwia3dpa3VpXCI7XG5pbXBvcnQgeyBBZ2VudEluZm9Db21wb25lbnQgfSBmcm9tIFwiLi9hZ2VudC1pbmZvLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBZ2VudEluZm9Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgS3dpa1VJTW9kdWxlLFxuICAgIEt3aWtJREZvcm1zTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtBZ2VudEluZm9Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEFnZW50SW5mb01vZHVsZSB7fVxuIl19
@@ -0,0 +1,111 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Component, ViewChild } from "@angular/core";
3
+ import { logMethod } from "kwikid-toolkit";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@taiga-ui/core";
6
+ import * as i2 from "@angular/common";
7
+ export class BottomSheetComponent {
8
+ constructor() {
9
+ this.isSwipeActive = false;
10
+ this.swipeDirection = null;
11
+ this.height = 320; // Initial height of the bottom sheet
12
+ this.minHeight = 54; // Initial height of the bottom sheet
13
+ }
14
+ ngOnInit() {
15
+ return __awaiter(this, void 0, void 0, function* () { });
16
+ }
17
+ onMouseStart(event) {
18
+ event.preventDefault();
19
+ this.isSwipeActive = true;
20
+ this.startY = event.clientY;
21
+ this.startHeight = this.parentElement.nativeElement.clientHeight;
22
+ }
23
+ onMouseMove(event) {
24
+ if (this.isSwipeActive) {
25
+ this.resize(event.clientY);
26
+ }
27
+ }
28
+ onMouseEnd(event) {
29
+ this.isSwipeActive = false;
30
+ }
31
+ onTouchStart(event) {
32
+ event.preventDefault();
33
+ this.isSwipeActive = true;
34
+ this.startY = event.touches[0].clientY;
35
+ this.startHeight = this.parentElement.nativeElement.clientHeight;
36
+ }
37
+ onTouchMove(event) {
38
+ event.preventDefault(); // Prevent scrolling while dragging
39
+ if (this.isSwipeActive) {
40
+ this.resize(event.touches[0].clientY);
41
+ }
42
+ }
43
+ onTouchEnd(event) {
44
+ this.isSwipeActive = false;
45
+ }
46
+ resize(clientY) {
47
+ const deltaY = clientY - this.startY;
48
+ const newHeight = this.startHeight - deltaY;
49
+ if (newHeight > this.startHeight) {
50
+ this.swipeDirection = "UP";
51
+ }
52
+ if (newHeight < this.startHeight) {
53
+ this.swipeDirection = "DOWN";
54
+ }
55
+ const maxHeight = window.innerHeight - 180;
56
+ if (newHeight >= this.minHeight && newHeight <= maxHeight) {
57
+ // this.height = newHeight;
58
+ this.parentElement.nativeElement.style.height = `${newHeight}px`;
59
+ }
60
+ else if (newHeight < this.minHeight) {
61
+ this.parentElement.nativeElement.style.height = `${this.minHeight}px`;
62
+ }
63
+ else if (newHeight > maxHeight) {
64
+ this.parentElement.nativeElement.style.height = `${maxHeight}px`;
65
+ }
66
+ }
67
+ preventMouseOrTouchEvents(event) {
68
+ event.stopPropagation();
69
+ return undefined;
70
+ }
71
+ removeEventListeners() {
72
+ document.removeEventListener("mousedown", this.onMouseStart.bind(this));
73
+ document.removeEventListener("mousemove", this.onMouseMove.bind(this));
74
+ document.removeEventListener("mouseup", this.onMouseEnd.bind(this));
75
+ document.removeEventListener("touchend", this.onTouchMove.bind(this));
76
+ document.removeEventListener("touchmove", this.onTouchEnd.bind(this));
77
+ document.removeEventListener("touchstart", this.onTouchEnd.bind(this));
78
+ }
79
+ }
80
+ /** @nocollapse */ BottomSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
+ /** @nocollapse */ BottomSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BottomSheetComponent, selector: "bottom-sheet", viewQueries: [{ propertyName: "parentElement", first: true, predicate: ["parentElement"], descendants: true, static: true }], ngImport: i0, template: "<div\n #parentElement\n class=\"bottom-sheet\"\n [style.height.px]=\"height\"\n>\n <div\n class=\"top-holder\"\n (mousedown)=\"onMouseStart($event)\"\n (mousemove)=\"onMouseMove($event)\"\n (mouseup)=\"onMouseEnd($event)\"\n (touchend)=\"onTouchEnd($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchstart)=\"onTouchStart($event)\"\n >\n <tui-svg\n *ngIf=\"isSwipeActive && swipeDirection == 'UP'\"\n src=\"tuiIconChevronUpLarge\"\n ></tui-svg>\n <tui-svg\n *ngIf=\"isSwipeActive && swipeDirection == 'DOWN'\"\n src=\"tuiIconChevronDownLarge\"\n ></tui-svg>\n <tui-svg\n *ngIf=\"!isSwipeActive\"\n src=\"tuiIconHrLarge\"\n ></tui-svg>\n </div>\n <!-- Use ng-content to project content into the component -->\n <div class=\"bottom-sheet-content-container\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".bottom-sheet{position:absolute;bottom:0;left:0;width:100%;background-color:#fff;box-shadow:0 -2px 6px #0000001a;overflow:auto;resize:vertical;border-top-right-radius:1rem;border-top-left-radius:1rem;display:flex;flex-direction:column;z-index:5;padding-top:1rem}.top-holder{width:100%;height:40px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;cursor:grab;z-index:1}.top-holder:focus,.top-holder:focus-within,.top-holder:active{cursor:grabbing}.resize-handle{position:absolute;bottom:0;left:0;width:100%;height:10px;cursor:ns-resize;background-color:transparent}.bottom-sheet-content-container{width:100%;height:100%;position:relative;z-index:1;overflow:auto}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
82
+ __decorate([
83
+ logMethod
84
+ ], BottomSheetComponent.prototype, "onMouseStart", null);
85
+ __decorate([
86
+ logMethod
87
+ ], BottomSheetComponent.prototype, "onMouseEnd", null);
88
+ __decorate([
89
+ logMethod
90
+ ], BottomSheetComponent.prototype, "onTouchStart", null);
91
+ __decorate([
92
+ logMethod
93
+ ], BottomSheetComponent.prototype, "onTouchMove", null);
94
+ __decorate([
95
+ logMethod
96
+ ], BottomSheetComponent.prototype, "onTouchEnd", null);
97
+ __decorate([
98
+ logMethod
99
+ ], BottomSheetComponent.prototype, "preventMouseOrTouchEvents", null);
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetComponent, decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ selector: "bottom-sheet",
104
+ templateUrl: "./bottom-sheet.component.html",
105
+ styleUrls: ["./bottom-sheet.component.scss"]
106
+ }]
107
+ }], ctorParameters: function () { return []; }, propDecorators: { parentElement: [{
108
+ type: ViewChild,
109
+ args: ["parentElement", { static: true }]
110
+ }], onMouseStart: [], onMouseEnd: [], onTouchStart: [], onTouchMove: [], onTouchEnd: [], preventMouseOrTouchEvents: [] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1hZ2VudC1kYXNoYm9hcmQvc3JjL2xpYi92Mi9jb21wb25lbnRzL2JvdHRvbS1zaGVldC9ib3R0b20tc2hlZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWFnZW50LWRhc2hib2FyZC9zcmMvbGliL3YyL2NvbXBvbmVudHMvYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU8zQyxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CO1FBSUEsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBTXJDLFdBQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxxQ0FBcUM7UUFFbkQsY0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztJQWR0QyxDQUFDO0lBRVYsUUFBUTs4REFBSSxDQUFDO0tBQUE7SUFlbkIsWUFBWSxDQUFDLEtBQWlCO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDbkUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFB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QUFDLENBQUMsQ0FBQztRQUN0RSxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7O3FJQXBHVSxvQkFBb0I7eUhBQXBCLG9CQUFvQixrTENSakMsMjNCQWdDQTtBREhFO0lBREMsU0FBUzt3REFRVDtBQVNEO0lBREMsU0FBUztzREFHVDtBQUdEO0lBREMsU0FBUzt3REFRVDtBQUdEO0lBREMsU0FBUzt1REFNVDtBQUdEO0lBREMsU0FBUztzREFHVDtBQXlCRDtJQURDLFNBQVM7cUVBS1Q7NEZBM0ZVLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzdDOzBFQUdDLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW9CNUMsWUFBWSxNQWdCWixVQUFVLE1BS1YsWUFBWSxNQVVaLFdBQVcsTUFRWCxVQUFVLE1BMkJWLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJib3R0b20tc2hlZXRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9ib3R0b20tc2hlZXQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2JvdHRvbS1zaGVldC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoXCJwYXJlbnRFbGVtZW50XCIsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHBhcmVudEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge31cblxuICBpc1N3aXBlQWN0aXZlID0gZmFsc2U7XG5cbiAgc3dpcGVEaXJlY3Rpb246IFwiVVBcIiB8IFwiRE9XTlwiID0gbnVsbDtcblxuICBzdGFydFk6IG51bWJlcjtcblxuICBzdGFydEhlaWdodDogbnVtYmVyO1xuXG4gIGhlaWdodCA9IDMyMDsgLy8gSW5pdGlhbCBoZWlnaHQgb2YgdGhlIGJvdHRvbSBzaGVldFxuXG4gIG1pbkhlaWdodCA9IDU0OyAvLyBJbml0aWFsIGhlaWdodCBvZiB0aGUgYm90dG9tIHNoZWV0XG5cbiAgQGxvZ01ldGhvZFxuICBvbk1vdXNlU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5pc1N3aXBlQWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RhcnRZID0gZXZlbnQuY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0SGVpZ2h0ID0gdGhpcy5wYXJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc1N3aXBlQWN0aXZlKSB7XG4gICAgICB0aGlzLnJlc2l6ZShldmVudC5jbGllbnRZKTtcbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIG9uTW91c2VFbmQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzU3dpcGVBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuaXNTd2lwZUFjdGl2ZSA9IHRydWU7XG5cbiAgICB0aGlzLnN0YXJ0WSA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0SGVpZ2h0ID0gdGhpcy5wYXJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIFByZXZlbnQgc2Nyb2xsaW5nIHdoaWxlIGRyYWdnaW5nXG4gICAgaWYgKHRoaXMuaXNTd2lwZUFjdGl2ZSkge1xuICAgICAgdGhpcy5yZXNpemUoZXZlbnQudG91Y2hlc1swXS5jbGllbnRZKTtcbiAgICB9XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICB0aGlzLmlzU3dpcGVBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2l6ZShjbGllbnRZOiBudW1iZXIpIHtcbiAgICBjb25zdCBkZWx0YVkgPSBjbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gdGhpcy5zdGFydEhlaWdodCAtIGRlbHRhWTtcblxuICAgIGlmIChuZXdIZWlnaHQgPiB0aGlzLnN0YXJ0SGVpZ2h0KSB7XG4gICAgICB0aGlzLnN3aXBlRGlyZWN0aW9uID0gXCJVUFwiO1xuICAgIH1cbiAgICBpZiAobmV3SGVpZ2h0IDwgdGhpcy5zdGFydEhlaWdodCkge1xuICAgICAgdGhpcy5zd2lwZURpcmVjdGlvbiA9IFwiRE9XTlwiO1xuICAgIH1cblxuICAgIGNvbnN0IG1heEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDE4MDtcbiAgICBpZiAobmV3SGVpZ2h0ID49IHRoaXMubWluSGVpZ2h0ICYmIG5ld0hlaWdodCA8PSBtYXhIZWlnaHQpIHtcbiAgICAgIC8vIHRoaXMuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YDtcbiAgICB9IGVsc2UgaWYgKG5ld0hlaWdodCA8IHRoaXMubWluSGVpZ2h0KSB7XG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLm1pbkhlaWdodH1weGA7XG4gICAgfSBlbHNlIGlmIChuZXdIZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBwcmV2ZW50TW91c2VPclRvdWNoRXZlbnRzKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbk1vdXNlU3RhcnQuYmluZCh0aGlzKSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uTW91c2VNb3ZlLmJpbmQodGhpcykpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMub25Nb3VzZUVuZC5iaW5kKHRoaXMpKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgdGhpcy5vblRvdWNoTW92ZS5iaW5kKHRoaXMpKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMub25Ub3VjaEVuZC5iaW5kKHRoaXMpKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0aGlzLm9uVG91Y2hFbmQuYmluZCh0aGlzKSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI3BhcmVudEVsZW1lbnRcbiAgY2xhc3M9XCJib3R0b20tc2hlZXRcIlxuICBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRvcC1ob2xkZXJcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZVN0YXJ0KCRldmVudClcIlxuICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiXG4gICAgKG1vdXNldXApPVwib25Nb3VzZUVuZCgkZXZlbnQpXCJcbiAgICAodG91Y2hlbmQpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCJcbiAgICAodG91Y2htb3ZlKT1cIm9uVG91Y2hNb3ZlKCRldmVudClcIlxuICAgICh0b3VjaHN0YXJ0KT1cIm9uVG91Y2hTdGFydCgkZXZlbnQpXCJcbiAgPlxuICAgIDx0dWktc3ZnXG4gICAgICAqbmdJZj1cImlzU3dpcGVBY3RpdmUgJiYgc3dpcGVEaXJlY3Rpb24gPT0gJ1VQJ1wiXG4gICAgICBzcmM9XCJ0dWlJY29uQ2hldnJvblVwTGFyZ2VcIlxuICAgID48L3R1aS1zdmc+XG4gICAgPHR1aS1zdmdcbiAgICAgICpuZ0lmPVwiaXNTd2lwZUFjdGl2ZSAmJiBzd2lwZURpcmVjdGlvbiA9PSAnRE9XTidcIlxuICAgICAgc3JjPVwidHVpSWNvbkNoZXZyb25Eb3duTGFyZ2VcIlxuICAgID48L3R1aS1zdmc+XG4gICAgPHR1aS1zdmdcbiAgICAgICpuZ0lmPVwiIWlzU3dpcGVBY3RpdmVcIlxuICAgICAgc3JjPVwidHVpSWNvbkhyTGFyZ2VcIlxuICAgID48L3R1aS1zdmc+XG4gIDwvZGl2PlxuICA8IS0tIFVzZSBuZy1jb250ZW50IHRvIHByb2plY3QgY29udGVudCBpbnRvIHRoZSBjb21wb25lbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJib3R0b20tc2hlZXQtY29udGVudC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { KwikIDFormsModule } from "kwikid-forms";
5
+ import { KwikUIModule } from "kwikui";
6
+ import { TuiSvgModule } from "@taiga-ui/core";
7
+ import { BottomSheetComponent } from "./bottom-sheet.component";
8
+ import * as i0 from "@angular/core";
9
+ export class BottomSheetModule {
10
+ }
11
+ /** @nocollapse */ BottomSheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ /** @nocollapse */ BottomSheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetModule, declarations: [BottomSheetComponent], imports: [CommonModule,
13
+ FormsModule,
14
+ ReactiveFormsModule,
15
+ TuiSvgModule,
16
+ KwikUIModule,
17
+ KwikIDFormsModule], exports: [BottomSheetComponent] });
18
+ /** @nocollapse */ BottomSheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetModule, imports: [[
19
+ CommonModule,
20
+ FormsModule,
21
+ ReactiveFormsModule,
22
+ TuiSvgModule,
23
+ KwikUIModule,
24
+ KwikIDFormsModule
25
+ ]] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BottomSheetModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ declarations: [BottomSheetComponent],
30
+ imports: [
31
+ CommonModule,
32
+ FormsModule,
33
+ ReactiveFormsModule,
34
+ TuiSvgModule,
35
+ KwikUIModule,
36
+ KwikIDFormsModule
37
+ ],
38
+ exports: [BottomSheetComponent]
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLXNoZWV0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1hZ2VudC1kYXNoYm9hcmQvc3JjL2xpYi92Mi9jb21wb25lbnRzL2JvdHRvbS1zaGVldC9ib3R0b20tc2hlZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBY2hFLE1BQU0sT0FBTyxpQkFBaUI7O2tJQUFqQixpQkFBaUI7bUlBQWpCLGlCQUFpQixpQkFYYixvQkFBb0IsYUFFakMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLFlBQVk7UUFDWixpQkFBaUIsYUFFVCxvQkFBb0I7bUlBRW5CLGlCQUFpQixZQVZuQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixZQUFZO1lBQ1osaUJBQWlCO1NBQ2xCOzRGQUdVLGlCQUFpQjtrQkFaN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLd2lrSURGb3Jtc01vZHVsZSB9IGZyb20gXCJrd2lraWQtZm9ybXNcIjtcbmltcG9ydCB7IEt3aWtVSU1vZHVsZSB9IGZyb20gXCJrd2lrdWlcIjtcbmltcG9ydCB7IFR1aVN2Z01vZHVsZSB9IGZyb20gXCJAdGFpZ2EtdWkvY29yZVwiO1xuaW1wb3J0IHsgQm90dG9tU2hlZXRDb21wb25lbnQgfSBmcm9tIFwiLi9ib3R0b20tc2hlZXQuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0JvdHRvbVNoZWV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFR1aVN2Z01vZHVsZSxcbiAgICBLd2lrVUlNb2R1bGUsXG4gICAgS3dpa0lERm9ybXNNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0JvdHRvbVNoZWV0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,79 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { AgentInfoModule } from "./agent-info/agent-info.module";
3
+ import { BottomSheetModule } from "./bottom-sheet/bottom-sheet.module";
4
+ import { MapViewModule } from "./map-view/map-view.module";
5
+ import { PrimaryActionsModule } from "./primary-actions/primary-actions.module";
6
+ import { TaskDetailModule } from "./task-detail/task-detail.module";
7
+ import { TaskItemModule } from "./task-item/task-item.module";
8
+ import { TaskListSearchModule } from "./task-list-search/task-list-search.module";
9
+ import { TaskListModule } from "./task-list/task-list.module";
10
+ import { TaskPreviewModule } from "./task-preview/task-preview.module";
11
+ import * as i0 from "@angular/core";
12
+ export class ComponentModule {
13
+ }
14
+ /** @nocollapse */ ComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ /** @nocollapse */ ComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentModule, imports: [AgentInfoModule,
16
+ BottomSheetModule,
17
+ MapViewModule,
18
+ PrimaryActionsModule,
19
+ TaskDetailModule,
20
+ TaskItemModule,
21
+ TaskListModule,
22
+ TaskListSearchModule,
23
+ TaskPreviewModule], exports: [AgentInfoModule,
24
+ BottomSheetModule,
25
+ MapViewModule,
26
+ PrimaryActionsModule,
27
+ TaskDetailModule,
28
+ TaskItemModule,
29
+ TaskListModule,
30
+ TaskListSearchModule,
31
+ TaskPreviewModule] });
32
+ /** @nocollapse */ ComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentModule, imports: [[
33
+ AgentInfoModule,
34
+ BottomSheetModule,
35
+ MapViewModule,
36
+ PrimaryActionsModule,
37
+ TaskDetailModule,
38
+ TaskItemModule,
39
+ TaskListModule,
40
+ TaskListSearchModule,
41
+ TaskPreviewModule
42
+ ], AgentInfoModule,
43
+ BottomSheetModule,
44
+ MapViewModule,
45
+ PrimaryActionsModule,
46
+ TaskDetailModule,
47
+ TaskItemModule,
48
+ TaskListModule,
49
+ TaskListSearchModule,
50
+ TaskPreviewModule] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentModule, decorators: [{
52
+ type: NgModule,
53
+ args: [{
54
+ declarations: [],
55
+ imports: [
56
+ AgentInfoModule,
57
+ BottomSheetModule,
58
+ MapViewModule,
59
+ PrimaryActionsModule,
60
+ TaskDetailModule,
61
+ TaskItemModule,
62
+ TaskListModule,
63
+ TaskListSearchModule,
64
+ TaskPreviewModule
65
+ ],
66
+ exports: [
67
+ AgentInfoModule,
68
+ BottomSheetModule,
69
+ MapViewModule,
70
+ PrimaryActionsModule,
71
+ TaskDetailModule,
72
+ TaskItemModule,
73
+ TaskListModule,
74
+ TaskListSearchModule,
75
+ TaskPreviewModule
76
+ ]
77
+ }]
78
+ }] });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIvdjIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUEyQnZFLE1BQU0sT0FBTyxlQUFlOztnSUFBZixlQUFlO2lJQUFmLGVBQWUsWUF0QnhCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsYUFBYTtRQUNiLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsaUJBQWlCLGFBR2pCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsYUFBYTtRQUNiLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsaUJBQWlCO2lJQUdSLGVBQWUsWUF2QmpCO1lBQ1AsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsY0FBYztZQUNkLG9CQUFvQjtZQUNwQixpQkFBaUI7U0FDbEIsRUFFQyxlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxjQUFjO1FBQ2Qsb0JBQW9CO1FBQ3BCLGlCQUFpQjs0RkFHUixlQUFlO2tCQXpCM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFnZW50SW5mb01vZHVsZSB9IGZyb20gXCIuL2FnZW50LWluZm8vYWdlbnQtaW5mby5tb2R1bGVcIjtcbmltcG9ydCB7IEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSBcIi4vYm90dG9tLXNoZWV0L2JvdHRvbS1zaGVldC5tb2R1bGVcIjtcbmltcG9ydCB7IE1hcFZpZXdNb2R1bGUgfSBmcm9tIFwiLi9tYXAtdmlldy9tYXAtdmlldy5tb2R1bGVcIjtcbmltcG9ydCB7IFByaW1hcnlBY3Rpb25zTW9kdWxlIH0gZnJvbSBcIi4vcHJpbWFyeS1hY3Rpb25zL3ByaW1hcnktYWN0aW9ucy5tb2R1bGVcIjtcbmltcG9ydCB7IFRhc2tEZXRhaWxNb2R1bGUgfSBmcm9tIFwiLi90YXNrLWRldGFpbC90YXNrLWRldGFpbC5tb2R1bGVcIjtcbmltcG9ydCB7IFRhc2tJdGVtTW9kdWxlIH0gZnJvbSBcIi4vdGFzay1pdGVtL3Rhc2staXRlbS5tb2R1bGVcIjtcbmltcG9ydCB7IFRhc2tMaXN0U2VhcmNoTW9kdWxlIH0gZnJvbSBcIi4vdGFzay1saXN0LXNlYXJjaC90YXNrLWxpc3Qtc2VhcmNoLm1vZHVsZVwiO1xuaW1wb3J0IHsgVGFza0xpc3RNb2R1bGUgfSBmcm9tIFwiLi90YXNrLWxpc3QvdGFzay1saXN0Lm1vZHVsZVwiO1xuaW1wb3J0IHsgVGFza1ByZXZpZXdNb2R1bGUgfSBmcm9tIFwiLi90YXNrLXByZXZpZXcvdGFzay1wcmV2aWV3Lm1vZHVsZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQWdlbnRJbmZvTW9kdWxlLFxuICAgIEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hcFZpZXdNb2R1bGUsXG4gICAgUHJpbWFyeUFjdGlvbnNNb2R1bGUsXG4gICAgVGFza0RldGFpbE1vZHVsZSxcbiAgICBUYXNrSXRlbU1vZHVsZSxcbiAgICBUYXNrTGlzdE1vZHVsZSxcbiAgICBUYXNrTGlzdFNlYXJjaE1vZHVsZSxcbiAgICBUYXNrUHJldmlld01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQWdlbnRJbmZvTW9kdWxlLFxuICAgIEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgIE1hcFZpZXdNb2R1bGUsXG4gICAgUHJpbWFyeUFjdGlvbnNNb2R1bGUsXG4gICAgVGFza0RldGFpbE1vZHVsZSxcbiAgICBUYXNrSXRlbU1vZHVsZSxcbiAgICBUYXNrTGlzdE1vZHVsZSxcbiAgICBUYXNrTGlzdFNlYXJjaE1vZHVsZSxcbiAgICBUYXNrUHJldmlld01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudE1vZHVsZSB7fVxuIl19