@aggdirect/coolmap 2.0.7 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/coolmap.umd.js +1383 -0
- package/bundles/coolmap.umd.js.map +1 -0
- package/bundles/coolmap.umd.min.js +2 -0
- package/bundles/coolmap.umd.min.js.map +1 -0
- package/coolmap.d.ts +5 -0
- package/coolmap.metadata.json +1 -0
- package/esm2015/coolmap.js +6 -0
- package/esm2015/coolmap.ngsummary.json +1 -0
- package/esm2015/lib/component/add-route/add-route.component.js +309 -0
- package/esm2015/lib/component/add-route/add-route.component.ngfactory.js +304 -0
- package/esm2015/lib/component/add-route/add-route.component.ngsummary.json +1 -0
- package/esm2015/lib/component/job-code/job-code.component.js +116 -0
- package/esm2015/lib/component/job-code/job-code.component.ngfactory.js +77 -0
- package/esm2015/lib/component/job-code/job-code.component.ngsummary.json +1 -0
- package/esm2015/lib/component/map/map.component.js +39 -0
- package/esm2015/lib/component/map/map.component.ngfactory.js +23 -0
- package/esm2015/lib/component/map/map.component.ngsummary.json +1 -0
- package/esm2015/lib/component/nav/layout/add-route-nav/add-route-nav.component.js +79 -0
- package/esm2015/lib/component/nav/layout/add-route-nav/add-route-nav.component.ngfactory.js +142 -0
- package/esm2015/lib/component/nav/layout/add-route-nav/add-route-nav.component.ngsummary.json +1 -0
- package/esm2015/lib/component/nav/layout/job-code-nav/job-code-nav.component.js +82 -0
- package/esm2015/lib/component/nav/layout/job-code-nav/job-code-nav.component.ngfactory.js +194 -0
- package/esm2015/lib/component/nav/layout/job-code-nav/job-code-nav.component.ngsummary.json +1 -0
- package/esm2015/lib/component/nav/nav.component.js +54 -0
- package/esm2015/lib/component/nav/nav.component.ngfactory.js +43 -0
- package/esm2015/lib/component/nav/nav.component.ngsummary.json +1 -0
- package/esm2015/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.js +66 -0
- package/esm2015/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ngfactory.js +46 -0
- package/esm2015/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ngsummary.json +1 -0
- package/esm2015/lib/component/route-jobcode-list/route-jobcode-list.component.js +301 -0
- package/esm2015/lib/component/route-jobcode-list/route-jobcode-list.component.ngfactory.js +99 -0
- package/esm2015/lib/component/route-jobcode-list/route-jobcode-list.component.ngsummary.json +1 -0
- package/esm2015/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.js +20 -0
- package/esm2015/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ngfactory.js +21 -0
- package/esm2015/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ngsummary.json +1 -0
- package/esm2015/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.js +30 -0
- package/esm2015/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ngfactory.js +30 -0
- package/esm2015/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ngsummary.json +1 -0
- package/esm2015/lib/component/shared/dialog/dialog.component.js +29 -0
- package/esm2015/lib/component/shared/dialog/dialog.component.ngfactory.js +24 -0
- package/esm2015/lib/component/shared/dialog/dialog.component.ngsummary.json +1 -0
- package/esm2015/lib/component/shared/estimation-display/estimation-display.component.js +20 -0
- package/esm2015/lib/component/shared/estimation-display/estimation-display.component.ngfactory.js +23 -0
- package/esm2015/lib/component/shared/estimation-display/estimation-display.component.ngsummary.json +1 -0
- package/esm2015/lib/component/shared/job-route-list/job-route-list.component.js +63 -0
- package/esm2015/lib/component/shared/job-route-list/job-route-list.component.ngfactory.js +134 -0
- package/esm2015/lib/component/shared/job-route-list/job-route-list.component.ngsummary.json +1 -0
- package/esm2015/lib/component/shared/jobcode-overview/jobcode-overview.component.js +20 -0
- package/esm2015/lib/component/shared/jobcode-overview/jobcode-overview.component.ngfactory.js +19 -0
- package/esm2015/lib/component/shared/jobcode-overview/jobcode-overview.component.ngsummary.json +1 -0
- package/esm2015/lib/component/shared/jobcode-status/jobcode-status.component.js +16 -0
- package/esm2015/lib/component/shared/jobcode-status/jobcode-status.component.ngfactory.js +17 -0
- package/esm2015/lib/component/shared/jobcode-status/jobcode-status.component.ngsummary.json +1 -0
- package/esm2015/lib/coolmap.component.js +18 -0
- package/esm2015/lib/coolmap.component.ngfactory.js +16 -0
- package/esm2015/lib/coolmap.component.ngsummary.json +1 -0
- package/esm2015/lib/coolmap.module.js +108 -0
- package/esm2015/lib/coolmap.module.ngfactory.js +46 -0
- package/esm2015/lib/coolmap.module.ngsummary.json +1 -0
- package/esm2015/public-api.ngsummary.json +1 -0
- package/fesm2015/coolmap.js +1317 -0
- package/fesm2015/coolmap.js.map +1 -0
- package/lib/component/add-route/add-route.component.d.ts +0 -3
- package/lib/component/add-route/add-route.component.ngfactory.d.ts +1 -0
- package/lib/component/job-code/job-code.component.d.ts +0 -3
- package/lib/component/job-code/job-code.component.ngfactory.d.ts +1 -0
- package/lib/component/map/map.component.d.ts +0 -3
- package/lib/component/map/map.component.ngfactory.d.ts +1 -0
- package/lib/component/nav/layout/add-route-nav/add-route-nav.component.d.ts +3 -8
- package/lib/component/nav/layout/add-route-nav/add-route-nav.component.ngfactory.d.ts +1 -0
- package/lib/component/nav/layout/job-code-nav/job-code-nav.component.d.ts +4 -9
- package/lib/component/nav/layout/job-code-nav/job-code-nav.component.ngfactory.d.ts +1 -0
- package/lib/component/nav/nav.component.d.ts +0 -3
- package/lib/component/nav/nav.component.ngfactory.d.ts +1 -0
- package/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.d.ts +0 -3
- package/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ngfactory.d.ts +1 -0
- package/lib/component/route-jobcode-list/route-jobcode-list.component.d.ts +1 -4
- package/lib/component/route-jobcode-list/route-jobcode-list.component.ngfactory.d.ts +1 -0
- package/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.d.ts +0 -3
- package/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ngfactory.d.ts +1 -0
- package/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.d.ts +0 -3
- package/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ngfactory.d.ts +1 -0
- package/lib/component/shared/dialog/dialog.component.d.ts +0 -3
- package/lib/component/shared/dialog/dialog.component.ngfactory.d.ts +1 -0
- package/lib/component/shared/estimation-display/estimation-display.component.d.ts +6 -0
- package/lib/component/shared/estimation-display/estimation-display.component.ngfactory.d.ts +1 -0
- package/lib/component/shared/job-route-list/job-route-list.component.d.ts +2 -7
- package/lib/component/shared/job-route-list/job-route-list.component.ngfactory.d.ts +1 -0
- package/lib/component/shared/jobcode-overview/jobcode-overview.component.d.ts +0 -3
- package/lib/component/shared/jobcode-overview/jobcode-overview.component.ngfactory.d.ts +1 -0
- package/lib/component/shared/jobcode-status/jobcode-status.component.d.ts +0 -3
- package/lib/component/shared/jobcode-status/jobcode-status.component.ngfactory.d.ts +1 -0
- package/lib/coolmap.component.d.ts +0 -3
- package/lib/coolmap.component.ngfactory.d.ts +1 -0
- package/lib/coolmap.module.d.ts +0 -38
- package/lib/coolmap.module.ngfactory.d.ts +3 -0
- package/package.json +8 -21
- package/esm2020/aggdirect-coolmap.mjs +0 -5
- package/esm2020/coolmap.mjs +0 -5
- package/esm2020/lib/component/add-route/add-route.component.mjs +0 -318
- package/esm2020/lib/component/job-code/job-code.component.mjs +0 -119
- package/esm2020/lib/component/map/map.component.mjs +0 -38
- package/esm2020/lib/component/nav/layout/add-route-nav/add-route-nav.component.mjs +0 -87
- package/esm2020/lib/component/nav/layout/job-code-nav/job-code-nav.component.mjs +0 -89
- package/esm2020/lib/component/nav/nav.component.mjs +0 -53
- package/esm2020/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.mjs +0 -68
- package/esm2020/lib/component/route-jobcode-list/route-jobcode-list.component.mjs +0 -314
- package/esm2020/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.mjs +0 -19
- package/esm2020/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.mjs +0 -29
- package/esm2020/lib/component/shared/dialog/dialog.component.mjs +0 -29
- package/esm2020/lib/component/shared/job-route-list/job-route-list.component.mjs +0 -71
- package/esm2020/lib/component/shared/jobcode-overview/jobcode-overview.component.mjs +0 -19
- package/esm2020/lib/component/shared/jobcode-status/jobcode-status.component.mjs +0 -14
- package/esm2020/lib/coolmap.component.mjs +0 -22
- package/esm2020/lib/coolmap.module.mjs +0 -178
- package/fesm2015/aggdirect-coolmap.mjs +0 -1373
- package/fesm2015/aggdirect-coolmap.mjs.map +0 -1
- package/fesm2015/coolmap.mjs +0 -1374
- package/fesm2015/coolmap.mjs.map +0 -1
- package/fesm2020/aggdirect-coolmap.mjs +0 -1349
- package/fesm2020/aggdirect-coolmap.mjs.map +0 -1
- package/fesm2020/coolmap.mjs +0 -1350
- package/fesm2020/coolmap.mjs.map +0 -1
- package/index.d.ts +0 -5
- /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coolmap.umd.js","sources":["../../../projects/coolmap/src/lib/coolmap.component.ts","../../../projects/coolmap/src/lib/component/map/map.component.ts","../../../projects/coolmap/src/lib/component/nav/nav.component.ts","../../../projects/coolmap/src/lib/component/route-jobcode-list/route-jobcode-list.component.ts","../../../projects/coolmap/src/lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component.ts","../../../projects/coolmap/src/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.ts","../../../projects/coolmap/src/lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component.ts","../../../projects/coolmap/src/lib/component/job-code/job-code.component.ts","../../../projects/coolmap/src/lib/component/shared/jobcode-status/jobcode-status.component.ts","../../../projects/coolmap/src/lib/component/shared/job-route-list/job-route-list.component.ts","../../../projects/coolmap/src/lib/component/shared/jobcode-overview/jobcode-overview.component.ts","../../../projects/coolmap/src/lib/component/shared/dialog/dialog.component.ts","../../../projects/coolmap/src/lib/component/add-route/add-route.component.ts","../../../projects/coolmap/src/lib/component/nav/layout/add-route-nav/add-route-nav.component.ts","../../../projects/coolmap/src/lib/component/nav/layout/job-code-nav/job-code-nav.component.ts","../../../projects/coolmap/src/lib/component/shared/estimation-display/estimation-display.component.ts","../../../projects/coolmap/src/lib/coolmap.module.ts","../../../projects/coolmap/src/public-api.ts","../../../projects/coolmap/src/coolmap.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-coolmap',\n template: `\n <p>\n coolmap works!\n </p>\n `,\n styles: [\n ]\n})\nexport class CoolmapComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { CoolmapService } from '@aggdirect/coolmap-services';\r\nimport { Subject } from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.css']\r\n})\r\nexport class MapComponent implements OnDestroy {\r\n @ViewChild('map', { static: true }) public mapDiv!: ElementRef;\r\n enableProgress: boolean = true;\r\n public destroyer$ = new Subject<boolean>();\r\n\r\n constructor( public coolmapService: CoolmapService ) { }\r\n\r\n ngAfterViewInit() {\r\n this.coolmapService.reintiatecoolmap.pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n this.enableProgress = true;\r\n if (res) {\r\n this.coolmapService.initiateMapForAddRoute(this.mapDiv.nativeElement).then((res) => {\r\n this.enableProgress = false;\r\n })\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, EventEmitter, Output, OnDestroy } from '@angular/core';\r\nimport { CoolmapService, UtilsService } from '@aggdirect/coolmap-services';\r\nimport { Subject } from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-nav',\r\n templateUrl: './nav.component.html',\r\n styleUrls: ['./nav.component.scss']\r\n})\r\nexport class NavComponent implements OnDestroy {\r\n @Output() public drawer = new EventEmitter<boolean>();\r\n @Output() public changeNav = new EventEmitter<string>();\r\n navValue: string = 'Jobcode';\r\n isnavChange: boolean = true;\r\n paddinForJobCode = { top: 0, bottom: 250, left: 500, right: 400 };\r\n paddinForViewRoute = { top: 0, bottom: 400, left: 400, right: 0 };\r\n public destroyer$ = new Subject<boolean>();\r\n\r\n constructor(public utils: UtilsService, public coolMap: CoolmapService) {\r\n this.utils.navChangeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => { this.isnavChange = res })\r\n this.coolMap.setPadding(this.paddinForJobCode);\r\n }\r\n\r\n openDrawer() { this.drawer.emit(true) }\r\n chnageNav(name: string): void {\r\n if (this.isnavChange) {\r\n this.changeNav.emit(name); this.navValue = name; this.coolMap.clearBound();\r\n if (name === 'Addroute') { this.coolMap.setPadding(this.paddinForViewRoute) }\r\n else { this.coolMap.setPadding(this.paddinForJobCode) }\r\n this.utils.clearOptions();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { CoolmapService, Route, UtilsService } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-route-jobcode-list',\r\n templateUrl: './route-jobcode-list.component.html',\r\n styleUrls: ['./route-jobcode-list.component.scss']\r\n})\r\nexport class RouteJobCodeListComponent implements OnInit, OnChanges {\r\n @Input() public loader = true;\r\n @Input() public type: string = '';\r\n @Input() public data: Route[] = [];\r\n @Input() public currentNav: string = ''\r\n @Output() public emitroute = new EventEmitter();\r\n @Output() public showAllRoute = new EventEmitter();\r\n preventMouseout: boolean = false;\r\n filterList: Route[] = this.data;\r\n @Input() public searchTerm!: any;\r\n isDriverList: boolean = false;\r\n public selectedRoute = new SelectionModel<any>(true, [])\r\n driverList!: any;\r\n preventListSelect: boolean = false;\r\n @Output() public clearJobDetailsFromList = new EventEmitter();\r\n preventDetailsClose = false;\r\n messageLoader: boolean = false;\r\n driverMessage = new FormControl('', [Validators.maxLength(256)]);\r\n @Input() public clearListSeletion: boolean;\r\n isSmsList: boolean = false;\r\n constructor(public coolMap: CoolmapService, public utils: UtilsService) { this.driverList = [] }\r\n ngOnInit(): void {\r\n this.utils.getpreVentJobdetailclose.subscribe(res => { this.preventDetailsClose = res });\r\n this.utils.removeMapEntityUtility.subscribe((res: Route) => {this.passRoute(res)});\r\n }\r\n passRoute(job: Route) {\r\n this.data.forEach((each) => { if (each['route_id'] !== job['route_id']) { each['isActive'] = false } else { each['isActive'] = true } });\r\n if (this.type == 'addroute') this.filterList.forEach(ele => this.coolMap.filterRoute(ele['route_id'], 'none'));\r\n }\r\n selectRoute(route: any) {\r\n if (!this.preventListSelect) {\r\n this.preventListSelect = true;\r\n this.selectedRoute.toggle(route);\r\n this.clearJobDetailsFromList.emit(true);\r\n this.utils.preVentJobdetailclose.next(false);\r\n this.filterList.forEach(ele => this.coolMap.filterRoute(ele['job_id'], 'none'));\r\n this.clearList();\r\n this.selectedRoute.selected.forEach((ele, index) => {\r\n this.coolMap.filterRoute(ele['job_id'], 'visible', ((this.selectedRoute.selected.length - 1) === index)).then(() => {\r\n this.preventListSelect = false;\r\n })\r\n });\r\n if (!this.selectedRoute.selected.length) {\r\n this.preventListSelect = false\r\n this.data.forEach(ele => this.coolMap.filterRoute(ele['job_id'], 'visible'));\r\n };\r\n }\r\n }\r\n checkroutes(route: Route) {\r\n const selectedRoute = this.selectedRoute.selected;\r\n this.filterList = this.filterList.map(ele => { ele['isSelected'] = false; return ele })\r\n if (selectedRoute.length > 0) {\r\n selectedRoute.forEach(ele => {\r\n if (route['order_number'] === ele['order_number']) { ele['isSelected'] = true }\r\n });\r\n } return route\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n setTimeout(() => {\r\n if (this.currentNav === 'Addroute' && (this.data.length < this.filterList.length)) {\r\n const index = this.filterList.findIndex(ele => ele.isActive);\r\n if (index > 0) this.filterList[index].isActive = false;\r\n this.data.forEach((ele: Route, indexForData: number) => {\r\n const id = (ele['job_id'] ? ele['job_id'] : ele['route_id'])\r\n this.coolMap.plotRoute(ele, id, this.type, false, (indexForData === (this.data.length - 1))).then((res) => {\r\n });\r\n });\r\n }\r\n }, 500);\r\n if (changes['data'] && changes['data']['currentValue']) {\r\n this.filterList = changes['data']['currentValue'];\r\n if (this.searchTerm) {\r\n if (this.searchTerm.length > 0) {\r\n\r\n this.data = this.utils.getSearchResults(changes['data']['currentValue'], this.searchTerm);\r\n this.filterList = this.data;\r\n } else {\r\n this.filterList = changes['data']['currentValue'];\r\n }\r\n }\r\n\r\n if (this.type === 'jobcode') {\r\n this.loader = true; this.clearList();\r\n if (this.filterList.length === 0) this.loader = false;\r\n }\r\n\r\n if (this.type !== 'jobcode') {\r\n if (changes['data']['previousValue'] && this.currentNav === 'addForm') {\r\n const activeRoute = changes['data']['previousValue'].find((ele: Route) => ele.isActive);\r\n if (activeRoute) {\r\n this.filterList.map((item: any) => {\r\n if (item.route_id === activeRoute.route_id) {\r\n item.isActive = true;\r\n }\r\n })\r\n }\r\n }\r\n }\r\n if (changes['data']['previousValue'] && this.currentNav !== 'addForm') {\r\n this.coolMap.removeJobFromMap(changes['data']['previousValue']);\r\n this.selectedRoute.clear();\r\n };\r\n if (this.currentNav !== 'addForm') {\r\n changes['data']['currentValue'].forEach((ele: Route, indexForData: number) => {\r\n const id = (ele['job_id'] ? ele['job_id'] : ele['route_id'])\r\n this.coolMap.plotRoute(ele, id, this.type, false, (indexForData === (this.data.length - 1))).then((res) => {\r\n if (indexForData === (this.data.length - 1)) {\r\n this.loader = false;\r\n this.utils.preventnavChange.next(true);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n if (changes['searchTerm']) {\r\n if (this.filterList) {\r\n this.data = this.filterList;\r\n this.clearList();\r\n if (changes['searchTerm']['currentValue'].length > 0) {\r\n this.coolMap.removeRouteAndMarker(1);\r\n this.data = this.utils.getSearchResults(this.data, changes['searchTerm']['currentValue']);\r\n } else { this.data = this.filterList; }\r\n setTimeout(() => {\r\n this.coolMap.clearBoundWithCordinates();\r\n if (this.currentNav !== 'addForm' && !this.selectedRoute['selected'].length) {\r\n this.coolMap.removeRouteAndMarker(1);\r\n this.toggleFilterRoute(this.filterList);\r\n }\r\n }, 500);\r\n if (this.currentNav !== 'addForm' && this.selectedRoute['selected'].length) {\r\n if (this.data && this.data.length > 0) {\r\n this.clearList();\r\n this.clearJobDetailsFromList.emit(true)\r\n this.coolMap.removeJobFromMap(this.selectedRoute.selected);\r\n setTimeout(() => {\r\n this.data.forEach((ele, indexForData) => {\r\n this.coolMap.plotRoute(ele, ele['job_id'], this.type, false, (indexForData === (this.data.length - 1))).then(() => {\r\n if (indexForData === (this.data.length - 1)) { this.loader = false; this.utils.preventnavChange.next(true) }\r\n if (this.selectedRoute['selected'].length && this.selectedRoute['selected'][0]['job_id'] === ele['job_id']) {\r\n this.selectedRoute.clear()\r\n }\r\n });\r\n })\r\n }, 500);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n showRoute() {\r\n this.utils.preventnavChange.next(false);\r\n this.loader = true; this.clearList();\r\n this.showAllRoute.emit(true);\r\n if (this.filterList && this.filterList.length > 0) {\r\n this.coolMap.removeJobFromMap(this.selectedRoute.selected);\r\n setTimeout(() => {\r\n this.filterList.forEach((ele, indexForData) => {\r\n this.coolMap.plotRoute(ele, ele['job_id'], this.type, false, (indexForData === this.filterList.length - 1)).then(() => {\r\n if (indexForData === this.filterList.length - 1) { this.loader = false; this.utils.preventnavChange.next(true) }\r\n if (this.selectedRoute['selected'].length && this.selectedRoute['selected'][0]['job_id'] === ele['job_id']) {\r\n this.selectedRoute.clear();\r\n }\r\n });\r\n })\r\n }, 500);\r\n }\r\n }\r\n toggleDrivermenu(event: any) {\r\n const mouseevntType = event.mouseevntType; let route = event.route;\r\n const isHoverOut = event.isHoverOut;\r\n if(typeof(mouseevntType) === 'string') {if(this.preventMouseout){this.isDriverList = !this.isDriverList}; this.preventMouseout = true}\r\n if (typeof(mouseevntType) === 'boolean' &&!mouseevntType && !this.preventMouseout) { this.isDriverList = mouseevntType };\r\n if (typeof(mouseevntType) === 'boolean' && mouseevntType && !this.preventMouseout) { this.isDriverList = mouseevntType };\r\n if(this.preventMouseout && !this.isDriverList) this.preventMouseout = false;\r\n if (isHoverOut) {\r\n if (this.preventMouseout) {\r\n route = this.utils.getdictValue('driver-details');\r\n this.driverList = route;\r\n }\r\n if (!this.preventMouseout) {\r\n this.driverList = route\r\n }\r\n } else {\r\n this.driverList = route\r\n }\r\n }\r\n visiblesection(value: string) { if (this.type === value) { return true } else return false }\r\n toggleFilterRoute(filterList: Route[]) {\r\n filterList.forEach((ele) => {\r\n const filterItem = (this.type === 'jobcode') ? 'job_id' : 'route_id';\r\n const index = this.data.findIndex((ele1) => { return (ele1[`${filterItem}`] === ele[`${filterItem}`]) });\r\n const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);\r\n if (id && index < 0) this.coolMap.filterRoute(id, 'none');\r\n if (id && index >= 0) {\r\n this.data[index].isActive = false;\r\n this.coolMap.filterRoute(id, 'visible');\r\n this.coolMap.extendBound(ele['path'], (index === (this.data.length - 1)));\r\n };\r\n });\r\n }\r\n clearList() {\r\n this.isDriverList = false; this.driverList = null; this.preventMouseout = false; this.isSmsList = false;\r\n }\r\n sendMessage() {\r\n this.messageLoader = true\r\n if (this.driverMessage.valid) {\r\n const data = {\r\n order_number: this.driverList['order_number'],\r\n date: this.driverList['date'],\r\n message: this.driverMessage.value,\r\n }\r\n this.utils.postdata('coolmap/jobs_report_chat', data).subscribe((res: any) => {\r\n if (res['data']['status'] === 'Success.') {\r\n this.messageLoader = false;\r\n this.driverMessage.reset();\r\n this.utils.openSnackBar('Message Sent', 'success');\r\n } else {\r\n this.messageLoader = false;\r\n this.utils.openSnackBar('Message not sent', 'error');\r\n }\r\n }, err => {if(err) {this.messageLoader = false}})\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Route, UtilsService } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-view-route-list-card',\r\n templateUrl: './view-route-list-card.component.html',\r\n styleUrls: ['./view-route-list-card.component.scss']\r\n})\r\nexport class ViewRouteListCardComponent {\r\n @Input() public route!: Route;\r\n @Input() public emitrouteevent: any;\r\n constructor(public utils: UtilsService) { }\r\n\r\n detailsDict(event: boolean | string, route: Route) {\r\n if(event === 'click') this.utils.setdictValue('route-detailsv2', JSON.stringify(route));\r\n route['type'] = 'editroute'; route['prevent'] = true; this.emitrouteevent.emit(route);\r\n this.utils.routeDetailsUtility.next({ event, route });\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { DriverSmsCardEnum, DriversmsCardKey } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-sms-card-details-overview',\r\n templateUrl: './sms-card-details-overview.component.html',\r\n styleUrls: ['./sms-card-details-overview.component.scss']\r\n})\r\nexport class SmsCardDetailsOverviewComponent {\r\n @Input() public jobValue: any;\r\n label = DriversmsCardKey;\r\n overViewEnum: any = DriverSmsCardEnum;\r\n constructor() { }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Route, UtilsService } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-job-code-list-card',\r\n templateUrl: './job-code-list-card.component.html',\r\n styleUrls: ['./job-code-list-card.component.scss']\r\n})\r\nexport class JobCodeListCardComponent {\r\n @Input() public route!: Route;\r\n @Output() public routeSeletion = new EventEmitter();\r\n @Output() public toggleDrivermenu = new EventEmitter();\r\n @Input() public emitJobdetails: any;\r\n @Input() public preventCloseDetails!: boolean;\r\n constructor(public utils: UtilsService) { }\r\n\r\n selectRoute(route: Route) { this.routeSeletion.emit(route) }\r\n toggleDriverlist(mouseevntType: boolean | string, route: Route, isHoverOut?: boolean) {\r\n const data = { mouseevntType, route, isHoverOut }\r\n this.toggleDrivermenu.emit(data);\r\n if (mouseevntType === 'click') this.utils.setdictValue('driver-details', JSON.stringify(this.route));\r\n }\r\n toggleJobCodeDetails(mouseEventType: boolean, route: Route) {\r\n if (mouseEventType) { route['type'] = 'jobcode'; this.emitJobdetails.emitroute.emit(route) }\r\n else if(!mouseEventType && this.preventCloseDetails){\r\n route = this.utils.getdictValue('route-details');\r\n route['type'] = 'jobcode'; this.emitJobdetails.emitroute.emit(route)\r\n }\r\n else if (!mouseEventType && !this.preventCloseDetails) this.emitJobdetails.clearJobDetailsFromList.emit(true);\r\n }\r\n calculateStatusPercentage(type: string, route: any) {\r\n const total = route['Done'] + route['Ongoing'] + route['Open'];\r\n if (type === 'done') { return Math.round((100 * route['Done']) / total) }\r\n else if (type === 'ongoing') { return Math.round((100 * route['Ongoing']) / total) }\r\n else if (type === 'open') { return Math.round((100 * route['Open']) / total) }\r\n else { return null }\r\n }\r\n setRouteItem(){\r\n this.utils.preVentJobdetailclose.next(true);\r\n this.utils.setdictValue('route-details', JSON.stringify(this.route));\r\n }\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport { CoolmapService, Route, UtilsService } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-job-code',\r\n templateUrl: './job-code.component.html',\r\n styleUrls: ['./job-code.component.scss']\r\n})\r\nexport class JobCodeComponent implements OnInit, OnDestroy {\r\n @Input() public jobdetail!: any;\r\n isVisible: boolean = false;\r\n routes: Route[] = [];\r\n public selectedRoute = new SelectionModel<any>(true, [])\r\n @Output() public clearJobDetails = new EventEmitter(); isOverlapRouteSection = false;\r\n public destroyer$ = new Subject<boolean>();\r\n detailsCardEnable: boolean | string;\r\n preventMouseout: boolean = false;\r\n routeCardDetail: Route;\r\n preventListUpdate: boolean;\r\n masterRoutes: any;\r\n\r\n constructor(public utils: UtilsService, public coolMap: CoolmapService) {\r\n this.utils.clearViewRouteforJobCodeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => {\r\n if (res) this.coolMap.removeJobFromMap(this.selectedRoute.selected); this.selectedRoute.clear();\r\n });\r\n }\r\n\r\n ngOnInit(): void { this.getRouteList() }\r\n getRouteList() {\r\n this.utils.getData('coolmap/routes/all').pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res) {\r\n this.routes = res.data;\r\n this.masterRoutes = res.data;\r\n this.preventListUpdate = false;\r\n this.utils.clearOptions();\r\n this.routes.forEach((ele: Route) => { this.utils.makeOptions(ele) });\r\n }\r\n })\r\n }\r\n toggleSidemenu() {\r\n this.isVisible = !this.isVisible;\r\n this.detailsCardEnable = false;\r\n this.preventMouseout = false\r\n }\r\n clearJob() { this.clearJobDetails.emit(true); this.utils.preVentJobdetailclose.next(false) }\r\n selectRoute(event: Route) {\r\n const i = this.selectedRoute.selected.findIndex(ele => ele['order_number'] === event['order_number']);\r\n this.selectedRoute.toggle(event);\r\n if (!this.selectedRoute.isSelected(event) && event['route_id']) {\r\n this.coolMap.removeRouteAndMarker(event['route_id']).then((res: any) => {\r\n this.coolMap.extendReBound();\r\n });\r\n } else {\r\n this.coolMap.plotRoute(event, event['route_id'], 'jobrouteList', false, true);\r\n }\r\n }\r\n masterToggle() {\r\n if (this.routes.length === this.selectedRoute.selected.length) {\r\n this.selectedRoute.clear();\r\n this.routes.forEach(row => {\r\n this.coolMap.removeRouteAndMarker(row['route_id']).then((res: any) => { this.coolMap.extendReBound() })\r\n });\r\n } else {\r\n this.routes.forEach(row => {\r\n this.selectedRoute.select(row);\r\n this.coolMap.plotRoute(row, row['route_id'], 'jobrouteList', false, true);\r\n });\r\n }\r\n }\r\n togglerouteDetails(eventType: string | boolean, route: Route, mouseOut?: boolean) {\r\n if (typeof (eventType) === 'string') {\r\n this.preventMouseout = true; this.utils.setdictValue('route-details', JSON.stringify(route));\r\n }\r\n if (typeof (eventType) === 'boolean' && eventType && !this.preventMouseout) { this.detailsCardEnable = eventType };\r\n if (typeof (eventType) === 'boolean' && !eventType && !this.preventMouseout) { this.detailsCardEnable = eventType };\r\n if (this.preventMouseout && !this.detailsCardEnable) this.preventMouseout = false;\r\n if (mouseOut) {\r\n if (this.preventMouseout) {\r\n route = this.utils.getdictValue('route-details');\r\n this.routeCardDetail = route;\r\n }\r\n if (!this.preventMouseout) {\r\n this.routeCardDetail = route\r\n }\r\n } else {\r\n this.routeCardDetail = route\r\n }\r\n this.routeCardDetail['created_at'] = this.utils.getDateFormat(new Date(this.routeCardDetail['created_at']), '/');\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Route } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-jobcode-status',\r\n templateUrl: './jobcode-status.component.html',\r\n styleUrls: ['./jobcode-status.component.scss']\r\n})\r\nexport class JobcodeStatusComponent {\r\n @Input() public jobValue!: Route\r\n constructor() { }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { CoolmapService, Route, UtilsService } from '@aggdirect/coolmap-services';\r\nimport { Observable } from 'rxjs';\r\nimport {startWith, map} from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-job-route-list',\r\n templateUrl: './job-route-list.component.html',\r\n styleUrls: ['./job-route-list.component.scss']\r\n})\r\nexport class JobRouteListComponent {\r\n @Output() public changeNav = new EventEmitter<string | any>();\r\n filteredOptions!: Observable<any[]> | undefined;\r\n preventListUpdate: boolean;\r\n filterForm = new FormGroup({ search: new FormControl() });\r\n filters: any[];\r\n @Input() public routes: Route[];\r\n @Input() public selectedRoute;\r\n @Output() public changeRoutes = new EventEmitter<string | any>();\r\n @Output() public changeSelectedRoute = new EventEmitter<string | any>();\r\n @Input() public masterRoutes: Route[];\r\n\r\n constructor(public utils: UtilsService, public coolMap: CoolmapService) {\r\n this.filters = [];\r\n this.filteredOptions = this.filterForm.get('search')?.valueChanges.pipe(startWith(''),\r\n map(value => this.utils.filter(value, this.filters)));\r\n }\r\n\r\n filterSearch(e: any): void {\r\n this.changeNav.emit({ type: 'Addroute' });\r\n this.preventListUpdate = true;\r\n this.filterForm.controls.search.setValue(null);\r\n this.filters = [{ name: e.source.value.label, type: e.source.value.type, value: e.source.value }];\r\n const filteredRoutes = this.utils.getSearchResults(this.masterRoutes, [{ name: e.source.value.label, type: e.source.value.type, value: e.source.value }]);\r\n this.changeRoutes.emit(filteredRoutes);\r\n this.selectedRoute.selected.forEach((item: any) => {\r\n const routeData = filteredRoutes.find(x => x.route_id === item.route_id);\r\n if (!routeData) {\r\n this.selectedRoute.toggle(item);\r\n this.changeSelectedRoute.emit(this.selectedRoute);\r\n this.coolMap.removeRouteAndMarker(item['route_id']).then((res: any) => {\r\n this.coolMap.extendReBound();\r\n });\r\n }\r\n })\r\n }\r\n\r\n removeFromFilter(filter: any): void {\r\n this.changeNav.emit({ type: 'Addroute' });\r\n const index = this.filters.indexOf(filter);\r\n if (index >= 0) { this.filters = []; this.changeRoutes.emit(this.masterRoutes); }\r\n }\r\n}\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { JobCodeOverviewData, JobCodeOverviewEnum } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-jobcode-overview',\r\n templateUrl: './jobcode-overview.component.html',\r\n styleUrls: ['./jobcode-overview.component.scss']\r\n})\r\nexport class JobcodeOverviewComponent {\r\n @Input() public jobValue: any;\r\n label = JobCodeOverviewData;\r\n overViewEnum: any = JobCodeOverviewEnum;\r\n constructor() { }\r\n\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent {\r\n body = 'Are you sure you want to delete?';\r\n positive = 'Delete';\r\n negative = 'Cancel';\r\n constructor(public dialogRef: MatDialogRef<DialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n ['body', 'positive', 'negative'].map(elem => {\r\n if (this.data[elem] !== undefined) { this[elem] = this.data[elem] }\r\n });\r\n }\r\n onClose(result: boolean) { this.dialogRef.close(result) }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild, Output, EventEmitter, SimpleChanges, OnChanges, Input, OnDestroy } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { fromEvent, Observable, Subject } from 'rxjs';\r\nimport {startWith, map, debounceTime, distinctUntilChanged, takeUntil} from 'rxjs/operators';\r\n\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { CoolmapService, Route, UtilsService } from '@aggdirect/coolmap-services';\r\nimport { DialogComponent } from '../shared/dialog/dialog.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-route',\r\n templateUrl: './add-route.component.html',\r\n styleUrls: ['./add-route.component.scss']\r\n})\r\nexport class AddRouteComponent implements OnInit, OnChanges, OnDestroy {\r\n @ViewChild('filterPickup') public filterPickup!: ElementRef;\r\n @ViewChild('filterDelivery') public filterDelivery!: ElementRef;\r\n @Output() public changeNav = new EventEmitter<string>();\r\n @Output() public updateRouteList = new EventEmitter<boolean>();\r\n pickupOptions: any = [];\r\n deliveryOptions: any = [];\r\n requestParmsForRouteDetails = { pickup_lat_lng: '', delivery_lat_lng: '' }\r\n customersList: any = [];\r\n unitsList: any = [];\r\n materialsList: any = [];\r\n addRouteForm!: FormGroup;\r\n @Input() public routeData!: Route;\r\n @Input() public portalName!: string;\r\n routeId: string | null | undefined;\r\n preventSave: boolean = false;\r\n preventInitialSave: boolean = false;\r\n customersList$!: Observable<any>;\r\n routeDetails!: { pickup_location: string | null | undefined; delivery_location: string | null | undefined; } | null;\r\n public destroyer$ = new Subject<boolean>();\r\n popupDetails: Route;\r\n enablePopUp: boolean = false;\r\n prevantPopupClose = false;\r\n enableForm: boolean = false;\r\n\r\n constructor(public coolMapService: CoolmapService, public utils: UtilsService, public dialog: MatDialog) { \r\n this.formInit();\r\n this.utils.getrouteDetailsUtility.subscribe(res => {\r\n if (res) {\r\n if (res['event'] !== 'click' && !this.prevantPopupClose) { this.enablePopUp = res['event'] }\r\n else if (this.enablePopUp && !this.prevantPopupClose) { this.prevantPopupClose = true; }\r\n if (res['event'] !== 'click' && !res['event'] && this.prevantPopupClose) {\r\n this.popupDetails = this.utils.getdictValue('route-detailsv2');\r\n } else { this.popupDetails = res['route'] }\r\n if (this.enablePopUp) this.popupDetails['created_at'] = this.utils.getDateFormat(new Date(this.popupDetails['created_at']), '/');\r\n }\r\n });\r\n }\r\n filterCustomerList() {\r\n this.customersList$ = this.addRouteForm.controls['customer_name'].valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filter(value || '')),\r\n );\r\n }\r\n public _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n return this.customersList.filter((option: any) => option['customer_name'].toLowerCase().includes(filterValue));\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['routeData'] && !changes['routeData']['currentValue']) this.inIt(null);\r\n }\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(DialogComponent, {\r\n data: { body: 'Are you sure you want to delete this route?' },\r\n });\r\n dialogRef.afterClosed().subscribe(res => { if (res) { this.deleteRoute() } });\r\n }\r\n editEvent(){\r\n this.prevantPopupClose = false;\r\n this.enableForm = true; this.enablePopUp = false;\r\n this.popupDetails['prevent'] = false;\r\n this.utils.removeMapEntity.next(this.popupDetails);\r\n this.inIt(this.popupDetails);\r\n }\r\n inIt(changes: Route) {\r\n if (changes) {\r\n if (!changes['prevent']) {\r\n this.preventSave = false;\r\n this.formControlValue();\r\n this.patchFormValue(changes); this.checkAndFetchRouteInformation(true)\r\n }\r\n }\r\n if (!changes) { this.enableForm = true; this.preventSave = true; this.patchFormValue(); this.checkAndFetchRouteInformation() }\r\n }\r\n ngOnInit(): void {\r\n this.fetchCustomersList();\r\n this.fetchUnitsList();\r\n this.fetchMaterialsList();\r\n this.formControlValue();\r\n }\r\n\r\n ngAfterViewInit() {\r\n fromEvent(this.filterPickup.nativeElement, 'keyup').pipe(\r\n distinctUntilChanged(), debounceTime(150)).pipe(takeUntil(this.destroyer$)).subscribe(() => {\r\n this.utils.fetchAutoCompleteLocations(this.filterPickup.nativeElement.value).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n this.pickupOptions = res.features;\r\n });\r\n });\r\n\r\n fromEvent(this.filterDelivery.nativeElement, 'keyup').pipe(\r\n distinctUntilChanged(), debounceTime(150)).pipe(takeUntil(this.destroyer$)).subscribe(() => {\r\n this.utils.fetchAutoCompleteLocations(this.filterDelivery.nativeElement.value).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n this.deliveryOptions = res.features;\r\n });\r\n });\r\n }\r\n\r\n formControlValue() {\r\n this.addRouteForm.controls['pickup_location']?.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (this.addRouteForm.value.pickup_location && res !== this.addRouteForm.value.pickup_location) {\r\n this.addRouteForm.patchValue({\r\n pickup_lat_lng: '',\r\n });\r\n this.addRouteForm.controls['pickup_lat_lng'].markAsTouched();\r\n }\r\n });\r\n\r\n this.addRouteForm.controls['delivery_location']?.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (this.addRouteForm.value.delivery_location && res !== this.addRouteForm.value.delivery_location) {\r\n this.addRouteForm.patchValue({\r\n delivery_lat_lng: '',\r\n });\r\n this.addRouteForm.controls['delivery_lat_lng'].markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n formInit() {\r\n this.addRouteForm = new FormGroup({\r\n route_name: new FormControl('', [Validators.required]),\r\n customer_name: new FormControl({value: '', disabled: true}, [Validators.required]),\r\n materials_id: new FormControl('', [Validators.required]),\r\n unit_id: new FormControl('', [Validators.required]),\r\n path: new FormControl('', [Validators.required]),\r\n pickup_location: new FormControl('', [Validators.required]),\r\n pickup_lat_lng: new FormControl('', [Validators.required]),\r\n delivery_location: new FormControl('', [Validators.required]),\r\n delivery_lat_lng: new FormControl('', [Validators.required]),\r\n estimated_distance: new FormControl('', [Validators.required]),\r\n estimated_time: new FormControl('', [Validators.required]),\r\n note: new FormControl('', [Validators.maxLength(2048)]),\r\n });\r\n }\r\n\r\n patchFormValue(data?: Route) {\r\n this.addRouteForm.reset();\r\n this.addRouteForm.patchValue(data!);\r\n this.routeId = data?.route_id;\r\n this.routeDetails = data ? { pickup_location: data.pickup_location, delivery_location: data.delivery_location } : null;\r\n this.addRouteForm.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe(res => {\r\n if (res) { if (this.preventInitialSave) this.preventInitialSave = false }\r\n });\r\n this.filterCustomerList();\r\n }\r\n\r\n fetchCustomersList() {\r\n this.utils.getData(`${this.portalName}/company/list/view`).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res) { this.customersList = res.data; this.filterCustomerList(); this.addRouteForm.controls['customer_name'].enable(); }\r\n })\r\n }\r\n\r\n fetchUnitsList() {\r\n this.utils.getData(`${this.portalName}/unit/list/view`).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res) { this.unitsList = res.data }\r\n })\r\n }\r\n\r\n fetchMaterialsList() {\r\n this.utils.getData(`${this.portalName}/material/list/view`).pipe(takeUntil(this.destroyer$)).subscribe(((res: any) => {\r\n res.data.sort((a: any, b: any) => a.material.localeCompare(b.material))\r\n this.materialsList = res.data\r\n }))\r\n }\r\n\r\n selectedLongLat(type: string, event: any) {\r\n if (type === 'pickup') {\r\n this.addRouteForm.patchValue({\r\n pickup_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()\r\n });\r\n this.coolMapService.clearBoundWithCordinates();\r\n } else if (type === 'delivery') {\r\n this.addRouteForm.patchValue({\r\n delivery_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()\r\n })\r\n }\r\n this.checkAndFetchRouteInformation();\r\n }\r\n\r\n checkAndFetchRouteInformation(isinitial?: boolean) {\r\n if (this.addRouteForm.value?.delivery_lat_lng?.length > 0 && this.addRouteForm.value?.pickup_lat_lng?.length > 0 && this.addRouteForm.value.unit_id) {\r\n let unit = this.unitsList.find((x: any) => x.id === this.addRouteForm.value.unit_id);\r\n const param = {\r\n delivery_lat_lng: this.addRouteForm.value.delivery_lat_lng,\r\n pickup_lat_lng: this.addRouteForm.value.pickup_lat_lng,\r\n unit: unit?.type\r\n };\r\n this.utils.postdata('coolmap/calculate/routes/estimation', param).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res && res['path']) {\r\n this.addRouteForm.patchValue({\r\n estimated_distance: res.dist, estimated_time: res.time, path: res.path\r\n });\r\n let path = res['path'].split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n res['path'] = path;\r\n const element: any = {\r\n type: 'FeatureCollection',\r\n features: [{ type: 'Feature', properties: {}, geometry: { type: 'LineString', coordinates: res['path'] } }]\r\n }\r\n this.coolMapService.removeRouteAndMarker(1).then(() => {\r\n const unit = this.unitsList.find((x: any) => x.id === this.addRouteForm.value.unit_id);\r\n const materialDetails = this.materialsList.find((x: any) => x.material_id === this.addRouteForm.value.materials_id);\r\n this.coolMapService.loadMapProperty(element, 1, unit?.type,\r\n {\r\n pickup_location: this.addRouteForm.get('pickup_location')?.value,\r\n delivery_location: this.addRouteForm.get('delivery_location')?.value,\r\n route_name: this.addRouteForm.get('route_name')?.value,\r\n material: materialDetails?.material, unit: unit?.type\r\n }).then((res) =>{this.preventSave = true});\r\n });\r\n } else {\r\n this.coolMapService.removeRouteAndMarker(1);\r\n this.utils.openSnackBar(res['status'], 'error');\r\n }\r\n if (this.routeId && isinitial) this.preventInitialSave = true;\r\n });\r\n } else { this.coolMapService.removeRouteAndMarker(1) }\r\n }\r\n\r\n formateLatLong(latlong: string) { return latlong ? latlong.split(',').map(x => +x).reverse() : null }\r\n saveRoute() {\r\n if (this.addRouteForm.valid) {\r\n this.preventSave = false;\r\n const data = this.addRouteForm.value;\r\n data['trucker_pay_estimate'] = null;\r\n data['customer_price_estimate'] = null;\r\n const url = this.routeId ? this.utils.postdata('coolmap/update/routes', data) : this.utils.postdata('coolmap/add/routes', data)\r\n if (this.routeId) data['id'] = this.routeId;\r\n url.pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res.success) {\r\n this.updateRouteList.emit(true);\r\n this.utils.openSnackBar(res.message, 'success');\r\n this.preventInitialSave = true;\r\n this.preventSave = true;\r\n if(!this.routeId)this.changeNav.next('Addroute');\r\n } else {\r\n this.utils.openSnackBar(res.message, 'error');\r\n this.preventSave = true;\r\n }\r\n }, (err) => { if (err) { this.preventSave = true; } });\r\n } else {\r\n this.addRouteForm.markAllAsTouched();\r\n }\r\n }\r\n deleteRoute() {\r\n this.preventSave = false;\r\n this.utils.postdata('coolmap/delete/routes', { uuid: this.routeId }).subscribe(res => {\r\n if (res['data']['success']) {\r\n this.utils.openSnackBar(res['data']['message'], 'success');\r\n this.updateRouteList.emit(true);\r\n this.changeNav.next('Addroute');\r\n this.preventInitialSave = true;\r\n this.preventSave = true;\r\n } else {\r\n this.utils.openSnackBar('Somthing went wrong', 'error');\r\n this.preventSave = true;\r\n }\r\n }, (err) =>{this.preventSave = true})\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, EventEmitter, Output, Input, SimpleChanges, OnDestroy } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Route, UtilsService } from '@aggdirect/coolmap-services';\r\nimport { Observable } from 'rxjs';\r\ninterface Filter {\r\n name?: string;\r\n type: string;\r\n value: any;\r\n label?: string;\r\n}\r\nimport { Subject } from 'rxjs';\r\nimport {startWith, map, takeUntil} from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-route-nav',\r\n templateUrl: './add-route-nav.component.html',\r\n styleUrls: ['./add-route-nav.component.scss']\r\n})\r\n\r\nexport class AddRouteNavComponent implements OnDestroy {\r\n filterForm = new FormGroup({ search: new FormControl() });\r\n filteredOptions!: Observable<any[]> | undefined;\r\n filters: Filter[] = [];\r\n loaderVal = false;\r\n routes: Route[] = [];\r\n @Output() public changeNav = new EventEmitter<string | any>();\r\n @Input() public navValue: string = '';\r\n @Output() public addemit = new EventEmitter();\r\n @Input() public updateRouteList: boolean = false;\r\n public destroyer$ = new Subject<boolean>();\r\n preventListUpdate: boolean = false;\r\n constructor(public utils: UtilsService) {\r\n this.filteredOptions = this.filterForm.get('search')?.valueChanges.pipe(startWith(''),\r\n map(value => this.utils.filter(value, this.filters)));\r\n }\r\n\r\n showAddForm() { this.changeNav.emit('addForm'); this.addemit.emit('') }\r\n filterSearch(e: any): void {\r\n this.changeNav.emit({type: 'Addroute'});\r\n this.preventListUpdate = true;\r\n this.filterForm.controls.search.setValue(null);\r\n this.filters = [{ name: e.source.value.label, type: e.source.value.type, value: e.source.value }]\r\n }\r\n removeFromFilter(filter: any): void {\r\n this.changeNav.emit({type: 'Addroute'});\r\n const index = this.filters.indexOf(filter);\r\n if (index >= 0) { this.filters = [] }\r\n }\r\n ngAfterViewInit(): void { this.getRouteList() }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['updateRouteList'] && changes['updateRouteList']['currentValue']) this.getRouteList();\r\n if(changes['navValue'] && (changes['navValue']['previousValue'] === 'addForm') && !this.preventListUpdate) this.getRouteList();\r\n }\r\n getRoute(event: Route) { if (event['type'] === 'editroute') { this.addemit.emit(event) } }\r\n getRouteList() {\r\n this.utils.getData('coolmap/routes/all').pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (res) {\r\n this.filters = [];\r\n this.routes = res['data']\r\n this.preventListUpdate = false;\r\n this.utils.clearOptions();\r\n this.routes.forEach((ele: Route) => { this.utils.makeOptions(ele) });\r\n }\r\n });\r\n }\r\n resetSearch() { this.changeNav.emit('Addroute') }\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, OnInit, EventEmitter, Output, OnDestroy } from '@angular/core';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\ninterface Filter { name?: string; type: string; value: any; label?: string; }\r\nimport { Subject } from 'rxjs';\r\nimport { Route, UtilsService } from '@aggdirect/coolmap-services';\r\nimport {startWith, map, takeUntil} from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-job-code-nav',\r\n templateUrl: './job-code-nav.component.html',\r\n styleUrls: ['./job-code-nav.component.scss']\r\n})\r\nexport class JobCodeNavComponent implements OnInit, OnDestroy {\r\n filterForm = new FormGroup({ search: new FormControl() });\r\n listData: Route[] = [];\r\n loaderVal: boolean = false;\r\n dateValue = new Date();\r\n @Output() public jobemit = new EventEmitter();\r\n value = '';\r\n filteredOptions!: Observable<any[]> | undefined;\r\n filters: Filter[] = [];\r\n @Output() public clearJobDetails = new EventEmitter();\r\n public destroyer$ = new Subject<boolean>();\r\n\r\n constructor(public utils: UtilsService) {\r\n utils.navChangeObserve.pipe(takeUntil(this.destroyer$)).subscribe(res => {\r\n if (res) { this.loaderVal = false } else this.loaderVal = true\r\n });\r\n }\r\n ngOnInit(): void { this.loadData(this.utils.getDateFormat(new Date())) }\r\n loadData(value: string) {\r\n this.filteredOptions = this.filterForm.get('search')?.valueChanges.pipe(startWith(''),\r\n map(value => this.utils.filter(value, this.filters)),\r\n );\r\n this.utils.preventnavChange.next(false);\r\n this.loaderVal = true;\r\n this.utils.postdata('coolmap/jobs_report_v2', { date: value }).pipe(takeUntil(this.destroyer$)).subscribe((res: any) => {\r\n if (typeof res['data'] !== 'string') {\r\n if (res['data'].length > 0) this.listData = res['data'].map((ele: Route) => {ele['date'] = value; return ele});\r\n this.listData.forEach((ele: Route) => { this.utils.makeOptions(ele) });\r\n } else this.listData = [];\r\n this.clearJobDetails.emit(true);\r\n this.utils.clearViewRouteforJobCode.next(true);\r\n this.filters = [];\r\n if (typeof res['data'] === 'string') this.utils.preventnavChange.next(true);\r\n }, (err) => { if (err) this.utils.preventnavChange.next(true) });\r\n }\r\n getRoute(job: Route) { if(job['type'] === 'jobcode'){ this.jobemit.emit(job)} }\r\n getDate(ev: MatDatepickerInputEvent<Date>){this.loadData(this.utils.getDateFormat(ev.value))}\r\n filterSearch(e: any): void {\r\n this.filterForm.controls.search.setValue(null);\r\n this.filterForm.controls.search.updateValueAndValidity();\r\n this.filters = [{ name: e.source.value.label, type: e.source.value.type, value: e.source.value}]\r\n }\r\n removeFromFilter(filter: any): void {\r\n const index = this.filters.indexOf(filter);\r\n if (index >= 0) { this.filters = [] }\r\n }\r\n ngOnDestroy(): void {\r\n this.destroyer$.next(true);\r\n this.destroyer$.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { EstinationEnum, EstinationData } from '@aggdirect/coolmap-services';\r\n\r\n@Component({\r\n selector: 'app-estimation-display',\r\n templateUrl: './estimation-display.component.html',\r\n styleUrls: ['./estimation-display.component.scss']\r\n})\r\nexport class EstimationDisplayComponent {\r\n @Input() value!: any;\r\n label = EstinationData;\r\n Estinationlabel: any = EstinationEnum;\r\n constructor() { }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CoolmapComponent } from './coolmap.component';\r\nimport { MapComponent } from './component/map/map.component';\r\nimport { NavComponent } from './component/nav/nav.component';\r\n\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { CommonModule } from '@angular/common';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule, MatPseudoCheckboxModule } from '@angular/material/core';\r\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport { RouteJobCodeListComponent } from './component/route-jobcode-list/route-jobcode-list.component';\r\nimport { ViewRouteListCardComponent } from './component/route-jobcode-list/view-route-list-card/view-route-list-card.component';\r\nimport { SmsCardDetailsOverviewComponent } from './component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component';\r\nimport { JobCodeListCardComponent } from './component/route-jobcode-list/job-code-list-card/job-code-list-card.component';\r\nimport { JobCodeComponent } from './component/job-code/job-code.component';\r\nimport { JobcodeStatusComponent } from './component/shared/jobcode-status/jobcode-status.component';\r\nimport { JobRouteListComponent } from './component/shared/job-route-list/job-route-list.component';\r\nimport { JobcodeOverviewComponent } from './component/shared/jobcode-overview/jobcode-overview.component';\r\nimport { DialogComponent } from './component/shared/dialog/dialog.component';\r\nimport { AddRouteComponent } from './component/add-route/add-route.component';\r\nimport { AddRouteNavComponent } from './component/nav/layout/add-route-nav/add-route-nav.component';\r\nimport { JobCodeNavComponent } from './component/nav/layout/job-code-nav/job-code-nav.component';\r\nimport { EstimationDisplayComponent } from './component/shared/estimation-display/estimation-display.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CoolmapComponent,\r\n MapComponent,\r\n NavComponent,\r\n AddRouteNavComponent,\r\n JobCodeNavComponent,\r\n RouteJobCodeListComponent,\r\n ViewRouteListCardComponent,\r\n SmsCardDetailsOverviewComponent,\r\n JobCodeListCardComponent,\r\n JobCodeComponent,\r\n JobRouteListComponent,\r\n JobcodeStatusComponent,\r\n JobcodeOverviewComponent,\r\n DialogComponent,\r\n AddRouteComponent,\r\n EstimationDisplayComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatSnackBarModule,\r\n MatSidenavModule,\r\n DragDropModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatAutocompleteModule,\r\n MatFormFieldModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n PerfectScrollbarModule,\r\n MatPseudoCheckboxModule,\r\n MatButtonModule,\r\n MatProgressBarModule,\r\n ],\r\n exports: [\r\n CoolmapComponent,\r\n MapComponent,\r\n NavComponent,\r\n AddRouteNavComponent,\r\n JobCodeNavComponent,\r\n RouteJobCodeListComponent,\r\n ViewRouteListCardComponent,\r\n SmsCardDetailsOverviewComponent,\r\n JobCodeListCardComponent,\r\n JobCodeComponent,\r\n JobRouteListComponent,\r\n JobcodeStatusComponent,\r\n JobcodeOverviewComponent,\r\n DialogComponent,\r\n AddRouteComponent,\r\n EstimationDisplayComponent\r\n ],\r\n entryComponents: [\r\n DialogComponent,\r\n JobCodeComponent,\r\n AddRouteComponent\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class CoolmapModule { }\r\n","/*\r\n * Public API Surface of coolmap\r\n */\r\n\r\nexport * from './lib/coolmap.component';\r\nexport * from './lib/coolmap.module';\r\nexport * from './lib/component/map/map.component';\r\nexport * from './lib/component/nav/nav.component';\r\nexport * from './lib/component/nav/layout/add-route-nav/add-route-nav.component';\r\nexport * from './lib/component/nav/layout/job-code-nav/job-code-nav.component';\r\n\r\nexport * from './lib/component/route-jobcode-list/route-jobcode-list.component';\r\nexport * from './lib/component/route-jobcode-list/view-route-list-card/view-route-list-card.component';\r\nexport * from './lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component';\r\nexport * from './lib/component/route-jobcode-list/job-code-list-card/job-code-list-card.component';\r\nexport * from './lib/component/job-code/job-code.component';\r\nexport * from './lib/component/add-route/add-route.component';\r\nexport * from './lib/component/shared/jobcode-status/jobcode-status.component';\r\nexport * from './lib/component/shared/job-route-list/job-route-list.component';\r\nexport * from './lib/component/shared/jobcode-overview/jobcode-overview.component';\r\nexport * from './lib/component/shared/dialog/dialog.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {EstimationDisplayComponent as ɵa} from './lib/component/shared/estimation-display/estimation-display.component';"],"names":["Component","Subject","takeUntil","CoolmapService","ViewChild","EventEmitter","UtilsService","Output","SelectionModel","FormControl","Validators","Input","DriversmsCardKey","DriverSmsCardEnum","FormGroup","startWith","map","JobCodeOverviewData","JobCodeOverviewEnum","MatDialogRef","Inject","MAT_DIALOG_DATA","fromEvent","distinctUntilChanged","debounceTime","MatDialog","EstinationData","EstinationEnum","NgModule","CommonModule","MatSnackBarModule","MatSidenavModule","DragDropModule","FormsModule","MatInputModule","MatSelectModule","MatIconModule","ReactiveFormsModule","MatAutocompleteModule","MatFormFieldModule","MatProgressSpinnerModule","MatChipsModule","MatDialogModule","MatTooltipModule","MatDatepickerModule","MatNativeDateModule","PerfectScrollbarModule","MatPseudoCheckboxModule","MatButtonModule","MatProgressBarModule"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@aggdirect/coolmap-services"),require("rxjs"),require("rxjs/operators"),require("@angular/material/sidenav"),require("@angular/material/snack-bar"),require("@angular/cdk/drag-drop"),require("@angular/forms"),require("@angular/material/input"),require("@angular/material/select"),require("@angular/material/icon"),require("@angular/material/autocomplete"),require("@angular/material/form-field"),require("@angular/material/progress-spinner"),require("@angular/material/chips"),require("@angular/material/dialog"),require("@angular/common"),require("@angular/material/tooltip"),require("@angular/material/datepicker"),require("@angular/material/core"),require("ngx-perfect-scrollbar"),require("@angular/material/button"),require("@angular/material/progress-bar"),require("@angular/cdk/collections")):"function"==typeof define&&define.amd?define("coolmap",["exports","@angular/core","@aggdirect/coolmap-services","rxjs","rxjs/operators","@angular/material/sidenav","@angular/material/snack-bar","@angular/cdk/drag-drop","@angular/forms","@angular/material/input","@angular/material/select","@angular/material/icon","@angular/material/autocomplete","@angular/material/form-field","@angular/material/progress-spinner","@angular/material/chips","@angular/material/dialog","@angular/common","@angular/material/tooltip","@angular/material/datepicker","@angular/material/core","ngx-perfect-scrollbar","@angular/material/button","@angular/material/progress-bar","@angular/cdk/collections"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).coolmap={},t.ng.core,t.coolmapServices,t.rxjs,t.rxjs.operators,t.ng.material.sidenav,t.ng.material.snackBar,t.ng.cdk.dragDrop,t.ng.forms,t.ng.material.input,t.ng.material.select,t.ng.material.icon,t.ng.material.autocomplete,t.ng.material.formField,t.ng.material.progressSpinner,t.ng.material.chips,t.ng.material.dialog,t.ng.common,t.ng.material.tooltip,t.ng.material.datepicker,t.ng.material.core,t.ngxPerfectScrollbar,t.ng.material.button,t.ng.material.progressBar,t.ng.cdk.collections)}(this,(function(t,e,i,r,o,n,a,s,l,p,d,u,c,m,h,b,f,g,v,x,y,_,w,k,C){"use strict";var R=function(){function t(){}return t.prototype.ngOnInit=function(){},t}();R.decorators=[{type:e.Component,args:[{selector:"lib-coolmap",template:"\n <p>\n coolmap works!\n </p>\n "}]}],R.ctorParameters=function(){return[]};var D=function(){function t(t){this.coolmapService=t,this.enableProgress=!0,this.destroyer$=new r.Subject}return t.prototype.ngAfterViewInit=function(){var t=this;this.coolmapService.reintiatecoolmap.pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){t.enableProgress=!0,e&&t.coolmapService.initiateMapForAddRoute(t.mapDiv.nativeElement).then((function(e){t.enableProgress=!1}))}))},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();D.decorators=[{type:e.Component,args:[{selector:"app-map",template:'<div>\r\n <mat-progress-bar *ngIf="enableProgress" mode="indeterminate"></mat-progress-bar>\r\n <div #map class="coolmap" style="height: 100vh;"></div>\r\n</div>\r\n',styles:[""]}]}],D.ctorParameters=function(){return[{type:i.CoolmapService}]},D.propDecorators={mapDiv:[{type:e.ViewChild,args:["map",{static:!0}]}]};var F=function(){function t(t,i){var n=this;this.utils=t,this.coolMap=i,this.drawer=new e.EventEmitter,this.changeNav=new e.EventEmitter,this.navValue="Jobcode",this.isnavChange=!0,this.paddinForJobCode={top:0,bottom:250,left:500,right:400},this.paddinForViewRoute={top:0,bottom:400,left:400,right:0},this.destroyer$=new r.Subject,this.utils.navChangeObserve.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){n.isnavChange=t})),this.coolMap.setPadding(this.paddinForJobCode)}return t.prototype.openDrawer=function(){this.drawer.emit(!0)},t.prototype.chnageNav=function(t){this.isnavChange&&(this.changeNav.emit(t),this.navValue=t,this.coolMap.clearBound(),"Addroute"===t?this.coolMap.setPadding(this.paddinForViewRoute):this.coolMap.setPadding(this.paddinForJobCode),this.utils.clearOptions())},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();F.decorators=[{type:e.Component,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:#fff;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:#fff}.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:#fff}"]}]}],F.ctorParameters=function(){return[{type:i.UtilsService},{type:i.CoolmapService}]},F.propDecorators={drawer:[{type:e.Output}],changeNav:[{type:e.Output}]};var L=function(){function t(t,i){this.coolMap=t,this.utils=i,this.loader=!0,this.type="",this.data=[],this.currentNav="",this.emitroute=new e.EventEmitter,this.showAllRoute=new e.EventEmitter,this.preventMouseout=!1,this.filterList=this.data,this.isDriverList=!1,this.selectedRoute=new C.SelectionModel(!0,[]),this.preventListSelect=!1,this.clearJobDetailsFromList=new e.EventEmitter,this.preventDetailsClose=!1,this.messageLoader=!1,this.driverMessage=new l.FormControl("",[l.Validators.maxLength(256)]),this.isSmsList=!1,this.driverList=[]}return t.prototype.ngOnInit=function(){var t=this;this.utils.getpreVentJobdetailclose.subscribe((function(e){t.preventDetailsClose=e})),this.utils.removeMapEntityUtility.subscribe((function(e){t.passRoute(e)}))},t.prototype.passRoute=function(t){var e=this;this.data.forEach((function(e){e.route_id!==t.route_id?e.isActive=!1:e.isActive=!0})),"addroute"==this.type&&this.filterList.forEach((function(t){return e.coolMap.filterRoute(t.route_id,"none")}))},t.prototype.selectRoute=function(t){var e=this;this.preventListSelect||(this.preventListSelect=!0,this.selectedRoute.toggle(t),this.clearJobDetailsFromList.emit(!0),this.utils.preVentJobdetailclose.next(!1),this.filterList.forEach((function(t){return e.coolMap.filterRoute(t.job_id,"none")})),this.clearList(),this.selectedRoute.selected.forEach((function(t,i){e.coolMap.filterRoute(t.job_id,"visible",e.selectedRoute.selected.length-1===i).then((function(){e.preventListSelect=!1}))})),this.selectedRoute.selected.length||(this.preventListSelect=!1,this.data.forEach((function(t){return e.coolMap.filterRoute(t.job_id,"visible")}))))},t.prototype.checkroutes=function(t){var e=this.selectedRoute.selected;return this.filterList=this.filterList.map((function(t){return t.isSelected=!1,t})),e.length>0&&e.forEach((function(e){t.order_number===e.order_number&&(e.isSelected=!0)})),t},t.prototype.ngOnChanges=function(t){var e=this;if(setTimeout((function(){if("Addroute"===e.currentNav&&e.data.length<e.filterList.length){var t=e.filterList.findIndex((function(t){return t.isActive}));t>0&&(e.filterList[t].isActive=!1),e.data.forEach((function(t,i){var r=t.job_id?t.job_id:t.route_id;e.coolMap.plotRoute(t,r,e.type,!1,i===e.data.length-1).then((function(t){}))}))}}),500),t.data&&t.data.currentValue){if(this.filterList=t.data.currentValue,this.searchTerm&&(this.searchTerm.length>0?(this.data=this.utils.getSearchResults(t.data.currentValue,this.searchTerm),this.filterList=this.data):this.filterList=t.data.currentValue),"jobcode"===this.type&&(this.loader=!0,this.clearList(),0===this.filterList.length&&(this.loader=!1)),"jobcode"!==this.type&&t.data.previousValue&&"addForm"===this.currentNav){var i=t.data.previousValue.find((function(t){return t.isActive}));i&&this.filterList.map((function(t){t.route_id===i.route_id&&(t.isActive=!0)}))}t.data.previousValue&&"addForm"!==this.currentNav&&(this.coolMap.removeJobFromMap(t.data.previousValue),this.selectedRoute.clear()),"addForm"!==this.currentNav&&t.data.currentValue.forEach((function(t,i){var r=t.job_id?t.job_id:t.route_id;e.coolMap.plotRoute(t,r,e.type,!1,i===e.data.length-1).then((function(t){i===e.data.length-1&&(e.loader=!1,e.utils.preventnavChange.next(!0))}))}))}t.searchTerm&&this.filterList&&(this.data=this.filterList,this.clearList(),t.searchTerm.currentValue.length>0?(this.coolMap.removeRouteAndMarker(1),this.data=this.utils.getSearchResults(this.data,t.searchTerm.currentValue)):this.data=this.filterList,setTimeout((function(){e.coolMap.clearBoundWithCordinates(),"addForm"===e.currentNav||e.selectedRoute.selected.length||(e.coolMap.removeRouteAndMarker(1),e.toggleFilterRoute(e.filterList))}),500),"addForm"!==this.currentNav&&this.selectedRoute.selected.length&&this.data&&this.data.length>0&&(this.clearList(),this.clearJobDetailsFromList.emit(!0),this.coolMap.removeJobFromMap(this.selectedRoute.selected),setTimeout((function(){e.data.forEach((function(t,i){e.coolMap.plotRoute(t,t.job_id,e.type,!1,i===e.data.length-1).then((function(){i===e.data.length-1&&(e.loader=!1,e.utils.preventnavChange.next(!0)),e.selectedRoute.selected.length&&e.selectedRoute.selected[0].job_id===t.job_id&&e.selectedRoute.clear()}))}))}),500)))},t.prototype.showRoute=function(){var t=this;this.utils.preventnavChange.next(!1),this.loader=!0,this.clearList(),this.showAllRoute.emit(!0),this.filterList&&this.filterList.length>0&&(this.coolMap.removeJobFromMap(this.selectedRoute.selected),setTimeout((function(){t.filterList.forEach((function(e,i){t.coolMap.plotRoute(e,e.job_id,t.type,!1,i===t.filterList.length-1).then((function(){i===t.filterList.length-1&&(t.loader=!1,t.utils.preventnavChange.next(!0)),t.selectedRoute.selected.length&&t.selectedRoute.selected[0].job_id===e.job_id&&t.selectedRoute.clear()}))}))}),500))},t.prototype.toggleDrivermenu=function(t){var e=t.mouseevntType,i=t.route,r=t.isHoverOut;"string"==typeof e&&(this.preventMouseout&&(this.isDriverList=!this.isDriverList),this.preventMouseout=!0),"boolean"!=typeof e||e||this.preventMouseout||(this.isDriverList=e),"boolean"==typeof e&&e&&!this.preventMouseout&&(this.isDriverList=e),this.preventMouseout&&!this.isDriverList&&(this.preventMouseout=!1),r?(this.preventMouseout&&(i=this.utils.getdictValue("driver-details"),this.driverList=i),this.preventMouseout||(this.driverList=i)):this.driverList=i},t.prototype.visiblesection=function(t){return this.type===t},t.prototype.toggleFilterRoute=function(t){var e=this;t.forEach((function(t){var i="jobcode"===e.type?"job_id":"route_id",r=e.data.findIndex((function(e){return e[""+i]===t[""+i]})),o=t.job_id?t.job_id:t.route_id;o&&r<0&&e.coolMap.filterRoute(o,"none"),o&&r>=0&&(e.data[r].isActive=!1,e.coolMap.filterRoute(o,"visible"),e.coolMap.extendBound(t.path,r===e.data.length-1))}))},t.prototype.clearList=function(){this.isDriverList=!1,this.driverList=null,this.preventMouseout=!1,this.isSmsList=!1},t.prototype.sendMessage=function(){var t=this;if(this.messageLoader=!0,this.driverMessage.valid){var e={order_number:this.driverList.order_number,date:this.driverList.date,message:this.driverMessage.value};this.utils.postdata("coolmap/jobs_report_chat",e).subscribe((function(e){"Success."===e.data.status?(t.messageLoader=!1,t.driverMessage.reset(),t.utils.openSnackBar("Message Sent","success")):(t.messageLoader=!1,t.utils.openSnackBar("Message not sent","error"))}),(function(e){e&&(t.messageLoader=!1)}))}},t}();L.decorators=[{type:e.Component,args:[{selector:"app-route-jobcode-list",template:'<div class="scrollprt addroutelist" [class.viewroute]="visiblesection(\'addroute\')"\r\n [class.jobList]="visiblesection(\'jobcode\')">\r\n <button (click)="showRoute()" [disabled]="loader" *ngIf="selectedRoute.selected.length" class="show_routebtn">Show all\r\n route</button>\r\n <perfect-scrollbar [class.jobscroll]="visiblesection(\'jobcode\')">\r\n <mat-spinner *ngIf="loader"></mat-spinner>\r\n <ul *ngIf="!loader && data.length > 0">\r\n <li [class.active]="route[\'isActive\'] && visiblesection(\'addroute\')" *ngFor="let route of data">\r\n <app-job-code-list-card *ngIf="visiblesection(\'jobcode\')" (toggleDrivermenu)="toggleDrivermenu($event)"\r\n (routeSeletion)="selectRoute($event)" [preventCloseDetails]="preventDetailsClose"\r\n [emitJobdetails]="{\'emitroute\': emitroute, \'clearJobDetailsFromList\':clearJobDetailsFromList}" [route]="checkroutes(route)"></app-job-code-list-card>\r\n <app-view-route-list-card [emitrouteevent]="emitroute" *ngIf="visiblesection(\'addroute\')"\r\n [route]="route"></app-view-route-list-card>\r\n </li>\r\n </ul>\r\n <p *ngIf="!loader && data.length === 0">{{visiblesection(\'addroute\') ? \'No Route found\' : \'No Job code found.\'}}</p>\r\n </perfect-scrollbar>\r\n</div>\r\n<div class="driver_list" *ngIf="isDriverList">\r\n <div class="driver_headingprt">\r\n <h2>Driver List</h2>\r\n <button *ngIf="driverList.driver_list?.length > 0" (click)="isSmsList = true">SMS</button>\r\n <div class="closebtn" (click)="isDriverList = false; preventMouseout = false; isSmsList = false">\r\n <mat-icon>clear</mat-icon>\r\n </div>\r\n </div>\r\n <ul class="driverList" *ngIf="driverList && driverList.driver_list">\r\n <li *ngFor="let driver of driverList?.driver_list">\r\n <img src="assets/images/driver_icon.png" [alt]="driver[\'driver_name\']" />\r\n <div class="driver_detail">\r\n <b>{{driver[\'driver_name\']}}</b> <span>{{driver[\'trucking_company\']}}</span>\r\n <div class="cont_del">\r\n <small>Driver contact: <b>{{driver[\'driver_phone\'] ? driver[\'driver_phone\'] : \'N/A\'}}</b></small>\r\n <small>Company contact: <b>{{driver[\'trucking_company_phone\'] ? driver[\'trucking_company_phone\'] :\r\n \'N/A\'}}</b></small>\r\n </div>\r\n </div>\r\n </li>\r\n <p *ngIf="driverList.driver_list?.length === 0" style="font-weight:700; text-align:center;">\r\n No Driver found\r\n </p>\r\n </ul>\r\n <div class="smslist" *ngIf="isSmsList">\r\n <div class="heading">\r\n <h2>SMS All Drivers</h2>\r\n <div class="closebtn" (click)="isSmsList = false">\r\n <mat-icon>clear</mat-icon>\r\n </div>\r\n </div>\r\n <div class="detailprt">\r\n <app-sms-card-details-overview [jobValue]="driverList"></app-sms-card-details-overview>\r\n <div class="form_input">\r\n <mat-form-field class="example-full-width">\r\n <textarea matInput placeholder="Text here..." autocomplete="nope" column="10"\r\n [formControl]="driverMessage"></textarea>\r\n <mat-hint>{{driverMessage.value?.length}} / 256</mat-hint>\r\n </mat-form-field>\r\n <button *ngIf="!messageLoader" [disabled]="!driverMessage.value || driverMessage.invalid"\r\n (click)="sendMessage()">\r\n Send SMS\r\n </button>\r\n </div>\r\n </div>\r\n <div class="loader">\r\n <mat-spinner *ngIf="messageLoader"></mat-spinner>\r\n </div>\r\n </div>\r\n</div>',styles:['.driver_iconprt{position:absolute;right:10px;top:12px;z-index:9999}.driver_iconprt img{width:25px;height:25px}.driver_list{background:#fff;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 #fff;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;border-bottom-right-radius:20px;border-bottom-left-radius:20px;content:"";bottom:-9px;width:100%}.driver_list:after,.smslist{background:#fff;position:absolute}.smslist{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 0 rgba(0,0,0,.11);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;border-radius:5%;position:absolute;top:8px;right:10px;background-color:initial;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-width:3px;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-width:3px;cursor:pointer;height:16.4vh}@media (min-width:1600px){.viewroute ul li{height:12.4vh}}.viewroute ul li.active{border:1px solid #39c471;border-left-width:3px}.loader{position:absolute;height:100%;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}']}]}],L.ctorParameters=function(){return[{type:i.CoolmapService},{type:i.UtilsService}]},L.propDecorators={loader:[{type:e.Input}],type:[{type:e.Input}],data:[{type:e.Input}],currentNav:[{type:e.Input}],emitroute:[{type:e.Output}],showAllRoute:[{type:e.Output}],searchTerm:[{type:e.Input}],clearJobDetailsFromList:[{type:e.Output}],clearListSeletion:[{type:e.Input}]};var S=function(){function t(t){this.utils=t}return t.prototype.detailsDict=function(t,e){"click"===t&&this.utils.setdictValue("route-detailsv2",JSON.stringify(e)),e.type="editroute",e.prevent=!0,this.emitrouteevent.emit(e),this.utils.routeDetailsUtility.next({event:t,route:e})},t}();S.decorators=[{type:e.Component,args:[{selector:"app-view-route-list-card",template:'<div class="routebox">\r\n <span>\r\n <mat-icon>directions</mat-icon>\r\n <h2 [ngClass]="{\'routeheading\': route[\'route_name\']}">\r\n {{route[\'route_name\']}}\r\n </h2>\r\n </span>\r\n <h3>{{route[\'customer_name\']}} | {{route[\'material\']}}</h3>\r\n\r\n <div class="pickdropprt">\r\n <div class="pickprt">\r\n <b>\r\n <h4>{{route[\'pickup_location\']}}</h4>\r\n </b>\r\n </div>\r\n <div class="dropprt">\r\n <b>\r\n <h4>{{route[\'delivery_location\']}}</h4>\r\n </b>\r\n </div>\r\n </div>\r\n <div class="infoicon" (click)="detailsDict(\'click\', route)" (mouseover)="detailsDict(true, route)"\r\n (mouseleave)="detailsDict(false, route)">\r\n <img src="assets/images/info_icon.png" [alt]="" />\r\n </div>\r\n <div class="status routestatus" [ngClass]="route[\'unit\']">{{route[\'unit\']}}</div>\r\n</div>\r\n\r\n\r\n\r\n',styles:['.routebox span{display:flex;align-items:center}.routebox span h2{margin-left:5px;max-width:180px;margin-bottom:5px;margin-top:5px;font-size:.95rem}.routebox h3,.routebox span h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routebox h3{font-size:.85rem;color:#767676;font-weight:400;margin-top:0;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:#000;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:#000;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:#000;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:#000;top:4px;left:0;position:absolute;content:"";width:7px;height:7px;border-radius:100%}.routebox .infoicon{position:absolute;right:10px;bottom:10px}.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}']}]}],S.ctorParameters=function(){return[{type:i.UtilsService}]},S.propDecorators={route:[{type:e.Input}],emitrouteevent:[{type:e.Input}]};var j=function(){this.label=i.DriversmsCardKey,this.overViewEnum=i.DriverSmsCardEnum};j.decorators=[{type:e.Component,args:[{selector:"app-sms-card-details-overview",template:"<ng-container *ngFor=\"let item of label\">\r\n <span>\r\n <label>{{overViewEnum[item]}}</label>\r\n <ng-container *ngIf=\"item !== 'values'\">{{jobValue[item] ? jobValue[item] : 'N/A'}}</ng-container>\r\n <ng-container *ngIf=\"item === 'values'\">{{jobValue[item]['Done'] + jobValue[item]['Ongoing'] + jobValue[item]['Open']}}</ng-container>\r\n </span>\r\n</ng-container>\r\n",styles:["span{display:flex;margin-bottom:12px;font-size:.8rem;align-items:center}span label{font-weight:600;width:37%}"]}]}],j.ctorParameters=function(){return[]},j.propDecorators={jobValue:[{type:e.Input}]};var M=function(){function t(t){this.utils=t,this.routeSeletion=new e.EventEmitter,this.toggleDrivermenu=new e.EventEmitter}return t.prototype.selectRoute=function(t){this.routeSeletion.emit(t)},t.prototype.toggleDriverlist=function(t,e,i){var r={mouseevntType:t,route:e,isHoverOut:i};this.toggleDrivermenu.emit(r),"click"===t&&this.utils.setdictValue("driver-details",JSON.stringify(this.route))},t.prototype.toggleJobCodeDetails=function(t,e){t?(e.type="jobcode",this.emitJobdetails.emitroute.emit(e)):!t&&this.preventCloseDetails?((e=this.utils.getdictValue("route-details")).type="jobcode",this.emitJobdetails.emitroute.emit(e)):t||this.preventCloseDetails||this.emitJobdetails.clearJobDetailsFromList.emit(!0)},t.prototype.calculateStatusPercentage=function(t,e){var i=e.Done+e.Ongoing+e.Open;return"done"===t?Math.round(100*e.Done/i):"ongoing"===t?Math.round(100*e.Ongoing/i):"open"===t?Math.round(100*e.Open/i):null},t.prototype.setRouteItem=function(){this.utils.preVentJobdetailclose.next(!0),this.utils.setdictValue("route-details",JSON.stringify(this.route))},t}();M.decorators=[{type:e.Component,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> </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:1px solid #39c471;border-left-width:3px}.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:green}.innerbox .job_intro .statusbar .status_percent .ongoing{background:#fc0}.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}"]}]}],M.ctorParameters=function(){return[{type:i.UtilsService}]},M.propDecorators={route:[{type:e.Input}],routeSeletion:[{type:e.Output}],toggleDrivermenu:[{type:e.Output}],emitJobdetails:[{type:e.Input}],preventCloseDetails:[{type:e.Input}]};var I=function(){function t(t,i){var n=this;this.utils=t,this.coolMap=i,this.isVisible=!1,this.routes=[],this.selectedRoute=new C.SelectionModel(!0,[]),this.clearJobDetails=new e.EventEmitter,this.isOverlapRouteSection=!1,this.destroyer$=new r.Subject,this.preventMouseout=!1,this.utils.clearViewRouteforJobCodeObserve.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){t&&n.coolMap.removeJobFromMap(n.selectedRoute.selected),n.selectedRoute.clear()}))}return t.prototype.ngOnInit=function(){this.getRouteList()},t.prototype.getRouteList=function(){var t=this;this.utils.getData("coolmap/routes/all").pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e&&(t.routes=e.data,t.masterRoutes=e.data,t.preventListUpdate=!1,t.utils.clearOptions(),t.routes.forEach((function(e){t.utils.makeOptions(e)})))}))},t.prototype.toggleSidemenu=function(){this.isVisible=!this.isVisible,this.detailsCardEnable=!1,this.preventMouseout=!1},t.prototype.clearJob=function(){this.clearJobDetails.emit(!0),this.utils.preVentJobdetailclose.next(!1)},t.prototype.selectRoute=function(t){var e=this;this.selectedRoute.selected.findIndex((function(e){return e.order_number===t.order_number}));this.selectedRoute.toggle(t),!this.selectedRoute.isSelected(t)&&t.route_id?this.coolMap.removeRouteAndMarker(t.route_id).then((function(t){e.coolMap.extendReBound()})):this.coolMap.plotRoute(t,t.route_id,"jobrouteList",!1,!0)},t.prototype.masterToggle=function(){var t=this;this.routes.length===this.selectedRoute.selected.length?(this.selectedRoute.clear(),this.routes.forEach((function(e){t.coolMap.removeRouteAndMarker(e.route_id).then((function(e){t.coolMap.extendReBound()}))}))):this.routes.forEach((function(e){t.selectedRoute.select(e),t.coolMap.plotRoute(e,e.route_id,"jobrouteList",!1,!0)}))},t.prototype.togglerouteDetails=function(t,e,i){"string"==typeof t&&(this.preventMouseout=!0,this.utils.setdictValue("route-details",JSON.stringify(e))),"boolean"==typeof t&&t&&!this.preventMouseout&&(this.detailsCardEnable=t),"boolean"!=typeof t||t||this.preventMouseout||(this.detailsCardEnable=t),this.preventMouseout&&!this.detailsCardEnable&&(this.preventMouseout=!1),i?(this.preventMouseout&&(e=this.utils.getdictValue("route-details"),this.routeCardDetail=e),this.preventMouseout||(this.routeCardDetail=e)):this.routeCardDetail=e,this.routeCardDetail.created_at=this.utils.getDateFormat(new Date(this.routeCardDetail.created_at),"/")},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();I.decorators=[{type:e.Component,args:[{selector:"app-job-code",template:'<div class="jobcode_detailprt" (click)="isOverlapRouteSection = false" *ngIf="jobdetail" [ngClass]="{\'overlap\': !isOverlapRouteSection}" cdkDrag>\r\n <div class="topheadingprt" *ngIf="jobdetail[\'order_number\']">\r\n <h2>{{jobdetail[\'order_number\']}}</h2>\r\n </div>\r\n <span class="close"><mat-icon (click)="clearJob()">clear</mat-icon></span>\r\n <div class="job_details_area">\r\n <div class="detailnameprt">\r\n <span> <b> {{jobdetail.customer_name}} </b> Customer </span>\r\n <app-jobcode-status [jobValue]="jobdetail"></app-jobcode-status>\r\n </div>\r\n <app-jobcode-overview [jobValue]="jobdetail"></app-jobcode-overview>\r\n </div>\r\n</div>\r\n\r\n<div class="route_listprt" (click)="isOverlapRouteSection = true" [ngClass]="{ \'show\': isVisible, \'overlap\': isOverlapRouteSection}">\r\n <div class="listing_toggle" (click)="toggleSidemenu()">\r\n <img src="assets/images/route.svg" alt="" />\r\n </div>\r\n\r\n <div class="listing_box">\r\n <div class="closebtn" (click)="toggleSidemenu()">\r\n <mat-icon>clear</mat-icon>\r\n </div>\r\n\r\n <div class="btnprt">\r\n <h2> List of Routes </h2>\r\n <button (click)="masterToggle()">{{routes && routes.length > 0 && routes.length === selectedRoute.selected.length ? \'Uncheck\' : \'Check\'}} All</button>\r\n </div>\r\n\r\n <app-job-route-list [routes]="routes" [masterRoutes]="masterRoutes" [selectedRoute]="selectedRoute" (changeRoutes)="routes = $event" (changeSelectedRoute)="selectedRoute = $event"></app-job-route-list>\r\n\r\n <perfect-scrollbar>\r\n <ul *ngIf="routes[\'length\'] > 0">\r\n <li *ngFor="let list of routes">\r\n <div class="iconprt">\r\n <span>\r\n <input type="checkbox" [checked]="selectedRoute.isSelected(list)"\r\n (change)="$event ? selectRoute(list) : null" /><label> </label>\r\n <div class="border"></div>\r\n </span>\r\n <div class="statusunit" [ngClass]="list[\'unit\']">{{list[\'unit\']}}</div>\r\n <div class="infoicon">\r\n <img (mouseenter)="togglerouteDetails(true, list)" (mouseout)="togglerouteDetails(false, list, true)"\r\n (click)="togglerouteDetails(\'click\', list)" src="assets/images/info_icon.png" [alt]="" />\r\n </div>\r\n </div>\r\n <div class="pickprtbox">\r\n <h2> {{list[\'route_name\']}} </h2>\r\n <h3>{{list[\'customer_name\']}} | {{list[\'material\']}}</h3>\r\n <div class="pickdropprt">\r\n <div class="pickprt">\r\n <b>\r\n <h4>{{list[\'pickup_location\']}}</h4>\r\n </b>\r\n </div>\r\n <div class="dropprt">\r\n <b>\r\n <h4>{{list[\'delivery_location\']}}</h4>\r\n </b>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <p style="color: #fff;" *ngIf="routes.length === 0">No Route found</p>\r\n </perfect-scrollbar>\r\n </div>\r\n\r\n <div class="route_detail" *ngIf="detailsCardEnable">\r\n <div class="closebtnroutedetail" (click)="detailsCardEnable = false; preventMouseout = false">\r\n <mat-icon>clear</mat-icon>\r\n </div>\r\n <div class="destination">\r\n <div class="duration">\r\n <p class="pickprt"><b>Pickup:</b> {{routeCardDetail?.pickup_location}}</p>\r\n <p class="dropprt"><b>Delivery:</b> {{routeCardDetail?.delivery_location}} </p>\r\n </div>\r\n <span><b>Name:</b> {{routeCardDetail?.route_name}}</span>\r\n <span><b>Customer:</b> {{routeCardDetail?.customer_name}}</span>\r\n <span><b>Material:</b> {{routeCardDetail?.material}}</span>\r\n <span><b>Type:</b> {{routeCardDetail?.unit}}</span>\r\n <span><b>Distance:</b> {{routeCardDetail?.estimated_distance}}</span>\r\n <span><b>Travel Time:</b> {{routeCardDetail?.estimated_time}}</span>\r\n <span class="notes"><b>Notes:</b> {{routeCardDetail?.note}}</span>\r\n </div>\r\n\r\n <div class="createTxt">\r\n <small>\r\n Created by {{routeCardDetail?.created_by_name}} on {{routeCardDetail?.created_at}}\r\n </small>\r\n </div>\r\n </div>\r\n</div>\r\n',styles:['.jobcode_detailprt{position:absolute;left:300px;bottom:10px;background:#fff;padding:10px 20px;border-radius:20px;width:calc(100% - 315px);z-index:999;box-shadow:0 0 5px 0 rgba(0,0,0,.1);height:250px;cursor:move}@media (min-width:1600px){.jobcode_detailprt{left:307px;width:calc(100% - 325px)}}.jobcode_detailprt .topheadingprt .driver_list ul{display:flex;width:450px;justify-content:flex-end}.jobcode_detailprt .topheadingprt .driver_list ul li{position:relative;margin:0 -6px 2px 0;cursor:pointer}.jobcode_detailprt .topheadingprt .driver_list ul li img{width:30px;height:30px;border-radius:100%;border:1px solid #fff}.jobcode_detailprt .topheadingprt .driver_list ul li:hover .driver_detail{display:flex}.jobcode_detailprt .topheadingprt .driver_list ul li .driver_detail{position:absolute;top:-70px;left:-50px;display:none;will-change:transform;pointer-events:none;border-radius:10px;box-shadow:0 4px 4px 0 rgba(0,0,0,.14);width:133px;background:#fff;text-align:center;padding:10px;flex-direction:column;font-size:.8125rem}.jobcode_detailprt .topheadingprt .driver_list ul li .driver_detail b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px}.jobcode_detailprt .topheadingprt .driver_list ul li .driver_detail span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:117px;display:block}.jobcode_detailprt .topheadingprt .driver_list ul li .driver_detail:after{width:0;height:0;border-top:15px solid #fff;border-left:10px solid transparent;border-right:10px solid transparent;z-index:1;content:"";position:absolute;filter:drop-shadow(0 3px 1px rgba(0,0,0,.2));bottom:-14px;left:50%;transform:translateX(-50%)}.jobcode_detailprt .topheadingprt .driver_list ul li.extraicon{background:#fff;width:30px;height:30px;border-radius:100%;display:flex;justify-content:center;align-items:center;margin:0 0 0 10px;border:1px solid #eee}.jobcode_detailprt .close{position:absolute;top:10px;right:20px;background:#e8e8e8;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer}@keyframes autoslide{to{transform:translateX(calc(90vw - 100%))}0%{transform:translateX(0)}}.jobcode_detailprt .job_details_area{padding:15px 0}.jobcode_detailprt .job_details_area .detailnameprt{display:flex;justify-content:space-between}.jobcode_detailprt .job_details_area .detailnameprt span{display:flex;flex-direction:column;font-size:.875rem;color:#767676}.jobcode_detailprt .job_details_area .detailnameprt span b{font-size:.9375rem;font-weight:500;color:#000}.route_listprt .listing_toggle{background:#fff;border-radius:15px;padding:5px;position:absolute;right:10px;top:20px;cursor:pointer}.route_listprt .listing_toggle img{width:28px}.route_listprt .listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px 0 hsla(0,0%,100%,.08);transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0 0;opacity:0}.route_listprt .listing_box .closebtn{display:none}.route_listprt .listing_box ul{padding:0 20px 0 0}.route_listprt .listing_box ul li{background:#4a4a4a;padding:10px 15px;border-radius:15px;display:flex;margin-bottom:10px;position:relative;height:inherit}@media (min-width:1600px){.route_listprt .listing_box ul li{padding:6px 15px;margin-bottom:5px}}.route_listprt .listing_box ul li .iconprt{display:flex;flex-direction:column}.route_listprt .listing_box ul li .iconprt span{display:flex;align-items:center;margin-bottom:32px}.route_listprt .listing_box ul li .iconprt span input[type=checkbox]{width:100%;height:100%;margin-right:10px;opacity:0;position:absolute;left:0;margin-left:0;top:0;z-index:3;cursor:pointer}.route_listprt .listing_box ul li .iconprt span input[type=checkbox]:checked+label{background:url(../../../assets/images/fill-check.png) 16px 15px no-repeat}.route_listprt .listing_box ul li .iconprt span label{background:url(../../../assets/images/blank-check.png) 16px 15px no-repeat;width:100%;position:relative;z-index:2;font-size:12px;color:#878787;height:100%;position:absolute;top:0;left:0}.route_listprt .listing_box ul li .iconprt span .border{position:absolute;width:100%;height:100%;left:0;right:0;top:0;border-radius:15px}.route_listprt .listing_box ul li .iconprt span input:checked~.border{border:1px solid #fff}.route_listprt .listing_box ul li .iconprt span h2{margin-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;padding-left:16px;font-size:.9rem;margin-bottom:0;font-weight:400;margin-top:0}.route_listprt .listing_box ul li .iconprt .statusunit{border-radius:30px;font-size:0;color:#fff;text-transform:capitalize;font-weight:500;width:20px;height:20px;text-align:center;line-height:20px;margin-bottom:7px}.route_listprt .listing_box ul li .iconprt .statusunit:first-letter{font-size:.8rem}.route_listprt .listing_box ul li .iconprt .statusunit.Ton{background:#ff7272}.route_listprt .listing_box ul li .iconprt .statusunit.Load{background:#a3c52e}.route_listprt .listing_box ul li .iconprt .statusunit.Hourly{background:#ae23d1}@media (min-width:1600px){.route_listprt .listing_box ul li .iconprt .statusunit{line-height:21px}}.route_listprt .listing_box ul li .iconprt .infoicon{z-index:5;cursor:pointer}.route_listprt .listing_box ul li .iconprt .infoicon img{width:20px;height:20px}.route_listprt .listing_box ul li .pickprtbox{margin-left:10px}.route_listprt .listing_box ul li .pickprtbox h2{font-size:.9rem;margin:3px 0 5px;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden}.route_listprt .listing_box ul li h3{font-size:.8rem;color:#979797;font-weight:600;margin-top:0;white-space:nowrap;text-overflow:ellipsis;max-width:195px;overflow:hidden;margin-bottom:5px}.route_listprt .listing_box ul li .pickdropprt{font-size:.75rem}.route_listprt .listing_box ul li .pickdropprt .pickprt{position:relative;display:flex;align-items:center;padding-bottom:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .pickprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .pickprt b:after{background:#bcbcbc;width:1px;height:100%;left:3px;content:"";position:absolute;top:10px}.route_listprt .listing_box ul li .pickdropprt .pickprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .pickprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:"";width:7px;height:7px;border-radius:100%}.route_listprt .listing_box ul li .pickdropprt .dropprt{position:relative;padding-bottom:10px;display:flex;align-items:center}.route_listprt .listing_box ul li .pickdropprt .dropprt span{padding-left:0;padding-right:20px;display:block}.route_listprt .listing_box ul li .pickdropprt .dropprt b{position:relative}.route_listprt .listing_box ul li .pickdropprt .dropprt b:after{background:#bcbcbc;width:1px;height:12px;left:3px;content:"";position:absolute;top:-7px}.route_listprt .listing_box ul li .pickdropprt .dropprt h4{position:relative;padding-left:15px;margin:0;line-height:18px;color:#bcbcbc;font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.route_listprt .listing_box ul li .pickdropprt .dropprt h4:before{background:#bcbcbc;top:4px;left:0;position:absolute;content:"";width:7px;height:7px;border-radius:100%}.route_listprt.show .listing_box{width:300px;max-width:300px;flex:0 0 350px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}.route_listprt.show .listing_box h2{color:#fff;white-space:nowrap}.route_listprt.show .listing_box .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px 0 hsla(0,0%,100%,.08);display:block}.overlap{z-index:9999}.btnprt{display:flex;justify-content:space-between;align-items:center;padding-right:20px}.btnprt h2{margin:0}.btnprt button{font-size:15px;padding:8px 20px;border-radius:5%;background-color:#326ad3;color:#fff;border:none;border-radius:10px;box-shadow:none;outline:none}.hidden{display:none}.route_detail{background:#282828;position:absolute;width:260px;top:50%;transform:translateY(-50%);right:310px;border-radius:20px;padding:10px;box-shadow:0 0 5px 0 hsla(0,0%,100%,.21)}.route_detail .destination .duration{background:#444343;border:1px solid #918e8e;padding:10px;color:#fff}.route_detail .destination .duration b{color:#fff}.route_detail .destination .dropprt:before,.route_detail .destination .dropprt b:before,.route_detail .destination .pickprt:before,.route_detail .destination .pickprt b:before{background:#fff}.route_detail .destination span{line-height:20px;color:#fff;padding:3px 0}.route_detail .destination span b{color:#fff}.route_detail .destination span.notes{max-height:200px;overflow:auto}.createTxt small{color:#fff;font-size:.7rem}.closebtnroutedetail{box-shadow:0 0 5px 0 rgba(0,0,0,.11);border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#f5f5f5;position:absolute;top:-7px;left:-11px}']}]}],I.ctorParameters=function(){return[{type:i.UtilsService},{type:i.CoolmapService}]},I.propDecorators={jobdetail:[{type:e.Input}],clearJobDetails:[{type:e.Output}]};var V=function(){};V.decorators=[{type:e.Component,args:[{selector:"app-jobcode-status",template:"<div class=\"statusprt\">\r\n <span class=\"done\"> Done - {{jobValue['values']['Done']}} </span>\r\n <span class=\"ongoing\"> Ongoing - {{jobValue['values']['Ongoing']}} </span>\r\n <span class=\"open\"> Open - {{jobValue['values']['Open']}} </span>\r\n</div>\r\n",styles:[".statusprt span{padding:10px;font-size:.9rem}.statusprt span.done{border:2px solid #0b843c;color:#0b843c}.statusprt span.done:hover{background:#0b843c;color:#fff}.statusprt span.ongoing{border:2px solid #eecb27;color:#eecb27}.statusprt span.ongoing:hover{background:#eecb27;color:#fff}.statusprt span.open{border:2px solid #12afcb;color:#12afcb}.statusprt span.open:hover{background:#12afcb;color:#fff}"]}]}],V.ctorParameters=function(){return[]},V.propDecorators={jobValue:[{type:e.Input}]};var E=function(){function t(t,i){var r,n=this;this.utils=t,this.coolMap=i,this.changeNav=new e.EventEmitter,this.filterForm=new l.FormGroup({search:new l.FormControl}),this.changeRoutes=new e.EventEmitter,this.changeSelectedRoute=new e.EventEmitter,this.filters=[],this.filteredOptions=null===(r=this.filterForm.get("search"))||void 0===r?void 0:r.valueChanges.pipe(o.startWith(""),o.map((function(t){return n.utils.filter(t,n.filters)})))}return t.prototype.filterSearch=function(t){var e=this;this.changeNav.emit({type:"Addroute"}),this.preventListUpdate=!0,this.filterForm.controls.search.setValue(null),this.filters=[{name:t.source.value.label,type:t.source.value.type,value:t.source.value}];var i=this.utils.getSearchResults(this.masterRoutes,[{name:t.source.value.label,type:t.source.value.type,value:t.source.value}]);this.changeRoutes.emit(i),this.selectedRoute.selected.forEach((function(t){i.find((function(e){return e.route_id===t.route_id}))||(e.selectedRoute.toggle(t),e.changeSelectedRoute.emit(e.selectedRoute),e.coolMap.removeRouteAndMarker(t.route_id).then((function(t){e.coolMap.extendReBound()})))}))},t.prototype.removeFromFilter=function(t){this.changeNav.emit({type:"Addroute"}),this.filters.indexOf(t)>=0&&(this.filters=[],this.changeRoutes.emit(this.masterRoutes))},t}();E.decorators=[{type:e.Component,args:[{selector:"app-job-route-list",template:'<div class="searchprt">\r\n <form [formGroup]="filterForm">\r\n <mat-form-field class="full-width">\r\n <input matInput [matChipInputFor]="chipList" formControlName="search" [matAutocomplete]="auto" placeholder="Search">\r\n <mat-icon matSuffix *ngIf="!utils.conveySearchIcon(filterForm.value.search)">search</mat-icon>\r\n <button mat-button matSuffix mat-icon-button aria-label="Clear" (click)="filterForm.reset()" *ngIf="utils.conveySearchIcon(filterForm.value.search)">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">\r\n <mat-option *ngFor="let option of filteredOptions | async" (onSelectionChange)="filterSearch($event)"\r\n [value]="option">\r\n {{option.type | titlecase }}: {{option[\'label\']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n</form>\r\n</div>\r\n<div class="chip-list">\r\n <mat-chip-list #chipList aria-label="Filter selection">\r\n <mat-chip *ngFor="let filter of filters" (removed)="removeFromFilter(filter)">\r\n {{filter.type | titlecase }}: {{filter.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n',styles:[".searchprt{padding-right:20px}"]}]}],E.ctorParameters=function(){return[{type:i.UtilsService},{type:i.CoolmapService}]},E.propDecorators={changeNav:[{type:e.Output}],routes:[{type:e.Input}],selectedRoute:[{type:e.Input}],changeRoutes:[{type:e.Output}],changeSelectedRoute:[{type:e.Output}],masterRoutes:[{type:e.Input}]};var A=function(){this.label=i.JobCodeOverviewData,this.overViewEnum=i.JobCodeOverviewEnum};A.decorators=[{type:e.Component,args:[{selector:"app-jobcode-overview",template:'<div class="detail_view m-40">\r\n <ng-container *ngFor="let item of label">\r\n <span [class.pickprt]="item === \'pickup_location\'" [class.dropprt]="item === \'delivery_location\'">\r\n <label>{{overViewEnum[item]}}</label>\r\n <b> {{jobValue[item] ? jobValue[item] : \'N/A\'}} </b>\r\n </span>\r\n </ng-container>\r\n</div>\r\n',styles:[".detail_view{display:flex;flex-direction:row;justify-content:space-between}.detail_view span{display:flex;flex-direction:column;font-size:.8125rem;width:15%;margin:0 7px 0 0}.detail_view span.dropprt,.detail_view span.pickprt{width:20%}.detail_view span label{font-size:.8125rem;font-weight:400;color:#767676;padding-bottom:8px}.detail_view span b{font-weight:500}"]}]}],A.ctorParameters=function(){return[]},A.propDecorators={jobValue:[{type:e.Input}]};var O=function(){function t(t,e){var i=this;this.dialogRef=t,this.data=e,this.body="Are you sure you want to delete?",this.positive="Delete",this.negative="Cancel",["body","positive","negative"].map((function(t){void 0!==i.data[t]&&(i[t]=i.data[t])}))}return t.prototype.onClose=function(t){this.dialogRef.close(t)},t}();O.decorators=[{type:e.Component,args:[{selector:"app-dialog",template:'<div class="dialogbox">\r\n <h2>{{body}}</h2>\r\n <div class="twobtnprt">\r\n <button class="delbtn" (click)="onClose(true)">{{positive}}</button>\r\n <button class="closebtn" (click)="onClose(false)">{{negative}}</button>\r\n </div>\r\n</div>\r\n',styles:[".dialogbox{display:flex;flex-direction:column}.dialogbox h2{font-size:1.5rem}.dialogbox .twobtnprt{display:flex;justify-content:center;margin-top:10px}.closebtn{background:#000}.closebtn,.delbtn{color:#fff;border-radius:30px;padding:10px 18px;margin:0 10px;font-size:1rem}.delbtn{background:red}"]}]}],O.ctorParameters=function(){return[{type:f.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[f.MAT_DIALOG_DATA]}]}]};var N=function(){function t(t,i,o){var n=this;this.coolMapService=t,this.utils=i,this.dialog=o,this.changeNav=new e.EventEmitter,this.updateRouteList=new e.EventEmitter,this.pickupOptions=[],this.deliveryOptions=[],this.requestParmsForRouteDetails={pickup_lat_lng:"",delivery_lat_lng:""},this.customersList=[],this.unitsList=[],this.materialsList=[],this.preventSave=!1,this.preventInitialSave=!1,this.destroyer$=new r.Subject,this.enablePopUp=!1,this.prevantPopupClose=!1,this.enableForm=!1,this.formInit(),this.utils.getrouteDetailsUtility.subscribe((function(t){t&&("click"===t.event||n.prevantPopupClose?n.enablePopUp&&!n.prevantPopupClose&&(n.prevantPopupClose=!0):n.enablePopUp=t.event,"click"!==t.event&&!t.event&&n.prevantPopupClose?n.popupDetails=n.utils.getdictValue("route-detailsv2"):n.popupDetails=t.route,n.enablePopUp&&(n.popupDetails.created_at=n.utils.getDateFormat(new Date(n.popupDetails.created_at),"/")))}))}return t.prototype.filterCustomerList=function(){var t=this;this.customersList$=this.addRouteForm.controls.customer_name.valueChanges.pipe(o.startWith(""),o.map((function(e){return t._filter(e||"")})))},t.prototype._filter=function(t){var e=t.toLowerCase();return this.customersList.filter((function(t){return t.customer_name.toLowerCase().includes(e)}))},t.prototype.ngOnChanges=function(t){t.routeData&&!t.routeData.currentValue&&this.inIt(null)},t.prototype.openDialog=function(){var t=this;this.dialog.open(O,{data:{body:"Are you sure you want to delete this route?"}}).afterClosed().subscribe((function(e){e&&t.deleteRoute()}))},t.prototype.editEvent=function(){this.prevantPopupClose=!1,this.enableForm=!0,this.enablePopUp=!1,this.popupDetails.prevent=!1,this.utils.removeMapEntity.next(this.popupDetails),this.inIt(this.popupDetails)},t.prototype.inIt=function(t){t&&(t.prevent||(this.preventSave=!1,this.formControlValue(),this.patchFormValue(t),this.checkAndFetchRouteInformation(!0))),t||(this.enableForm=!0,this.preventSave=!0,this.patchFormValue(),this.checkAndFetchRouteInformation())},t.prototype.ngOnInit=function(){this.fetchCustomersList(),this.fetchUnitsList(),this.fetchMaterialsList(),this.formControlValue()},t.prototype.ngAfterViewInit=function(){var t=this;r.fromEvent(this.filterPickup.nativeElement,"keyup").pipe(o.distinctUntilChanged(),o.debounceTime(150)).pipe(o.takeUntil(this.destroyer$)).subscribe((function(){t.utils.fetchAutoCompleteLocations(t.filterPickup.nativeElement.value).pipe(o.takeUntil(t.destroyer$)).subscribe((function(e){t.pickupOptions=e.features}))})),r.fromEvent(this.filterDelivery.nativeElement,"keyup").pipe(o.distinctUntilChanged(),o.debounceTime(150)).pipe(o.takeUntil(this.destroyer$)).subscribe((function(){t.utils.fetchAutoCompleteLocations(t.filterDelivery.nativeElement.value).pipe(o.takeUntil(t.destroyer$)).subscribe((function(e){t.deliveryOptions=e.features}))}))},t.prototype.formControlValue=function(){var t,e,i=this;null===(t=this.addRouteForm.controls.pickup_location)||void 0===t||t.valueChanges.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){i.addRouteForm.value.pickup_location&&t!==i.addRouteForm.value.pickup_location&&(i.addRouteForm.patchValue({pickup_lat_lng:""}),i.addRouteForm.controls.pickup_lat_lng.markAsTouched())})),null===(e=this.addRouteForm.controls.delivery_location)||void 0===e||e.valueChanges.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){i.addRouteForm.value.delivery_location&&t!==i.addRouteForm.value.delivery_location&&(i.addRouteForm.patchValue({delivery_lat_lng:""}),i.addRouteForm.controls.delivery_lat_lng.markAsTouched())}))},t.prototype.formInit=function(){this.addRouteForm=new l.FormGroup({route_name:new l.FormControl("",[l.Validators.required]),customer_name:new l.FormControl({value:"",disabled:!0},[l.Validators.required]),materials_id:new l.FormControl("",[l.Validators.required]),unit_id:new l.FormControl("",[l.Validators.required]),path:new l.FormControl("",[l.Validators.required]),pickup_location:new l.FormControl("",[l.Validators.required]),pickup_lat_lng:new l.FormControl("",[l.Validators.required]),delivery_location:new l.FormControl("",[l.Validators.required]),delivery_lat_lng:new l.FormControl("",[l.Validators.required]),estimated_distance:new l.FormControl("",[l.Validators.required]),estimated_time:new l.FormControl("",[l.Validators.required]),note:new l.FormControl("",[l.Validators.maxLength(2048)])})},t.prototype.patchFormValue=function(t){var e=this;this.addRouteForm.reset(),this.addRouteForm.patchValue(t),this.routeId=null==t?void 0:t.route_id,this.routeDetails=t?{pickup_location:t.pickup_location,delivery_location:t.delivery_location}:null,this.addRouteForm.valueChanges.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){t&&e.preventInitialSave&&(e.preventInitialSave=!1)})),this.filterCustomerList()},t.prototype.fetchCustomersList=function(){var t=this;this.utils.getData(this.portalName+"/company/list/view").pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e&&(t.customersList=e.data,t.filterCustomerList(),t.addRouteForm.controls.customer_name.enable())}))},t.prototype.fetchUnitsList=function(){var t=this;this.utils.getData(this.portalName+"/unit/list/view").pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e&&(t.unitsList=e.data)}))},t.prototype.fetchMaterialsList=function(){var t=this;this.utils.getData(this.portalName+"/material/list/view").pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e.data.sort((function(t,e){return t.material.localeCompare(e.material)})),t.materialsList=e.data}))},t.prototype.selectedLongLat=function(t,e){"pickup"===t?(this.addRouteForm.patchValue({pickup_lat_lng:(e.geometry.coordinates[1]+","+e.geometry.coordinates[0]).toString()}),this.coolMapService.clearBoundWithCordinates()):"delivery"===t&&this.addRouteForm.patchValue({delivery_lat_lng:(e.geometry.coordinates[1]+","+e.geometry.coordinates[0]).toString()}),this.checkAndFetchRouteInformation()},t.prototype.checkAndFetchRouteInformation=function(t){var e,i,r,n,a=this;if((null===(i=null===(e=this.addRouteForm.value)||void 0===e?void 0:e.delivery_lat_lng)||void 0===i?void 0:i.length)>0&&(null===(n=null===(r=this.addRouteForm.value)||void 0===r?void 0:r.pickup_lat_lng)||void 0===n?void 0:n.length)>0&&this.addRouteForm.value.unit_id){var s=this.unitsList.find((function(t){return t.id===a.addRouteForm.value.unit_id})),l={delivery_lat_lng:this.addRouteForm.value.delivery_lat_lng,pickup_lat_lng:this.addRouteForm.value.pickup_lat_lng,unit:null==s?void 0:s.type};this.utils.postdata("coolmap/calculate/routes/estimation",l).pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){if(e&&e.path){a.addRouteForm.patchValue({estimated_distance:e.dist,estimated_time:e.time,path:e.path});var i=e.path.split(";");i=i.map((function(t){return a.formateLatLong(t)})),e.path=i;var r={type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:{type:"LineString",coordinates:e.path}}]};a.coolMapService.removeRouteAndMarker(1).then((function(){var t,e,i,o=a.unitsList.find((function(t){return t.id===a.addRouteForm.value.unit_id})),n=a.materialsList.find((function(t){return t.material_id===a.addRouteForm.value.materials_id}));a.coolMapService.loadMapProperty(r,1,null==o?void 0:o.type,{pickup_location:null===(t=a.addRouteForm.get("pickup_location"))||void 0===t?void 0:t.value,delivery_location:null===(e=a.addRouteForm.get("delivery_location"))||void 0===e?void 0:e.value,route_name:null===(i=a.addRouteForm.get("route_name"))||void 0===i?void 0:i.value,material:null==n?void 0:n.material,unit:null==o?void 0:o.type}).then((function(t){a.preventSave=!0}))}))}else a.coolMapService.removeRouteAndMarker(1),a.utils.openSnackBar(e.status,"error");a.routeId&&t&&(a.preventInitialSave=!0)}))}else this.coolMapService.removeRouteAndMarker(1)},t.prototype.formateLatLong=function(t){return t?t.split(",").map((function(t){return+t})).reverse():null},t.prototype.saveRoute=function(){var t=this;if(this.addRouteForm.valid){this.preventSave=!1;var e=this.addRouteForm.value;e.trucker_pay_estimate=null,e.customer_price_estimate=null;var i=this.routeId?this.utils.postdata("coolmap/update/routes",e):this.utils.postdata("coolmap/add/routes",e);this.routeId&&(e.id=this.routeId),i.pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e.success?(t.updateRouteList.emit(!0),t.utils.openSnackBar(e.message,"success"),t.preventInitialSave=!0,t.preventSave=!0,t.routeId||t.changeNav.next("Addroute")):(t.utils.openSnackBar(e.message,"error"),t.preventSave=!0)}),(function(e){e&&(t.preventSave=!0)}))}else this.addRouteForm.markAllAsTouched()},t.prototype.deleteRoute=function(){var t=this;this.preventSave=!1,this.utils.postdata("coolmap/delete/routes",{uuid:this.routeId}).subscribe((function(e){e.data.success?(t.utils.openSnackBar(e.data.message,"success"),t.updateRouteList.emit(!0),t.changeNav.next("Addroute"),t.preventInitialSave=!0,t.preventSave=!0):(t.utils.openSnackBar("Somthing went wrong","error"),t.preventSave=!0)}),(function(e){t.preventSave=!0}))},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();N.decorators=[{type:e.Component,args:[{selector:"app-add-route",template:'<div class="addroutebox">\r\n <div class="routedetailbox" *ngIf="enablePopUp">\r\n <div class="closebtnroutedetail">\r\n <mat-icon (click)="prevantPopupClose = false; enablePopUp = false;">clear</mat-icon>\r\n </div>\r\n <div class="destination">\r\n <div class="duration">\r\n <p class="pickprt"><b>Pickup:</b>{{popupDetails[\'pickup_location\']}}</p>\r\n <p class="dropprt"><b>Delivery:</b>{{popupDetails[\'delivery_location\']}}</p>\r\n </div>\r\n <span><b>Name:</b> {{popupDetails[\'route_name\']}}</span>\r\n <span><b>Customer:</b> {{popupDetails[\'customer_name\']}}</span>\r\n <span><b>Material:</b> {{popupDetails[\'material\']}}</span>\r\n <span><b>Type:</b> {{popupDetails[\'unit\']}}</span>\r\n <span><b>Distance:</b> {{popupDetails[\'estimated_distance\']}}</span>\r\n <span><b>Travel Time:</b> {{popupDetails[\'estimated_time\']}}</span>\r\n\r\n <span class="routenotes"><b>Notes:</b> {{popupDetails[\'note\']}}</span>\r\n </div>\r\n <div class="createTxt">\r\n <small>\r\n Created by {{popupDetails[\'created_by_name\']}} on {{popupDetails[\'created_at\']}}\r\n </small>\r\n <button class="editbtn" (click)="editEvent()">Edit</button>\r\n </div>\r\n </div>\r\n <div class="add_add_route_box" cdkDrag [style.visibility]="!enableForm ? \'hidden\' : \'visible\'">\r\n <div class="topheadingprt">\r\n <h2> {{routeId? \'EDIT\' : \'ADD\'}} ROUTE </h2>\r\n <div class="buttonprt">\r\n <button *ngIf="routeId" class="delbtn" (click)="openDialog()">Delete</button>\r\n <button mat-raised-button type="submit" class="closebtn" (click)="changeNav.next(\'Addroute\')">Close</button>\r\n </div>\r\n </div>\r\n <form [formGroup]="addRouteForm">\r\n <div class="route_form_area">\r\n <div class="col-6">\r\n <mat-form-field>\r\n <mat-label>Route Name</mat-label>\r\n <input matInput formControlName="route_name" autocomplete="nope" (mousedown)="$event.stopPropagation()">\r\n <mat-error *ngIf="addRouteForm.controls[\'route_name\'].hasError(\'required\')">\r\n Route Name is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class="col-6">\r\n <mat-form-field>\r\n <input type="text" placeholder="Customer Name" matInput formControlName="customer_name" [matAutocomplete]="auto" (mousedown)="$event.stopPropagation()">\r\n <mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">\r\n <mat-option *ngFor="let customer of customersList$ | async" [value]="customer[\'customer_name\']">\r\n {{customer[\'customer_name\']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf="addRouteForm.controls[\'customer_name\'].hasError(\'required\')">\r\n Customer name is required.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class="col-6">\r\n <mat-form-field>\r\n <mat-label>Pickup</mat-label>\r\n <input type="text" placeholder="Search..." matInput #filterPickup [matAutocomplete]="pickupAutocomplete"\r\n formControlName="pickup_location" (mousedown)="$event.stopPropagation()">\r\n\r\n <mat-autocomplete #pickupAutocomplete="matAutocomplete">\r\n <mat-option (click)="selectedLongLat(\'pickup\', option)" *ngFor="let option of pickupOptions"\r\n [value]="option?.place_name">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf="addRouteForm.controls[\'pickup_lat_lng\'].touched && addRouteForm.controls[\'pickup_lat_lng\'].hasError(\'required\')">\r\n Please select pickup location from the list.\r\n </mat-error>\r\n </div>\r\n <div class="col-6">\r\n <mat-form-field>\r\n <mat-label>Delivery</mat-label>\r\n <input type="text" placeholder="Search..." matInput #filterDelivery [matAutocomplete]="deliveryAutocomplete"\r\n formControlName="delivery_location" (mousedown)="$event.stopPropagation()">\r\n <mat-autocomplete #deliveryAutocomplete="matAutocomplete">\r\n <mat-option (click)="selectedLongLat(\'delivery\', option)" *ngFor="let option of deliveryOptions"\r\n [value]="option?.place_name">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf="addRouteForm.controls[\'delivery_lat_lng\'].touched && addRouteForm.controls[\'delivery_lat_lng\'].hasError(\'required\')">\r\n Please select delivery location from the list.\r\n </mat-error>\r\n </div>\r\n <div class="col-6">\r\n <mat-form-field>\r\n <mat-label>Notes</mat-label>\r\n <textarea style="height: 18px; resize: none;" matInput name="" id="" cols="30" rows="10" formControlName="note" autocomplete="nope" (mousedown)="$event.stopPropagation()"></textarea>\r\n <mat-error *ngIf="addRouteForm.controls[\'note\'].hasError(\'maxlength\')">\r\n Notes should be within 2048 characters.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col-6 d-flex">\r\n <div class="inputbox m-0">\r\n <mat-form-field>\r\n <mat-label>Unit type</mat-label>\r\n <mat-select formControlName="unit_id" (selectionChange)="checkAndFetchRouteInformation()" (mousedown)="$event.stopPropagation()">\r\n <mat-option *ngFor="let unit of unitsList" [value]="unit?.id"> {{unit?.type}} </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf="addRouteForm.controls[\'unit_id\'].hasError(\'required\')">\r\n Unit is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="inputbox m-0">\r\n <mat-form-field>\r\n <mat-label>Material</mat-label>\r\n <mat-select formControlName="materials_id" (mousedown)="$event.stopPropagation()">\r\n <mat-option *ngFor="let material of materialsList" [value]="material?.material_id"> {{material?.material}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf="addRouteForm.controls[\'materials_id\'].hasError(\'required\')">\r\n Meterial is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class="col-6">\r\n <app-estimation-display *ngIf="addRouteForm?.value?.pickup_lat_lng && addRouteForm?.value?.delivery_lat_lng" [value]="addRouteForm[\'value\']"></app-estimation-display>\r\n </div>\r\n <button mat-raised-button type="submit" (click)="saveRoute()" *ngIf="preventSave"\r\n [disabled]="addRouteForm.invalid && preventSave || preventInitialSave">{{routeId? \'Update\' : \'Save\'}}\r\n </button>\r\n <div class="loader">\r\n <mat-spinner *ngIf="!preventSave"></mat-spinner>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n',styles:[".addroutebox{width:calc(100% - 315px);position:absolute;left:300px;bottom:10px;z-index:999;display:flex;justify-content:space-between;align-items:flex-start}.addroutebox .routedetailbox{max-width:300px;padding:10px;background-color:#fff;border-radius:20px;margin-right:20px}@media (min-width:1600px){.addroutebox .routedetailbox{max-width:280px}}.addroutebox .editbtn{background:#326ad3;padding:10px 25px;color:#fff;font-size:.8125rem;border-radius:30px;float:right}.add_add_route_box{background:#fff;padding:10px 20px;border-radius:20px;box-shadow:2px 4px 4px 2px rgba(0,0,0,.14);height:370px;width:100%;position:relative;cursor:move}.add_add_route_box .route_form_area{display:flex;flex-wrap:wrap;justify-content:space-between}.add_add_route_box .route_form_area .col-6{width:48%;margin-top:15px;justify-content:space-between}.add_add_route_box .route_form_area .col-6 .inputbox{width:47%}.add_add_route_box .route_form_area .col-6 span{font-size:.875rem}.add_add_route_box .route_form_area button{background:#326ad3;padding:0 18px;color:#fff;font-size:.8125rem;border-radius:30px;position:absolute;right:18px;top:20px}.closebtn{background:#000;padding:0 18px;margin-left:10px}.closebtn,.delbtn{color:#fff;border-radius:30px}.delbtn{background:red;padding:10px 18px}.add_route_listingpart .listing_toggle{background:#fff;border-radius:15px;padding:8px 10px;position:absolute;right:10px;top:30px;cursor:pointer}.listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px 0 hsla(0,0%,100%,.08);transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0 40px;opacity:0}.listing_box .closebtn{display:none}.show .listing_box{width:250px;max-width:250px;flex:0 0 250px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}@media (min-width:1600px){.show .listing_box{width:320px;max-width:320px;flex:0 0 320px}}.show .listing_box h2{color:#fff;white-space:nowrap}.show .listing_box ul{padding:0 20px 0 0}.show .listing_box ul li{background:#4a4a4a;padding:15px;border-radius:15px;display:flex;margin-bottom:15px}.show .listing_box ul li .companayIcon{width:40px;height:40px;border-radius:10px;background:#fff;margin-right:10px;display:flex;justify-content:center;align-items:center}.show .listing_box ul li .company_cont{width:calc(100% - 50px)}.show .listing_box ul li .company_cont h3{color:#fff;font-size:15px;font-weight:400;margin:0;text-overflow:ellipsis;max-width:129px;-webkit-box-orient:vertical;white-space:nowrap;overflow:hidden}@media (min-width:1600px){.show .listing_box ul li .company_cont h3{max-width:170px}}.show .listing_box ul li .company_cont p{color:#bcbcbc;font-size:12px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:16px}.show .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px 0 hsla(0,0%,100%,.08);display:block}.loader{position:absolute;width:95%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.buttonprt{margin-right:83px}.destination .duration{padding:10px}.destination span{padding:5px 0}.closebtnroutedetail{box-shadow:0 0 5px 0 rgba(0,0,0,.11);border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#fff;position:absolute;top:-11px;left:-11px}.routenotes{max-height:170px;overflow:auto}"]}]}],N.ctorParameters=function(){return[{type:i.CoolmapService},{type:i.UtilsService},{type:f.MatDialog}]},N.propDecorators={filterPickup:[{type:e.ViewChild,args:["filterPickup"]}],filterDelivery:[{type:e.ViewChild,args:["filterDelivery"]}],changeNav:[{type:e.Output}],updateRouteList:[{type:e.Output}],routeData:[{type:e.Input}],portalName:[{type:e.Input}]};var P=function(){function t(t){var i,n=this;this.utils=t,this.filterForm=new l.FormGroup({search:new l.FormControl}),this.filters=[],this.loaderVal=!1,this.routes=[],this.changeNav=new e.EventEmitter,this.navValue="",this.addemit=new e.EventEmitter,this.updateRouteList=!1,this.destroyer$=new r.Subject,this.preventListUpdate=!1,this.filteredOptions=null===(i=this.filterForm.get("search"))||void 0===i?void 0:i.valueChanges.pipe(o.startWith(""),o.map((function(t){return n.utils.filter(t,n.filters)})))}return t.prototype.showAddForm=function(){this.changeNav.emit("addForm"),this.addemit.emit("")},t.prototype.filterSearch=function(t){this.changeNav.emit({type:"Addroute"}),this.preventListUpdate=!0,this.filterForm.controls.search.setValue(null),this.filters=[{name:t.source.value.label,type:t.source.value.type,value:t.source.value}]},t.prototype.removeFromFilter=function(t){this.changeNav.emit({type:"Addroute"}),this.filters.indexOf(t)>=0&&(this.filters=[])},t.prototype.ngAfterViewInit=function(){this.getRouteList()},t.prototype.ngOnChanges=function(t){t.updateRouteList&&t.updateRouteList.currentValue&&this.getRouteList(),t.navValue&&"addForm"===t.navValue.previousValue&&!this.preventListUpdate&&this.getRouteList()},t.prototype.getRoute=function(t){"editroute"===t.type&&this.addemit.emit(t)},t.prototype.getRouteList=function(){var t=this;this.utils.getData("coolmap/routes/all").pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){e&&(t.filters=[],t.routes=e.data,t.preventListUpdate=!1,t.utils.clearOptions(),t.routes.forEach((function(e){t.utils.makeOptions(e)})))}))},t.prototype.resetSearch=function(){this.changeNav.emit("Addroute")},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();P.decorators=[{type:e.Component,args:[{selector:"app-add-route-nav",template:'<div class="nav_body">\r\n <div class="logo">\r\n <img src="assets/images/logo.png" alt="logo" />\r\n </div>\r\n <div class="heading m-20">\r\n <h1>View Route</h1>\r\n <button mat-raised-button color="primary" (click)="showAddForm()">\r\n <mat-icon>add_circle_outline</mat-icon> Add route\r\n </button>\r\n </div>\r\n\r\n <div class="search-panel">\r\n <div class="w-100">\r\n <form [formGroup]="filterForm">\r\n <mat-form-field class="full-width" [class.disabled]="loaderVal">\r\n <input matInput [matChipInputFor]="chipList" formControlName="search" [matAutocomplete]="auto"\r\n [disabled]="loaderVal" placeholder="Search">\r\n <mat-icon matSuffix *ngIf="!utils.conveySearchIcon(filterForm.value.search)">search</mat-icon>\r\n <button mat-button matSuffix mat-icon-button aria-label="Clear" *ngIf="utils.conveySearchIcon(filterForm.value.search)"\r\n (click)="filterForm.reset()">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">\r\n <mat-option *ngFor="let option of filteredOptions | async" (onSelectionChange)="filterSearch($event)"\r\n [value]="option">\r\n {{option.type | titlecase }}: {{option[\'label\']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n <div class="chip-list">\r\n <mat-chip-list #chipList aria-label="Filter selection">\r\n <mat-chip *ngFor="let filter of filters" (removed)="removeFromFilter(filter)">\r\n {{filter.type | titlecase }}: {{filter.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n </div>\r\n <app-route-jobcode-list [type]="\'addroute\'" [currentNav]="navValue" [searchTerm]="filters" [data]="routes" [loader]="loaderVal" (emitroute)="getRoute($event)"></app-route-jobcode-list>\r\n</div>\r\n',styles:[""]}]}],P.ctorParameters=function(){return[{type:i.UtilsService}]},P.propDecorators={changeNav:[{type:e.Output}],navValue:[{type:e.Input}],addemit:[{type:e.Output}],updateRouteList:[{type:e.Input}]};var z=function(){function t(t){var i=this;this.utils=t,this.filterForm=new l.FormGroup({search:new l.FormControl}),this.listData=[],this.loaderVal=!1,this.dateValue=new Date,this.jobemit=new e.EventEmitter,this.value="",this.filters=[],this.clearJobDetails=new e.EventEmitter,this.destroyer$=new r.Subject,t.navChangeObserve.pipe(o.takeUntil(this.destroyer$)).subscribe((function(t){i.loaderVal=!t}))}return t.prototype.ngOnInit=function(){this.loadData(this.utils.getDateFormat(new Date))},t.prototype.loadData=function(t){var e,i=this;this.filteredOptions=null===(e=this.filterForm.get("search"))||void 0===e?void 0:e.valueChanges.pipe(o.startWith(""),o.map((function(t){return i.utils.filter(t,i.filters)}))),this.utils.preventnavChange.next(!1),this.loaderVal=!0,this.utils.postdata("coolmap/jobs_report_v2",{date:t}).pipe(o.takeUntil(this.destroyer$)).subscribe((function(e){"string"!=typeof e.data?(e.data.length>0&&(i.listData=e.data.map((function(e){return e.date=t,e}))),i.listData.forEach((function(t){i.utils.makeOptions(t)}))):i.listData=[],i.clearJobDetails.emit(!0),i.utils.clearViewRouteforJobCode.next(!0),i.filters=[],"string"==typeof e.data&&i.utils.preventnavChange.next(!0)}),(function(t){t&&i.utils.preventnavChange.next(!0)}))},t.prototype.getRoute=function(t){"jobcode"===t.type&&this.jobemit.emit(t)},t.prototype.getDate=function(t){this.loadData(this.utils.getDateFormat(t.value))},t.prototype.filterSearch=function(t){this.filterForm.controls.search.setValue(null),this.filterForm.controls.search.updateValueAndValidity(),this.filters=[{name:t.source.value.label,type:t.source.value.type,value:t.source.value}]},t.prototype.removeFromFilter=function(t){this.filters.indexOf(t)>=0&&(this.filters=[])},t.prototype.ngOnDestroy=function(){this.destroyer$.next(!0),this.destroyer$.unsubscribe()},t}();z.decorators=[{type:e.Component,args:[{selector:"app-job-code-nav",template:'<div class="nav_body">\r\n <div class="search-panel">\r\n <div class="datepicker">\r\n <mat-form-field>\r\n <mat-label>Choose a date</mat-label>\r\n <input readonly matInput (click)="picker.open()" [disabled]="loaderVal" [(ngModel)]="dateValue" [matDatepicker]="picker" (dateChange)="getDate($event)">\r\n <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class="search">\r\n <form [formGroup]="filterForm">\r\n <mat-form-field class="full-width" [class.disabled]="loaderVal">\r\n <input matInput [matChipInputFor]="chipList" formControlName="search" [matAutocomplete]="auto"\r\n [disabled]="loaderVal" placeholder="Search">\r\n <mat-icon matSuffix *ngIf="!utils.conveySearchIcon(filterForm.value.search)">search</mat-icon>\r\n <button mat-button matSuffix mat-icon-button aria-label="Clear" *ngIf="utils.conveySearchIcon(filterForm.value.search)" (click)="filterForm.reset()">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">\r\n <mat-option *ngFor="let option of filteredOptions | async" (onSelectionChange)="filterSearch($event)"\r\n [value]="option">\r\n {{option.type | titlecase }}: {{option[\'label\']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="chip-list">\r\n <mat-chip-list #chipList aria-label="Filter selection">\r\n <mat-chip *ngFor="let filter of filters" (removed)="removeFromFilter(filter)">\r\n {{filter.type | titlecase }}: {{filter.name}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n </div>\r\n <app-route-jobcode-list [type]="\'jobcode\'" [searchTerm]="filters" [data]="listData" [loader]="loaderVal" (clearJobDetailsFromList)="clearJobDetails.emit(true)" (showAllRoute)="filters = []; clearJobDetails.emit(true)" (emitroute)="getRoute($event)"></app-route-jobcode-list>\r\n</div>\r\n',styles:[".search-panel .datepicker,.search-panel .search{width:47%}"]}]}],z.ctorParameters=function(){return[{type:i.UtilsService}]},z.propDecorators={jobemit:[{type:e.Output}],clearJobDetails:[{type:e.Output}]};var $=function(){this.label=i.EstinationData,this.Estinationlabel=i.EstinationEnum};$.decorators=[{type:e.Component,args:[{selector:"app-estimation-display",template:'<div class="d-flex">\r\n <ng-container *ngFor="let item of label">\r\n <span *ngIf="value[item]" class="estimate" (mousedown)="$event.stopPropagation()">\r\n Estimation of {{Estinationlabel[item]}} - <b>{{value[item]}}</b>\r\n </span>\r\n </ng-container>\r\n</div>\r\n',styles:[".estimate{margin-right:20px;font-size:.7rem}@media (min-width:1600px){.estimate{font-size:.95rem}}"]}]}],$.ctorParameters=function(){return[]},$.propDecorators={value:[{type:e.Input}]};var J=function(){};J.decorators=[{type:e.NgModule,args:[{declarations:[R,D,F,P,z,L,S,j,M,I,E,V,A,O,N,$],imports:[g.CommonModule,a.MatSnackBarModule,n.MatSidenavModule,s.DragDropModule,l.FormsModule,p.MatInputModule,d.MatSelectModule,u.MatIconModule,l.ReactiveFormsModule,c.MatAutocompleteModule,m.MatFormFieldModule,h.MatProgressSpinnerModule,b.MatChipsModule,f.MatDialogModule,v.MatTooltipModule,x.MatDatepickerModule,y.MatNativeDateModule,_.PerfectScrollbarModule,y.MatPseudoCheckboxModule,w.MatButtonModule,k.MatProgressBarModule],exports:[R,D,F,P,z,L,S,j,M,I,E,V,A,O,N,$],entryComponents:[O,I,N],providers:[]}]}],t.AddRouteComponent=N,t.AddRouteNavComponent=P,t.CoolmapComponent=R,t.CoolmapModule=J,t.DialogComponent=O,t.JobCodeComponent=I,t.JobCodeListCardComponent=M,t.JobCodeNavComponent=z,t.JobRouteListComponent=E,t.JobcodeOverviewComponent=A,t.JobcodeStatusComponent=V,t.MapComponent=D,t.NavComponent=F,t.RouteJobCodeListComponent=L,t.SmsCardDetailsOverviewComponent=j,t.ViewRouteListCardComponent=S,t.ɵa=$,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=coolmap.umd.min.js.map
|