@aggdirect/coolmap-services 1.0.5 → 1.0.7

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.
@@ -616,7 +616,7 @@
616
616
  CoolmapService.prototype.initiateMapForAddRoute = function (el) {
617
617
  var _this = this;
618
618
  return new Promise(function (resolve, reject) {
619
- _this.map.remove();
619
+ _this.map ? _this.map.remove() : '';
620
620
  _this.map = new mapboxgl.Map({
621
621
  accessToken: 'pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ',
622
622
  container: el,
@@ -1 +1 @@
1
- {"version":3,"file":"coolmap-services.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/coolmap-services/src/lib/service/utils.service.ts","../../../projects/coolmap-services/src/lib/service/coolmap.service.ts","../../../projects/coolmap-services/src/lib/service/data-model.ts","../../../projects/coolmap-services/src/public-api.ts","../../../projects/coolmap-services/src/coolmap-services.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Route } from './data-model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UtilsService {\r\n analyticsRESTURL = '';\r\n RESTURLPrefix = '';\r\n pickupOptions: any[] = [];\r\n destOptions: any[] = [];\r\n ownerOptions: any[] = [];\r\n customerOptions: any[] = [];\r\n unitOptions: any[] = [];\r\n materialOptions: any[] = [];\r\n jcodeOptions: any[] = [];\r\n driverOption: any[] = [];\r\n truckingCompanayOption: any[] = [];\r\n routeNameOptions: any[] = [];\r\n public preventnavChange = new BehaviorSubject(false);\r\n navChangeObserve = this.preventnavChange.asObservable();\r\n clearViewRouteforJobCode = new BehaviorSubject(false);\r\n clearViewRouteforJobCodeObserve = this.clearViewRouteforJobCode.asObservable();\r\n preVentJobdetailclose = new BehaviorSubject(false);\r\n getpreVentJobdetailclose = this.preVentJobdetailclose.asObservable();\r\n routeDetailsUtility = new BehaviorSubject({});\r\n getrouteDetailsUtility = this.routeDetailsUtility.asObservable();\r\n removeMapEntity = new BehaviorSubject({});\r\n removeMapEntityUtility = this.removeMapEntity.asObservable();\r\n dict = new Map<string, string>();\r\n constructor(public http: HttpClient,public snackBar: MatSnackBar) {\r\n this.analyticsRESTURL = 'https://test-analytics.aggdirect.com/REST/';\r\n this.RESTURLPrefix = 'https://test-server.aggdirect.com/REST/';\r\n }\r\n getDateFormat(strVal: Date | null, seprater?: string) {\r\n seprater = seprater ? seprater : '-';\r\n const mydate = strVal;\r\n return mydate?.getFullYear() + seprater + ((mydate ? mydate.getMonth() : 0) + 1) + seprater + mydate?.getDate();\r\n }\r\n getData(path: string) { return this.http.get(`${this.analyticsRESTURL}${path}`) }\r\n postdata(path: string, data: any) { return this.http.post(`${this.analyticsRESTURL}${path}`, data) }\r\n postDataWithRestUrl(path: string, data: any) { return this.http.post(`${this.RESTURLPrefix}${path}`, data) }\r\n fetchAutoCompleteLocations(keyword: string) {\r\n return this.http.get(`https://api.mapbox.com/geocoding/v5/mapbox.places/${keyword}.json?access_token=pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ&country=US`)\r\n }\r\n openSnackBar(message: string, className?: string) {\r\n this.snackBar.open(message, '', {\r\n duration: 5000, verticalPosition: 'top', horizontalPosition: 'center', panelClass: [className ? className : 'default']\r\n });\r\n }\r\n\r\n makeOptions(item: Route) {\r\n if (item.order_number) {\r\n (this.jcodeOptions.findIndex((elem) => elem.job_id === item.job_id) === -1) ? this.jcodeOptions.push({ job_code: item.order_number, job_id: item.job_id }) : null;\r\n if (item.driver_list && item.driver_list?.length > 0) {\r\n item.driver_list.forEach((driver) => {\r\n this.driverOption.findIndex(elem => elem === driver['driver_name']) === -1 ? this.driverOption.push(driver['driver_name']) : null;\r\n this.truckingCompanayOption.findIndex(elem => elem === driver['trucking_company']) === -1 ? this.truckingCompanayOption.push(driver['trucking_company']) : null;\r\n });\r\n }\r\n }\r\n ((this.pickupOptions.findIndex((elem) => elem === item.pickup_location)) === -1) ? this.pickupOptions.push(item.pickup_location) : null;\r\n ((this.destOptions.findIndex((elem) => elem === item.delivery_location)) === -1) ? this.destOptions.push(item.delivery_location) : null;\r\n (this.customerOptions.findIndex((customer) => customer === item.customer_name) === -1) ? this.customerOptions.push(item.customer_name) : null;\r\n (this.unitOptions.findIndex((elem) => elem === item.unit) === -1) ? this.unitOptions.push(item.unit) : null;\r\n (this.materialOptions.findIndex((elem) => elem === item.material) === -1) ? this.materialOptions.push(item.material) : null;\r\n if (item.route_name) this.routeNameOptions.findIndex(elem => elem === item.route_name) === -1 ? this.routeNameOptions.push(item.route_name) : null;\r\n }\r\n\r\n filter(value: string, filters: any) {\r\n if (typeof value !== 'string') { return [] }\r\n const filterValue = value.toLowerCase();\r\n if (filterValue === '') { return [] }\r\n const searchResults: any[] = [];\r\n this.unitOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"unit\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.customerOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"customer\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.materialOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"material\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.pickupOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"pickup location\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.destOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"destination location\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.jcodeOptions.map(unit => {\r\n if (unit.job_code.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"job\", \"label\": unit['job_code'], \"value\": unit })\r\n }\r\n });\r\n this.driverOption.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Driver\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n\r\n this.truckingCompanayOption.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Trucking Company\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.routeNameOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Route name\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n const searchDict: any = {}\r\n filters.map((filter: { [x: string]: any; }) => {\r\n searchDict[filter['name'] + filter['type']] = filter;\r\n })\r\n const furtherFilter: any[] = [];\r\n searchResults.map(search => {\r\n if ((search['label'] + search['type']) in searchDict) { }\r\n else { furtherFilter.push(search) }\r\n });\r\n return furtherFilter;\r\n }\r\n\r\n getSearchResults(list: Route[], filterval: any): any {\r\n return list.filter(element => {\r\n const result_list_boolean = []\r\n if (filterval.length > 0) {\r\n if (filterval[0]['type'] === 'unit') {\r\n result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type'] as keyof Route]);\r\n }\r\n if (filterval[0]['type'] === 'customer') {\r\n result_list_boolean.push(filterval[0]['name'] === element['customer_name']);\r\n }\r\n if (filterval[0]['type'] === 'material') {\r\n result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type'] as keyof Route]);\r\n }\r\n if (filterval[0]['type'] === 'pickup location') {\r\n result_list_boolean.push(filterval[0]['name'] === element['pickup_location']);\r\n }\r\n if (filterval[0]['type'] === 'destination location') {\r\n result_list_boolean.push(filterval[0]['name'] === element['delivery_location']);\r\n }\r\n if (filterval[0]['type'] === 'job') {\r\n result_list_boolean.push(filterval[0]['name'] === element['order_number']);\r\n }\r\n if (filterval[0]['type'] === 'Route name') {\r\n result_list_boolean.push(filterval[0]['name'] === element['route_name']);\r\n }\r\n if (filterval[0]['type'] === 'Driver') {\r\n const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['driver_name'] });\r\n if (index !== -1) result_list_boolean.push(true);\r\n }\r\n if (filterval[0]['type'] === 'Trucking Company') {\r\n const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['trucking_company'] });\r\n if (index !== -1) result_list_boolean.push(true);\r\n }\r\n }\r\n if (result_list_boolean.length > 0) {\r\n return result_list_boolean.reduce((prev, curr) => prev && curr);\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n clearOptions() {\r\n this.pickupOptions = [];\r\n this.destOptions = [];\r\n this.ownerOptions = [];\r\n this.customerOptions = [];\r\n this.unitOptions = [];\r\n this.materialOptions = [];\r\n this.jcodeOptions = [];\r\n this.routeNameOptions = [];\r\n }\r\n setdictValue(key: string, value: string) {\r\n this.dict.set(key, value);\r\n }\r\n getdictValue(key: string) {\r\n return JSON.parse(this.dict.get(key));\r\n }\r\n removedictValue(key: string) {\r\n this.dict.delete(key);\r\n }\r\n conveySearchIcon(value: any): boolean{\r\n if(value && typeof(value) !== 'object') return true;\r\n return false\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport * as turf from '@turf/turf';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { PopupData, Route } from './data-model';\r\nimport { UtilsService } from './utils.service';\r\nimport { EventManager } from '@angular/platform-browser';\r\nimport { MapboxLayer } from \"@deck.gl/mapbox\";\r\nimport { ArcLayer } from '@deck.gl/layers';\r\n\r\ndeclare const Threebox: any;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CoolmapService {\r\n map!: mapboxgl.Map\r\n markerOriginList: mapboxgl.Marker[] = [];\r\n markerDestinationList: mapboxgl.Marker[] = [];\r\n initiatecoolmap = new BehaviorSubject(true);\r\n reintiatecoolmap = this.initiatecoolmap.asObservable();\r\n bounds = new mapboxgl.LngLatBounds();\r\n originDestinationCordinates: any = [];\r\n padding!: any;\r\n windowActualHeightWidth!: any;\r\n popup: mapboxgl.Popup;\r\n\r\n constructor(public utils: UtilsService, public eventManager: EventManager) {\r\n this.eventManager.addGlobalEventListener('window', 'resize', this.onResize.bind(this)); this.windowActualHeightWidth = { availHeight: 0 };\r\n }\r\n\r\n initiateMapForAddRoute(el: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n this.map.remove();\r\n this.map = new mapboxgl.Map({\r\n accessToken: 'pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ',\r\n container: el,\r\n style: 'mapbox://styles/santanu-ogma/cl8ep33uz003414n1twlosz9d',\r\n center: [-77.036873, 38.907192],\r\n zoom: 10, bearing: 0, pitch: 65, interactive: true,\r\n });\r\n this.map.once('load', (res) => {\r\n resolve(res);\r\n });\r\n });\r\n }\r\n // Below method Load route with animation\r\n loadMapProperty(pinRouteGeojson: any, index: number, unit: any, route?: any, bottom?: number) {\r\n return new Promise((resolve, reject)=>{\r\n let origin = pinRouteGeojson.features[0].geometry.coordinates[0];\r\n const linecolor = (unit === 'Ton') ? '#ff7272' : (unit === 'Load') ? '#a3c52e' : '#ae23d1';\r\n let destination = pinRouteGeojson.features[0].geometry.coordinates[pinRouteGeojson.features[0].geometry.coordinates.length - 1];\r\n this.extendBound(pinRouteGeojson.features[0].geometry.coordinates, true).then((res: any) => {\r\n const point: any = {\r\n 'type': 'FeatureCollection',\r\n 'features': [\r\n { 'type': 'Feature', 'properties': {}, 'geometry': { 'type': 'Point', 'coordinates': origin } }\r\n ]\r\n }\r\n const lineDistance = turf.length(pinRouteGeojson.features[0]);\r\n const arc = [];\r\n const steps = 10 * pinRouteGeojson.features[0].geometry.coordinates.length;\r\n for (let i = 0; i < lineDistance; i += lineDistance / steps) {\r\n const segment = turf.along(pinRouteGeojson.features[0], i);\r\n arc.push(segment.geometry.coordinates);\r\n }\r\n pinRouteGeojson.features[0].geometry.coordinates = arc;\r\n const pinRoute = pinRouteGeojson.features[0].geometry.coordinates;\r\n const marker = new mapboxgl.Marker(document.createElement('div'))\r\n .setLngLat(pinRoute[0]).addTo(this.map).togglePopup();\r\n\r\n if (this.map.getSource(`line${index}`)) {\r\n this.removeRouteAndMarker(index).then(() => { })\r\n }\r\n\r\n this.map.addSource(`line${index}`, { type: 'geojson', lineMetrics: true, data: pinRouteGeojson });\r\n this.map.addLayer({\r\n type: 'line',\r\n source: `line${index}`,\r\n id: `line${index}`,\r\n paint: {\r\n 'line-width': 2,\r\n 'line-gradient': [\r\n 'interpolate',\r\n ['linear'],\r\n ['line-progress'],\r\n 0, unit === 'Ton' ? '#d7f7e4' : unit === 'Load' ? '#c9d8f5' : '#f5dcc1',\r\n 1, unit === 'Ton' ? '#ff7272' : unit === 'Load' ? '#a3c52e' : '#ae23d1',\r\n ]\r\n },\r\n layout: { 'line-cap': 'round', 'line-join': 'round' }\r\n });\r\n\r\n const dataSetForMap = {\r\n counter: 0, pinRouteGeojson, steps,\r\n point, pointId: `point${index}`,\r\n marker, pinRoute, lineId: `line${index}`, index,\r\n origin, destination, lineDistance,\r\n linecolor, route, isViewRoute: true\r\n }\r\n this.createMarker(dataSetForMap);\r\n this.map.on('mouseenter', `line${index}`, (e) => {\r\n this.map.setPaintProperty(`line${index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`line${index}`, 'line-opacity', 1);\r\n const datasetForPopup: PopupData = {\r\n coordinate: [e.lngLat.lng, e.lngLat.lat],\r\n pickup: route.pickup_location ? route.pickup_location : '',\r\n drop: route.delivery_location ? route.delivery_location : '',\r\n routeType: route.project ? 'Project' : 'Route',\r\n title: route.project ? route.project : route.route_name ? route.route_name : '',\r\n material: route.material ? route.material : '',\r\n type: route.unit ? route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n });\r\n this.map.on('mouseleave', `line${index}`, (e) => {\r\n this.map.setPaintProperty(`line${index}`, 'line-width', 2);\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n });\r\n })\r\n\r\n this.map.once('idle', (res) => {\r\n resolve(true)\r\n });\r\n})\r\n }\r\n // Below method Load route without animation\r\n drawLine(cordinates?: any, index?: number | any, route?: any, enablefitbound?: boolean, routeType?: string) {\r\n let linecolor: any;\r\n let origin = cordinates[0]; let destination = cordinates[cordinates.length - 1]\r\n if (origin[0] && origin[1] && destination && destination[0] && destination[1]) {\r\n linecolor = this.provideLineColor(route['unit'], routeType);\r\n if (enablefitbound) {\r\n const padding = {\r\n top: this.padding.top, bottom: this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65)),\r\n left: this.padding.left, right: this.padding.right\r\n }\r\n this.map.fitBounds([origin, destination], { padding }, { fitboundCompleteJob: true })\r\n }\r\n if (this.map.getSource(`route-source-for-job-code${index}`)) {\r\n this.removeRouteAndMarker(index).then(() => { })\r\n }\r\n this.map.addSource(`route-source-for-job-code${index}`, {\r\n 'type': 'geojson',\r\n 'data': { 'type': 'Feature', 'properties': {}, 'geometry': { 'type': 'LineString', 'coordinates': cordinates } }\r\n });\r\n this.map.addLayer({\r\n 'id': `route-for-job-code${index}`, 'type': 'line', 'source': `route-source-for-job-code${index}`,\r\n paint: { 'line-color': linecolor, 'line-width': 2 },\r\n layout: { 'line-cap': 'round', 'line-join': 'round' }\r\n });\r\n const dataSetForMap = {\r\n origin, destination, index, linecolor, route\r\n }\r\n this.createMarker(dataSetForMap);\r\n this.map.on('mouseenter', `route-for-job-code${index}`, (e) => {\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-opacity', 1);\r\n const datasetForPopup: PopupData = {\r\n coordinate: [e.lngLat.lng, e.lngLat.lat],\r\n pickup: route.pickup_location ? route.pickup_location : '',\r\n drop: route.delivery_location ? route.delivery_location : '',\r\n jobCode: route.project ? route.order_number : null,\r\n customer: route.project ? route.customer_name : null,\r\n routeType: route.project ? 'Project' : 'Route',\r\n title: route.project ? route.project : route.route_name ? route.route_name : '',\r\n material: route.material ? route.material : '',\r\n type: route.unit ? route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n });\r\n this.map.on('mouseleave', `route-for-job-code${index}`, (e) => {\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-width', 2);\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n });\r\n }\r\n }\r\n\r\n provideLineColor(unitType: string, type?: string | undefined) {\r\n let checkType = (type && !['jobrouteList', 'addroute'].includes(type)) ? true : false;\r\n let color;\r\n switch (unitType) {\r\n case \"Ton\":\r\n color = checkType ? '#39c471' : '#ff7272';\r\n break;\r\n case \"Load\":\r\n color = checkType ? '#326ad3' : '#a3c52e';\r\n break;\r\n case \"Hourly\":\r\n color = checkType ? '#ffad56' : '#ae23d1';\r\n break;\r\n }\r\n return color;\r\n }\r\n\r\n showRoutePopup(arcDetails, event, isViewRoute?): void {\r\n if (this.popup) {\r\n this.popup.remove();\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-width', 2);\r\n }\r\n if (arcDetails.color && this.map.getLayoutProperty(arcDetails.layer.id, 'visibility') !== 'none') {\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-opacity', 1);\r\n\r\n const datasetForPopup: PopupData = {\r\n coordinate: arcDetails.coordinate,\r\n pickup: arcDetails.layer.props.data.route.pickup_location ? arcDetails.layer.props.data.route.pickup_location : '',\r\n drop: arcDetails.layer.props.data.route.delivery_location ? arcDetails.layer.props.data.route.delivery_location : '',\r\n jobCode: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.order_number : '',\r\n customer: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.customer_name : '',\r\n routeType: arcDetails.layer.props.data.route.project ? 'Project' : 'Route',\r\n title: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.project : arcDetails.layer.props.data.route.route_name ? arcDetails.layer.props.data.route.route_name : '',\r\n material: arcDetails.layer.props.data.route.material ? arcDetails.layer.props.data.route.material : '',\r\n type: arcDetails.layer.props.data.route.unit ? arcDetails.layer.props.data.route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n }\r\n }\r\n\r\n createPopup(datasetForPopup: PopupData): void {\r\n this.popup = new mapboxgl.Popup({\r\n closeButton: false,\r\n closeOnClick: false,\r\n closeOnMove: true,\r\n anchor: 'bottom-left'\r\n });\r\n\r\n this.popup.setLngLat(datasetForPopup.coordinate)\r\n .setHTML(`\r\n <div class=\"destination\">\r\n <div class=\"duration\">\r\n <p class=\"pickprt\"><b>Pickup Location:</b> ${datasetForPopup.pickup}</p>\r\n <p class=\"dropprt\"><b>Drop Location:</b> ${datasetForPopup.drop}</p>\r\n </div>\r\n ${datasetForPopup.jobCode ? '<span><b>Job Code:</b> ' + datasetForPopup.jobCode + '</span>' : ''}\r\n ${datasetForPopup.customer ? '<span><b>Customer:</b> ' + datasetForPopup.customer + '</span>' : ''}\r\n <span><b>${datasetForPopup.routeType} Name:</b> ${datasetForPopup.title}</span>\r\n <span><b>Material:</b> ${datasetForPopup.material}</span>\r\n <span><b>Type:</b> ${datasetForPopup.type}</span>\r\n </div>\r\n `)\r\n .addTo(this.map);\r\n }\r\n\r\n hexToRGB(hex: any): [number, number, number] {\r\n return hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i\r\n , (m, r, g, b) => '#' + r + r + g + g + b + b)\r\n .substring(1).match(/.{2}/g)\r\n .map(x => parseInt(x, 16))\r\n }\r\n\r\n createMarker(routeDetails) {\r\n if (routeDetails.origin[0] && routeDetails.origin[1] && routeDetails.destination[0] && routeDetails.destination[1]) {\r\n\r\n const popup = new mapboxgl.Popup({ closeButton: false }).setHTML('<b>Pickup: </b>' + routeDetails.route?.pickup_location);\r\n const popupForDestination = new mapboxgl.Popup({ closeButton: false })\r\n .setHTML('<b>Delivery: </b>' + routeDetails.route?.delivery_location);\r\n\r\n const el = document.createElement('div');\r\n el.className = 'marker';\r\n el.innerHTML = `<span class='markerPointer' style='background:${routeDetails.linecolor}'><b>P</b><span class='markerSpan' style='border-top: 10px solid ${routeDetails.linecolor}'></span></span>`\r\n\r\n const originMarker = new mapboxgl.Marker(el)\r\n .setPopup(popup).setLngLat(routeDetails.origin).addTo(this.map);\r\n\r\n originMarker.getElement().addEventListener('mouseenter', () => originMarker.togglePopup());\r\n originMarker.getElement().addEventListener('mouseleave', () => originMarker.togglePopup());\r\n\r\n const elementForDestination = document.createElement('div');\r\n elementForDestination.className = 'marker';\r\n elementForDestination.innerHTML = `<span class='markerPointer' style='background:${routeDetails.linecolor}'><b>D</b><span class='markerSpan' style='border-top: 10px solid ${routeDetails.linecolor}'></span></span>`\r\n\r\n const destinationMarker = new mapboxgl.Marker(elementForDestination).setPopup(popupForDestination).setLngLat(routeDetails.destination).addTo(this.map);\r\n destinationMarker.getElement().addEventListener('mouseenter', () => destinationMarker.togglePopup());\r\n destinationMarker.getElement().addEventListener('mouseleave', () => destinationMarker.togglePopup());\r\n this.markerOriginList[routeDetails.index] = originMarker;\r\n this.markerDestinationList[routeDetails.index] = destinationMarker;\r\n\r\n const colorArray = this.hexToRGB(routeDetails.linecolor)\r\n const arcLayer = new MapboxLayer({\r\n id: 'arc-layer' + routeDetails.index,\r\n type: ArcLayer,\r\n pickable: true,\r\n data: { route: routeDetails.route, index: routeDetails.index },\r\n getWidth: 1,\r\n getSourcePosition: routeDetails.origin,\r\n getTargetPosition: routeDetails.destination,\r\n getTargetColor: [255, 255, 255],\r\n getSourceColor: [colorArray[0], colorArray[1], colorArray[2]],\r\n onHover: (info, event) => this.showRoutePopup(info, event, routeDetails.isViewRoute),\r\n });\r\n this.map.addLayer(arcLayer);\r\n }\r\n }\r\n\r\n async removeRouteAndMarker(index: number | string | any) {\r\n if (this.map) {\r\n this.map.getLayer(`arc-layer${index}`) ? this.map.removeLayer(`arc-layer${index}`) : '';\r\n this.map.getLayer(`line${index}`) ? this.map.removeLayer(`line${index}`) : '';\r\n this.map.getLayer(`custom_layer${index}`) ? this.map.removeLayer(`custom_layer${index}`) : '';\r\n this.map.getSource(`line${index}`) ? this.map.removeSource(`line${index}`) : '';\r\n this.map.getLayer(`route-for-job-code${index}`) ? this.map.removeLayer(`route-for-job-code${index}`) : '';\r\n this.map.getSource(`route-source-for-job-code${index}`) ? this.map.removeSource(`route-source-for-job-code${index}`) : '';\r\n this.findMarkerBound(index);\r\n this.markerOriginList[index] ? this.markerOriginList[index].remove() : '';\r\n this.markerDestinationList[index] ? this.markerDestinationList[index].remove() : '';\r\n await true;\r\n }\r\n }\r\n findMarkerBound(index: any) {\r\n const indexOfCordinates = this.originDestinationCordinates.findIndex((x: any) =>\r\n (x[0][0].toFixed(6) == this.markerOriginList[index]?.getLngLat()?.lng.toFixed(6)) && (x[0][1].toFixed(6) == this.markerOriginList[index]?.getLngLat()?.lat.toFixed(6)));\r\n if (indexOfCordinates >= 0) { this.originDestinationCordinates.splice(indexOfCordinates, 1) }\r\n }\r\n async filterRoute(ID: any, visibility: string, showAllFitbound?: boolean) {\r\n if (ID) {\r\n if (this.map.getLayer(`route-for-job-code${ID}`)) {\r\n this.map.setLayoutProperty(`route-for-job-code${ID}`, 'visibility', visibility);\r\n const originM = this.markerOriginList[ID].getElement();\r\n originM.style.display = ((visibility === 'visible') ? 'block' : visibility);\r\n const destinationM = this.markerDestinationList[ID].getElement();\r\n destinationM.style.display = ((visibility === 'visible') ? 'block' : visibility);\r\n if (visibility === 'none' && showAllFitbound) {\r\n this.findMarkerBound(ID);\r\n this.extendReBound();\r\n }\r\n }\r\n if (this.map.getLayer(`arc-layer${ID}`)) {\r\n this.map.setLayoutProperty(`arc-layer${ID}`, 'visibility', visibility);\r\n }\r\n }\r\n await true;\r\n }\r\n extendBound(route: any, showAllFitbound: boolean | undefined) {\r\n return new Promise((resolve, reject) => {\r\n if (route) {\r\n if (typeof route === 'string') {\r\n let path: any = route.split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n route = path\r\n }\r\n if (route[0][0] && route[0][1] && route[route.length - 1][0] && route[route.length - 1][1]) {\r\n this.originDestinationCordinates.push(route);\r\n route.map((item: any) => {\r\n this.bounds.extend(item);\r\n })\r\n }\r\n }\r\n if (showAllFitbound) {\r\n const padding = { top: this.padding.top, bottom: (this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65))), left: this.padding.left, right: this.padding.right }\r\n setTimeout(() => {\r\n if (showAllFitbound && (Object.keys(this.bounds).length > 0)) this.map.fitBounds(this.bounds, { padding }, { fitboundComplete: true })\r\n }, 100);\r\n this.map.once('moveend', (event: any) => { if (event.fitboundComplete) { resolve(true) } });\r\n }\r\n });\r\n }\r\n\r\n extendReBound(bottom?: number) {\r\n return new Promise((resolve, reject) => {\r\n this.bounds = new mapboxgl.LngLatBounds();\r\n\r\n if (this.originDestinationCordinates.length >= 0) {\r\n this.originDestinationCordinates.map((item: any, index: number) => {\r\n item.map((route: any) => {\r\n this.bounds.extend(route);\r\n })\r\n if (index === (this.originDestinationCordinates.length - 1)) {\r\n const padding = { top: this.padding.top, bottom: (this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65))), left: this.padding.left, right: this.padding.right }\r\n setTimeout(() => {\r\n if (this.originDestinationCordinates.length > 0) this.map.fitBounds(this.bounds, { padding });\r\n }, 500);\r\n resolve(true);\r\n }\r\n })\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }\r\n plotRoute(route: any, i: number | any, type: string, enablefitbound?: boolean, showAllFitbound?: boolean) {\r\n return new Promise((resolve, reject) => {\r\n let param: any = {};\r\n if (['jobcode'].includes(type)) {\r\n param['job'] = route['job_id']\r\n this.utils.postDataWithRestUrl('schedule/job/path', param).subscribe((res: any) => {\r\n if (res['data']['route']) {\r\n let path = res['data']['route'].split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n route['path'] = path;\r\n this.extendBound(route['path'], showAllFitbound);\r\n if (route['path'] && route['path'].length > 0) this.drawLine(route['path'], i, route, enablefitbound, type);\r\n route['index'] = i;\r\n } else {\r\n this.extendBound(null, showAllFitbound);\r\n }\r\n resolve(true);\r\n }, (err) => { if (err) { reject(false) } });\r\n } else if (['jobrouteList', 'addroute'].includes(type)) {\r\n if (route['path'] && route['path'].length > 0) {\r\n let path = route['path'].split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n this.extendBound(path, showAllFitbound);\r\n this.drawLine(path, i, route, enablefitbound, type)\r\n };\r\n }\r\n })\r\n }\r\n clearBound() { this.bounds = new mapboxgl.LngLatBounds(); this.originDestinationCordinates = []; this.clearPadding(); }\r\n formateLatLong(latlong: string) { return latlong ? latlong.split(',').map(x => +x).reverse() : null; }\r\n clearBoundWithCordinates() {\r\n this.bounds = new mapboxgl.LngLatBounds(); this.originDestinationCordinates = [];\r\n }\r\n\r\n onResize(event: any) {\r\n if (!this.bounds.isEmpty()) {\r\n this.windowActualHeightWidth.availHeight = (window.innerHeight > window.screen.availHeight) ? window.innerHeight : window.screen.availHeight;\r\n setTimeout(() => {\r\n this.map.fitBounds(this.bounds, { padding: { top: this.padding.top, bottom: this.padding.bottom + (this.windowActualHeightWidth.availHeight - (event.target.innerHeight - 65)), left: this.padding.left, right: this.padding.right } });\r\n }, 500);\r\n }\r\n }\r\n\r\n setWindowHeight(screen: any) {\r\n this.windowActualHeightWidth.availHeight = screen;\r\n }\r\n setPadding(padding: any) { this.padding = padding }\r\n clearPadding() { this.padding = null }\r\n removeJobFromMap(data: Route[]) {\r\n data.map((ele: any, index: number) => {\r\n const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);\r\n this.removeRouteAndMarker(id);\r\n if (index === (data.length - 1)) {\r\n this.extendReBound();\r\n }\r\n })\r\n }\r\n}\r\n","\r\nexport class Route {\r\n index: number = 0;\r\n type?: string | null;\r\n // Job Code\r\n customer_contact?: string | null;\r\n customer_name?: string | null;\r\n delivery_contact?: string | null;\r\n delivery_lat?: number | null;\r\n delivery_location?: string | null | undefined;\r\n delivery_lon?: number | null;\r\n driver_list?: Array<any>;\r\n material?: string | null;\r\n order_number?: string | null;\r\n pickup_lat?: number | null;\r\n pickup_location?: string | null | undefined;\r\n pickup_lon?: number | null;\r\n project?: string | null;\r\n total_count?: number;\r\n unit?: string | null;\r\n values: any;\r\n job_id?: string;\r\n isSelected?: boolean;\r\n date?: string;\r\n // Add Route\r\n created_at?: string | null;\r\n created_by_name?: string | null;\r\n customer_id?: string | null;\r\n delivery_lat_lng?: string | null;\r\n estimated_distance?: string | null;\r\n estimated_time?: string | null;\r\n materials_id?: string | null;\r\n path?: [number, number];\r\n pickup_lat_lng?: string | null;\r\n route_id?: string | null;\r\n route_name?: string | null;\r\n unit_id?: string | null;\r\n note?: string | null\r\n isActive?: boolean;\r\n prevent?: boolean;\r\n}\r\n\r\nexport const EstinationData = ['estimated_distance', 'estimated_time']\r\nexport enum EstinationEnum {\r\n estimated_distance = \"miles\",\r\n estimated_time = \"time\"\r\n}\r\n\r\nexport const JobCodeOverviewData = ['customer_contact', 'delivery_contact', 'pickup_location', 'delivery_location', 'project', 'unit']\r\nexport enum JobCodeOverviewEnum {\r\n customer_contact = 'Customer Contact',\r\n delivery_contact = 'Delivery Contact',\r\n pickup_location = 'Pickup',\r\n delivery_location = 'Delivery',\r\n project = 'Project Name',\r\n unit = 'Job Type',\r\n}\r\n\r\nexport const DriversmsCardKey = ['order_number', 'date', 'values', 'material', 'unit', 'pickup_location', 'delivery_location']\r\nexport enum DriverSmsCardEnum {\r\n order_number = 'Jobcode',\r\n date = 'Date',\r\n values = 'Total tasks',\r\n material = 'Material',\r\n unit = 'Unit',\r\n pickup_location = 'Pickup Address',\r\n delivery_location = 'Delivery Address'\r\n}\r\n\r\nexport class PopupData {\r\n coordinate: [number, number];\r\n pickup: string | null;\r\n jobCode?: string | null;\r\n customer?: string | null;\r\n drop: string | null;\r\n routeType: string | null;\r\n title: string | null;\r\n material: string | null;\r\n type: string | null;\r\n}\r\n","/*\r\n * Public API Surface of coolmap-services\r\n */\r\nexport * from './lib/service/coolmap.service';\r\nexport * from './lib/service/utils.service';\r\nexport * from './lib/service/data-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BehaviorSubject","Injectable","HttpClient","MatSnackBar","mapboxgl.LngLatBounds","mapboxgl.Map","turf.length","turf.along","mapboxgl.Marker","mapboxgl.Popup","MapboxLayer","ArcLayer","EventManager","EstinationEnum","JobCodeOverviewEnum","DriverSmsCardEnum"],"mappings":"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"}
1
+ {"version":3,"file":"coolmap-services.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/coolmap-services/src/lib/service/utils.service.ts","../../../projects/coolmap-services/src/lib/service/coolmap.service.ts","../../../projects/coolmap-services/src/lib/service/data-model.ts","../../../projects/coolmap-services/src/public-api.ts","../../../projects/coolmap-services/src/coolmap-services.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Route } from './data-model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UtilsService {\r\n analyticsRESTURL = '';\r\n RESTURLPrefix = '';\r\n pickupOptions: any[] = [];\r\n destOptions: any[] = [];\r\n ownerOptions: any[] = [];\r\n customerOptions: any[] = [];\r\n unitOptions: any[] = [];\r\n materialOptions: any[] = [];\r\n jcodeOptions: any[] = [];\r\n driverOption: any[] = [];\r\n truckingCompanayOption: any[] = [];\r\n routeNameOptions: any[] = [];\r\n public preventnavChange = new BehaviorSubject(false);\r\n navChangeObserve = this.preventnavChange.asObservable();\r\n clearViewRouteforJobCode = new BehaviorSubject(false);\r\n clearViewRouteforJobCodeObserve = this.clearViewRouteforJobCode.asObservable();\r\n preVentJobdetailclose = new BehaviorSubject(false);\r\n getpreVentJobdetailclose = this.preVentJobdetailclose.asObservable();\r\n routeDetailsUtility = new BehaviorSubject({});\r\n getrouteDetailsUtility = this.routeDetailsUtility.asObservable();\r\n removeMapEntity = new BehaviorSubject({});\r\n removeMapEntityUtility = this.removeMapEntity.asObservable();\r\n dict = new Map<string, string>();\r\n constructor(public http: HttpClient,public snackBar: MatSnackBar) {\r\n this.analyticsRESTURL = 'https://test-analytics.aggdirect.com/REST/';\r\n this.RESTURLPrefix = 'https://test-server.aggdirect.com/REST/';\r\n }\r\n getDateFormat(strVal: Date | null, seprater?: string) {\r\n seprater = seprater ? seprater : '-';\r\n const mydate = strVal;\r\n return mydate?.getFullYear() + seprater + ((mydate ? mydate.getMonth() : 0) + 1) + seprater + mydate?.getDate();\r\n }\r\n getData(path: string) { return this.http.get(`${this.analyticsRESTURL}${path}`) }\r\n postdata(path: string, data: any) { return this.http.post(`${this.analyticsRESTURL}${path}`, data) }\r\n postDataWithRestUrl(path: string, data: any) { return this.http.post(`${this.RESTURLPrefix}${path}`, data) }\r\n fetchAutoCompleteLocations(keyword: string) {\r\n return this.http.get(`https://api.mapbox.com/geocoding/v5/mapbox.places/${keyword}.json?access_token=pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ&country=US`)\r\n }\r\n openSnackBar(message: string, className?: string) {\r\n this.snackBar.open(message, '', {\r\n duration: 5000, verticalPosition: 'top', horizontalPosition: 'center', panelClass: [className ? className : 'default']\r\n });\r\n }\r\n\r\n makeOptions(item: Route) {\r\n if (item.order_number) {\r\n (this.jcodeOptions.findIndex((elem) => elem.job_id === item.job_id) === -1) ? this.jcodeOptions.push({ job_code: item.order_number, job_id: item.job_id }) : null;\r\n if (item.driver_list && item.driver_list?.length > 0) {\r\n item.driver_list.forEach((driver) => {\r\n this.driverOption.findIndex(elem => elem === driver['driver_name']) === -1 ? this.driverOption.push(driver['driver_name']) : null;\r\n this.truckingCompanayOption.findIndex(elem => elem === driver['trucking_company']) === -1 ? this.truckingCompanayOption.push(driver['trucking_company']) : null;\r\n });\r\n }\r\n }\r\n ((this.pickupOptions.findIndex((elem) => elem === item.pickup_location)) === -1) ? this.pickupOptions.push(item.pickup_location) : null;\r\n ((this.destOptions.findIndex((elem) => elem === item.delivery_location)) === -1) ? this.destOptions.push(item.delivery_location) : null;\r\n (this.customerOptions.findIndex((customer) => customer === item.customer_name) === -1) ? this.customerOptions.push(item.customer_name) : null;\r\n (this.unitOptions.findIndex((elem) => elem === item.unit) === -1) ? this.unitOptions.push(item.unit) : null;\r\n (this.materialOptions.findIndex((elem) => elem === item.material) === -1) ? this.materialOptions.push(item.material) : null;\r\n if (item.route_name) this.routeNameOptions.findIndex(elem => elem === item.route_name) === -1 ? this.routeNameOptions.push(item.route_name) : null;\r\n }\r\n\r\n filter(value: string, filters: any) {\r\n if (typeof value !== 'string') { return [] }\r\n const filterValue = value.toLowerCase();\r\n if (filterValue === '') { return [] }\r\n const searchResults: any[] = [];\r\n this.unitOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"unit\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.customerOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"customer\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.materialOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"material\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.pickupOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"pickup location\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.destOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"destination location\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.jcodeOptions.map(unit => {\r\n if (unit.job_code.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"job\", \"label\": unit['job_code'], \"value\": unit })\r\n }\r\n });\r\n this.driverOption.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Driver\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n\r\n this.truckingCompanayOption.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Trucking Company\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n this.routeNameOptions.map(unit => {\r\n if (unit.toLowerCase().includes(filterValue)) {\r\n searchResults.push({ \"type\": \"Route name\", \"label\": unit, \"value\": unit })\r\n }\r\n });\r\n const searchDict: any = {}\r\n filters.map((filter: { [x: string]: any; }) => {\r\n searchDict[filter['name'] + filter['type']] = filter;\r\n })\r\n const furtherFilter: any[] = [];\r\n searchResults.map(search => {\r\n if ((search['label'] + search['type']) in searchDict) { }\r\n else { furtherFilter.push(search) }\r\n });\r\n return furtherFilter;\r\n }\r\n\r\n getSearchResults(list: Route[], filterval: any): any {\r\n return list.filter(element => {\r\n const result_list_boolean = []\r\n if (filterval.length > 0) {\r\n if (filterval[0]['type'] === 'unit') {\r\n result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type'] as keyof Route]);\r\n }\r\n if (filterval[0]['type'] === 'customer') {\r\n result_list_boolean.push(filterval[0]['name'] === element['customer_name']);\r\n }\r\n if (filterval[0]['type'] === 'material') {\r\n result_list_boolean.push(filterval[0]['name'] === element[filterval[0]['type'] as keyof Route]);\r\n }\r\n if (filterval[0]['type'] === 'pickup location') {\r\n result_list_boolean.push(filterval[0]['name'] === element['pickup_location']);\r\n }\r\n if (filterval[0]['type'] === 'destination location') {\r\n result_list_boolean.push(filterval[0]['name'] === element['delivery_location']);\r\n }\r\n if (filterval[0]['type'] === 'job') {\r\n result_list_boolean.push(filterval[0]['name'] === element['order_number']);\r\n }\r\n if (filterval[0]['type'] === 'Route name') {\r\n result_list_boolean.push(filterval[0]['name'] === element['route_name']);\r\n }\r\n if (filterval[0]['type'] === 'Driver') {\r\n const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['driver_name'] });\r\n if (index !== -1) result_list_boolean.push(true);\r\n }\r\n if (filterval[0]['type'] === 'Trucking Company') {\r\n const index = element.driver_list?.findIndex(ele => { return filterval[0]['name'] === ele['trucking_company'] });\r\n if (index !== -1) result_list_boolean.push(true);\r\n }\r\n }\r\n if (result_list_boolean.length > 0) {\r\n return result_list_boolean.reduce((prev, curr) => prev && curr);\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n clearOptions() {\r\n this.pickupOptions = [];\r\n this.destOptions = [];\r\n this.ownerOptions = [];\r\n this.customerOptions = [];\r\n this.unitOptions = [];\r\n this.materialOptions = [];\r\n this.jcodeOptions = [];\r\n this.routeNameOptions = [];\r\n }\r\n setdictValue(key: string, value: string) {\r\n this.dict.set(key, value);\r\n }\r\n getdictValue(key: string) {\r\n return JSON.parse(this.dict.get(key));\r\n }\r\n removedictValue(key: string) {\r\n this.dict.delete(key);\r\n }\r\n conveySearchIcon(value: any): boolean{\r\n if(value && typeof(value) !== 'object') return true;\r\n return false\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport * as turf from '@turf/turf';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { PopupData, Route } from './data-model';\r\nimport { UtilsService } from './utils.service';\r\nimport { EventManager } from '@angular/platform-browser';\r\nimport { MapboxLayer } from \"@deck.gl/mapbox\";\r\nimport { ArcLayer } from '@deck.gl/layers';\r\n\r\ndeclare const Threebox: any;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CoolmapService {\r\n map!: mapboxgl.Map\r\n markerOriginList: mapboxgl.Marker[] = [];\r\n markerDestinationList: mapboxgl.Marker[] = [];\r\n initiatecoolmap = new BehaviorSubject(true);\r\n reintiatecoolmap = this.initiatecoolmap.asObservable();\r\n bounds = new mapboxgl.LngLatBounds();\r\n originDestinationCordinates: any = [];\r\n padding!: any;\r\n windowActualHeightWidth!: any;\r\n popup: mapboxgl.Popup;\r\n\r\n constructor(public utils: UtilsService, public eventManager: EventManager) {\r\n this.eventManager.addGlobalEventListener('window', 'resize', this.onResize.bind(this)); this.windowActualHeightWidth = { availHeight: 0 };\r\n }\r\n\r\n initiateMapForAddRoute(el: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n this.map ? this.map.remove() : '';\r\n this.map = new mapboxgl.Map({\r\n accessToken: 'pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ',\r\n container: el,\r\n style: 'mapbox://styles/santanu-ogma/cl8ep33uz003414n1twlosz9d',\r\n center: [-77.036873, 38.907192],\r\n zoom: 10, bearing: 0, pitch: 65, interactive: true,\r\n });\r\n this.map.once('load', (res) => {\r\n resolve(res);\r\n });\r\n });\r\n }\r\n // Below method Load route with animation\r\n loadMapProperty(pinRouteGeojson: any, index: number, unit: any, route?: any, bottom?: number) {\r\n return new Promise((resolve, reject)=>{\r\n let origin = pinRouteGeojson.features[0].geometry.coordinates[0];\r\n const linecolor = (unit === 'Ton') ? '#ff7272' : (unit === 'Load') ? '#a3c52e' : '#ae23d1';\r\n let destination = pinRouteGeojson.features[0].geometry.coordinates[pinRouteGeojson.features[0].geometry.coordinates.length - 1];\r\n this.extendBound(pinRouteGeojson.features[0].geometry.coordinates, true).then((res: any) => {\r\n const point: any = {\r\n 'type': 'FeatureCollection',\r\n 'features': [\r\n { 'type': 'Feature', 'properties': {}, 'geometry': { 'type': 'Point', 'coordinates': origin } }\r\n ]\r\n }\r\n const lineDistance = turf.length(pinRouteGeojson.features[0]);\r\n const arc = [];\r\n const steps = 10 * pinRouteGeojson.features[0].geometry.coordinates.length;\r\n for (let i = 0; i < lineDistance; i += lineDistance / steps) {\r\n const segment = turf.along(pinRouteGeojson.features[0], i);\r\n arc.push(segment.geometry.coordinates);\r\n }\r\n pinRouteGeojson.features[0].geometry.coordinates = arc;\r\n const pinRoute = pinRouteGeojson.features[0].geometry.coordinates;\r\n const marker = new mapboxgl.Marker(document.createElement('div'))\r\n .setLngLat(pinRoute[0]).addTo(this.map).togglePopup();\r\n\r\n if (this.map.getSource(`line${index}`)) {\r\n this.removeRouteAndMarker(index).then(() => { })\r\n }\r\n\r\n this.map.addSource(`line${index}`, { type: 'geojson', lineMetrics: true, data: pinRouteGeojson });\r\n this.map.addLayer({\r\n type: 'line',\r\n source: `line${index}`,\r\n id: `line${index}`,\r\n paint: {\r\n 'line-width': 2,\r\n 'line-gradient': [\r\n 'interpolate',\r\n ['linear'],\r\n ['line-progress'],\r\n 0, unit === 'Ton' ? '#d7f7e4' : unit === 'Load' ? '#c9d8f5' : '#f5dcc1',\r\n 1, unit === 'Ton' ? '#ff7272' : unit === 'Load' ? '#a3c52e' : '#ae23d1',\r\n ]\r\n },\r\n layout: { 'line-cap': 'round', 'line-join': 'round' }\r\n });\r\n\r\n const dataSetForMap = {\r\n counter: 0, pinRouteGeojson, steps,\r\n point, pointId: `point${index}`,\r\n marker, pinRoute, lineId: `line${index}`, index,\r\n origin, destination, lineDistance,\r\n linecolor, route, isViewRoute: true\r\n }\r\n this.createMarker(dataSetForMap);\r\n this.map.on('mouseenter', `line${index}`, (e) => {\r\n this.map.setPaintProperty(`line${index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`line${index}`, 'line-opacity', 1);\r\n const datasetForPopup: PopupData = {\r\n coordinate: [e.lngLat.lng, e.lngLat.lat],\r\n pickup: route.pickup_location ? route.pickup_location : '',\r\n drop: route.delivery_location ? route.delivery_location : '',\r\n routeType: route.project ? 'Project' : 'Route',\r\n title: route.project ? route.project : route.route_name ? route.route_name : '',\r\n material: route.material ? route.material : '',\r\n type: route.unit ? route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n });\r\n this.map.on('mouseleave', `line${index}`, (e) => {\r\n this.map.setPaintProperty(`line${index}`, 'line-width', 2);\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n });\r\n })\r\n\r\n this.map.once('idle', (res) => {\r\n resolve(true)\r\n });\r\n})\r\n }\r\n // Below method Load route without animation\r\n drawLine(cordinates?: any, index?: number | any, route?: any, enablefitbound?: boolean, routeType?: string) {\r\n let linecolor: any;\r\n let origin = cordinates[0]; let destination = cordinates[cordinates.length - 1]\r\n if (origin[0] && origin[1] && destination && destination[0] && destination[1]) {\r\n linecolor = this.provideLineColor(route['unit'], routeType);\r\n if (enablefitbound) {\r\n const padding = {\r\n top: this.padding.top, bottom: this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65)),\r\n left: this.padding.left, right: this.padding.right\r\n }\r\n this.map.fitBounds([origin, destination], { padding }, { fitboundCompleteJob: true })\r\n }\r\n if (this.map.getSource(`route-source-for-job-code${index}`)) {\r\n this.removeRouteAndMarker(index).then(() => { })\r\n }\r\n this.map.addSource(`route-source-for-job-code${index}`, {\r\n 'type': 'geojson',\r\n 'data': { 'type': 'Feature', 'properties': {}, 'geometry': { 'type': 'LineString', 'coordinates': cordinates } }\r\n });\r\n this.map.addLayer({\r\n 'id': `route-for-job-code${index}`, 'type': 'line', 'source': `route-source-for-job-code${index}`,\r\n paint: { 'line-color': linecolor, 'line-width': 2 },\r\n layout: { 'line-cap': 'round', 'line-join': 'round' }\r\n });\r\n const dataSetForMap = {\r\n origin, destination, index, linecolor, route\r\n }\r\n this.createMarker(dataSetForMap);\r\n this.map.on('mouseenter', `route-for-job-code${index}`, (e) => {\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-opacity', 1);\r\n const datasetForPopup: PopupData = {\r\n coordinate: [e.lngLat.lng, e.lngLat.lat],\r\n pickup: route.pickup_location ? route.pickup_location : '',\r\n drop: route.delivery_location ? route.delivery_location : '',\r\n jobCode: route.project ? route.order_number : null,\r\n customer: route.project ? route.customer_name : null,\r\n routeType: route.project ? 'Project' : 'Route',\r\n title: route.project ? route.project : route.route_name ? route.route_name : '',\r\n material: route.material ? route.material : '',\r\n type: route.unit ? route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n });\r\n this.map.on('mouseleave', `route-for-job-code${index}`, (e) => {\r\n this.map.setPaintProperty(`route-for-job-code${index}`, 'line-width', 2);\r\n if (this.popup) {\r\n this.popup.remove();\r\n }\r\n });\r\n }\r\n }\r\n\r\n provideLineColor(unitType: string, type?: string | undefined) {\r\n let checkType = (type && !['jobrouteList', 'addroute'].includes(type)) ? true : false;\r\n let color;\r\n switch (unitType) {\r\n case \"Ton\":\r\n color = checkType ? '#39c471' : '#ff7272';\r\n break;\r\n case \"Load\":\r\n color = checkType ? '#326ad3' : '#a3c52e';\r\n break;\r\n case \"Hourly\":\r\n color = checkType ? '#ffad56' : '#ae23d1';\r\n break;\r\n }\r\n return color;\r\n }\r\n\r\n showRoutePopup(arcDetails, event, isViewRoute?): void {\r\n if (this.popup) {\r\n this.popup.remove();\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-width', 2);\r\n }\r\n if (arcDetails.color && this.map.getLayoutProperty(arcDetails.layer.id, 'visibility') !== 'none') {\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-width', 5);\r\n this.map.setPaintProperty(`${isViewRoute ? 'line' : 'route-for-job-code'}${arcDetails.layer.props.data.index}`, 'line-opacity', 1);\r\n\r\n const datasetForPopup: PopupData = {\r\n coordinate: arcDetails.coordinate,\r\n pickup: arcDetails.layer.props.data.route.pickup_location ? arcDetails.layer.props.data.route.pickup_location : '',\r\n drop: arcDetails.layer.props.data.route.delivery_location ? arcDetails.layer.props.data.route.delivery_location : '',\r\n jobCode: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.order_number : '',\r\n customer: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.customer_name : '',\r\n routeType: arcDetails.layer.props.data.route.project ? 'Project' : 'Route',\r\n title: arcDetails.layer.props.data.route.project ? arcDetails.layer.props.data.route.project : arcDetails.layer.props.data.route.route_name ? arcDetails.layer.props.data.route.route_name : '',\r\n material: arcDetails.layer.props.data.route.material ? arcDetails.layer.props.data.route.material : '',\r\n type: arcDetails.layer.props.data.route.unit ? arcDetails.layer.props.data.route.unit : ''\r\n }\r\n this.createPopup(datasetForPopup);\r\n }\r\n }\r\n\r\n createPopup(datasetForPopup: PopupData): void {\r\n this.popup = new mapboxgl.Popup({\r\n closeButton: false,\r\n closeOnClick: false,\r\n closeOnMove: true,\r\n anchor: 'bottom-left'\r\n });\r\n\r\n this.popup.setLngLat(datasetForPopup.coordinate)\r\n .setHTML(`\r\n <div class=\"destination\">\r\n <div class=\"duration\">\r\n <p class=\"pickprt\"><b>Pickup Location:</b> ${datasetForPopup.pickup}</p>\r\n <p class=\"dropprt\"><b>Drop Location:</b> ${datasetForPopup.drop}</p>\r\n </div>\r\n ${datasetForPopup.jobCode ? '<span><b>Job Code:</b> ' + datasetForPopup.jobCode + '</span>' : ''}\r\n ${datasetForPopup.customer ? '<span><b>Customer:</b> ' + datasetForPopup.customer + '</span>' : ''}\r\n <span><b>${datasetForPopup.routeType} Name:</b> ${datasetForPopup.title}</span>\r\n <span><b>Material:</b> ${datasetForPopup.material}</span>\r\n <span><b>Type:</b> ${datasetForPopup.type}</span>\r\n </div>\r\n `)\r\n .addTo(this.map);\r\n }\r\n\r\n hexToRGB(hex: any): [number, number, number] {\r\n return hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i\r\n , (m, r, g, b) => '#' + r + r + g + g + b + b)\r\n .substring(1).match(/.{2}/g)\r\n .map(x => parseInt(x, 16))\r\n }\r\n\r\n createMarker(routeDetails) {\r\n if (routeDetails.origin[0] && routeDetails.origin[1] && routeDetails.destination[0] && routeDetails.destination[1]) {\r\n\r\n const popup = new mapboxgl.Popup({ closeButton: false }).setHTML('<b>Pickup: </b>' + routeDetails.route?.pickup_location);\r\n const popupForDestination = new mapboxgl.Popup({ closeButton: false })\r\n .setHTML('<b>Delivery: </b>' + routeDetails.route?.delivery_location);\r\n\r\n const el = document.createElement('div');\r\n el.className = 'marker';\r\n el.innerHTML = `<span class='markerPointer' style='background:${routeDetails.linecolor}'><b>P</b><span class='markerSpan' style='border-top: 10px solid ${routeDetails.linecolor}'></span></span>`\r\n\r\n const originMarker = new mapboxgl.Marker(el)\r\n .setPopup(popup).setLngLat(routeDetails.origin).addTo(this.map);\r\n\r\n originMarker.getElement().addEventListener('mouseenter', () => originMarker.togglePopup());\r\n originMarker.getElement().addEventListener('mouseleave', () => originMarker.togglePopup());\r\n\r\n const elementForDestination = document.createElement('div');\r\n elementForDestination.className = 'marker';\r\n elementForDestination.innerHTML = `<span class='markerPointer' style='background:${routeDetails.linecolor}'><b>D</b><span class='markerSpan' style='border-top: 10px solid ${routeDetails.linecolor}'></span></span>`\r\n\r\n const destinationMarker = new mapboxgl.Marker(elementForDestination).setPopup(popupForDestination).setLngLat(routeDetails.destination).addTo(this.map);\r\n destinationMarker.getElement().addEventListener('mouseenter', () => destinationMarker.togglePopup());\r\n destinationMarker.getElement().addEventListener('mouseleave', () => destinationMarker.togglePopup());\r\n this.markerOriginList[routeDetails.index] = originMarker;\r\n this.markerDestinationList[routeDetails.index] = destinationMarker;\r\n\r\n const colorArray = this.hexToRGB(routeDetails.linecolor)\r\n const arcLayer = new MapboxLayer({\r\n id: 'arc-layer' + routeDetails.index,\r\n type: ArcLayer,\r\n pickable: true,\r\n data: { route: routeDetails.route, index: routeDetails.index },\r\n getWidth: 1,\r\n getSourcePosition: routeDetails.origin,\r\n getTargetPosition: routeDetails.destination,\r\n getTargetColor: [255, 255, 255],\r\n getSourceColor: [colorArray[0], colorArray[1], colorArray[2]],\r\n onHover: (info, event) => this.showRoutePopup(info, event, routeDetails.isViewRoute),\r\n });\r\n this.map.addLayer(arcLayer);\r\n }\r\n }\r\n\r\n async removeRouteAndMarker(index: number | string | any) {\r\n if (this.map) {\r\n this.map.getLayer(`arc-layer${index}`) ? this.map.removeLayer(`arc-layer${index}`) : '';\r\n this.map.getLayer(`line${index}`) ? this.map.removeLayer(`line${index}`) : '';\r\n this.map.getLayer(`custom_layer${index}`) ? this.map.removeLayer(`custom_layer${index}`) : '';\r\n this.map.getSource(`line${index}`) ? this.map.removeSource(`line${index}`) : '';\r\n this.map.getLayer(`route-for-job-code${index}`) ? this.map.removeLayer(`route-for-job-code${index}`) : '';\r\n this.map.getSource(`route-source-for-job-code${index}`) ? this.map.removeSource(`route-source-for-job-code${index}`) : '';\r\n this.findMarkerBound(index);\r\n this.markerOriginList[index] ? this.markerOriginList[index].remove() : '';\r\n this.markerDestinationList[index] ? this.markerDestinationList[index].remove() : '';\r\n await true;\r\n }\r\n }\r\n findMarkerBound(index: any) {\r\n const indexOfCordinates = this.originDestinationCordinates.findIndex((x: any) =>\r\n (x[0][0].toFixed(6) == this.markerOriginList[index]?.getLngLat()?.lng.toFixed(6)) && (x[0][1].toFixed(6) == this.markerOriginList[index]?.getLngLat()?.lat.toFixed(6)));\r\n if (indexOfCordinates >= 0) { this.originDestinationCordinates.splice(indexOfCordinates, 1) }\r\n }\r\n async filterRoute(ID: any, visibility: string, showAllFitbound?: boolean) {\r\n if (ID) {\r\n if (this.map.getLayer(`route-for-job-code${ID}`)) {\r\n this.map.setLayoutProperty(`route-for-job-code${ID}`, 'visibility', visibility);\r\n const originM = this.markerOriginList[ID].getElement();\r\n originM.style.display = ((visibility === 'visible') ? 'block' : visibility);\r\n const destinationM = this.markerDestinationList[ID].getElement();\r\n destinationM.style.display = ((visibility === 'visible') ? 'block' : visibility);\r\n if (visibility === 'none' && showAllFitbound) {\r\n this.findMarkerBound(ID);\r\n this.extendReBound();\r\n }\r\n }\r\n if (this.map.getLayer(`arc-layer${ID}`)) {\r\n this.map.setLayoutProperty(`arc-layer${ID}`, 'visibility', visibility);\r\n }\r\n }\r\n await true;\r\n }\r\n extendBound(route: any, showAllFitbound: boolean | undefined) {\r\n return new Promise((resolve, reject) => {\r\n if (route) {\r\n if (typeof route === 'string') {\r\n let path: any = route.split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n route = path\r\n }\r\n if (route[0][0] && route[0][1] && route[route.length - 1][0] && route[route.length - 1][1]) {\r\n this.originDestinationCordinates.push(route);\r\n route.map((item: any) => {\r\n this.bounds.extend(item);\r\n })\r\n }\r\n }\r\n if (showAllFitbound) {\r\n const padding = { top: this.padding.top, bottom: (this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65))), left: this.padding.left, right: this.padding.right }\r\n setTimeout(() => {\r\n if (showAllFitbound && (Object.keys(this.bounds).length > 0)) this.map.fitBounds(this.bounds, { padding }, { fitboundComplete: true })\r\n }, 100);\r\n this.map.once('moveend', (event: any) => { if (event.fitboundComplete) { resolve(true) } });\r\n }\r\n });\r\n }\r\n\r\n extendReBound(bottom?: number) {\r\n return new Promise((resolve, reject) => {\r\n this.bounds = new mapboxgl.LngLatBounds();\r\n\r\n if (this.originDestinationCordinates.length >= 0) {\r\n this.originDestinationCordinates.map((item: any, index: number) => {\r\n item.map((route: any) => {\r\n this.bounds.extend(route);\r\n })\r\n if (index === (this.originDestinationCordinates.length - 1)) {\r\n const padding = { top: this.padding.top, bottom: (this.padding.bottom + (this.windowActualHeightWidth.availHeight - (window.innerHeight - 65))), left: this.padding.left, right: this.padding.right }\r\n setTimeout(() => {\r\n if (this.originDestinationCordinates.length > 0) this.map.fitBounds(this.bounds, { padding });\r\n }, 500);\r\n resolve(true);\r\n }\r\n })\r\n } else {\r\n resolve(true);\r\n }\r\n })\r\n }\r\n plotRoute(route: any, i: number | any, type: string, enablefitbound?: boolean, showAllFitbound?: boolean) {\r\n return new Promise((resolve, reject) => {\r\n let param: any = {};\r\n if (['jobcode'].includes(type)) {\r\n param['job'] = route['job_id']\r\n this.utils.postDataWithRestUrl('schedule/job/path', param).subscribe((res: any) => {\r\n if (res['data']['route']) {\r\n let path = res['data']['route'].split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n route['path'] = path;\r\n this.extendBound(route['path'], showAllFitbound);\r\n if (route['path'] && route['path'].length > 0) this.drawLine(route['path'], i, route, enablefitbound, type);\r\n route['index'] = i;\r\n } else {\r\n this.extendBound(null, showAllFitbound);\r\n }\r\n resolve(true);\r\n }, (err) => { if (err) { reject(false) } });\r\n } else if (['jobrouteList', 'addroute'].includes(type)) {\r\n if (route['path'] && route['path'].length > 0) {\r\n let path = route['path'].split(';');\r\n path = path.map((ele: string | any) => { return ele = this.formateLatLong(ele) });\r\n path.forEach((ele: any, index: number) => { if (ele.length === 1) path.splice(index, 1) });\r\n this.extendBound(path, showAllFitbound);\r\n this.drawLine(path, i, route, enablefitbound, type)\r\n };\r\n }\r\n })\r\n }\r\n clearBound() { this.bounds = new mapboxgl.LngLatBounds(); this.originDestinationCordinates = []; this.clearPadding(); }\r\n formateLatLong(latlong: string) { return latlong ? latlong.split(',').map(x => +x).reverse() : null; }\r\n clearBoundWithCordinates() {\r\n this.bounds = new mapboxgl.LngLatBounds(); this.originDestinationCordinates = [];\r\n }\r\n\r\n onResize(event: any) {\r\n if (!this.bounds.isEmpty()) {\r\n this.windowActualHeightWidth.availHeight = (window.innerHeight > window.screen.availHeight) ? window.innerHeight : window.screen.availHeight;\r\n setTimeout(() => {\r\n this.map.fitBounds(this.bounds, { padding: { top: this.padding.top, bottom: this.padding.bottom + (this.windowActualHeightWidth.availHeight - (event.target.innerHeight - 65)), left: this.padding.left, right: this.padding.right } });\r\n }, 500);\r\n }\r\n }\r\n\r\n setWindowHeight(screen: any) {\r\n this.windowActualHeightWidth.availHeight = screen;\r\n }\r\n setPadding(padding: any) { this.padding = padding }\r\n clearPadding() { this.padding = null }\r\n removeJobFromMap(data: Route[]) {\r\n data.map((ele: any, index: number) => {\r\n const id = (ele['job_id'] ? ele['job_id'] : ele['route_id']);\r\n this.removeRouteAndMarker(id);\r\n if (index === (data.length - 1)) {\r\n this.extendReBound();\r\n }\r\n })\r\n }\r\n}\r\n","\r\nexport class Route {\r\n index: number = 0;\r\n type?: string | null;\r\n // Job Code\r\n customer_contact?: string | null;\r\n customer_name?: string | null;\r\n delivery_contact?: string | null;\r\n delivery_lat?: number | null;\r\n delivery_location?: string | null | undefined;\r\n delivery_lon?: number | null;\r\n driver_list?: Array<any>;\r\n material?: string | null;\r\n order_number?: string | null;\r\n pickup_lat?: number | null;\r\n pickup_location?: string | null | undefined;\r\n pickup_lon?: number | null;\r\n project?: string | null;\r\n total_count?: number;\r\n unit?: string | null;\r\n values: any;\r\n job_id?: string;\r\n isSelected?: boolean;\r\n date?: string;\r\n // Add Route\r\n created_at?: string | null;\r\n created_by_name?: string | null;\r\n customer_id?: string | null;\r\n delivery_lat_lng?: string | null;\r\n estimated_distance?: string | null;\r\n estimated_time?: string | null;\r\n materials_id?: string | null;\r\n path?: [number, number];\r\n pickup_lat_lng?: string | null;\r\n route_id?: string | null;\r\n route_name?: string | null;\r\n unit_id?: string | null;\r\n note?: string | null\r\n isActive?: boolean;\r\n prevent?: boolean;\r\n}\r\n\r\nexport const EstinationData = ['estimated_distance', 'estimated_time']\r\nexport enum EstinationEnum {\r\n estimated_distance = \"miles\",\r\n estimated_time = \"time\"\r\n}\r\n\r\nexport const JobCodeOverviewData = ['customer_contact', 'delivery_contact', 'pickup_location', 'delivery_location', 'project', 'unit']\r\nexport enum JobCodeOverviewEnum {\r\n customer_contact = 'Customer Contact',\r\n delivery_contact = 'Delivery Contact',\r\n pickup_location = 'Pickup',\r\n delivery_location = 'Delivery',\r\n project = 'Project Name',\r\n unit = 'Job Type',\r\n}\r\n\r\nexport const DriversmsCardKey = ['order_number', 'date', 'values', 'material', 'unit', 'pickup_location', 'delivery_location']\r\nexport enum DriverSmsCardEnum {\r\n order_number = 'Jobcode',\r\n date = 'Date',\r\n values = 'Total tasks',\r\n material = 'Material',\r\n unit = 'Unit',\r\n pickup_location = 'Pickup Address',\r\n delivery_location = 'Delivery Address'\r\n}\r\n\r\nexport class PopupData {\r\n coordinate: [number, number];\r\n pickup: string | null;\r\n jobCode?: string | null;\r\n customer?: string | null;\r\n drop: string | null;\r\n routeType: string | null;\r\n title: string | null;\r\n material: string | null;\r\n type: string | null;\r\n}\r\n","/*\r\n * Public API Surface of coolmap-services\r\n */\r\nexport * from './lib/service/coolmap.service';\r\nexport * from './lib/service/utils.service';\r\nexport * from './lib/service/data-model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BehaviorSubject","Injectable","HttpClient","MatSnackBar","mapboxgl.LngLatBounds","mapboxgl.Map","turf.length","turf.along","mapboxgl.Marker","mapboxgl.Popup","MapboxLayer","ArcLayer","EventManager","EstinationEnum","JobCodeOverviewEnum","DriverSmsCardEnum"],"mappings":"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"}