@aggdirect/coolmap 2.0.5 → 2.0.6

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 (42) hide show
  1. package/README.md +57 -57
  2. package/esm2020/aggdirect-coolmap.mjs +4 -4
  3. package/esm2020/lib/component/add-route/add-route.component.mjs +317 -315
  4. package/esm2020/lib/component/job-code/job-code.component.mjs +118 -118
  5. package/esm2020/lib/component/map/map.component.mjs +37 -37
  6. package/esm2020/lib/component/nav/layout/add-route-nav/add-route-nav.component.mjs +87 -87
  7. package/esm2020/lib/component/nav/layout/job-code-nav/job-code-nav.component.mjs +89 -89
  8. package/esm2020/lib/component/nav/nav.component.mjs +52 -52
  9. package/esm2020/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.mjs +68 -68
  10. package/esm2020/lib/component/route-jobcode-list/route-jobcode-list.component.mjs +314 -314
  11. package/esm2020/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.mjs +19 -19
  12. package/esm2020/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.mjs +29 -29
  13. package/esm2020/lib/component/shared/dialog/dialog.component.mjs +29 -29
  14. package/esm2020/lib/component/shared/job-route-list/job-route-list.component.mjs +71 -71
  15. package/esm2020/lib/component/shared/jobcode-overview/jobcode-overview.component.mjs +19 -19
  16. package/esm2020/lib/component/shared/jobcode-status/jobcode-status.component.mjs +14 -14
  17. package/esm2020/lib/coolmap.component.mjs +15 -15
  18. package/esm2020/lib/coolmap.module.mjs +178 -178
  19. package/esm2020/public-api.mjs +20 -20
  20. package/fesm2015/aggdirect-coolmap.mjs +1285 -1283
  21. package/fesm2015/aggdirect-coolmap.mjs.map +1 -1
  22. package/fesm2020/aggdirect-coolmap.mjs +1261 -1259
  23. package/fesm2020/aggdirect-coolmap.mjs.map +1 -1
  24. package/index.d.ts +5 -5
  25. package/lib/component/add-route/add-route.component.d.ts +63 -62
  26. package/lib/component/job-code/job-code.component.d.ts +32 -32
  27. package/lib/component/map/map.component.d.ts +15 -15
  28. package/lib/component/nav/layout/add-route-nav/add-route-nav.component.d.ts +41 -41
  29. package/lib/component/nav/layout/job-code-nav/job-code-nav.component.d.ts +39 -39
  30. package/lib/component/nav/nav.component.d.ts +31 -31
  31. package/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.d.ts +19 -19
  32. package/lib/component/route-jobcode-list/route-jobcode-list.component.d.ts +42 -42
  33. package/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.d.ts +9 -9
  34. package/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.d.ts +11 -11
  35. package/lib/component/shared/dialog/dialog.component.d.ts +13 -13
  36. package/lib/component/shared/job-route-list/job-route-list.component.d.ts +26 -26
  37. package/lib/component/shared/jobcode-overview/jobcode-overview.component.d.ts +9 -9
  38. package/lib/component/shared/jobcode-status/jobcode-status.component.d.ts +8 -8
  39. package/lib/coolmap.component.d.ts +8 -8
  40. package/lib/coolmap.module.d.ts +40 -40
  41. package/package.json +4 -4
  42. package/public-api.d.ts +16 -16
