@aggdirect/coolmap-services 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
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":";;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB;QACnG,SAAS,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,UAAU;YAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;QACvH,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;QACjG,IAAI,MAAM,GAAG,CAAC,YAAY,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxF,IAAI,UAAU,GAAG,YAAY,KAAK,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,IAAI,SAAS;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACzE,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9K,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/H,IAAI,IAAI,KAAK,UAAU,EAAE;gBACrB,IAAI,MAAM,KAAK,KAAK,CAAC;oBAAE,SAAS;gBAChC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;oBAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBAC1F,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACrD;iBACI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAI,IAAI,KAAK,OAAO;oBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;oBACtC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC5B;SACJ;QACD,IAAI,MAAM;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,GAAG,IAAI,CAAC;IAChB,CAAC;IAAA,CAAC;aAEc,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK;QAC1D,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QACD,OAAO,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;IACrC,CAAC;IAAA,CAAC;aAEc,SAAS,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAAA,CAAC;aAEc,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM;QAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC/F,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACzH,CAAC;IAAA,CAAC;aAEc,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI;oBAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;YAC/E,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACjE;QACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IAC1I,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G,CAAC;aAEe,qBAAqB,CAAC,KAAK,EAAE,QAAQ;QACjD,IAAI,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QACzJ,OAAO,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClF;;;QCrQE,sBAAmB,IAAgB,EAAQ,QAAqB;YAA7C,SAAI,GAAJ,IAAI,CAAY;YAAQ,aAAQ,GAAR,QAAQ,CAAa;YAvBhE,qBAAgB,GAAG,EAAE,CAAC;YACtB,kBAAa,GAAG,EAAE,CAAC;YACnB,kBAAa,GAAU,EAAE,CAAC;YAC1B,gBAAW,GAAU,EAAE,CAAC;YACxB,iBAAY,GAAU,EAAE,CAAC;YACzB,oBAAe,GAAU,EAAE,CAAC;YAC5B,gBAAW,GAAU,EAAE,CAAC;YACxB,oBAAe,GAAU,EAAE,CAAC;YAC5B,iBAAY,GAAU,EAAE,CAAC;YACzB,iBAAY,GAAU,EAAE,CAAC;YACzB,2BAAsB,GAAU,EAAE,CAAC;YACnC,qBAAgB,GAAU,EAAE,CAAC;YACtB,qBAAgB,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YACrD,qBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;YACxD,6BAAwB,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YACtD,oCAA+B,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;YAC/E,0BAAqB,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YACnD,6BAAwB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;YACrE,wBAAmB,GAAG,IAAIA,oBAAe,CAAC,EAAE,CAAC,CAAC;YAC9C,2BAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;YACjE,oBAAe,GAAG,IAAIA,oBAAe,CAAC,EAAE,CAAC,CAAC;YAC1C,2BAAsB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YAC7D,SAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YAE/B,IAAI,CAAC,gBAAgB,GAAG,4CAA4C,CAAC;YACrE,IAAI,CAAC,aAAa,GAAG,yCAAyC,CAAC;SAChE;QACD,oCAAa,GAAb,UAAc,MAAmB,EAAE,QAAiB;YAClD,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC;YACrC,IAAM,MAAM,GAAG,MAAM,CAAC;YACtB,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,MAAK,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,IAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,GAAE,CAAC;SACjH;QACD,8BAAO,GAAP,UAAQ,IAAY,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAG,IAAI,CAAC,gBAAgB,GAAG,IAAM,CAAC,CAAA,EAAE;QACjF,+BAAQ,GAAR,UAAS,IAAY,EAAE,IAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC,gBAAgB,GAAG,IAAM,EAAE,IAAI,CAAC,CAAA,EAAE;QACpG,0CAAmB,GAAnB,UAAoB,IAAY,EAAE,IAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAG,IAAI,CAAC,aAAa,GAAG,IAAM,EAAE,IAAI,CAAC,CAAA,EAAE;QAC5G,iDAA0B,GAA1B,UAA2B,OAAe;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,uDAAqD,OAAO,mIAAgI,CAAC,CAAA;SACnN;QACD,mCAAY,GAAZ,UAAa,OAAe,EAAE,SAAkB;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;gBAC9B,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;aACvH,CAAC,CAAC;SACJ;QAED,kCAAW,GAAX,UAAY,IAAW;YAAvB,iBAgBC;;YAfC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAA,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClK,IAAI,IAAI,CAAC,WAAW,IAAI,OAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,IAAG,CAAC,EAAE;oBACpD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,MAAM;wBAC9B,KAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,CAAC,aAAa,CAAC,GAAA,CAAC,KAAK,CAAC,CAAC,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;wBAClI,KAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,CAAC,kBAAkB,CAAC,GAAA,CAAC,KAAK,CAAC,CAAC,GAAG,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC;qBACjK,CAAC,CAAC;iBACJ;aACF;YACD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,IAAI,CAAC,eAAe,GAAA,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;YACxI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,IAAI,CAAC,iBAAiB,GAAA,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;YACxI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,KAAK,IAAI,CAAC,aAAa,GAAA,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC9I,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,IAAI,CAAC,IAAI,GAAA,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC5G,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAA,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAC5H,IAAI,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,IAAI,CAAC,UAAU,GAAA,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;SACpJ;QAED,6BAAM,GAAN,UAAO,KAAa,EAAE,OAAY;YAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAAE,OAAO,EAAE,CAAA;aAAE;YAC5C,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,WAAW,KAAK,EAAE,EAAE;gBAAE,OAAO,EAAE,CAAA;aAAE;YACrC,IAAM,aAAa,GAAU,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAA,IAAI;gBACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACrE;aACF,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACzE;aACF,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACzE;aACF,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAA,IAAI;gBACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBAChF;aACF,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAA,IAAI;gBACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACrF;aACF,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI;gBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBACrD,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBAChF;aACF,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI;gBACxB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACvE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAA,IAAI;gBAClC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBACjF;aACF,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,IAAI;gBAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAC5C,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;iBAC3E;aACF,CAAC,CAAC;YACH,IAAM,UAAU,GAAQ,EAAE,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,UAAC,MAA6B;gBACxC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;aACtD,CAAC,CAAA;YACF,IAAM,aAAa,GAAU,EAAE,CAAC;YAChC,aAAa,CAAC,GAAG,CAAC,UAAA,MAAM;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,GAAG;qBACpD;oBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;iBAAE;aACpC,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;SACtB;QAED,uCAAgB,GAAhB,UAAiB,IAAa,EAAE,SAAc;YAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAA,OAAO;;gBACxB,IAAM,mBAAmB,GAAG,EAAE,CAAA;gBAC9B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;wBACnC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAgB,CAAC,CAAC,CAAC;qBACjG;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;wBACvC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;qBAC7E;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;wBACvC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAgB,CAAC,CAAC,CAAC;qBACjG;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE;wBAC9C,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;qBAC/E;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,sBAAsB,EAAE;wBACnD,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBACjF;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;wBAClC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;qBAC5E;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,YAAY,EAAE;wBACzC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;qBAC1E;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;wBACrC,IAAM,KAAK,SAAG,OAAO,CAAC,WAAW,0CAAE,SAAS,CAAC,UAAA,GAAG,IAAM,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,CAAA,EAAE,CAAC,CAAC;wBAC5G,IAAI,KAAK,KAAK,CAAC,CAAC;4BAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClD;oBACD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,kBAAkB,EAAE;wBAC/C,IAAM,KAAK,SAAG,OAAO,CAAC,WAAW,0CAAE,SAAS,CAAC,UAAA,GAAG,IAAM,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAA,EAAE,CAAC,CAAC;wBACjH,IAAI,KAAK,KAAK,CAAC,CAAC;4BAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClD;iBACF;gBACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,OAAO,mBAAmB,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,IAAI,IAAI,GAAA,CAAC,CAAC;iBACjE;gBACD,OAAO,KAAK,CAAC;aACd,CAAC,CAAC;SACJ;QAED,mCAAY,GAAZ;YACE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC5B;QACD,mCAAY,GAAZ,UAAa,GAAW,EAAE,KAAa;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC3B;QACD,mCAAY,GAAZ,UAAa,GAAW;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,sCAAe,GAAf,UAAgB,GAAW;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;QACD,uCAAgB,GAAhB,UAAiB,KAAU;YACzB,IAAG,KAAK,IAAI,QAAO,KAAK,CAAC,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACpD,OAAO,KAAK,CAAA;SACb;;;;;gBA9LFC,aAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;gBANzBC,aAAU;gBAEVC,cAAW;;;;QCuBlB,wBAAmB,KAAmB,EAAS,YAA0B;YAAtD,UAAK,GAAL,KAAK,CAAc;YAAS,iBAAY,GAAZ,YAAY,CAAc;YAVzE,qBAAgB,GAAsB,EAAE,CAAC;YACzC,0BAAqB,GAAsB,EAAE,CAAC;YAC9C,oBAAe,GAAG,IAAIH,oBAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,qBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YACvD,WAAM,GAAG,IAAII,qBAAqB,EAAE,CAAC;YACrC,gCAA2B,GAAQ,EAAE,CAAC;YAMpC,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;SAC3I;QAED,+CAAsB,GAAtB,UAAuB,EAAe;YAAtC,iBAcC;YAbC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;gBAEjC,KAAI,CAAC,GAAG,GAAG,IAAIC,YAAY,CAAC;oBAC1B,WAAW,EAAE,kGAAkG;oBAC/G,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,wDAAwD;oBAC/D,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC/B,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI;iBACnD,CAAC,CAAC;gBACH,KAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,GAAG;oBACxB,OAAO,CAAC,GAAG,CAAC,CAAC;iBACd,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;;QAED,wCAAe,GAAf,UAAgB,eAAoB,EAAE,KAAa,EAAE,IAAS,EAAE,KAAW,EAAE,MAAe;YAA5F,iBAgFC;YA/EC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,IAAI,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAM,SAAS,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,GAAG,SAAS,CAAC;gBAC3F,IAAI,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChI,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,GAAQ;oBACrF,IAAM,KAAK,GAAQ;wBACjB,MAAM,EAAE,mBAAmB;wBAC3B,UAAU,EAAE;4BACV,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;yBAChG;qBACF,CAAA;oBACD,IAAM,YAAY,GAAGC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,IAAM,GAAG,GAAG,EAAE,CAAC;oBACf,IAAM,KAAK,GAAG,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;oBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,YAAY,GAAG,KAAK,EAAE;wBAC3D,IAAM,OAAO,GAAGC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;qBACxC;oBACD,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC;oBACvD,IAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAClE,IAAM,MAAM,GAAG,IAAIC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;yBAC9D,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBAEtD,IAAI,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAO,KAAO,CAAC,EAAE;wBACtC,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAS,CAAC,CAAA;qBACjD;oBAEH,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAO,KAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;oBAClG,KAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAChB,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE,SAAO,KAAO;wBACtB,EAAE,EAAE,SAAO,KAAO;wBAClB,KAAK,EAAE;4BACL,YAAY,EAAE,CAAC;4BACf,eAAe,EAAE;gCACf,aAAa;gCACb,CAAC,QAAQ,CAAC;gCACV,CAAC,eAAe,CAAC;gCACjB,CAAC,EAAE,IAAI,KAAK,KAAK,GAAG,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;gCACvE,CAAC,EAAE,IAAI,KAAK,KAAK,GAAG,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;6BACxE;yBACF;wBACD,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;qBACtD,CAAC,CAAC;oBAEL,IAAM,aAAa,GAAG;wBACpB,OAAO,EAAE,CAAC;wBAAE,eAAe,iBAAA,EAAE,KAAK,OAAA;wBAClC,KAAK,OAAA,EAAE,OAAO,EAAE,UAAQ,KAAO;wBAC/B,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,MAAM,EAAE,SAAO,KAAO,EAAE,KAAK,OAAA;wBAC/C,MAAM,QAAA,EAAE,WAAW,aAAA,EAAE,YAAY,cAAA;wBACjC,SAAS,WAAA,EAAE,KAAK,OAAA;wBAAE,WAAW,EAAE,IAAI;qBACpC,CAAA;oBACD,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBACjC,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,SAAO,KAAO,EAAE,UAAC,CAAC;wBAC1C,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAO,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;wBAC3D,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAO,KAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAM,eAAe,GAAc;4BACjC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;4BACxC,MAAM,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,GAAG,EAAE;4BAC1D,IAAI,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,GAAG,EAAE;4BAC5D,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO;4BAC9C,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,EAAE;4BAC/E,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;4BAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE;yBACnC,CAAA;wBACD,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;qBACnC,CAAC,CAAC;oBACH,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,SAAO,KAAO,EAAE,UAAC,CAAC;wBAC1C,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAO,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;wBAC3D,IAAI,KAAI,CAAC,KAAK,EAAE;4BACd,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;yBACrB;qBACF,CAAC,CAAC;iBACJ,CAAC,CAAA;gBAEF,KAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,GAAG;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAA;iBAChB,CAAC,CAAC;aACJ,CAAC,CAAA;SACC;;QAED,iCAAQ,GAAR,UAAS,UAAgB,EAAE,KAAoB,EAAE,KAAW,EAAE,cAAwB,EAAE,SAAkB;YAA1G,iBAsDC;YArDC,IAAI,SAAc,CAAC;YACnB,IAAI,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAAC,IAAI,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC/E,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC7E,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC5D,IAAI,cAAc,EAAE;oBAClB,IAAM,OAAO,GAAG;wBACd,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;wBAC3H,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;qBACnD,CAAA;oBACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,SAAA,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAA;iBACtF;gBACD,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA4B,KAAO,CAAC,EAAE;oBAC3D,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAS,CAAC,CAAA;iBACjD;gBACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA4B,KAAO,EAAE;oBACtD,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE;iBACjH,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAChB,IAAI,EAAE,uBAAqB,KAAO;oBAAE,MAAM,EAAE,MAAM;oBAAE,QAAQ,EAAE,8BAA4B,KAAO;oBACjG,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE;oBACnD,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;iBACtD,CAAC,CAAC;gBACH,IAAM,aAAa,GAAG;oBACpB,MAAM,QAAA,EAAE,WAAW,aAAA,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,KAAK,OAAA;iBAC7C,CAAA;gBACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,uBAAqB,KAAO,EAAE,UAAC,CAAC;oBACxD,IAAI,KAAI,CAAC,KAAK,EAAE;wBACd,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;qBACrB;oBACD,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,uBAAqB,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;oBACzE,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,uBAAqB,KAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAC3E,IAAM,eAAe,GAAc;wBACjC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACxC,MAAM,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,GAAG,EAAE;wBAC1D,IAAI,EAAE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,GAAG,EAAE;wBAC5D,OAAO,EAAG,KAAK,CAAC,OAAO,GAAI,KAAK,CAAC,YAAY,GAAG,IAAI;wBACpD,QAAQ,EAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI;wBACrD,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO;wBAC9C,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,EAAE;wBAC/E,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;wBAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE;qBACnC,CAAA;oBACD,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;iBACnC,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,uBAAqB,KAAO,EAAE,UAAC,CAAC;oBACxD,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,uBAAqB,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;oBACzE,IAAI,KAAI,CAAC,KAAK,EAAE;wBACd,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;qBACrB;iBACF,CAAC,CAAC;aACJ;SACF;QAED,yCAAgB,GAAhB,UAAiB,QAAgB,EAAE,IAAyB;YAC1D,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;YACtF,IAAI,KAAK,CAAC;YACV,QAAQ,QAAQ;gBACd,KAAK,KAAK;oBACR,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;oBAC1C,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;oBAC1C,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;oBAC1C,MAAM;aACT;YACD,OAAO,KAAK,CAAC;SACd;QAED,uCAAc,GAAd,UAAe,UAAU,EAAE,KAAK,EAAE,WAAY;YAC5C,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAG,WAAW,GAAG,MAAM,GAAG,oBAAoB,IAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;aAClI;YACD,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,MAAM,EAAE;gBAChG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAG,WAAW,GAAG,MAAM,GAAG,oBAAoB,IAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBACjI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAG,WAAW,GAAG,MAAM,GAAG,oBAAoB,IAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAEnI,IAAM,eAAe,GAAc;oBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE;oBAClH,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE;oBACpH,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE;oBACxG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE;oBAC1G,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO;oBAC1E,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;oBAC/L,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;oBACtG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;iBAC3F,CAAA;gBACD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;aACnC;SACF;QAED,oCAAW,GAAX,UAAY,eAA0B;YACpC,IAAI,CAAC,KAAK,GAAG,IAAIC,cAAc,CAAC;gBAC9B,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC;iBAC/C,OAAO,CAAC,uIAG4C,eAAe,CAAC,MAAM,qEACxB,eAAe,CAAC,IAAI,2CAE/D,eAAe,CAAC,OAAO,GAAG,yBAAyB,GAAG,eAAe,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE,sBAC9F,eAAe,CAAC,QAAQ,GAAG,yBAAyB,GAAG,eAAe,CAAC,QAAQ,GAAG,SAAS,GAAG,EAAE,8BACvF,eAAe,CAAC,SAAS,mBAAc,eAAe,CAAC,KAAK,kDAC9C,eAAe,CAAC,QAAQ,8CAC5B,eAAe,CAAC,IAAI,kCAE5C,CAAC;iBACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QAED,iCAAQ,GAAR,UAAS,GAAQ;YACf,OAAO,GAAG,CAAC,OAAO,CAAC,kCAAkC,EACjD,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAA,CAAC;iBAC7C,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC3B,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAA,CAAC,CAAA;SAC7B;QAED,qCAAY,GAAZ,UAAa,YAAY;YAAzB,iBA0CC;;YAzCC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBAElH,IAAM,KAAK,GAAG,IAAIA,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,UAAG,YAAY,CAAC,KAAK,0CAAE,eAAe,CAAA,CAAC,CAAC;gBAC1H,IAAM,mBAAmB,GAAG,IAAIA,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;qBACnE,OAAO,CAAC,mBAAmB,UAAG,YAAY,CAAC,KAAK,0CAAE,iBAAiB,CAAA,CAAC,CAAC;gBAExE,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzC,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC;gBACxB,EAAE,CAAC,SAAS,GAAG,mDAAiD,YAAY,CAAC,SAAS,yEAAoE,YAAY,CAAC,SAAS,qBAAkB,CAAA;gBAElM,IAAM,cAAY,GAAG,IAAID,eAAe,CAAC,EAAE,CAAC;qBACzC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAElE,cAAY,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAM,OAAA,cAAY,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;gBAC3F,cAAY,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAM,OAAA,cAAY,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;gBAE3F,IAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC5D,qBAAqB,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC3C,qBAAqB,CAAC,SAAS,GAAG,mDAAiD,YAAY,CAAC,SAAS,yEAAoE,YAAY,CAAC,SAAS,qBAAkB,CAAA;gBAErN,IAAM,mBAAiB,GAAG,IAAIA,eAAe,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvJ,mBAAiB,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAM,OAAA,mBAAiB,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;gBACrG,mBAAiB,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAM,OAAA,mBAAiB,CAAC,WAAW,EAAE,GAAA,CAAC,CAAC;gBACrG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,cAAY,CAAC;gBACzD,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,mBAAiB,CAAC;gBAEnE,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;gBACxD,IAAM,QAAQ,GAAG,IAAIE,kBAAW,CAAC;oBAC/B,EAAE,EAAE,WAAW,GAAG,YAAY,CAAC,KAAK;oBACpC,IAAI,EAAEC,eAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE;oBAC9D,QAAQ,EAAE,CAAC;oBACX,iBAAiB,EAAE,YAAY,CAAC,MAAM;oBACtC,iBAAiB,EAAE,YAAY,CAAC,WAAW;oBAC3C,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;oBAC/B,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC7D,OAAO,EAAE,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,GAAA;iBACrF,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;QAEK,6CAAoB,GAApB,UAAqB,KAA4B;;;;;iCACjD,IAAI,CAAC,GAAG,EAAR,wBAAQ;4BACV,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAY,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAY,KAAO,CAAC,GAAG,EAAE,CAAC;4BACxF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAO,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAO,KAAO,CAAC,GAAG,EAAE,CAAC;4BAC9E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAe,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,iBAAe,KAAO,CAAC,GAAG,EAAE,CAAC;4BAC9F,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAO,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAO,KAAO,CAAC,GAAG,EAAE,CAAC;4BAChF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAqB,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,uBAAqB,KAAO,CAAC,GAAG,EAAE,CAAC;4BAC1G,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA4B,KAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,8BAA4B,KAAO,CAAC,GAAG,EAAE,CAAC;4BAC1H,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;4BAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;4BAC1E,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;4BACpF,qBAAM,IAAI,EAAA;;4BAAV,SAAU,CAAC;;;;;aAEd;SAAA;QACD,wCAAe,GAAf,UAAgB,KAAU;YAA1B,iBAIC;YAHC,IAAM,iBAAiB,GAAG,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,UAAC,CAAM,wBAC1E,OAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAI,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,0CAAE,SAAS,4CAAI,GAAG,CAAC,OAAO,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAI,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,0CAAE,SAAS,4CAAI,GAAG,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAA,EAAA,CAAC,CAAC;YAC1K,IAAI,iBAAiB,IAAI,CAAC,EAAE;gBAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;aAAE;SAC9F;QACK,oCAAW,GAAX,UAAY,EAAO,EAAE,UAAkB,EAAE,eAAyB;;;;;;4BACtE,IAAI,EAAE,EAAE;gCACN,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAqB,EAAI,CAAC,EAAE;oCAChD,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,uBAAqB,EAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;oCAC1E,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;oCACvD,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC;oCACtE,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;oCACjE,YAAY,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC;oCACjF,IAAI,UAAU,KAAK,MAAM,IAAI,eAAe,EAAE;wCAC5C,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;wCACzB,IAAI,CAAC,aAAa,EAAE,CAAC;qCACtB;iCACF;gCACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAY,EAAI,CAAC,EAAE;oCACvC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAY,EAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;iCACxE;6BACF;4BACD,qBAAM,IAAI,EAAA;;4BAAV,SAAU,CAAC;;;;aACZ;SAAA;QACD,oCAAW,GAAX,UAAY,KAAU,EAAE,eAAoC;YAA5D,iBAwBC;YAvBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,IAAI,KAAK,EAAE;oBACT,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,IAAI,MAAI,GAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACjC,MAAI,GAAG,MAAI,CAAC,GAAG,CAAC,UAAC,GAAiB,IAAO,OAAO,GAAG,GAAG,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA,EAAE,CAAC,CAAC;wBAClF,MAAI,CAAC,OAAO,CAAC,UAAC,GAAQ,EAAE,KAAa;4BAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gCAAE,MAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;yBAAE,CAAC,CAAC;wBAC3F,KAAK,GAAG,MAAI,CAAA;qBACb;oBACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC1F,KAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC7C,KAAK,CAAC,GAAG,CAAC,UAAC,IAAS;4BAClB,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;yBAC1B,CAAC,CAAA;qBACH;iBACF;gBACD,IAAI,eAAe,EAAE;oBACnB,IAAM,SAAO,GAAG,EAAE,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAI,CAAC,uBAAuB,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;oBACrM,UAAU,CAAC;wBACT,IAAI,eAAe,KAAK,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;4BAAE,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAI,CAAC,MAAM,EAAE,EAAE,OAAO,WAAA,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;qBACvI,EAAE,GAAG,CAAC,CAAC;oBACR,KAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,KAAU;wBAAO,IAAI,KAAK,CAAC,gBAAgB,EAAE;4BAAE,OAAO,CAAC,IAAI,CAAC,CAAA;yBAAE;qBAAE,CAAC,CAAC;iBAC7F;aACF,CAAC,CAAC;SACJ;QAED,sCAAa,GAAb,UAAc,MAAe;YAA7B,iBAqBC;YApBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,KAAI,CAAC,MAAM,GAAG,IAAIP,qBAAqB,EAAE,CAAC;gBAE1C,IAAI,KAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,EAAE;oBAChD,KAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,UAAC,IAAS,EAAE,KAAa;wBAC5D,IAAI,CAAC,GAAG,CAAC,UAAC,KAAU;4BAClB,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;yBAC3B,CAAC,CAAA;wBACF,IAAI,KAAK,MAAM,KAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;4BAC3D,IAAM,SAAO,GAAG,EAAE,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAI,CAAC,uBAAuB,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;4BACrM,UAAU,CAAC;gCACT,IAAI,KAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC;oCAAE,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAI,CAAC,MAAM,EAAE,EAAE,OAAO,WAAA,EAAE,CAAC,CAAC;6BAC/F,EAAE,GAAG,CAAC,CAAC;4BACR,OAAO,CAAC,IAAI,CAAC,CAAC;yBACf;qBACF,CAAC,CAAA;iBACH;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;aACF,CAAC,CAAA;SACH;QACD,kCAAS,GAAT,UAAU,KAAU,EAAE,CAAe,EAAE,IAAY,EAAE,cAAwB,EAAE,eAAyB;YAAxG,iBA6BC;YA5BC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,IAAI,KAAK,GAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAC9B,KAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAC,GAAQ;wBAC5E,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE;4BACxB,IAAI,MAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC3C,MAAI,GAAG,MAAI,CAAC,GAAG,CAAC,UAAC,GAAiB,IAAO,OAAO,GAAG,GAAG,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA,EAAE,CAAC,CAAC;4BAClF,MAAI,CAAC,OAAO,CAAC,UAAC,GAAQ,EAAE,KAAa;gCAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oCAAE,MAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;6BAAE,CAAC,CAAC;4BAC3F,KAAK,CAAC,MAAM,CAAC,GAAG,MAAI,CAAC;4BACrB,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;4BACjD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gCAAE,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;4BAC5G,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;yBACpB;6BAAM;4BACL,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;yBACzC;wBACD,OAAO,CAAC,IAAI,CAAC,CAAC;qBACf,EAAE,UAAC,GAAG;wBAAO,IAAI,GAAG,EAAE;4BAAE,MAAM,CAAC,KAAK,CAAC,CAAA;yBAAE;qBAAE,CAAC,CAAC;iBAC7C;qBAAM,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACtD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7C,IAAI,MAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACpC,MAAI,GAAG,MAAI,CAAC,GAAG,CAAC,UAAC,GAAiB,IAAO,OAAO,GAAG,GAAG,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA,EAAE,CAAC,CAAC;wBAClF,MAAI,CAAC,OAAO,CAAC,UAAC,GAAQ,EAAE,KAAa;4BAAO,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gCAAE,MAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;yBAAE,CAAC,CAAC;wBAC3F,KAAI,CAAC,WAAW,CAAC,MAAI,EAAE,eAAe,CAAC,CAAC;wBACxC,KAAI,CAAC,QAAQ,CAAC,MAAI,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;qBACpD;oBAAA,CAAC;iBACH;aACF,CAAC,CAAA;SACH;QACD,mCAAU,GAAV,cAAe,IAAI,CAAC,MAAM,GAAG,IAAIA,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;QACvH,uCAAc,GAAd,UAAe,OAAe,IAAI,OAAO,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAA,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;QACtG,iDAAwB,GAAxB;YACE,IAAI,CAAC,MAAM,GAAG,IAAIA,qBAAqB,EAAE,CAAC;YAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC;SAClF;QAED,iCAAQ,GAAR,UAAS,KAAU;YAAnB,iBAOC;YANC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC1B,IAAI,CAAC,uBAAuB,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC7I,UAAU,CAAC;oBACT,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAI,CAAC,uBAAuB,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;iBACzO,EAAE,GAAG,CAAC,CAAC;aACT;SACF;QAED,wCAAe,GAAf,UAAgB,MAAW;YACzB,IAAI,CAAC,uBAAuB,CAAC,WAAW,GAAG,MAAM,CAAC;SACnD;QACD,mCAAU,GAAV,UAAW,OAAY,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA,EAAE;QACnD,qCAAY,GAAZ,cAAiB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA,EAAE;QACtC,yCAAgB,GAAhB,UAAiB,IAAa;YAA9B,iBAQC;YAPC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAQ,EAAE,KAAa;gBAC/B,IAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC7D,KAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;oBAC/B,KAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;aACF,CAAC,CAAA;SACH;;;;;gBAhbFH,aAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;gBAPzB,YAAY;gBACZW,iBAAY;;;;QCLrB;YACE,UAAK,GAAW,CAAC,CAAC;SAsCnB;oBAAA;KAAA,IAAA;QAEY,cAAc,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,EAAC;IACtE,WAAY,cAAc;QACxB,8CAA4B,CAAA;QAC5B,yCAAuB,CAAA;IACzB,CAAC,EAHWC,sBAAc,KAAdA,sBAAc,QAGzB;QAEY,mBAAmB,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAC;IACtI,WAAY,mBAAmB;QAC7B,4DAAqC,CAAA;QACrC,4DAAqC,CAAA;QACrC,iDAA0B,CAAA;QAC1B,qDAA8B,CAAA;QAC9B,+CAAwB,CAAA;QACxB,wCAAiB,CAAA;IACnB,CAAC,EAPWC,2BAAmB,KAAnBA,2BAAmB,QAO9B;QAEY,gBAAgB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAC;IAC9H,WAAY,iBAAiB;QAC3B,6CAAwB,CAAA;QACxB,kCAAa,CAAA;QACb,2CAAsB,CAAA;QACtB,0CAAqB,CAAA;QACrB,kCAAa,CAAA;QACb,uDAAkC,CAAA;QAClC,2DAAsC,CAAA;IACxC,CAAC,EARWC,yBAAiB,KAAjBA,yBAAiB,QAQ5B;;QAED;SAUC;wBAAA;KAAA;;IC/ED;;;;ICAA;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("mapbox-gl"),require("@turf/turf"),require("rxjs"),require("@angular/common/http"),require("@angular/material/snack-bar"),require("@angular/platform-browser"),require("@deck.gl/mapbox"),require("@deck.gl/layers")):"function"==typeof define&&define.amd?define("coolmap-services",["exports","@angular/core","mapbox-gl","@turf/turf","rxjs","@angular/common/http","@angular/material/snack-bar","@angular/platform-browser","@deck.gl/mapbox","@deck.gl/layers"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["coolmap-services"]={},e.ng.core,e.mapboxgl,e.turf,e.rxjs,e.ng.common.http,e.ng.material.snackBar,e.ng.platformBrowser,e.mapbox,e.layers)}(this,(function(e,t,o,i,n,r,a,s,p,u){"use strict";function c(e,t,o,i){return new(o||(o=Promise))((function(n,r){function a(e){try{p(i.next(e))}catch(e){r(e)}}function s(e){try{p(i.throw(e))}catch(e){r(e)}}function p(e){var t;e.done?n(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,s)}p((i=i.apply(e,t||[])).next())}))}function l(e,t){var o,i,n,r,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(s){return function(p){return function(s){if(o)throw new TypeError("Generator is already executing.");for(;r&&(r=0,s[0]&&(a=0)),a;)try{if(o=1,i&&(n=2&s[0]?i.return:s[0]?i.throw||((n=i.return)&&n.call(i),0):i.next)&&!(n=n.call(i,s[1])).done)return n;switch(i=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,i=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){a.label=s[1];break}if(6===s[0]&&a.label<n[1]){a.label=n[1],n=s;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(s);break}n[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],i=0}finally{o=n=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,p])}}}Object.create;Object.create;var d=function(){function e(e,t){this.http=e,this.snackBar=t,this.analyticsRESTURL="",this.RESTURLPrefix="",this.pickupOptions=[],this.destOptions=[],this.ownerOptions=[],this.customerOptions=[],this.unitOptions=[],this.materialOptions=[],this.jcodeOptions=[],this.driverOption=[],this.truckingCompanayOption=[],this.routeNameOptions=[],this.preventnavChange=new n.BehaviorSubject(!1),this.navChangeObserve=this.preventnavChange.asObservable(),this.clearViewRouteforJobCode=new n.BehaviorSubject(!1),this.clearViewRouteforJobCodeObserve=this.clearViewRouteforJobCode.asObservable(),this.preVentJobdetailclose=new n.BehaviorSubject(!1),this.getpreVentJobdetailclose=this.preVentJobdetailclose.asObservable(),this.routeDetailsUtility=new n.BehaviorSubject({}),this.getrouteDetailsUtility=this.routeDetailsUtility.asObservable(),this.removeMapEntity=new n.BehaviorSubject({}),this.removeMapEntityUtility=this.removeMapEntity.asObservable(),this.dict=new Map,this.analyticsRESTURL="https://test-analytics.aggdirect.com/REST/",this.RESTURLPrefix="https://test-server.aggdirect.com/REST/"}return e.prototype.getDateFormat=function(e,t){t=t||"-";var o=e;return(null==o?void 0:o.getFullYear())+t+((o?o.getMonth():0)+1)+t+(null==o?void 0:o.getDate())},e.prototype.getData=function(e){return this.http.get(""+this.analyticsRESTURL+e)},e.prototype.postdata=function(e,t){return this.http.post(""+this.analyticsRESTURL+e,t)},e.prototype.postDataWithRestUrl=function(e,t){return this.http.post(""+this.RESTURLPrefix+e,t)},e.prototype.fetchAutoCompleteLocations=function(e){return this.http.get("https://api.mapbox.com/geocoding/v5/mapbox.places/"+e+".json?access_token=pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ&country=US")},e.prototype.openSnackBar=function(e,t){this.snackBar.open(e,"",{duration:5e3,verticalPosition:"top",horizontalPosition:"center",panelClass:[t||"default"]})},e.prototype.makeOptions=function(e){var t,o=this;e.order_number&&(-1===this.jcodeOptions.findIndex((function(t){return t.job_id===e.job_id}))&&this.jcodeOptions.push({job_code:e.order_number,job_id:e.job_id}),e.driver_list&&(null===(t=e.driver_list)||void 0===t?void 0:t.length)>0&&e.driver_list.forEach((function(e){-1===o.driverOption.findIndex((function(t){return t===e.driver_name}))&&o.driverOption.push(e.driver_name),-1===o.truckingCompanayOption.findIndex((function(t){return t===e.trucking_company}))&&o.truckingCompanayOption.push(e.trucking_company)}))),-1===this.pickupOptions.findIndex((function(t){return t===e.pickup_location}))&&this.pickupOptions.push(e.pickup_location),-1===this.destOptions.findIndex((function(t){return t===e.delivery_location}))&&this.destOptions.push(e.delivery_location),-1===this.customerOptions.findIndex((function(t){return t===e.customer_name}))&&this.customerOptions.push(e.customer_name),-1===this.unitOptions.findIndex((function(t){return t===e.unit}))&&this.unitOptions.push(e.unit),-1===this.materialOptions.findIndex((function(t){return t===e.material}))&&this.materialOptions.push(e.material),e.route_name&&-1===this.routeNameOptions.findIndex((function(t){return t===e.route_name}))&&this.routeNameOptions.push(e.route_name)},e.prototype.filter=function(e,t){if("string"!=typeof e)return[];var o=e.toLowerCase();if(""===o)return[];var i=[];this.unitOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"unit",label:e,value:e})})),this.customerOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"customer",label:e,value:e})})),this.materialOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"material",label:e,value:e})})),this.pickupOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"pickup location",label:e,value:e})})),this.destOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"destination location",label:e,value:e})})),this.jcodeOptions.map((function(e){e.job_code.toLowerCase().includes(o)&&i.push({type:"job",label:e.job_code,value:e})})),this.driverOption.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"Driver",label:e,value:e})})),this.truckingCompanayOption.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"Trucking Company",label:e,value:e})})),this.routeNameOptions.map((function(e){e.toLowerCase().includes(o)&&i.push({type:"Route name",label:e,value:e})}));var n={};t.map((function(e){n[e.name+e.type]=e}));var r=[];return i.map((function(e){e.label+e.type in n||r.push(e)})),r},e.prototype.getSearchResults=function(e,t){return e.filter((function(e){var o,i,n=[];if(t.length>0){if("unit"===t[0].type&&n.push(t[0].name===e[t[0].type]),"customer"===t[0].type&&n.push(t[0].name===e.customer_name),"material"===t[0].type&&n.push(t[0].name===e[t[0].type]),"pickup location"===t[0].type&&n.push(t[0].name===e.pickup_location),"destination location"===t[0].type&&n.push(t[0].name===e.delivery_location),"job"===t[0].type&&n.push(t[0].name===e.order_number),"Route name"===t[0].type&&n.push(t[0].name===e.route_name),"Driver"===t[0].type)-1!==(null===(o=e.driver_list)||void 0===o?void 0:o.findIndex((function(e){return t[0].name===e.driver_name})))&&n.push(!0);if("Trucking Company"===t[0].type)-1!==(null===(i=e.driver_list)||void 0===i?void 0:i.findIndex((function(e){return t[0].name===e.trucking_company})))&&n.push(!0)}return n.length>0&&n.reduce((function(e,t){return e&&t}))}))},e.prototype.clearOptions=function(){this.pickupOptions=[],this.destOptions=[],this.ownerOptions=[],this.customerOptions=[],this.unitOptions=[],this.materialOptions=[],this.jcodeOptions=[],this.routeNameOptions=[]},e.prototype.setdictValue=function(e,t){this.dict.set(e,t)},e.prototype.getdictValue=function(e){return JSON.parse(this.dict.get(e))},e.prototype.removedictValue=function(e){this.dict.delete(e)},e.prototype.conveySearchIcon=function(e){return!(!e||"object"==typeof e)},e}();d.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new d(t.ɵɵinject(r.HttpClient),t.ɵɵinject(a.MatSnackBar))},token:d,providedIn:"root"}),d.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],d.ctorParameters=function(){return[{type:r.HttpClient},{type:a.MatSnackBar}]};var h=function(){function e(e,t){this.utils=e,this.eventManager=t,this.markerOriginList=[],this.markerDestinationList=[],this.initiatecoolmap=new n.BehaviorSubject(!0),this.reintiatecoolmap=this.initiatecoolmap.asObservable(),this.bounds=new o.LngLatBounds,this.originDestinationCordinates=[],this.eventManager.addGlobalEventListener("window","resize",this.onResize.bind(this)),this.windowActualHeightWidth={availHeight:0}}return e.prototype.initiateMapForAddRoute=function(e){var t=this;return new Promise((function(i,n){t.map=new o.Map({accessToken:"pk.eyJ1Ijoic2FudGFudS1vZ21hIiwiYSI6ImNsOGQ0cDVrNjAweTMzb3RmdG9ieTU5ZDkifQ.I6ZS7mViZYSvBo4zz-mGQQ",container:e,style:"mapbox://styles/santanu-ogma/cl8ep33uz003414n1twlosz9d",center:[-77.036873,38.907192],zoom:10,bearing:0,pitch:65,interactive:!0}),t.map.once("load",(function(e){i(e)}))}))},e.prototype.loadMapProperty=function(e,t,n,r,a){var s=this;return new Promise((function(a,p){var u=e.features[0].geometry.coordinates[0],c="Ton"===n?"#ff7272":"Load"===n?"#a3c52e":"#ae23d1",l=e.features[0].geometry.coordinates[e.features[0].geometry.coordinates.length-1];s.extendBound(e.features[0].geometry.coordinates,!0).then((function(a){for(var p={type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:{type:"Point",coordinates:u}}]},d=i.length(e.features[0]),h=[],m=10*e.features[0].geometry.coordinates.length,f=0;f<d;f+=d/m){var y=i.along(e.features[0],f);h.push(y.geometry.coordinates)}e.features[0].geometry.coordinates=h;var g=e.features[0].geometry.coordinates,v=new o.Marker(document.createElement("div")).setLngLat(g[0]).addTo(s.map).togglePopup();s.map.getSource("line"+t)&&s.removeRouteAndMarker(t).then((function(){})),s.map.addSource("line"+t,{type:"geojson",lineMetrics:!0,data:e}),s.map.addLayer({type:"line",source:"line"+t,id:"line"+t,paint:{"line-width":2,"line-gradient":["interpolate",["linear"],["line-progress"],0,"Ton"===n?"#d7f7e4":"Load"===n?"#c9d8f5":"#f5dcc1",1,"Ton"===n?"#ff7272":"Load"===n?"#a3c52e":"#ae23d1"]},layout:{"line-cap":"round","line-join":"round"}});var b={counter:0,pinRouteGeojson:e,steps:m,point:p,pointId:"point"+t,marker:v,pinRoute:g,lineId:"line"+t,index:t,origin:u,destination:l,lineDistance:d,linecolor:c,route:r,isViewRoute:!0};s.createMarker(b),s.map.on("mouseenter","line"+t,(function(e){s.map.setPaintProperty("line"+t,"line-width",5),s.map.setPaintProperty("line"+t,"line-opacity",1);var o={coordinate:[e.lngLat.lng,e.lngLat.lat],pickup:r.pickup_location?r.pickup_location:"",drop:r.delivery_location?r.delivery_location:"",routeType:r.project?"Project":"Route",title:r.project?r.project:r.route_name?r.route_name:"",material:r.material?r.material:"",type:r.unit?r.unit:""};s.createPopup(o)})),s.map.on("mouseleave","line"+t,(function(e){s.map.setPaintProperty("line"+t,"line-width",2),s.popup&&s.popup.remove()}))})),s.map.once("idle",(function(e){a(!0)}))}))},e.prototype.drawLine=function(e,t,o,i,n){var r,a=this,s=e[0],p=e[e.length-1];if(s[0]&&s[1]&&p&&p[0]&&p[1]){if(r=this.provideLineColor(o.unit,n),i){var u={top:this.padding.top,bottom:this.padding.bottom+(this.windowActualHeightWidth.availHeight-(window.innerHeight-65)),left:this.padding.left,right:this.padding.right};this.map.fitBounds([s,p],{padding:u},{fitboundCompleteJob:!0})}this.map.getSource("route-source-for-job-code"+t)&&this.removeRouteAndMarker(t).then((function(){})),this.map.addSource("route-source-for-job-code"+t,{type:"geojson",data:{type:"Feature",properties:{},geometry:{type:"LineString",coordinates:e}}}),this.map.addLayer({id:"route-for-job-code"+t,type:"line",source:"route-source-for-job-code"+t,paint:{"line-color":r,"line-width":2},layout:{"line-cap":"round","line-join":"round"}});var c={origin:s,destination:p,index:t,linecolor:r,route:o};this.createMarker(c),this.map.on("mouseenter","route-for-job-code"+t,(function(e){a.popup&&a.popup.remove(),a.map.setPaintProperty("route-for-job-code"+t,"line-width",5),a.map.setPaintProperty("route-for-job-code"+t,"line-opacity",1);var i={coordinate:[e.lngLat.lng,e.lngLat.lat],pickup:o.pickup_location?o.pickup_location:"",drop:o.delivery_location?o.delivery_location:"",jobCode:o.project?o.order_number:null,customer:o.project?o.customer_name:null,routeType:o.project?"Project":"Route",title:o.project?o.project:o.route_name?o.route_name:"",material:o.material?o.material:"",type:o.unit?o.unit:""};a.createPopup(i)})),this.map.on("mouseleave","route-for-job-code"+t,(function(e){a.map.setPaintProperty("route-for-job-code"+t,"line-width",2),a.popup&&a.popup.remove()}))}},e.prototype.provideLineColor=function(e,t){var o,i=!(!t||["jobrouteList","addroute"].includes(t));switch(e){case"Ton":o=i?"#39c471":"#ff7272";break;case"Load":o=i?"#326ad3":"#a3c52e";break;case"Hourly":o=i?"#ffad56":"#ae23d1"}return o},e.prototype.showRoutePopup=function(e,t,o){if(this.popup&&(this.popup.remove(),this.map.setPaintProperty((o?"line":"route-for-job-code")+e.layer.props.data.index,"line-width",2)),e.color&&"none"!==this.map.getLayoutProperty(e.layer.id,"visibility")){this.map.setPaintProperty((o?"line":"route-for-job-code")+e.layer.props.data.index,"line-width",5),this.map.setPaintProperty((o?"line":"route-for-job-code")+e.layer.props.data.index,"line-opacity",1);var i={coordinate:e.coordinate,pickup:e.layer.props.data.route.pickup_location?e.layer.props.data.route.pickup_location:"",drop:e.layer.props.data.route.delivery_location?e.layer.props.data.route.delivery_location:"",jobCode:e.layer.props.data.route.project?e.layer.props.data.route.order_number:"",customer:e.layer.props.data.route.project?e.layer.props.data.route.customer_name:"",routeType:e.layer.props.data.route.project?"Project":"Route",title:e.layer.props.data.route.project?e.layer.props.data.route.project:e.layer.props.data.route.route_name?e.layer.props.data.route.route_name:"",material:e.layer.props.data.route.material?e.layer.props.data.route.material:"",type:e.layer.props.data.route.unit?e.layer.props.data.route.unit:""};this.createPopup(i)}},e.prototype.createPopup=function(e){this.popup=new o.Popup({closeButton:!1,closeOnClick:!1,closeOnMove:!0,anchor:"bottom-left"}),this.popup.setLngLat(e.coordinate).setHTML('\n <div class="destination">\n <div class="duration">\n <p class="pickprt"><b>Pickup Location:</b> '+e.pickup+'</p>\n <p class="dropprt"><b>Drop Location:</b> '+e.drop+"</p>\n </div>\n "+(e.jobCode?"<span><b>Job Code:</b> "+e.jobCode+"</span>":"")+"\n "+(e.customer?"<span><b>Customer:</b> "+e.customer+"</span>":"")+"\n <span><b>"+e.routeType+" Name:</b> "+e.title+"</span>\n <span><b>Material:</b> "+e.material+"</span>\n <span><b>Type:</b> "+e.type+"</span>\n </div>\n ").addTo(this.map)},e.prototype.hexToRGB=function(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,o,i){return"#"+t+t+o+o+i+i})).substring(1).match(/.{2}/g).map((function(e){return parseInt(e,16)}))},e.prototype.createMarker=function(e){var t,i,n=this;if(e.origin[0]&&e.origin[1]&&e.destination[0]&&e.destination[1]){var r=new o.Popup({closeButton:!1}).setHTML("<b>Pickup: </b>"+(null===(t=e.route)||void 0===t?void 0:t.pickup_location)),a=new o.Popup({closeButton:!1}).setHTML("<b>Delivery: </b>"+(null===(i=e.route)||void 0===i?void 0:i.delivery_location)),s=document.createElement("div");s.className="marker",s.innerHTML="<span class='markerPointer' style='background:"+e.linecolor+"'><b>P</b><span class='markerSpan' style='border-top: 10px solid "+e.linecolor+"'></span></span>";var c=new o.Marker(s).setPopup(r).setLngLat(e.origin).addTo(this.map);c.getElement().addEventListener("mouseenter",(function(){return c.togglePopup()})),c.getElement().addEventListener("mouseleave",(function(){return c.togglePopup()}));var l=document.createElement("div");l.className="marker",l.innerHTML="<span class='markerPointer' style='background:"+e.linecolor+"'><b>D</b><span class='markerSpan' style='border-top: 10px solid "+e.linecolor+"'></span></span>";var d=new o.Marker(l).setPopup(a).setLngLat(e.destination).addTo(this.map);d.getElement().addEventListener("mouseenter",(function(){return d.togglePopup()})),d.getElement().addEventListener("mouseleave",(function(){return d.togglePopup()})),this.markerOriginList[e.index]=c,this.markerDestinationList[e.index]=d;var h=this.hexToRGB(e.linecolor),m=new p.MapboxLayer({id:"arc-layer"+e.index,type:u.ArcLayer,pickable:!0,data:{route:e.route,index:e.index},getWidth:1,getSourcePosition:e.origin,getTargetPosition:e.destination,getTargetColor:[255,255,255],getSourceColor:[h[0],h[1],h[2]],onHover:function(t,o){return n.showRoutePopup(t,o,e.isViewRoute)}});this.map.addLayer(m)}},e.prototype.removeRouteAndMarker=function(e){return c(this,void 0,void 0,(function(){return l(this,(function(t){switch(t.label){case 0:return this.map?(this.map.getLayer("arc-layer"+e)&&this.map.removeLayer("arc-layer"+e),this.map.getLayer("line"+e)&&this.map.removeLayer("line"+e),this.map.getLayer("custom_layer"+e)&&this.map.removeLayer("custom_layer"+e),this.map.getSource("line"+e)&&this.map.removeSource("line"+e),this.map.getLayer("route-for-job-code"+e)&&this.map.removeLayer("route-for-job-code"+e),this.map.getSource("route-source-for-job-code"+e)&&this.map.removeSource("route-source-for-job-code"+e),this.findMarkerBound(e),this.markerOriginList[e]&&this.markerOriginList[e].remove(),this.markerDestinationList[e]&&this.markerDestinationList[e].remove(),[4,!0]):[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))},e.prototype.findMarkerBound=function(e){var t=this,o=this.originDestinationCordinates.findIndex((function(o){var i,n,r,a;return o[0][0].toFixed(6)==(null===(n=null===(i=t.markerOriginList[e])||void 0===i?void 0:i.getLngLat())||void 0===n?void 0:n.lng.toFixed(6))&&o[0][1].toFixed(6)==(null===(a=null===(r=t.markerOriginList[e])||void 0===r?void 0:r.getLngLat())||void 0===a?void 0:a.lat.toFixed(6))}));o>=0&&this.originDestinationCordinates.splice(o,1)},e.prototype.filterRoute=function(e,t,o){return c(this,void 0,void 0,(function(){return l(this,(function(i){switch(i.label){case 0:return e&&(this.map.getLayer("route-for-job-code"+e)&&(this.map.setLayoutProperty("route-for-job-code"+e,"visibility",t),this.markerOriginList[e].getElement().style.display="visible"===t?"block":t,this.markerDestinationList[e].getElement().style.display="visible"===t?"block":t,"none"===t&&o&&(this.findMarkerBound(e),this.extendReBound())),this.map.getLayer("arc-layer"+e)&&this.map.setLayoutProperty("arc-layer"+e,"visibility",t)),[4,!0];case 1:return i.sent(),[2]}}))}))},e.prototype.extendBound=function(e,t){var o=this;return new Promise((function(i,n){if(e){if("string"==typeof e){var r=e.split(";");(r=r.map((function(e){return o.formateLatLong(e)}))).forEach((function(e,t){1===e.length&&r.splice(t,1)})),e=r}e[0][0]&&e[0][1]&&e[e.length-1][0]&&e[e.length-1][1]&&(o.originDestinationCordinates.push(e),e.map((function(e){o.bounds.extend(e)})))}if(t){var a={top:o.padding.top,bottom:o.padding.bottom+(o.windowActualHeightWidth.availHeight-(window.innerHeight-65)),left:o.padding.left,right:o.padding.right};setTimeout((function(){t&&Object.keys(o.bounds).length>0&&o.map.fitBounds(o.bounds,{padding:a},{fitboundComplete:!0})}),100),o.map.once("moveend",(function(e){e.fitboundComplete&&i(!0)}))}}))},e.prototype.extendReBound=function(e){var t=this;return new Promise((function(e,i){t.bounds=new o.LngLatBounds,t.originDestinationCordinates.length>=0?t.originDestinationCordinates.map((function(o,i){if(o.map((function(e){t.bounds.extend(e)})),i===t.originDestinationCordinates.length-1){var n={top:t.padding.top,bottom:t.padding.bottom+(t.windowActualHeightWidth.availHeight-(window.innerHeight-65)),left:t.padding.left,right:t.padding.right};setTimeout((function(){t.originDestinationCordinates.length>0&&t.map.fitBounds(t.bounds,{padding:n})}),500),e(!0)}})):e(!0)}))},e.prototype.plotRoute=function(e,t,o,i,n){var r=this;return new Promise((function(a,s){var p={};if(["jobcode"].includes(o))p.job=e.job_id,r.utils.postDataWithRestUrl("schedule/job/path",p).subscribe((function(s){if(s.data.route){var p=s.data.route.split(";");(p=p.map((function(e){return r.formateLatLong(e)}))).forEach((function(e,t){1===e.length&&p.splice(t,1)})),e.path=p,r.extendBound(e.path,n),e.path&&e.path.length>0&&r.drawLine(e.path,t,e,i,o),e.index=t}else r.extendBound(null,n);a(!0)}),(function(e){e&&s(!1)}));else if(["jobrouteList","addroute"].includes(o)&&e.path&&e.path.length>0){var u=e.path.split(";");(u=u.map((function(e){return r.formateLatLong(e)}))).forEach((function(e,t){1===e.length&&u.splice(t,1)})),r.extendBound(u,n),r.drawLine(u,t,e,i,o)}}))},e.prototype.clearBound=function(){this.bounds=new o.LngLatBounds,this.originDestinationCordinates=[],this.clearPadding()},e.prototype.formateLatLong=function(e){return e?e.split(",").map((function(e){return+e})).reverse():null},e.prototype.clearBoundWithCordinates=function(){this.bounds=new o.LngLatBounds,this.originDestinationCordinates=[]},e.prototype.onResize=function(e){var t=this;this.bounds.isEmpty()||(this.windowActualHeightWidth.availHeight=window.innerHeight>window.screen.availHeight?window.innerHeight:window.screen.availHeight,setTimeout((function(){t.map.fitBounds(t.bounds,{padding:{top:t.padding.top,bottom:t.padding.bottom+(t.windowActualHeightWidth.availHeight-(e.target.innerHeight-65)),left:t.padding.left,right:t.padding.right}})}),500))},e.prototype.setWindowHeight=function(e){this.windowActualHeightWidth.availHeight=e},e.prototype.setPadding=function(e){this.padding=e},e.prototype.clearPadding=function(){this.padding=null},e.prototype.removeJobFromMap=function(e){var t=this;e.map((function(o,i){var n=o.job_id?o.job_id:o.route_id;t.removeRouteAndMarker(n),i===e.length-1&&t.extendReBound()}))},e}();h.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new h(t.ɵɵinject(d),t.ɵɵinject(s.EventManager))},token:h,providedIn:"root"}),h.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],h.ctorParameters=function(){return[{type:d},{type:s.EventManager}]};var m,f=function(){this.index=0};(m=e.EstinationEnum||(e.EstinationEnum={})).estimated_distance="miles",m.estimated_time="time";var y;(y=e.JobCodeOverviewEnum||(e.JobCodeOverviewEnum={})).customer_contact="Customer Contact",y.delivery_contact="Delivery Contact",y.pickup_location="Pickup",y.delivery_location="Delivery",y.project="Project Name",y.unit="Job Type";var g;(g=e.DriverSmsCardEnum||(e.DriverSmsCardEnum={})).order_number="Jobcode",g.date="Date",g.values="Total tasks",g.material="Material",g.unit="Unit",g.pickup_location="Pickup Address",g.delivery_location="Delivery Address";var v=function(){};e.CoolmapService=h,e.DriversmsCardKey=["order_number","date","values","material","unit","pickup_location","delivery_location"],e.EstinationData=["estimated_distance","estimated_time"],e.JobCodeOverviewData=["customer_contact","delivery_contact","pickup_location","delivery_location","project","unit"],e.PopupData=v,e.Route=f,e.UtilsService=d,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=coolmap-services.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"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"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","UtilsService","http","snackBar","analyticsRESTURL","RESTURLPrefix","pickupOptions","destOptions","ownerOptions","customerOptions","unitOptions","materialOptions","jcodeOptions","driverOption","truckingCompanayOption","routeNameOptions","preventnavChange","BehaviorSubject","navChangeObserve","asObservable","clearViewRouteforJobCode","clearViewRouteforJobCodeObserve","preVentJobdetailclose","getpreVentJobdetailclose","routeDetailsUtility","getrouteDetailsUtility","removeMapEntity","removeMapEntityUtility","dict","Map","prototype","getDateFormat","strVal","seprater","mydate","getFullYear","getMonth","getDate","getData","path","get","postdata","data","post","postDataWithRestUrl","fetchAutoCompleteLocations","keyword","openSnackBar","message","className","open","duration","verticalPosition","horizontalPosition","panelClass","makeOptions","item","_this","order_number","findIndex","elem","job_id","job_code","driver_list","_a","forEach","driver","pickup_location","delivery_location","customer","customer_name","unit","material","route_name","filter","filters","filterValue","toLowerCase","searchResults","map","includes","type","searchDict","furtherFilter","search","getSearchResults","list","filterval","element","result_list_boolean","ele","_b","reduce","prev","curr","clearOptions","setdictValue","key","set","getdictValue","JSON","parse","removedictValue","delete","conveySearchIcon","Injectable","args","providedIn","HttpClient","MatSnackBar","CoolmapService","utils","eventManager","markerOriginList","markerDestinationList","initiatecoolmap","reintiatecoolmap","bounds","mapboxgl.LngLatBounds","originDestinationCordinates","addGlobalEventListener","onResize","bind","windowActualHeightWidth","availHeight","initiateMapForAddRoute","el","mapboxgl.Map","accessToken","container","style","center","zoom","bearing","pitch","interactive","once","res","loadMapProperty","pinRouteGeojson","index","route","bottom","origin","features","geometry","coordinates","linecolor","destination","extendBound","point","properties","lineDistance","turf.length","arc","steps","i","segment","turf.along","pinRoute","marker","mapboxgl.Marker","document","createElement","setLngLat","addTo","togglePopup","getSource","removeRouteAndMarker","addSource","lineMetrics","addLayer","source","id","paint","line-width","line-gradient","layout","line-cap","line-join","dataSetForMap","counter","pointId","lineId","isViewRoute","createMarker","on","setPaintProperty","datasetForPopup","coordinate","lngLat","lng","lat","pickup","drop","routeType","project","title","createPopup","popup","remove","drawLine","cordinates","enablefitbound","provideLineColor","padding","top","window","innerHeight","left","right","fitBounds","fitboundCompleteJob","line-color","jobCode","unitType","color","checkType","showRoutePopup","arcDetails","event","layer","props","getLayoutProperty","mapboxgl.Popup","closeButton","closeOnClick","closeOnMove","anchor","setHTML","hexToRGB","hex","replace","m","r","b","substring","match","x","parseInt","routeDetails","popupForDestination","innerHTML","originMarker_1","setPopup","getElement","addEventListener","elementForDestination","destinationMarker_1","colorArray","arcLayer","MapboxLayer","ArcLayer","pickable","getWidth","getSourcePosition","getTargetPosition","getTargetColor","getSourceColor","onHover","info","getLayer","removeLayer","removeSource","findMarkerBound","_e","indexOfCordinates","_c","_d","toFixed","getLngLat","splice","filterRoute","ID","visibility","showAllFitbound","setLayoutProperty","display","extendReBound","path_1","split","formateLatLong","extend","padding_1","setTimeout","keys","fitboundComplete","padding_2","plotRoute","param","subscribe","path_2","err","path_3","clearBound","clearPadding","latlong","reverse","clearBoundWithCordinates","isEmpty","screen","target","setWindowHeight","setPadding","removeJobFromMap","EventManager","EstinationEnum","JobCodeOverviewEnum","DriverSmsCardEnum"],"mappings":"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","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"]}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"CoolmapService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UtilsService"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"EventManager","line":25,"character":63}]}],"initiateMapForAddRoute":[{"__symbolic":"method"}],"loadMapProperty":[{"__symbolic":"method"}],"drawLine":[{"__symbolic":"method"}],"provideLineColor":[{"__symbolic":"method"}],"showRoutePopup":[{"__symbolic":"method"}],"createPopup":[{"__symbolic":"method"}],"hexToRGB":[{"__symbolic":"method"}],"createMarker":[{"__symbolic":"method"}],"removeRouteAndMarker":[{"__symbolic":"method"}],"findMarkerBound":[{"__symbolic":"method"}],"filterRoute":[{"__symbolic":"method"}],"extendBound":[{"__symbolic":"method"}],"extendReBound":[{"__symbolic":"method"}],"plotRoute":[{"__symbolic":"method"}],"clearBound":[{"__symbolic":"method"}],"formateLatLong":[{"__symbolic":"method"}],"clearBoundWithCordinates":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method"}],"setWindowHeight":[{"__symbolic":"method"}],"setPadding":[{"__symbolic":"method"}],"clearPadding":[{"__symbolic":"method"}],"removeJobFromMap":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"UtilsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":31,"character":27},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBar","line":31,"character":55}]}],"getDateFormat":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"postdata":[{"__symbolic":"method"}],"postDataWithRestUrl":[{"__symbolic":"method"}],"fetchAutoCompleteLocations":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}],"makeOptions":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"getSearchResults":[{"__symbolic":"method"}],"clearOptions":[{"__symbolic":"method"}],"setdictValue":[{"__symbolic":"method"}],"getdictValue":[{"__symbolic":"method"}],"removedictValue":[{"__symbolic":"method"}],"conveySearchIcon":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Route":{"__symbolic":"class","members":{}},"EstinationData":["estimated_distance","estimated_time"],"EstinationEnum":{"estimated_distance":"miles","estimated_time":"time"},"JobCodeOverviewData":["customer_contact","delivery_contact","pickup_location","delivery_location","project","unit"],"JobCodeOverviewEnum":{"customer_contact":"Customer Contact","delivery_contact":"Delivery Contact","pickup_location":"Pickup","delivery_location":"Delivery","project":"Project Name","unit":"Job Type"},"DriversmsCardKey":["order_number","date","values","material","unit","pickup_location","delivery_location"],"DriverSmsCardEnum":{"order_number":"Jobcode","date":"Date","values":"Total tasks","material":"Material","unit":"Unit","pickup_location":"Pickup Address","delivery_location":"Delivery Address"},"PopupData":{"__symbolic":"class","members":{}}},"origins":{"CoolmapService":"./lib/service/coolmap.service","UtilsService":"./lib/service/utils.service","Route":"./lib/service/data-model","EstinationData":"./lib/service/data-model","EstinationEnum":"./lib/service/data-model","JobCodeOverviewData":"./lib/service/data-model","JobCodeOverviewEnum":"./lib/service/data-model","DriversmsCardKey":"./lib/service/data-model","DriverSmsCardEnum":"./lib/service/data-model","PopupData":"./lib/service/data-model"},"importAs":"coolmap-services"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG1hcC1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAtc2VydmljZXMvc3JjL2Nvb2xtYXAtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==