@aggdirect/coolmap 2.6.7 → 2.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/karma.conf.js +44 -0
- package/ng-package.json +7 -0
- package/package.json +5 -30
- package/src/assets/mixin.scss +28 -0
- package/src/assets/palette.scss +24 -0
- package/src/assets/variable.scss +15 -0
- package/src/lib/component/add-route/add-route.component.html +136 -0
- package/src/lib/component/add-route/add-route.component.scss +236 -0
- package/src/lib/component/add-route/add-route.component.spec.ts +23 -0
- package/src/lib/component/add-route/add-route.component.ts +295 -0
- package/src/lib/component/job-code/job-code.component.html +79 -0
- package/src/lib/component/job-code/job-code.component.scss +396 -0
- package/src/lib/component/job-code/job-code.component.ts +157 -0
- package/src/lib/component/map/map.component.css +0 -0
- package/src/lib/component/map/map.component.html +4 -0
- package/src/lib/component/map/map.component.spec.ts +23 -0
- package/src/lib/component/map/map.component.ts +34 -0
- package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.html +46 -0
- package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.scss +18 -0
- package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.spec.ts +23 -0
- package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.ts +131 -0
- package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.html +48 -0
- package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.scss +24 -0
- package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.ts +154 -0
- package/src/lib/component/nav/nav.component.html +19 -0
- package/src/lib/component/nav/nav.component.scss +67 -0
- package/src/lib/component/nav/nav.component.ts +38 -0
- package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.html +56 -0
- package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.scss +168 -0
- package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.spec.ts +23 -0
- package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ts +43 -0
- package/src/lib/component/route-jobcode-list/route-jobcode-list.component.html +66 -0
- package/src/lib/component/route-jobcode-list/route-jobcode-list.component.scss +232 -0
- package/src/lib/component/route-jobcode-list/route-jobcode-list.component.ts +234 -0
- package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.html +7 -0
- package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.scss +10 -0
- package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.spec.ts +23 -0
- package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ts +15 -0
- package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.html +28 -0
- package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.scss +172 -0
- package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.spec.ts +23 -0
- package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ts +20 -0
- package/src/lib/component/shared/dialog/dialog.component.html +7 -0
- package/src/lib/component/shared/dialog/dialog.component.scss +30 -0
- package/src/lib/component/shared/dialog/dialog.component.ts +18 -0
- package/src/lib/component/shared/estimation-display/estimation-display.component.html +7 -0
- package/src/lib/component/shared/estimation-display/estimation-display.component.scss +7 -0
- package/src/lib/component/shared/estimation-display/estimation-display.component.ts +13 -0
- package/src/lib/component/shared/job-route-list/job-route-list.component.html +30 -0
- package/src/lib/component/shared/job-route-list/job-route-list.component.scss +15 -0
- package/src/lib/component/shared/job-route-list/job-route-list.component.spec.ts +23 -0
- package/src/lib/component/shared/job-route-list/job-route-list.component.ts +54 -0
- package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.html +11 -0
- package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.scss +13 -0
- package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.spec.ts +23 -0
- package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.ts +19 -0
- package/src/lib/component/shared/jobcode-status/jobcode-status.component.html +5 -0
- package/src/lib/component/shared/jobcode-status/jobcode-status.component.scss +40 -0
- package/src/lib/component/shared/jobcode-status/jobcode-status.component.spec.ts +23 -0
- package/src/lib/component/shared/jobcode-status/jobcode-status.component.ts +11 -0
- package/src/lib/component/shared/route-info-card/route-info-card.component.html +11 -0
- package/src/lib/component/shared/route-info-card/route-info-card.component.scss +50 -0
- package/src/lib/component/shared/route-info-card/route-info-card.component.spec.ts +23 -0
- package/src/lib/component/shared/route-info-card/route-info-card.component.ts +69 -0
- package/src/lib/coolmap.module.ts +117 -0
- package/{public-api.d.ts → src/public-api.ts} +8 -0
- package/src/test.ts +27 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/esm2022/aggdirect-coolmap.mjs +0 -5
- package/esm2022/lib/component/add-route/add-route.component.mjs +0 -348
- package/esm2022/lib/component/job-code/job-code.component.mjs +0 -192
- package/esm2022/lib/component/map/map.component.mjs +0 -39
- package/esm2022/lib/component/nav/layout/add-route-nav/add-route-nav.component.mjs +0 -152
- package/esm2022/lib/component/nav/layout/job-code-nav/job-code-nav.component.mjs +0 -119
- package/esm2022/lib/component/nav/nav.component.mjs +0 -54
- package/esm2022/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.mjs +0 -77
- package/esm2022/lib/component/route-jobcode-list/route-jobcode-list.component.mjs +0 -321
- package/esm2022/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.mjs +0 -19
- package/esm2022/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.mjs +0 -37
- package/esm2022/lib/component/shared/dialog/dialog.component.mjs +0 -31
- package/esm2022/lib/component/shared/estimation-display/estimation-display.component.mjs +0 -18
- package/esm2022/lib/component/shared/job-route-list/job-route-list.component.mjs +0 -79
- package/esm2022/lib/component/shared/jobcode-overview/jobcode-overview.component.mjs +0 -24
- package/esm2022/lib/component/shared/jobcode-status/jobcode-status.component.mjs +0 -15
- package/esm2022/lib/component/shared/route-info-card/route-info-card.component.mjs +0 -57
- package/esm2022/lib/coolmap.module.mjs +0 -186
- package/esm2022/public-api.mjs +0 -19
- package/fesm2022/aggdirect-coolmap.mjs +0 -1644
- package/fesm2022/aggdirect-coolmap.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/component/add-route/add-route.component.d.ts +0 -61
- package/lib/component/job-code/job-code.component.d.ts +0 -42
- package/lib/component/map/map.component.d.ts +0 -15
- package/lib/component/nav/layout/add-route-nav/add-route-nav.component.d.ts +0 -49
- package/lib/component/nav/layout/job-code-nav/job-code-nav.component.d.ts +0 -42
- package/lib/component/nav/nav.component.d.ts +0 -31
- package/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.d.ts +0 -20
- package/lib/component/route-jobcode-list/route-jobcode-list.component.d.ts +0 -42
- package/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.d.ts +0 -9
- package/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.d.ts +0 -12
- package/lib/component/shared/dialog/dialog.component.d.ts +0 -13
- package/lib/component/shared/estimation-display/estimation-display.component.d.ts +0 -8
- package/lib/component/shared/job-route-list/job-route-list.component.d.ts +0 -26
- package/lib/component/shared/jobcode-overview/jobcode-overview.component.d.ts +0 -10
- package/lib/component/shared/jobcode-status/jobcode-status.component.d.ts +0 -7
- package/lib/component/shared/route-info-card/route-info-card.component.d.ts +0 -29
- package/lib/coolmap.module.d.ts +0 -44
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
|
-
import { Component, Input, Output, EventEmitter, Inject } from '@angular/core';
|
|
3
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@aggdirect/coolmap-services";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "@angular/cdk/drag-drop";
|
|
8
|
-
import * as i4 from "@angular/material/icon";
|
|
9
|
-
import * as i5 from "@angular/cdk/scrolling";
|
|
10
|
-
import * as i6 from "../shared/job-route-list/job-route-list.component";
|
|
11
|
-
import * as i7 from "../shared/jobcode-status/jobcode-status.component";
|
|
12
|
-
import * as i8 from "../shared/jobcode-overview/jobcode-overview.component";
|
|
13
|
-
import * as i9 from "../shared/route-info-card/route-info-card.component";
|
|
14
|
-
export class JobCodeComponent {
|
|
15
|
-
utils;
|
|
16
|
-
coolMap;
|
|
17
|
-
config;
|
|
18
|
-
jobdetail;
|
|
19
|
-
customerRepoDetails;
|
|
20
|
-
isVisible = false;
|
|
21
|
-
routes = [];
|
|
22
|
-
selectedRoute = new SelectionModel(true, []);
|
|
23
|
-
clearJobDetails = new EventEmitter();
|
|
24
|
-
openShareRoute = new EventEmitter();
|
|
25
|
-
isOverlapRouteSection = false;
|
|
26
|
-
destroyer$ = new Subject();
|
|
27
|
-
detailsCardEnable;
|
|
28
|
-
preventMouseout = false;
|
|
29
|
-
routeCardDetail;
|
|
30
|
-
preventListUpdate;
|
|
31
|
-
masterRoutes;
|
|
32
|
-
unitList;
|
|
33
|
-
materialsList;
|
|
34
|
-
constructor(utils, coolMap, config) {
|
|
35
|
-
this.utils = utils;
|
|
36
|
-
this.coolMap = coolMap;
|
|
37
|
-
this.config = config;
|
|
38
|
-
this.utils.clearViewRouteforJobCodeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => {
|
|
39
|
-
if (res)
|
|
40
|
-
this.coolMap.removeJobFromMap(this.selectedRoute.selected);
|
|
41
|
-
this.selectedRoute.clear();
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngOnInit() { this.checkAndCallRouteList(); }
|
|
45
|
-
checkAndCallRouteList() {
|
|
46
|
-
this.utils.clearOptions();
|
|
47
|
-
if (this.config.repository === 'customer') {
|
|
48
|
-
this.utils.fetchUnitsList().then((res) => {
|
|
49
|
-
this.unitList = res;
|
|
50
|
-
this.utils.fetchMaterialsListForCustomer().then((res) => {
|
|
51
|
-
this.materialsList = res;
|
|
52
|
-
this.getRouteListForCustomer();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.getRouteListForCoolMap();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
getUnitName(data) {
|
|
61
|
-
let unitName = '';
|
|
62
|
-
this.unitList.map((res) => {
|
|
63
|
-
if (res.id === data.unit_id) {
|
|
64
|
-
unitName = res.type;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return unitName;
|
|
68
|
-
}
|
|
69
|
-
getMaterialName(data) {
|
|
70
|
-
let materialName = '';
|
|
71
|
-
this.materialsList.map((res) => {
|
|
72
|
-
if (res.sub_material_id === data.materials_id) {
|
|
73
|
-
materialName = res.label;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
return materialName;
|
|
77
|
-
}
|
|
78
|
-
getRouteListForCoolMap() {
|
|
79
|
-
this.utils.getData('routes/all').pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
80
|
-
if (res) {
|
|
81
|
-
this.routes = res.data;
|
|
82
|
-
this.masterRoutes = res.data;
|
|
83
|
-
this.preventListUpdate = false;
|
|
84
|
-
this.routes.forEach((ele) => { this.utils.makeOptions(ele); });
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
getRouteListForCustomer() {
|
|
89
|
-
const dataset = {
|
|
90
|
-
customer_id: this.customerRepoDetails.customer.id
|
|
91
|
-
};
|
|
92
|
-
this.utils.postdata('routes/all', dataset).pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
93
|
-
if (res) {
|
|
94
|
-
this.routes = res.data;
|
|
95
|
-
this.preventListUpdate = false;
|
|
96
|
-
this.routes.map((ele) => {
|
|
97
|
-
ele.unit = this.getUnitName(ele);
|
|
98
|
-
ele.materialLabel = this.getMaterialName(ele);
|
|
99
|
-
ele.material = this.getMaterialName(ele).split('|')[0].trim();
|
|
100
|
-
this.utils.makeOptions(ele);
|
|
101
|
-
});
|
|
102
|
-
this.masterRoutes = this.routes;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
toggleSidemenu() {
|
|
107
|
-
this.isVisible = !this.isVisible;
|
|
108
|
-
this.detailsCardEnable = false;
|
|
109
|
-
this.preventMouseout = false;
|
|
110
|
-
}
|
|
111
|
-
clearJob() { this.clearJobDetails.emit(true); this.utils.preVentJobdetailclose.next(false); }
|
|
112
|
-
selectRoute(event) {
|
|
113
|
-
const i = this.selectedRoute.selected.findIndex(ele => ele['order_number'] === event['order_number']);
|
|
114
|
-
this.selectedRoute.toggle(event);
|
|
115
|
-
if (!this.selectedRoute.isSelected(event) && event['route_id']) {
|
|
116
|
-
this.coolMap.removeRouteAndMarker(event['route_id']).then((res) => {
|
|
117
|
-
this.coolMap.extendReBound();
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
this.coolMap.plotRoute(event, event['route_id'], 'jobrouteList', false, true);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
masterToggle() {
|
|
125
|
-
if (this.routes.length === this.selectedRoute.selected.length) {
|
|
126
|
-
this.selectedRoute.clear();
|
|
127
|
-
this.routes.forEach(row => {
|
|
128
|
-
this.coolMap.removeRouteAndMarker(row['route_id']).then((res) => { this.coolMap.extendReBound(); });
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
this.routes.forEach(row => {
|
|
133
|
-
this.selectedRoute.select(row);
|
|
134
|
-
this.coolMap.plotRoute(row, row['route_id'], 'jobrouteList', false, true);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
togglerouteDetails(eventType, route, mouseOut) {
|
|
139
|
-
if (typeof (eventType) === 'string') {
|
|
140
|
-
this.preventMouseout = true;
|
|
141
|
-
this.utils.setdictValue('route-details', JSON.stringify(route));
|
|
142
|
-
}
|
|
143
|
-
if (typeof (eventType) === 'boolean' && eventType && !this.preventMouseout) {
|
|
144
|
-
this.detailsCardEnable = eventType;
|
|
145
|
-
}
|
|
146
|
-
;
|
|
147
|
-
if (typeof (eventType) === 'boolean' && !eventType && !this.preventMouseout) {
|
|
148
|
-
this.detailsCardEnable = eventType;
|
|
149
|
-
}
|
|
150
|
-
;
|
|
151
|
-
if (this.preventMouseout && !this.detailsCardEnable)
|
|
152
|
-
this.preventMouseout = false;
|
|
153
|
-
if (mouseOut) {
|
|
154
|
-
if (this.preventMouseout) {
|
|
155
|
-
route = this.utils.getdictValue('route-details');
|
|
156
|
-
this.routeCardDetail = route;
|
|
157
|
-
}
|
|
158
|
-
if (!this.preventMouseout) {
|
|
159
|
-
this.routeCardDetail = route;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
this.routeCardDetail = route;
|
|
164
|
-
}
|
|
165
|
-
this.routeCardDetail['created_at'] = this.utils.getDateFormat(new Date(this.routeCardDetail['created_at']), '/');
|
|
166
|
-
}
|
|
167
|
-
openShareRouteModal(data) {
|
|
168
|
-
this.openShareRoute.emit(data);
|
|
169
|
-
}
|
|
170
|
-
ngOnDestroy() {
|
|
171
|
-
this.destroyer$.next(true);
|
|
172
|
-
this.destroyer$.unsubscribe();
|
|
173
|
-
}
|
|
174
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: JobCodeComponent, deps: [{ token: i1.UtilsService }, { token: i1.CoolmapService }, { token: 'memberData' }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: JobCodeComponent, selector: "app-job-code", inputs: { jobdetail: "jobdetail", customerRepoDetails: "customerRepoDetails" }, outputs: { clearJobDetails: "clearJobDetails", openShareRoute: "openShareRoute" }, ngImport: i0, template: "<div class=\"jobcode_detailprt\" (click)=\"isOverlapRouteSection = false\" *ngIf=\"jobdetail\" [ngClass]=\"{'overlap': !isOverlapRouteSection}\" cdkDrag>\n <span class=\"close\"><mat-icon (click)=\"clearJob()\">clear</mat-icon></span>\n <div class=\"job_details_area\">\n <div class=\"detailnameprt\">\n <app-jobcode-status [jobValue]=\"jobdetail\"></app-jobcode-status>\n </div>\n <app-jobcode-overview [jobValue]=\"jobdetail\"></app-jobcode-overview>\n </div>\n</div>\n\n<div class=\"route_listprt\" (click)=\"isOverlapRouteSection = true\" [ngClass]=\"{ 'show': isVisible, 'overlap': isOverlapRouteSection}\">\n <div class=\"listing_toggle\" (click)=\"toggleSidemenu()\">\n <img src=\"assets/images/route.svg\" alt=\"\" />\n </div>\n\n <div class=\"listing_box\">\n <div class=\"closebtn\" (click)=\"toggleSidemenu()\">\n <mat-icon>clear</mat-icon>\n </div>\n\n <div class=\"btnprt\">\n <h2> List of Routes </h2>\n <button (click)=\"masterToggle()\">{{routes && routes.length > 0 && routes.length === selectedRoute.selected.length ? 'Uncheck' : 'Check'}} All</button>\n </div>\n\n <app-job-route-list [routes]=\"routes\" [masterRoutes]=\"masterRoutes\" [selectedRoute]=\"selectedRoute\" (changeRoutes)=\"routes = $event\" (changeSelectedRoute)=\"selectedRoute = $event\"></app-job-route-list>\n <cdk-virtual-scroll-viewport itemSize=\"50\" class=\"routeList-viewport\">\n <ul *ngIf=\"routes['length'] > 0\">\n <li *ngFor=\"let list of routes\">\n <div class=\"iconprt\">\n <span>\n <input type=\"checkbox\" [checked]=\"selectedRoute.isSelected(list)\"\n (change)=\"$event ? selectRoute(list) : null\" /><label> </label>\n <div class=\"border\"></div>\n </span>\n <div class=\"statusunit\" [ngClass]=\"list['unit']\">{{list['unit']}}</div>\n <div class=\"infoicon\">\n <img (mouseenter)=\"togglerouteDetails(true, list)\" (mouseout)=\"togglerouteDetails(false, list, true)\"\n (click)=\"togglerouteDetails('click', list)\" src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"infoicon\" *ngIf=\"config.repository === 'customer'\">\n <img src=\"assets/images/share_icon.png\" (click)=\"openShareRouteModal(list)\" [alt]=\"\" />\n </div>\n </div>\n <div class=\"pickprtbox\">\n <h2> {{list['route_name']}} </h2>\n <h3><ng-container *ngIf=\"config?.repository === 'coolmap'\">{{list['customer_name']}} | </ng-container>{{config.repository === 'coolmap' ? list['material'] : list['materialLabel']}}</h3>\n <div class=\"pickdropprt\">\n <div class=\"pickprt\">\n <b>\n <h4>{{list['pickup_location']}}</h4>\n </b>\n </div>\n <div class=\"dropprt\">\n <b>\n <h4>{{list['delivery_location']}}</h4>\n </b>\n </div>\n </div>\n </div>\n </li>\n </ul>\n <p style=\"color: #fff;\" *ngIf=\"routes.length === 0\">No Route found</p>\n </cdk-virtual-scroll-viewport>\n\n </div>\n\n <div class=\"route_detail\" *ngIf=\"detailsCardEnable\">\n <div class=\"closebtnroutedetail\" (click)=\"detailsCardEnable = false; preventMouseout = false\">\n <mat-icon>clear</mat-icon>\n </div>\n <lib-route-info-card [propData]=\"{className: 'listRoutecard', repository: config['repository']}\" [popupData]=\"routeCardDetail\"></lib-route-info-card>\n <div class=\"createTxt\">\n <small>\n Created by {{routeCardDetail?.created_by_name}} on {{routeCardDetail?.created_at}}\n </small>\n </div>\n </div>\n</div>\n", styles: [".jobcode_detailprt{position:absolute;left:320px;bottom:10px;background:white;padding:15px 20px;border-radius:20px;max-width:350px;z-index:999;box-shadow:0 0 5px #0000001a}.jobcode_detailprt .close{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#fff;position:absolute;top:-11px;left:-11px}@keyframes autoslide{to{transform:translate(calc(90vw - 100%))}0%{transform:translate(0)}}.route_listprt .listing_toggle{background:white;border-radius:15px;padding:5px;position:absolute;right:10px;top:20px;cursor:pointer}.route_listprt .listing_toggle img{width:28px}.route_listprt .listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px #ffffff14;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0;opacity:0}.route_listprt .listing_box .closebtn{display:none}.route_listprt .listing_box ul{padding:0 20px 0 0}.route_listprt .listing_box ul li{background:#4a4a4a;padding:10px 15px;border-radius:15px;display:flex;margin-bottom:10px;position:relative;height:inherit}@media (min-width: 1600px){.route_listprt .listing_box ul li{padding:6px 15px;margin-bottom:5px}}.route_listprt .listing_box ul li .iconprt{display:flex;flex-direction:column}.route_listprt .listing_box ul li .iconprt span{display:flex;align-items:center;margin-bottom:32px}.route_listprt .listing_box ul li .iconprt span input[type=checkbox]{width:100%;height:100%;margin-right:10px;opacity:0;position:absolute;left:0;margin-left:0;top:0;z-index:3;cursor:pointer}.route_listprt .listing_box ul li .iconprt span label{width:100%;position:relative;z-index:2;font-size:12px;color:#878787;height:100%;position:absolute;top:0;left:0}.route_listprt .listing_box ul li .iconprt span .border{position:absolute;width:100%;height:100%;left:0;right:0;top:0;border-radius:15px}.route_listprt .listing_box ul li .iconprt span input:checked~.border{border-left:1px solid white;border-right:1px solid white;border-top:1px solid white;border-bottom:1px solid white}.route_listprt .listing_box ul li .iconprt span h2{margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;padding-left:16px;font-size:.9rem;margin-bottom:0;font-weight:400;margin-top:0}.route_listprt .listing_box ul li .iconprt .statusunit{border-radius:30px;font-size:0;color:#fff;text-transform:capitalize;font-weight:500;width:20px;height:20px;text-align:center;line-height:20px;margin-bottom:7px}.route_listprt .listing_box ul li .iconprt .statusunit:first-letter{font-size:.8rem}.route_listprt .listing_box ul li .iconprt .statusunit.Ton{background:#ff7272}.route_listprt .listing_box ul li .iconprt .statusunit.Load{background:#a3c52e}.route_listprt .listing_box ul li .iconprt .statusunit.Hourly{background:#ae23d1}@media (min-width: 1600px){.route_listprt .listing_box ul li .iconprt .statusunit{line-height:21px}}.route_listprt .listing_box ul li .iconprt .infoicon{z-index:5;cursor:pointer}.route_listprt .listing_box ul li .iconprt .infoicon img{width:20px;height:20px}.route_listprt .listing_box ul li .pickprtbox{margin-left:10px}.route_listprt .listing_box ul li .pickprtbox h2{font-size:.9rem;margin:7px 0 5px;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden}.route_listprt .listing_box ul li h3{font-size:.8rem;color:#979797;font-weight:600;margin-top:0;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden;margin-bottom:5px}.route_listprt .listing_box ul li .pickdropprt{font-size:.75rem}.route_listprt .listing_box ul li .pickdropprt .pickprt{position:relative;display:flex;align-items:center;padding-bottom:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .pickprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .pickprt b:after{background:#bcbcbc;width:1px;height:100%;left:3px;content:\"\";position:absolute;top:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .pickprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.route_listprt .listing_box ul li .pickdropprt .dropprt{position:relative;padding-bottom:10px;display:flex;align-items:center}.route_listprt .listing_box ul li .pickdropprt .dropprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .dropprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .dropprt b:after{background:#bcbcbc;width:1px;height:12px;left:3px;content:\"\";position:absolute;top:-7px}.route_listprt .listing_box ul li .pickdropprt .dropprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .dropprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.route_listprt.show .listing_box{width:300px;max-width:300px;flex:0 0 350px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}.route_listprt.show .listing_box h2{color:#fff;white-space:nowrap}.route_listprt.show .listing_box .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px #ffffff14;display:block}.btnprt{display:flex;justify-content:space-between;align-items:center;padding-right:20px}.btnprt h2{margin:0}.btnprt button{font-size:15px;padding:8px 20px;background-color:#326ad3;color:#fff;border:none;border-radius:10px;box-shadow:none;outline:none}.hidden{display:none}.route_detail{background:#282828;position:absolute;width:260px;top:50%;transform:translateY(-50%);right:310px;border-radius:20px;padding:10px;box-shadow:0 0 5px #ffffff36}.createTxt small{color:#fff;font-size:.7rem}.closebtnroutedetail{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#f5f5f5;position:absolute;top:-7px;left:-11px}.routeList-viewport{height:944px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.JobRouteListComponent, selector: "app-job-route-list", inputs: ["routes", "selectedRoute", "masterRoutes"], outputs: ["changeNav", "changeRoutes", "changeSelectedRoute"] }, { kind: "component", type: i7.JobcodeStatusComponent, selector: "app-jobcode-status", inputs: ["jobValue"] }, { kind: "component", type: i8.JobcodeOverviewComponent, selector: "app-jobcode-overview", inputs: ["jobValue"] }, { kind: "component", type: i9.RouteInfoCardComponent, selector: "lib-route-info-card", inputs: ["popupData", "propData"] }] });
|
|
176
|
-
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: JobCodeComponent, decorators: [{
|
|
178
|
-
type: Component,
|
|
179
|
-
args: [{ selector: 'app-job-code', template: "<div class=\"jobcode_detailprt\" (click)=\"isOverlapRouteSection = false\" *ngIf=\"jobdetail\" [ngClass]=\"{'overlap': !isOverlapRouteSection}\" cdkDrag>\n <span class=\"close\"><mat-icon (click)=\"clearJob()\">clear</mat-icon></span>\n <div class=\"job_details_area\">\n <div class=\"detailnameprt\">\n <app-jobcode-status [jobValue]=\"jobdetail\"></app-jobcode-status>\n </div>\n <app-jobcode-overview [jobValue]=\"jobdetail\"></app-jobcode-overview>\n </div>\n</div>\n\n<div class=\"route_listprt\" (click)=\"isOverlapRouteSection = true\" [ngClass]=\"{ 'show': isVisible, 'overlap': isOverlapRouteSection}\">\n <div class=\"listing_toggle\" (click)=\"toggleSidemenu()\">\n <img src=\"assets/images/route.svg\" alt=\"\" />\n </div>\n\n <div class=\"listing_box\">\n <div class=\"closebtn\" (click)=\"toggleSidemenu()\">\n <mat-icon>clear</mat-icon>\n </div>\n\n <div class=\"btnprt\">\n <h2> List of Routes </h2>\n <button (click)=\"masterToggle()\">{{routes && routes.length > 0 && routes.length === selectedRoute.selected.length ? 'Uncheck' : 'Check'}} All</button>\n </div>\n\n <app-job-route-list [routes]=\"routes\" [masterRoutes]=\"masterRoutes\" [selectedRoute]=\"selectedRoute\" (changeRoutes)=\"routes = $event\" (changeSelectedRoute)=\"selectedRoute = $event\"></app-job-route-list>\n <cdk-virtual-scroll-viewport itemSize=\"50\" class=\"routeList-viewport\">\n <ul *ngIf=\"routes['length'] > 0\">\n <li *ngFor=\"let list of routes\">\n <div class=\"iconprt\">\n <span>\n <input type=\"checkbox\" [checked]=\"selectedRoute.isSelected(list)\"\n (change)=\"$event ? selectRoute(list) : null\" /><label> </label>\n <div class=\"border\"></div>\n </span>\n <div class=\"statusunit\" [ngClass]=\"list['unit']\">{{list['unit']}}</div>\n <div class=\"infoicon\">\n <img (mouseenter)=\"togglerouteDetails(true, list)\" (mouseout)=\"togglerouteDetails(false, list, true)\"\n (click)=\"togglerouteDetails('click', list)\" src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"infoicon\" *ngIf=\"config.repository === 'customer'\">\n <img src=\"assets/images/share_icon.png\" (click)=\"openShareRouteModal(list)\" [alt]=\"\" />\n </div>\n </div>\n <div class=\"pickprtbox\">\n <h2> {{list['route_name']}} </h2>\n <h3><ng-container *ngIf=\"config?.repository === 'coolmap'\">{{list['customer_name']}} | </ng-container>{{config.repository === 'coolmap' ? list['material'] : list['materialLabel']}}</h3>\n <div class=\"pickdropprt\">\n <div class=\"pickprt\">\n <b>\n <h4>{{list['pickup_location']}}</h4>\n </b>\n </div>\n <div class=\"dropprt\">\n <b>\n <h4>{{list['delivery_location']}}</h4>\n </b>\n </div>\n </div>\n </div>\n </li>\n </ul>\n <p style=\"color: #fff;\" *ngIf=\"routes.length === 0\">No Route found</p>\n </cdk-virtual-scroll-viewport>\n\n </div>\n\n <div class=\"route_detail\" *ngIf=\"detailsCardEnable\">\n <div class=\"closebtnroutedetail\" (click)=\"detailsCardEnable = false; preventMouseout = false\">\n <mat-icon>clear</mat-icon>\n </div>\n <lib-route-info-card [propData]=\"{className: 'listRoutecard', repository: config['repository']}\" [popupData]=\"routeCardDetail\"></lib-route-info-card>\n <div class=\"createTxt\">\n <small>\n Created by {{routeCardDetail?.created_by_name}} on {{routeCardDetail?.created_at}}\n </small>\n </div>\n </div>\n</div>\n", styles: [".jobcode_detailprt{position:absolute;left:320px;bottom:10px;background:white;padding:15px 20px;border-radius:20px;max-width:350px;z-index:999;box-shadow:0 0 5px #0000001a}.jobcode_detailprt .close{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#fff;position:absolute;top:-11px;left:-11px}@keyframes autoslide{to{transform:translate(calc(90vw - 100%))}0%{transform:translate(0)}}.route_listprt .listing_toggle{background:white;border-radius:15px;padding:5px;position:absolute;right:10px;top:20px;cursor:pointer}.route_listprt .listing_toggle img{width:28px}.route_listprt .listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px #ffffff14;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0;opacity:0}.route_listprt .listing_box .closebtn{display:none}.route_listprt .listing_box ul{padding:0 20px 0 0}.route_listprt .listing_box ul li{background:#4a4a4a;padding:10px 15px;border-radius:15px;display:flex;margin-bottom:10px;position:relative;height:inherit}@media (min-width: 1600px){.route_listprt .listing_box ul li{padding:6px 15px;margin-bottom:5px}}.route_listprt .listing_box ul li .iconprt{display:flex;flex-direction:column}.route_listprt .listing_box ul li .iconprt span{display:flex;align-items:center;margin-bottom:32px}.route_listprt .listing_box ul li .iconprt span input[type=checkbox]{width:100%;height:100%;margin-right:10px;opacity:0;position:absolute;left:0;margin-left:0;top:0;z-index:3;cursor:pointer}.route_listprt .listing_box ul li .iconprt span label{width:100%;position:relative;z-index:2;font-size:12px;color:#878787;height:100%;position:absolute;top:0;left:0}.route_listprt .listing_box ul li .iconprt span .border{position:absolute;width:100%;height:100%;left:0;right:0;top:0;border-radius:15px}.route_listprt .listing_box ul li .iconprt span input:checked~.border{border-left:1px solid white;border-right:1px solid white;border-top:1px solid white;border-bottom:1px solid white}.route_listprt .listing_box ul li .iconprt span h2{margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;padding-left:16px;font-size:.9rem;margin-bottom:0;font-weight:400;margin-top:0}.route_listprt .listing_box ul li .iconprt .statusunit{border-radius:30px;font-size:0;color:#fff;text-transform:capitalize;font-weight:500;width:20px;height:20px;text-align:center;line-height:20px;margin-bottom:7px}.route_listprt .listing_box ul li .iconprt .statusunit:first-letter{font-size:.8rem}.route_listprt .listing_box ul li .iconprt .statusunit.Ton{background:#ff7272}.route_listprt .listing_box ul li .iconprt .statusunit.Load{background:#a3c52e}.route_listprt .listing_box ul li .iconprt .statusunit.Hourly{background:#ae23d1}@media (min-width: 1600px){.route_listprt .listing_box ul li .iconprt .statusunit{line-height:21px}}.route_listprt .listing_box ul li .iconprt .infoicon{z-index:5;cursor:pointer}.route_listprt .listing_box ul li .iconprt .infoicon img{width:20px;height:20px}.route_listprt .listing_box ul li .pickprtbox{margin-left:10px}.route_listprt .listing_box ul li .pickprtbox h2{font-size:.9rem;margin:7px 0 5px;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden}.route_listprt .listing_box ul li h3{font-size:.8rem;color:#979797;font-weight:600;margin-top:0;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden;margin-bottom:5px}.route_listprt .listing_box ul li .pickdropprt{font-size:.75rem}.route_listprt .listing_box ul li .pickdropprt .pickprt{position:relative;display:flex;align-items:center;padding-bottom:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .pickprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .pickprt b:after{background:#bcbcbc;width:1px;height:100%;left:3px;content:\"\";position:absolute;top:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .pickprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.route_listprt .listing_box ul li .pickdropprt .dropprt{position:relative;padding-bottom:10px;display:flex;align-items:center}.route_listprt .listing_box ul li .pickdropprt .dropprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .dropprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .dropprt b:after{background:#bcbcbc;width:1px;height:12px;left:3px;content:\"\";position:absolute;top:-7px}.route_listprt .listing_box ul li .pickdropprt .dropprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .dropprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.route_listprt.show .listing_box{width:300px;max-width:300px;flex:0 0 350px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}.route_listprt.show .listing_box h2{color:#fff;white-space:nowrap}.route_listprt.show .listing_box .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px #ffffff14;display:block}.btnprt{display:flex;justify-content:space-between;align-items:center;padding-right:20px}.btnprt h2{margin:0}.btnprt button{font-size:15px;padding:8px 20px;background-color:#326ad3;color:#fff;border:none;border-radius:10px;box-shadow:none;outline:none}.hidden{display:none}.route_detail{background:#282828;position:absolute;width:260px;top:50%;transform:translateY(-50%);right:310px;border-radius:20px;padding:10px;box-shadow:0 0 5px #ffffff36}.createTxt small{color:#fff;font-size:.7rem}.closebtnroutedetail{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#f5f5f5;position:absolute;top:-7px;left:-11px}.routeList-viewport{height:944px}\n"] }]
|
|
180
|
-
}], ctorParameters: () => [{ type: i1.UtilsService }, { type: i1.CoolmapService }, { type: i1.CoolmapConfigModel, decorators: [{
|
|
181
|
-
type: Inject,
|
|
182
|
-
args: ['memberData']
|
|
183
|
-
}] }], propDecorators: { jobdetail: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], customerRepoDetails: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], clearJobDetails: [{
|
|
188
|
-
type: Output
|
|
189
|
-
}], openShareRoute: [{
|
|
190
|
-
type: Output
|
|
191
|
-
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9qb2ItY29kZS9qb2ItY29kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L2pvYi1jb2RlL2pvYi1jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLGdCQUFnQjtJQWlCUjtJQUE0QjtJQUNoQjtJQWpCZixTQUFTLENBQU87SUFDaEIsbUJBQW1CLENBQTRCO0lBQy9ELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUNkLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDdkMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDckMsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDN0UsVUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDM0MsaUJBQWlCLENBQW1CO0lBQ3BDLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFDakMsZUFBZSxDQUFRO0lBQ3ZCLGlCQUFpQixDQUFVO0lBQzNCLFlBQVksQ0FBTTtJQUNsQixRQUFRLENBQU07SUFDZCxhQUFhLENBQU07SUFF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OzJGRHBFYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzs7MEJBc0JyQixNQUFNOzJCQUFDLFlBQVk7eUNBakJOLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUlXLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1UsY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvb2xtYXBDb25maWdNb2RlbCwgQ29vbG1hcFNlcnZpY2UsIEN1c3RvbWVyUmVwb0RldGFpbHNNb2RlbCwgUm91dGUsIFV0aWxzU2VydmljZSB9IGZyb20gJ0BhZ2dkaXJlY3QvY29vbG1hcC1zZXJ2aWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1jb2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2pvYi1jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLWNvZGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBKb2JDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgam9iZGV0YWlsITogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tZXJSZXBvRGV0YWlscyE6IEN1c3RvbWVyUmVwb0RldGFpbHNNb2RlbDtcbiAgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHJvdXRlczogUm91dGVbXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRSb3V0ZSA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKVxuICBAT3V0cHV0KCkgcHVibGljIGNsZWFySm9iRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvcGVuU2hhcmVSb3V0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgaXNPdmVybGFwUm91dGVTZWN0aW9uID0gZmFsc2U7XG4gIHB1YmxpYyBkZXN0cm95ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgZGV0YWlsc0NhcmRFbmFibGU6IGJvb2xlYW4gfCBzdHJpbmc7XG4gIHByZXZlbnRNb3VzZW91dDogYm9vbGVhbiA9IGZhbHNlO1xuICByb3V0ZUNhcmREZXRhaWw6IFJvdXRlO1xuICBwcmV2ZW50TGlzdFVwZGF0ZTogYm9vbGVhbjtcbiAgbWFzdGVyUm91dGVzOiBhbnk7XG4gIHVuaXRMaXN0OiBhbnk7XG4gIG1hdGVyaWFsc0xpc3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbHM6IFV0aWxzU2VydmljZSwgcHVibGljIGNvb2xNYXA6IENvb2xtYXBTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ21lbWJlckRhdGEnKSBwdWJsaWMgY29uZmlnOiBDb29sbWFwQ29uZmlnTW9kZWwpIHtcbiAgICB0aGlzLnV0aWxzLmNsZWFyVmlld1JvdXRlZm9ySm9iQ29kZU9ic2VydmUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzKSB0aGlzLmNvb2xNYXAucmVtb3ZlSm9iRnJvbU1hcCh0aGlzLnNlbGVjdGVkUm91dGUuc2VsZWN0ZWQpOyB0aGlzLnNlbGVjdGVkUm91dGUuY2xlYXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB0aGlzLmNoZWNrQW5kQ2FsbFJvdXRlTGlzdCgpIH1cbiAgY2hlY2tBbmRDYWxsUm91dGVMaXN0KCkge1xuICAgICAgICB0aGlzLnV0aWxzLmNsZWFyT3B0aW9ucygpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5yZXBvc2l0b3J5ID09PSAnY3VzdG9tZXInKSB7XG4gICAgICB0aGlzLnV0aWxzLmZldGNoVW5pdHNMaXN0KCkudGhlbigocmVzKSA9PiB7XG4gICAgICAgIHRoaXMudW5pdExpc3QgPSByZXM7XG4gICAgICAgIHRoaXMudXRpbHMuZmV0Y2hNYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIoKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLm1hdGVyaWFsc0xpc3QgPSByZXM7XG4gICAgICAgICAgdGhpcy5nZXRSb3V0ZUxpc3RGb3JDdXN0b21lcigpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldFJvdXRlTGlzdEZvckNvb2xNYXAoKVxuICAgIH1cbiAgfVxuICBnZXRVbml0TmFtZShkYXRhKTogc3RyaW5nIHtcbiAgICBsZXQgdW5pdE5hbWUgPSAnJztcbiAgICB0aGlzLnVuaXRMaXN0Lm1hcCgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmlkID09PSBkYXRhLnVuaXRfaWQpIHtcbiAgICAgICAgdW5pdE5hbWUgPSByZXMudHlwZVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHVuaXROYW1lO1xuICB9XG5cbiAgZ2V0TWF0ZXJpYWxOYW1lKGRhdGEpOiBzdHJpbmcge1xuICAgIGxldCBtYXRlcmlhbE5hbWUgPSAnJztcbiAgICB0aGlzLm1hdGVyaWFsc0xpc3QubWFwKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMuc3ViX21hdGVyaWFsX2lkID09PSBkYXRhLm1hdGVyaWFsc19pZCkge1xuICAgICAgICBtYXRlcmlhbE5hbWUgPSByZXMubGFiZWxcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBtYXRlcmlhbE5hbWU7XG4gIH1cbiAgZ2V0Um91dGVMaXN0Rm9yQ29vbE1hcCgpIHtcbiAgICB0aGlzLnV0aWxzLmdldERhdGEoJ3JvdXRlcy9hbGwnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHRoaXMucm91dGVzID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMubWFzdGVyUm91dGVzID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMucHJldmVudExpc3RVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZXMuZm9yRWFjaCgoZWxlOiBSb3V0ZSkgPT4geyB0aGlzLnV0aWxzLm1ha2VPcHRpb25zKGVsZSkgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBnZXRSb3V0ZUxpc3RGb3JDdXN0b21lcigpIHtcbiAgICBjb25zdCBkYXRhc2V0ID0ge1xuICAgICAgY3VzdG9tZXJfaWQ6IHRoaXMuY3VzdG9tZXJSZXBvRGV0YWlscy5jdXN0b21lci5pZFxuICAgIH1cbiAgICB0aGlzLnV0aWxzLnBvc3RkYXRhKCdyb3V0ZXMvYWxsJywgZGF0YXNldCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLnJvdXRlcyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnByZXZlbnRMaXN0VXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucm91dGVzLm1hcCgoZWxlOiBSb3V0ZSkgPT4ge1xuICAgICAgICAgIGVsZS51bml0ID0gdGhpcy5nZXRVbml0TmFtZShlbGUpO1xuICAgICAgICAgIGVsZS5tYXRlcmlhbExhYmVsID0gdGhpcy5nZXRNYXRlcmlhbE5hbWUoZWxlKTtcbiAgICAgICAgICBlbGUubWF0ZXJpYWwgPSB0aGlzLmdldE1hdGVyaWFsTmFtZShlbGUpLnNwbGl0KCd8JylbMF0udHJpbSgpO1xuICAgICAgICAgIHRoaXMudXRpbHMubWFrZU9wdGlvbnMoZWxlKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXN0ZXJSb3V0ZXMgPSB0aGlzLnJvdXRlcztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVtZW51KCkge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuICAgIHRoaXMuZGV0YWlsc0NhcmRFbmFibGUgPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnRNb3VzZW91dCA9IGZhbHNlXG4gIH1cbiAgY2xlYXJKb2IoKSB7IHRoaXMuY2xlYXJKb2JEZXRhaWxzLmVtaXQodHJ1ZSk7IHRoaXMudXRpbHMucHJlVmVudEpvYmRldGFpbGNsb3NlLm5leHQoZmFsc2UpIH1cbiAgc2VsZWN0Um91dGUoZXZlbnQ6IFJvdXRlKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuc2VsZWN0ZWRSb3V0ZS5zZWxlY3RlZC5maW5kSW5kZXgoZWxlID0+IGVsZVsnb3JkZXJfbnVtYmVyJ10gPT09IGV2ZW50WydvcmRlcl9udW1iZXInXSk7XG4gICAgdGhpcy5zZWxlY3RlZFJvdXRlLnRvZ2dsZShldmVudCk7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUm91dGUuaXNTZWxlY3RlZChldmVudCkgJiYgZXZlbnRbJ3JvdXRlX2lkJ10pIHtcbiAgICAgIHRoaXMuY29vbE1hcC5yZW1vdmVSb3V0ZUFuZE1hcmtlcihldmVudFsncm91dGVfaWQnXSkudGhlbigocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb29sTWFwLmV4dGVuZFJlQm91bmQoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvb2xNYXAucGxvdFJvdXRlKGV2ZW50LCBldmVudFsncm91dGVfaWQnXSwgJ2pvYnJvdXRlTGlzdCcsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG4gIH1cbiAgbWFzdGVyVG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLnJvdXRlcy5sZW5ndGggPT09IHRoaXMuc2VsZWN0ZWRSb3V0ZS5zZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5jbGVhcigpO1xuICAgICAgdGhpcy5yb3V0ZXMuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICB0aGlzLmNvb2xNYXAucmVtb3ZlUm91dGVBbmRNYXJrZXIocm93Wydyb3V0ZV9pZCddKS50aGVuKChyZXM6IGFueSkgPT4geyB0aGlzLmNvb2xNYXAuZXh0ZW5kUmVCb3VuZCgpIH0pXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXMuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm91dGUuc2VsZWN0KHJvdyk7XG4gICAgICAgIHRoaXMuY29vbE1hcC5wbG90Um91dGUocm93LCByb3dbJ3JvdXRlX2lkJ10sICdqb2Jyb3V0ZUxpc3QnLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlcm91dGVEZXRhaWxzKGV2ZW50VHlwZTogc3RyaW5nIHwgYm9vbGVhbiwgcm91dGU6IFJvdXRlLCBtb3VzZU91dD86IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIChldmVudFR5cGUpID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5wcmV2ZW50TW91c2VvdXQgPSB0cnVlOyB0aGlzLnV0aWxzLnNldGRpY3RWYWx1ZSgncm91dGUtZGV0YWlscycsIEpTT04uc3RyaW5naWZ5KHJvdXRlKSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgKGV2ZW50VHlwZSkgPT09ICdib29sZWFuJyAmJiBldmVudFR5cGUgJiYgIXRoaXMucHJldmVudE1vdXNlb3V0KSB7IHRoaXMuZGV0YWlsc0NhcmRFbmFibGUgPSBldmVudFR5cGUgfTtcbiAgICBpZiAodHlwZW9mIChldmVudFR5cGUpID09PSAnYm9vbGVhbicgJiYgIWV2ZW50VHlwZSAmJiAhdGhpcy5wcmV2ZW50TW91c2VvdXQpIHsgdGhpcy5kZXRhaWxzQ2FyZEVuYWJsZSA9IGV2ZW50VHlwZSB9O1xuICAgIGlmICh0aGlzLnByZXZlbnRNb3VzZW91dCAmJiAhdGhpcy5kZXRhaWxzQ2FyZEVuYWJsZSkgdGhpcy5wcmV2ZW50TW91c2VvdXQgPSBmYWxzZTtcbiAgICBpZiAobW91c2VPdXQpIHtcbiAgICAgIGlmICh0aGlzLnByZXZlbnRNb3VzZW91dCkge1xuICAgICAgICByb3V0ZSA9IHRoaXMudXRpbHMuZ2V0ZGljdFZhbHVlKCdyb3V0ZS1kZXRhaWxzJyk7XG4gICAgICAgIHRoaXMucm91dGVDYXJkRGV0YWlsID0gcm91dGU7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMucHJldmVudE1vdXNlb3V0KSB7XG4gICAgICAgIHRoaXMucm91dGVDYXJkRGV0YWlsID0gcm91dGVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZUNhcmREZXRhaWwgPSByb3V0ZVxuICAgIH1cbiAgICB0aGlzLnJvdXRlQ2FyZERldGFpbFsnY3JlYXRlZF9hdCddID0gdGhpcy51dGlscy5nZXREYXRlRm9ybWF0KG5ldyBEYXRlKHRoaXMucm91dGVDYXJkRGV0YWlsWydjcmVhdGVkX2F0J10pLCAnLycpO1xuICB9XG5cbiAgb3BlblNoYXJlUm91dGVNb2RhbChkYXRhKSB7XG4gICAgdGhpcy5vcGVuU2hhcmVSb3V0ZS5lbWl0KGRhdGEpO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVyJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveWVyJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiam9iY29kZV9kZXRhaWxwcnRcIiAoY2xpY2spPVwiaXNPdmVybGFwUm91dGVTZWN0aW9uID0gZmFsc2VcIiAgKm5nSWY9XCJqb2JkZXRhaWxcIiBbbmdDbGFzc109XCJ7J292ZXJsYXAnOiAhaXNPdmVybGFwUm91dGVTZWN0aW9ufVwiIGNka0RyYWc+XG4gIDxzcGFuIGNsYXNzPVwiY2xvc2VcIj48bWF0LWljb24gKGNsaWNrKT1cImNsZWFySm9iKClcIj5jbGVhcjwvbWF0LWljb24+PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiam9iX2RldGFpbHNfYXJlYVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxuYW1lcHJ0XCI+XG4gICAgICA8YXBwLWpvYmNvZGUtc3RhdHVzIFtqb2JWYWx1ZV09XCJqb2JkZXRhaWxcIj48L2FwcC1qb2Jjb2RlLXN0YXR1cz5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWpvYmNvZGUtb3ZlcnZpZXcgW2pvYlZhbHVlXT1cImpvYmRldGFpbFwiPjwvYXBwLWpvYmNvZGUtb3ZlcnZpZXc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJyb3V0ZV9saXN0cHJ0XCIgKGNsaWNrKT1cImlzT3ZlcmxhcFJvdXRlU2VjdGlvbiA9IHRydWVcIiBbbmdDbGFzc109XCJ7ICdzaG93JzogaXNWaXNpYmxlLCAnb3ZlcmxhcCc6IGlzT3ZlcmxhcFJvdXRlU2VjdGlvbn1cIj5cbiAgPGRpdiBjbGFzcz1cImxpc3RpbmdfdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVtZW51KClcIj5cbiAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvcm91dGUuc3ZnXCIgYWx0PVwiXCIgLz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxpc3RpbmdfYm94XCI+XG4gICAgPGRpdiBjbGFzcz1cImNsb3NlYnRuXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVtZW51KClcIj5cbiAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnRucHJ0XCI+XG4gICAgICA8aDI+IExpc3Qgb2YgUm91dGVzIDwvaDI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJtYXN0ZXJUb2dnbGUoKVwiPnt7cm91dGVzICYmIHJvdXRlcy5sZW5ndGggPiAwICYmIHJvdXRlcy5sZW5ndGggPT09IHNlbGVjdGVkUm91dGUuc2VsZWN0ZWQubGVuZ3RoID8gJ1VuY2hlY2snIDogJ0NoZWNrJ319IEFsbDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGFwcC1qb2Itcm91dGUtbGlzdCBbcm91dGVzXT1cInJvdXRlc1wiIFttYXN0ZXJSb3V0ZXNdPVwibWFzdGVyUm91dGVzXCIgW3NlbGVjdGVkUm91dGVdPVwic2VsZWN0ZWRSb3V0ZVwiIChjaGFuZ2VSb3V0ZXMpPVwicm91dGVzID0gJGV2ZW50XCIgKGNoYW5nZVNlbGVjdGVkUm91dGUpPVwic2VsZWN0ZWRSb3V0ZSA9ICRldmVudFwiPjwvYXBwLWpvYi1yb3V0ZS1saXN0PlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCI1MFwiIGNsYXNzPVwicm91dGVMaXN0LXZpZXdwb3J0XCI+XG4gICAgICA8dWwgKm5nSWY9XCJyb3V0ZXNbJ2xlbmd0aCddID4gMFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGxpc3Qgb2Ygcm91dGVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb25wcnRcIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRSb3V0ZS5pc1NlbGVjdGVkKGxpc3QpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdFJvdXRlKGxpc3QpIDogbnVsbFwiIC8+PGxhYmVsPiZuYnNwOzwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXN1bml0XCIgW25nQ2xhc3NdPVwibGlzdFsndW5pdCddXCI+e3tsaXN0Wyd1bml0J119fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9pY29uXCI+XG4gICAgICAgICAgICAgIDxpbWcgKG1vdXNlZW50ZXIpPVwidG9nZ2xlcm91dGVEZXRhaWxzKHRydWUsIGxpc3QpXCIgKG1vdXNlb3V0KT1cInRvZ2dsZXJvdXRlRGV0YWlscyhmYWxzZSwgbGlzdCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlcm91dGVEZXRhaWxzKCdjbGljaycsIGxpc3QpXCIgc3JjPVwiYXNzZXRzL2ltYWdlcy9pbmZvX2ljb24ucG5nXCIgW2FsdF09XCJcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb2ljb25cIiAqbmdJZj1cImNvbmZpZy5yZXBvc2l0b3J5ID09PSAnY3VzdG9tZXInXCI+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltYWdlcy9zaGFyZV9pY29uLnBuZ1wiIChjbGljayk9XCJvcGVuU2hhcmVSb3V0ZU1vZGFsKGxpc3QpXCIgW2FsdF09XCJcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2twcnRib3hcIj5cbiAgICAgICAgICAgIDxoMj4ge3tsaXN0Wydyb3V0ZV9uYW1lJ119fSA8L2gyPlxuICAgICAgICAgICAgPGgzPjxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnJlcG9zaXRvcnkgPT09ICdjb29sbWFwJ1wiPnt7bGlzdFsnY3VzdG9tZXJfbmFtZSddfX0gfCA8L25nLWNvbnRhaW5lcj57e2NvbmZpZy5yZXBvc2l0b3J5ID09PSAnY29vbG1hcCcgPyBsaXN0WydtYXRlcmlhbCddIDogbGlzdFsnbWF0ZXJpYWxMYWJlbCddfX08L2gzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tkcm9wcHJ0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaWNrcHJ0XCI+XG4gICAgICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgICAgICA8aDQ+e3tsaXN0WydwaWNrdXBfbG9jYXRpb24nXX19PC9oND5cbiAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHBydFwiPlxuICAgICAgICAgICAgICAgIDxiPlxuICAgICAgICAgICAgICAgICAgPGg0Pnt7bGlzdFsnZGVsaXZlcnlfbG9jYXRpb24nXX19PC9oND5cbiAgICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPHAgc3R5bGU9XCJjb2xvcjogI2ZmZjtcIiAqbmdJZj1cInJvdXRlcy5sZW5ndGggPT09IDBcIj5ObyBSb3V0ZSBmb3VuZDwvcD5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cblxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicm91dGVfZGV0YWlsXCIgKm5nSWY9XCJkZXRhaWxzQ2FyZEVuYWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZWJ0bnJvdXRlZGV0YWlsXCIgKGNsaWNrKT1cImRldGFpbHNDYXJkRW5hYmxlID0gZmFsc2U7IHByZXZlbnRNb3VzZW91dCA9IGZhbHNlXCI+XG4gICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxsaWItcm91dGUtaW5mby1jYXJkIFtwcm9wRGF0YV09XCJ7Y2xhc3NOYW1lOiAnbGlzdFJvdXRlY2FyZCcsIHJlcG9zaXRvcnk6IGNvbmZpZ1sncmVwb3NpdG9yeSddfVwiICBbcG9wdXBEYXRhXT1cInJvdXRlQ2FyZERldGFpbFwiPjwvbGliLXJvdXRlLWluZm8tY2FyZD5cbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlVHh0XCI+XG4gICAgICA8c21hbGw+XG4gICAgICAgIENyZWF0ZWQgYnkge3tyb3V0ZUNhcmREZXRhaWw/LmNyZWF0ZWRfYnlfbmFtZX19IG9uIHt7cm91dGVDYXJkRGV0YWlsPy5jcmVhdGVkX2F0fX1cbiAgICAgIDwvc21hbGw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@aggdirect/coolmap-services";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/material/progress-bar";
|
|
7
|
-
export class MapComponent {
|
|
8
|
-
coolmapService;
|
|
9
|
-
mapDiv;
|
|
10
|
-
enableProgress = true;
|
|
11
|
-
destroyer$ = new Subject();
|
|
12
|
-
constructor(coolmapService) {
|
|
13
|
-
this.coolmapService = coolmapService;
|
|
14
|
-
}
|
|
15
|
-
ngAfterViewInit() {
|
|
16
|
-
this.coolmapService.reintiatecoolmap.pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
17
|
-
this.enableProgress = true;
|
|
18
|
-
if (res) {
|
|
19
|
-
this.coolmapService.initiateMapForAddRoute(this.mapDiv.nativeElement).then((res) => {
|
|
20
|
-
this.enableProgress = false;
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this.destroyer$.next(true);
|
|
27
|
-
this.destroyer$.unsubscribe();
|
|
28
|
-
}
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: MapComponent, deps: [{ token: i1.CoolmapService }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: MapComponent, selector: "app-map", viewQueries: [{ propertyName: "mapDiv", first: true, predicate: ["map"], descendants: true, static: true }], ngImport: i0, template: "<div>\n <mat-progress-bar *ngIf=\"enableProgress\" mode=\"indeterminate\"></mat-progress-bar>\n <div #map class=\"coolmap\" style=\"height: 100vh;\"></div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: MapComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{ selector: 'app-map', template: "<div>\n <mat-progress-bar *ngIf=\"enableProgress\" mode=\"indeterminate\"></mat-progress-bar>\n <div #map class=\"coolmap\" style=\"height: 100vh;\"></div>\n</div>\n" }]
|
|
35
|
-
}], ctorParameters: () => [{ type: i1.CoolmapService }], propDecorators: { mapDiv: [{
|
|
36
|
-
type: ViewChild,
|
|
37
|
-
args: ['map', { static: true }]
|
|
38
|
-
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvbWFwL21hcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L21hcC9tYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVUxQyxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBSnVCLE1BQU0sQ0FBYztJQUMvRCxjQUFjLEdBQVksSUFBSSxDQUFDO0lBQ3hCLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRTNDLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFLLENBQUM7SUFFeEQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUMzRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2pGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQTthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQzt1R0FyQlUsWUFBWTsyRkFBWixZQUFZLDRKQ1h6Qix5S0FJQTs7MkZET2EsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTO21GQUt3QixNQUFNO3NCQUFoRCxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvb2xtYXBTZXJ2aWNlIH0gZnJvbSAnQGFnZ2RpcmVjdC9jb29sbWFwLXNlcnZpY2VzJztcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdtYXAnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgbWFwRGl2ITogRWxlbWVudFJlZjtcbiAgZW5hYmxlUHJvZ3Jlc3M6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgZGVzdHJveWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoIHB1YmxpYyBjb29sbWFwU2VydmljZTogQ29vbG1hcFNlcnZpY2UgKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb29sbWFwU2VydmljZS5yZWludGlhdGVjb29sbWFwLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZW5hYmxlUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmNvb2xtYXBTZXJ2aWNlLmluaXRpYXRlTWFwRm9yQWRkUm91dGUodGhpcy5tYXBEaXYubmF0aXZlRWxlbWVudCkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGVQcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZXIkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95ZXIkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiZW5hYmxlUHJvZ3Jlc3NcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPGRpdiAjbWFwIGNsYXNzPVwiY29vbG1hcFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aDtcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output, Input, Inject } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { map, startWith } from 'rxjs';
|
|
4
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@aggdirect/coolmap-services";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "@angular/forms";
|
|
9
|
-
import * as i4 from "@angular/material/input";
|
|
10
|
-
import * as i5 from "@angular/material/form-field";
|
|
11
|
-
import * as i6 from "@angular/material/core";
|
|
12
|
-
import * as i7 from "@angular/material/icon";
|
|
13
|
-
import * as i8 from "@angular/material/autocomplete";
|
|
14
|
-
import * as i9 from "@angular/material/chips";
|
|
15
|
-
import * as i10 from "@angular/material/button";
|
|
16
|
-
import * as i11 from "../../../route-jobcode-list/route-jobcode-list.component";
|
|
17
|
-
export class AddRouteNavComponent {
|
|
18
|
-
utils;
|
|
19
|
-
config;
|
|
20
|
-
filterForm = new FormGroup({ search: new FormControl() });
|
|
21
|
-
filteredOptions;
|
|
22
|
-
filters = [];
|
|
23
|
-
loaderVal = false;
|
|
24
|
-
routes = [];
|
|
25
|
-
changeNav = new EventEmitter();
|
|
26
|
-
navValue = '';
|
|
27
|
-
addemit = new EventEmitter();
|
|
28
|
-
updateRouteList = false;
|
|
29
|
-
customerRepoDetails;
|
|
30
|
-
destroyer$ = new Subject();
|
|
31
|
-
preventListUpdate = false;
|
|
32
|
-
unitList;
|
|
33
|
-
materialsList;
|
|
34
|
-
constructor(utils, config) {
|
|
35
|
-
this.utils = utils;
|
|
36
|
-
this.config = config;
|
|
37
|
-
this.filteredOptions = this.filterForm.get('search')?.valueChanges.pipe(startWith(''), map(value => this.utils.filter(value, this.filters)));
|
|
38
|
-
}
|
|
39
|
-
showAddForm() { this.changeNav.emit('addForm'); this.addemit.emit(''); }
|
|
40
|
-
filterSearch(e) {
|
|
41
|
-
this.changeNav.emit({ type: 'Addroute' });
|
|
42
|
-
this.preventListUpdate = true;
|
|
43
|
-
this.filterForm.controls.search.setValue(null);
|
|
44
|
-
this.filters = [{ name: e.source.value.label, type: e.source.value.type, value: e.source.value }];
|
|
45
|
-
}
|
|
46
|
-
removeFromFilter(filter) {
|
|
47
|
-
this.changeNav.emit({ type: 'Addroute' });
|
|
48
|
-
const index = this.filters.indexOf(filter);
|
|
49
|
-
if (index >= 0) {
|
|
50
|
-
this.filters = [];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
ngAfterViewInit() {
|
|
54
|
-
this.checkAndCallRouteList();
|
|
55
|
-
}
|
|
56
|
-
ngOnChanges(changes) {
|
|
57
|
-
if (changes['updateRouteList'] && changes['updateRouteList']['currentValue'])
|
|
58
|
-
this.checkAndCallRouteList();
|
|
59
|
-
if (changes['navValue'] && (changes['navValue']['previousValue'] === 'addForm') && !this.preventListUpdate)
|
|
60
|
-
this.checkAndCallRouteList();
|
|
61
|
-
}
|
|
62
|
-
getRoute(event) { if (event['type'] === 'editroute') {
|
|
63
|
-
this.addemit.emit(event);
|
|
64
|
-
} }
|
|
65
|
-
checkAndCallRouteList() {
|
|
66
|
-
if (this.config.repository === 'customer') {
|
|
67
|
-
this.utils.fetchUnitsList().then((res) => {
|
|
68
|
-
this.unitList = res;
|
|
69
|
-
this.utils.fetchMaterialsListForCustomer().then((res) => {
|
|
70
|
-
this.materialsList = res;
|
|
71
|
-
this.getRouteListForCustomer();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this.getRouteListForCoolMap();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
getUnitName(data) {
|
|
80
|
-
let unitName = '';
|
|
81
|
-
this.unitList.map((res) => {
|
|
82
|
-
if (res.id === data.unit_id) {
|
|
83
|
-
unitName = res.type;
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
return unitName;
|
|
87
|
-
}
|
|
88
|
-
getMaterialName(data) {
|
|
89
|
-
let materialName = '';
|
|
90
|
-
this.materialsList.map((res) => {
|
|
91
|
-
if (res.sub_material_id === data.materials_id) {
|
|
92
|
-
materialName = res.label;
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
return materialName;
|
|
96
|
-
}
|
|
97
|
-
getRouteListForCoolMap() {
|
|
98
|
-
this.utils.getData('routes/all').pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
99
|
-
if (res) {
|
|
100
|
-
this.filters = [];
|
|
101
|
-
this.routes = res['data'];
|
|
102
|
-
this.preventListUpdate = false;
|
|
103
|
-
this.utils.clearOptions();
|
|
104
|
-
this.routes.forEach((ele) => { this.utils.makeOptions(ele); });
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
getRouteListForCustomer() {
|
|
109
|
-
const dataset = {
|
|
110
|
-
customer_id: this.customerRepoDetails.customer.id
|
|
111
|
-
};
|
|
112
|
-
this.utils.postdata('routes/all', dataset).pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
113
|
-
if (res) {
|
|
114
|
-
this.filters = [];
|
|
115
|
-
this.routes = res['data'];
|
|
116
|
-
this.preventListUpdate = false;
|
|
117
|
-
this.utils.clearOptions();
|
|
118
|
-
this.routes.map((ele) => {
|
|
119
|
-
ele.unit = this.getUnitName(ele);
|
|
120
|
-
ele.materialLabel = this.getMaterialName(ele);
|
|
121
|
-
ele.material = this.getMaterialName(ele).split('|')[0].trim();
|
|
122
|
-
this.utils.makeOptions(ele);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
resetSearch() { this.changeNav.emit('Addroute'); }
|
|
128
|
-
ngOnDestroy() {
|
|
129
|
-
this.destroyer$.next(true);
|
|
130
|
-
this.destroyer$.unsubscribe();
|
|
131
|
-
}
|
|
132
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AddRouteNavComponent, deps: [{ token: i1.UtilsService }, { token: 'memberData' }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.9", type: AddRouteNavComponent, selector: "app-add-route-nav", inputs: { navValue: "navValue", updateRouteList: "updateRouteList", customerRepoDetails: "customerRepoDetails" }, outputs: { changeNav: "changeNav", addemit: "addemit" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav_body\">\n <div class=\"logo\">\n <img src=\"assets/images/logo.png\" alt=\"logo\" />\n </div>\n <div class=\"heading m-20\">\n <h1>View Route</h1>\n <button mat-raised-button (click)=\"showAddForm()\">\n <mat-icon>add_circle_outline</mat-icon> Add route\n </button>\n </div>\n\n <div class=\"search-panel\">\n <div class=\"w-100\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field class=\"full-width\" [class.disabled]=\"loaderVal\">\n <input matInput [matChipInputFor]=\"chipList\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n [disabled]=\"loaderVal\" placeholder=\"Search\">\n <mat-icon matSuffix *ngIf=\"!utils.conveySearchIcon(filterForm.value.search)\">search</mat-icon>\n <button mat-button matSuffix mat-icon-button aria-label=\"Clear\" *ngIf=\"utils.conveySearchIcon(filterForm.value.search)\"\n (click)=\"filterForm.reset()\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" class=\"whole_width\">\n <mat-option *ngFor=\"let option of filteredOptions | async\" (onSelectionChange)=\"filterSearch($event)\"\n [value]=\"option\">\n {{option.type | titlecase }}: {{option['label']}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </form>\n <div class=\"chip-list\">\n <mat-chip-grid #chipList aria-label=\"Filter selection\">\n @for (filter of filters; track filter) {\n <mat-chip-row (removed)=\"removeFromFilter(filter)\">\n {{filter.type | titlecase }}: {{filter.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n </div>\n </div>\n </div>\n <app-route-jobcode-list [type]=\"'addroute'\" [currentNav]=\"navValue\" [searchTerm]=\"filters\" [data]=\"routes\" [loader]=\"loaderVal\" (emitroute)=\"getRoute($event)\"></app-route-jobcode-list>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i9.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i9.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i9.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.RouteJobCodeListComponent, selector: "app-route-jobcode-list", inputs: ["loader", "type", "data", "currentNav", "searchTerm", "clearListSeletion"], outputs: ["emitroute", "showAllRoute", "clearJobDetailsFromList"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }] });
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AddRouteNavComponent, decorators: [{
|
|
136
|
-
type: Component,
|
|
137
|
-
args: [{ selector: 'app-add-route-nav', template: "<div class=\"nav_body\">\n <div class=\"logo\">\n <img src=\"assets/images/logo.png\" alt=\"logo\" />\n </div>\n <div class=\"heading m-20\">\n <h1>View Route</h1>\n <button mat-raised-button (click)=\"showAddForm()\">\n <mat-icon>add_circle_outline</mat-icon> Add route\n </button>\n </div>\n\n <div class=\"search-panel\">\n <div class=\"w-100\">\n <form [formGroup]=\"filterForm\">\n <mat-form-field class=\"full-width\" [class.disabled]=\"loaderVal\">\n <input matInput [matChipInputFor]=\"chipList\" formControlName=\"search\" [matAutocomplete]=\"auto\"\n [disabled]=\"loaderVal\" placeholder=\"Search\">\n <mat-icon matSuffix *ngIf=\"!utils.conveySearchIcon(filterForm.value.search)\">search</mat-icon>\n <button mat-button matSuffix mat-icon-button aria-label=\"Clear\" *ngIf=\"utils.conveySearchIcon(filterForm.value.search)\"\n (click)=\"filterForm.reset()\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" class=\"whole_width\">\n <mat-option *ngFor=\"let option of filteredOptions | async\" (onSelectionChange)=\"filterSearch($event)\"\n [value]=\"option\">\n {{option.type | titlecase }}: {{option['label']}}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </form>\n <div class=\"chip-list\">\n <mat-chip-grid #chipList aria-label=\"Filter selection\">\n @for (filter of filters; track filter) {\n <mat-chip-row (removed)=\"removeFromFilter(filter)\">\n {{filter.type | titlecase }}: {{filter.name}}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-grid>\n </div>\n </div>\n </div>\n <app-route-jobcode-list [type]=\"'addroute'\" [currentNav]=\"navValue\" [searchTerm]=\"filters\" [data]=\"routes\" [loader]=\"loaderVal\" (emitroute)=\"getRoute($event)\"></app-route-jobcode-list>\n</div>\n" }]
|
|
138
|
-
}], ctorParameters: () => [{ type: i1.UtilsService }, { type: i1.CoolmapConfigModel, decorators: [{
|
|
139
|
-
type: Inject,
|
|
140
|
-
args: ['memberData']
|
|
141
|
-
}] }], propDecorators: { changeNav: [{
|
|
142
|
-
type: Output
|
|
143
|
-
}], navValue: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], addemit: [{
|
|
146
|
-
type: Output
|
|
147
|
-
}], updateRouteList: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], customerRepoDetails: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJvdXRlLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L25hdi9sYXlvdXQvYWRkLXJvdXRlLW5hdi9hZGQtcm91dGUtbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvbmF2L2xheW91dC9hZGQtcm91dGUtbmF2L2FkZC1yb3V0ZS1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRMUMsTUFBTSxPQUFPLG9CQUFvQjtJQWdCWjtJQUNhO0lBaEJoQyxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsZUFBZSxDQUFpQztJQUNoRCxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQ3ZCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUNKLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUM5QyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzlCLGVBQWUsR0FBWSxLQUFL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LFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDakMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM5QyxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDakQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQzt1R0EvR1Usb0JBQW9CLDhDQWlCckIsWUFBWTsyRkFqQlgsb0JBQW9CLHlQQ2xCakMsMGxFQThDQTs7MkZENUJhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQXNCMUIsTUFBTTsyQkFBQyxZQUFZO3lDQVhMLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1MsUUFBUTtzQkFBdkIsS0FBSztnQkFDVyxPQUFPO3NCQUF2QixNQUFNO2dCQUNTLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uRGVzdHJveSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29vbG1hcENvbmZpZ01vZGVsLCBDdXN0b21lclJlcG9EZXRhaWxzTW9kZWwsIFJvdXRlLCBVdGlsc1NlcnZpY2UgfSBmcm9tICdAYWdnZGlyZWN0L2Nvb2xtYXAtc2VydmljZXMnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmludGVyZmFjZSBGaWx0ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG4gIGxhYmVsPzogc3RyaW5nO1xufVxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtcm91dGUtbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1yb3V0ZS1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtcm91dGUtbmF2LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBZGRSb3V0ZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGZpbHRlckZvcm0gPSBuZXcgRm9ybUdyb3VwKHsgc2VhcmNoOiBuZXcgRm9ybUNvbnRyb2woKSB9KTtcbiAgZmlsdGVyZWRPcHRpb25zITogT2JzZXJ2YWJsZTxhbnlbXT4gfCB1bmRlZmluZWQ7XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIGxvYWRlclZhbCA9IGZhbHNlO1xuICByb3V0ZXM6IFJvdXRlW10gPSBbXTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VOYXYgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IGFueT4oKTtcbiAgQElucHV0KCkgcHVibGljIG5hdlZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpIHB1YmxpYyBhZGRlbWl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBwdWJsaWMgdXBkYXRlUm91dGVMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21lclJlcG9EZXRhaWxzITogQ3VzdG9tZXJSZXBvRGV0YWlsc01vZGVsO1xuXG4gIHB1YmxpYyBkZXN0cm95ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJldmVudExpc3RVcGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdW5pdExpc3Q6IGFueTtcbiAgbWF0ZXJpYWxzTGlzdDogYW55O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbHM6IFV0aWxzU2VydmljZSxcbiAgICBASW5qZWN0KCdtZW1iZXJEYXRhJykgcHJpdmF0ZSBjb25maWc6IENvb2xtYXBDb25maWdNb2RlbCkge1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5maWx0ZXJGb3JtLmdldCgnc2VhcmNoJyk/LnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgnJyksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy51dGlscy5maWx0ZXIodmFsdWUsIHRoaXMuZmlsdGVycykpKTtcbiAgfVxuXG4gIHNob3dBZGRGb3JtKCkgeyB0aGlzLmNoYW5nZU5hdi5lbWl0KCdhZGRGb3JtJyk7IHRoaXMuYWRkZW1pdC5lbWl0KCcnKSB9XG4gIGZpbHRlclNlYXJjaChlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZU5hdi5lbWl0KHsgdHlwZTogJ0FkZHJvdXRlJyB9KTtcbiAgICB0aGlzLnByZXZlbnRMaXN0VXBkYXRlID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlckZvcm0uY29udHJvbHMuc2VhcmNoLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuZmlsdGVycyA9IFt7IG5hbWU6IGUuc291cmNlLnZhbHVlLmxhYmVsLCB0eXBlOiBlLnNvdXJjZS52YWx1ZS50eXBlLCB2YWx1ZTogZS5zb3VyY2UudmFsdWUgfV1cbiAgfVxuICByZW1vdmVGcm9tRmlsdGVyKGZpbHRlcjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VOYXYuZW1pdCh7IHR5cGU6ICdBZGRyb3V0ZScgfSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlcnMuaW5kZXhPZihmaWx0ZXIpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7IHRoaXMuZmlsdGVycyA9IFtdIH1cbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0FuZENhbGxSb3V0ZUxpc3QoKTtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3VwZGF0ZVJvdXRlTGlzdCddICYmIGNoYW5nZXNbJ3VwZGF0ZVJvdXRlTGlzdCddWydjdXJyZW50VmFsdWUnXSkgdGhpcy5jaGVja0FuZENhbGxSb3V0ZUxpc3QoKTtcbiAgICBpZiAoY2hhbmdlc1snbmF2VmFsdWUnXSAmJiAoY2hhbmdlc1snbmF2VmFsdWUnXVsncHJldmlvdXNWYWx1ZSddID09PSAnYWRkRm9ybScpICYmICF0aGlzLnByZXZlbnRMaXN0VXBkYXRlKSB0aGlzLmNoZWNrQW5kQ2FsbFJvdXRlTGlzdCgpO1xuICB9XG4gIGdldFJvdXRlKGV2ZW50OiBSb3V0ZSkgeyBpZiAoZXZlbnRbJ3R5cGUnXSA9PT0gJ2VkaXRyb3V0ZScpIHsgdGhpcy5hZGRlbWl0LmVtaXQoZXZlbnQpIH0gfVxuXG4gIGNoZWNrQW5kQ2FsbFJvdXRlTGlzdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcucmVwb3NpdG9yeSA9PT0gJ2N1c3RvbWVyJykge1xuICAgICAgdGhpcy51dGlscy5mZXRjaFVuaXRzTGlzdCgpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnVuaXRMaXN0ID0gcmVzO1xuICAgICAgICB0aGlzLnV0aWxzLmZldGNoTWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyKCkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5tYXRlcmlhbHNMaXN0ID0gcmVzO1xuICAgICAgICAgIHRoaXMuZ2V0Um91dGVMaXN0Rm9yQ3VzdG9tZXIoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRSb3V0ZUxpc3RGb3JDb29sTWFwKClcbiAgICB9XG4gIH1cbiAgZ2V0VW5pdE5hbWUoZGF0YSk6IHN0cmluZyB7XG4gICAgbGV0IHVuaXROYW1lID0gJyc7XG4gICAgdGhpcy51bml0TGlzdC5tYXAoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcy5pZCA9PT0gZGF0YS51bml0X2lkKSB7XG4gICAgICAgIHVuaXROYW1lID0gcmVzLnR5cGVcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiB1bml0TmFtZTtcbiAgfVxuXG4gIGdldE1hdGVyaWFsTmFtZShkYXRhKTogc3RyaW5nIHtcbiAgICBsZXQgbWF0ZXJpYWxOYW1lID0gJyc7XG4gICAgdGhpcy5tYXRlcmlhbHNMaXN0Lm1hcCgocmVzKSA9PiB7ICAgICAgXG4gICAgICBpZiAocmVzLnN1Yl9tYXRlcmlhbF9pZCA9PT0gZGF0YS5tYXRlcmlhbHNfaWQpIHtcbiAgICAgICAgbWF0ZXJpYWxOYW1lID0gcmVzLmxhYmVsXG4gICAgICB9XG4gICAgfSkgICAgXG4gICAgcmV0dXJuIG1hdGVyaWFsTmFtZTtcbiAgfVxuXG4gIGdldFJvdXRlTGlzdEZvckNvb2xNYXAoKSB7XG4gICAgdGhpcy51dGlscy5nZXREYXRhKCdyb3V0ZXMvYWxsJykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBbXTtcbiAgICAgICAgdGhpcy5yb3V0ZXMgPSByZXNbJ2RhdGEnXVxuICAgICAgICB0aGlzLnByZXZlbnRMaXN0VXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXRpbHMuY2xlYXJPcHRpb25zKCk7XG4gICAgICAgIHRoaXMucm91dGVzLmZvckVhY2goKGVsZTogUm91dGUpID0+IHsgdGhpcy51dGlscy5tYWtlT3B0aW9ucyhlbGUpIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Um91dGVMaXN0Rm9yQ3VzdG9tZXIoKSB7XG4gICAgY29uc3QgZGF0YXNldCA9IHtcbiAgICAgIGN1c3RvbWVyX2lkOiB0aGlzLmN1c3RvbWVyUmVwb0RldGFpbHMuY3VzdG9tZXIuaWRcbiAgICB9XG4gICAgdGhpcy51dGlscy5wb3N0ZGF0YSgncm91dGVzL2FsbCcsIGRhdGFzZXQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gW107XG4gICAgICAgIHRoaXMucm91dGVzID0gcmVzWydkYXRhJ11cbiAgICAgICAgdGhpcy5wcmV2ZW50TGlzdFVwZGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnV0aWxzLmNsZWFyT3B0aW9ucygpO1xuICAgICAgICB0aGlzLnJvdXRlcy5tYXAoKGVsZTogUm91dGUpID0+IHtcbiAgICAgICAgICBlbGUudW5pdCA9IHRoaXMuZ2V0VW5pdE5hbWUoZWxlKTtcbiAgICAgICAgICBlbGUubWF0ZXJpYWxMYWJlbCA9IHRoaXMuZ2V0TWF0ZXJpYWxOYW1lKGVsZSk7XG4gICAgICAgICAgZWxlLm1hdGVyaWFsID0gdGhpcy5nZXRNYXRlcmlhbE5hbWUoZWxlKS5zcGxpdCgnfCcpWzBdLnRyaW0oKTtcbiAgICAgICAgICB0aGlzLnV0aWxzLm1ha2VPcHRpb25zKGVsZSlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmVzZXRTZWFyY2goKSB7IHRoaXMuY2hhbmdlTmF2LmVtaXQoJ0FkZHJvdXRlJykgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llciQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3llciQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5hdl9ib2R5XCI+XG4gIDxkaXYgY2xhc3M9XCJsb2dvXCI+XG4gICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCIgYWx0PVwibG9nb1wiIC8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtLTIwXCI+XG4gICAgPGgxPlZpZXcgUm91dGU8L2gxPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cInNob3dBZGRGb3JtKClcIj5cbiAgICAgIDxtYXQtaWNvbj5hZGRfY2lyY2xlX291dGxpbmU8L21hdC1pY29uPiBBZGQgcm91dGVcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1wYW5lbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiBbY2xhc3MuZGlzYWJsZWRdPVwibG9hZGVyVmFsXCI+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRlclZhbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCI+XG4gICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCAqbmdJZj1cIiF1dGlscy5jb252ZXlTZWFyY2hJY29uKGZpbHRlckZvcm0udmFsdWUuc2VhcmNoKVwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKm5nSWY9XCJ1dGlscy5jb252ZXlTZWFyY2hJY29uKGZpbHRlckZvcm0udmFsdWUuc2VhcmNoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyRm9ybS5yZXNldCgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIGNsYXNzPVwid2hvbGVfd2lkdGhcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZmlsdGVyU2VhcmNoKCRldmVudClcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICAgICAgICAgIHt7b3B0aW9uLnR5cGUgfCB0aXRsZWNhc2UgfX06IHt7b3B0aW9uWydsYWJlbCddfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Zvcm0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1saXN0XCI+XG4gICAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwTGlzdCBhcmlhLWxhYmVsPVwiRmlsdGVyIHNlbGVjdGlvblwiPlxuICAgICAgICAgIEBmb3IgKGZpbHRlciBvZiBmaWx0ZXJzOyB0cmFjayBmaWx0ZXIpIHtcbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKHJlbW92ZWQpPVwicmVtb3ZlRnJvbUZpbHRlcihmaWx0ZXIpXCI+XG4gICAgICAgICAgICAgIHt7ZmlsdGVyLnR5cGUgfCB0aXRsZWNhc2UgfX06IHt7ZmlsdGVyLm5hbWV9fVxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtcm91dGUtam9iY29kZS1saXN0IFt0eXBlXT1cIidhZGRyb3V0ZSdcIiBbY3VycmVudE5hdl09XCJuYXZWYWx1ZVwiIFtzZWFyY2hUZXJtXT1cImZpbHRlcnNcIiBbZGF0YV09XCJyb3V0ZXNcIiBbbG9hZGVyXT1cImxvYWRlclZhbFwiIChlbWl0cm91dGUpPVwiZ2V0Um91dGUoJGV2ZW50KVwiPjwvYXBwLXJvdXRlLWpvYmNvZGUtbGlzdD5cbjwvZGl2PlxuIl19
|