@aggdirect/coolmap 0.1.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +33 -0
  2. package/esm2020/aggdirect-coolmap.mjs +5 -0
  3. package/esm2020/lib/component/add-route/add-route.component.mjs +310 -0
  4. package/esm2020/lib/component/job-code/job-code.component.mjs +114 -0
  5. package/esm2020/lib/component/map/map.component.mjs +39 -0
  6. package/esm2020/lib/component/nav/layout/add-route-nav/add-route-nav.component.mjs +87 -0
  7. package/esm2020/lib/component/nav/layout/job-code-nav/job-code-nav.component.mjs +89 -0
  8. package/esm2020/lib/component/nav/nav.component.mjs +52 -0
  9. package/esm2020/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.mjs +68 -0
  10. package/esm2020/lib/component/route-jobcode-list/route-jobcode-list.component.mjs +314 -0
  11. package/esm2020/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.mjs +19 -0
  12. package/esm2020/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.mjs +29 -0
  13. package/esm2020/lib/component/shared/dialog/dialog.component.mjs +29 -0
  14. package/esm2020/lib/component/shared/job-route-list/job-route-list.component.mjs +71 -0
  15. package/esm2020/lib/component/shared/jobcode-overview/jobcode-overview.component.mjs +19 -0
  16. package/esm2020/lib/component/shared/jobcode-status/jobcode-status.component.mjs +14 -0
  17. package/esm2020/lib/coolmap.component.mjs +22 -0
  18. package/esm2020/lib/coolmap.module.mjs +156 -0
  19. package/esm2020/lib/event.service.mjs +26 -0
  20. package/esm2020/public-api.mjs +16 -0
  21. package/fesm2015/aggdirect-coolmap.mjs +1367 -0
  22. package/fesm2015/aggdirect-coolmap.mjs.map +1 -0
  23. package/fesm2020/aggdirect-coolmap.mjs +1340 -0
  24. package/fesm2020/aggdirect-coolmap.mjs.map +1 -0
  25. package/index.d.ts +5 -0
  26. package/lib/component/add-route/add-route.component.d.ts +62 -0
  27. package/lib/component/job-code/job-code.component.d.ts +31 -0
  28. package/lib/component/map/map.component.d.ts +16 -0
  29. package/lib/component/nav/layout/add-route-nav/add-route-nav.component.d.ts +40 -0
  30. package/lib/component/nav/layout/job-code-nav/job-code-nav.component.d.ts +38 -0
  31. package/lib/component/nav/nav.component.d.ts +30 -0
  32. package/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.d.ts +19 -0
  33. package/lib/component/route-jobcode-list/route-jobcode-list.component.d.ts +42 -0
  34. package/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.d.ts +9 -0
  35. package/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.d.ts +11 -0
  36. package/lib/component/shared/dialog/dialog.component.d.ts +13 -0
  37. package/lib/component/shared/job-route-list/job-route-list.component.d.ts +26 -0
  38. package/lib/component/shared/jobcode-overview/jobcode-overview.component.d.ts +9 -0
  39. package/lib/component/shared/jobcode-status/jobcode-status.component.d.ts +8 -0
  40. package/lib/coolmap.component.d.ts +8 -0
  41. package/lib/coolmap.module.d.ts +40 -0
  42. package/lib/event.service.d.ts +19 -0
  43. package/package.json +31 -5
  44. package/public-api.d.ts +12 -0
  45. package/karma.conf.js +0 -44
  46. package/ng-package.json +0 -7
  47. package/src/assets/mixin.scss +0 -28
  48. package/src/assets/palette.scss +0 -24
  49. package/src/assets/variable.scss +0 -15
  50. package/src/lib/component/add-route/add-route.component.html +0 -140
  51. package/src/lib/component/add-route/add-route.component.scss +0 -235
  52. package/src/lib/component/add-route/add-route.component.spec.ts +0 -23
  53. package/src/lib/component/add-route/add-route.component.ts +0 -270
  54. package/src/lib/component/job-code/job-code.component.html +0 -93
  55. package/src/lib/component/job-code/job-code.component.scss +0 -427
  56. package/src/lib/component/job-code/job-code.component.ts +0 -94
  57. package/src/lib/component/map/map.component.css +0 -0
  58. package/src/lib/component/map/map.component.html +0 -5
  59. package/src/lib/component/map/map.component.spec.ts +0 -23
  60. package/src/lib/component/map/map.component.ts +0 -33
  61. package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.html +0 -44
  62. package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.scss +0 -0
  63. package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.spec.ts +0 -23
  64. package/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.ts +0 -70
  65. package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.html +0 -43
  66. package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.scss +0 -5
  67. package/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.ts +0 -64
  68. package/src/lib/component/nav/nav.component.html +0 -19
  69. package/src/lib/component/nav/nav.component.scss +0 -65
  70. package/src/lib/component/nav/nav.component.ts +0 -38
  71. package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.html +0 -56
  72. package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.scss +0 -167
  73. package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.spec.ts +0 -23
  74. package/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ts +0 -42
  75. package/src/lib/component/route-jobcode-list/route-jobcode-list.component.html +0 -66
  76. package/src/lib/component/route-jobcode-list/route-jobcode-list.component.scss +0 -226
  77. package/src/lib/component/route-jobcode-list/route-jobcode-list.component.ts +0 -234
  78. package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.html +0 -7
  79. package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.scss +0 -10
  80. package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.spec.ts +0 -23
  81. package/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ts +0 -15
  82. package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.html +0 -30
  83. package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.scss +0 -172
  84. package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.spec.ts +0 -23
  85. package/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ts +0 -19
  86. package/src/lib/component/shared/dialog/dialog.component.html +0 -7
  87. package/src/lib/component/shared/dialog/dialog.component.scss +0 -30
  88. package/src/lib/component/shared/dialog/dialog.component.ts +0 -18
  89. package/src/lib/component/shared/job-route-list/job-route-list.component.html +0 -27
  90. package/src/lib/component/shared/job-route-list/job-route-list.component.scss +0 -3
  91. package/src/lib/component/shared/job-route-list/job-route-list.component.spec.ts +0 -23
  92. package/src/lib/component/shared/job-route-list/job-route-list.component.ts +0 -54
  93. package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.html +0 -8
  94. package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.scss +0 -12
  95. package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.spec.ts +0 -23
  96. package/src/lib/component/shared/jobcode-overview/jobcode-overview.component.ts +0 -15
  97. package/src/lib/component/shared/jobcode-status/jobcode-status.component.html +0 -5
  98. package/src/lib/component/shared/jobcode-status/jobcode-status.component.scss +0 -32
  99. package/src/lib/component/shared/jobcode-status/jobcode-status.component.spec.ts +0 -23
  100. package/src/lib/component/shared/jobcode-status/jobcode-status.component.ts +0 -12
  101. package/src/lib/coolmap.component.ts +0 -20
  102. package/src/lib/coolmap.module.ts +0 -92
  103. package/src/public-api.ts +0 -10
  104. package/src/test.ts +0 -27
  105. package/tsconfig.lib.json +0 -15
  106. package/tsconfig.lib.prod.json +0 -10
  107. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,68 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "coolmap-services";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/tooltip";
