@aggdirect/coolmap-services 1.4.7 → 1.4.9
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.
|
@@ -366,8 +366,7 @@ export class UtilsService {
|
|
|
366
366
|
if (res) {
|
|
367
367
|
this.locationList = res.data;
|
|
368
368
|
this.locationList = this.locationList.map((object) => {
|
|
369
|
-
object.formatted_address = `${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
370
|
-
object.complete_address = `${object.name} | ${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
369
|
+
object.formatted_address = `${object.name} | ${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
371
370
|
const newItem = {
|
|
372
371
|
city: object.city,
|
|
373
372
|
lng: object.longitude,
|
|
@@ -377,8 +376,7 @@ export class UtilsService {
|
|
|
377
376
|
state: object.state,
|
|
378
377
|
street: object.street,
|
|
379
378
|
zip: object.zip,
|
|
380
|
-
formatted_address: object.formatted_address
|
|
381
|
-
complete_address: object.complete_address
|
|
379
|
+
formatted_address: object.formatted_address
|
|
382
380
|
};
|
|
383
381
|
return newItem;
|
|
384
382
|
});
|
|
@@ -399,4 +397,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
399
397
|
type: Inject,
|
|
400
398
|
args: ['memberData']
|
|
401
399
|
}] }, { type: i0.NgZone }] });
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBTyxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFrQjVDLE1BQU0sT0FBTyxZQUFZO0lBaUNkO0lBQ0E7SUFDdUI7SUFDdkI7SUFuQ1QsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUMxQixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLFlBQVksR0FBVSxFQUFFLENBQUM7SUFDekIsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixZQUFZLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLHNCQUFzQixHQUFVLEVBQUUsQ0FBQztJQUNuQyxnQkFBZ0IsR0FBVSxFQUFFLENBQUM7SUFDdEIsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELHdCQUF3QixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELCtCQUErQixHQUM3QixJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MscUJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsd0JBQXdCLEdBQUcs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O21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBb0M3QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb29sbWFwQ29uZmlnTW9kZWwsIFJvdXRlIH0gZnJvbSAnLi9kYXRhLW1vZGVsJztcbmRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkFsbCB7XG4gIGNpdHk6ICAgICAgICAgIHN0cmluZztcbiAgbGF0aXR1ZGU6ICAgICAgc3RyaW5nO1xuICBsb2NhdGlvbl9pZDogICBzdHJpbmc7XG4gIGxvbmdpdHVkZTogICAgIHN0cmluZztcbiAgbmFtZTogICAgICAgICAgc3RyaW5nO1xuICBzdGF0ZTogICAgICAgICBzdHJpbmc7XG4gIHN0cmVldDogICAgICAgIHN0cmluZztcbiAgc3VpdGU6ICAgICAgICAgbnVsbDtcbiAgemlwOiAgICAgICAgICAgc3RyaW5nO1xuICBmb3JtYXR0ZWRfYWRkcmVzczogc3RyaW5nO1xuICBjb21wbGV0ZV9hZGRyZXNzOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcbiAgYW5hbHl0aWNzUkVTVFVSTCA9ICcnO1xuICBSRVNUVVJMUHJlZml4ID0gJyc7XG4gIHBpY2t1cE9wdGlvbnM6IGFueVtdID0gW107XG4gIGRlc3RPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBvd25lck9wdGlvbnM6IGFueVtdID0gW107XG4gIGN1c3RvbWVyT3B0aW9uczogYW55W10gPSBbXTtcbiAgdW5pdE9wdGlvbnM6IGFueVtdID0gW107XG4gIG1hdGVyaWFsT3B0aW9uczogYW55W10gPSBbXTtcbiAgamNvZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBkcml2ZXJPcHRpb246IGFueVtdID0gW107XG4gIHRydWNraW5nQ29tcGFuYXlPcHRpb246IGFueVtdID0gW107XG4gIHJvdXRlTmFtZU9wdGlvbnM6IGFueVtdID0gW107XG4gIHB1YmxpYyBwcmV2ZW50bmF2Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIG5hdkNoYW5nZU9ic2VydmUgPSB0aGlzLnByZXZlbnRuYXZDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIGNsZWFyVmlld1JvdXRlZm9ySm9iQ29kZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBjbGVhclZpZXdSb3V0ZWZvckpvYkNvZGVPYnNlcnZlID1cbiAgICB0aGlzLmNsZWFyVmlld1JvdXRlZm9ySm9iQ29kZS5hc09ic2VydmFibGUoKTtcbiAgcHJlVmVudEpvYmRldGFpbGNsb3NlID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGdldHByZVZlbnRKb2JkZXRhaWxjbG9zZSA9IHRoaXMucHJlVmVudEpvYmRldGFpbGNsb3NlLmFzT2JzZXJ2YWJsZSgpO1xuICByb3V0ZURldGFpbHNVdGlsaXR5ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIGdldHJvdXRlRGV0YWlsc1V0aWxpdHkgPSB0aGlzLnJvdXRlRGV0YWlsc1V0aWxpdHkuYXNPYnNlcnZhYmxlKCk7XG4gIHJlbW92ZU1hcEVudGl0eSA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICByZW1vdmVNYXBFbnRpdHlVdGlsaXR5ID0gdGhpcy5yZW1vdmVNYXBFbnRpdHkuYXNPYnNlcnZhYmxlKCk7XG4gIGRpY3QgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICB1bml0c0xpc3Q6IGFueTtcbiAgbWF0ZXJpYWxzTGlzdDogYW55O1xuICBtYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXI6IGFueTtcbiAgY3VzdG9tZXJzTGlzdDogYW55O1xuICBsb2NhdGlvbkxpc3Q6IGFueTtcbiAgcGlja1VwQXV0b2NvbXBsZXRlOiBhbnk7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIEBJbmplY3QoJ21lbWJlckRhdGEnKSBwcml2YXRlIGNvbmZpZzogQ29vbG1hcENvbmZpZ01vZGVsLFxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy5hbmFseXRpY3NSRVNUVVJMID0gY29uZmlnLmFuYWx5dGljc1JFU1RVUkw7XG4gICAgdGhpcy5SRVNUVVJMUHJlZml4ID0gY29uZmlnLlJFU1RVUkxQcmVmaXg7XG4gIH1cbiAgZ2V0RGF0ZUZvcm1hdChzdHJWYWw6IERhdGUgfCBudWxsLCBzZXByYXRlcj86IHN0cmluZykge1xuICAgIHNlcHJhdGVyID0gc2VwcmF0ZXIgPyBzZXByYXRlciA6ICctJztcbiAgICBjb25zdCBteWRhdGUgPSBzdHJWYWw7XG4gICAgcmV0dXJuIChcbiAgICAgIG15ZGF0ZT8uZ2V0RnVsbFllYXIoKSArXG4gICAgICBzZXByYXRlciArXG4gICAgICAoKG15ZGF0ZSA/IG15ZGF0ZS5nZXRNb250aCgpIDogMCkgKyAxKSArXG4gICAgICBzZXByYXRlciArXG4gICAgICBteWRhdGU/LmdldERhdGUoKVxuICAgICk7XG4gIH1cbiAgZ2V0RGF0YShwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIGAke3RoaXMuYW5hbHl0aWNzUkVTVFVSTH0ke3RoaXMuY29uZmlnLnJlcG9zaXRvcnl9LyR7cGF0aH1gXG4gICAgKTtcbiAgfVxuICBnZXRSZXN0RGF0YShwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIGAke3RoaXMuUkVTVFVSTFByZWZpeH0ke3BhdGh9YFxuICAgICk7XG4gIH1cbiAgcG9zdGRhdGEocGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgJHt0aGlzLmFuYWx5dGljc1JFU1RVUkx9JHt0aGlzLmNvbmZpZy5yZXBvc2l0b3J5fS8ke3BhdGh9YCxcbiAgICAgIGRhdGFcbiAgICApO1xuICB9XG4gIHBvc3REYXRhV2l0aFJlc3RVcmwocGF0aDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5SRVNUVVJMUHJlZml4fSR7cGF0aH1gLCBkYXRhKTtcbiAgfVxuICBcbiAgYXV0b2NvbXBsZXRlKHNlYXJjaEVsZW1lbnRSZWYsIHR5cGU/KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHNlYXJjaEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlczogWydhZGRyZXNzJ11cbiAgICAgIH0pO1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoYXV0b2NvbXBsZXRlLCAncGxhY2VfY2hhbmdlZCcsICgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBwbGFjZSA9IGF1dG9jb21wbGV0ZS5nZXRQbGFjZSgpO1xuICAgICAgICAgIHJlc29sdmUoe2xhdDogcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksIGxuZzogcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCksIGZvcm1hdHRlZF9hZGRyZXNzOiBwbGFjZVsnZm9ybWF0dGVkX2FkZHJlc3MnXX0pXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuU25hY2tCYXIobWVzc2FnZTogc3RyaW5nLCBjbGFzc05hbWU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgJycsIHtcbiAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgcGFuZWxDbGFzczogW2NsYXNzTmFtZSA/IGNsYXNzTmFtZSA6ICdkZWZhdWx0J10sXG4gICAgfSk7XG4gIH1cblxuICBtYWtlT3B0aW9ucyhpdGVtOiBSb3V0ZSkge1xuICAgIGlmIChpdGVtLm9yZGVyX251bWJlcikge1xuICAgICAgdGhpcy5qY29kZU9wdGlvbnMuZmluZEluZGV4KChlbGVtKSA9PiBlbGVtLmpvYl9pZCA9PT0gaXRlbS5qb2JfaWQpID09PSAtMVxuICAgICAgICA/IHRoaXMuamNvZGVPcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgam9iX2NvZGU6IGl0ZW0ub3JkZXJfbnVtYmVyLFxuICAgICAgICAgICAgam9iX2lkOiBpdGVtLmpvYl9pZCxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAoaXRlbS5kcml2ZXJfbGlzdCAmJiBpdGVtLmRyaXZlcl9saXN0Py5sZW5ndGggPiAwKSB7XG4gICAgICAgIGl0ZW0uZHJpdmVyX2xpc3QuZm9yRWFjaCgoZHJpdmVyKSA9PiB7XG4gICAgICAgICAgdGhpcy5kcml2ZXJPcHRpb24uZmluZEluZGV4KFxuICAgICAgICAgICAgKGVsZW0pID0+IGVsZW0gPT09IGRyaXZlclsnZHJpdmVyX25hbWUnXVxuICAgICAgICAgICkgPT09IC0xXG4gICAgICAgICAgICA/IHRoaXMuZHJpdmVyT3B0aW9uLnB1c2goZHJpdmVyWydkcml2ZXJfbmFtZSddKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIHRoaXMudHJ1Y2tpbmdDb21wYW5heU9wdGlvbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlbSkgPT4gZWxlbSA9PT0gZHJpdmVyWyd0cnVja2luZ19jb21wYW55J11cbiAgICAgICAgICApID09PSAtMVxuICAgICAgICAgICAgPyB0aGlzLnRydWNraW5nQ29tcGFuYXlPcHRpb24ucHVzaChkcml2ZXJbJ3RydWNraW5nX2NvbXBhbnknXSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucGlja3VwT3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0ucGlja3VwX2xvY2F0aW9uKSA9PT0gLTFcbiAgICAgID8gdGhpcy5waWNrdXBPcHRpb25zLnB1c2goaXRlbS5waWNrdXBfbG9jYXRpb24pXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5kZXN0T3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0uZGVsaXZlcnlfbG9jYXRpb24pID09PSAtMVxuICAgICAgPyB0aGlzLmRlc3RPcHRpb25zLnB1c2goaXRlbS5kZWxpdmVyeV9sb2NhdGlvbilcbiAgICAgIDogbnVsbDtcbiAgICB0aGlzLmN1c3RvbWVyT3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAoY3VzdG9tZXIpID0+IGN1c3RvbWVyID09PSBpdGVtLmN1c3RvbWVyX25hbWVcbiAgICApID09PSAtMVxuICAgICAgPyB0aGlzLmN1c3RvbWVyT3B0aW9ucy5wdXNoKGl0ZW0uY3VzdG9tZXJfbmFtZSlcbiAgICAgIDogbnVsbDtcbiAgICB0aGlzLnVuaXRPcHRpb25zLmZpbmRJbmRleCgoZWxlbSkgPT4gZWxlbSA9PT0gaXRlbS51bml0KSA9PT0gLTFcbiAgICAgID8gdGhpcy51bml0T3B0aW9ucy5wdXNoKGl0ZW0udW5pdClcbiAgICAgIDogbnVsbDtcblxuICAgIGlmKGl0ZW0ubWF0ZXJpYWwpIHtcbiAgICAgIHRoaXMubWF0ZXJpYWxPcHRpb25zLmZpbmRJbmRleCgoZWxlbSkgPT4gZWxlbSA9PT0gaXRlbS5tYXRlcmlhbCkgPT09IC0xXG4gICAgICA/IHRoaXMubWF0ZXJpYWxPcHRpb25zLnB1c2goaXRlbS5tYXRlcmlhbClcbiAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgaWYgKGl0ZW0ucm91dGVfbmFtZSlcbiAgICAgIHRoaXMucm91dGVOYW1lT3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0ucm91dGVfbmFtZSkgPT09IC0xXG4gICAgICAgID8gdGhpcy5yb3V0ZU5hbWVPcHRpb25zLnB1c2goaXRlbS5yb3V0ZV9uYW1lKVxuICAgICAgICA6IG51bGw7XG4gIH1cblxuICBmaWx0ZXIodmFsdWU6IHN0cmluZywgZmlsdGVyczogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChmaWx0ZXJWYWx1ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0czogYW55W10gPSBbXTtcbiAgICB0aGlzLnVuaXRPcHRpb25zLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgdHlwZTogJ3VuaXQnLCBsYWJlbDogdW5pdCwgdmFsdWU6IHVuaXQgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21lck9wdGlvbnMubWFwKCh1bml0KSA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyB0eXBlOiAnY3VzdG9tZXInLCBsYWJlbDogdW5pdCwgdmFsdWU6IHVuaXQgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZih0aGlzLm1hdGVyaWFsT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWF0ZXJpYWxPcHRpb25zLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7IHR5cGU6ICdtYXRlcmlhbCcsIGxhYmVsOiB1bml0LCB2YWx1ZTogdW5pdCB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucGlja3VwT3B0aW9ucy5tYXAoKHVuaXQpID0+IHtcbiAgICAgIGlmICh1bml0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ3BpY2t1cCBsb2NhdGlvbicsXG4gICAgICAgICAgbGFiZWw6IHVuaXQsXG4gICAgICAgICAgdmFsdWU6IHVuaXQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZGVzdE9wdGlvbnMubWFwKCh1bml0KSA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdkZXN0aW5hdGlvbiBsb2NhdGlvbicsXG4gICAgICAgICAgbGFiZWw6IHVuaXQsXG4gICAgICAgICAgdmFsdWU6IHVuaXQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuamNvZGVPcHRpb25zLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQuam9iX2NvZGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiAnam9iJyxcbiAgICAgICAgICBsYWJlbDogdW5pdFsnam9iX2NvZGUnXSxcbiAgICAgICAgICB2YWx1ZTogdW5pdCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kcml2ZXJPcHRpb24ubWFwKCh1bml0KSA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyB0eXBlOiAnRHJpdmVyJywgbGFiZWw6IHVuaXQsIHZhbHVlOiB1bml0IH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy50cnVja2luZ0NvbXBhbmF5T3B0aW9uLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiAnVHJ1Y2tpbmcgQ29tcGFueScsXG4gICAgICAgICAgbGFiZWw6IHVuaXQsXG4gICAgICAgICAgdmFsdWU6IHVuaXQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucm91dGVOYW1lT3B0aW9ucy5tYXAoKHVuaXQpID0+IHtcbiAgICAgIGlmICh1bml0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7IHR5cGU6ICdSb3V0ZSBuYW1lJywgbGFiZWw6IHVuaXQsIHZhbHVlOiB1bml0IH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNlYXJjaERpY3Q6IGFueSA9IHt9O1xuICAgIGZpbHRlcnMubWFwKChmaWx0ZXI6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICBzZWFyY2hEaWN0W2ZpbHRlclsnbmFtZSddICsgZmlsdGVyWyd0eXBlJ11dID0gZmlsdGVyO1xuICAgIH0pO1xuICAgIGNvbnN0IGZ1cnRoZXJGaWx0ZXI6IGFueVtdID0gW107XG4gICAgc2VhcmNoUmVzdWx0cy5tYXAoKHNlYXJjaCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaFsnbGFiZWwnXSArIHNlYXJjaFsndHlwZSddIGluIHNlYXJjaERpY3QpIHtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZ1cnRoZXJGaWx0ZXIucHVzaChzZWFyY2gpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmdXJ0aGVyRmlsdGVyO1xuICB9XG5cbiAgZ2V0U2VhcmNoUmVzdWx0cyhsaXN0OiBSb3V0ZVtdLCBmaWx0ZXJ2YWw6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKChlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCByZXN1bHRfbGlzdF9ib29sZWFuID0gW107XG4gICAgICBpZiAoZmlsdGVydmFsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAndW5pdCcpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goXG4gICAgICAgICAgICBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT1cbiAgICAgICAgICAgICAgZWxlbWVudFtmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSBhcyBrZXlvZiBSb3V0ZV1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ2N1c3RvbWVyJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChcbiAgICAgICAgICAgIGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydjdXN0b21lcl9uYW1lJ11cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ21hdGVyaWFsJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChcbiAgICAgICAgICAgIGZpbHRlcnZhbFswXVsnbmFtZSddID09PVxuICAgICAgICAgICAgICBlbGVtZW50W2ZpbHRlcnZhbFswXVsndHlwZSddIGFzIGtleW9mIFJvdXRlXVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAncGlja3VwIGxvY2F0aW9uJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChcbiAgICAgICAgICAgIGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydwaWNrdXBfbG9jYXRpb24nXVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnZGVzdGluYXRpb24gbG9jYXRpb24nKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKFxuICAgICAgICAgICAgZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZW1lbnRbJ2RlbGl2ZXJ5X2xvY2F0aW9uJ11cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ2pvYicpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goXG4gICAgICAgICAgICBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlbWVudFsnb3JkZXJfbnVtYmVyJ11cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ1JvdXRlIG5hbWUnKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKFxuICAgICAgICAgICAgZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZW1lbnRbJ3JvdXRlX25hbWUnXVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnRHJpdmVyJykge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudC5kcml2ZXJfbGlzdD8uZmluZEluZGV4KChlbGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlWydkcml2ZXJfbmFtZSddO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdUcnVja2luZyBDb21wYW55Jykge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudC5kcml2ZXJfbGlzdD8uZmluZEluZGV4KChlbGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlWyd0cnVja2luZ19jb21wYW55J107XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0X2xpc3RfYm9vbGVhbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHRfbGlzdF9ib29sZWFuLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiAmJiBjdXJyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyT3B0aW9ucygpIHtcbiAgICB0aGlzLnBpY2t1cE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLmRlc3RPcHRpb25zID0gW107XG4gICAgdGhpcy5vd25lck9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLmN1c3RvbWVyT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMudW5pdE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLm1hdGVyaWFsT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMuamNvZGVPcHRpb25zID0gW107XG4gICAgdGhpcy5yb3V0ZU5hbWVPcHRpb25zID0gW107XG4gIH1cbiAgc2V0ZGljdFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaWN0LnNldChrZXksIHZhbHVlKTtcbiAgfVxuICBnZXRkaWN0VmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRpY3QuZ2V0KGtleSkpO1xuICB9XG4gIHJlbW92ZWRpY3RWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZGljdC5kZWxldGUoa2V5KTtcbiAgfVxuICBjb252ZXlTZWFyY2hJY29uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZldGNoVW5pdHNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMudW5pdHNMaXN0KSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgndW5pdC9saXN0L3ZpZXcnKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy51bml0c0xpc3QgPSByZXMuZGF0YTtcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy51bml0c0xpc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRoaXMudW5pdHNMaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoTWF0ZXJpYWxzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm1hdGVyaWFsc0xpc3QpIHtcbiAgICAgICAgdGhpcy5nZXREYXRhKCdtYXRlcmlhbC9saXN0L3ZpZXcnKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5tYXRlcmlhbHNMaXN0ID0gdGhpcy5maWx0ZXJtYXRlcmlhbExpc3QocmVzLmRhdGEpO1xuICAgICAgICAgIHJlc29sdmUodGhpcy5tYXRlcmlhbHNMaXN0KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRoaXMubWF0ZXJpYWxzTGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZmV0Y2hNYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIpIHtcbiAgICAgICAgdGhpcy5nZXREYXRhKCdtYXRlcmlhbC9saXN0L3ZpZXcnKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5tYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIgPSB0aGlzLmZpbHRlcm1hdGVyaWFsTGlzdChyZXMuZGF0YSk7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3RGb3JDdXN0b21lcik7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3RGb3JDdXN0b21lcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZmlsdGVybWF0ZXJpYWxMaXN0KGxpc3QpIHtcbiAgICBsZXQgbWV0ZXJpYWxMaXN0ID0gW107XG4gICAgbGlzdC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGl0ZW0uc3ViLm1hcCgoc3ViSXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChzdWJJdGVtLmFkZF90b19tYXJrZXRwbGFjZSkge1xuICAgICAgICAgICAgc3ViSXRlbS5tYXRlcmlhbCA9IGl0ZW0ubWF0ZXJpYWw7XG4gICAgICAgICAgICBzdWJJdGVtLm1hdGVyaWFsX2lkID0gaXRlbS5tYXRlcmlhbF9pZDtcbiAgICAgICAgICAgIHN1Ykl0ZW0ubGFiZWwgPSBpdGVtLm1hdGVyaWFsICsgJyB8ICcgKyBzdWJJdGVtLnN1Yl9tYXRlcmlhbDtcbiAgICAgICAgICAgIG1ldGVyaWFsTGlzdC5wdXNoKHN1Ykl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbWV0ZXJpYWxMaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xuICAgIHJldHVybiBtZXRlcmlhbExpc3Q7XG4gIH1cbiAgZmV0Y2hDdXN0b21lcnNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuY3VzdG9tZXJzTGlzdCkge1xuICAgICAgICB0aGlzLmdldERhdGEoJ2NvbXBhbnkvbGlzdC92aWV3Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJzTGlzdCA9IHJlcy5kYXRhO1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLmN1c3RvbWVyc0xpc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRoaXMuY3VzdG9tZXJzTGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmZXRjaExvY2F0aW9ubGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5nZXRSZXN0RGF0YSgnbG9jYXRpb25zL2FsbCcpLnN1YnNjcmliZSgocmVzOiB7IGRhdGE6IExvY2F0aW9uQWxsIH0pID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMubG9jYXRpb25MaXN0ID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy5sb2NhdGlvbkxpc3QgPSB0aGlzLmxvY2F0aW9uTGlzdC5tYXAoKG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgb2JqZWN0LmZvcm1hdHRlZF9hZGRyZXNzID0gYCR7b2JqZWN0LnN0cmVldH0gJHtvYmplY3QuY2l0eX0sICR7b2JqZWN0LnN0YXRlfSAke29iamVjdC56aXB9YDtcbiAgICAgICAgICAgIG9iamVjdC5jb21wbGV0ZV9hZGRyZXNzID0gYCR7b2JqZWN0Lm5hbWV9IHwgJHtvYmplY3Quc3RyZWV0fSAke29iamVjdC5jaXR5fSwgJHtvYmplY3Quc3RhdGV9ICR7b2JqZWN0LnppcH1gO1xuICAgICAgICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgICAgICBjaXR5OiBvYmplY3QuY2l0eSxcbiAgICAgICAgICAgICAgbG5nOiBvYmplY3QubG9uZ2l0dWRlLFxuICAgICAgICAgICAgICBsb2NhdGlvbl9pZDogb2JqZWN0LmxvY2F0aW9uX2lkLFxuICAgICAgICAgICAgICBsYXQ6IG9iamVjdC5sYXRpdHVkZSxcbiAgICAgICAgICAgICAgbmFtZTogIG9iamVjdC5uYW1lLFxuICAgICAgICAgICAgICBzdGF0ZTogb2JqZWN0LnN0YXRlLFxuICAgICAgICAgICAgICBzdHJlZXQ6IG9iamVjdC5zdHJlZXQsXG4gICAgICAgICAgICAgIHppcDogb2JqZWN0LnppcCxcbiAgICAgICAgICAgICAgZm9ybWF0dGVkX2FkZHJlc3M6IG9iamVjdC5mb3JtYXR0ZWRfYWRkcmVzcyxcbiAgICAgICAgICAgICAgY29tcGxldGVfYWRkcmVzczogb2JqZWN0LmNvbXBsZXRlX2FkZHJlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXNvbHZlKHRoaXMubG9jYXRpb25MaXN0KTtcbiAgICAgICAgfVxuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBTyxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFrQjVDLE1BQU0sT0FBTyxZQUFZO0lBaUNkO0lBQ0E7SUFDdUI7SUFDdkI7SUFuQ1QsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsYUFBYSxHQUFVLEVBQUUsQ0FBQztJQUMxQixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLFlBQVksR0FBVSxFQUFFLENBQUM7SUFDekIsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQVUsRUFBRSxDQUFDO0lBQ3hCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFDNUIsWUFBWSxHQUFVLEVBQUUsQ0FBQztJQUN6QixZQUFZLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLHNCQUFzQixHQUFVLEVBQUUsQ0FBQztJQUNuQyxnQkFBZ0IsR0FBVSxFQUFFLENBQUM7SUFDdEIsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELHdCQUF3QixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELCtCQUErQixHQUM3QixJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MscUJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsd0JBQXdCLEdBQUcs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TUFBTSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksTUFBTSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQzNHLE1BQU0sT0FBTyxHQUFHOzRCQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7NEJBQ2pCLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUzs0QkFDckIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXOzRCQUMvQixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVE7NEJBQ3BCLElBQUksRUFBRyxNQUFNLENBQUMsSUFBSTs0QkFDbEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLOzRCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07NEJBQ3JCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRzs0QkFDZixpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO3lCQUMxQyxDQUFBO3dCQUNILE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQTtvQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBN1pVLFlBQVksdUVBbUNiLFlBQVk7MkdBbkNYLFlBQVksY0FEQyxNQUFNOzsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQW9DN0IsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29vbG1hcENvbmZpZ01vZGVsLCBSb3V0ZSB9IGZyb20gJy4vZGF0YS1tb2RlbCc7XG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25BbGwge1xuICBjaXR5OiAgICAgICAgICBzdHJpbmc7XG4gIGxhdGl0dWRlOiAgICAgIHN0cmluZztcbiAgbG9jYXRpb25faWQ6ICAgc3RyaW5nO1xuICBsb25naXR1ZGU6ICAgICBzdHJpbmc7XG4gIG5hbWU6ICAgICAgICAgIHN0cmluZztcbiAgc3RhdGU6ICAgICAgICAgc3RyaW5nO1xuICBzdHJlZXQ6ICAgICAgICBzdHJpbmc7XG4gIHN1aXRlOiAgICAgICAgIG51bGw7XG4gIHppcDogICAgICAgICAgIHN0cmluZztcbiAgZm9ybWF0dGVkX2FkZHJlc3M6IHN0cmluZztcbiAgY29tcGxldGVfYWRkcmVzczogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFV0aWxzU2VydmljZSB7XG4gIGFuYWx5dGljc1JFU1RVUkwgPSAnJztcbiAgUkVTVFVSTFByZWZpeCA9ICcnO1xuICBwaWNrdXBPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBkZXN0T3B0aW9uczogYW55W10gPSBbXTtcbiAgb3duZXJPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBjdXN0b21lck9wdGlvbnM6IGFueVtdID0gW107XG4gIHVuaXRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBtYXRlcmlhbE9wdGlvbnM6IGFueVtdID0gW107XG4gIGpjb2RlT3B0aW9uczogYW55W10gPSBbXTtcbiAgZHJpdmVyT3B0aW9uOiBhbnlbXSA9IFtdO1xuICB0cnVja2luZ0NvbXBhbmF5T3B0aW9uOiBhbnlbXSA9IFtdO1xuICByb3V0ZU5hbWVPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgcHJldmVudG5hdkNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBuYXZDaGFuZ2VPYnNlcnZlID0gdGhpcy5wcmV2ZW50bmF2Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICBjbGVhclZpZXdSb3V0ZWZvckpvYkNvZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgY2xlYXJWaWV3Um91dGVmb3JKb2JDb2RlT2JzZXJ2ZSA9XG4gICAgdGhpcy5jbGVhclZpZXdSb3V0ZWZvckpvYkNvZGUuYXNPYnNlcnZhYmxlKCk7XG4gIHByZVZlbnRKb2JkZXRhaWxjbG9zZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBnZXRwcmVWZW50Sm9iZGV0YWlsY2xvc2UgPSB0aGlzLnByZVZlbnRKb2JkZXRhaWxjbG9zZS5hc09ic2VydmFibGUoKTtcbiAgcm91dGVEZXRhaWxzVXRpbGl0eSA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICBnZXRyb3V0ZURldGFpbHNVdGlsaXR5ID0gdGhpcy5yb3V0ZURldGFpbHNVdGlsaXR5LmFzT2JzZXJ2YWJsZSgpO1xuICByZW1vdmVNYXBFbnRpdHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgcmVtb3ZlTWFwRW50aXR5VXRpbGl0eSA9IHRoaXMucmVtb3ZlTWFwRW50aXR5LmFzT2JzZXJ2YWJsZSgpO1xuICBkaWN0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgdW5pdHNMaXN0OiBhbnk7XG4gIG1hdGVyaWFsc0xpc3Q6IGFueTtcbiAgbWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyOiBhbnk7XG4gIGN1c3RvbWVyc0xpc3Q6IGFueTtcbiAgbG9jYXRpb25MaXN0OiBhbnk7XG4gIHBpY2tVcEF1dG9jb21wbGV0ZTogYW55O1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBASW5qZWN0KCdtZW1iZXJEYXRhJykgcHJpdmF0ZSBjb25maWc6IENvb2xtYXBDb25maWdNb2RlbCxcbiAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHRoaXMuYW5hbHl0aWNzUkVTVFVSTCA9IGNvbmZpZy5hbmFseXRpY3NSRVNUVVJMO1xuICAgIHRoaXMuUkVTVFVSTFByZWZpeCA9IGNvbmZpZy5SRVNUVVJMUHJlZml4O1xuICB9XG4gIGdldERhdGVGb3JtYXQoc3RyVmFsOiBEYXRlIHwgbnVsbCwgc2VwcmF0ZXI/OiBzdHJpbmcpIHtcbiAgICBzZXByYXRlciA9IHNlcHJhdGVyID8gc2VwcmF0ZXIgOiAnLSc7XG4gICAgY29uc3QgbXlkYXRlID0gc3RyVmFsO1xuICAgIHJldHVybiAoXG4gICAgICBteWRhdGU/LmdldEZ1bGxZZWFyKCkgK1xuICAgICAgc2VwcmF0ZXIgK1xuICAgICAgKChteWRhdGUgPyBteWRhdGUuZ2V0TW9udGgoKSA6IDApICsgMSkgK1xuICAgICAgc2VwcmF0ZXIgK1xuICAgICAgbXlkYXRlPy5nZXREYXRlKClcbiAgICApO1xuICB9XG4gIGdldERhdGEocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLmFuYWx5dGljc1JFU1RVUkx9JHt0aGlzLmNvbmZpZy5yZXBvc2l0b3J5fS8ke3BhdGh9YFxuICAgICk7XG4gIH1cbiAgZ2V0UmVzdERhdGEocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICBgJHt0aGlzLlJFU1RVUkxQcmVmaXh9JHtwYXRofWBcbiAgICApO1xuICB9XG4gIHBvc3RkYXRhKHBhdGg6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgYCR7dGhpcy5hbmFseXRpY3NSRVNUVVJMfSR7dGhpcy5jb25maWcucmVwb3NpdG9yeX0vJHtwYXRofWAsXG4gICAgICBkYXRhXG4gICAgKTtcbiAgfVxuICBwb3N0RGF0YVdpdGhSZXN0VXJsKHBhdGg6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuUkVTVFVSTFByZWZpeH0ke3BhdGh9YCwgZGF0YSk7XG4gIH1cbiAgXG4gIGF1dG9jb21wbGV0ZShzZWFyY2hFbGVtZW50UmVmLCB0eXBlPykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBhdXRvY29tcGxldGUgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZShzZWFyY2hFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgdHlwZXM6IFsnYWRkcmVzcyddXG4gICAgICB9KTtcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGF1dG9jb21wbGV0ZSwgJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGxhY2UgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcbiAgICAgICAgICByZXNvbHZlKHtsYXQ6IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLCBsbmc6IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpLCBmb3JtYXR0ZWRfYWRkcmVzczogcGxhY2VbJ2Zvcm1hdHRlZF9hZGRyZXNzJ119KVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgb3BlblNuYWNrQmFyKG1lc3NhZ2U6IHN0cmluZywgY2xhc3NOYW1lPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKG1lc3NhZ2UsICcnLCB7XG4gICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgIHZlcnRpY2FsUG9zaXRpb246ICd0b3AnLFxuICAgICAgaG9yaXpvbnRhbFBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgIHBhbmVsQ2xhc3M6IFtjbGFzc05hbWUgPyBjbGFzc05hbWUgOiAnZGVmYXVsdCddLFxuICAgIH0pO1xuICB9XG5cbiAgbWFrZU9wdGlvbnMoaXRlbTogUm91dGUpIHtcbiAgICBpZiAoaXRlbS5vcmRlcl9udW1iZXIpIHtcbiAgICAgIHRoaXMuamNvZGVPcHRpb25zLmZpbmRJbmRleCgoZWxlbSkgPT4gZWxlbS5qb2JfaWQgPT09IGl0ZW0uam9iX2lkKSA9PT0gLTFcbiAgICAgICAgPyB0aGlzLmpjb2RlT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIGpvYl9jb2RlOiBpdGVtLm9yZGVyX251bWJlcixcbiAgICAgICAgICAgIGpvYl9pZDogaXRlbS5qb2JfaWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBudWxsO1xuICAgICAgaWYgKGl0ZW0uZHJpdmVyX2xpc3QgJiYgaXRlbS5kcml2ZXJfbGlzdD8ubGVuZ3RoID4gMCkge1xuICAgICAgICBpdGVtLmRyaXZlcl9saXN0LmZvckVhY2goKGRyaXZlcikgPT4ge1xuICAgICAgICAgIHRoaXMuZHJpdmVyT3B0aW9uLmZpbmRJbmRleChcbiAgICAgICAgICAgIChlbGVtKSA9PiBlbGVtID09PSBkcml2ZXJbJ2RyaXZlcl9uYW1lJ11cbiAgICAgICAgICApID09PSAtMVxuICAgICAgICAgICAgPyB0aGlzLmRyaXZlck9wdGlvbi5wdXNoKGRyaXZlclsnZHJpdmVyX25hbWUnXSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICB0aGlzLnRydWNraW5nQ29tcGFuYXlPcHRpb24uZmluZEluZGV4KFxuICAgICAgICAgICAgKGVsZW0pID0+IGVsZW0gPT09IGRyaXZlclsndHJ1Y2tpbmdfY29tcGFueSddXG4gICAgICAgICAgKSA9PT0gLTFcbiAgICAgICAgICAgID8gdGhpcy50cnVja2luZ0NvbXBhbmF5T3B0aW9uLnB1c2goZHJpdmVyWyd0cnVja2luZ19jb21wYW55J10pXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBpY2t1cE9wdGlvbnMuZmluZEluZGV4KChlbGVtKSA9PiBlbGVtID09PSBpdGVtLnBpY2t1cF9sb2NhdGlvbikgPT09IC0xXG4gICAgICA/IHRoaXMucGlja3VwT3B0aW9ucy5wdXNoKGl0ZW0ucGlja3VwX2xvY2F0aW9uKVxuICAgICAgOiBudWxsO1xuICAgIHRoaXMuZGVzdE9wdGlvbnMuZmluZEluZGV4KChlbGVtKSA9PiBlbGVtID09PSBpdGVtLmRlbGl2ZXJ5X2xvY2F0aW9uKSA9PT0gLTFcbiAgICAgID8gdGhpcy5kZXN0T3B0aW9ucy5wdXNoKGl0ZW0uZGVsaXZlcnlfbG9jYXRpb24pXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy5jdXN0b21lck9wdGlvbnMuZmluZEluZGV4KFxuICAgICAgKGN1c3RvbWVyKSA9PiBjdXN0b21lciA9PT0gaXRlbS5jdXN0b21lcl9uYW1lXG4gICAgKSA9PT0gLTFcbiAgICAgID8gdGhpcy5jdXN0b21lck9wdGlvbnMucHVzaChpdGVtLmN1c3RvbWVyX25hbWUpXG4gICAgICA6IG51bGw7XG4gICAgdGhpcy51bml0T3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0udW5pdCkgPT09IC0xXG4gICAgICA/IHRoaXMudW5pdE9wdGlvbnMucHVzaChpdGVtLnVuaXQpXG4gICAgICA6IG51bGw7XG5cbiAgICBpZihpdGVtLm1hdGVyaWFsKSB7XG4gICAgICB0aGlzLm1hdGVyaWFsT3B0aW9ucy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGl0ZW0ubWF0ZXJpYWwpID09PSAtMVxuICAgICAgPyB0aGlzLm1hdGVyaWFsT3B0aW9ucy5wdXNoKGl0ZW0ubWF0ZXJpYWwpXG4gICAgICA6IG51bGw7XG4gICAgfVxuICAgIGlmIChpdGVtLnJvdXRlX25hbWUpXG4gICAgICB0aGlzLnJvdXRlTmFtZU9wdGlvbnMuZmluZEluZGV4KChlbGVtKSA9PiBlbGVtID09PSBpdGVtLnJvdXRlX25hbWUpID09PSAtMVxuICAgICAgICA/IHRoaXMucm91dGVOYW1lT3B0aW9ucy5wdXNoKGl0ZW0ucm91dGVfbmFtZSlcbiAgICAgICAgOiBudWxsO1xuICB9XG5cbiAgZmlsdGVyKHZhbHVlOiBzdHJpbmcsIGZpbHRlcnM6IGFueSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoZmlsdGVyVmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaFJlc3VsdHM6IGFueVtdID0gW107XG4gICAgdGhpcy51bml0T3B0aW9ucy5tYXAoKHVuaXQpID0+IHtcbiAgICAgIGlmICh1bml0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7IHR5cGU6ICd1bml0JywgbGFiZWw6IHVuaXQsIHZhbHVlOiB1bml0IH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY3VzdG9tZXJPcHRpb25zLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgdHlwZTogJ2N1c3RvbWVyJywgbGFiZWw6IHVuaXQsIHZhbHVlOiB1bml0IH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYodGhpcy5tYXRlcmlhbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1hdGVyaWFsT3B0aW9ucy5tYXAoKHVuaXQpID0+IHtcbiAgICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyB0eXBlOiAnbWF0ZXJpYWwnLCBsYWJlbDogdW5pdCwgdmFsdWU6IHVuaXQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnBpY2t1cE9wdGlvbnMubWFwKCh1bml0KSA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goe1xuICAgICAgICAgIHR5cGU6ICdwaWNrdXAgbG9jYXRpb24nLFxuICAgICAgICAgIGxhYmVsOiB1bml0LFxuICAgICAgICAgIHZhbHVlOiB1bml0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmRlc3RPcHRpb25zLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICB0eXBlOiAnZGVzdGluYXRpb24gbG9jYXRpb24nLFxuICAgICAgICAgIGxhYmVsOiB1bml0LFxuICAgICAgICAgIHZhbHVlOiB1bml0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmpjb2RlT3B0aW9ucy5tYXAoKHVuaXQpID0+IHtcbiAgICAgIGlmICh1bml0LmpvYl9jb2RlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ2pvYicsXG4gICAgICAgICAgbGFiZWw6IHVuaXRbJ2pvYl9jb2RlJ10sXG4gICAgICAgICAgdmFsdWU6IHVuaXQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZHJpdmVyT3B0aW9uLm1hcCgodW5pdCkgPT4ge1xuICAgICAgaWYgKHVuaXQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpIHtcbiAgICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKHsgdHlwZTogJ0RyaXZlcicsIGxhYmVsOiB1bml0LCB2YWx1ZTogdW5pdCB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudHJ1Y2tpbmdDb21wYW5heU9wdGlvbi5tYXAoKHVuaXQpID0+IHtcbiAgICAgIGlmICh1bml0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ1RydWNraW5nIENvbXBhbnknLFxuICAgICAgICAgIGxhYmVsOiB1bml0LFxuICAgICAgICAgIHZhbHVlOiB1bml0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlTmFtZU9wdGlvbnMubWFwKCh1bml0KSA9PiB7XG4gICAgICBpZiAodW5pdC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSkge1xuICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2goeyB0eXBlOiAnUm91dGUgbmFtZScsIGxhYmVsOiB1bml0LCB2YWx1ZTogdW5pdCB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBzZWFyY2hEaWN0OiBhbnkgPSB7fTtcbiAgICBmaWx0ZXJzLm1hcCgoZmlsdGVyOiB7IFt4OiBzdHJpbmddOiBhbnkgfSkgPT4ge1xuICAgICAgc2VhcmNoRGljdFtmaWx0ZXJbJ25hbWUnXSArIGZpbHRlclsndHlwZSddXSA9IGZpbHRlcjtcbiAgICB9KTtcbiAgICBjb25zdCBmdXJ0aGVyRmlsdGVyOiBhbnlbXSA9IFtdO1xuICAgIHNlYXJjaFJlc3VsdHMubWFwKChzZWFyY2gpID0+IHtcbiAgICAgIGlmIChzZWFyY2hbJ2xhYmVsJ10gKyBzZWFyY2hbJ3R5cGUnXSBpbiBzZWFyY2hEaWN0KSB7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmdXJ0aGVyRmlsdGVyLnB1c2goc2VhcmNoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZnVydGhlckZpbHRlcjtcbiAgfVxuXG4gIGdldFNlYXJjaFJlc3VsdHMobGlzdDogUm91dGVbXSwgZmlsdGVydmFsOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBsaXN0LmZpbHRlcigoZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0X2xpc3RfYm9vbGVhbiA9IFtdO1xuICAgICAgaWYgKGZpbHRlcnZhbC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ3VuaXQnKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKFxuICAgICAgICAgICAgZmlsdGVydmFsWzBdWyduYW1lJ10gPT09XG4gICAgICAgICAgICAgIGVsZW1lbnRbZmlsdGVydmFsWzBdWyd0eXBlJ10gYXMga2V5b2YgUm91dGVdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdjdXN0b21lcicpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goXG4gICAgICAgICAgICBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlbWVudFsnY3VzdG9tZXJfbmFtZSddXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdtYXRlcmlhbCcpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goXG4gICAgICAgICAgICBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT1cbiAgICAgICAgICAgICAgZWxlbWVudFtmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSBhcyBrZXlvZiBSb3V0ZV1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ3BpY2t1cCBsb2NhdGlvbicpIHtcbiAgICAgICAgICByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2goXG4gICAgICAgICAgICBmaWx0ZXJ2YWxbMF1bJ25hbWUnXSA9PT0gZWxlbWVudFsncGlja3VwX2xvY2F0aW9uJ11cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ2Rlc3RpbmF0aW9uIGxvY2F0aW9uJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChcbiAgICAgICAgICAgIGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50WydkZWxpdmVyeV9sb2NhdGlvbiddXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdqb2InKSB7XG4gICAgICAgICAgcmVzdWx0X2xpc3RfYm9vbGVhbi5wdXNoKFxuICAgICAgICAgICAgZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZW1lbnRbJ29yZGVyX251bWJlciddXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVydmFsWzBdWyd0eXBlJ10gPT09ICdSb3V0ZSBuYW1lJykge1xuICAgICAgICAgIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaChcbiAgICAgICAgICAgIGZpbHRlcnZhbFswXVsnbmFtZSddID09PSBlbGVtZW50Wydyb3V0ZV9uYW1lJ11cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJ2YWxbMF1bJ3R5cGUnXSA9PT0gJ0RyaXZlcicpIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGVsZW1lbnQuZHJpdmVyX2xpc3Q/LmZpbmRJbmRleCgoZWxlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZVsnZHJpdmVyX25hbWUnXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSByZXN1bHRfbGlzdF9ib29sZWFuLnB1c2godHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnZhbFswXVsndHlwZSddID09PSAnVHJ1Y2tpbmcgQ29tcGFueScpIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGVsZW1lbnQuZHJpdmVyX2xpc3Q/LmZpbmRJbmRleCgoZWxlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVydmFsWzBdWyduYW1lJ10gPT09IGVsZVsndHJ1Y2tpbmdfY29tcGFueSddO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHJlc3VsdF9saXN0X2Jvb2xlYW4ucHVzaCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdF9saXN0X2Jvb2xlYW4ubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0X2xpc3RfYm9vbGVhbi5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgJiYgY3Vycik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhck9wdGlvbnMoKSB7XG4gICAgdGhpcy5waWNrdXBPcHRpb25zID0gW107XG4gICAgdGhpcy5kZXN0T3B0aW9ucyA9IFtdO1xuICAgIHRoaXMub3duZXJPcHRpb25zID0gW107XG4gICAgdGhpcy5jdXN0b21lck9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLnVuaXRPcHRpb25zID0gW107XG4gICAgdGhpcy5tYXRlcmlhbE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLmpjb2RlT3B0aW9ucyA9IFtdO1xuICAgIHRoaXMucm91dGVOYW1lT3B0aW9ucyA9IFtdO1xuICB9XG4gIHNldGRpY3RWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZGljdC5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cbiAgZ2V0ZGljdFZhbHVlKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5kaWN0LmdldChrZXkpKTtcbiAgfVxuICByZW1vdmVkaWN0VmFsdWUoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpY3QuZGVsZXRlKGtleSk7XG4gIH1cbiAgY29udmV5U2VhcmNoSWNvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmZXRjaFVuaXRzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnVuaXRzTGlzdCkge1xuICAgICAgICB0aGlzLmdldERhdGEoJ3VuaXQvbGlzdC92aWV3Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMudW5pdHNMaXN0ID0gcmVzLmRhdGE7XG4gICAgICAgICAgICByZXNvbHZlKHRoaXMudW5pdHNMaXN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLnVuaXRzTGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmZXRjaE1hdGVyaWFsc0xpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXRlcmlhbHNMaXN0KSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgnbWF0ZXJpYWwvbGlzdC92aWV3Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubWF0ZXJpYWxzTGlzdCA9IHRoaXMuZmlsdGVybWF0ZXJpYWxMaXN0KHJlcy5kYXRhKTtcbiAgICAgICAgICByZXNvbHZlKHRoaXMubWF0ZXJpYWxzTGlzdCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLm1hdGVyaWFsc0xpc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZldGNoTWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyKSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgnbWF0ZXJpYWwvbGlzdC92aWV3Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubWF0ZXJpYWxzTGlzdEZvckN1c3RvbWVyID0gdGhpcy5maWx0ZXJtYXRlcmlhbExpc3QocmVzLmRhdGEpO1xuICAgICAgICAgIHJlc29sdmUodGhpcy5tYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5tYXRlcmlhbHNMaXN0Rm9yQ3VzdG9tZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZpbHRlcm1hdGVyaWFsTGlzdChsaXN0KSB7XG4gICAgbGV0IG1ldGVyaWFsTGlzdCA9IFtdO1xuICAgIGxpc3QubWFwKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5zdWIubGVuZ3RoID4gMCkge1xuICAgICAgICBpdGVtLnN1Yi5tYXAoKHN1Ykl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoc3ViSXRlbS5hZGRfdG9fbWFya2V0cGxhY2UpIHtcbiAgICAgICAgICAgIHN1Ykl0ZW0ubWF0ZXJpYWwgPSBpdGVtLm1hdGVyaWFsO1xuICAgICAgICAgICAgc3ViSXRlbS5tYXRlcmlhbF9pZCA9IGl0ZW0ubWF0ZXJpYWxfaWQ7XG4gICAgICAgICAgICBzdWJJdGVtLmxhYmVsID0gaXRlbS5tYXRlcmlhbCArICcgfCAnICsgc3ViSXRlbS5zdWJfbWF0ZXJpYWw7XG4gICAgICAgICAgICBtZXRlcmlhbExpc3QucHVzaChzdWJJdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIG1ldGVyaWFsTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICByZXR1cm4gbWV0ZXJpYWxMaXN0O1xuICB9XG4gIGZldGNoQ3VzdG9tZXJzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmN1c3RvbWVyc0xpc3QpIHtcbiAgICAgICAgdGhpcy5nZXREYXRhKCdjb21wYW55L2xpc3QvdmlldycpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyc0xpc3QgPSByZXMuZGF0YTtcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5jdXN0b21lcnNMaXN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmN1c3RvbWVyc0xpc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hMb2NhdGlvbmxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZ2V0UmVzdERhdGEoJ2xvY2F0aW9ucy9hbGwnKS5zdWJzY3JpYmUoKHJlczogeyBkYXRhOiBMb2NhdGlvbkFsbCB9KSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLmxvY2F0aW9uTGlzdCA9IHJlcy5kYXRhO1xuICAgICAgICAgIHRoaXMubG9jYXRpb25MaXN0ID0gdGhpcy5sb2NhdGlvbkxpc3QubWFwKChvYmplY3QpID0+IHtcbiAgICAgICAgICAgIG9iamVjdC5mb3JtYXR0ZWRfYWRkcmVzcyA9IGAke29iamVjdC5uYW1lfSB8ICR7b2JqZWN0LnN0cmVldH0gJHtvYmplY3QuY2l0eX0sICR7b2JqZWN0LnN0YXRlfSAke29iamVjdC56aXB9YDtcbiAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICAgICAgY2l0eTogb2JqZWN0LmNpdHksXG4gICAgICAgICAgICAgIGxuZzogb2JqZWN0LmxvbmdpdHVkZSxcbiAgICAgICAgICAgICAgbG9jYXRpb25faWQ6IG9iamVjdC5sb2NhdGlvbl9pZCxcbiAgICAgICAgICAgICAgbGF0OiBvYmplY3QubGF0aXR1ZGUsXG4gICAgICAgICAgICAgIG5hbWU6ICBvYmplY3QubmFtZSxcbiAgICAgICAgICAgICAgc3RhdGU6IG9iamVjdC5zdGF0ZSxcbiAgICAgICAgICAgICAgc3RyZWV0OiBvYmplY3Quc3RyZWV0LFxuICAgICAgICAgICAgICB6aXA6IG9iamVjdC56aXAsXG4gICAgICAgICAgICAgIGZvcm1hdHRlZF9hZGRyZXNzOiBvYmplY3QuZm9ybWF0dGVkX2FkZHJlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXNvbHZlKHRoaXMubG9jYXRpb25MaXN0KTtcbiAgICAgICAgfVxuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -463,8 +463,7 @@ class UtilsService {
|
|
|
463
463
|
if (res) {
|
|
464
464
|
this.locationList = res.data;
|
|
465
465
|
this.locationList = this.locationList.map((object) => {
|
|
466
|
-
object.formatted_address = `${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
467
|
-
object.complete_address = `${object.name} | ${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
466
|
+
object.formatted_address = `${object.name} | ${object.street} ${object.city}, ${object.state} ${object.zip}`;
|
|
468
467
|
const newItem = {
|
|
469
468
|
city: object.city,
|
|
470
469
|
lng: object.longitude,
|
|
@@ -474,8 +473,7 @@ class UtilsService {
|
|
|
474
473
|
state: object.state,
|
|
475
474
|
street: object.street,
|
|
476
475
|
zip: object.zip,
|
|
477
|
-
formatted_address: object.formatted_address
|
|
478
|
-
complete_address: object.complete_address
|
|
476
|
+
formatted_address: object.formatted_address
|
|
479
477
|
};
|
|
480
478
|
return newItem;
|
|
481
479
|
});
|
|
@@ -565,86 +563,90 @@ class CoolmapService {
|
|
|
565
563
|
}
|
|
566
564
|
pinRouteGeojson.features[0].geometry.coordinates = arc;
|
|
567
565
|
const pinRoute = pinRouteGeojson.features[0].geometry.coordinates;
|
|
568
|
-
|
|
569
|
-
.
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
this.
|
|
574
|
-
|
|
575
|
-
this.map.addSource(`line${index}`, {
|
|
576
|
-
type: 'geojson',
|
|
577
|
-
lineMetrics: true,
|
|
578
|
-
data: pinRouteGeojson,
|
|
579
|
-
});
|
|
580
|
-
this.map.addLayer({
|
|
581
|
-
type: 'line',
|
|
582
|
-
source: `line${index}`,
|
|
583
|
-
id: `line${index}`,
|
|
584
|
-
paint: {
|
|
585
|
-
'line-width': 2,
|
|
586
|
-
'line-gradient': [
|
|
587
|
-
'interpolate',
|
|
588
|
-
['linear'],
|
|
589
|
-
['line-progress'],
|
|
590
|
-
0,
|
|
591
|
-
unit === 'Ton'
|
|
592
|
-
? '#d7f7e4'
|
|
593
|
-
: unit === 'Load'
|
|
594
|
-
? '#c9d8f5'
|
|
595
|
-
: '#f5dcc1',
|
|
596
|
-
1,
|
|
597
|
-
unit === 'Ton'
|
|
598
|
-
? '#ff7272'
|
|
599
|
-
: unit === 'Load'
|
|
600
|
-
? '#a3c52e'
|
|
601
|
-
: '#ae23d1',
|
|
602
|
-
],
|
|
603
|
-
},
|
|
604
|
-
layout: { 'line-cap': 'round', 'line-join': 'round' },
|
|
605
|
-
});
|
|
606
|
-
const dataSetForMap = {
|
|
607
|
-
counter: 0,
|
|
608
|
-
pinRouteGeojson,
|
|
609
|
-
steps,
|
|
610
|
-
point,
|
|
611
|
-
pointId: `point${index}`,
|
|
612
|
-
marker,
|
|
613
|
-
pinRoute,
|
|
614
|
-
lineId: `line${index}`,
|
|
615
|
-
index,
|
|
616
|
-
origin,
|
|
617
|
-
destination,
|
|
618
|
-
lineDistance,
|
|
619
|
-
linecolor,
|
|
620
|
-
route,
|
|
621
|
-
isViewRoute: true,
|
|
622
|
-
};
|
|
623
|
-
this.createMarker(dataSetForMap);
|
|
624
|
-
this.map.on('mouseenter', `line${index}`, (e) => {
|
|
625
|
-
this.map.setPaintProperty(`line${index}`, 'line-width', 5);
|
|
626
|
-
this.map.setPaintProperty(`line${index}`, 'line-opacity', 1);
|
|
627
|
-
const datasetForPopup = {
|
|
628
|
-
coordinate: [e.lngLat.lng, e.lngLat.lat],
|
|
629
|
-
pickup: route.pickup_location ? route.pickup_location : '',
|
|
630
|
-
drop: route.delivery_location ? route.delivery_location : '',
|
|
631
|
-
routeType: route.project ? 'Project' : 'Route',
|
|
632
|
-
title: route.project
|
|
633
|
-
? route.project
|
|
634
|
-
: route.route_name
|
|
635
|
-
? route.route_name
|
|
636
|
-
: '',
|
|
637
|
-
material: route.material ? route.material : '',
|
|
638
|
-
type: route.unit ? route.unit : '',
|
|
639
|
-
};
|
|
640
|
-
this.createPopup(datasetForPopup);
|
|
641
|
-
});
|
|
642
|
-
this.map.on('mouseleave', `line${index}`, (e) => {
|
|
643
|
-
this.map.setPaintProperty(`line${index}`, 'line-width', 2);
|
|
644
|
-
if (this.popup) {
|
|
645
|
-
this.popup.remove();
|
|
566
|
+
if (pinRoute && pinRoute.length) {
|
|
567
|
+
const marker = new mapboxgl.Marker(document.createElement('div'))
|
|
568
|
+
.setLngLat(pinRoute[0])
|
|
569
|
+
.addTo(this.map)
|
|
570
|
+
.togglePopup();
|
|
571
|
+
if (this.map.getSource(`line${index}`)) {
|
|
572
|
+
this.removeRouteAndMarker(index).then(() => { });
|
|
646
573
|
}
|
|
647
|
-
|
|
574
|
+
this.map.addSource(`line${index}`, {
|
|
575
|
+
type: 'geojson',
|
|
576
|
+
lineMetrics: true,
|
|
577
|
+
data: pinRouteGeojson,
|
|
578
|
+
});
|
|
579
|
+
this.map.addLayer({
|
|
580
|
+
type: 'line',
|
|
581
|
+
source: `line${index}`,
|
|
582
|
+
id: `line${index}`,
|
|
583
|
+
paint: {
|
|
584
|
+
'line-width': 2,
|
|
585
|
+
'line-gradient': [
|
|
586
|
+
'interpolate',
|
|
587
|
+
['linear'],
|
|
588
|
+
['line-progress'],
|
|
589
|
+
0,
|
|
590
|
+
unit === 'Ton'
|
|
591
|
+
? '#d7f7e4'
|
|
592
|
+
: unit === 'Load'
|
|
593
|
+
? '#c9d8f5'
|
|
594
|
+
: '#f5dcc1',
|
|
595
|
+
1,
|
|
596
|
+
unit === 'Ton'
|
|
597
|
+
? '#ff7272'
|
|
598
|
+
: unit === 'Load'
|
|
599
|
+
? '#a3c52e'
|
|
600
|
+
: '#ae23d1',
|
|
601
|
+
],
|
|
602
|
+
},
|
|
603
|
+
layout: { 'line-cap': 'round', 'line-join': 'round' },
|
|
604
|
+
});
|
|
605
|
+
const dataSetForMap = {
|
|
606
|
+
counter: 0,
|
|
607
|
+
pinRouteGeojson,
|
|
608
|
+
steps,
|
|
609
|
+
point,
|
|
610
|
+
pointId: `point${index}`,
|
|
611
|
+
marker,
|
|
612
|
+
pinRoute,
|
|
613
|
+
lineId: `line${index}`,
|
|
614
|
+
index,
|
|
615
|
+
origin,
|
|
616
|
+
destination,
|
|
617
|
+
lineDistance,
|
|
618
|
+
linecolor,
|
|
619
|
+
route,
|
|
620
|
+
isViewRoute: true,
|
|
621
|
+
};
|
|
622
|
+
this.createMarker(dataSetForMap);
|
|
623
|
+
this.map.on('mouseenter', `line${index}`, (e) => {
|
|
624
|
+
this.map.setPaintProperty(`line${index}`, 'line-width', 5);
|
|
625
|
+
this.map.setPaintProperty(`line${index}`, 'line-opacity', 1);
|
|
626
|
+
const datasetForPopup = {
|
|
627
|
+
coordinate: [e.lngLat.lng, e.lngLat.lat],
|
|
628
|
+
pickup: route.pickup_location ? route.pickup_location : '',
|
|
629
|
+
drop: route.delivery_location ? route.delivery_location : '',
|
|
630
|
+
routeType: route.project ? 'Project' : 'Route',
|
|
631
|
+
title: route.project
|
|
632
|
+
? route.project
|
|
633
|
+
: route.route_name
|
|
634
|
+
? route.route_name
|
|
635
|
+
: '',
|
|
636
|
+
material: route.material ? route.material : '',
|
|
637
|
+
type: route.unit ? route.unit : '',
|
|
638
|
+
};
|
|
639
|
+
if (this.popup)
|
|
640
|
+
this.popup.remove();
|
|
641
|
+
this.createPopup(datasetForPopup);
|
|
642
|
+
});
|
|
643
|
+
this.map.on('mouseleave', `line${index}`, (e) => {
|
|
644
|
+
this.map.setPaintProperty(`line${index}`, 'line-width', 2);
|
|
645
|
+
if (this.popup) {
|
|
646
|
+
this.popup.remove();
|
|
647
|
+
}
|
|
648
|
+
});
|
|
649
|
+
}
|
|
648
650
|
});
|
|
649
651
|
this.map.once('idle', (res) => {
|
|
650
652
|
resolve(true);
|
|
@@ -800,8 +802,10 @@ class CoolmapService {
|
|
|
800
802
|
.setLngLat(datasetForPopup.coordinate)
|
|
801
803
|
.setHTML(`<div class="destination">
|
|
802
804
|
<div class="duration">
|
|
803
|
-
<p class="pickprt"><b>Pickup Location:</b> ${datasetForPopup.pickup}</p>
|
|
804
|
-
<p class="dropprt"><b>Drop Location:</b> ${datasetForPopup.drop
|
|
805
|
+
<p class="pickprt"><b>Pickup Location:</b> ${datasetForPopup.pickup?.split('|')[1] ? datasetForPopup.pickup.split('|')[1] : datasetForPopup.pickup}</p>
|
|
806
|
+
<p class="dropprt"><b>Drop Location:</b> ${datasetForPopup.drop?.split('|')[1] ?
|
|
807
|
+
datasetForPopup.drop.split('|')[1] :
|
|
808
|
+
datasetForPopup.drop}</p>
|
|
805
809
|
</div>
|
|
806
810
|
${datasetForPopup.jobCode
|
|
807
811
|
? '<span><b>Job Code:</b> ' + datasetForPopup.jobCode + '</span>'
|