@@ -1,52 +1,52 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- import { Subject, takeUntil } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@aggdirect/coolmap-services";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/tooltip";
7
- import * as i4 from "@angular/material/button";
8
- export class NavComponent {
9
- constructor(utils, coolMap) {
10
- this.utils = utils;
11
- this.coolMap = coolMap;
12
- this.drawer = new EventEmitter();
13
- this.changeNav = new EventEmitter();
14
- this.navValue = 'Jobcode';
15
- this.isnavChange = true;
16
- this.paddinForJobCode = { top: 0, bottom: 250, left: 500, right: 400 };
17
- this.paddinForViewRoute = { top: 0, bottom: 400, left: 400, right: 0 };
18
- this.destroyer$ = new Subject();
19
- this.utils.navChangeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => { this.isnavChange = res; });
20
- this.coolMap.setPadding(this.paddinForJobCode);
21
- }
22
- openDrawer() { this.drawer.emit(true); }
23
- chnageNav(name) {
24
- if (this.isnavChange) {
25
- this.changeNav.emit(name);
26
- this.navValue = name;
27
- this.coolMap.clearBound();
28
- if (name === 'Addroute') {
29
- this.coolMap.setPadding(this.paddinForViewRoute);
30
- }
31
- else {
32
- this.coolMap.setPadding(this.paddinForJobCode);
33
- }
34
- this.utils.clearOptions();
35
- }
36
- }
37
- ngOnDestroy() {
38
- this.destroyer$.next(true);
39
- this.destroyer$.unsubscribe();
40
- }
41
- }
42
- NavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, deps: [{ token: i1.UtilsService }, { token: i1.CoolmapService }], target: i0.ɵɵFactoryTarget.Component });
43
- NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavComponent, selector: "app-nav", outputs: { drawer: "drawer", changeNav: "changeNav" }, ngImport: i0, template: "<div class=\"nav\">\n <button (click)=\"openDrawer()\" class=\"toggle\">\n <img src=\"assets/images/toggle.svg\" alt=\"\" />\n </button>\n\n <ul class=\"m-100\">\n <li [ngClass]=\"{'active': navValue === 'Jobcode'}\">\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Job Code\" aria-label=\"Job-code\" (click)=\"chnageNav('Jobcode')\">\n <img src=\"assets/images/job-code.svg\" alt=\"\" />\n </a>\n </li>\n\n <li [ngClass]=\"{'active': navValue === 'Addroute', 'disabled': !isnavChange }\">\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"View Route\" aria-label=\"View-route\" (click)=\"chnageNav('Addroute')\">\n <img src=\"assets/images/route.svg\" alt=\"\" />\n </a>\n </li>\n </ul>\n</div>\n", styles: [".nav{background:#e8e8e8;height:100vh;padding:15px 0;display:flex;align-items:center;flex-direction:column}.nav button{background:white;border-radius:15px;padding:5px 6px}.nav button img{width:28px}.nav ul{display:flex;flex-direction:column;align-items:center}.nav ul li{margin:10px 0;padding:0 5px;border-right:2px solid #e8e8e8}.nav ul li:hover{border-right:2px solid #326ad3;padding:0 5px}.nav ul li.disabled a{pointer-events:none;opacity:.5}.nav ul li.disabled:hover{border-right:2px solid #e8e8e8}.nav ul li a{padding:6px 0;display:block;border-radius:15px;min-width:42px;box-shadow:none;line-height:30px}.nav ul li a img{width:27px}.nav ul li a:hover{background:white}.nav ul li a:hover img{filter:invert(.2) sepia(1) saturate(8) hue-rotate(180deg)}.nav ul li.active{border-right:2px solid #326ad3}.nav ul li.active a{background:white}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, decorators: [{
45
- type: Component,
46
- args: [{ selector: 'app-nav', template: "<div class=\"nav\">\n <button (click)=\"openDrawer()\" class=\"toggle\">\n <img src=\"assets/images/toggle.svg\" alt=\"\" />\n </button>\n\n <ul class=\"m-100\">\n <li [ngClass]=\"{'active': navValue === 'Jobcode'}\">\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Job Code\" aria-label=\"Job-code\" (click)=\"chnageNav('Jobcode')\">\n <img src=\"assets/images/job-code.svg\" alt=\"\" />\n </a>\n </li>\n\n <li [ngClass]=\"{'active': navValue === 'Addroute', 'disabled': !isnavChange }\">\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"View Route\" aria-label=\"View-route\" (click)=\"chnageNav('Addroute')\">\n <img src=\"assets/images/route.svg\" alt=\"\" />\n </a>\n </li>\n </ul>\n</div>\n", styles: [".nav{background:#e8e8e8;height:100vh;padding:15px 0;display:flex;align-items:center;flex-direction:column}.nav button{background:white;border-radius:15px;padding:5px 6px}.nav button img{width:28px}.nav ul{display:flex;flex-direction:column;align-items:center}.nav ul li{margin:10px 0;padding:0 5px;border-right:2px solid #e8e8e8}.nav ul li:hover{border-right:2px solid #326ad3;padding:0 5px}.nav ul li.disabled a{pointer-events:none;opacity:.5}.nav ul li.disabled:hover{border-right:2px solid #e8e8e8}.nav ul li a{padding:6px 0;display:block;border-radius:15px;min-width:42px;box-shadow:none;line-height:30px}.nav ul li a img{width:27px}.nav ul li a:hover{background:white}.nav ul li a:hover img{filter:invert(.2) sepia(1) saturate(8) hue-rotate(180deg)}.nav ul li.active{border-right:2px solid #326ad3}.nav ul li.active a{background:white}\n"] }]
47
- }], ctorParameters: function () { return [{ type: i1.UtilsService }, { type: i1.CoolmapService }]; }, propDecorators: { drawer: [{
48
- type: Output
49
- }], changeNav: [{
50
- type: Output
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLFlBQVk7SUFTdkIsWUFBbUIsS0FBbUIsRUFBUyxPQUF1QjtRQUFuRCxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFSckQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQsYUFBUSxHQUFXLFNBQVMsQ0FBQztRQUM3QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixxQkFBZ0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNsRSx1QkFBa0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMzRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUd6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6RyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsVUFBVSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUN2QyxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0UsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO2dCQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO2FBQUU7aUJBQ3hFO2dCQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO2FBQUU7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt5R0EzQlUsWUFBWTs2RkFBWixZQUFZLHNHQ1R6Qixzd0JBbUJBOzJGRFZhLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsU0FBUztnSUFLRixNQUFNO3NCQUF0QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvb2xtYXBTZXJ2aWNlLCBVdGlsc1NlcnZpY2UgfSBmcm9tICdAYWdnZGlyZWN0L2Nvb2xtYXAtc2VydmljZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIHB1YmxpYyBkcmF3ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlTmF2ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIG5hdlZhbHVlOiBzdHJpbmcgPSAnSm9iY29kZSc7XG4gIGlzbmF2Q2hhbmdlOiBib29sZWFuID0gdHJ1ZTtcbiAgcGFkZGluRm9ySm9iQ29kZSA9IHsgdG9wOiAwLCBib3R0b206IDI1MCwgbGVmdDogNTAwLCByaWdodDogNDAwIH07XG4gIHBhZGRpbkZvclZpZXdSb3V0ZSA9IHsgdG9wOiAwLCBib3R0b206IDQwMCwgbGVmdDogNDAwLCByaWdodDogMCB9O1xuICBwdWJsaWMgZGVzdHJveWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzOiBVdGlsc1NlcnZpY2UsIHB1YmxpYyBjb29sTWFwOiBDb29sbWFwU2VydmljZSkge1xuICAgIHRoaXMudXRpbHMubmF2Q2hhbmdlT2JzZXJ2ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUocmVzID0+IHsgdGhpcy5pc25hdkNoYW5nZSA9IHJlcyB9KVxuICAgIHRoaXMuY29vbE1hcC5zZXRQYWRkaW5nKHRoaXMucGFkZGluRm9ySm9iQ29kZSk7XG4gIH1cblxuICBvcGVuRHJhd2VyKCkgeyB0aGlzLmRyYXdlci5lbWl0KHRydWUpIH1cbiAgY2huYWdlTmF2KG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzbmF2Q2hhbmdlKSB7XG4gICAgICB0aGlzLmNoYW5nZU5hdi5lbWl0KG5hbWUpOyB0aGlzLm5hdlZhbHVlID0gbmFtZTsgdGhpcy5jb29sTWFwLmNsZWFyQm91bmQoKTtcbiAgICAgIGlmIChuYW1lID09PSAnQWRkcm91dGUnKSB7IHRoaXMuY29vbE1hcC5zZXRQYWRkaW5nKHRoaXMucGFkZGluRm9yVmlld1JvdXRlKSB9XG4gICAgICBlbHNlIHsgdGhpcy5jb29sTWFwLnNldFBhZGRpbmcodGhpcy5wYWRkaW5Gb3JKb2JDb2RlKSB9XG4gICAgICB0aGlzLnV0aWxzLmNsZWFyT3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVyJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveWVyJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmF2XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9wZW5EcmF3ZXIoKVwiIGNsYXNzPVwidG9nZ2xlXCI+XG4gICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL3RvZ2dsZS5zdmdcIiBhbHQ9XCJcIiAvPlxuICA8L2J1dHRvbj5cblxuICA8dWwgY2xhc3M9XCJtLTEwMFwiPlxuICAgIDxsaSBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IG5hdlZhbHVlID09PSAnSm9iY29kZSd9XCI+XG4gICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiAjdG9vbHRpcD1cIm1hdFRvb2x0aXBcIiBtYXRUb29sdGlwPVwiSm9iIENvZGVcIiBhcmlhLWxhYmVsPVwiSm9iLWNvZGVcIiAoY2xpY2spPVwiY2huYWdlTmF2KCdKb2Jjb2RlJylcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2pvYi1jb2RlLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgICA8L2E+XG4gICAgPC9saT5cblxuICAgIDxsaSBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IG5hdlZhbHVlID09PSAnQWRkcm91dGUnLCAnZGlzYWJsZWQnOiAhaXNuYXZDaGFuZ2UgfVwiPlxuICAgICAgPGEgbWF0LXJhaXNlZC1idXR0b24gI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCIgbWF0VG9vbHRpcD1cIlZpZXcgUm91dGVcIiBhcmlhLWxhYmVsPVwiVmlldy1yb3V0ZVwiIChjbGljayk9XCJjaG5hZ2VOYXYoJ0FkZHJvdXRlJylcIj5cbiAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL3JvdXRlLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@aggdirect/coolmap-services";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/tooltip";
7
+ import * as i4 from "@angular/material/button";
8
+ export class NavComponent {
9
+ constructor(utils, coolMap) {
10
+ this.utils = utils;
11
+ this.coolMap = coolMap;
12
+ this.drawer = new EventEmitter();
13
+ this.changeNav = new EventEmitter();
14
+ this.navValue = 'Jobcode';
15
+ this.isnavChange = true;
16
+ this.paddinForJobCode = { top: 0, bottom: 250, left: 500, right: 400 };
17
+ this.paddinForViewRoute = { top: 0, bottom: 400, left: 400, right: 0 };
18
+ this.destroyer$ = new Subject();
19
+ this.utils.navChangeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => { this.isnavChange = res; });
20
+ this.coolMap.setPadding(this.paddinForJobCode);
21
+ }
22
+ openDrawer() { this.drawer.emit(true); }
23
+ chnageNav(name) {
24
+ if (this.isnavChange) {
25
+ this.changeNav.emit(name);
26
+ this.navValue = name;
27
+ this.coolMap.clearBound();
28
+ if (name === 'Addroute') {
29
+ this.coolMap.setPadding(this.paddinForViewRoute);
30
+ }
31
+ else {
32
+ this.coolMap.setPadding(this.paddinForJobCode);
33
+ }
34
+ this.utils.clearOptions();
35
+ }
36
+ }
37
+ ngOnDestroy() {
38
+ this.destroyer$.next(true);
39
+ this.destroyer$.unsubscribe();
40
+ }
41
+ }
42
+ NavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavComponent, deps: [{ token: i1.UtilsService }, { token: i1.CoolmapService }], target: i0.ɵɵFactoryTarget.Component });
43
+ NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: NavComponent, selector: "app-nav", outputs: { drawer: "drawer", changeNav: "changeNav" }, ngImport: i0, template: "<div class=\"nav\">\r\n <button (click)=\"openDrawer()\" class=\"toggle\">\r\n <img src=\"assets/images/toggle.svg\" alt=\"\" />\r\n </button>\r\n\r\n <ul class=\"m-100\">\r\n <li [ngClass]=\"{'active': navValue === 'Jobcode'}\">\r\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Job Code\" aria-label=\"Job-code\" (click)=\"chnageNav('Jobcode')\">\r\n <img src=\"assets/images/job-code.svg\" alt=\"\" />\r\n </a>\r\n </li>\r\n\r\n <li [ngClass]=\"{'active': navValue === 'Addroute', 'disabled': !isnavChange }\">\r\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"View Route\" aria-label=\"View-route\" (click)=\"chnageNav('Addroute')\">\r\n <img src=\"assets/images/route.svg\" alt=\"\" />\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".nav{background:#e8e8e8;height:100vh;padding:15px 0;display:flex;align-items:center;flex-direction:column}.nav button{background:white;border-radius:15px;padding:5px 6px}.nav button img{width:28px}.nav ul{display:flex;flex-direction:column;align-items:center}.nav ul li{margin:10px 0;padding:0 5px;border-right:2px solid #e8e8e8}.nav ul li:hover{border-right:2px solid #326ad3;padding:0 5px}.nav ul li.disabled a{pointer-events:none;opacity:.5}.nav ul li.disabled:hover{border-right:2px solid #e8e8e8}.nav ul li a{padding:6px 0;display:block;border-radius:15px;min-width:42px;box-shadow:none;line-height:30px}.nav ul li a img{width:27px}.nav ul li a:hover{background:white}.nav ul li a:hover img{filter:invert(.2) sepia(1) saturate(8) hue-rotate(180deg)}.nav ul li.active{border-right:2px solid #326ad3}.nav ul li.active a{background:white}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }] });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'app-nav', template: "<div class=\"nav\">\r\n <button (click)=\"openDrawer()\" class=\"toggle\">\r\n <img src=\"assets/images/toggle.svg\" alt=\"\" />\r\n </button>\r\n\r\n <ul class=\"m-100\">\r\n <li [ngClass]=\"{'active': navValue === 'Jobcode'}\">\r\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Job Code\" aria-label=\"Job-code\" (click)=\"chnageNav('Jobcode')\">\r\n <img src=\"assets/images/job-code.svg\" alt=\"\" />\r\n </a>\r\n </li>\r\n\r\n <li [ngClass]=\"{'active': navValue === 'Addroute', 'disabled': !isnavChange }\">\r\n <a mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"View Route\" aria-label=\"View-route\" (click)=\"chnageNav('Addroute')\">\r\n <img src=\"assets/images/route.svg\" alt=\"\" />\r\n </a>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".nav{background:#e8e8e8;height:100vh;padding:15px 0;display:flex;align-items:center;flex-direction:column}.nav button{background:white;border-radius:15px;padding:5px 6px}.nav button img{width:28px}.nav ul{display:flex;flex-direction:column;align-items:center}.nav ul li{margin:10px 0;padding:0 5px;border-right:2px solid #e8e8e8}.nav ul li:hover{border-right:2px solid #326ad3;padding:0 5px}.nav ul li.disabled a{pointer-events:none;opacity:.5}.nav ul li.disabled:hover{border-right:2px solid #e8e8e8}.nav ul li a{padding:6px 0;display:block;border-radius:15px;min-width:42px;box-shadow:none;line-height:30px}.nav ul li a img{width:27px}.nav ul li a:hover{background:white}.nav ul li a:hover img{filter:invert(.2) sepia(1) saturate(8) hue-rotate(180deg)}.nav ul li.active{border-right:2px solid #326ad3}.nav ul li.active a{background:white}\n"] }]
47
+ }], ctorParameters: function () { return [{ type: i1.UtilsService }, { type: i1.CoolmapService }]; }, propDecorators: { drawer: [{
48
+ type: Output
49
+ }], changeNav: [{
50
+ type: Output
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLFlBQVk7SUFTdkIsWUFBbUIsS0FBbUIsRUFBUyxPQUF1QjtRQUFuRCxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFSckQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQsYUFBUSxHQUFXLFNBQVMsQ0FBQztRQUM3QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixxQkFBZ0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNsRSx1QkFBa0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUMzRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUd6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6RyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsVUFBVSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUN2QyxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0UsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO2dCQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO2FBQUU7aUJBQ3hFO2dCQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO2FBQUU7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzswR0EzQlUsWUFBWTs4RkFBWixZQUFZLHNHQ1R6Qiw0eUJBbUJBOzRGRFZhLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsU0FBUztnSUFLRixNQUFNO3NCQUF0QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29vbG1hcFNlcnZpY2UsIFV0aWxzU2VydmljZSB9IGZyb20gJ0BhZ2dkaXJlY3QvY29vbG1hcC1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmF2JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXYuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCkgcHVibGljIGRyYXdlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZU5hdiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIG5hdlZhbHVlOiBzdHJpbmcgPSAnSm9iY29kZSc7XHJcbiAgaXNuYXZDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBhZGRpbkZvckpvYkNvZGUgPSB7IHRvcDogMCwgYm90dG9tOiAyNTAsIGxlZnQ6IDUwMCwgcmlnaHQ6IDQwMCB9O1xyXG4gIHBhZGRpbkZvclZpZXdSb3V0ZSA9IHsgdG9wOiAwLCBib3R0b206IDQwMCwgbGVmdDogNDAwLCByaWdodDogMCB9O1xyXG4gIHB1YmxpYyBkZXN0cm95ZXIkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzOiBVdGlsc1NlcnZpY2UsIHB1YmxpYyBjb29sTWFwOiBDb29sbWFwU2VydmljZSkge1xyXG4gICAgdGhpcy51dGlscy5uYXZDaGFuZ2VPYnNlcnZlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZShyZXMgPT4geyB0aGlzLmlzbmF2Q2hhbmdlID0gcmVzIH0pXHJcbiAgICB0aGlzLmNvb2xNYXAuc2V0UGFkZGluZyh0aGlzLnBhZGRpbkZvckpvYkNvZGUpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRyYXdlcigpIHsgdGhpcy5kcmF3ZXIuZW1pdCh0cnVlKSB9XHJcbiAgY2huYWdlTmF2KG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNuYXZDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5jaGFuZ2VOYXYuZW1pdChuYW1lKTsgdGhpcy5uYXZWYWx1ZSA9IG5hbWU7IHRoaXMuY29vbE1hcC5jbGVhckJvdW5kKCk7XHJcbiAgICAgIGlmIChuYW1lID09PSAnQWRkcm91dGUnKSB7IHRoaXMuY29vbE1hcC5zZXRQYWRkaW5nKHRoaXMucGFkZGluRm9yVmlld1JvdXRlKSB9XHJcbiAgICAgIGVsc2UgeyB0aGlzLmNvb2xNYXAuc2V0UGFkZGluZyh0aGlzLnBhZGRpbkZvckpvYkNvZGUpIH1cclxuICAgICAgdGhpcy51dGlscy5jbGVhck9wdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZXIkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3llciQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm5hdlwiPlxyXG4gIDxidXR0b24gKGNsaWNrKT1cIm9wZW5EcmF3ZXIoKVwiIGNsYXNzPVwidG9nZ2xlXCI+XHJcbiAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvdG9nZ2xlLnN2Z1wiIGFsdD1cIlwiIC8+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDx1bCBjbGFzcz1cIm0tMTAwXCI+XHJcbiAgICA8bGkgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBuYXZWYWx1ZSA9PT0gJ0pvYmNvZGUnfVwiPlxyXG4gICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiAjdG9vbHRpcD1cIm1hdFRvb2x0aXBcIiBtYXRUb29sdGlwPVwiSm9iIENvZGVcIiBhcmlhLWxhYmVsPVwiSm9iLWNvZGVcIiAoY2xpY2spPVwiY2huYWdlTmF2KCdKb2Jjb2RlJylcIj5cclxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvam9iLWNvZGUuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgPC9hPlxyXG4gICAgPC9saT5cclxuXHJcbiAgICA8bGkgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBuYXZWYWx1ZSA9PT0gJ0FkZHJvdXRlJywgJ2Rpc2FibGVkJzogIWlzbmF2Q2hhbmdlIH1cIj5cclxuICAgICAgPGEgbWF0LXJhaXNlZC1idXR0b24gI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCIgbWF0VG9vbHRpcD1cIlZpZXcgUm91dGVcIiBhcmlhLWxhYmVsPVwiVmlldy1yb3V0ZVwiIChjbGljayk9XCJjaG5hZ2VOYXYoJ0FkZHJvdXRlJylcIj5cclxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvcm91dGUuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgPC9hPlxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuIl19
@@ -1,68 +1,68 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@aggdirect/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.3.0", ngImport: i0, type: JobCodeListCardComponent, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
53
- JobCodeListCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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.3.0", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvcm91dGUtam9iY29kZS1saXN0L2pvYi1jb2RlLWxpc3QtY2FyZC9qb2ItY29kZS1saXN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvam9iLWNvZGUtbGlzdC1jYXJkL2pvYi1jb2RlLWxpc3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2RSxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQW1CLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFKckIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHYixDQUFDO0lBRTNDLFdBQVcsQ0FBQyxLQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixDQUFDLGFBQStCLEVBQUUsS0FBWSxFQUFFLFVBQW9CO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxjQUF1QixFQUFFLEtBQVk7UUFDeEQsSUFBSSxjQUFjLEVBQUU7WUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQUU7YUFDdkYsSUFBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDbEQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7WUFBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEU7YUFDRyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUNoRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUNwRSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUMvRSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUN6RTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7SUFDdEIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOztxSEFoQ1Usd0JBQXdCO3lHQUF4Qix3QkFBd0IsMlBDUnJDLDRqRUF3REE7MkZEaERhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7bUdBS2xCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1csYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBQ1MsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGUsIFV0aWxzU2VydmljZSB9IGZyb20gJ0BhZ2dkaXJlY3QvY29vbG1hcC1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1qb2ItY29kZS1saXN0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSm9iQ29kZUxpc3RDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIHJvdXRlITogUm91dGU7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcm91dGVTZWxldGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyB0b2dnbGVEcml2ZXJtZW51ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBwdWJsaWMgZW1pdEpvYmRldGFpbHM6IGFueTtcbiAgQElucHV0KCkgcHVibGljIHByZXZlbnRDbG9zZURldGFpbHMhOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbHM6IFV0aWxzU2VydmljZSkgeyB9XG5cbiAgc2VsZWN0Um91dGUocm91dGU6IFJvdXRlKSB7IHRoaXMucm91dGVTZWxldGlvbi5lbWl0KHJvdXRlKSB9XG4gIHRvZ2dsZURyaXZlcmxpc3QobW91c2Vldm50VHlwZTogYm9vbGVhbiB8IHN0cmluZywgcm91dGU6IFJvdXRlLCBpc0hvdmVyT3V0PzogYm9vbGVhbikge1xuICAgIGNvbnN0IGRhdGEgPSB7IG1vdXNlZXZudFR5cGUsIHJvdXRlLCBpc0hvdmVyT3V0IH1cbiAgICB0aGlzLnRvZ2dsZURyaXZlcm1lbnUuZW1pdChkYXRhKTtcbiAgICBpZiAobW91c2Vldm50VHlwZSA9PT0gJ2NsaWNrJykgdGhpcy51dGlscy5zZXRkaWN0VmFsdWUoJ2RyaXZlci1kZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yb3V0ZSkpO1xuICB9XG4gIHRvZ2dsZUpvYkNvZGVEZXRhaWxzKG1vdXNlRXZlbnRUeXBlOiBib29sZWFuLCByb3V0ZTogUm91dGUpIHtcbiAgICBpZiAobW91c2VFdmVudFR5cGUpIHsgcm91dGVbJ3R5cGUnXSA9ICdqb2Jjb2RlJzsgdGhpcy5lbWl0Sm9iZGV0YWlscy5lbWl0cm91dGUuZW1pdChyb3V0ZSkgfVxuICAgIGVsc2UgaWYoIW1vdXNlRXZlbnRUeXBlICYmIHRoaXMucHJldmVudENsb3NlRGV0YWlscyl7XG4gICAgICByb3V0ZSA9IHRoaXMudXRpbHMuZ2V0ZGljdFZhbHVlKCdyb3V0ZS1kZXRhaWxzJyk7XG4gICAgICByb3V0ZVsndHlwZSddID0gJ2pvYmNvZGUnOyB0aGlzLmVtaXRKb2JkZXRhaWxzLmVtaXRyb3V0ZS5lbWl0KHJvdXRlKVxuICAgICB9XG4gICAgZWxzZSBpZiAoIW1vdXNlRXZlbnRUeXBlICYmICF0aGlzLnByZXZlbnRDbG9zZURldGFpbHMpIHRoaXMuZW1pdEpvYmRldGFpbHMuY2xlYXJKb2JEZXRhaWxzRnJvbUxpc3QuZW1pdCh0cnVlKTtcbiAgfVxuICBjYWxjdWxhdGVTdGF0dXNQZXJjZW50YWdlKHR5cGU6IHN0cmluZywgcm91dGU6IGFueSkge1xuICAgIGNvbnN0IHRvdGFsID0gcm91dGVbJ0RvbmUnXSArIHJvdXRlWydPbmdvaW5nJ10gKyByb3V0ZVsnT3BlbiddO1xuICAgIGlmICh0eXBlID09PSAnZG9uZScpIHsgcmV0dXJuIE1hdGgucm91bmQoKDEwMCAqIHJvdXRlWydEb25lJ10pIC8gdG90YWwpIH1cbiAgICBlbHNlIGlmICh0eXBlID09PSAnb25nb2luZycpIHsgcmV0dXJuIE1hdGgucm91bmQoKDEwMCAqIHJvdXRlWydPbmdvaW5nJ10pIC8gdG90YWwpIH1cbiAgICBlbHNlIGlmICh0eXBlID09PSAnb3BlbicpIHsgcmV0dXJuIE1hdGgucm91bmQoKDEwMCAqIHJvdXRlWydPcGVuJ10pIC8gdG90YWwpIH1cbiAgICBlbHNlIHsgcmV0dXJuIG51bGwgfVxuICB9XG4gIHNldFJvdXRlSXRlbSgpe1xuICAgIHRoaXMudXRpbHMucHJlVmVudEpvYmRldGFpbGNsb3NlLm5leHQodHJ1ZSk7XG4gICAgdGhpcy51dGlscy5zZXRkaWN0VmFsdWUoJ3JvdXRlLWRldGFpbHMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJvdXRlKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbm5lcmJveFwiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXRhcmVhXCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWxlY3Ryb3V0ZVwiIFtjaGVja2VkXT1cInJvdXRlWydpc1NlbGVjdGVkJ11cIiAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdFJvdXRlKHJvdXRlKSA6IG51bGxcIiAvPlxuICAgIDxsYWJlbD4mbmJzcDs8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXJcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJqb2JfaW50cm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPlxuICAgICAgPGgyPlxuICAgICAgICB7e3JvdXRlWydvcmRlcl9udW1iZXInXSA/IHJvdXRlWydvcmRlcl9udW1iZXInXSA6ICcnfX1cbiAgICAgIDwvaDI+XG4gICAgICB8XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3tyb3V0ZVsnY3VzdG9tZXJfbmFtZSddfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHxcbiAgICAgIDxzcGFuPlxuICAgICAgICB7e3JvdXRlWydwcm9qZWN0J119fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXN0aW5hdGlvbnBydFwiPlxuICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7XCI+XG4gICAgICAgIHt7cm91dGVbJ3BpY2t1cF9sb2NhdGlvbiddfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxiPj48L2I+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3tyb3V0ZVsnZGVsaXZlcnlfbG9jYXRpb24nXX19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1hdF9jYXRcIj5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7e3JvdXRlWydtYXRlcmlhbCddfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNiYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNfcGVyY2VudFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRvbmVcIiBbc3R5bGVdPVwiJ3dpZHRoOicrY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSgnZG9uZScscm91dGVbJ3ZhbHVlcyddKSsnJSdcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwib25nb2luZ1wiIFtzdHlsZV09XCInd2lkdGg6JytjYWxjdWxhdGVTdGF0dXNQZXJjZW50YWdlKCdvbmdvaW5nJywgcm91dGVbJ3ZhbHVlcyddKSsnJSdcIj4gPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm9wZW5cIiBbc3R5bGVdPVwiJ3dpZHRoOicrY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSgnb3BlbicsIHJvdXRlWyd2YWx1ZXMnXSkrJyUnXCI+IDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInN0YXR1c2FyZWFcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzdW5pdFwiIFtuZ0NsYXNzXT1cInJvdXRlWyd1bml0J11cIj57e3JvdXRlWyd1bml0J119fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcml2ZXJfaWNvblwiIChtb3VzZW92ZXIpPVwidG9nZ2xlRHJpdmVybGlzdCh0cnVlLCByb3V0ZSlcIiAobW91c2VvdXQpPVwidG9nZ2xlRHJpdmVybGlzdChmYWxzZSwgcm91dGUsIHRydWUpXCJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uICN0b29sdGlwPVwibWF0VG9vbHRpcFwiIG1hdFRvb2x0aXA9XCJDbGljayBvbiBpY29uIHRvIHNob3cgdGhlIGRyaXZlciBsaXN0XCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZURyaXZlcmxpc3QoJ2NsaWNrJywgcm91dGUpXCI+XG4gICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvZHJpdmVyX2ljb24ucG5nXCIgW2FsdF09XCJcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvaWNvblwiIChjbGljayk9XCJzZXRSb3V0ZUl0ZW0oKVwiIChtb3VzZW92ZXIpPVwidG9nZ2xlSm9iQ29kZURldGFpbHModHJ1ZSwgcm91dGUpXCJcbiAgICAgIChtb3VzZW91dCk9XCJ0b2dnbGVKb2JDb2RlRGV0YWlscyhmYWxzZSwgcm91dGUpXCI+XG4gICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvaW5mb19pY29uLnBuZ1wiIFthbHRdPVwiXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@aggdirect/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\">\r\n <div class=\"inputarea\">\r\n <input type=\"checkbox\" name=\"selectroute\" [checked]=\"route['isSelected']\" (change)=\"$event ? selectRoute(route) : null\" />\r\n <label>&nbsp;</label>\r\n <div class=\"border\"></div>\r\n </div>\r\n <div class=\"job_intro\">\r\n <div class=\"heading\">\r\n <h2>\r\n {{route['order_number'] ? route['order_number'] : ''}}\r\n </h2>\r\n |\r\n <span>\r\n {{route['customer_name']}}\r\n </span>\r\n |\r\n <span>\r\n {{route['project']}}\r\n </span>\r\n </div>\r\n <div class=\"destinationprt\">\r\n <span style=\"padding-left: 0;\">\r\n {{route['pickup_location']}}\r\n </span>\r\n <b>></b>\r\n <span>\r\n {{route['delivery_location']}}\r\n </span>\r\n </div>\r\n <div class=\"mat_cat\">\r\n <span>\r\n {{route['material']}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"statusbar\">\r\n <div class=\"status_percent\">\r\n <span class=\"done\" [style]=\"'width:'+calculateStatusPercentage('done',route['values'])+'%'\"></span>\r\n <span class=\"ongoing\" [style]=\"'width:'+calculateStatusPercentage('ongoing', route['values'])+'%'\"> </span>\r\n <span class=\"open\" [style]=\"'width:'+calculateStatusPercentage('open', route['values'])+'%'\"> </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"statusarea\">\r\n <div class=\"statusunit\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\r\n <div class=\"driver_icon\" (mouseover)=\"toggleDriverlist(true, route)\" (mouseout)=\"toggleDriverlist(false, route, true)\"\r\n mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Click on icon to show the driver list\" matTooltipPosition=\"above\"\r\n (click)=\"toggleDriverlist('click', route)\">\r\n <img src=\"assets/images/driver_icon.png\" [alt]=\"\" />\r\n </div>\r\n <div class=\"infoicon\" (click)=\"setRouteItem()\" (mouseover)=\"toggleJobCodeDetails(true, route)\"\r\n (mouseout)=\"toggleJobCodeDetails(false, route)\">\r\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\r\n </div>\r\n </div>\r\n</div>\r\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\">\r\n <div class=\"inputarea\">\r\n <input type=\"checkbox\" name=\"selectroute\" [checked]=\"route['isSelected']\" (change)=\"$event ? selectRoute(route) : null\" />\r\n <label>&nbsp;</label>\r\n <div class=\"border\"></div>\r\n </div>\r\n <div class=\"job_intro\">\r\n <div class=\"heading\">\r\n <h2>\r\n {{route['order_number'] ? route['order_number'] : ''}}\r\n </h2>\r\n |\r\n <span>\r\n {{route['customer_name']}}\r\n </span>\r\n |\r\n <span>\r\n {{route['project']}}\r\n </span>\r\n </div>\r\n <div class=\"destinationprt\">\r\n <span style=\"padding-left: 0;\">\r\n {{route['pickup_location']}}\r\n </span>\r\n <b>></b>\r\n <span>\r\n {{route['delivery_location']}}\r\n </span>\r\n </div>\r\n <div class=\"mat_cat\">\r\n <span>\r\n {{route['material']}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"statusbar\">\r\n <div class=\"status_percent\">\r\n <span class=\"done\" [style]=\"'width:'+calculateStatusPercentage('done',route['values'])+'%'\"></span>\r\n <span class=\"ongoing\" [style]=\"'width:'+calculateStatusPercentage('ongoing', route['values'])+'%'\"> </span>\r\n <span class=\"open\" [style]=\"'width:'+calculateStatusPercentage('open', route['values'])+'%'\"> </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"statusarea\">\r\n <div class=\"statusunit\" [ngClass]=\"route['unit']\">{{route['unit']}}</div>\r\n <div class=\"driver_icon\" (mouseover)=\"toggleDriverlist(true, route)\" (mouseout)=\"toggleDriverlist(false, route, true)\"\r\n mat-raised-button #tooltip=\"matTooltip\" matTooltip=\"Click on icon to show the driver list\" matTooltipPosition=\"above\"\r\n (click)=\"toggleDriverlist('click', route)\">\r\n <img src=\"assets/images/driver_icon.png\" [alt]=\"\" />\r\n </div>\r\n <div class=\"infoicon\" (click)=\"setRouteItem()\" (mouseover)=\"toggleJobCodeDetails(true, route)\"\r\n (mouseout)=\"toggleJobCodeDetails(false, route)\">\r\n <img src=\"assets/images/info_icon.png\" [alt]=\"\" />\r\n </div>\r\n </div>\r\n</div>\r\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvcm91dGUtam9iY29kZS1saXN0L2pvYi1jb2RlLWxpc3QtY2FyZC9qb2ItY29kZS1saXN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29vbG1hcC9zcmMvbGliL2NvbXBvbmVudC9yb3V0ZS1qb2Jjb2RlLWxpc3Qvam9iLWNvZGUtbGlzdC1jYXJkL2pvYi1jb2RlLWxpc3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2RSxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQW1CLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFKckIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHYixDQUFDO0lBRTNDLFdBQVcsQ0FBQyxLQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixDQUFDLGFBQStCLEVBQUUsS0FBWSxFQUFFLFVBQW9CO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxjQUF1QixFQUFFLEtBQVk7UUFDeEQsSUFBSSxjQUFjLEVBQUU7WUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQUU7YUFDdkYsSUFBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDbEQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7WUFBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEU7YUFDRyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUNoRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUNwRSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUMvRSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7U0FBRTthQUN6RTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7SUFDdEIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOztzSEFoQ1Usd0JBQXdCOzBHQUF4Qix3QkFBd0IsMlBDUnJDLDRxRUF3REE7NEZEaERhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7bUdBS2xCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1csYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBQ1MsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZSwgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnQGFnZ2RpcmVjdC9jb29sbWFwLXNlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1jb2RlLWxpc3QtY2FyZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2pvYi1jb2RlLWxpc3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vam9iLWNvZGUtbGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEpvYkNvZGVMaXN0Q2FyZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcHVibGljIHJvdXRlITogUm91dGU7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyByb3V0ZVNlbGV0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdG9nZ2xlRHJpdmVybWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZW1pdEpvYmRldGFpbHM6IGFueTtcclxuICBASW5wdXQoKSBwdWJsaWMgcHJldmVudENsb3NlRGV0YWlscyE6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzOiBVdGlsc1NlcnZpY2UpIHsgfVxyXG5cclxuICBzZWxlY3RSb3V0ZShyb3V0ZTogUm91dGUpIHsgdGhpcy5yb3V0ZVNlbGV0aW9uLmVtaXQocm91dGUpIH1cclxuICB0b2dnbGVEcml2ZXJsaXN0KG1vdXNlZXZudFR5cGU6IGJvb2xlYW4gfCBzdHJpbmcsIHJvdXRlOiBSb3V0ZSwgaXNIb3Zlck91dD86IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7IG1vdXNlZXZudFR5cGUsIHJvdXRlLCBpc0hvdmVyT3V0IH1cclxuICAgIHRoaXMudG9nZ2xlRHJpdmVybWVudS5lbWl0KGRhdGEpO1xyXG4gICAgaWYgKG1vdXNlZXZudFR5cGUgPT09ICdjbGljaycpIHRoaXMudXRpbHMuc2V0ZGljdFZhbHVlKCdkcml2ZXItZGV0YWlscycsIEpTT04uc3RyaW5naWZ5KHRoaXMucm91dGUpKTtcclxuICB9XHJcbiAgdG9nZ2xlSm9iQ29kZURldGFpbHMobW91c2VFdmVudFR5cGU6IGJvb2xlYW4sIHJvdXRlOiBSb3V0ZSkge1xyXG4gICAgaWYgKG1vdXNlRXZlbnRUeXBlKSB7IHJvdXRlWyd0eXBlJ10gPSAnam9iY29kZSc7IHRoaXMuZW1pdEpvYmRldGFpbHMuZW1pdHJvdXRlLmVtaXQocm91dGUpIH1cclxuICAgIGVsc2UgaWYoIW1vdXNlRXZlbnRUeXBlICYmIHRoaXMucHJldmVudENsb3NlRGV0YWlscyl7XHJcbiAgICAgIHJvdXRlID0gdGhpcy51dGlscy5nZXRkaWN0VmFsdWUoJ3JvdXRlLWRldGFpbHMnKTtcclxuICAgICAgcm91dGVbJ3R5cGUnXSA9ICdqb2Jjb2RlJzsgdGhpcy5lbWl0Sm9iZGV0YWlscy5lbWl0cm91dGUuZW1pdChyb3V0ZSlcclxuICAgICB9XHJcbiAgICBlbHNlIGlmICghbW91c2VFdmVudFR5cGUgJiYgIXRoaXMucHJldmVudENsb3NlRGV0YWlscykgdGhpcy5lbWl0Sm9iZGV0YWlscy5jbGVhckpvYkRldGFpbHNGcm9tTGlzdC5lbWl0KHRydWUpO1xyXG4gIH1cclxuICBjYWxjdWxhdGVTdGF0dXNQZXJjZW50YWdlKHR5cGU6IHN0cmluZywgcm91dGU6IGFueSkge1xyXG4gICAgY29uc3QgdG90YWwgPSByb3V0ZVsnRG9uZSddICsgcm91dGVbJ09uZ29pbmcnXSArIHJvdXRlWydPcGVuJ107XHJcbiAgICBpZiAodHlwZSA9PT0gJ2RvbmUnKSB7IHJldHVybiBNYXRoLnJvdW5kKCgxMDAgKiByb3V0ZVsnRG9uZSddKSAvIHRvdGFsKSB9XHJcbiAgICBlbHNlIGlmICh0eXBlID09PSAnb25nb2luZycpIHsgcmV0dXJuIE1hdGgucm91bmQoKDEwMCAqIHJvdXRlWydPbmdvaW5nJ10pIC8gdG90YWwpIH1cclxuICAgIGVsc2UgaWYgKHR5cGUgPT09ICdvcGVuJykgeyByZXR1cm4gTWF0aC5yb3VuZCgoMTAwICogcm91dGVbJ09wZW4nXSkgLyB0b3RhbCkgfVxyXG4gICAgZWxzZSB7IHJldHVybiBudWxsIH1cclxuICB9XHJcbiAgc2V0Um91dGVJdGVtKCl7XHJcbiAgICB0aGlzLnV0aWxzLnByZVZlbnRKb2JkZXRhaWxjbG9zZS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy51dGlscy5zZXRkaWN0VmFsdWUoJ3JvdXRlLWRldGFpbHMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJvdXRlKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbm5lcmJveFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnB1dGFyZWFcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic2VsZWN0cm91dGVcIiBbY2hlY2tlZF09XCJyb3V0ZVsnaXNTZWxlY3RlZCddXCIgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3RSb3V0ZShyb3V0ZSkgOiBudWxsXCIgLz5cclxuICAgIDxsYWJlbD4mbmJzcDs8L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvcmRlclwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJqb2JfaW50cm9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+XHJcbiAgICAgIDxoMj5cclxuICAgICAgICB7e3JvdXRlWydvcmRlcl9udW1iZXInXSA/IHJvdXRlWydvcmRlcl9udW1iZXInXSA6ICcnfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgfFxyXG4gICAgICA8c3Bhbj5cclxuICAgICAgICB7e3JvdXRlWydjdXN0b21lcl9uYW1lJ119fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIHxcclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAge3tyb3V0ZVsncHJvamVjdCddfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVzdGluYXRpb25wcnRcIj5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDA7XCI+XHJcbiAgICAgICAge3tyb3V0ZVsncGlja3VwX2xvY2F0aW9uJ119fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxiPj48L2I+XHJcbiAgICAgIDxzcGFuPlxyXG4gICAgICAgIHt7cm91dGVbJ2RlbGl2ZXJ5X2xvY2F0aW9uJ119fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYXRfY2F0XCI+XHJcbiAgICAgIDxzcGFuPlxyXG4gICAgICAgIHt7cm91dGVbJ21hdGVyaWFsJ119fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzYmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNfcGVyY2VudFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG9uZVwiIFtzdHlsZV09XCInd2lkdGg6JytjYWxjdWxhdGVTdGF0dXNQZXJjZW50YWdlKCdkb25lJyxyb3V0ZVsndmFsdWVzJ10pKyclJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm9uZ29pbmdcIiBbc3R5bGVdPVwiJ3dpZHRoOicrY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSgnb25nb2luZycsIHJvdXRlWyd2YWx1ZXMnXSkrJyUnXCI+IDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm9wZW5cIiBbc3R5bGVdPVwiJ3dpZHRoOicrY2FsY3VsYXRlU3RhdHVzUGVyY2VudGFnZSgnb3BlbicsIHJvdXRlWyd2YWx1ZXMnXSkrJyUnXCI+IDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3RhdHVzYXJlYVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c3VuaXRcIiBbbmdDbGFzc109XCJyb3V0ZVsndW5pdCddXCI+e3tyb3V0ZVsndW5pdCddfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkcml2ZXJfaWNvblwiIChtb3VzZW92ZXIpPVwidG9nZ2xlRHJpdmVybGlzdCh0cnVlLCByb3V0ZSlcIiAobW91c2VvdXQpPVwidG9nZ2xlRHJpdmVybGlzdChmYWxzZSwgcm91dGUsIHRydWUpXCJcclxuICAgICAgbWF0LXJhaXNlZC1idXR0b24gI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCIgbWF0VG9vbHRpcD1cIkNsaWNrIG9uIGljb24gdG8gc2hvdyB0aGUgZHJpdmVyIGxpc3RcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcml2ZXJsaXN0KCdjbGljaycsIHJvdXRlKVwiPlxyXG4gICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvZHJpdmVyX2ljb24ucG5nXCIgW2FsdF09XCJcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5mb2ljb25cIiAoY2xpY2spPVwic2V0Um91dGVJdGVtKClcIiAobW91c2VvdmVyKT1cInRvZ2dsZUpvYkNvZGVEZXRhaWxzKHRydWUsIHJvdXRlKVwiXHJcbiAgICAgIChtb3VzZW91dCk9XCJ0b2dnbGVKb2JDb2RlRGV0YWlscyhmYWxzZSwgcm91dGUpXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltYWdlcy9pbmZvX2ljb24ucG5nXCIgW2FsdF09XCJcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=