6
+ export class JobCodeListCardComponent {
7
+ constructor(utils) {
8
+ this.utils = utils;
9
+ this.routeSeletion = new EventEmitter();
10
+ this.toggleDrivermenu = new EventEmitter();
11
+ }
12
+ selectRoute(route) { this.routeSeletion.emit(route); }
13
+ toggleDriverlist(mouseevntType, route, isHoverOut) {
14
+ const data = { mouseevntType, route, isHoverOut };
15
+ this.toggleDrivermenu.emit(data);
16
+ if (mouseevntType === 'click')
17
+ this.utils.setdictValue('driver-details', JSON.stringify(this.route));
18
+ }
19
+ toggleJobCodeDetails(mouseEventType, route) {
20
+ if (mouseEventType) {
21
+ route['type'] = 'jobcode';
22
+ this.emitJobdetails.emitroute.emit(route);
23
+ }
24
+ else if (!mouseEventType && this.preventCloseDetails) {
25
+ route = this.utils.getdictValue('route-details');
26
+ route['type'] = 'jobcode';
27
+ this.emitJobdetails.emitroute.emit(route);
28
+ }
29
+ else if (!mouseEventType && !this.preventCloseDetails)
30
+ this.emitJobdetails.clearJobDetailsFromList.emit(true);
31
+ }
32
+ calculateStatusPercentage(type, route) {
33
+ const total = route['Done'] + route['Ongoing'] + route['Open'];
34
+ if (type === 'done') {
35
+ return Math.round((100 * route['Done']) / total);
36
+ }
37
+ else if (type === 'ongoing') {
38
+ return Math.round((100 * route['Ongoing']) / total);
39
+ }
40
+ else if (type === 'open') {
41
+ return Math.round((100 * route['Open']) / total);
42
+ }
43
+ else {
44
+ return null;
45
+ }
46
+ }
47
+ setRouteItem() {
48
+ this.utils.preVentJobdetailclose.next(true);
49
+ this.utils.setdictValue('route-details', JSON.stringify(this.route));
50
+ }
51
+ }
52
+ JobCodeListCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: JobCodeListCardComponent, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
53
+ JobCodeListCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: JobCodeListCardComponent, selector: "app-job-code-list-card", inputs: { route: "route", emitJobdetails: "emitJobdetails", preventCloseDetails: "preventCloseDetails" }, outputs: { routeSeletion: "routeSeletion", toggleDrivermenu: "toggleDrivermenu" }, ngImport: i0, template: "<div class=\"innerbox\">\n <div class=\"inputarea\">\n <input type=\"checkbox\" name=\"selectroute\" [checked]=\"route['isSelected']\" (change)=\"$event ? selectRoute(route) : null\" />\n <label>&nbsp;</label>\n <div class=\"border\"></div>\n </div>\n <div class=\"job_intro\">\n <div class=\"heading\">\n <h2>\n {{route['order_number'] ? route['order_number'] : ''}}\n </h2>\n |\n <span>\n {{route['customer_name']}}\n </span>\n |\n <span>\n {{route['project']}}\n </span>\n </div>\n <div class=\"destinationprt\">\n <span style=\"padding-left: 0;\">\n {{route['pickup_location']}}\n </span>\n <b>></b>\n <span>\n {{route['delivery_location']}}\n </span>\n </div>\n <div class=\"mat_cat\">\n <span>\n {{route['material']}}\n </span>\n </div>\n\n <div class=\"statusbar\">\n <div class=\"status_percent\">\n <span class=\"done\" [style]=\"'width:'+calculateStatusPercentage('done',route['values'])+'%'\"></span>\n <span class=\"ongoing\" [style]=\"'width:'+calculateStatusPercentage('ongoing', route['values'])+'%'\"> </span>\n <span class=\"open\" [style]=\"'width:'+calculateStatusPercentage('open', route['values'])+'%'\"> </span>\n </div>\n </div>\n </div>\n <div class=\"statusarea\">\n <div class=\"statusunit\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\n <div class=\"driver_icon\" (mouseover)=\"toggleDriverlist(true, route)\" (mouseout)=\"toggleDriverlist(false, route, true)\"\n mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Click on icon to show the driver list\" matTooltipPosition=\"above\"\n (click)=\"toggleDriverlist('click', route)\">\n <img src=\"assets/images/driver_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"infoicon\" (click)=\"setRouteItem()\" (mouseover)=\"toggleJobCodeDetails(true, route)\"\n (mouseout)=\"toggleJobCodeDetails(false, route)\">\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n </div>\n</div>\n", styles: [".innerbox{display:flex;justify-content:space-between}.innerbox .inputarea{display:flex;align-items:center;width:6%}.innerbox .inputarea 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}.innerbox .inputarea input[type=checkbox]:checked+label{background:url(../../../../../assets/images/fill-radio.png) 10px 11px no-repeat}.innerbox .inputarea label{background:url(../../../../../assets/images/blank-radio.png) 10px 11px no-repeat;width:100%;position:relative;z-index:2;font-size:12px;color:#878787;height:100%;position:absolute;top:0;left:0}.innerbox .inputarea .border{position:absolute;width:100%;height:100%;left:0;right:0;top:-1px;border-radius:15px}.innerbox .inputarea input:checked~.border{border-left:3px solid #39c471;border-right:1px solid #39c471;border-top:1px solid #39c471;border-bottom:1px solid #39c471}.innerbox .inputarea h2{margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:214px;padding-left:16px;margin-bottom:5px;margin-top:0}.innerbox .job_intro{width:80%}.innerbox .job_intro .heading{display:flex;font-size:.8rem}.innerbox .job_intro .heading h2{margin:0 4px 0 0;font-size:.8rem}.innerbox .job_intro .heading span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100px;padding:0 3px;display:block}.innerbox .job_intro .destinationprt{display:flex;margin-top:10px;font-size:.8rem}.innerbox .job_intro .destinationprt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:132px;padding:0 5px;display:block}.innerbox .job_intro .mat_cat{margin-top:10px;font-size:.8rem}.innerbox .job_intro .statusbar{width:100%;position:relative;height:5px;margin-top:10px}.innerbox .job_intro .statusbar .status_percent{position:absolute;left:0;display:flex;width:100%;height:100%}.innerbox .job_intro .statusbar .status_percent span{display:block}.innerbox .job_intro .statusbar .status_percent .done{background:#008000}.innerbox .job_intro .statusbar .status_percent .ongoing{background:#ffcc00}.innerbox .job_intro .statusbar .status_percent .open{background:#bfbfbf}.innerbox .statusarea{display:flex;flex-direction:column;align-items:center;width:10%}.innerbox .statusarea .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}.innerbox .statusarea .statusunit:first-letter{font-size:.8rem}.innerbox .statusarea .statusunit.routestatus{right:10px}.innerbox .statusarea .statusunit.Ton{background:#39c471}.innerbox .statusarea .statusunit.Load{background:#326ad3}.innerbox .statusarea .statusunit.Hourly{background:#ffad56}.innerbox .statusarea .driver_icon,.innerbox .statusarea .infoicon{z-index:9999}.innerbox .statusarea .driver_icon img,.innerbox .statusarea .infoicon img{width:20px;height:20px}.innerbox .statusarea .driver_icon{margin:5px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: JobCodeListCardComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'app-job-code-list-card', template: "<div class=\"innerbox\">\n <div class=\"inputarea\">\n <input type=\"checkbox\" name=\"selectroute\" [checked]=\"route['isSelected']\" (change)=\"$event ? selectRoute(route) : null\" />\n <label>&nbsp;</label>\n <div class=\"border\"></div>\n </div>\n <div class=\"job_intro\">\n <div class=\"heading\">\n <h2>\n {{route['order_number'] ? route['order_number'] : ''}}\n </h2>\n |\n <span>\n {{route['customer_name']}}\n </span>\n |\n <span>\n {{route['project']}}\n </span>\n </div>\n <div class=\"destinationprt\">\n <span style=\"padding-left: 0;\">\n {{route['pickup_location']}}\n </span>\n <b>></b>\n <span>\n {{route['delivery_location']}}\n </span>\n </div>\n <div class=\"mat_cat\">\n <span>\n {{route['material']}}\n </span>\n </div>\n\n <div class=\"statusbar\">\n <div class=\"status_percent\">\n <span class=\"done\" [style]=\"'width:'+calculateStatusPercentage('done',route['values'])+'%'\"></span>\n <span class=\"ongoing\" [style]=\"'width:'+calculateStatusPercentage('ongoing', route['values'])+'%'\"> </span>\n <span class=\"open\" [style]=\"'width:'+calculateStatusPercentage('open', route['values'])+'%'\"> </span>\n </div>\n </div>\n </div>\n <div class=\"statusarea\">\n <div class=\"statusunit\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\n <div class=\"driver_icon\" (mouseover)=\"toggleDriverlist(true, route)\" (mouseout)=\"toggleDriverlist(false, route, true)\"\n mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Click on icon to show the driver list\" matTooltipPosition=\"above\"\n (click)=\"toggleDriverlist('click', route)\">\n <img src=\"assets/images/driver_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"infoicon\" (click)=\"setRouteItem()\" (mouseover)=\"toggleJobCodeDetails(true, route)\"\n (mouseout)=\"toggleJobCodeDetails(false, route)\">\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n </div>\n</div>\n", styles: [".innerbox{display:flex;justify-content:space-between}.innerbox .inputarea{display:flex;align-items:center;width:6%}.innerbox .inputarea 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}.innerbox .inputarea input[type=checkbox]:checked+label{background:url(../../../../../assets/images/fill-radio.png) 10px 11px no-repeat}.innerbox .inputarea label{background:url(../../../../../assets/images/blank-radio.png) 10px 11px no-repeat;width:100%;position:relative;z-index:2;font-size:12px;color:#878787;height:100%;position:absolute;top:0;left:0}.innerbox .inputarea .border{position:absolute;width:100%;height:100%;left:0;right:0;top:-1px;border-radius:15px}.innerbox .inputarea input:checked~.border{border-left:3px solid #39c471;border-right:1px solid #39c471;border-top:1px solid #39c471;border-bottom:1px solid #39c471}.innerbox .inputarea h2{margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:214px;padding-left:16px;margin-bottom:5px;margin-top:0}.innerbox .job_intro{width:80%}.innerbox .job_intro .heading{display:flex;font-size:.8rem}.innerbox .job_intro .heading h2{margin:0 4px 0 0;font-size:.8rem}.innerbox .job_intro .heading span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100px;padding:0 3px;display:block}.innerbox .job_intro .destinationprt{display:flex;margin-top:10px;font-size:.8rem}.innerbox .job_intro .destinationprt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:132px;padding:0 5px;display:block}.innerbox .job_intro .mat_cat{margin-top:10px;font-size:.8rem}.innerbox .job_intro .statusbar{width:100%;position:relative;height:5px;margin-top:10px}.innerbox .job_intro .statusbar .status_percent{position:absolute;left:0;display:flex;width:100%;height:100%}.innerbox .job_intro .statusbar .status_percent span{display:block}.innerbox .job_intro .statusbar .status_percent .done{background:#008000}.innerbox .job_intro .statusbar .status_percent .ongoing{background:#ffcc00}.innerbox .job_intro .statusbar .status_percent .open{background:#bfbfbf}.innerbox .statusarea{display:flex;flex-direction:column;align-items:center;width:10%}.innerbox .statusarea .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}.innerbox .statusarea .statusunit:first-letter{font-size:.8rem}.innerbox .statusarea .statusunit.routestatus{right:10px}.innerbox .statusarea .statusunit.Ton{background:#39c471}.innerbox .statusarea .statusunit.Load{background:#326ad3}.innerbox .statusarea .statusunit.Hourly{background:#ffad56}.innerbox .statusarea .driver_icon,.innerbox .statusarea .infoicon{z-index:9999}.innerbox .statusarea .driver_icon img,.innerbox .statusarea .infoicon img{width:20px;height:20px}.innerbox .statusarea .driver_icon{margin:5px 0}\n"] }]
57
+ }], ctorParameters: function () { return [{ type: i1.UtilsService }]; }, propDecorators: { route: [{
58
+ type: Input
59
+ }], routeSeletion: [{
60
+ type: Output
61
+ }], toggleDrivermenu: [{
62
+ type: Output
63
+ }], emitJobdetails: [{
64
+ type: Input
65
+ }], preventCloseDetails: [{
66
+ type: Input
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvcm91dGUtam9iY29kZS1saXN0L2pvYi1jb2RlLWxpc3QtY2FyZC9qb2ItY29kZS1saXN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvam9iLWNvZGUtbGlzdC1jYXJkL2pvYi1jb2RlLWxpc3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2RSxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQW1CLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFKNUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHTixDQUFDO0lBRTNDLFdBQVcsQ0FBQyxLQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixDQUFDLGFBQStCLEVBQUUsS0FBWSxFQUFFLFVBQW9CO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxjQUF1QixFQUFFLEtBQVk7UUFDeEQsSUFBSSxjQUFjLEVBQUU7WUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQUU7YUFDdkYsSUFBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDbEQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7WUFBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEU7YUFDRyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUNoRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUNwRSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUMvRSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUN6RTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7SUFDdEIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOztzSEFoQ1Usd0JBQXdCOzBHQUF4Qix3QkFBd0IsMlBDUnJDLDRqRUF3REE7NEZEaERhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7bUdBS3pCLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSwgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnY29vbG1hcC1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1qb2ItY29kZS1saXN0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSm9iQ29kZUxpc3RDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcm91dGUhOiBSb3V0ZTtcbiAgQE91dHB1dCgpIHJvdXRlU2VsZXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB0b2dnbGVEcml2ZXJtZW51ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBlbWl0Sm9iZGV0YWlsczogYW55O1xuICBASW5wdXQoKSBwcmV2ZW50Q2xvc2VEZXRhaWxzITogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzOiBVdGlsc1NlcnZpY2UpIHsgfVxuXG4gIHNlbGVjdFJvdXRlKHJvdXRlOiBSb3V0ZSkgeyB0aGlzLnJvdXRlU2VsZXRpb24uZW1pdChyb3V0ZSkgfVxuICB0b2dnbGVEcml2ZXJsaXN0KG1vdXNlZXZudFR5cGU6IGJvb2xlYW4gfCBzdHJpbmcsIHJvdXRlOiBSb3V0ZSwgaXNIb3Zlck91dD86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBkYXRhID0geyBtb3VzZWV2bnRUeXBlLCByb3V0ZSwgaXNIb3Zlck91dCB9XG4gICAgdGhpcy50b2dnbGVEcml2ZXJtZW51LmVtaXQoZGF0YSk7XG4gICAgaWYgKG1vdXNlZXZudFR5cGUgPT09ICdjbGljaycpIHRoaXMudXRpbHMuc2V0ZGljdFZhbHVlKCdkcml2ZXItZGV0YWlscycsIEpTT04uc3RyaW5naWZ5KHRoaXMucm91dGUpKTtcbiAgfVxuICB0b2dnbGVKb2JDb2RlRGV0YWlscyhtb3VzZUV2ZW50VHlwZTogYm9vbGVhbiwgcm91dGU6IFJvdXRlKSB7XG4gICAgaWYgKG1vdXNlRXZlbnRUeXBlKSB7IHJvdXRlWyd0eXBlJ10gPSAnam9iY29kZSc7IHRoaXMuZW1pdEpvYmRldGFpbHMuZW1pdHJvdXRlLmVtaXQocm91dGUpIH1cbiAgICBlbHNlIGlmKCFtb3VzZUV2ZW50VHlwZSAmJiB0aGlzLnByZXZlbnRDbG9zZURldGFpbHMpe1xuICAgICAgcm91dGUgPSB0aGlzLnV0aWxzLmdldGRpY3RWYWx1ZSgncm91dGUtZGV0YWlscycpO1xuICAgICAgcm91dGVbJ3R5cGUnXSA9ICdqb2Jjb2RlJzsgdGhpcy5lbWl0Sm9iZGV0YWlscy5lbWl0cm91dGUuZW1pdChyb3V0ZSlcbiAgICAgfVxuICAgIGVsc2UgaWYgKCFtb3VzZUV2ZW50VHlwZSAmJiAhdGhpcy5wcmV2ZW50Q2xvc2VEZXRhaWxzKSB0aGlzLmVtaXRKb2JkZXRhaWxzLmNsZWFySm9iRGV0YWlsc0Zyb21MaXN0LmVtaXQodHJ1ZSk7XG4gIH1cbiAgY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSh0eXBlOiBzdHJpbmcsIHJvdXRlOiBhbnkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHJvdXRlWydEb25lJ10gKyByb3V0ZVsnT25nb2luZyddICsgcm91dGVbJ09wZW4nXTtcbiAgICBpZiAodHlwZSA9PT0gJ2RvbmUnKSB7IHJldHVybiBNYXRoLnJvdW5kKCgxMDAgKiByb3V0ZVsnRG9uZSddKSAvIHRvdGFsKSB9XG4gICAgZWxzZSBpZiAodHlwZSA9PT0gJ29uZ29pbmcnKSB7IHJldHVybiBNYXRoLnJvdW5kKCgxMDAgKiByb3V0ZVsnT25nb2luZyddKSAvIHRvdGFsKSB9XG4gICAgZWxzZSBpZiAodHlwZSA9PT0gJ29wZW4nKSB7IHJldHVybiBNYXRoLnJvdW5kKCgxMDAgKiByb3V0ZVsnT3BlbiddKSAvIHRvdGFsKSB9XG4gICAgZWxzZSB7IHJldHVybiBudWxsIH1cbiAgfVxuICBzZXRSb3V0ZUl0ZW0oKXtcbiAgICB0aGlzLnV0aWxzLnByZVZlbnRKb2JkZXRhaWxjbG9zZS5uZXh0KHRydWUpO1xuICAgIHRoaXMudXRpbHMuc2V0ZGljdFZhbHVlKCdyb3V0ZS1kZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yb3V0ZSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5uZXJib3hcIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0YXJlYVwiPlxuICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic2VsZWN0cm91dGVcIiBbY2hlY2tlZF09XCJyb3V0ZVsnaXNTZWxlY3RlZCddXCIgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3RSb3V0ZShyb3V0ZSkgOiBudWxsXCIgLz5cbiAgICA8bGFiZWw+Jm5ic3A7PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiam9iX2ludHJvXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5cbiAgICAgIDxoMj5cbiAgICAgICAge3tyb3V0ZVsnb3JkZXJfbnVtYmVyJ10gPyByb3V0ZVsnb3JkZXJfbnVtYmVyJ10gOiAnJ319XG4gICAgICA8L2gyPlxuICAgICAgfFxuICAgICAgPHNwYW4+XG4gICAgICAgIHt7cm91dGVbJ2N1c3RvbWVyX25hbWUnXX19XG4gICAgICA8L3NwYW4+XG4gICAgICB8XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3tyb3V0ZVsncHJvamVjdCddfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzdGluYXRpb25wcnRcIj5cbiAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwO1wiPlxuICAgICAgICB7e3JvdXRlWydwaWNrdXBfbG9jYXRpb24nXX19XG4gICAgICA8L3NwYW4+XG4gICAgICA8Yj4+PC9iPlxuICAgICAgPHNwYW4+XG4gICAgICAgIHt7cm91dGVbJ2RlbGl2ZXJ5X2xvY2F0aW9uJ119fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYXRfY2F0XCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3tyb3V0ZVsnbWF0ZXJpYWwnXX19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzX3BlcmNlbnRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkb25lXCIgW3N0eWxlXT1cIid3aWR0aDonK2NhbGN1bGF0ZVN0YXR1c1BlcmNlbnRhZ2UoJ2RvbmUnLHJvdXRlWyd2YWx1ZXMnXSkrJyUnXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm9uZ29pbmdcIiBbc3R5bGVdPVwiJ3dpZHRoOicrY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSgnb25nb2luZycsIHJvdXRlWyd2YWx1ZXMnXSkrJyUnXCI+IDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvcGVuXCIgW3N0eWxlXT1cIid3aWR0aDonK2NhbGN1bGF0ZVN0YXR1c1BlcmNlbnRhZ2UoJ29wZW4nLCByb3V0ZVsndmFsdWVzJ10pKyclJ1wiPiA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzdGF0dXNhcmVhXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c3VuaXRcIiBbbmdDbGFzc109XCJyb3V0ZVsndW5pdCddXCI+e3tyb3V0ZVsndW5pdCddfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJpdmVyX2ljb25cIiAobW91c2VvdmVyKT1cInRvZ2dsZURyaXZlcmxpc3QodHJ1ZSwgcm91dGUpXCIgKG1vdXNlb3V0KT1cInRvZ2dsZURyaXZlcmxpc3QoZmFsc2UsIHJvdXRlLCB0cnVlKVwiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvbiAjdG9vbHRpcD1cIm1hdFRvb2x0aXBcIiBtYXRUb29sdGlwPVwiQ2xpY2sgb24gaWNvbiB0byBzaG93IHRoZSBkcml2ZXIgbGlzdFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcml2ZXJsaXN0KCdjbGljaycsIHJvdXRlKVwiPlxuICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2RyaXZlcl9pY29uLnBuZ1wiIFthbHRdPVwiXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mb2ljb25cIiAoY2xpY2spPVwic2V0Um91dGVJdGVtKClcIiAobW91c2VvdmVyKT1cInRvZ2dsZUpvYkNvZGVEZXRhaWxzKHRydWUsIHJvdXRlKVwiXG4gICAgICAobW91c2VvdXQpPVwidG9nZ2xlSm9iQ29kZURldGFpbHMoZmFsc2UsIHJvdXRlKVwiPlxuICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2luZm9faWNvbi5wbmdcIiBbYWx0XT1cIlwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,314 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { SelectionModel } from '@angular/cdk/collections';
3
+ import { FormControl, Validators } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "coolmap-services";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/material/form-field";
9
+ import * as i5 from "@angular/material/input";
10
+ import * as i6 from "@angular/material/icon";
11
+ import * as i7 from "@angular/material/progress-spinner";
12
+ import * as i8 from "ngx-perfect-scrollbar";
13
+ import * as i9 from "./view-route-list-card/view-route-list-card.component";
14
+ import * as i10 from "./sms-card-details-overview/sms-card-details-overview.component";
15
+ import * as i11 from "./job-code-list-card/job-code-list-card.component";
16
+ export class RouteJobCodeListComponent {
17
+ constructor(coolMap, utils) {
18
+ this.coolMap = coolMap;
19
+ this.utils = utils;
20
+ this.loader = true;
21
+ this.type = '';
22
+ this.data = [];
23
+ this.currentNav = '';
24
+ this.emitroute = new EventEmitter();
25
+ this.showAllRoute = new EventEmitter();
26
+ this.preventMouseout = false;
27
+ this.filterList = this.data;
28
+ this.isDriverList = false;
29
+ this.selectedRoute = new SelectionModel(true, []);
30
+ this.preventListSelect = false;
31
+ this.clearJobDetailsFromList = new EventEmitter();
32
+ this.preventDetailsClose = false;
33
+ this.messageLoader = false;
34
+ this.driverMessage = new FormControl('', [Validators.maxLength(256)]);
35
+ this.isSmsList = false;
36
+ this.driverList = [];
37
+ }
38
+ ngOnInit() {
39
+ this.utils.getpreVentJobdetailclose.subscribe(res => { this.preventDetailsClose = res; });
40
+ this.utils.removeMapEntityUtility.subscribe((res) => { this.passRoute(res); });
41
+ }
42
+ passRoute(job) {
43
+ this.data.forEach((each) => { if (each['route_id'] !== job['route_id']) {
44
+ each['isActive'] = false;
45
+ }
46
+ else {
47
+ each['isActive'] = true;
48
+ } });
49
+ if (this.type == 'addroute')
50
+ this.filterList.forEach(ele => this.coolMap.filterRoute(ele['route_id'], 'none'));
51
+ }
52
+ selectRoute(route) {
53
+ if (!this.preventListSelect) {
54
+ this.preventListSelect = true;
55
+ this.selectedRoute.toggle(route);
56
+ this.clearJobDetailsFromList.emit(true);
57
+ this.utils.preVentJobdetailclose.next(false);
58
+ this.filterList.forEach(ele => this.coolMap.filterRoute(ele['job_id'], 'none'));
59
+ this.clearList();
60
+ this.selectedRoute.selected.forEach((ele, index) => {
61
+ this.coolMap.filterRoute(ele['job_id'], 'visible', ((this.selectedRoute.selected.length - 1) === index)).then(() => {
62
+ this.preventListSelect = false;
63
+ });
64
+ });
65
+ if (!this.selectedRoute.selected.length) {
66
+ this.preventListSelect = false;
67
+ this.data.forEach(ele => this.coolMap.filterRoute(ele['job_id'], 'visible'));
68
+ }
69
+ ;
70
+ }
71
+ }
72
+ checkroutes(route) {
73
+ const selectedRoute = this.selectedRoute.selected;
74
+ this.filterList = this.filterList.map(ele => { ele['isSelected'] = false; return ele; });
75
+ if (selectedRoute.length > 0) {
76
+ selectedRoute.forEach(ele => {
77
+ if (route['order_number'] === ele['order_number']) {
78
+ ele['isSelected'] = true;
79
+ }
80
+ });
81
+ }
82
+ return route;
83
+ }
84
+ ngOnChanges(changes) {
85
+ setTimeout(() => {
86
+ if (this.currentNav === 'Addroute' && (this.data.length < this.filterList.length)) {
87
+ const index = this.filterList.findIndex(ele => ele.isActive);
88
+ if (index > 0)
89
+ this.filterList[index].isActive = false;
90
+ this.data.forEach((ele, indexForData) => {
91
+ const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);
92
+ this.coolMap.plotRoute(ele, id, this.type, false, (indexForData === (this.data.length - 1))).then((res) => {
93
+ });
94
+ });
95
+ }
96
+ }, 500);
97
+ if (changes['data'] && changes['data']['currentValue']) {
98
+ this.filterList = changes['data']['currentValue'];
99
+ if (this.searchTerm) {
100
+ if (this.searchTerm.length > 0) {
101
+ this.data = this.utils.getSearchResults(changes['data']['currentValue'], this.searchTerm);
102
+ this.filterList = this.data;
103
+ }
104
+ else {
105
+ this.filterList = changes['data']['currentValue'];
106
+ }
107
+ }
108
+ if (this.type === 'jobcode') {
109
+ this.loader = true;
110
+ this.clearList();
111
+ if (this.filterList.length === 0)
112
+ this.loader = false;
113
+ }
114
+ if (this.type !== 'jobcode') {
115
+ if (changes['data']['previousValue'] && this.currentNav === 'addForm') {
116
+ const activeRoute = changes['data']['previousValue'].find((ele) => ele.isActive);
117
+ if (activeRoute) {
118
+ this.filterList.map((item) => {
119
+ if (item.route_id === activeRoute.route_id) {
120
+ item.isActive = true;
121
+ }
122
+ });
123
+ }
124
+ }
125
+ }
126
+ if (changes['data']['previousValue'] && this.currentNav !== 'addForm') {
127
+ this.coolMap.removeJobFromMap(changes['data']['previousValue']);
128
+ this.selectedRoute.clear();
129
+ }
130
+ ;
131
+ if (this.currentNav !== 'addForm') {
132
+ changes['data']['currentValue'].forEach((ele, indexForData) => {
133
+ const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);
134
+ this.coolMap.plotRoute(ele, id, this.type, false, (indexForData === (this.data.length - 1))).then((res) => {
135
+ if (indexForData === (this.data.length - 1)) {
136
+ this.loader = false;
137
+ this.utils.preventnavChange.next(true);
138
+ }
139
+ });
140
+ });
141
+ }
142
+ }
143
+ if (changes['searchTerm']) {
144
+ if (this.filterList) {
145
+ this.data = this.filterList;
146
+ this.clearList();
147
+ if (changes['searchTerm']['currentValue'].length > 0) {
148
+ this.coolMap.removeRouteAndMarker(1);
149
+ this.data = this.utils.getSearchResults(this.data, changes['searchTerm']['currentValue']);
150
+ }
151
+ else {
152
+ this.data = this.filterList;
153
+ }
154
+ setTimeout(() => {
155
+ this.coolMap.clearBoundWithCordinates();
156
+ if (this.currentNav !== 'addForm' && !this.selectedRoute['selected'].length) {
157
+ this.coolMap.removeRouteAndMarker(1);
158
+ this.toggleFilterRoute(this.filterList);
159
+ }
160
+ }, 500);
161
+ if (this.currentNav !== 'addForm' && this.selectedRoute['selected'].length) {
162
+ if (this.data && this.data.length > 0) {
163
+ this.clearList();
164
+ this.clearJobDetailsFromList.emit(true);
165
+ this.coolMap.removeJobFromMap(this.selectedRoute.selected);
166
+ setTimeout(() => {
167
+ this.data.forEach((ele, indexForData) => {
168
+ this.coolMap.plotRoute(ele, ele['job_id'], this.type, false, (indexForData === (this.data.length - 1))).then(() => {
169
+ if (indexForData === (this.data.length - 1)) {
170
+ this.loader = false;
171
+ this.utils.preventnavChange.next(true);
172
+ }
173
+ if (this.selectedRoute['selected'].length && this.selectedRoute['selected'][0]['job_id'] === ele['job_id']) {
174
+ this.selectedRoute.clear();
175
+ }
176
+ });
177
+ });
178
+ }, 500);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ showRoute() {
185
+ this.utils.preventnavChange.next(false);
186
+ this.loader = true;
187
+ this.clearList();
188
+ this.showAllRoute.emit(true);
189
+ if (this.filterList && this.filterList.length > 0) {
190
+ this.coolMap.removeJobFromMap(this.selectedRoute.selected);
191
+ setTimeout(() => {
192
+ this.filterList.forEach((ele, indexForData) => {
193
+ this.coolMap.plotRoute(ele, ele['job_id'], this.type, false, (indexForData === this.filterList.length - 1)).then(() => {
194
+ if (indexForData === this.filterList.length - 1) {
195
+ this.loader = false;
196
+ this.utils.preventnavChange.next(true);
197
+ }
198
+ if (this.selectedRoute['selected'].length && this.selectedRoute['selected'][0]['job_id'] === ele['job_id']) {
199
+ this.selectedRoute.clear();
200
+ }
201
+ });
202
+ });
203
+ }, 500);
204
+ }
205
+ }
206
+ toggleDrivermenu(event) {
207
+ const mouseevntType = event.mouseevntType;
208
+ let route = event.route;
209
+ const isHoverOut = event.isHoverOut;
210
+ if (typeof (mouseevntType) === 'string') {
211
+ if (this.preventMouseout) {
212
+ this.isDriverList = !this.isDriverList;
213
+ }
214
+ ;
215
+ this.preventMouseout = true;
216
+ }
217
+ if (typeof (mouseevntType) === 'boolean' && !mouseevntType && !this.preventMouseout) {
218
+ this.isDriverList = mouseevntType;
219
+ }
220
+ ;
221
+ if (typeof (mouseevntType) === 'boolean' && mouseevntType && !this.preventMouseout) {
222
+ this.isDriverList = mouseevntType;
223
+ }
224
+ ;
225
+ if (this.preventMouseout && !this.isDriverList)
226
+ this.preventMouseout = false;
227
+ if (isHoverOut) {
228
+ if (this.preventMouseout) {
229
+ route = this.utils.getdictValue('driver-details');
230
+ this.driverList = route;
231
+ }
232
+ if (!this.preventMouseout) {
233
+ this.driverList = route;
234
+ }
235
+ }
236
+ else {
237
+ this.driverList = route;
238
+ }
239
+ }
240
+ visiblesection(value) { if (this.type === value) {
241
+ return true;
242
+ }
243
+ else
244
+ return false; }
245
+ toggleFilterRoute(filterList) {
246
+ filterList.forEach((ele) => {
247
+ const filterItem = (this.type === 'jobcode') ? 'job_id' : 'route_id';
248
+ const index = this.data.findIndex((ele1) => { return (ele1[`${filterItem}`] === ele[`${filterItem}`]); });
249
+ const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);
250
+ if (id && index < 0)
251
+ this.coolMap.filterRoute(id, 'none');
252
+ if (id && index >= 0) {
253
+ this.data[index].isActive = false;
254
+ this.coolMap.filterRoute(id, 'visible');
255
+ this.coolMap.extendBound(ele['path'], (index === (this.data.length - 1)));
256
+ }
257
+ ;
258
+ });
259
+ }
260
+ clearList() {
261
+ this.isDriverList = false;
262
+ this.driverList = null;
263
+ this.preventMouseout = false;
264
+ this.isSmsList = false;
265
+ }
266
+ sendMessage() {
267
+ this.messageLoader = true;
268
+ if (this.driverMessage.valid) {
269
+ const data = {
270
+ order_number: this.driverList['order_number'],
271
+ date: this.driverList['date'],
272
+ message: this.driverMessage.value,
273
+ };
274
+ this.utils.postdata('coolmap/jobs_report_chat', data).subscribe((res) => {
275
+ if (res['data']['status'] === 'Success.') {
276
+ this.messageLoader = false;
277
+ this.driverMessage.reset();
278
+ this.utils.openSnackBar('Message Sent', 'success');
279
+ }
280
+ else {
281
+ this.messageLoader = false;
282
+ this.utils.openSnackBar('Message not sent', 'error');
283
+ }
284
+ }, err => { if (err) {
285
+ this.messageLoader = false;
286
+ } });
287
+ }
288
+ }
289
+ }
290
+ RouteJobCodeListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouteJobCodeListComponent, deps: [{ token: i1.CoolmapService }, { token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
291
+ RouteJobCodeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RouteJobCodeListComponent, selector: "app-route-jobcode-list", inputs: { loader: "loader", type: "type", data: "data", currentNav: "currentNav", searchTerm: "searchTerm", clearListSeletion: "clearListSeletion" }, outputs: { emitroute: "emitroute", showAllRoute: "showAllRoute", clearJobDetailsFromList: "clearJobDetailsFromList" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"scrollprt addroutelist\" [class.viewroute]=\"visiblesection('addroute')\"\n [class.jobList]=\"visiblesection('jobcode')\">\n <button (click)=\"showRoute()\" [disabled]=\"loader\" *ngIf=\"selectedRoute.selected.length\" class=\"show_routebtn\">Show all\n route</button>\n <perfect-scrollbar [class.jobscroll]=\"visiblesection('jobcode')\">\n <mat-spinner *ngIf=\"loader\"></mat-spinner>\n <ul *ngIf=\"!loader && data.length > 0\">\n <li [class.active]=\"route['isActive'] && visiblesection('addroute')\" *ngFor=\"let route of data\">\n <app-job-code-list-card *ngIf=\"visiblesection('jobcode')\" (toggleDrivermenu)=\"toggleDrivermenu($event)\"\n (routeSeletion)=\"selectRoute($event)\" [preventCloseDetails]=\"preventDetailsClose\" [emitJobdetails]=\"{emitroute, clearJobDetailsFromList}\" [route]=\"checkroutes(route)\"></app-job-code-list-card>\n <app-view-route-list-card [emitrouteevent]=\"emitroute\" *ngIf=\"visiblesection('addroute')\"\n [route]=\"route\"></app-view-route-list-card>\n </li>\n </ul>\n <p *ngIf=\"!loader && data.length === 0\">{{visiblesection('addroute') ? 'No Route found' : 'No Job code found.'}}</p>\n </perfect-scrollbar>\n</div>\n\n<div class=\"driver_list\" *ngIf=\"isDriverList\">\n <div class=\"driver_headingprt\">\n <h2>Driver List</h2>\n <button *ngIf=\"driverList.driver_list?.length > 0\" (click)=\"isSmsList = true\">SMS</button>\n <div class=\"closebtn\" (click)=\"isDriverList = false; preventMouseout = false; isSmsList = false\">\n <mat-icon>clear</mat-icon>\n </div>\n </div>\n <ul class=\"driverList\" *ngIf=\"driverList && driverList.driver_list\">\n <li *ngFor=\"let driver of driverList?.driver_list\">\n <img src=\"assets/images/driver_icon.png\" [alt]=\"driver['driver_name']\" />\n <div class=\"driver_detail\">\n <b>{{driver['driver_name']}}</b> <span>{{driver['trucking_company']}}</span>\n <div class=\"cont_del\">\n <small>Driver contact: <b>{{driver['driver_phone'] ? driver['driver_phone'] : 'N/A'}}</b></small>\n <small>Company contact: <b>{{driver['trucking_company_phone'] ? driver['trucking_company_phone'] : 'N/A'}}</b></small>\n </div>\n </div>\n </li>\n <p *ngIf=\"driverList.driver_list?.length === 0\" style=\"font-weight:700; text-align:center;\">\n No Driver found\n </p>\n </ul>\n <div class=\"smslist\" *ngIf=\"isSmsList\">\n <div class=\"heading\">\n <h2>SMS All Drivers</h2>\n <div class=\"closebtn\" (click)=\"isSmsList = false\">\n <mat-icon>clear</mat-icon>\n </div>\n </div>\n <div class=\"detailprt\">\n <app-sms-card-details-overview [jobValue]=\"driverList\"></app-sms-card-details-overview>\n <div class=\"form_input\">\n <mat-form-field class=\"example-full-width\">\n <textarea matInput placeholder=\"Text here...\" autocomplete=\"nope\" column=\"10\"\n [formControl]=\"driverMessage\"></textarea>\n <mat-hint>{{driverMessage.value?.length}} / 256</mat-hint>\n </mat-form-field>\n <button *ngIf=\"!messageLoader\" [disabled]=\"!driverMessage.value || driverMessage.invalid\" (click)=\"sendMessage()\">\n Send SMS\n </button>\n </div>\n </div>\n <div class=\"loader\">\n <mat-spinner *ngIf=\"messageLoader\"></mat-spinner>\n </div>\n </div>\n</div>\n", styles: [".driver_iconprt{position:absolute;right:10px;top:12px;z-index:9999}.driver_iconprt img{width:25px;height:25px}.driver_list{background:white;position:fixed;width:300px;top:10px;left:360px;border-top-left-radius:20px;border-top-right-radius:20px}.driver_list .driver_headingprt{display:flex;justify-content:space-between;align-items:center;padding:0 15px}.driver_list .driver_headingprt button{background:none;border:1px solid #ccc;border-radius:10px;padding:5px 20px}.driver_list .driver_headingprt button:hover{background:#326ad3;color:#fff}.driver_list h2{font-size:20px}.driver_list .driverList{height:300px;overflow:auto}.driver_list .driverList li{display:flex;padding:10px;align-items:flex-start;cursor:pointer;border-bottom:1px solid white;background:#eee}.driver_list .driverList li img{width:35px;height:35px;border-radius:100%;margin-right:10px}.driver_list .driverList li .driver_detail{width:calc(100% - 45px);display:flex;flex-direction:column;justify-content:flex-start}.driver_list .driverList li .driver_detail b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px;font-size:.9rem}.driver_list .driverList li .driver_detail span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;font-size:.8rem}.driver_list:after{height:10px;background:white;border-bottom-right-radius:20px;border-bottom-left-radius:20px;content:\"\";position:absolute;bottom:-9px;width:100%}.smslist{background:white;position:absolute;width:480px;top:0;left:105%;border-radius:20px;padding-bottom:20px}.smslist .heading{display:flex;justify-content:space-between;align-items:center;padding:0 15px}.smslist .detailprt{padding:0 15px}.smslist .detailprt span{display:flex;margin-bottom:12px;font-size:.8rem;align-items:center}.smslist .detailprt span label{font-weight:600;width:37%}.smslist .detailprt .form_input{display:flex;flex-direction:column;font-size:.8rem}.smslist .detailprt .form_input button{background:#326ad3;padding:10px 18px;color:#fff;font-size:.8125rem;border-radius:30px;display:flex;align-self:flex-end}.closebtn{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}.show_routebtn{font-size:.9rem;margin-bottom:20px;padding:6px 11px;position:absolute;top:8px;right:10px;background-color:transparent;color:#3f51b5;border:1px solid #3f51b5;border-radius:10px;box-shadow:none}.show_routebtn:hover{background-color:#3f51b5;color:#fff}.cont_del{margin-top:10px}.cont_del small{display:block}.jobList ul{margin:0 15px 0 10px;width:100%}.jobList ul li{position:relative;background:#fbfbfb;padding:10px;border-radius:15px;margin-bottom:5px;border:1px solid #fbfbfb;border-left:3px solid #fbfbfb;cursor:pointer;height:inherit}@media (min-width: 2500px){.jobList ul li{height:7.65vh}}@media (min-width: 3300px){.jobList ul li{height:5.61vh}}.viewroute ul{margin:0 15px;width:100%}.viewroute ul li{position:relative;background:#fbfbfb;padding:7px 10px;border-radius:15px;margin-bottom:5px;border:1px solid #fbfbfb;border-left:3px solid #fbfbfb;cursor:pointer}.viewroute ul li.active{border:1px solid #39c471;border-left:3px solid #39c471}.loader{position:absolute;height:100%;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}\n"], 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.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: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.PerfectScrollbarComponent, selector: "perfect-scrollbar", inputs: ["disabled", "usePSClass", "autoPropagation", "scrollIndicators", "config"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }, { kind: "component", type: i9.ViewRouteListCardComponent, selector: "app-view-route-list-card", inputs: ["route", "emitrouteevent"] }, { kind: "component", type: i10.SmsCardDetailsOverviewComponent, selector: "app-sms-card-details-overview", inputs: ["jobValue"] }, { kind: "component", type: i11.JobCodeListCardComponent, selector: "app-job-code-list-card", inputs: ["route", "emitJobdetails", "preventCloseDetails"], outputs: ["routeSeletion", "toggleDrivermenu"] }] });
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouteJobCodeListComponent, decorators: [{
293
+ type: Component,
294
+ args: [{ selector: 'app-route-jobcode-list', template: "<div class=\"scrollprt addroutelist\" [class.viewroute]=\"visiblesection('addroute')\"\n [class.jobList]=\"visiblesection('jobcode')\">\n <button (click)=\"showRoute()\" [disabled]=\"loader\" *ngIf=\"selectedRoute.selected.length\" class=\"show_routebtn\">Show all\n route</button>\n <perfect-scrollbar [class.jobscroll]=\"visiblesection('jobcode')\">\n <mat-spinner *ngIf=\"loader\"></mat-spinner>\n <ul *ngIf=\"!loader && data.length > 0\">\n <li [class.active]=\"route['isActive'] && visiblesection('addroute')\" *ngFor=\"let route of data\">\n <app-job-code-list-card *ngIf=\"visiblesection('jobcode')\" (toggleDrivermenu)=\"toggleDrivermenu($event)\"\n (routeSeletion)=\"selectRoute($event)\" [preventCloseDetails]=\"preventDetailsClose\" [emitJobdetails]=\"{emitroute, clearJobDetailsFromList}\" [route]=\"checkroutes(route)\"></app-job-code-list-card>\n <app-view-route-list-card [emitrouteevent]=\"emitroute\" *ngIf=\"visiblesection('addroute')\"\n [route]=\"route\"></app-view-route-list-card>\n </li>\n </ul>\n <p *ngIf=\"!loader && data.length === 0\">{{visiblesection('addroute') ? 'No Route found' : 'No Job code found.'}}</p>\n </perfect-scrollbar>\n</div>\n\n<div class=\"driver_list\" *ngIf=\"isDriverList\">\n <div class=\"driver_headingprt\">\n <h2>Driver List</h2>\n <button *ngIf=\"driverList.driver_list?.length > 0\" (click)=\"isSmsList = true\">SMS</button>\n <div class=\"closebtn\" (click)=\"isDriverList = false; preventMouseout = false; isSmsList = false\">\n <mat-icon>clear</mat-icon>\n </div>\n </div>\n <ul class=\"driverList\" *ngIf=\"driverList && driverList.driver_list\">\n <li *ngFor=\"let driver of driverList?.driver_list\">\n <img src=\"assets/images/driver_icon.png\" [alt]=\"driver['driver_name']\" />\n <div class=\"driver_detail\">\n <b>{{driver['driver_name']}}</b> <span>{{driver['trucking_company']}}</span>\n <div class=\"cont_del\">\n <small>Driver contact: <b>{{driver['driver_phone'] ? driver['driver_phone'] : 'N/A'}}</b></small>\n <small>Company contact: <b>{{driver['trucking_company_phone'] ? driver['trucking_company_phone'] : 'N/A'}}</b></small>\n </div>\n </div>\n </li>\n <p *ngIf=\"driverList.driver_list?.length === 0\" style=\"font-weight:700; text-align:center;\">\n No Driver found\n </p>\n </ul>\n <div class=\"smslist\" *ngIf=\"isSmsList\">\n <div class=\"heading\">\n <h2>SMS All Drivers</h2>\n <div class=\"closebtn\" (click)=\"isSmsList = false\">\n <mat-icon>clear</mat-icon>\n </div>\n </div>\n <div class=\"detailprt\">\n <app-sms-card-details-overview [jobValue]=\"driverList\"></app-sms-card-details-overview>\n <div class=\"form_input\">\n <mat-form-field class=\"example-full-width\">\n <textarea matInput placeholder=\"Text here...\" autocomplete=\"nope\" column=\"10\"\n [formControl]=\"driverMessage\"></textarea>\n <mat-hint>{{driverMessage.value?.length}} / 256</mat-hint>\n </mat-form-field>\n <button *ngIf=\"!messageLoader\" [disabled]=\"!driverMessage.value || driverMessage.invalid\" (click)=\"sendMessage()\">\n Send SMS\n </button>\n </div>\n </div>\n <div class=\"loader\">\n <mat-spinner *ngIf=\"messageLoader\"></mat-spinner>\n </div>\n </div>\n</div>\n", styles: [".driver_iconprt{position:absolute;right:10px;top:12px;z-index:9999}.driver_iconprt img{width:25px;height:25px}.driver_list{background:white;position:fixed;width:300px;top:10px;left:360px;border-top-left-radius:20px;border-top-right-radius:20px}.driver_list .driver_headingprt{display:flex;justify-content:space-between;align-items:center;padding:0 15px}.driver_list .driver_headingprt button{background:none;border:1px solid #ccc;border-radius:10px;padding:5px 20px}.driver_list .driver_headingprt button:hover{background:#326ad3;color:#fff}.driver_list h2{font-size:20px}.driver_list .driverList{height:300px;overflow:auto}.driver_list .driverList li{display:flex;padding:10px;align-items:flex-start;cursor:pointer;border-bottom:1px solid white;background:#eee}.driver_list .driverList li img{width:35px;height:35px;border-radius:100%;margin-right:10px}.driver_list .driverList li .driver_detail{width:calc(100% - 45px);display:flex;flex-direction:column;justify-content:flex-start}.driver_list .driverList li .driver_detail b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px;font-size:.9rem}.driver_list .driverList li .driver_detail span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;font-size:.8rem}.driver_list:after{height:10px;background:white;border-bottom-right-radius:20px;border-bottom-left-radius:20px;content:\"\";position:absolute;bottom:-9px;width:100%}.smslist{background:white;position:absolute;width:480px;top:0;left:105%;border-radius:20px;padding-bottom:20px}.smslist .heading{display:flex;justify-content:space-between;align-items:center;padding:0 15px}.smslist .detailprt{padding:0 15px}.smslist .detailprt span{display:flex;margin-bottom:12px;font-size:.8rem;align-items:center}.smslist .detailprt span label{font-weight:600;width:37%}.smslist .detailprt .form_input{display:flex;flex-direction:column;font-size:.8rem}.smslist .detailprt .form_input button{background:#326ad3;padding:10px 18px;color:#fff;font-size:.8125rem;border-radius:30px;display:flex;align-self:flex-end}.closebtn{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}.show_routebtn{font-size:.9rem;margin-bottom:20px;padding:6px 11px;position:absolute;top:8px;right:10px;background-color:transparent;color:#3f51b5;border:1px solid #3f51b5;border-radius:10px;box-shadow:none}.show_routebtn:hover{background-color:#3f51b5;color:#fff}.cont_del{margin-top:10px}.cont_del small{display:block}.jobList ul{margin:0 15px 0 10px;width:100%}.jobList ul li{position:relative;background:#fbfbfb;padding:10px;border-radius:15px;margin-bottom:5px;border:1px solid #fbfbfb;border-left:3px solid #fbfbfb;cursor:pointer;height:inherit}@media (min-width: 2500px){.jobList ul li{height:7.65vh}}@media (min-width: 3300px){.jobList ul li{height:5.61vh}}.viewroute ul{margin:0 15px;width:100%}.viewroute ul li{position:relative;background:#fbfbfb;padding:7px 10px;border-radius:15px;margin-bottom:5px;border:1px solid #fbfbfb;border-left:3px solid #fbfbfb;cursor:pointer}.viewroute ul li.active{border:1px solid #39c471;border-left:3px solid #39c471}.loader{position:absolute;height:100%;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}\n"] }]
295
+ }], ctorParameters: function () { return [{ type: i1.CoolmapService }, { type: i1.UtilsService }]; }, propDecorators: { loader: [{
296
+ type: Input
297
+ }], type: [{
298
+ type: Input
299
+ }], data: [{
300
+ type: Input
301
+ }], currentNav: [{
302
+ type: Input
303
+ }], emitroute: [{
304
+ type: Output
305
+ }], showAllRoute: [{
306
+ type: Output
307
+ }], searchTerm: [{
308
+ type: Input
309
+ }], clearJobDetailsFromList: [{
310
+ type: Output
311
+ }], clearListSeletion: [{
312
+ type: Input
313
+ }] } });
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtam9iY29kZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvcm91dGUtam9iY29kZS1saXN0L3JvdXRlLWpvYmNvZGUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L3JvdXRlLWpvYmNvZGUtbGlzdC9yb3V0ZS1qb2Jjb2RlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyx5QkFBeUI7SUFvQnBDLFlBQW9CLE9BQXVCLEVBQVUsS0FBbUI7UUFBcEQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBbkIvRCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGVBQVUsR0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRWhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsSUFBSSxjQUFjLENB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QyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxVQUFVLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQ3BEO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDdEQ7WUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRSxJQUFHLEdBQUcsRUFBRTtnQkFBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTthQUFDLENBQUEsQ0FBQyxDQUFDLENBQUE7U0FDbEQ7SUFFSixDQUFDOzt1SEEvTlcseUJBQXlCOzJHQUF6Qix5QkFBeUIsZ1dDVnRDLGsyR0FrRUE7NEZEeERhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7Z0lBS3pCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUdFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0ksdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUlFLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb29sbWFwU2VydmljZSwgUm91dGUsIFV0aWxzU2VydmljZSB9IGZyb20gJ2Nvb2xtYXAtc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcm91dGUtam9iY29kZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JvdXRlLWpvYmNvZGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JvdXRlLWpvYmNvZGUtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlSm9iQ29kZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGxvYWRlciA9IHRydWU7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkYXRhOiBSb3V0ZVtdID0gW107XG4gIEBJbnB1dCgpIGN1cnJlbnROYXY6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgZW1pdHJvdXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvd0FsbFJvdXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcmV2ZW50TW91c2VvdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyTGlzdDogUm91dGVbXSA9IHRoaXMuZGF0YTtcbiAgQElucHV0KCkgc2VhcmNoVGVybSE6IGFueTtcbiAgaXNEcml2ZXJMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWxlY3RlZFJvdXRlID0gbmV3IFNlbGVjdGlvbk1vZGVsPGFueT4odHJ1ZSwgW10pXG4gIGRyaXZlckxpc3QhOiBhbnk7XG4gIHByZXZlbnRMaXN0U2VsZWN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjbGVhckpvYkRldGFpbHNGcm9tTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJldmVudERldGFpbHNDbG9zZSA9IGZhbHNlO1xuICBtZXNzYWdlTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGRyaXZlck1lc3NhZ2UgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXSk7XG4gIEBJbnB1dCgpIGNsZWFyTGlzdFNlbGV0aW9uOiBib29sZWFuO1xuICBpc1Ntc0xpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb29sTWFwOiBDb29sbWFwU2VydmljZSwgcHJpdmF0ZSB1dGlsczogVXRpbHNTZXJ2aWNlKSB7IHRoaXMuZHJpdmVyTGlzdCA9IFtdIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51dGlscy5nZXRwcmVWZW50Sm9iZGV0YWlsY2xvc2Uuc3Vic2NyaWJlKHJlcyA9PiB7IHRoaXMucHJldmVudERldGFpbHNDbG9zZSA9IHJlcyB9KTtcbiAgICB0aGlzLnV0aWxzLnJlbW92ZU1hcEVudGl0eVV0aWxpdHkuc3Vic2NyaWJlKChyZXM6IFJvdXRlKSA9PiB7dGhpcy5wYXNzUm91dGUocmVzKX0pO1xuICB9XG4gIHBhc3NSb3V0ZShqb2I6IFJvdXRlKSB7XG4gICAgdGhpcy5kYXRhLmZvckVhY2goKGVhY2gpID0+IHsgaWYgKGVhY2hbJ3JvdXRlX2lkJ10gIT09IGpvYlsncm91dGVfaWQnXSkgeyBlYWNoWydpc0FjdGl2ZSddID0gZmFsc2UgfSBlbHNlIHsgZWFjaFsnaXNBY3RpdmUnXSA9IHRydWUgfSB9KTtcbiAgICBpZiAodGhpcy50eXBlID09ICdhZGRyb3V0ZScpIHRoaXMuZmlsdGVyTGlzdC5mb3JFYWNoKGVsZSA9PiB0aGlzLmNvb2xNYXAuZmlsdGVyUm91dGUoZWxlWydyb3V0ZV9pZCddLCAnbm9uZScpKTtcbiAgfVxuICBzZWxlY3RSb3V0ZShyb3V0ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRMaXN0U2VsZWN0KSB7XG4gICAgICB0aGlzLnByZXZlbnRMaXN0U2VsZWN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS50b2dnbGUocm91dGUpO1xuICAgICAgdGhpcy5jbGVhckpvYkRldGFpbHNGcm9tTGlzdC5lbWl0KHRydWUpO1xuICAgICAgdGhpcy51dGlscy5wcmVWZW50Sm9iZGV0YWlsY2xvc2UubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmZpbHRlckxpc3QuZm9yRWFjaChlbGUgPT4gdGhpcy5jb29sTWFwLmZpbHRlclJvdXRlKGVsZVsnam9iX2lkJ10sICdub25lJykpO1xuICAgICAgdGhpcy5jbGVhckxpc3QoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5zZWxlY3RlZC5mb3JFYWNoKChlbGUsIGluZGV4KSA9PiB7XG4gICAgICAgIHRoaXMuY29vbE1hcC5maWx0ZXJSb3V0ZShlbGVbJ2pvYl9pZCddLCAndmlzaWJsZScsICgodGhpcy5zZWxlY3RlZFJvdXRlLnNlbGVjdGVkLmxlbmd0aCAtIDEpID09PSBpbmRleCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJldmVudExpc3RTZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkUm91dGUuc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucHJldmVudExpc3RTZWxlY3QgPSBmYWxzZVxuICAgICAgICB0aGlzLmRhdGEuZm9yRWFjaChlbGUgPT4gdGhpcy5jb29sTWFwLmZpbHRlclJvdXRlKGVsZVsnam9iX2lkJ10sICd2aXNpYmxlJykpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgY2hlY2tyb3V0ZXMocm91dGU6IFJvdXRlKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3V0ZSA9IHRoaXMuc2VsZWN0ZWRSb3V0ZS5zZWxlY3RlZDtcbiAgICB0aGlzLmZpbHRlckxpc3QgPSB0aGlzLmZpbHRlckxpc3QubWFwKGVsZSA9PiB7IGVsZVsnaXNTZWxlY3RlZCddID0gZmFsc2U7IHJldHVybiBlbGUgfSlcbiAgICBpZiAoc2VsZWN0ZWRSb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvdXRlLmZvckVhY2goZWxlID0+IHtcbiAgICAgICAgaWYgKHJvdXRlWydvcmRlcl9udW1iZXInXSA9PT0gZWxlWydvcmRlcl9udW1iZXInXSkgeyBlbGVbJ2lzU2VsZWN0ZWQnXSA9IHRydWUgfVxuICAgICAgfSk7XG4gICAgfSByZXR1cm4gcm91dGVcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50TmF2ID09PSAnQWRkcm91dGUnICYmICh0aGlzLmRhdGEubGVuZ3RoIDwgdGhpcy5maWx0ZXJMaXN0Lmxlbmd0aCkpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlckxpc3QuZmluZEluZGV4KGVsZSA9PiBlbGUuaXNBY3RpdmUpO1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB0aGlzLmZpbHRlckxpc3RbaW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGF0YS5mb3JFYWNoKChlbGU6IFJvdXRlLCBpbmRleEZvckRhdGE6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkID0gKGVsZVsnam9iX2lkJ10gPyBlbGVbJ2pvYl9pZCddIDogZWxlWydyb3V0ZV9pZCddKVxuICAgICAgICAgIHRoaXMuY29vbE1hcC5wbG90Um91dGUoZWxlLCBpZCwgdGhpcy50eXBlLCBmYWxzZSwgKGluZGV4Rm9yRGF0YSA9PT0gKHRoaXMuZGF0YS5sZW5ndGggLSAxKSkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgY2hhbmdlc1snZGF0YSddWydjdXJyZW50VmFsdWUnXSkge1xuICAgICAgdGhpcy5maWx0ZXJMaXN0ID0gY2hhbmdlc1snZGF0YSddWydjdXJyZW50VmFsdWUnXTtcbiAgICAgIGlmICh0aGlzLnNlYXJjaFRlcm0pIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybS5sZW5ndGggPiAwKSB7XG5cbiAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLnV0aWxzLmdldFNlYXJjaFJlc3VsdHMoY2hhbmdlc1snZGF0YSddWydjdXJyZW50VmFsdWUnXSwgdGhpcy5zZWFyY2hUZXJtKTtcbiAgICAgICAgICB0aGlzLmZpbHRlckxpc3QgPSB0aGlzLmRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJMaXN0ID0gY2hhbmdlc1snZGF0YSddWydjdXJyZW50VmFsdWUnXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50eXBlID09PSAnam9iY29kZScpIHtcbiAgICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlOyB0aGlzLmNsZWFyTGlzdCgpO1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJMaXN0Lmxlbmd0aCA9PT0gMCkgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ2pvYmNvZGUnKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydkYXRhJ11bJ3ByZXZpb3VzVmFsdWUnXSAmJiB0aGlzLmN1cnJlbnROYXYgPT09ICdhZGRGb3JtJykge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZVJvdXRlID0gY2hhbmdlc1snZGF0YSddWydwcmV2aW91c1ZhbHVlJ10uZmluZCgoZWxlOiBSb3V0ZSkgPT4gZWxlLmlzQWN0aXZlKTtcbiAgICAgICAgICBpZiAoYWN0aXZlUm91dGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbS5yb3V0ZV9pZCA9PT0gYWN0aXZlUm91dGUucm91dGVfaWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzWydkYXRhJ11bJ3ByZXZpb3VzVmFsdWUnXSAmJiB0aGlzLmN1cnJlbnROYXYgIT09ICdhZGRGb3JtJykge1xuICAgICAgICB0aGlzLmNvb2xNYXAucmVtb3ZlSm9iRnJvbU1hcChjaGFuZ2VzWydkYXRhJ11bJ3ByZXZpb3VzVmFsdWUnXSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5jbGVhcigpO1xuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnROYXYgIT09ICdhZGRGb3JtJykge1xuICAgICAgICBjaGFuZ2VzWydkYXRhJ11bJ2N1cnJlbnRWYWx1ZSddLmZvckVhY2goKGVsZTogUm91dGUsIGluZGV4Rm9yRGF0YTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgaWQgPSAoZWxlWydqb2JfaWQnXSA/IGVsZVsnam9iX2lkJ10gOiBlbGVbJ3JvdXRlX2lkJ10pXG4gICAgICAgICAgdGhpcy5jb29sTWFwLnBsb3RSb3V0ZShlbGUsIGlkLCB0aGlzLnR5cGUsIGZhbHNlLCAoaW5kZXhGb3JEYXRhID09PSAodGhpcy5kYXRhLmxlbmd0aCAtIDEpKSkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXhGb3JEYXRhID09PSAodGhpcy5kYXRhLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMudXRpbHMucHJldmVudG5hdkNoYW5nZS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3NlYXJjaFRlcm0nXSkge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyTGlzdCkge1xuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmZpbHRlckxpc3Q7XG4gICAgICAgIHRoaXMuY2xlYXJMaXN0KCk7XG4gICAgICAgIGlmIChjaGFuZ2VzWydzZWFyY2hUZXJtJ11bJ2N1cnJlbnRWYWx1ZSddLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvb2xNYXAucmVtb3ZlUm91dGVBbmRNYXJrZXIoMSk7XG4gICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy51dGlscy5nZXRTZWFyY2hSZXN1bHRzKHRoaXMuZGF0YSwgY2hhbmdlc1snc2VhcmNoVGVybSddWydjdXJyZW50VmFsdWUnXSk7XG4gICAgICAgIH0gZWxzZSB7IHRoaXMuZGF0YSA9IHRoaXMuZmlsdGVyTGlzdDsgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNvb2xNYXAuY2xlYXJCb3VuZFdpdGhDb3JkaW5hdGVzKCk7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdiAhPT0gJ2FkZEZvcm0nICYmICF0aGlzLnNlbGVjdGVkUm91dGVbJ3NlbGVjdGVkJ10ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNvb2xNYXAucmVtb3ZlUm91dGVBbmRNYXJrZXIoMSk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlclJvdXRlKHRoaXMuZmlsdGVyTGlzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCA1MDApO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TmF2ICE9PSAnYWRkRm9ybScgJiYgdGhpcy5zZWxlY3RlZFJvdXRlWydzZWxlY3RlZCddLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJMaXN0KCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFySm9iRGV0YWlsc0Zyb21MaXN0LmVtaXQodHJ1ZSlcbiAgICAgICAgICAgIHRoaXMuY29vbE1hcC5yZW1vdmVKb2JGcm9tTWFwKHRoaXMuc2VsZWN0ZWRSb3V0ZS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goKGVsZSwgaW5kZXhGb3JEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb29sTWFwLnBsb3RSb3V0ZShlbGUsIGVsZVsnam9iX2lkJ10sIHRoaXMudHlwZSwgZmFsc2UsIChpbmRleEZvckRhdGEgPT09ICh0aGlzLmRhdGEubGVuZ3RoIC0gMSkpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChpbmRleEZvckRhdGEgPT09ICh0aGlzLmRhdGEubGVuZ3RoIC0gMSkpIHsgdGhpcy5sb2FkZXIgPSBmYWxzZTsgdGhpcy51dGlscy5wcmV2ZW50bmF2Q2hhbmdlLm5leHQodHJ1ZSkgfVxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3V0ZVsnc2VsZWN0ZWQnXS5sZW5ndGggJiYgdGhpcy5zZWxlY3RlZFJvdXRlWydzZWxlY3RlZCddWzBdWydqb2JfaWQnXSA9PT0gZWxlWydqb2JfaWQnXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm91dGUuY2xlYXIoKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc2hvd1JvdXRlKCkge1xuICAgIHRoaXMudXRpbHMucHJldmVudG5hdkNoYW5nZS5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7IHRoaXMuY2xlYXJMaXN0KCk7XG4gICAgdGhpcy5zaG93QWxsUm91dGUuZW1pdCh0cnVlKTtcbiAgICBpZiAodGhpcy5maWx0ZXJMaXN0ICYmIHRoaXMuZmlsdGVyTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvb2xNYXAucmVtb3ZlSm9iRnJvbU1hcCh0aGlzLnNlbGVjdGVkUm91dGUuc2VsZWN0ZWQpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTGlzdC5mb3JFYWNoKChlbGUsIGluZGV4Rm9yRGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29vbE1hcC5wbG90Um91dGUoZWxlLCBlbGVbJ2pvYl9pZCddLCB0aGlzLnR5cGUsIGZhbHNlLCAoaW5kZXhGb3JEYXRhID09PSB0aGlzLmZpbHRlckxpc3QubGVuZ3RoIC0gMSkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluZGV4Rm9yRGF0YSA9PT0gdGhpcy5maWx0ZXJMaXN0Lmxlbmd0aCAtIDEpIHsgdGhpcy5sb2FkZXIgPSBmYWxzZTsgdGhpcy51dGlscy5wcmV2ZW50bmF2Q2hhbmdlLm5leHQodHJ1ZSkgfVxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3V0ZVsnc2VsZWN0ZWQnXS5sZW5ndGggJiYgdGhpcy5zZWxlY3RlZFJvdXRlWydzZWxlY3RlZCddWzBdWydqb2JfaWQnXSA9PT0gZWxlWydqb2JfaWQnXSkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm91dGUuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG4gIHRvZ2dsZURyaXZlcm1lbnUoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG1vdXNlZXZudFR5cGUgPSBldmVudC5tb3VzZWV2bnRUeXBlOyBsZXQgcm91dGUgPSBldmVudC5yb3V0ZTtcbiAgICBjb25zdCBpc0hvdmVyT3V0ID0gZXZlbnQuaXNIb3Zlck91dDtcbiAgICBpZih0eXBlb2YobW91c2Vldm50VHlwZSkgPT09ICdzdHJpbmcnKSB7aWYodGhpcy5wcmV2ZW50TW91c2VvdXQpe3RoaXMuaXNEcml2ZXJMaXN0ID0gIXRoaXMuaXNEcml2ZXJMaXN0fTsgdGhpcy5wcmV2ZW50TW91c2VvdXQgPSB0cnVlfVxuICAgIGlmICh0eXBlb2YobW91c2Vldm50VHlwZSkgPT09ICdib29sZWFuJyAmJiFtb3VzZWV2bnRUeXBlICYmICF0aGlzLnByZXZlbnRNb3VzZW91dCkgeyB0aGlzLmlzRHJpdmVyTGlzdCA9IG1vdXNlZXZudFR5cGUgfTtcbiAgICBpZiAodHlwZW9mKG1vdXNlZXZudFR5cGUpID09PSAnYm9vbGVhbicgJiYgbW91c2Vldm50VHlwZSAmJiAhdGhpcy5wcmV2ZW50TW91c2VvdXQpIHsgdGhpcy5pc0RyaXZlckxpc3QgPSBtb3VzZWV2bnRUeXBlIH07XG4gICAgaWYodGhpcy5wcmV2ZW50TW91c2VvdXQgJiYgIXRoaXMuaXNEcml2ZXJMaXN0KSB0aGlzLnByZXZlbnRNb3VzZW91dCA9IGZhbHNlO1xuICAgIGlmIChpc0hvdmVyT3V0KSB7XG4gICAgICBpZiAodGhpcy5wcmV2ZW50TW91c2VvdXQpIHtcbiAgICAgICAgcm91dGUgPSB0aGlzLnV0aWxzLmdldGRpY3RWYWx1ZSgnZHJpdmVyLWRldGFpbHMnKTtcbiAgICAgICAgdGhpcy5kcml2ZXJMaXN0ID0gcm91dGU7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMucHJldmVudE1vdXNlb3V0KSB7XG4gICAgICAgIHRoaXMuZHJpdmVyTGlzdCA9IHJvdXRlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJpdmVyTGlzdCA9IHJvdXRlXG4gICAgfVxuICB9XG4gIHZpc2libGVzZWN0aW9uKHZhbHVlOiBzdHJpbmcpIHsgaWYgKHRoaXMudHlwZSA9PT0gdmFsdWUpIHsgcmV0dXJuIHRydWUgfSBlbHNlIHJldHVybiBmYWxzZSB9XG4gIHRvZ2dsZUZpbHRlclJvdXRlKGZpbHRlckxpc3Q6IFJvdXRlW10pIHtcbiAgICBmaWx0ZXJMaXN0LmZvckVhY2goKGVsZSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVySXRlbSA9ICh0aGlzLnR5cGUgPT09ICdqb2Jjb2RlJykgPyAnam9iX2lkJyA6ICdyb3V0ZV9pZCc7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5maW5kSW5kZXgoKGVsZTEpID0+IHsgcmV0dXJuIChlbGUxW2Ake2ZpbHRlckl0ZW19YF0gPT09IGVsZVtgJHtmaWx0ZXJJdGVtfWBdKSB9KTtcbiAgICAgIGNvbnN0IGlkID0gKGVsZVsnam9iX2lkJ10gPyBlbGVbJ2pvYl9pZCddIDogZWxlWydyb3V0ZV9pZCddKTtcbiAgICAgIGlmIChpZCAmJiBpbmRleCA8IDApIHRoaXMuY29vbE1hcC5maWx0ZXJSb3V0ZShpZCwgJ25vbmUnKTtcbiAgICAgIGlmIChpZCAmJiBpbmRleCA+PSAwKSB7XG4gICAgICAgIHRoaXMuZGF0YVtpbmRleF0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb29sTWFwLmZpbHRlclJvdXRlKGlkLCAndmlzaWJsZScpO1xuICAgICAgICB0aGlzLmNvb2xNYXAuZXh0ZW5kQm91bmQoZWxlWydwYXRoJ10sIChpbmRleCA9PT0gKHRoaXMuZGF0YS5sZW5ndGggLSAxKSkpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuICBjbGVhckxpc3QoKSB7XG4gICAgdGhpcy5pc0RyaXZlckxpc3QgPSBmYWxzZTsgdGhpcy5kcml2ZXJMaXN0ID0gbnVsbDsgdGhpcy5wcmV2ZW50TW91c2VvdXQgPSBmYWxzZTsgdGhpcy5pc1Ntc0xpc3QgPSBmYWxzZTtcbiAgfVxuICBzZW5kTWVzc2FnZSgpIHtcbiAgICB0aGlzLm1lc3NhZ2VMb2FkZXIgPSB0cnVlXG4gICAgaWYgKHRoaXMuZHJpdmVyTWVzc2FnZS52YWxpZCkge1xuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgb3JkZXJfbnVtYmVyOiB0aGlzLmRyaXZlckxpc3RbJ29yZGVyX251bWJlciddLFxuICAgICAgICBkYXRlOiB0aGlzLmRyaXZlckxpc3RbJ2RhdGUnXSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy5kcml2ZXJNZXNzYWdlLnZhbHVlLFxuICAgICAgfVxuICAgICAgdGhpcy51dGlscy5wb3N0ZGF0YSgnY29vbG1hcC9qb2JzX3JlcG9ydF9jaGF0JywgZGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzWydkYXRhJ11bJ3N0YXR1cyddID09PSAnU3VjY2Vzcy4nKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5kcml2ZXJNZXNzYWdlLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIoJ01lc3NhZ2UgU2VudCcsICdzdWNjZXNzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIoJ01lc3NhZ2Ugbm90IHNlbnQnLCAnZXJyb3InKTtcbiAgICAgICAgfVxuICAgICAgfSwgZXJyID0+IHtpZihlcnIpIHt0aGlzLm1lc3NhZ2VMb2FkZXIgPSBmYWxzZX19KVxuICAgIH1cblxuIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY3JvbGxwcnQgYWRkcm91dGVsaXN0XCIgW2NsYXNzLnZpZXdyb3V0ZV09XCJ2aXNpYmxlc2VjdGlvbignYWRkcm91dGUnKVwiXG4gIFtjbGFzcy5qb2JMaXN0XT1cInZpc2libGVzZWN0aW9uKCdqb2Jjb2RlJylcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd1JvdXRlKClcIiBbZGlzYWJsZWRdPVwibG9hZGVyXCIgKm5nSWY9XCJzZWxlY3RlZFJvdXRlLnNlbGVjdGVkLmxlbmd0aFwiIGNsYXNzPVwic2hvd19yb3V0ZWJ0blwiPlNob3cgYWxsXG4gICAgcm91dGU8L2J1dHRvbj5cbiAgPHBlcmZlY3Qtc2Nyb2xsYmFyIFtjbGFzcy5qb2JzY3JvbGxdPVwidmlzaWJsZXNlY3Rpb24oJ2pvYmNvZGUnKVwiPlxuICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImxvYWRlclwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPHVsICpuZ0lmPVwiIWxvYWRlciAmJiBkYXRhLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cInJvdXRlWydpc0FjdGl2ZSddICYmIHZpc2libGVzZWN0aW9uKCdhZGRyb3V0ZScpXCIgKm5nRm9yPVwibGV0IHJvdXRlIG9mIGRhdGFcIj5cbiAgICAgICAgPGFwcC1qb2ItY29kZS1saXN0LWNhcmQgKm5nSWY9XCJ2aXNpYmxlc2VjdGlvbignam9iY29kZScpXCIgKHRvZ2dsZURyaXZlcm1lbnUpPVwidG9nZ2xlRHJpdmVybWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAocm91dGVTZWxldGlvbik9XCJzZWxlY3RSb3V0ZSgkZXZlbnQpXCIgW3ByZXZlbnRDbG9zZURldGFpbHNdPVwicHJldmVudERldGFpbHNDbG9zZVwiIFtlbWl0Sm9iZGV0YWlsc109XCJ7ZW1pdHJvdXRlLCBjbGVhckpvYkRldGFpbHNGcm9tTGlzdH1cIiBbcm91dGVdPVwiY2hlY2tyb3V0ZXMocm91dGUpXCI+PC9hcHAtam9iLWNvZGUtbGlzdC1jYXJkPlxuICAgICAgICA8YXBwLXZpZXctcm91dGUtbGlzdC1jYXJkIFtlbWl0cm91dGVldmVudF09XCJlbWl0cm91dGVcIiAqbmdJZj1cInZpc2libGVzZWN0aW9uKCdhZGRyb3V0ZScpXCJcbiAgICAgICAgICBbcm91dGVdPVwicm91dGVcIj48L2FwcC12aWV3LXJvdXRlLWxpc3QtY2FyZD5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8cCAqbmdJZj1cIiFsb2FkZXIgJiYgZGF0YS5sZW5ndGggPT09IDBcIj57e3Zpc2libGVzZWN0aW9uKCdhZGRyb3V0ZScpID8gJ05vIFJvdXRlIGZvdW5kJyA6ICdObyBKb2IgY29kZSBmb3VuZC4nfX08L3A+XG4gIDwvcGVyZmVjdC1zY3JvbGxiYXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRyaXZlcl9saXN0XCIgKm5nSWY9XCJpc0RyaXZlckxpc3RcIj5cbiAgPGRpdiBjbGFzcz1cImRyaXZlcl9oZWFkaW5ncHJ0XCI+XG4gICAgPGgyPkRyaXZlciBMaXN0PC9oMj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiZHJpdmVyTGlzdC5kcml2ZXJfbGlzdD8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJpc1Ntc0xpc3QgPSB0cnVlXCI+U01TPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImNsb3NlYnRuXCIgKGNsaWNrKT1cImlzRHJpdmVyTGlzdCA9IGZhbHNlOyBwcmV2ZW50TW91c2VvdXQgPSBmYWxzZTsgaXNTbXNMaXN0ID0gZmFsc2VcIj5cbiAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8dWwgY2xhc3M9XCJkcml2ZXJMaXN0XCIgKm5nSWY9XCJkcml2ZXJMaXN0ICYmIGRyaXZlckxpc3QuZHJpdmVyX2xpc3RcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGRyaXZlciBvZiBkcml2ZXJMaXN0Py5kcml2ZXJfbGlzdFwiPlxuICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2RyaXZlcl9pY29uLnBuZ1wiIFthbHRdPVwiZHJpdmVyWydkcml2ZXJfbmFtZSddXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcml2ZXJfZGV0YWlsXCI+XG4gICAgICAgIDxiPnt7ZHJpdmVyWydkcml2ZXJfbmFtZSddfX08L2I+IDxzcGFuPnt7ZHJpdmVyWyd0cnVja2luZ19jb21wYW55J119fTwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRfZGVsXCI+XG4gICAgICAgICAgPHNtYWxsPkRyaXZlciBjb250YWN0OiA8Yj57e2RyaXZlclsnZHJpdmVyX3Bob25lJ10gPyBkcml2ZXJbJ2RyaXZlcl9waG9uZSddIDogJ04vQSd9fTwvYj48L3NtYWxsPlxuICAgICAgICAgIDxzbWFsbD5Db21wYW55IGNvbnRhY3Q6IDxiPnt7ZHJpdmVyWyd0cnVja2luZ19jb21wYW55X3Bob25lJ10gPyBkcml2ZXJbJ3RydWNraW5nX2NvbXBhbnlfcGhvbmUnXSA6ICdOL0EnfX08L2I+PC9zbWFsbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxwICpuZ0lmPVwiZHJpdmVyTGlzdC5kcml2ZXJfbGlzdD8ubGVuZ3RoID09PSAwXCIgc3R5bGU9XCJmb250LXdlaWdodDo3MDA7IHRleHQtYWxpZ246Y2VudGVyO1wiPlxuICAgICAgTm8gRHJpdmVyIGZvdW5kXG4gICAgPC9wPlxuICA8L3VsPlxuICA8ZGl2IGNsYXNzPVwic21zbGlzdFwiICpuZ0lmPVwiaXNTbXNMaXN0XCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5cbiAgICAgIDxoMj5TTVMgQWxsIERyaXZlcnM8L2gyPlxuICAgICAgPGRpdiBjbGFzcz1cImNsb3NlYnRuXCIgKGNsaWNrKT1cImlzU21zTGlzdCA9IGZhbHNlXCI+XG4gICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscHJ0XCI+XG4gICAgICA8YXBwLXNtcy1jYXJkLWRldGFpbHMtb3ZlcnZpZXcgW2pvYlZhbHVlXT1cImRyaXZlckxpc3RcIj48L2FwcC1zbXMtY2FyZC1kZXRhaWxzLW92ZXJ2aWV3PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1faW5wdXRcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZXhhbXBsZS1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiVGV4dCBoZXJlLi4uXCIgYXV0b2NvbXBsZXRlPVwibm9wZVwiIGNvbHVtbj1cIjEwXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkcml2ZXJNZXNzYWdlXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8bWF0LWhpbnQ+e3tkcml2ZXJNZXNzYWdlLnZhbHVlPy5sZW5ndGh9fSAvIDI1NjwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhbWVzc2FnZUxvYWRlclwiIFtkaXNhYmxlZF09XCIhZHJpdmVyTWVzc2FnZS52YWx1ZSB8fCBkcml2ZXJNZXNzYWdlLmludmFsaWRcIiAoY2xpY2spPVwic2VuZE1lc3NhZ2UoKVwiPlxuICAgICAgICAgIFNlbmQgU01TXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxvYWRlclwiPlxuICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwibWVzc2FnZUxvYWRlclwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { DriverSmsCardEnum, DriversmsCardKey } from 'coolmap-services';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class SmsCardDetailsOverviewComponent {
6
+ constructor() {
7
+ this.label = DriversmsCardKey;
8
+ this.overViewEnum = DriverSmsCardEnum;
9
+ }
10
+ }
11
+ SmsCardDetailsOverviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SmsCardDetailsOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ SmsCardDetailsOverviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SmsCardDetailsOverviewComponent, selector: "app-sms-card-details-overview", inputs: { jobValue: "jobValue" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of label\">\n <span>\n <label>{{overViewEnum[item]}}</label>\n <ng-container *ngIf=\"item !== 'values'\">{{jobValue[item] ? jobValue[item] : 'N/A'}}</ng-container>\n <ng-container *ngIf=\"item === 'values'\">{{jobValue[item]['Done'] + jobValue[item]['Ongoing'] + jobValue[item]['Open']}}</ng-container>\n </span>\n</ng-container>\n", styles: ["span{display:flex;margin-bottom:12px;font-size:.8rem;align-items:center}span label{font-weight:600;width:37%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SmsCardDetailsOverviewComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'app-sms-card-details-overview', template: "<ng-container *ngFor=\"let item of label\">\n <span>\n <label>{{overViewEnum[item]}}</label>\n <ng-container *ngIf=\"item !== 'values'\">{{jobValue[item] ? jobValue[item] : 'N/A'}}</ng-container>\n <ng-container *ngIf=\"item === 'values'\">{{jobValue[item]['Done'] + jobValue[item]['Ongoing'] + jobValue[item]['Open']}}</ng-container>\n </span>\n</ng-container>\n", styles: ["span{display:flex;margin-bottom:12px;font-size:.8rem;align-items:center}span label{font-weight:600;width:37%}\n"] }]
16
+ }], ctorParameters: function () { return []; }, propDecorators: { jobValue: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLWNhcmQtZGV0YWlscy1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L3JvdXRlLWpvYmNvZGUtbGlzdC9zbXMtY2FyZC1kZXRhaWxzLW92ZXJ2aWV3L3Ntcy1jYXJkLWRldGFpbHMtb3ZlcnZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvc21zLWNhcmQtZGV0YWlscy1vdmVydmlldy9zbXMtY2FyZC1kZXRhaWxzLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFRdkUsTUFBTSxPQUFPLCtCQUErQjtJQUkxQztRQUZBLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QixpQkFBWSxHQUFRLGlCQUFpQixDQUFDO0lBQ3RCLENBQUM7OzZIQUpOLCtCQUErQjtpSEFBL0IsK0JBQStCLHVHQ1Q1Qyx3WEFPQTs0RkRFYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsK0JBQStCOzBFQUtoQyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJpdmVyU21zQ2FyZEVudW0sIERyaXZlcnNtc0NhcmRLZXkgfSBmcm9tICdjb29sbWFwLXNlcnZpY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc21zLWNhcmQtZGV0YWlscy1vdmVydmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbXMtY2FyZC1kZXRhaWxzLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21zLWNhcmQtZGV0YWlscy1vdmVydmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNtc0NhcmREZXRhaWxzT3ZlcnZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBqb2JWYWx1ZTogYW55O1xuICBsYWJlbCA9IERyaXZlcnNtc0NhcmRLZXk7XG4gIG92ZXJWaWV3RW51bTogYW55ID0gRHJpdmVyU21zQ2FyZEVudW07XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGFiZWxcIj5cbiAgPHNwYW4+XG4gICAgPGxhYmVsPnt7b3ZlclZpZXdFbnVtW2l0ZW1dfX08L2xhYmVsPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtICE9PSAndmFsdWVzJ1wiPnt7am9iVmFsdWVbaXRlbV0gPyBqb2JWYWx1ZVtpdGVtXSA6ICdOL0EnfX08L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbSA9PT0gJ3ZhbHVlcydcIj57e2pvYlZhbHVlW2l0ZW1dWydEb25lJ10gKyBqb2JWYWx1ZVtpdGVtXVsnT25nb2luZyddICsgam9iVmFsdWVbaXRlbV1bJ09wZW4nXX19PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,29 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "coolmap-services";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/icon";
6
+ export class ViewRouteListCardComponent {
7
+ constructor(utils) {
8
+ this.utils = utils;
9
+ }
10
+ detailsDict(event, route) {
11
+ if (event === 'click')
12
+ this.utils.setdictValue('route-detailsv2', JSON.stringify(route));
13
+ route['type'] = 'editroute';
14
+ route['prevent'] = true;
15
+ this.emitrouteevent.emit(route);
16
+ this.utils.routeDetailsUtility.next({ event, route });
17
+ }
18
+ }
19
+ ViewRouteListCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ViewRouteListCardComponent, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
20
+ ViewRouteListCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ViewRouteListCardComponent, selector: "app-view-route-list-card", inputs: { route: "route", emitrouteevent: "emitrouteevent" }, ngImport: i0, template: "<div class=\"routebox\">\n <span>\n <mat-icon>directions</mat-icon>\n <h2 [ngClass]=\"{'routeheading': route['route_name']}\">\n {{route['route_name']}}\n </h2>\n </span>\n <h3>{{route['customer_name']}} | {{route['material']}}</h3>\n\n <div class=\"pickdropprt\">\n <div class=\"pickprt\">\n <b>\n <h4>{{route['pickup_location']}}</h4>\n </b>\n </div>\n <div class=\"dropprt\">\n <b>\n <h4>{{route['delivery_location']}}</h4>\n </b>\n </div>\n </div>\n <div class=\"infoicon\" (click)=\"detailsDict('click', route)\" (mouseover)=\"detailsDict(true, route)\"\n (mouseleave)=\"detailsDict(false, route)\">\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"status routestatus\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\n</div>\n\n\n\n", styles: [".routebox span{display:flex;align-items:center}.routebox span h2{margin-left:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;margin-bottom:5px;margin-top:5px;font-size:.95rem}.routebox h3{font-size:.85rem;color:#767676;font-weight:400;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:325px;margin-bottom:10px}.routebox .pickdropprt{font-size:.8125rem}.routebox .pickdropprt .pickprt{position:relative;display:flex;align-items:center;padding-bottom:6px}.routebox .pickdropprt .pickprt span{padding-left:0;padding-right:20px;display:block}.routebox .pickdropprt .pickprt b{position:relative;font-weight:400}.routebox .pickdropprt .pickprt b:after{background:black;width:1px;height:100%;left:3px;content:\"\";position:absolute;top:10px}.routebox .pickdropprt .pickprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:215px}@media (min-width: 1600px){.routebox .pickdropprt .pickprt h4{max-width:265px}}.routebox .pickdropprt .pickprt h4:before{background:black;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.routebox .pickdropprt .dropprt{position:relative;padding-bottom:10px;display:flex;align-items:center}.routebox .pickdropprt .dropprt span{padding-left:0;padding-right:20px;display:block}.routebox .pickdropprt .dropprt b{position:relative;font-weight:400}.routebox .pickdropprt .dropprt b:after{background:black;width:1px;height:12px;left:3px;content:\"\";position:absolute;top:-7px}.routebox .pickdropprt .dropprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:215px}.routebox .pickdropprt .dropprt h4:before{background:black;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.routebox .infoicon{position:absolute;right:10px;bottom:15px}.routebox .infoicon img{width:20px;height:20px}.routebox .status{position:absolute;border-radius:30px;top:12px;right:40px;font-size:0;color:#fff;text-transform:capitalize;font-weight:500;padding:3px 10px}.routebox .status.routestatus{right:10px;width:20px;height:20px;text-align:center;line-height:20px;padding:0 0 0 1px}.routebox .status.routestatus:first-letter{font-size:.8rem}@media (min-width: 1600px){.routebox .status.routestatus{padding:0;line-height:22px}}.routebox .status.Ton{background:#ff7272}.routebox .status.Load{background:#a3c52e}.routebox .status.Hourly{background:#ae23d1}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ViewRouteListCardComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-view-route-list-card', template: "<div class=\"routebox\">\n <span>\n <mat-icon>directions</mat-icon>\n <h2 [ngClass]=\"{'routeheading': route['route_name']}\">\n {{route['route_name']}}\n </h2>\n </span>\n <h3>{{route['customer_name']}} | {{route['material']}}</h3>\n\n <div class=\"pickdropprt\">\n <div class=\"pickprt\">\n <b>\n <h4>{{route['pickup_location']}}</h4>\n </b>\n </div>\n <div class=\"dropprt\">\n <b>\n <h4>{{route['delivery_location']}}</h4>\n </b>\n </div>\n </div>\n <div class=\"infoicon\" (click)=\"detailsDict('click', route)\" (mouseover)=\"detailsDict(true, route)\"\n (mouseleave)=\"detailsDict(false, route)\">\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\n </div>\n <div class=\"status routestatus\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\n</div>\n\n\n\n", styles: [".routebox span{display:flex;align-items:center}.routebox span h2{margin-left:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;margin-bottom:5px;margin-top:5px;font-size:.95rem}.routebox h3{font-size:.85rem;color:#767676;font-weight:400;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:325px;margin-bottom:10px}.routebox .pickdropprt{font-size:.8125rem}.routebox .pickdropprt .pickprt{position:relative;display:flex;align-items:center;padding-bottom:6px}.routebox .pickdropprt .pickprt span{padding-left:0;padding-right:20px;display:block}.routebox .pickdropprt .pickprt b{position:relative;font-weight:400}.routebox .pickdropprt .pickprt b:after{background:black;width:1px;height:100%;left:3px;content:\"\";position:absolute;top:10px}.routebox .pickdropprt .pickprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:215px}@media (min-width: 1600px){.routebox .pickdropprt .pickprt h4{max-width:265px}}.routebox .pickdropprt .pickprt h4:before{background:black;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.routebox .pickdropprt .dropprt{position:relative;padding-bottom:10px;display:flex;align-items:center}.routebox .pickdropprt .dropprt span{padding-left:0;padding-right:20px;display:block}.routebox .pickdropprt .dropprt b{position:relative;font-weight:400}.routebox .pickdropprt .dropprt b:after{background:black;width:1px;height:12px;left:3px;content:\"\";position:absolute;top:-7px}.routebox .pickdropprt .dropprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:215px}.routebox .pickdropprt .dropprt h4:before{background:black;top:4px;left:0;position:absolute;content:\"\";width:7px;height:7px;border-radius:100%}.routebox .infoicon{position:absolute;right:10px;bottom:15px}.routebox .infoicon img{width:20px;height:20px}.routebox .status{position:absolute;border-radius:30px;top:12px;right:40px;font-size:0;color:#fff;text-transform:capitalize;font-weight:500;padding:3px 10px}.routebox .status.routestatus{right:10px;width:20px;height:20px;text-align:center;line-height:20px;padding:0 0 0 1px}.routebox .status.routestatus:first-letter{font-size:.8rem}@media (min-width: 1600px){.routebox .status.routestatus{padding:0;line-height:22px}}.routebox .status.Ton{background:#ff7272}.routebox .status.Load{background:#a3c52e}.routebox .status.Hourly{background:#ae23d1}\n"] }]
24
+ }], ctorParameters: function () { return [{ type: i1.UtilsService }]; }, propDecorators: { route: [{
25
+ type: Input
26
+ }], emitrouteevent: [{
27
+ type: Input
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1yb3V0ZS1saXN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvdmlldy1yb3V0ZS1saXN0LWNhcmQvdmlldy1yb3V0ZS1saXN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvdmlldy1yb3V0ZS1saXN0LWNhcmQvdmlldy1yb3V0ZS1saXN0LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUWpELE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFBb0IsS0FBbUI7UUFBbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUFJLENBQUM7SUFFNUMsV0FBVyxDQUFDLEtBQXVCLEVBQUUsS0FBWTtRQUMvQyxJQUFHLEtBQUssS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUM7UUFBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDOzt3SEFUVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiw4SENSdkMsazFCQThCQTs0RkR0QmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDBCQUEwQjttR0FLM0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSwgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnY29vbG1hcC1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12aWV3LXJvdXRlLWxpc3QtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LXJvdXRlLWxpc3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctcm91dGUtbGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmlld1JvdXRlTGlzdENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSByb3V0ZSE6IFJvdXRlO1xuICBASW5wdXQoKSBlbWl0cm91dGVldmVudDogYW55O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHV0aWxzOiBVdGlsc1NlcnZpY2UpIHsgfVxuXG4gIGRldGFpbHNEaWN0KGV2ZW50OiBib29sZWFuIHwgc3RyaW5nLCByb3V0ZTogUm91dGUpIHtcbiAgICBpZihldmVudCA9PT0gJ2NsaWNrJykgdGhpcy51dGlscy5zZXRkaWN0VmFsdWUoJ3JvdXRlLWRldGFpbHN2MicsIEpTT04uc3RyaW5naWZ5KHJvdXRlKSk7XG4gICAgcm91dGVbJ3R5cGUnXSA9ICdlZGl0cm91dGUnOyByb3V0ZVsncHJldmVudCddID0gdHJ1ZTsgdGhpcy5lbWl0cm91dGVldmVudC5lbWl0KHJvdXRlKTtcbiAgICB0aGlzLnV0aWxzLnJvdXRlRGV0YWlsc1V0aWxpdHkubmV4dCh7IGV2ZW50LCByb3V0ZSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvdXRlYm94XCI+XG4gIDxzcGFuPlxuICAgIDxtYXQtaWNvbj5kaXJlY3Rpb25zPC9tYXQtaWNvbj5cbiAgICA8aDIgW25nQ2xhc3NdPVwieydyb3V0ZWhlYWRpbmcnOiByb3V0ZVsncm91dGVfbmFtZSddfVwiPlxuICAgICAge3tyb3V0ZVsncm91dGVfbmFtZSddfX1cbiAgICA8L2gyPlxuICA8L3NwYW4+XG4gIDxoMz57e3JvdXRlWydjdXN0b21lcl9uYW1lJ119fSB8IHt7cm91dGVbJ21hdGVyaWFsJ119fTwvaDM+XG5cbiAgPGRpdiBjbGFzcz1cInBpY2tkcm9wcHJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cInBpY2twcnRcIj5cbiAgICAgIDxiPlxuICAgICAgICA8aDQ+e3tyb3V0ZVsncGlja3VwX2xvY2F0aW9uJ119fTwvaDQ+XG4gICAgICA8L2I+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRyb3BwcnRcIj5cbiAgICAgIDxiPlxuICAgICAgICA8aDQ+e3tyb3V0ZVsnZGVsaXZlcnlfbG9jYXRpb24nXX19PC9oND5cbiAgICAgIDwvYj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbmZvaWNvblwiIChjbGljayk9XCJkZXRhaWxzRGljdCgnY2xpY2snLCByb3V0ZSlcIiAobW91c2VvdmVyKT1cImRldGFpbHNEaWN0KHRydWUsIHJvdXRlKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiZGV0YWlsc0RpY3QoZmFsc2UsIHJvdXRlKVwiPlxuICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltYWdlcy9pbmZvX2ljb24ucG5nXCIgW2FsdF09XCJcIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN0YXR1cyByb3V0ZXN0YXR1c1wiIFtuZ0NsYXNzXT1cInJvdXRlWyd1bml0J11cIj57e3JvdXRlWyd1bml0J119fTwvZGl2PlxuPC9kaXY+XG5cblxuXG4iXX0=