{"version":3,"sources":["./src/app/components/card-content/card-content.component.ts","./src/app/components/card-content/card-content.component.html","fs (ignored)","crypto (ignored)","./src/app/components/charger-sidebar/charger-sidebar.component.ts","./src/app/components/charger-sidebar/charger-sidebar.component.html","stream (ignored)","./src/app/services/auth/auth.service.ts","./src/app/components/charging-sessions-csv-gen/charging-sessions-csv-gen.component.html","./src/app/components/charging-sessions-csv-gen/charging-sessions-csv-gen.component.ts","./src/app/components/side-navbar/side-navbar.component.html","./src/app/components/side-navbar/side-navbar.component.ts","./src/environments/environment.ts","./src/app/components/tab-navigator/tab-navigator.component.ts","./src/app/components/tab-navigator/tab-navigator.component.html","./src/app/services/token-storage/token-storage.service.ts","./src/app/services/heatmap-service/heatmap.service.ts","./src/app/components/companies-crud/companies-crud-utils.ts","./src/app/components/chargers-map-new/chargers-map-new.component.ts","./src/app/components/chargers-map-new/chargers-map-new.component.html","./src/app/services/registration_form_service/registration-form.service.ts","./src/app/services/tariff-locations-service/tariff-locations-service.service.ts","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/app.component.ts","./src/app/components/registration-form/registration-form.component.ts","./src/app/components/registration-form/registration-form.component.html","./src/app/components/login/login.component.html","./src/app/components/login/login.component.ts","./src/app/components/companies-crud/companies-crud.component.ts","./src/app/components/companies-crud/companies-crud.component.html","./src/app/services/state-management-service/state-management-service.service.ts","./src/app/helper/auth-interceptor/auth-interceptor.service.ts","./src/app/components/tariffs/tariffs.component.ts","./src/app/components/tariffs/tariffs.component.html","./src/app/components/tariff-test-records/tariff-test-records.component.ts","./src/app/components/tariff-test-records/tariff-test-records.component.html","./src/app/app.module.ts","./src/app/components/g-heat-map/g-heat-map.component.ts","./src/app/components/g-heat-map/g-heat-map.component.html","./src/app/services/coupon-service/coupon.service.ts","./src/app/components/api-invoice/api-invoice.component.ts","./src/app/components/api-invoice/api-invoice.component.html","./src/app/components/companies-crud/companies-crud-helper.ts","./src/app/services/rfid-addresses-service/rfid-addresses.service.ts","./src/app/services/save-fleet-subs-service/save-fleet-subs.service.ts","./src/app/services/locations-service/locations.service.ts","./src/app/services/invoice-api-retrieve-service/invoice-api-retrieve.service.ts","./src/app/components/csv-invoice/csv-invoice.component.ts","./src/app/components/csv-invoice/csv-invoice.component.html","./src/app/components/tariff-locations/tariff-locations.component.ts","./src/app/components/tariff-locations/tariff-locations.component.html","./src/app/reducers/simpleReducer.ts","./src/app/components/rfid-addresses/rfid-addresses.component.ts","./src/app/components/rfid-addresses/rfid-addresses.component.html","./src/app/services/tariffs-service/tariffs.service.ts","./src/app/components/coupon-interface/coupon-interface.component.ts","./src/app/components/coupon-interface/coupon-interface.component.html","./src/app/components/api-invoice-site/api-invoice-site.component.ts","./src/app/components/api-invoice-site/api-invoice-site.component.html","./src/app/app-routing.module.ts","./src/app/components/map-sidebar/map-sidebar.component.ts","./src/app/components/map-sidebar/map-sidebar.component.html","./src/app/components/site-details/site-details.component.ts","./src/app/components/site-details/site-details.component.html","./src/app/guards/authguard.guard.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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,OAAM,KAAK,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,0CAAK,CAAC;SACd;IACH,CAAC;;4FA5CU,sBAAsB;yGAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;;;;;;;;;;;;ACLpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAED,iBAAe,CAAC,OAAO,GAAG,EAAX,EAAe,MAAM,GAAG,EAAxB,EAA0B;AACvC,UAAM,GAAG,GAAG,KAAK,YAAL,CAAkB,aAAlB,CAAgC,UAAhC,CAA2C,IAA3C,CAAZ,CADuC,CAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAED,qBAAmB,CAAC,OAAO,GAAG,EAAX,EAAe,MAAM,GAAG,EAAxB,EAA0B;AAC3C,UAAM,GAAG,GAAG,KAAK,QAAL,CAAc,aAAd,CAA4B,UAA5B,CAAuC,IAAvC,CAAZ,CAD2C,CAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAnV8B;;;mBAApB,oB,EAAoB,gK,EAAA,wI,EAAA,+H,EAAA,uH;AAAA,C;;;QAApB,oB;AAAoB,mC;AAAA;AAAA;;;;;;;;;;;;;;;;;;;AClBjC;AACE;AACF;AAEA;AACE;AACE;AAAQ;AAAA,eAAS,YAAT;AAAiB,OAAjB;AAAqC;AAAO;AACtD;AACA;AACE;AACE;AAIF;AACA;AACE;AAIF;AACA;AACE;AAIF;AACF;AACA;AACE;AACE;AAAyB;AAAO;AAChC;AACE;AACE;AAAW;AAAa;AACxB;AASA;AAOE;;AAKF;AACF;AACF;AACA;AACE;AACE;AAAW;AAAkB;AAC7B;AACE;AACE;AACA;AAOF;AACA;AAKF;AACF;AACF;AACA;AACE;AACE;AAAW;AAAW;AACtB;AACE;AAGF;AACF;AACF;AACA;AACE;AACE;AAAW;AAAa;AACxB;AACE;AACE;AACA;AAOF;AACA;AAGF;AACF;AACF;AACA;AACE;AACE;AAAQ;AAAA,eAAS,iBAAT;AAAsB,OAAtB;AACN;AACF;AACF;AACF;AACF;AACA;AACE;AACE;AACA;AACA;AACF;AACA;AAIE;AACA;AACE;AAIF;AACF;AACA;AAIE;AACA;AACE;AAIF;AACF;AACA;AAIE;AACA;AACE;AAIF;AACF;AACF;AACA;AACF;AACF;;;;;;;;;;;;AAlKqB;AAAA;AAWb;AAAA;AAMA;AAAA;AAMA;AAAA;AAeI;AAAA,6FAAyB,iBAAzB,EAAyB,GAAzB;AAMA;AAAA,mGAA+B,aAA/B,EAA+B,aAA/B;AAMuB;AAAA;AAUb;AAAA;AAER;AAAA;AAEG;AAAA;AAQoB;AAAA;AAUf;AAAA;AACmB;AAAA;AASnB;AAAA;AAER;AAAA;AAEG;AAAA;AAOyB;AAAA;AAqBlC;AAAA;AAOI;AAAA;AAKJ;AAAA;AAOI;AAAA;AAKJ;AAAA;AAOI;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrJL,MAAM,cAAc;IAEzB,YAAoB,qBAAkC,EAAU,MAAc;QAA1D,0BAAqB,GAArB,qBAAqB,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAElF,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAKxB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAEM,cAAc;QACnB,IAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,EAAE;YAE1C,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjC,4BAA4B;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;;4EAtBU,cAAc;iGAAd,cAAc,WAAd,cAAc,mBADD,MAAM;;;;;;;;;;;;;;;;;;;ACNe;AAGF;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,qC","file":"main.js","sourcesContent":["import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-card-content',\r\n templateUrl: './card-content.component.html',\r\n styleUrls: ['./card-content.component.scss']\r\n})\r\nexport class CardContentComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() title: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n \r\n

{{ data | number: '0.0-2' }}

\r\n
\r\n \r\n
{{ title }}
\r\n
\r\n
","/* (ignored) */","/* (ignored) */","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { HeatmapService } from 'src/app/services/heatmap-service/heatmap.service';\r\n\r\n@Component({\r\n selector: 'app-charger-sidebar',\r\n templateUrl: './charger-sidebar.component.html',\r\n styleUrls: ['./charger-sidebar.component.scss']\r\n})\r\nexport class ChargerSidebarComponent implements OnInit {\r\n dateForm: FormGroup;\r\n isLoading = false;\r\n chargeTypes: any = ['AC', 'DC'];\r\n chargers: any = ['EasyGo', 'ESB', 'Ionity', 'Tesla', 'Eir'];\r\n eirTypes: any = [{\r\n label: 'Eir - In Installation',\r\n key: 'InInstallation'\r\n }, {\r\n label: 'Eir - In Discussion',\r\n key: 'InDiscussion'\r\n }, {\r\n label: 'Eir - Installed',\r\n key: 'Installed'\r\n }];\r\n easyGoTypes: any = ['Public', 'Private'];\r\n chargeTypeControl: FormControl = new FormControl([], []);\r\n chargerControl: FormControl = new FormControl([], []);\r\n eirTypeControl: FormControl = new FormControl([\"InInstallation\"], []);\r\n easyGoControl: FormControl = new FormControl(['Public', 'Private'], []);\r\n \r\n chargePointOwnerType: any = ['EasyGo', 'Client', 'Multiple'];\r\n chargePointOwnerTypeControl: any = new FormControl(['EasyGo']);\r\n @Output() onDateApply = new EventEmitter();\r\n energyAverage: number;\r\n chargingAverage: any;\r\n timeAverage: number;\r\n _selectedLocation: any;\r\n @Input() set selectedLocation(value) {\r\n this._selectedLocation = value;\r\n // this.applyFilter();\r\n }\r\n\r\n constructor(private fbBuilder: FormBuilder,\r\n public heatmap: HeatmapService, private _snackBar: MatSnackBar,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getEirSelectedItem(key) {\r\n return this.eirTypes.find((eir) => eir.key === key);\r\n }\r\n\r\n\r\n generateData() {\r\n const data: any = {\r\n charger: this.chargerControl.value,\r\n chargeType: this.chargeTypeControl.value,\r\n accessType: this.easyGoControl.value,\r\n eirType: this.eirTypeControl.value,\r\n chargePointOwnerType: this.chargePointOwnerTypeControl.value\r\n }\r\n\r\n return data;\r\n }\r\n\r\n reset() {\r\n this.chargerControl.setValue([]);\r\n this.getMarkerData();\r\n }\r\n\r\n getMarkerData() {\r\n const data = this.generateData();\r\n this.onDateApply.emit(data);\r\n }\r\n\r\n applyFilter() {\r\n\r\n const data = this.generateData();\r\n\r\n if (this._selectedLocation) {\r\n // this.getChartData(data)\r\n }\r\n this.onDateApply.emit(data);\r\n // this.onDateApply.emit(data);\r\n\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action);\r\n }\r\n\r\n generateChartData(data): any {\r\n return {\r\n labels: Object.keys(data),\r\n dataset: Object.values(data)\r\n }\r\n }\r\n\r\n getChartData(data) {\r\n this.isLoading = true;\r\n this.energyAverage = 0;\r\n this.timeAverage = 0;\r\n this.chargingAverage = 0;\r\n this.heatmap.getChartData(data).subscribe((res: any) => {\r\n this.isLoading = false;\r\n if (res.energyConsumption) {\r\n const { labels, dataset } = this.generateChartData(res.energyConsumption);\r\n this.energyAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n }\r\n\r\n if (res.noOfChargingSessions) {\r\n const { labels, dataset } = this.generateChartData(res.noOfChargingSessions);\r\n this.chargingAverage = dataset.reduce((a, b) => a + b, 0);\r\n }\r\n\r\n if (res.chargingTime) {\r\n const { labels, dataset } = this.generateChartData(res.chargingTime);\r\n this.timeAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n }\r\n }, (error) => {\r\n this.openSnackBar(\"Something Went Wrong!\", \"Close\");\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n navigateToChart() {\r\n const data = this.generateData();\r\n\r\n if (this._selectedLocation) {\r\n this.router.navigate(['/chart'], {\r\n queryParams: {\r\n locationId: data.locationId,\r\n chargeType: data.chargeType\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Apply Filter to Map
\r\n
\r\n
\r\n \r\n Select Charger\r\n \r\n \r\n {{ chargerControl.value ? chargerControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargerControl.value.length - 1 }}\r\n {{\r\n chargerControl.value?.length === 2 ? \"other\" : \"others\"\r\n }})\r\n \r\n \r\n {{ chargeType }}\r\n \r\n \r\n
\r\n
1\" class=\"content\">\r\n \r\n Select Charge Type\r\n \r\n \r\n {{ chargeTypeControl.value ? chargeTypeControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargeTypeControl.value.length - 1 }}\r\n {{ chargeTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ chargeType }}\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n Select\r\n\r\n \r\n\r\n \r\n {{ easyGoControl.value ? easyGoControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ easyGoControl.value.length - 1 }}\r\n {{ easyGoControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n\r\n {{ easyGoType }}\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n Select Charge Point Owner Type\r\n \r\n \r\n {{ chargePointOwnerTypeControl.value ? chargePointOwnerTypeControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargePointOwnerTypeControl.value.length - 1 }}\r\n {{ chargePointOwnerTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ cpot }}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Select Eir Type\r\n \r\n \r\n {{\r\n eirTypeControl.value\r\n ? getEirSelectedItem(eirTypeControl.value[0])?.label\r\n : \"\"\r\n }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ eirTypeControl.value.length - 1 }}\r\n {{ eirTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ eirType.label }}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ _selectedLocation.friendlyName || _selectedLocation.address }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","/* (ignored) */","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Store } from '@ngrx/store';\r\nimport * as moment from 'moment';\r\nimport { User } from '.././../model/user';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\n\r\nconst AUTH_USER = 'auth-user';\r\n\r\nconst AUTH_API = 'https://www.easygo-dev.com:9000/api/auth/';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type' : 'application/json' })\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthService {\r\n\r\n private token: string;\r\n private jwtHelper = new JwtHelperService;\r\n\r\n user: User = {\r\n id: '',\r\n name: '',\r\n roles: ['']\r\n }\r\n\r\n private subject = new BehaviorSubject(null);\r\n user$ : Observable = this.subject.asObservable();\r\n isLoggedIn$: Observable;\r\n isLoggedOut$: Observable;\r\n message: Observable;\r\n\r\n constructor(private http: HttpClient, public router: Router, private store: Store) {\r\n // this.message = this.store.select('message');\r\n\r\n this.isLoggedIn$ = this.user$.pipe(map(user => !!user));\r\n\r\n this.isLoggedOut$ = this.isLoggedIn$.pipe(map(loggedIn => !loggedIn));\r\n\r\n const user = sessionStorage.getItem(AUTH_USER);\r\n\r\n if(user) {\r\n this.subject.next(JSON.parse(user));\r\n }\r\n\r\n }\r\n\r\n login(username: string, password: string): Observable {\r\n // this.message = this.store.select('message');\r\n return this.http.post(AUTH_API + 'signin', {\r\n username,\r\n password\r\n }, httpOptions);\r\n }\r\n\r\n register(username: string, email: string, password: string): Observable {\r\n return this.http.post(AUTH_API + 'signup', {\r\n username,\r\n email,\r\n password\r\n }, httpOptions);\r\n }\r\n\r\n logout() {\r\n sessionStorage.removeItem('auth-token');\r\n sessionStorage.removeItem('auth-user');\r\n }\r\n\r\n canActivate(): boolean {\r\n this.message = this.store.dispatch({type: 'message'}) as any;\r\n if (this.message) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public isLoggedIn(): boolean {\r\n this.loadToken();\r\n if(this.token != null && this.token !== '') {\r\n if(this.jwtHelper.decodeToken(this.token).sub != null || '') {\r\n if (!this.jwtHelper.isTokenExpired(this.token)) {\r\n this.user.name = this.jwtHelper.decodeToken(this.token).sub;\r\n this.user.roles = this.jwtHelper.decodeToken(this.token).authorisations;\r\n this.user.id = JSON.parse(sessionStorage.getItem('auth-user')).id;\r\n return true;\r\n }\r\n }\r\n } else {\r\n this.logout();\r\n return false;\r\n }\r\n return moment().isBefore(this.getExpiration());\r\n }\r\n\r\n loadToken(): void {\r\n this.token = sessionStorage.getItem('auth-token');\r\n }\r\n\r\n getToken(): string {\r\n return this.token;\r\n }\r\n\r\n isLoggedOut() {\r\n return !this.isLoggedIn();\r\n }\r\n\r\n getExpiration() {\r\n const expiration = sessionStorage.getItem('auth-user');\r\n for(let [key, value] of Object.entries(expiration)) {\r\n if(key === 'expirationDate') {\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Select a location\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Friendly Code\r\n \r\n Friendly Name\r\n
\r\n {{location.FriendlyCode}}\r\n \r\n {{location.FriendlyName}}\r\n\r\n
\r\n\r\n
\r\n
\r\n Generate CSV file \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n Please select a 'from date' from the date picker\r\n
\r\n
\r\n Please select a 'to date' from the date picker\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LocationsService } from 'src/app/services/locations-service/locations.service';\r\n\r\n@Component({\r\n selector: 'app-charging-sessions-csv-gen',\r\n templateUrl: './charging-sessions-csv-gen.component.html',\r\n styleUrls: ['./charging-sessions-csv-gen.component.scss']\r\n})\r\nexport class ChargingSessionsCsvGenComponent implements OnInit {\r\n\r\n locationsArr: Object[];\r\n canSubmit: boolean;\r\n\r\n dateFromValue: string = null;\r\n dateToValue: string = null;\r\n\r\n constructor( public locations: LocationsService) { }\r\n\r\n ngOnInit(): void {\r\n this.locations.getAllLocations().toPromise()\r\n .then(response => {\r\n this.locationsArr = response[0].locations;\r\n });\r\n }\r\n\r\n getLocation(event: any) : void {\r\n\r\n // Only add if not already added\r\n let selectedLength = document.getElementsByClassName('selectedContainer')[0].children.length;\r\n\r\n let existing = '';\r\n let divSelects = document.getElementsByClassName('selectedContainer')[0].querySelectorAll('div');\r\n\r\n if(selectedLength > 0) {\r\n for(let i = 0; i < divSelects.length; i++) {\r\n existing += divSelects[i].textContent;\r\n }\r\n }\r\n \r\n let submitContainer = document.createElement('div') as any;\r\n let text = event.target.textContent.trim() as string;\r\n \r\n if(text.startsWith('IE*')) {\r\n text += ' ' + event.target.parentElement.children[1].textContent;\r\n } else if(text.startsWith('EasyGo')) {\r\n text = event.target.parentElement.children[0].textContent + ' ' + text;\r\n }\r\n\r\n\r\n if(!existing.includes(text)) {\r\n submitContainer.textContent = text;\r\n const selectedContainer = document.getElementsByClassName('selectedContainer')[0] as any;\r\n selectedContainer.appendChild(submitContainer);\r\n submitContainer.style.opacity = '0';\r\n selectedContainer.style.opacity = '0';\r\n selectedContainer.style.marginTop = '1rem';\r\n \r\n // used to create a transition appearing effect\r\n setTimeout(() => {\r\n document.getElementById('submitButton').style.transition = 'opacity 1s';\r\n document.getElementById('submitButton').style.opacity = '1';\r\n selectedContainer.style.transition = 'opacity 1s';\r\n submitContainer.style.transition = 'opacity 1s';\r\n selectedContainer.style.opacity = '1';\r\n submitContainer.style.opacity = '1';\r\n \r\n document.getElementById('datePicker').style.transition = 'opacity 1s';\r\n document.getElementById('datePicker').style.opacity = '1';\r\n }, 10)\r\n\r\n }\r\n\r\n const chargingFrom = (document.getElementById('chargingFrom') as any).value;\r\n const chargingTo = (document.getElementById('chargingTo') as any).value;\r\n\r\n if(chargingFrom === '' || chargingTo === '') {\r\n document.getElementById('submitBut').style.backgroundColor = '#8d8d8d';\r\n document.getElementById('submitBut').style.color = 'black';\r\n document.getElementById('submitBut').style.cursor = 'not-allowed';\r\n } else if(chargingFrom !== '' || chargingTo !== '') {\r\n document.getElementById('submitBut').style.backgroundColor = '#97d204';\r\n document.getElementById('submitBut').style.color = 'white';\r\n document.getElementById('submitBut').style.cursor = 'pointer';\r\n }\r\n }\r\n\r\n createCsvFiles(event: any) {\r\n\r\n if(document.getElementById('submitBut').style.cursor !== 'not-allowed') {\r\n let locationsLocal = event.target.parentElement.parentElement.getElementsByClassName('selectedContainer')[0].children;\r\n \r\n let postObject = {\r\n locations: [],\r\n chargingFrom: '',\r\n chargingTo: ''\r\n };\r\n\r\n // Post to API to create CSV files\r\n let locationsToPost = [];\r\n \r\n for(let location of locationsLocal) {\r\n locationsToPost.push(location.textContent.trim());\r\n }\r\n\r\n if( (this.dateFromValue !== null && this.dateFromValue !== '') && (this.dateToValue !== null && this.dateToValue !== '') ) { \r\n\r\n postObject.locations = locationsToPost;\r\n postObject.chargingFrom = this.dateFromValue;\r\n postObject.chargingTo = this.dateToValue;\r\n\r\n this.locations.postLocationsForCsvCreation(postObject);\r\n }\r\n }\r\n }\r\n\r\n checkDates() {\r\n\r\n document.getElementById('errorMessages').style.display = 'block';\r\n\r\n setTimeout(() => {\r\n document.getElementById('errorMessages').style.transition = 'opacity 1s';\r\n document.getElementById('errorMessages').style.opacity = '1';\r\n }, 10);\r\n\r\n this.dateFromValue = (document.getElementById('chargingFrom') as any).value;\r\n this.dateToValue = (document.getElementById('chargingTo') as any).value;\r\n\r\n let dateNow = new Date();\r\n let dateFrom = new Date(this.dateFromValue);\r\n let dateTo = new Date(this.dateToValue);\r\n\r\n if( (dateNow.getTime() < dateTo.getTime()) || (dateNow.getTime() < dateFrom.getTime()) ) {\r\n let futureTimeMessage = document.createElement('div');\r\n futureTimeMessage.textContent = 'Please select a to date in the past';\r\n document.getElementById('errorMessages').appendChild(futureTimeMessage);\r\n }\r\n\r\n if(dateTo.getTime() < dateFrom.getTime()) {\r\n let toDateGreaterThanFromDate = document.createElement('div');\r\n toDateGreaterThanFromDate.textContent = 'From date must be before to date';\r\n document.getElementById('errorMessages').appendChild(toDateGreaterThanFromDate);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \"easy\r\n
\r\n
\r\n {{name}}\r\n
\r\n
\r\n {{userRole}}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Site CSV\r\n
\r\n
\r\n Site API\r\n
\r\n
\r\n Fleet API\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Tariffs\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n FleetSubs\r\n
\r\n
\r\n Coupons\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Chargers Map\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Heatmap\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n RFID addresses\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthguardGuard } from 'src/app/guards/authguard.guard';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-side-navbar',\r\n templateUrl: './side-navbar.component.html',\r\n styleUrls: ['./side-navbar.component.scss']\r\n \r\n})\r\nexport class SideNavbarComponent implements OnInit {\r\n showInvoiceDropdown: boolean = false;\r\n showTariffsDropdown: boolean = false;\r\n showCompaniesDropdown: boolean = false;\r\n showMapsDropdown: boolean = false;\r\n showKeyFobAddressRequestDropdown: boolean = false;\r\n name: string = '';\r\n userRole: string = '';\r\n\r\n constructor(public authGuard: AuthguardGuard, public authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.name = this.authService.user.name.replace('_', ' ');\r\n if(this.authService.user.roles.includes('ROLE_MODERATOR')) {\r\n this.userRole = 'Admin';\r\n document.getElementById('nameColour').style.backgroundColor = '#ff2222';\r\n document.getElementById('roleBgColour').style.backgroundColor = '#bb0000';\r\n } else if(this.authService.user.roles.includes('ROLE_SALES')) {\r\n this.userRole = 'Sales';\r\n }\r\n }\r\n\r\n invoicesDropdown() {\r\n this.showInvoiceDropdown = !this.showInvoiceDropdown;\r\n }\r\n\r\n tariffsDropdown() {\r\n this.showTariffsDropdown = !this.showTariffsDropdown;\r\n }\r\n\r\n companiesDropdown() {\r\n this.showCompaniesDropdown = !this.showCompaniesDropdown;\r\n }\r\n\r\n mapsDropdown() {\r\n this.showMapsDropdown = !this.showMapsDropdown;\r\n }\r\n\r\n keyFobAddressesRequestDropdown() {\r\n this.showKeyFobAddressRequestDropdown = !this.showKeyFobAddressRequestDropdown;\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiUrl: 'https://localhost:8300'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-tab-navigator',\r\n templateUrl: './tab-navigator.component.html',\r\n styleUrls: ['./tab-navigator.component.scss']\r\n})\r\nexport class TabNavigatorComponent implements OnInit {\r\n @Input() mapType = \"charger-map\";\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onMapChange(e) {\r\n this.router.navigate([e.value]);\r\n }\r\n}\r\n","\r\n Heatmap\r\n Charger Map\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst TOKEN_KEY = 'auth-token';\r\nconst USER_KEY = 'auth-user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenStorageService {\r\n\r\n constructor() {}\r\n\r\n signOut(): void {\r\n window.sessionStorage.clear();\r\n }\r\n\r\n public saveToken(token: string): void {\r\n window.sessionStorage.removeItem(TOKEN_KEY);\r\n window.sessionStorage.setItem(TOKEN_KEY, token);\r\n }\r\n\r\n public getToken(): string | null {\r\n return window.sessionStorage.getItem(TOKEN_KEY);\r\n }\r\n\r\n public saveUser(user: any): void {\r\n window.sessionStorage.removeItem(USER_KEY);\r\n window.sessionStorage.setItem(USER_KEY, JSON.stringify(user));\r\n }\r\n\r\n public getUser(): any {\r\n const user = window.sessionStorage.getItem(USER_KEY);\r\n if (user) {\r\n return JSON.parse(user);\r\n }\r\n\r\n return {};\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HeatmapService {\r\n\r\n url: string = 'https://www.easygo-dev.com:8030/v1';\r\n\r\n url2: string = 'https://www.easygo-dev.com:8030/api';\r\n constructor(private http: HttpClient) { }\r\n\r\n esbData: Object;\r\n\r\n public getAllEsbChargingSessions() {\r\n try {\r\n return this.http.get(this.url + '/getAllEsbSessions');\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public postZipFile(file: any) {\r\n const data = new FormData();\r\n data.append('zipFile', file);\r\n try {\r\n return this.http.post(`${this.url}/saveEsbSessions`, data);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n getESBChargingSessionsWithinDateRange(dayRange: any) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'POST');\r\n let httpParams = new HttpParams().set('days', dayRange)\r\n const req = this.http.get(`${this.url}/getSpecificEsbSessionsDaily`,\r\n { headers: headers, params: httpParams, responseType: 'text' as 'json' });\r\n req.subscribe(response => {\r\n })\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n getTimesAndSessionsPerSiteMonthly(monthlySessions) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n\r\n let esbButtonContainer = document.getElementById('esbDataSubmit') as HTMLElement;\r\n if (document.getElementById('esbReturnedMessage') != null) {\r\n document.getElementById('esbReturnedMessage').remove();\r\n }\r\n let returnedMessageContainer = document.createElement('div');\r\n returnedMessageContainer.style.marginTop = '.6rem';\r\n returnedMessageContainer.style.opacity = '0';\r\n setTimeout(() => {\r\n returnedMessageContainer.style.opacity = '1';\r\n returnedMessageContainer.style.transition = '1.6s';\r\n }, 10);\r\n\r\n\r\n returnedMessageContainer.id = 'esbReturnedMessage';\r\n returnedMessageContainer.textContent = 'Please wait, this is a large dataset';\r\n esbButtonContainer.appendChild(returnedMessageContainer);\r\n\r\n const body = JSON.stringify(monthlySessions);\r\n return this.http.post(`${this.url}/getSessionsByMonths`,\r\n body,\r\n { headers: headers, responseType: 'json' })\r\n\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n\r\n }\r\n\r\n getMarkersPerSiteMonthly(monthlySessions) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n\r\n const body = JSON.stringify(monthlySessions);\r\n return this.http.post(`${this.url}/getSessionsByMonths`,\r\n body,\r\n { headers: headers, responseType: 'json' })\r\n\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n\r\n }\r\n\r\n getLocations() {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getEasyGoLocations`, {}, \r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getAllLocations() {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.get(`${this.url2}/getEasyGoLocations`, \r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getLocationsWithFilter(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n let url = `${this.url2}/getEasyGoLocations`;\r\n\r\n return this.http.post(url, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getIonityLocations(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n let url = `${this.url2}/getIonityLocations`;\r\n\r\n\r\n return this.http.post(url, \r\n data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getTeslaLocations(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n let url = `${this.url2}/getTeslaLocations`;\r\n\r\n return this.http.post(url, \r\n data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getESBLocations(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n let url = `${this.url2}/getEsbLocations`;\r\n\r\n return this.http.post(url, \r\n data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getEirLocations(type: string) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.get(`${this.url2}/getEirLocations/${type}`, \r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getHeatmapSessions(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getHeatmapSessions`, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getLocationMarker(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getEasyGoSessions`, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getESBMarker(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getEsbSessions`, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getCounts(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getEasyGoSessionsCounts`, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n getChartData(data) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers\r\n .set('Accept', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Methods', 'GET');\r\n\r\n return this.http.post(`${this.url2}/getEasyGoSessionsChartData`, data,\r\n { headers: headers, responseType: 'json' })\r\n } catch (error) {\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","export class CompanyCrudUtils {\r\n\r\n createMinusButton(): Element {\r\n \r\n let minusButton = document.createElement('button');\r\n minusButton.className = 'fa fa-minus';\r\n minusButton.id = 'minusId';\r\n minusButton.onclick = () => {\r\n \r\n let tableRows = document.querySelector('table').querySelectorAll('tr');\r\n for(let row = 0; row < tableRows.length; row++) {\r\n tableRows.item(row).id = `row_${row}`;\r\n }\r\n }\r\n \r\n minusButton.onmouseenter = () => {\r\n minusButton.style.backgroundColor = 'rgb(255 221 220 / 1)';\r\n minusButton.style.color = '#960000';\r\n }\r\n minusButton.onmouseleave = () => {\r\n minusButton.style.backgroundColor = 'red';\r\n minusButton.style.color = 'white';\r\n }\r\n \r\n minusButton.style.backgroundColor = 'red';\r\n return minusButton;\r\n }\r\n\r\n sortCompany(company: any) {\r\n company.sort((companyA, companyB) => {\r\n if(companyA.name.toLowerCase() < companyB.name.toLowerCase()) {\r\n return -1;\r\n }\r\n if(companyA.name.toLowerCase() > companyB.name.toLowerCase()) {\r\n return 1;\r\n }\r\n return 0\r\n });\r\n }\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { HeatmapService } from 'src/app/services/heatmap-service/heatmap.service';\r\n\r\n@Component({\r\n selector: 'app-chargers-map-new',\r\n templateUrl: './chargers-map-new.component.html',\r\n styleUrls: ['./chargers-map-new.component.scss']\r\n})\r\nexport class ChargersMapNewComponent implements OnInit {\r\n @ViewChild('gMap', { static: false }) gMap: GoogleMap;\r\n @ViewChild(MapInfoWindow) infoWindow: MapInfoWindow;\r\n\r\n options: google.maps.MapOptions = {\r\n center: { lat: 53.355603353851706, lng: -8.208030896545232 },\r\n zoom: 7,\r\n minZoom: 7,\r\n styles: []\r\n };\r\n heatmapOptions = { radius: 5 };\r\n mapMarkers: any = [];\r\n currentZoomLevel = 7;\r\n isLoading: boolean;\r\n currentFilter: any;\r\n selectedMarker: any;\r\n hoveredMarker: any = {};\r\n\r\n constructor(private heatMapService: HeatmapService,\r\n private _snackBar: MatSnackBar,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n const today = new Date();\r\n const month = today.toLocaleString('en', { month: 'short' });\r\n const year = today.getFullYear();\r\n // this.getLocations({});\r\n // this.getIonityLocations({});\r\n }\r\n\r\n\r\n generateMarkers(res, icon, isEir = false) {\r\n const locations = res.locations;\r\n const mapMarkers = locations.map((location) => {\r\n location.lat = Number(location.latitude);\r\n location.lng = Number(location.longitude);\r\n if(isEir) {\r\n const customIcon = icon.replace(\"{eir-icon}\", location.status);\r\n location.options = {\r\n icon: customIcon\r\n }\r\n } else {\r\n if(location.friendlyCode.includes('EGO')) {\r\n const egoIcon = location.chargePointOwner === 'Client' ? 'easygo-client-marker' : 'easygo-marker';\r\n\r\n location.options = {\r\n icon: `../../../assets/${egoIcon}.png`\r\n }\r\n } else {\r\n location.options = {\r\n icon: icon\r\n }\r\n }\r\n \r\n }\r\n\r\n return location;\r\n });\r\n\r\n this.mapMarkers = [...this.mapMarkers, ...mapMarkers];\r\n }\r\n\r\n getMarkers(filter) {\r\n this.mapMarkers = [];\r\n this.currentFilter = filter;\r\n\r\n if(filter.charger.includes('EasyGo')) {\r\n this.getLocations(filter);\r\n } \r\n\r\n if(filter.charger.includes('Ionity')) {\r\n this.getIonityLocations(filter);\r\n }\r\n if(filter.charger.includes('Eir')) {\r\n this.getEirLocations(filter);\r\n } \r\n\r\n if(filter.charger.includes('Tesla')) {\r\n this.getTeslaLocations(filter);\r\n }\r\n\r\n if(filter.charger.includes(\"ESB\")) {\r\n this.getESBLocations(filter);\r\n }\r\n \r\n if(!filter.charger.length) {\r\n this.mapMarkers = [];\r\n this.selectedMarker = null;\r\n this.currentFilter = null;\r\n }\r\n }\r\n\r\n getLocations(data) {\r\n this.isLoading = true;\r\n const params = {\r\n chargeType: data.chargeType,\r\n accessType: data.accessType,\r\n chargePointOwnerType: data.chargePointOwnerType\r\n }\r\n this.heatMapService.getLocationsWithFilter(params).subscribe((res: any) => {\r\n\r\n if (res.locations.length) {\r\n this.generateMarkers(res, \"../../../assets/easygo-marker.png\");\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getIonityLocations(data) {\r\n this.isLoading = true;\r\n const params = {\r\n chargeType: data.chargeType,\r\n accessType: data.accessType,\r\n chargePointOwnerType: data.chargePointOwnerType\r\n }\r\n this.heatMapService.getIonityLocations(params).subscribe((res: any) => {\r\n \r\n if (res.locations.length) {\r\n this.generateMarkers(res, \"../../../assets/ionity-marker.png\");\r\n }\r\n else {\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getTeslaLocations(data) {\r\n this.isLoading = true;\r\n const params = {\r\n chargeType: data.chargeType,\r\n accessType: data.accessType,\r\n chargePointOwnerType: data.chargePointOwnerType\r\n }\r\n this.heatMapService.getTeslaLocations(params).subscribe((res: any) => {\r\n if (res.locations.length) {\r\n this.generateMarkers(res, \"../../../assets/tesla-marker.png\");\r\n }\r\n else {\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getESBLocations(data) {\r\n this.isLoading = true;\r\n const params = {\r\n chargeType: data.chargeType,\r\n accessType: data.accessType,\r\n chargePointOwnerType: data.chargePointOwnerType\r\n }\r\n this.heatMapService.getESBLocations(params).subscribe((res: any) => {\r\n if (res.locations.length) {\r\n this.generateMarkers(res, \"../../../assets/esb-marker.png\");\r\n }\r\n else {\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getEirLocations(data) {\r\n this.isLoading = true;\r\n this.heatMapService.getEirLocations(data.eirType.toString()).subscribe((res: any) => {\r\n\r\n if (res.locations.length) {\r\n this.generateMarkers(res, `../../../assets/eir/{eir-icon}.png`, true);\r\n }\r\n else {\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n\r\n zoomChange() {\r\n this.currentZoomLevel = this.gMap.getZoom();\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action, {\r\n duration: 5000\r\n });\r\n }\r\n\r\n openInfoWindow(markerEle: MapMarker, marker) {\r\n this.hoveredMarker = {...marker};\r\n this.infoWindow.open(markerEle);\r\n }\r\n\r\n closeInfoWindow() {\r\n this.hoveredMarker = {};\r\n this.infoWindow.close();\r\n }\r\n\r\n onMarkClick(e, marker) {\r\n this.selectedMarker = { ...marker };\r\n // marker.locationId = \"IE*EGO0526\";\r\n // this.router.navigate(['/chart'], {\r\n // queryParams: {\r\n // locationId: marker.locationId,\r\n // year: this.currentFilter.year,\r\n // months: this.currentFilter.months.toString(),\r\n // charger: 'DC'\r\n // }\r\n // })\r\n // console.log(\"MARK CLIENT\", marker);\r\n }\r\n\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ hoveredMarker.friendlyName || hoveredMarker.address }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegistrationFormService {\r\n\r\n url: string = 'https://www.easygo-dev.com:8081/v1/'; // production\r\n // url: string = 'https://localhost:8081/v1/'; // development\r\n\r\n\r\n\r\n returnedMessage: string = '';\r\n userCreationCounter: number = 0;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n postNewUsers(user: {}) {\r\n\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/json')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Access-Control-Allow-Methods', 'POST');\r\n \r\n let body = JSON.stringify(user);\r\n const req = this.http.post(`${this.url}postUser/`, body, { headers: headers, responseType: 'json'});\r\n req.subscribe(data => {\r\n\r\n let message = document.createElement('div');\r\n message.textContent = data;\r\n message.style.opacity = '0';\r\n message.style.margin = '.25rem';\r\n setTimeout(() => {\r\n message.style.opacity = '1';\r\n message.style.transition = '.5s';\r\n }, 10);\r\n document.getElementById('returnedMessages').appendChild(message);\r\n this.userCreationCounter++;\r\n })\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TariffLocationsService {\r\n\r\n url:string = 'https://www.easygo-dev.com:8081/v1' // for production in digitalocean TODO: change url\r\n\r\n tariffLocationsList: any;\r\n responseMessage: string;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getAllTariffLocations() {\r\n try {\r\n return this.http.get(`${this.url}/tariffLocations`)\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getAllCompanies() {\r\n try {\r\n return this.http.get(`${this.url}/companies`)\r\n } catch (error) {\r\n console.error(error());\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public postTariffLocations(tariffLocationsObject: any) {\r\n try { \r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/json')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*')\r\n .set('Access-Control-Allow-Methods', 'POST');\r\n let body = `{\"tariffData\":${JSON.stringify(tariffLocationsObject)}}`;\r\n const req = this.http.post(`${this.url}/postLocationTariffs`, body, {headers: headers, responseType: 'json'});\r\n req.subscribe( (response) => {\r\n this.responseMessage = response;\r\n });\r\n\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n}\r\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n ","import { Component } from '@angular/core';\r\nimport { AuthguardGuard } from './guards/authguard.guard';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n isLoggedOn:boolean;\r\n title:string = 'Easy Go Client Side';\r\n\r\n constructor(public authGuard : AuthguardGuard) {}\r\n\r\n ngOnInit(): void {\r\n this.isLoggedOn = this.authGuard.isUserLoggedIn();\r\n }\r\n\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\nimport * as moment from 'moment';\r\nimport { RegistrationFormService } from 'src/app/services/registration_form_service/registration-form.service';\r\n\r\n@Component({\r\n selector: 'app-registration-form',\r\n templateUrl: './registration-form.component.html',\r\n styleUrls: ['./registration-form.component.scss']\r\n})\r\nexport class RegistrationFormComponent {\r\n\r\n excelData: any;\r\n excelData2: any;\r\n usersNumber: number = 0;\r\n createButtonPressed: boolean = false;\r\n \r\n constructor(public registerFormService: RegistrationFormService) { }\r\n\r\n \r\n onFileChange(e : any) {\r\n const target : DataTransfer = (e.target);\r\n if (target.files.length !== 1) throw new Error('Cannot use multiple files!');\r\n const reader: FileReader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n const bStr: string = event.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bStr, { type: 'binary'});\r\n const wsname = wb.SheetNames[1];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n this.excelData = (XLSX.utils.sheet_to_json(ws, {header: 1})) as any;\r\n\r\n const wsname2: string = wb.SheetNames[0];\r\n const ws2: XLSX.WorkSheet = wb.Sheets[wsname2];\r\n this.excelData2 = (XLSX.utils.sheet_to_json(ws2, {header: 1}))\r\n\r\n const companyName = this.excelData2[9];\r\n if(companyName[2] === undefined) {\r\n document.getElementById('companyNameWarning').style.display = 'block';\r\n document.getElementById('companyNameWarning').style.visibility = 'visible';\r\n\r\n } else {\r\n\r\n if(document.getElementById('companyNameWarning').style.display === 'block') {\r\n document.getElementById('companyNameWarning').style.display = 'none';\r\n }\r\n if(document.getElementById('companyNameWarning').style.visibility === 'visible') {\r\n document.getElementById('companyNameWarning').style.visibility = 'hidden';\r\n }\r\n\r\n let companyN: string = companyName[2];\r\n if(companyN !== undefined) {\r\n companyN = companyN.trim();\r\n }\r\n \r\n const companyNumber = this.excelData2[21];\r\n const companyNum: string = companyNumber[2];\r\n \r\n let fleetSubUsers = [];\r\n \r\n for (let i = 11; i < this.excelData.length; i++) {\r\n \r\n if(this.excelData[i][2] === undefined) {\r\n continue;\r\n } else {\r\n fleetSubUsers.push(this.excelData[i]);\r\n }\r\n }\r\n \r\n for (let i = 0; i < fleetSubUsers.length; i++) {\r\n if(fleetSubUsers[i][6] === false && fleetSubUsers[i][7] === false) {\r\n continue;\r\n } else {\r\n fleetSubUsers[i] = fleetSubUsers[i].splice(1, fleetSubUsers[i].length);\r\n fleetSubUsers[i][2] = fleetSubUsers[i][2].toString();\r\n }\r\n }\r\n \r\n \r\n const companyDetails = {\r\n name: companyN,\r\n companyNumber: companyNum,\r\n countryId: 140\r\n }\r\n this.populateTable(fleetSubUsers, companyDetails);\r\n }\r\n \r\n };\r\n\r\n reader.readAsBinaryString(target.files[0]);\r\n }\r\n\r\n populateTable(fleetUsers: [][], companyDetails: any) : void {\r\n\r\n // console.log(fleetUsers);\r\n\r\n for(let row = 0; row < fleetUsers.length; row++) {\r\n let tempNameArr = [];\r\n for(let col = 0; col < fleetUsers[row].length; col++) {\r\n let firstName = (fleetUsers[row][col] as string).split(' ')[0];\r\n let lastName = '';\r\n for(let i = 1; i < ((fleetUsers[row][col]) as string).split(' ').length; i++ ) {\r\n lastName += (fleetUsers[row][col] as string).split(' ')[i] + ' ';\r\n }\r\n lastName = lastName.trim();\r\n\r\n // Double first name checks\r\n if(lastName.startsWith('Jane')) {\r\n lastName = lastName.split('Jane')[1];\r\n firstName = firstName + ' ' + 'Jane';\r\n } else if(lastName.startsWith('John')) {\r\n lastName = lastName.split('John')[1];\r\n firstName = firstName + ' ' + 'John';\r\n } else if(lastName.startsWith('Jack')) {\r\n lastName = lastName.split('Jack')[1];\r\n firstName = firstName + ' ' + 'Jack';\r\n } else if(lastName.startsWith('Jon')) {\r\n lastName = lastName.split('Jon')[1];\r\n firstName = firstName + ' ' + 'Jon';\r\n } else if(lastName.startsWith('Jonny')) {\r\n lastName = lastName.split('Jonny')[1];\r\n firstName = firstName + ' ' + 'Jonny';\r\n } else if(lastName.startsWith('Johny')) {\r\n lastName = lastName.split('Johny')[1];\r\n firstName = firstName + ' ' + 'Johny';\r\n } else if(lastName.startsWith('Paul')) {\r\n lastName = lastName.split('Paul')[1];\r\n firstName = firstName + ' ' + 'Paul';\r\n } else if(lastName.startsWith('James')) {\r\n lastName = lastName.split('James')[1];\r\n firstName = firstName + ' ' + 'James';\r\n } else if(lastName.startsWith('Jamie')) {\r\n lastName = lastName.split('Jamie')[1];\r\n firstName = firstName + ' ' + 'Jamie';\r\n } else if(lastName.startsWith('Jimmy')) {\r\n lastName = lastName.split('Jimmy')[1];\r\n firstName = firstName + ' ' + 'Jimmy';\r\n } else if(lastName.startsWith('Jim')) {\r\n lastName = lastName.split('Jim')[1];\r\n firstName = firstName + ' ' + 'Jim';\r\n } else if(lastName.startsWith('Joe')) {\r\n lastName = lastName.split('Joe')[1];\r\n firstName = firstName + ' ' + 'Joe';\r\n } else if(lastName.startsWith('Joseph')) {\r\n lastName = lastName.split('Joseph')[1];\r\n firstName = firstName + ' ' + 'Joseph';\r\n } else if(lastName.startsWith('Mike')) {\r\n lastName = lastName.split('Mike')[1];\r\n firstName = firstName + ' ' + 'Mike';\r\n } else if(lastName.startsWith('Mic')) {\r\n lastName = lastName.split('Mic')[1];\r\n firstName = firstName + ' ' + 'Mic';\r\n } else if(lastName.startsWith('Mick')) {\r\n lastName = lastName.split('Mick')[1];\r\n firstName = firstName + ' ' + 'Mick';\r\n } else if(lastName.startsWith('Mark')) {\r\n lastName = lastName.split('Mark')[1];\r\n firstName = firstName + ' ' + 'Mark';\r\n } else if(lastName.startsWith('Markus')) {\r\n lastName = lastName.split('Markus')[1];\r\n firstName = firstName + ' ' + 'Markus';\r\n } else if(lastName.startsWith('Peter')) {\r\n lastName = lastName.split('Peter')[1];\r\n firstName = firstName + ' ' + 'Peter';\r\n } else if(lastName.startsWith('Pete')) {\r\n lastName = lastName.split('Pete')[1];\r\n firstName = firstName + ' ' + 'Pete';\r\n } else if(lastName.startsWith('Dave')) {\r\n lastName = lastName.split('Dave')[1];\r\n firstName = firstName + ' ' + 'Dave';\r\n } else if(lastName.startsWith('Brian')) {\r\n lastName = lastName.split('Brian')[1];\r\n firstName = firstName + ' ' + 'Brian';\r\n } else if(lastName.startsWith('Michael')) {\r\n lastName = lastName.split('Michael')[1];\r\n firstName = firstName + ' ' + 'Michael';\r\n } else if(lastName.startsWith('David')) {\r\n lastName = lastName.split('David')[1];\r\n firstName = firstName + ' ' + 'David';\r\n } else if(lastName.startsWith('Patrick')) {\r\n lastName = lastName.split('Patrick')[1];\r\n firstName = firstName + ' ' + 'Patrick';\r\n } else if(lastName.startsWith('Pat')) {\r\n lastName = lastName.split('Pat')[1];\r\n firstName = firstName + ' ' + 'Pat';\r\n } else if(lastName.startsWith('Paddy')) {\r\n lastName = lastName.split('Paddy')[1];\r\n firstName = firstName + ' ' + 'Paddy';\r\n }\r\n\r\n else if(lastName.startsWith('Grace')) {\r\n lastName = lastName.split('Grace')[1];\r\n firstName = firstName + ' ' + 'Grace';\r\n } else if(lastName.startsWith('Fiadh')) {\r\n lastName = lastName.split('Fiadh')[1];\r\n firstName = firstName + ' ' + 'Fiadh';\r\n } else if(lastName.startsWith('Emily')) {\r\n lastName = lastName.split('Emily')[1];\r\n firstName = firstName + ' ' + 'Emily';\r\n } else if(lastName.startsWith('Sarah')) {\r\n lastName = lastName.split('Sarah')[1];\r\n firstName = firstName + ' ' + 'Sarah';\r\n } else if(lastName.startsWith('Sara')) {\r\n lastName = lastName.split('Sara')[1];\r\n firstName = firstName + ' ' + 'Sara';\r\n } else if(lastName.startsWith('Ann')) {\r\n lastName = lastName.split('Ann')[1];\r\n firstName = firstName + ' ' + 'Ann';\r\n } else if(lastName.startsWith('Anne')) {\r\n lastName = lastName.split('Anne')[1];\r\n firstName = firstName + ' ' + 'Anne';\r\n } else if(lastName.startsWith('Lily')) {\r\n lastName = lastName.split('Lily')[1];\r\n firstName = firstName + ' ' + 'Lily';\r\n } else if(lastName.startsWith('Ellie')) {\r\n lastName = lastName.split('Ellie')[1];\r\n firstName = firstName + ' ' + 'Ellie';\r\n } else if(lastName.startsWith('Molly')) {\r\n lastName = lastName.split('Molly')[1];\r\n firstName = firstName + ' ' + 'Molly';\r\n } else if(lastName.startsWith('Katie')) {\r\n lastName = lastName.split('Katie')[1];\r\n firstName = firstName + ' ' + 'Katie';\r\n } else if(lastName.startsWith('Kate')) {\r\n lastName = lastName.split('Kate')[1];\r\n firstName = firstName + ' ' + 'Kate';\r\n } else if(lastName.startsWith('Alice')) {\r\n lastName = lastName.split('Alice')[1];\r\n firstName = firstName + ' ' + 'Alice';\r\n } else if(lastName.startsWith('Leah')) {\r\n lastName = lastName.split('Leah')[1];\r\n firstName = firstName + ' ' + 'Leah';\r\n } else if(lastName.startsWith('Ciara')) {\r\n lastName = lastName.split('Ciara')[1];\r\n firstName = firstName + ' ' + 'Ciara';\r\n }\r\n\r\n tempNameArr.push(firstName);\r\n tempNameArr.push(lastName);\r\n\r\n break;\r\n }\r\n fleetUsers[row] = (tempNameArr as any).concat(fleetUsers[row].splice(1, fleetUsers[row].length));\r\n }\r\n\r\n const tableContainer = document.getElementById('tableContainer');\r\n\r\n let table = document.createElement('table');\r\n table.style.backgroundColor = 'rgb(177, 177, 177)';\r\n table.style.opacity = '0';\r\n \r\n setTimeout(() => {\r\n table.style.transition = 'opacity 1s';\r\n table.style.opacity = '1';\r\n\r\n }, 10)\r\n\r\n tableContainer.appendChild(table);\r\n\r\n let firstNameHeaderCell = document.createElement('th');\r\n firstNameHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n firstNameHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n firstNameHeaderCell.style.marginLeft = '0.3rem';\r\n firstNameHeaderCell.style.marginRight = '0.3rem';\r\n firstNameHeaderCell.style.paddingLeft = '0.3rem';\r\n firstNameHeaderCell.style.paddingRight = '0.3rem';\r\n firstNameHeaderCell.textContent = 'First Name';\r\n\r\n\r\n let lastNameHeaderCell = document.createElement('th');\r\n lastNameHeaderCell.textContent = 'Last Name';\r\n lastNameHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n lastNameHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n lastNameHeaderCell.style.marginLeft = '0.3rem';\r\n lastNameHeaderCell.style.marginRight = '0.3rem';\r\n lastNameHeaderCell.style.paddingLeft = '0.3rem';\r\n lastNameHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let emailHeaderCell = document.createElement('th')\r\n emailHeaderCell.textContent = 'Email';\r\n emailHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n emailHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n emailHeaderCell.style.marginLeft = '0.3rem';\r\n emailHeaderCell.style.marginRight = '0.3rem';\r\n emailHeaderCell.style.paddingLeft = '0.3rem';\r\n emailHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let phoneNumberHeaderCell = document.createElement('th');\r\n phoneNumberHeaderCell.textContent = 'Phone Number';\r\n phoneNumberHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n phoneNumberHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n phoneNumberHeaderCell.style.marginLeft = '0.3rem';\r\n phoneNumberHeaderCell.style.marginRight = '0.3rem';\r\n phoneNumberHeaderCell.style.paddingLeft = '0.3rem';\r\n phoneNumberHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let countryHeaderCell = document.createElement('th');\r\n countryHeaderCell.textContent = 'County';\r\n countryHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n countryHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n countryHeaderCell.style.marginLeft = '0.3rem';\r\n countryHeaderCell.style.marginRight = '0.3rem';\r\n countryHeaderCell.style.paddingLeft = '0.3rem';\r\n countryHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let districtHeaderCell = document.createElement('th');\r\n districtHeaderCell.textContent = 'District';\r\n districtHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n districtHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n districtHeaderCell.style.marginLeft = '0.3rem';\r\n districtHeaderCell.style.marginRight = '0.3rem';\r\n districtHeaderCell.style.paddingLeft = '0.3rem';\r\n districtHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let postalCodeHeaderCell = document.createElement('th');\r\n postalCodeHeaderCell.textContent = 'Postal Code';\r\n postalCodeHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n postalCodeHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n postalCodeHeaderCell.style.marginLeft = '0.3rem';\r\n postalCodeHeaderCell.style.marginRight = '0.3rem';\r\n postalCodeHeaderCell.style.paddingLeft = '0.3rem';\r\n postalCodeHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let streetNameHeaderCell = document.createElement('th');\r\n streetNameHeaderCell.textContent = 'Street Name';\r\n streetNameHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n streetNameHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n streetNameHeaderCell.style.marginLeft = '0.3rem';\r\n streetNameHeaderCell.style.marginRight = '0.3rem';\r\n streetNameHeaderCell.style.paddingLeft = '0.3rem';\r\n streetNameHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let fobHeaderCell = document.createElement('th');\r\n fobHeaderCell.textContent = 'Fob';\r\n fobHeaderCell.style.backgroundColor = 'rgb(168, 202, 153)';\r\n fobHeaderCell.style.color = 'rgb(52, 52, 52)';\r\n fobHeaderCell.style.marginLeft = '0.3rem';\r\n fobHeaderCell.style.marginRight = '0.3rem';\r\n fobHeaderCell.style.paddingLeft = '0.3rem';\r\n fobHeaderCell.style.paddingRight = '0.3rem';\r\n\r\n let appAccess = document.createElement('th');\r\n appAccess.textContent = 'App Access';\r\n appAccess.style.backgroundColor = 'rgb(168, 202, 153)';\r\n appAccess.style.color = 'rgb(52, 52, 52)';\r\n appAccess.style.marginLeft = '0.3rem';\r\n appAccess.style.marginRight = '0.3rem';\r\n appAccess.style.paddingLeft = '0.3rem';\r\n appAccess.style.paddingRight = '0.3rem';\r\n\r\n table.appendChild(firstNameHeaderCell);\r\n table.appendChild(lastNameHeaderCell);\r\n table.appendChild(emailHeaderCell);\r\n table.appendChild(phoneNumberHeaderCell);\r\n table.appendChild(countryHeaderCell);\r\n table.appendChild(districtHeaderCell);\r\n table.appendChild(postalCodeHeaderCell);\r\n table.appendChild(streetNameHeaderCell);\r\n table.appendChild(fobHeaderCell);\r\n table.appendChild(appAccess);\r\n\r\n for(let row = 0; row < fleetUsers.length; row++) {\r\n let newRow = document.createElement('tr');\r\n newRow.contentEditable = 'true';\r\n newRow.style.cursor = 'text';\r\n newRow.style.color = 'rgb(52, 52, 52)';\r\n let defaultBackgroundColour = '';\r\n \r\n if(row % 2 === 0) {\r\n newRow.style.backgroundColor = 'white';\r\n defaultBackgroundColour = 'white';\r\n } else {\r\n newRow.style.backgroundColor = 'rgb(238, 238, 238)';\r\n defaultBackgroundColour = 'rgb(238, 238, 238)';\r\n }\r\n \r\n newRow.onmouseenter = () => {\r\n newRow.style.backgroundColor = '#ffffd4';\r\n }\r\n\r\n newRow.onmouseleave = () => {\r\n newRow.style.backgroundColor = defaultBackgroundColour;\r\n }\r\n\r\n for(let cell = 0; cell < fleetUsers[row].length; cell++) {\r\n let newCell = document.createElement('td');\r\n newCell.style.paddingLeft = '0.3rem';\r\n newCell.style.paddingRight = '0.3rem';\r\n let currentRow = fleetUsers[row] as any;\r\n let cellText = currentRow[cell];\r\n newCell.append(cellText);\r\n if(cell === 8 || cell === 9) {\r\n const oldBgColourOfCell = newCell.style.backgroundColor;\r\n\r\n newCell.onmouseenter = (event) => {\r\n (event.target as HTMLElement).style.cursor = 'pointer';\r\n (event.target as HTMLElement).style.backgroundColor = '#ff6d35';\r\n }\r\n newCell.onmouseleave = (event) => {\r\n (event.target as HTMLElement).style.backgroundColor = oldBgColourOfCell;\r\n }\r\n newCell.onclick = (event) => {\r\n (event.target as HTMLElement).style.backgroundColor = '#ffc3ad';\r\n if( (event.target as HTMLElement).textContent == 'false') {\r\n newCell.textContent = 'true';\r\n } else {\r\n newCell.textContent = 'false';\r\n }\r\n }\r\n }\r\n newRow.appendChild(newCell);\r\n }\r\n table.appendChild(newRow);\r\n }\r\n\r\n const users: any = [];\r\n let tableRows = document.getElementById('tableContainer').querySelectorAll('tr');\r\n\r\n for(let i = 0; i < tableRows.length; i++) {\r\n let user = {\r\n FirstName: tableRows[i].childNodes[0].textContent.trim(),\r\n LastName: tableRows[i].childNodes[1].textContent.trim(),\r\n CompanyName: companyDetails.name.trim(),\r\n IsCompany: true,\r\n CompanyRegistrationNumber : null,\r\n Nationality: null,\r\n Email: tableRows[i].childNodes[2].textContent.trim(),\r\n Address: {\r\n Country: {\r\n Id: 140\r\n },\r\n CityName: tableRows[i].childNodes[4].textContent.trim(),\r\n CityDistrictName : tableRows[i].childNodes[5].textContent.trim(),\r\n PostNumber: tableRows[i].childNodes[6].textContent.trim(),\r\n StreetName: tableRows[i].childNodes[7].textContent.trim(),\r\n HouseNumber: '',\r\n RoomNumber: ''\r\n },\r\n LocalEmsp: {\r\n Id: null\r\n },\r\n ExternalCode: null,\r\n ExternalCodeSecondary: null,\r\n TelephoneNumber: null,\r\n GSM: tableRows[i].childNodes[3].textContent.trim().replace(' ', ''),\r\n TaxNumber: null,\r\n NationalIdentityNumber: null,\r\n UiCulture: {\r\n Id: 'en-ie'\r\n },\r\n CommunicationChannel: {\r\n Id: 4\r\n },\r\n DateOfBirth: '',\r\n DefaultTimeZone: 0,\r\n DaylightSavingEnabled: moment().isDST()\r\n }\r\n users.push(user);\r\n }\r\n this.createUsers(users);\r\n }\r\n\r\n createUsers( users: []): void {\r\n let tableCell = document.getElementById('tableContainer');\r\n let buttonContainer = document.createElement('div');\r\n let createUsersButton = document.createElement('button');\r\n createUsersButton.textContent = 'Create New Users';\r\n createUsersButton.style.marginTop = '1.3rem';\r\n createUsersButton.style.opacity = '0';\r\n createUsersButton.style.backgroundColor = 'rgb(31, 76, 255)';\r\n createUsersButton.style.color = 'white';\r\n\r\n createUsersButton.onmouseenter = (event) => {\r\n (event.target as HTMLElement).style.backgroundColor = 'rgb(217, 225, 255)';\r\n (event.target as HTMLElement).style.color = '#555';\r\n }\r\n createUsersButton.onmouseleave = (event) => {\r\n (event.target as HTMLElement).style.backgroundColor = 'rgb(31, 76, 255)';\r\n (event.target as HTMLElement).style.color = 'white';\r\n }\r\n\r\n setTimeout(() => {\r\n createUsersButton.style.opacity = '1';\r\n createUsersButton.style.transition = '.5s';\r\n }, 10);\r\n\r\n buttonContainer.appendChild(createUsersButton);\r\n tableCell.appendChild(buttonContainer);\r\n\r\n createUsersButton.onclick = () => {\r\n this.createButtonPressed = true;\r\n for(let i = 0; i < users.length; i++ ) {\r\n this.registerFormService.postNewUsers(users[i]);\r\n }\r\n }\r\n this.usersNumber = users.length;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n There is a bug in the Etrel Urchin API when it comes to creating users. Please press the create button again to add the missing remaining users.\r\n
\r\n
\r\n Please select a company name in the first sheet\r\n
\r\n
\r\n
\r\n\r\n","
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Username is required!\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
Password is required
\r\n
\r\n Password must be at least 8 characters\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Login Failed: {{errorMessage}}\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n Logged in as {{ roles }}.\r\n
\r\n\r\n \r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from 'src/app/services/auth/auth.service';\r\nimport { TokenStorageService } from 'src/app/services/token-storage/token-storage.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n form: any = {\r\n username: null,\r\n password: null\r\n };\r\n isLoggedIn = false;\r\n isLoginFailed = false;\r\n errorMessage = '';\r\n roles: string[] = [];\r\n\r\n\r\n constructor(private authService: AuthService, private tokenStorage: TokenStorageService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.tokenStorage.getToken()) {\r\n this.isLoggedIn = true;\r\n this.roles = this.tokenStorage.getUser().roles;\r\n }\r\n }\r\n\r\n onSubmit(): void {\r\n const { username, password } = this.form;\r\n\r\n this.authService.login(username, password).subscribe(\r\n data => {\r\n this.tokenStorage.saveToken(data.accessToken);\r\n this.tokenStorage.saveUser(data);\r\n\r\n this.isLoginFailed = false;\r\n this.isLoggedIn = true;\r\n\r\n \r\n const userDetails = this.tokenStorage.getUser();\r\n this.authService.user.roles = JSON.parse(atob(userDetails.accessToken.split('.')[1])).authorisations;\r\n this.authService.user.name = JSON.parse(atob(userDetails.accessToken.split('.')[1])).sub.replace('_', ' ');\r\n this.authService.user.id = JSON.parse(sessionStorage.getItem('auth-user')).id;\r\n this.reloadPage();\r\n },\r\n err => {\r\n this.errorMessage = err.error.message;\r\n this.isLoginFailed = true;\r\n }\r\n )\r\n }\r\n\r\n reloadPage(): void {\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TariffLocationsService } from '../../services/tariff-locations-service/tariff-locations-service.service';\r\nimport { SaveFleetSubsService } from '../../services/save-fleet-subs-service/save-fleet-subs.service';\r\nimport { CompanyCrudUtils } from './companies-crud-utils';\r\nimport { CompanyCrudHelper } from './companies-crud-helper';\r\n\r\n@Component({\r\n selector: 'app-companies-crud',\r\n templateUrl: './companies-crud.component.html',\r\n styleUrls: ['./companies-crud.component.scss']\r\n})\r\nexport class CompaniesCrudComponent implements OnInit {\r\n\r\n private companyCrudUtils: any = new CompanyCrudUtils();\r\n private companyCrudHelper: any = new CompanyCrudHelper();\r\n\r\n fleetSubscribers: any;\r\n singleCompanies: any;\r\n freeAccess: any;\r\n createTable: any;\r\n deleteWarning: boolean;\r\n clickedRow: any;\r\n\r\n constructor( public companies: TariffLocationsService, public fleetSubsService: SaveFleetSubsService) { }\r\n\r\n ngOnInit() {\r\n this.companies.getAllCompanies().toPromise()\r\n .then(response => this.createFleetSubTable(response[response.length - 1].company.fleetplan))\r\n .then(tableFragment => this.renderButton(tableFragment))\r\n .then(res => console.log(res))\r\n .catch(err => { console.log(err)})\r\n }\r\n\r\n removeModal(e:any) {\r\n this.clickedRow = e.id;\r\n document.getElementById('warningModal').style.visibility = 'visible';\r\n document.getElementById('warningModal').style.transition = 'visibility 0s, opacity 2.5s linear';\r\n }\r\n\r\n\r\n removeCompanyYes() {\r\n document.getElementById('warningModal').style.visibility = 'hidden';\r\n document.getElementById(this.clickedRow).remove();\r\n\r\n // TODO change the ids of all the rows\r\n let tableRows = document.querySelector('table').getElementsByTagName('tr');\r\n for(let i = 1; i < tableRows.length; i++) {\r\n tableRows[i].id = `row_${i}`;\r\n }\r\n }\r\n\r\n removeCompanyNo() {\r\n document.getElementById('warningModal').style.visibility = 'hidden';\r\n }\r\n\r\n\r\n createFleetSubTable(fleetSubscribers: any): any {\r\n\r\n this.fleetSubscribers = this.companyCrudUtils.sortCompany(fleetSubscribers) // Sorting by alphabetical order\r\n try {\r\n this.createTable = document.createDocumentFragment();\r\n const table = document.createElement('table');\r\n table.style.backgroundColor = '#b1b1b1';\r\n const tableRow = document.createElement('tr');\r\n tableRow.appendChild(document.createElement('th'));\r\n tableRow.style.backgroundColor = '#a8ca99';\r\n tableRow.style.color = '#343434';\r\n\r\n this.companyCrudHelper.createTableHeaders(table, tableRow);\r\n\r\n // Create appropriate cell for each row/fleet subscriber\r\n let counter = 0;\r\n for(let company = 0; company < fleetSubscribers.length; company++) {\r\n counter++;\r\n\r\n let newRow = document.createElement('tr')\r\n newRow.id = `row_${counter}`; \r\n\r\n let removeRow = document.createElement('td')\r\n let minusButton = this.createMinusButton(table) as any;\r\n removeRow.appendChild(minusButton);\r\n\r\n removeRow.style.color = '#ff4503';\r\n minusButton.style.cursor = 'pointer';\r\n\r\n counter % 2 === 0 ? removeRow.style.backgroundColor = 'white' : removeRow.style.backgroundColor = 'rgb(238, 238, 238)';\r\n\r\n removeRow.addEventListener('click', () => this.removeModal(newRow) );\r\n newRow.appendChild(removeRow);\r\n\r\n this.companyCrudHelper.createFleetRow(newRow, fleetSubscribers[company], counter);\r\n\r\n table.appendChild(newRow);\r\n }\r\n this.createTable.appendChild(table);\r\n\r\n return this.createTable;\r\n } catch(e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n renderButton(area: any) {\r\n let createRowButtonContainer = document.createElement('div');\r\n\r\n // Add Client button\r\n let addRowButton = document.createElement('button');\r\n addRowButton.append('Add Client');\r\n addRowButton.style.marginTop = '1rem';\r\n addRowButton.style.marginRight = '.5rem';\r\n addRowButton.style.maxWidth = '6rem';\r\n \r\n\r\n addRowButton.onclick = () => {\r\n this.createNewRow(this.companyCrudUtils);\r\n }\r\n\r\n area.appendChild(createRowButtonContainer);\r\n\r\n let buttonsContainer = document.createElement('buttonsContainer');\r\n buttonsContainer.style.display = 'grid';\r\n buttonsContainer.style.gridTemplateColumns = '1fr 1fr';\r\n buttonsContainer.style.maxWidth = '18rem';\r\n\r\n let saveButton = document.createElement('button');\r\n saveButton.append('Save All');\r\n saveButton.style.marginLeft = '.5rem';\r\n saveButton.style.maxWidth = '6rem';\r\n saveButton.style.marginTop = '1rem';\r\n saveButton.style.float = 'right';\r\n saveButton.style.backgroundColor = '#1f4cff';\r\n saveButton.id = 'saveButton';\r\n saveButton.onclick = (event: any) => {\r\n this.gatherFleetSubTableData(event.target.parentElement.parentElement.parentElement.querySelector('table'));\r\n }\r\n saveButton.onmouseenter = () => {\r\n saveButton.style.backgroundColor = '#d9e1ff';\r\n }\r\n saveButton.onmouseleave = () => {\r\n saveButton.style.backgroundColor = '#1f4cff';\r\n }\r\n\r\n buttonsContainer.appendChild(addRowButton)\r\n buttonsContainer.appendChild(saveButton);\r\n\r\n createRowButtonContainer.appendChild(buttonsContainer)\r\n area.appendChild(createRowButtonContainer)\r\n document.querySelector('#table-container').appendChild(area);\r\n }\r\n\r\n gatherFleetSubTableData(table: any): void {\r\n\r\n let fleetSubs = []\r\n for(let row = 1; row < table.querySelectorAll('tr').length; row++) {\r\n let sub = table.querySelectorAll('tr')[row];\r\n\r\n let fleetSub = {\r\n 'name' : sub.querySelectorAll('td')[1].textContent,\r\n 'clientId' : sub.querySelectorAll('td')[2].textContent,\r\n 'contactName' : sub.querySelectorAll('td')[3].textContent,\r\n 'contactEmail' : sub.querySelectorAll('td')[4].textContent,\r\n 'driverInvoicing' : sub.querySelector('.driverCheckbox').checked,\r\n 'oceanUK' : sub.querySelector('.oceanCheckbox').checked\r\n }\r\n fleetSubs.push(fleetSub)\r\n }\r\n\r\n this.fleetSubsService.postFleetSubAccounts(fleetSubs);\r\n }\r\n\r\n\r\n createMinusButton(table: any) {\r\n \r\n let minusButton = document.createElement('button');\r\n minusButton.className = 'fa fa-minus';\r\n minusButton.id = 'minusId';\r\n minusButton.onclick = () => {\r\n \r\n let tableRows = table.querySelectorAll('tr');\r\n for(let row = 0; row < tableRows.length; row++) {\r\n tableRows.item(row).id = `row_${row}`;\r\n }\r\n }\r\n\r\n minusButton.onmouseenter = () => {\r\n minusButton.style.backgroundColor = 'rgb(255 221 220 / 1)';\r\n minusButton.style.color = '#960000';\r\n }\r\n minusButton.onmouseleave = () => {\r\n minusButton.style.backgroundColor = 'red';\r\n minusButton.style.color = 'white';\r\n }\r\n\r\n minusButton.style.backgroundColor = 'red';\r\n return minusButton;\r\n }\r\n\r\n sortCompany(company: any) {\r\n company.sort((companyA, companyB) => {\r\n if(companyA.name.toLowerCase() < companyB.name.toLowerCase()) {\r\n return -1;\r\n }\r\n if(companyA.name.toLowerCase() > companyB.name.toLowerCase()) {\r\n return 1;\r\n }\r\n return 0\r\n });\r\n }\r\n\r\n createNewRow(companyCrudUtils: any) {\r\n let table = document.querySelector('table');\r\n let rowCount = table.querySelectorAll('tr').length;\r\n let newRow = document.createElement('tr');\r\n newRow.id = `row_${rowCount}`;\r\n let newMinusButton = companyCrudUtils.createMinusButton();\r\n let newMinusButtonContainer = document.createElement('td');\r\n newMinusButtonContainer.appendChild(newMinusButton);\r\n\r\n newMinusButton.onclick = (e) => {\r\n this.removeModal(e.target.parentElement.parentElement)\r\n }\r\n\r\n let newUserPayerId = document.createElement('td');\r\n let newClient = document.createElement('td');\r\n let newName = document.createElement('td');\r\n let newEmail = document.createElement('td');\r\n let newDriverInvoicing = document.createElement('td');\r\n let newOceanUK = document.createElement('td');\r\n\r\n if(rowCount % 2 == 0) {\r\n newMinusButtonContainer.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newUserPayerId.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newClient.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newName.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newEmail.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newDriverInvoicing.style.backgroundColor = 'rgb(238, 238, 238)';\r\n newOceanUK.style.backgroundColor = 'rgb(238, 238, 238)';\r\n } else {\r\n newMinusButtonContainer.style.backgroundColor = 'white';\r\n newUserPayerId.style.backgroundColor = 'white';\r\n newClient.style.backgroundColor = 'white';\r\n newName.style.backgroundColor = 'white';\r\n newEmail.style.backgroundColor = 'white';\r\n newDriverInvoicing.style.backgroundColor = 'white';\r\n newOceanUK.style.backgroundColor = 'white';\r\n }\r\n newUserPayerId.append('-');\r\n newUserPayerId.style.color = 'rgb(52, 52, 52)';\r\n newUserPayerId.style.textAlign = 'centre';\r\n newUserPayerId.contentEditable = 'true';\r\n newUserPayerId.style.cursor = 'default';\r\n\r\n newClient.append('-');\r\n newClient.style.color = 'rgb(52, 52, 52)';\r\n newClient.style.textAlign = 'center';\r\n newClient.contentEditable = 'true';\r\n\r\n newName.append('-');\r\n newName.style.color = 'rgb(52, 52, 52)';\r\n newName.style.textAlign = 'center';\r\n newName.contentEditable = 'true';\r\n\r\n newEmail.append('-');\r\n newEmail.style.color = 'rgb(52, 52, 52)';\r\n newEmail.style.textAlign = 'center';\r\n newEmail.contentEditable = 'true';\r\n\r\n let driverCheckbox = document.createElement('input');\r\n driverCheckbox.type = \"checkbox\";\r\n driverCheckbox.className = \"driverCheckbox\";\r\n newDriverInvoicing.append(driverCheckbox);\r\n newDriverInvoicing.style.color = 'rgb(52, 52, 52)';\r\n newDriverInvoicing.style.textAlign = 'center';\r\n newDriverInvoicing.contentEditable = 'true';\r\n\r\n let oceanUkCheckbox = document.createElement('input');\r\n oceanUkCheckbox.type = \"checkbox\";\r\n oceanUkCheckbox.className = \"oceanCheckbox\";\r\n newOceanUK.append(oceanUkCheckbox);\r\n newOceanUK.style.color = 'rgb(52, 52, 52)';\r\n newOceanUK.style.textAlign = 'center';\r\n newOceanUK.contentEditable = 'true';\r\n\r\n newRow.appendChild(newMinusButtonContainer);\r\n newRow.appendChild(newUserPayerId);\r\n newRow.appendChild(newClient);\r\n newRow.appendChild(newName);\r\n newRow.appendChild(newEmail);\r\n newRow.appendChild(newDriverInvoicing);\r\n newRow.appendChild(newOceanUK);\r\n table.appendChild(newRow);\r\n}\r\n\r\n}","\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Are you sure?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StateManagementService {\r\n showSingleCompanies: boolean = false;\r\n\r\n\r\n}\r\n","import { HTTP_INTERCEPTORS, HttpEvent } from '@angular/common/http';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { TokenStorageService } from '../../services/token-storage/token-storage.service';\r\n\r\nconst TOKEN_HEADER_KEY = 'Authorization';\r\n\r\n@Injectable()\r\nexport class AuthInterceptorService implements HttpInterceptor {\r\n isLoggedIn: boolean = false;\r\n\r\n constructor(private token: TokenStorageService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let authReq = req;\r\n const token = this.token.getToken();\r\n if (token != null) {\r\n authReq = req.clone({headers: req.headers.set(TOKEN_HEADER_KEY, 'Bearer ' + token)})\r\n }\r\n this.isLoggedIn = true;\r\n return next.handle(authReq);\r\n }\r\n\r\n checkLoggedInStatus() {\r\n if(this.isLoggedIn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nexport const authInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptorService, multi: true }\r\n]\r\n","import { Component, OnChanges, OnInit } from '@angular/core';\r\nimport { TariffsService } from '../../services/tariffs-service/tariffs.service';\r\n\r\n@Component({\r\n selector: 'app-tariff-data',\r\n templateUrl: './tariffs.component.html',\r\n styleUrls: ['./tariffs.component.scss']\r\n})\r\nexport class TariffsComponent implements OnInit, OnChanges {\r\n\r\n private tariffsList: any;\r\n private tariffsInBackend: number;\r\n private rowsAdded = 0;\r\n private disableSave = true;\r\n private previousRowColour: string;\r\n private isTableSort: boolean = false;\r\n private sortCounter: number = 0;\r\n private tableBackendLoaded: boolean = false;\r\n\r\n constructor(public tariffData: TariffsService) { }\r\n\r\n public ngOnInit(): void {\r\n if(!this.isTableSort) {\r\n this.populateTable();\r\n }\r\n }\r\n\r\n public ngOnChanges(): void {\r\n this.checkTableForDashes();\r\n }\r\n\r\n public sortByTariffName(e): void {\r\n let faArrow = e.path[0]. querySelector('i');\r\n let sortBy;\r\n\r\n if(this.sortCounter % 2 == 0) {\r\n faArrow.classList.remove('fa-angle-down');\r\n faArrow.classList.add('fa-angle-up');\r\n sortBy = 'desc';\r\n } else {\r\n faArrow.classList.add('fa-angle-down');\r\n faArrow.classList.remove('fa-angle-up');\r\n sortBy = 'asc';\r\n }\r\n \r\n this.isTableSort = true;\r\n let tableBody = e.path[1].querySelector('tbody');\r\n let tableRows = tableBody.querySelectorAll('tr');\r\n let tableRowsCount = tableRows.length;\r\n\r\n const sortedTariffsList = [];\r\n\r\n for(let i = 0; i < tableRowsCount; i++) {\r\n \r\n const rowData = { \r\n tariffName : '',\r\n type: '',\r\n accessFee: '',\r\n accessFeeValidAfter: '',\r\n chargeTimeFee: '',\r\n chargeTimeFeeValidAfter: '',\r\n consumedEnergyFee: '',\r\n consumedEnergyFeeValidAfter: '',\r\n parkingTimeFee: '',\r\n parkingTimeFeeValidAfter: '',\r\n overstayFee: '',\r\n overstayFeeValidAfter: '',\r\n validFrom: '',\r\n validTo: '',\r\n tested: ''\r\n \r\n };\r\n rowData.tariffName = tableRows[i].querySelectorAll('td')[0].innerText;\r\n rowData.type = tableRows[i].querySelectorAll('td')[1].innerText;\r\n\r\n rowData.accessFee = tableRows[i].querySelectorAll('td')[2].innerText;\r\n rowData.accessFeeValidAfter = tableRows[i].querySelectorAll('td')[3].innerText;\r\n \r\n rowData.chargeTimeFee = tableRows[i].querySelectorAll('td')[4].innerText;\r\n rowData.chargeTimeFeeValidAfter = tableRows[i].querySelectorAll('td')[5].innerText;\r\n \r\n rowData.consumedEnergyFee = tableRows[i].querySelectorAll('td')[6].innerText;\r\n rowData.consumedEnergyFeeValidAfter = tableRows[i].querySelectorAll('td')[7].innerText;\r\n \r\n rowData.parkingTimeFee = tableRows[i].querySelectorAll('td')[8].innerText;\r\n rowData.parkingTimeFeeValidAfter = tableRows[i].querySelectorAll('td')[9].innerText;\r\n \r\n rowData.overstayFee = tableRows[i].querySelectorAll('td')[10].innerText;\r\n rowData.overstayFeeValidAfter = tableRows[i].querySelectorAll('td')[11].innerText;\r\n rowData.validFrom = tableRows[i].querySelectorAll('td')[12].innerText;\r\n rowData.validTo = tableRows[i].querySelectorAll('td')[13].innerText;\r\n rowData.tested = tableRows[i].querySelectorAll('td')[14].innerText;\r\n\r\n sortedTariffsList.length = 0;\r\n sortedTariffsList.push(rowData);\r\n }\r\n\r\n // TODO flush older data before using newer, then recreate table\r\n if(sortBy === 'asc') {\r\n sortedTariffsList.sort( (a, b) => a.tariffName.localeCompare(b.tariffName) )\r\n } else if (sortBy === 'desc') {\r\n sortedTariffsList.sort( (a, b) => b.tariffName.localeCompare(a.tariffName) )\r\n }\r\n\r\n this.generateNewTable(sortedTariffsList);\r\n\r\n this.isTableSort = false;\r\n this.sortCounter++;\r\n }\r\n\r\n public generateNewTable(sortedTariffsList: any) {\r\n }\r\n\r\n public generateTable(): void {\r\n const table = document.getElementById('tariffTable') as any;\r\n this.tariffsInBackend = this.tariffsList.length;\r\n const tableLength = document.getElementById('tariffTable').querySelectorAll('th').length;\r\n\r\n table.style.borderRadius = '.3rem';\r\n for(let i = 0; i < this.tariffsList.length; i++) {\r\n let tableRow = table.insertRow(); \r\n \r\n for(let j = 0; j < tableLength; j++) {\r\n if(j === 0) {\r\n tableRow.insertCell(0).innerText = this.tariffsList[i].tariffName;\r\n }\r\n if(j === 1) {\r\n tableRow.insertCell(1).innerText = this.tariffsList[i].type;\r\n }\r\n\r\n if(j === 2) {\r\n tableRow.insertCell(2).innerText = this.tariffsList[i].accessFee;\r\n }\r\n if(j === 3) {\r\n tableRow.insertCell(3).innerText = this.tariffsList[i].accessFeeValidAfter;\r\n }\r\n if(j === 4) {\r\n tableRow.insertCell(4).innerText = this.tariffsList[i].chargeTimeFee;\r\n }\r\n if(j === 5) {\r\n tableRow.insertCell(5).innerText = this.tariffsList[i].chargeTimeFeeValidAfter;\r\n }\r\n if(j === 6) {\r\n tableRow.insertCell(6).innerText = this.tariffsList[i].consumedEnergyFee;\r\n }\r\n if(j === 7) {\r\n tableRow.insertCell(7).innerText = this.tariffsList[i].consumedEnergyFeeValidAfter;\r\n }\r\n if(j === 8) {\r\n tableRow.insertCell(8).innerText = this.tariffsList[i].parkingTimeFee;\r\n }\r\n if(j === 9) {\r\n tableRow.insertCell(9).innerText = this.tariffsList[i].parkingTimeFeeValidAfter;\r\n }\r\n if(j === 10) {\r\n tableRow.insertCell(10).innerText = this.tariffsList[i].overstayFee;\r\n }\r\n if(j === 11) {\r\n tableRow.insertCell(11).innerText = this.tariffsList[i].overstayFeeValidAfter;\r\n }\r\n if(j === 12) {\r\n tableRow.insertCell(12).innerText = this.tariffsList[i].validFrom;\r\n }\r\n if(j === 13) {\r\n tableRow.insertCell(13).innerText = this.tariffsList[i].validTo;\r\n }\r\n if(j === 14) {\r\n tableRow.insertCell(14).innerText = this.tariffsList[i].tested;\r\n tableRow.cells[14].style.backgroundColor = '#c55252';\r\n tableRow.cells[14].style.color = '#fff';\r\n\r\n }\r\n } \r\n tableRow.contentEditable = true;\r\n tableRow.style.textAlign = \"center\";\r\n document.getElementById('tariffTable').querySelector('th').style.paddingBottom = '.3rem';\r\n document.getElementById('tariffTable').querySelector('th').style.paddingTop = '.1rem';\r\n\r\n let numOfRows = table.rows.length as any;\r\n for(let k = 0; k < numOfRows; k++) {\r\n if(k % 2 === 0) {\r\n tableRow.style.backgroundColor = \"#fff\";\r\n } else {\r\n tableRow.style.backgroundColor = \"#eee\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n public populateTable(): void {\r\n this.tariffData.getAllTariffs().subscribe((data: any) => {\r\n this.tariffsList = data[data.length-1].tariffs;\r\n this.generateTable();\r\n this.tableBackendLoaded = true;\r\n this.checkTableForDashes();\r\n });\r\n }\r\n\r\n public addTableRow(): void {\r\n const table = document.getElementById('tariffTable') as any;\r\n let tableRow = table.insertRow();\r\n const tableLength = document.getElementById('tariffTable').querySelectorAll('th').length;\r\n for(let i = 0; i < 2; i++) {\r\n tableRow.insertCell(i).textContent = \"-\"; \r\n }\r\n for(let i = 2; i < tableLength-3; i++) {\r\n tableRow.insertCell(i).textContent = \"0\"; \r\n }\r\n tableRow.insertCell(12).textContent = \"no date\"; \r\n tableRow.insertCell(13).textContent = \"no date\"; \r\n tableRow.insertCell(tableLength-1).textContent = \"false\";\r\n tableRow.cells[tableLength-1].style.backgroundColor = '#c55252';\r\n tableRow.cells[tableLength-1].style.color = '#eee';\r\n\r\n tableRow.contentEditable = true;\r\n tableRow.style.textAlign = \"center\";\r\n\r\n let numOfRows = table.rows.length as any;\r\n for(let k = 0; k < numOfRows; k++) {\r\n if(k % 2 === 0) {\r\n tableRow.style.backgroundColor = \"#fff\";\r\n } else {\r\n tableRow.style.backgroundColor = \"#eee\";\r\n }\r\n }\r\n this.rowsAdded++;\r\n this.checkTableForDashes();\r\n }\r\n\r\n\r\n public removeTableRow(): void {\r\n const table = document.getElementById('tariffTable') as any;\r\n \r\n let newestRow = table.rows.length;\r\n if(newestRow > this.tariffsInBackend) {\r\n table.deleteRow(newestRow - 1);\r\n this.rowsAdded--;\r\n }\r\n this.checkTableForDashes();\r\n }\r\n\r\n\r\n public updateTariffData(): void {\r\n const table = document.getElementById('tariffTable') as any;\r\n let allTariffs = [];\r\n \r\n for(let i = 0; i < table.rows.length; i++) {\r\n \r\n for (let j = 0; j < table.rows[i].cells.length; j++) {\r\n let tariffModel = new Map;\r\n tariffModel.set('tariffName', table.rows[i].cells[j].textContent);\r\n tariffModel.set('type', table.rows[i].cells[j+1].textContent);\r\n\r\n tariffModel.set('accessFee', table.rows[i].cells[j+2].textContent);\r\n tariffModel.set('accessFeeValidAfter', table.rows[i].cells[j+3].textContent);\r\n\r\n tariffModel.set('chargeTimeFee', table.rows[i].cells[j+4].textContent);\r\n tariffModel.set('chargeTimeFeeValidAfter', table.rows[i].cells[j+5].textContent);\r\n\r\n tariffModel.set('consumedEnergyFee', table.rows[i].cells[j+6].textContent);\r\n tariffModel.set('consumedEnergyFeeValidAfter', table.rows[i].cells[j+7].textContent);\r\n\r\n tariffModel.set('parkingTimeFee', table.rows[i].cells[j+8].textContent);\r\n tariffModel.set('parkingTimeFeeValidAfter', table.rows[i].cells[j+9].textContent);\r\n\r\n tariffModel.set('overstayFee', table.rows[i].cells[j+10].textContent);\r\n tariffModel.set('overstayFeeValidAfter', table.rows[i].cells[j+11].textContent);\r\n tariffModel.set('validFrom', table.rows[i].cells[j+12].textContent);\r\n tariffModel.set('validTo', table.rows[i].cells[j+13].textContent);\r\n tariffModel.set('tested', table.rows[i].cells[j+14].textContent);\r\n let obj = {};\r\n tariffModel.forEach((value, key) => {\r\n obj[key] = value;\r\n })\r\n allTariffs.push(obj);\r\n break;\r\n }\r\n }\r\n this.tariffData.postTariffs(allTariffs);\r\n }\r\n\r\n public checkTableForDashes(): void {\r\n if(this.rowsAdded > 0) {\r\n const table = document.getElementById('tariffTable') as any;\r\n let rowsLength = table.rows.length;\r\n let columnsLength = table.rows[0].cells.length;\r\n let foundDash = false;\r\n for(let i = 0; i < rowsLength; i++) {\r\n for(let j = 0; j < columnsLength; j++) {\r\n if(table.rows[i].cells[j].innerText === \"-\") {\r\n foundDash = true;\r\n }\r\n }\r\n }\r\n if(!foundDash) {\r\n this.disableSave = true;\r\n } else {\r\n this.disableSave = false;\r\n }\r\n }\r\n }\r\n\r\n public highlightRow(e: any): void {\r\n let highlightedRow = e.path[0].closest('tr');\r\n\r\n if(highlightedRow !== null) {\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n this.previousRowColour = highlightedRow.style.backgroundColor;\r\n }\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n\r\n highlightedRow.style.backgroundColor = 'rgb(255, 255, 146)';\r\n } else {\r\n highlightedRow.style.backgroundColor = this.previousRowColour;\r\n \r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Tariff Name Contract TypeAccess Fee(€)Access Fee Valid After(mins)Charge Time Fee(€)Chargetime Fee Valid After(mins)Consumed Energy Fee(€)Consumed Energy Fee After(mins)Parking fee(€)Parking fee valid after(mins)Overstay Fee(€)Overstay Fee Valid After(hrs)Valid FromValid ToTested
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{this.tariffData.savedConfirm}}\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-tariff-test-records',\r\n templateUrl: './tariff-test-records.component.html',\r\n styleUrls: ['./tariff-test-records.component.scss']\r\n})\r\nexport class TariffTestRecordsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

tariff-test-records works!

\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { simpleReducer } from '../app/reducers/simpleReducer';\r\n\r\nimport { CsvInvoiceComponent } from './components/csv-invoice/csv-invoice.component';\r\nimport { ApiInvoiceComponent } from './components/api-invoice/api-invoice.component';\r\nimport { ApiInvoiceSiteComponent } from './components/api-invoice-site/api-invoice-site.component';\r\nimport { RfidAddressesComponent } from './components/rfid-addresses/rfid-addresses.component';\r\nimport { TariffsComponent } from './components/tariffs/tariffs.component';\r\nimport { TariffLocationsComponent } from './components/tariff-locations/tariff-locations.component';\r\nimport { TariffTestRecordsComponent } from './components/tariff-test-records/tariff-test-records.component';\r\n\r\nimport { RegistrationFormComponent } from './components/registration-form/registration-form.component';\r\nimport { ChargingSessionsCsvGenComponent } from './components/charging-sessions-csv-gen/charging-sessions-csv-gen.component';\r\nimport { CompaniesCrudComponent } from './components/companies-crud/companies-crud.component';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SideNavbarComponent } from './components/side-navbar/side-navbar.component';\r\nimport { AngularFileUploaderModule } from 'angular-file-uploader';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NpnSliderModule } from 'npn-slider';\r\nimport { LoginComponent } from './components/login/login.component';\r\n\r\nimport { authInterceptorProviders } from '../app/helper/auth-interceptor/auth-interceptor.service';\r\nimport { GHeatMapComponent } from './components/g-heat-map/g-heat-map.component';\r\nimport { GoogleMapsModule } from \"@angular/google-maps\";\r\nimport { MapSidebarComponent } from './components/map-sidebar/map-sidebar.component';\r\nimport {\r\n MatSelectModule\r\n} from '@angular/material/select';\r\nimport {\r\n MatButtonModule\r\n} from '@angular/material/button';\r\nimport {\r\n MatCheckboxModule\r\n} from '@angular/material/checkbox';\r\nimport {\r\n MatDatepickerModule\r\n} from '@angular/material/datepicker';\r\nimport {\r\n MatNativeDateModule\r\n} from '@angular/material/core';\r\nimport {\r\n MatFormFieldModule,\r\n} from '@angular/material/form-field';\r\nimport {\r\n MatProgressBarModule\r\n} from '@angular/material/progress-bar';\r\nimport {\r\n MatProgressSpinnerModule\r\n} from '@angular/material/progress-spinner';\r\nimport {\r\n MatRadioModule\r\n} from '@angular/material/radio';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { SiteDetailsComponent } from './components/site-details/site-details.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { CardContentComponent } from './components/card-content/card-content.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ChargersMapNewComponent } from './components/chargers-map-new/chargers-map-new.component';\r\nimport { ChargerSidebarComponent } from './components/charger-sidebar/charger-sidebar.component';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { TabNavigatorComponent } from './components/tab-navigator/tab-navigator.component';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n CsvInvoiceComponent,\r\n ApiInvoiceComponent,\r\n ApiInvoiceSiteComponent,\r\n RfidAddressesComponent,\r\n SideNavbarComponent,\r\n TariffsComponent,\r\n TariffLocationsComponent,\r\n TariffTestRecordsComponent,\r\n CompaniesCrudComponent,\r\n ChargingSessionsCsvGenComponent,\r\n RegistrationFormComponent,\r\n LoginComponent,\r\n GHeatMapComponent,\r\n MapSidebarComponent,\r\n SiteDetailsComponent,\r\n CardContentComponent,\r\n ChargersMapNewComponent,\r\n ChargerSidebarComponent,\r\n TabNavigatorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AngularFileUploaderModule,\r\n NpnSliderModule,\r\n GoogleMapsModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatFormFieldModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSnackBarModule,\r\n MatCardModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatTabsModule,\r\n MatInputModule,\r\n StoreModule.forRoot({ message: simpleReducer })\r\n ],\r\n exports: [\r\n FormsModule\r\n ],\r\n providers: [authInterceptorProviders],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { HeatmapService } from 'src/app/services/heatmap-service/heatmap.service';\r\n\r\n@Component({\r\n selector: 'app-g-heat-map',\r\n templateUrl: './g-heat-map.component.html',\r\n styleUrls: ['./g-heat-map.component.scss']\r\n})\r\nexport class GHeatMapComponent implements OnInit {\r\n @ViewChild('gMap', { static: false }) gMap: GoogleMap;\r\n @ViewChild(MapInfoWindow) infoWindow: MapInfoWindow;\r\n options: google.maps.MapOptions = {\r\n center: { lat: 53.355603353851706, lng: -8.208030896545232 },\r\n zoom: 7,\r\n minZoom: 7,\r\n styles: []\r\n };\r\n heatmapOptions = { radius: 5 };\r\n mapMarkers: any = [];\r\n currentZoomLevel = 7;\r\n isLoading: boolean = true;\r\n currentFilter: any;\r\n selectedMarker: any = null;\r\n hoveredMarker: any = {};\r\n heatMap: google.maps.visualization.HeatmapLayer;\r\n\r\n constructor(private heatMapService: HeatmapService,\r\n private _snackBar: MatSnackBar,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n const today = new Date();\r\n const month = today.toLocaleString('en', { month: 'short' });\r\n const year = today.getFullYear();\r\n // this.getEasyGodata([`${month} ${year}`]);\r\n }\r\n\r\n\r\n filterChange(data) {\r\n this.mapMarkers = [];\r\n this.selectedMarker = null;\r\n this.currentFilter = null;\r\n if(this.heatMap) {\r\n this.heatMap.setMap(null);\r\n }\r\n\r\n\r\n if (!data) {\r\n return;\r\n }\r\n\r\n // if (data.sessionType === 'EasyGo') {\r\n // this.getEasyGodata(data);\r\n // } else if (data.sessionType === 'ESB') {\r\n // this.getESBdata(data);\r\n // }\r\n\r\n this.getMapData(data)\r\n }\r\n\r\n generateMarker(res) {\r\n const markers = []\r\n for (let key in res) {\r\n let icon = '';\r\n const isEasyGo = key.includes('EGO') ? true : false;\r\n \r\n const currentData = res[key];\r\n currentData.lat = Number(currentData.latitude);\r\n currentData.lng = Number(currentData.longitude);\r\n currentData.friendlyCode = key;\r\n\r\n if(isEasyGo) {\r\n icon = currentData.chargePointOwner === 'Client' ? 'easygo-client-marker' : 'easygo-marker';\r\n currentData.options = {\r\n icon: `../../../assets/${icon}.png`\r\n }\r\n } else {\r\n icon = 'esb-marker'\r\n currentData.options = {\r\n icon: `../../../assets/${icon}.png`\r\n }\r\n }\r\n\r\n \r\n markers.push(currentData);\r\n }\r\n this.mapMarkers = markers;\r\n }\r\n\r\n getMapData(data) {\r\n\r\n this.currentFilter = { year: data.year, months: data.months };\r\n this.isLoading = true;\r\n\r\n this.heatMapService.getHeatmapSessions(data).subscribe((res: any) => {\r\n if (Object.keys(res).length) {\r\n // this.generateMarker(res, 'easygo-marker');\r\n this.generateMarker(res);\r\n\r\n this.initHeatMap();\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getEasyGodata(data) {\r\n\r\n this.currentFilter = { year: data.year, months: data.months };\r\n this.isLoading = true;\r\n\r\n this.heatMapService.getLocationMarker(data).subscribe((res: any) => {\r\n if (Object.keys(res).length) {\r\n this.generateMarker(res);\r\n this.initHeatMap();\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n getESBdata(data) {\r\n\r\n this.currentFilter = { year: data.year, months: data.months };\r\n this.isLoading = true;\r\n this.heatMapService.getESBMarker(data).subscribe((res: any) => {\r\n if (Object.keys(res).length) {\r\n this.generateMarker(res);\r\n this.initHeatMap();\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.openSnackBar(\"No data found in the selected period\", \"Close\");\r\n }\r\n\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initHeatMap();\r\n }\r\n\r\n initHeatMap() {\r\n if (this.heatMap) {\r\n this.heatMap.setMap(null);\r\n }\r\n\r\n if (this.mapMarkers.length) {\r\n this.heatMap = new google.maps.visualization.HeatmapLayer({\r\n radius: 12,\r\n opacity: .8,\r\n maxIntensity: 600,\r\n data: this.mapMarkers.map((d) => {\r\n return {location: new google.maps.LatLng(d.lat, d.lng), weight: d.noOfSessions};\r\n })\r\n });\r\n this.heatMap.setMap(this.gMap.googleMap);\r\n }\r\n\r\n }\r\n\r\n zoomChange() {\r\n this.currentZoomLevel = this.gMap.getZoom();\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action, {\r\n duration: 5000\r\n });\r\n }\r\n\r\n openInfoWindow(markerEle: MapMarker, marker) {\r\n this.hoveredMarker = { ...marker };\r\n this.infoWindow.open(markerEle);\r\n }\r\n\r\n closeInfoWindow() {\r\n this.hoveredMarker = {};\r\n this.infoWindow.close();\r\n }\r\n\r\n onMarkClick(e, marker) {\r\n this.selectedMarker = { ...marker };\r\n // marker.locationId = \"IE*EGO0526\";\r\n // this.router.navigate(['/chart'], {\r\n // queryParams: {\r\n // locationId: marker.locationId,\r\n // year: this.currentFilter.year,\r\n // months: this.currentFilter.months.toString(),\r\n // chargeType: 'DC'\r\n // }\r\n // })\r\n // console.log(\"MARK CLIENT\", marker);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n = 10\">\r\n \r\n \r\n
{{\r\n hoveredMarker.friendlyName || hoveredMarker.address\r\n }}
\r\n
\r\n Number of Sessions: {{\r\n hoveredMarker.noOfSessions\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CouponService {\r\n\r\n getUrl:string = 'https://www.easygo-dev.com:8081/v1/getCouponTypes'; // production\r\n // getUrl:string = 'https://localhost:8081/v1/getCouponTypes'; // development\r\n\r\n postUrl:string = \"https://www.easygo-dev.com:8081/v1/issueMerchantCoupons\" // production\r\n // postUrl:string = \"https://localhost:8081/v1/issueMerchantCoupons\" // development\r\n\r\n returnedMessage: string = '';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n postCouponsInstructions(couponPostData: Object): any {\r\n \r\n try { \r\n const headers = { 'Content-Type': 'application/json'};\r\n let body = `${JSON.stringify(couponPostData)}`;\r\n const req = this.http.post(`${this.postUrl}`, body, {'headers': headers});\r\n req.subscribe(data => {\r\n if(data.IsSuccessful) {\r\n this.returnedMessage = `Successfully added ${data.ResultCode} coupons from coupon ID of ${data.Id}`;\r\n\r\n }\r\n });\r\n\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getCouponTypes() {\r\n try {\r\n return this.http.get(`${this.getUrl}`)\r\n } catch(error) {\r\n console.error(error)\r\n return EMPTY;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { InvoiceApiRetrieveService } from '../../services/invoice-api-retrieve-service/invoice-api-retrieve.service';\r\nimport { ChargingSessionsQuery } from '../../interfaces/chargingSessionsQuery';\r\nimport { ChargingSessionsFleetQuery } from '../../interfaces/chargingSessionsFleetQuery';\r\nimport * as moment from 'moment';\r\nimport { StateManagementService } from 'src/app/services/state-management-service/state-management-service.service';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-api-invoice',\r\n templateUrl: './api-invoice.component.html',\r\n styleUrls: ['./api-invoice.component.scss']\r\n})\r\nexport class ApiInvoiceComponent implements OnInit {\r\n\r\n private chargingFromMultiple: string = '';\r\n private chargingToMultiple: string = '';\r\n public flaggedSessions = [];\r\n public uniqueFlaggedSessions = [];\r\n\r\n private chargingSessionsQuery: ChargingSessionsQuery = { \r\n companies : [],\r\n accessTypes: '',\r\n chargingFrom: '',\r\n chargingTo: ''\r\n };\r\n\r\n private chargingSessionsFleetQuery: ChargingSessionsFleetQuery = {\r\n company: '',\r\n chargingFrom: '',\r\n chargingTo: '',\r\n userPayerId: ''\r\n }\r\n\r\n public profileForm = new FormGroup({\r\n chargingFrom : new FormControl(''),\r\n chargingTo : new FormControl(''),\r\n singleCompany: new FormControl(''),\r\n accessType: new FormControl('')\r\n });\r\n\r\n public multipleFleetSubReportForm = new FormGroup({\r\n fleetSubCompanies: new FormControl(''),\r\n chargingFrom : new FormControl(''),\r\n chargingTo : new FormControl('')\r\n });\r\n\r\n public showTable: boolean;\r\n public singleCompaniesList: any[];\r\n public fleetplanCompaniesList: any[];\r\n private data: any;\r\n private showFleetPlanCompanies = false;\r\n private returnedData: any;\r\n public noDataFound = false;\r\n public dataFound = false;\r\n private chargingFromFleet: any;\r\n private chargingToFleet: any;\r\n\r\n private fleetCompany: string;\r\n private fleetFormMessage: string;\r\n private userPayerId: string;\r\n public showSubmitButton: boolean;\r\n public selectAllFleetSubs:boolean;\r\n\r\n public showFormInputs: boolean;\r\n public showFleetFormInputs: boolean;\r\n\r\n constructor(\r\n public companies: InvoiceApiRetrieveService,\r\n private formBuilder: FormBuilder,\r\n public stateManagement: StateManagementService\r\n ) { \r\n this.profileForm = this.formBuilder.group({\r\n companies: [ false, Validators.requiredTrue],\r\n chargingFrom: [''],\r\n chargingTo: [''],\r\n accessType: ['', Validators.required]\r\n })\r\n this.multipleFleetSubReportForm = this.formBuilder.group({\r\n fleetSubCompanies: [ '', Validators.required],\r\n chargingFrom: [''],\r\n chargingTo: ['']\r\n })\r\n }\r\n\r\n \r\n public getFreeAccessCompaniesList() {\r\n this.companies.getFreeAccessCompaniesList().subscribe(() => {\r\n this.fleetplanCompaniesList = this.data[0][1];\r\n })\r\n }\r\n\r\n public ngOnInit() :void {\r\n this.getFleetplanCompaniesListForMultipleReportGen();\r\n if(this.stateManagement.showSingleCompanies) {\r\n this.getSingleCompaniesList();\r\n }\r\n this.companies.getBadSessions().subscribe( (res: any) => {\r\n for(let sessionList of res) {\r\n for ( let session of sessionList.sessions) {\r\n this.flaggedSessions.push(session);\r\n }\r\n }\r\n this.uniqueFlaggedSessions = this.getUniqueListBy(this.flaggedSessions, 'sessionId');\r\n console.log(this.uniqueFlaggedSessions);\r\n \r\n })\r\n }\r\n\r\n public getUniqueListBy(flaggedSessions, key) {\r\n return [ ...new Map(flaggedSessions.map(session => [session[key], session])).values()]\r\n }\r\n\r\n public hideFleetDropdown() :void {\r\n (document.getElementsByClassName('dropdownContent')[0] as HTMLElement).style.visibility = 'hidden';\r\n }\r\n\r\n public highlightCompanyChecks(e: any) {\r\n if (e.path[2].localName !== 'form' && (e.path[0].innerText !== 'Private access - home' && e.path[0].innerText !== 'Private - only for employees' &&\r\n e.path[0].innerText !== 'Public accessible - Free access' && e.path[0].innerText !== 'Public access - payable')) {\r\n e.path[0].checked ? e.path[2].style.backgroundColor = '#6c9603' : e.path[2].style.backgroundColor = '#555'\r\n }\r\n }\r\n\r\n public getSingleCompaniesList() :void {\r\n this.companies.getSingleCompaniesList().subscribe((data: any) => {\r\n this.singleCompaniesList = data;\r\n\r\n // save boolean in service\r\n this.stateManagement.showSingleCompanies = true;\r\n this.companies.dateTo = moment().format('yyyy-MM-DDTHH:mm');\r\n this.companies.dateFrom = moment().startOf('month').format('yyyy-MM-DDTHH:mm');\r\n \r\n });\r\n this.showFormInputs = true;\r\n this.showFleetPlanCompanies = true;\r\n }\r\n\r\n public getFleetplanCompaniesListForMultipleReportGen() :void {\r\n this.companies.getFleetPlanCompaniesList().subscribe((data: any) => {\r\n this.fleetplanCompaniesList = data;\r\n console.log(this.fleetplanCompaniesList)\r\n\r\n let currentDate = new Date();\r\n let startOfPreviousMonth = new Date(currentDate.getFullYear(), currentDate.getMonth()-1, 1);\r\n let endOfPreviousMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0, 23, 59, 59);\r\n\r\n this.companies.dateTo = moment(startOfPreviousMonth).format('yyyy-MM-DDTHH:mm');\r\n this.companies.dateFrom = moment(endOfPreviousMonth).startOf('month').format('yyyy-MM-DDTHH:mm');\r\n (document.getElementById('fleetSubscriberMultipleChargingTo') as any).value = moment().format('yyyy-MM-DDTHH:mm');\r\n (document.getElementById('fleetSubscriberMultipleChargingFrom') as any).value = moment().startOf('month').format('yyyy-MM-DDTHH:mm');\r\n });\r\n\r\n }\r\n \r\n public getFleetplanCompaniesList(event) :void {\r\n this.companies.getFleetPlanCompaniesList().subscribe((data: any) => {\r\n this.fleetplanCompaniesList = data;\r\n\r\n (document.getElementById('fleetDropdownList') as any).style.visibility = 'visible';\r\n \r\n let currentDate = new Date();\r\n\r\n let startOfPreviousMonth = new Date(currentDate.getFullYear(), currentDate.getMonth()-1, 1);\r\n let endOfPreviousMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0, 23, 59, 59);\r\n\r\n this.companies.dateTo = moment(startOfPreviousMonth).format('yyyy-MM-DDTHH:mm');\r\n this.companies.dateFrom = moment(endOfPreviousMonth).startOf('month').format('yyyy-MM-DDTHH:mm');\r\n let chargingTimes = event.target.parentElement.parentElement.parentElement.parentElement.getElementsByClassName('charging')\r\n let chargingFrom = chargingTimes[0].lastChild.children[1];\r\n let chargingTo = chargingTimes[1].lastChild.children[1];\r\n\r\n chargingFrom.value = moment(startOfPreviousMonth).format('yyyy-MM-DDTHH:mm');\r\n chargingTo.value = moment(endOfPreviousMonth).format('yyyy-MM-DDTHH:mm');\r\n\r\n (document.getElementById('fleetSubscriberChargingFrom') as any).value = chargingFrom.value;\r\n (document.getElementById('fleetSubscriberChargingTo') as any).value = chargingTo.value;\r\n });\r\n \r\n }\r\n\r\n public getCompanyUserPayers(): void {\r\n this.companies.getCompanyUserPayers().subscribe((data: any) => {\r\n this.sendFormQuery(data);\r\n\r\n });\r\n }\r\n\r\n public getFleetCompanySessions(e: any) :void {\r\n this.chargingFromFleet = (document.getElementsByClassName('input-group')[0].firstElementChild as any).value;\r\n this.chargingToFleet = (document.getElementsByClassName('input-group')[1].firstElementChild as any).value;\r\n this.fleetFormMessage = '';\r\n \r\n if(this.chargingFromFleet > this.chargingToFleet) {\r\n this.fleetFormMessage = 'The to date must be before the from date. ';\r\n }\r\n if(this.chargingFromFleet === '') {\r\n this.fleetFormMessage += 'Charging from date must not be empty. ';\r\n }\r\n if(this.chargingToFleet === '') {\r\n this.fleetFormMessage += 'Charging to date must not be empty. ';\r\n }\r\n if(this.fleetFormMessage.length > 0) {\r\n this.fleetFormMessage = 'Sorry, unable to post request due to the following: ' + this.fleetFormMessage;\r\n }\r\n if(this.fleetFormMessage === '') {\r\n\r\n let toDisplayDate = this.chargingToFleet.split('T')[0];\r\n let fromDisplayDate = this.chargingFromFleet.split('T')[0];\r\n let toDate = toDisplayDate.split('-')[2] + '-' + toDisplayDate.split('-')[1] + '-' + toDisplayDate.split('-')[0];\r\n let fromDate = fromDisplayDate.split('-')[2] + '-' + fromDisplayDate.split('-')[1] + '-' + fromDisplayDate.split('-')[0];\r\n\r\n this.fleetFormMessage = `Attempting to generate report for ${this.fleetCompany} \r\n from ${fromDate} to ${toDate}`;\r\n }\r\n this.chargingSessionsFleetQuery.company = this.fleetCompany;\r\n this.chargingSessionsFleetQuery.chargingFrom = this.chargingFromFleet\r\n this.chargingSessionsFleetQuery.chargingTo = this.chargingToFleet\r\n this.chargingSessionsFleetQuery.userPayerId = this.userPayerId;\r\n this.companies.sendFleetApiQuery(this.chargingSessionsFleetQuery);\r\n }\r\n\r\n\r\n public createFleetSubscriberForm(event: any) :void {\r\n this.showSubmitButton = true;\r\n this.fleetCompany = event.target.value;\r\n \r\n this.fleetplanCompaniesList.forEach(val => {\r\n if(val.name === this.fleetCompany) {\r\n this.userPayerId = val.clientId;\r\n }\r\n });\r\n\r\n // need to generate form\r\n this.companies.dateTo = moment().format('yyyy-MM-DDTHH:mm');\r\n this.companies.dateFrom = moment().startOf('month').format('yyyy-MM-DDTHH:mm');\r\n this.showFleetFormInputs = true;\r\n }\r\n\r\n submitMultipleFleetsubs(event): void { \r\n let arrOfCompanies = event.target.parentElement.parentElement;\r\n let selectedCompanies = arrOfCompanies.querySelectorAll('input[type=checkbox]:checked');\r\n let selectedCompaniesListNames: string[] = [];\r\n\r\n for(let node of selectedCompanies) {\r\n selectedCompaniesListNames.push(node.name as string);\r\n }\r\n let selectedCompaniesList: ChargingSessionsFleetQuery[] = [];\r\n\r\n if(!this.selectAllFleetSubs) {\r\n for(let selectedCompany of selectedCompaniesListNames) {\r\n for(let fleetCompany of this.fleetplanCompaniesList) {\r\n if(selectedCompany === fleetCompany.name) {\r\n selectedCompaniesList.push(fleetCompany);\r\n }\r\n }\r\n }\r\n } else {\r\n selectedCompaniesList = this.fleetplanCompaniesList;\r\n }\r\n \r\n this.chargingFromMultiple = (document.getElementById('fleetSubscriberMultipleChargingFrom') as any).value;\r\n this.chargingToMultiple = (document.getElementById('fleetSubscriberMultipleChargingTo') as any).value;\r\n\r\n this.companies.sendFleetsApiQuery(selectedCompaniesList, this.chargingFromMultiple, this.chargingToMultiple);\r\n }\r\n\r\n sendFormQuery(companyUserPayersList) {\r\n\r\n let checkedElements: Array = document.querySelectorAll ('input[type=\"checkbox\"]:checked') as any; \r\n let checkedValues = []; \r\n for(let i = 0; i 0 && this.chargingSessionsQuery.accessTypes.length > 0 && \r\n fromDate != null && toDate != null) {\r\n (document.getElementById('submitButton') as any as HTMLElement).style.display = 'block';\r\n try {\r\n\r\n this.companies.sendApiQuery(this.chargingSessionsQuery)\r\n .subscribe(result => {\r\n this.returnedData = result;\r\n if(this.returnedData === \"No charging sessions found\") {\r\n this.noDataFound = true;\r\n this.dataFound = false;\r\n } else if (typeof this.returnedData === 'object' && this.returnedData !== null) {\r\n this.dataFound = true;\r\n this.noDataFound = false;\r\n }\r\n });\r\n } catch(error) {\r\n return EMPTY;\r\n }\r\n }\r\n\r\n }\r\n\r\n getAllFleetSubs() {\r\n this.selectAllFleetSubs = !this.selectAllFleetSubs;\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Attempting to retrieve charging sessions and generate invoice report
\r\n
\r\n
\r\n {{companies.pdfStatus}}\r\n
\r\n
\r\n
\r\n
\r\n
{{returnedData}}
\r\n
\r\n
\r\n Data found for: \r\n \r\n {{companySaved}}, \r\n \r\n \r\n
\r\n \r\n CSV Invoice template and charging sessions report for {{companySaved}} has been saved to \"Invoices/{{companySaved}}\"
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Attempting to retrieve charging sessions and generate invoice report
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{companies.pdfFleetStatus}}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Select All\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Attempting to retrieve charging sessions for selected fleet subscribers and generate invoice reports
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Session IdUser IdSum of CostsEnergy ConsumedLocation NameCharging FromCharging ToMins ChargingAccess Type
{{company.sessionId}}{{company.identificationUserId}}{{company.sumOfCosts | number : '1.0-2' }}{{company.activeEnergyConsumption | number : '1.0-2' }}{{company.locationName}}{{company.chargingFrom | date : 'short' }}{{company.chargingTo | date : 'short' }}{{company.minsCharging | number : '1.0-2' }}{{company.accessType}}
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n","export class CompanyCrudHelper {\r\n\r\n createTableHeaders(table: any, tableRow: any) {\r\n // Client header cell\r\n const tdCompany = document.createElement('th');\r\n this.createHeaderCell(tdCompany, \"Client\");\r\n tableRow.appendChild(tdCompany);\r\n table.appendChild(tableRow);\r\n\r\n // UserPayerID header cell\r\n const tdUserPayerId = document.createElement('th');\r\n this.createHeaderCell(tdUserPayerId, \"Payer ID\");\r\n tableRow.appendChild(tdUserPayerId);\r\n table.appendChild(tableRow);\r\n\r\n // Name header cell\r\n const tdName = document.createElement('th');\r\n this.createHeaderCell(tdName, \"Name\");\r\n tableRow.appendChild(tdName);\r\n table.appendChild(tableRow);\r\n\r\n // Email header cell\r\n const tdEmail = document.createElement('th');\r\n this.createHeaderCell(tdEmail, \"Email\");\r\n tableRow.appendChild(tdEmail);\r\n table.appendChild(tableRow);\r\n\r\n // Driver Invoicing header cell\r\n const tdDriver = document.createElement('th');\r\n this.createHeaderCell(tdDriver, \"Driver Invoicing\");\r\n tableRow.appendChild(tdDriver);\r\n table.appendChild(tableRow);\r\n\r\n // OceanUK Fleet header cell\r\n const tdOceanUk = document.createElement('th');\r\n this.createHeaderCell(tdOceanUk, \"Ocean UK\");\r\n tableRow.appendChild(tdOceanUk);\r\n table.appendChild(tableRow);\r\n }\r\n\r\n private createHeaderCell(element: any, heading: string) {\r\n element.style.marginLeft = '0.3rem';\r\n element.style.marginRight = '0.3rem';\r\n element.style.paddingLeft = '0.3rem';\r\n element.style.paddingRight = '0.3rem';\r\n element.append(heading);\r\n }\r\n\r\n createFleetRow(newFleetRow: any, company: any, counter: number) {\r\n // Client\r\n let companyRowCell = document.createElement('td');\r\n this.createTextRowCell(companyRowCell, company.name, counter);\r\n newFleetRow.appendChild(companyRowCell);\r\n\r\n // User Payer ID\r\n let userPayerIdRowCell = document.createElement('td');\r\n this.createTextRowCell(userPayerIdRowCell, company.clientId, counter);\r\n newFleetRow.appendChild(userPayerIdRowCell);\r\n\r\n // Contact Name\r\n let nameRowCell = document.createElement('td');\r\n this.createTextRowCell(nameRowCell, company.contactName, counter);\r\n newFleetRow.appendChild(nameRowCell);\r\n\r\n // Contact Email\r\n let emailRowCell = document.createElement('td');\r\n this.createTextRowCell(emailRowCell, company.email, counter);\r\n newFleetRow.appendChild(emailRowCell);\r\n\r\n // Driver Invoicing checkbox\r\n // To determine if fleet should receive invoice/reports based on number of drivers\r\n let driverInvoicingRowCell = document.createElement('td');\r\n this.createCheckboxRowCell(driverInvoicingRowCell, company.driverInvoicing, counter, \"driverCheckbox\");\r\n newFleetRow.appendChild(driverInvoicingRowCell);\r\n\r\n // Ocean UK fleet checkbox\r\n // To determine if a fleet is on Ocean UK or Ireland\r\n let oceanUkRowCell = document.createElement('td');\r\n this.createCheckboxRowCell(oceanUkRowCell, company.oceanUK, counter, \"oceanCheckbox\");\r\n newFleetRow.appendChild(oceanUkRowCell);\r\n }\r\n\r\n private createTextRowCell(element: any, text: string, counter: number) {\r\n element.append(text);\r\n element.style.paddingRight = '.5rem';\r\n element.style.paddingLeft = '.5rem';\r\n element.style.marginRight = '1.3rem';\r\n element.style.marginLeft = '1.3rem';\r\n element.style.textAlign = 'center';\r\n element.style.color = '#343434';\r\n element.style.cursor = 'default';\r\n counter % 2 === 0 ? element.style.backgroundColor = 'white' : element.style.backgroundColor = 'rgb(238, 238, 238)';\r\n }\r\n\r\n private createCheckboxRowCell(element: any, checkboxTicked: boolean, counter: number, className: string) {\r\n let checkbox = document.createElement('input');\r\n checkbox.type = \"checkbox\";\r\n checkbox.name = \"checkbox\" + counter;\r\n checkbox.checked = checkboxTicked;\r\n checkbox.className = className;\r\n\r\n element.append(checkbox);\r\n this.createTextRowCell(element, \"\", counter);\r\n }\r\n\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RfidAddressesService {\r\n\r\n url:string = 'https://www.easygo-dev.com:8081/v1/';\r\n // url:string = 'https://localhost:8081/v1/';\r\n\r\n returnedMessage: string;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n public getRfidAddressesPdf() {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/pdf')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Access-Control-Allow-Methods', 'POST')\r\n\r\n let body = null;\r\n let req = this.http.post(`${this.url}getRfidAddresses`, body, \r\n { headers: headers, responseType: 'blob' as 'json'});\r\n req.subscribe( (response) => {\r\n console.log(response);\r\n // moment().format('MM/DD/YYYY')\r\n const momento = moment().format('MM-DD-YYYY');\r\n let stringDate = momento.replace('-', '_');\r\n FileSaver.saveAs(response, `RfidRequest_${stringDate}.pdf`);\r\n\r\n const momentForResponesMessage = moment().format('MMMM Do YYYY, h:mm:ss a');\r\n if(response.size > 0) {\r\n this.returnedMessage = `PDF file with names and addresses for key fob requests for printing has been successfully created on ${momentForResponesMessage}`;\r\n } else {\r\n this.returnedMessage = `The PDF file is empty. Either something went wrong creating the PDF or there are currently no key fob ticket requests`;\r\n }\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SaveFleetSubsService {\r\n\r\n url:string = \"https://www.easygo-dev.com:8081/v1/\"; // for production in digitalocean TODO: change url\r\n //url:string = \"http://localhost:8081/v1/\"; // for dev\r\n\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n public postFleetSubAccounts(fleetSubs : any) {\r\n try { \r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/json')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', 'https://www.easygo-dev.com')\r\n .set('Access-Control-Allow-Methods', 'POST');\r\n \r\n let body = `{fleetSubs:${JSON.stringify(fleetSubs)}}`;\r\n\r\n const req = this.http.post(`${this.url}postFleetSubs/`, body, \r\n { headers: headers, responseType: 'json'});\r\n req.subscribe( () => {\r\n });\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EMPTY } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocationsService {\r\n\r\n url:string = 'https://www.easygo-dev.com:8081/v1';\r\n // url:string = 'https://localhost:8081/v1';\r\n\r\n constructor(private http: HttpClient) { }\r\n \r\n \r\n public getAllLocations() {\r\n try {\r\n return this.http.get(this.url + '/locationsOfChargingStations');\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n \r\n public postLocationsForCsvCreation(postObject: any) {\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/json')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*')\r\n .set('Access-Control-Allow-Methods', 'POST');\r\n\r\n let body = JSON.stringify(postObject);\r\n\r\n let req = this.http.post(`${this.url}/postLocations`, body, \r\n { headers: headers, responseType: 'json'});\r\n\r\n req.subscribe( response => {\r\n FileSaver.saveAs(response, 'test');\r\n\r\n })\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { EMPTY } from 'rxjs';\r\nimport { ChargingSessionsQuery } from '../../interfaces/chargingSessionsQuery';\r\nimport { ChargingSessionsFleetQuery } from '../../interfaces/chargingSessionsFleetQuery';\r\nimport * as FileSaver from 'file-saver';\r\n\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InvoiceApiRetrieveService {\r\n\r\n url:string = 'https://www.easygo-dev.com:6502/api/' // for production in digitalocean\r\n // url:string = 'https://localhost:6502/api/'; // for development\r\n\r\n private singleCompaniesList: any;\r\n private fleetPlanCompaniesList:any;\r\n private freeAccessCompaniesList:any;\r\n private companyUserPayers:any;\r\n private badSessions:any;\r\n public pdfStatus: string;\r\n private zipStatus: string;\r\n public pdfFleetStatus: string;\r\n public dateTo: string;\r\n public dateFrom: string;\r\n private fleetResponse: any;\r\n\r\n selectedCompany: any; // TODO later add an array and counter\r\n showWaitingSpinner = false;\r\n showFleetWaitingSpinner = false;\r\n showFleetsWaitingSpinner = false;\r\n\r\n // private flaggedSessions = [];\r\n // public uniqueFlaggedSessions: Array = [];\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n public getSingleCompaniesList(): any {\r\n try {\r\n this.singleCompaniesList =\r\n this.http.get(`${this.url}singleCompaniesList`);\r\n return this.singleCompaniesList;\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getFleetPlanCompaniesList(): any {\r\n try {\r\n this.fleetPlanCompaniesList =\r\n this.http.get(`${this.url}fleetPlanCompaniesList`);\r\n return this.fleetPlanCompaniesList;\r\n } catch (error) {\r\n console.error(error());\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getFreeAccessCompaniesList(): any {\r\n try {\r\n this.freeAccessCompaniesList =\r\n this.http.get(`${this.url}freeAccessCompaniesList`);\r\n return this.freeAccessCompaniesList;\r\n } catch (error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getCompanyUserPayers() {\r\n try {\r\n this.companyUserPayers = this.http.get(`${this.url}companyUserPayers`);\r\n return this.companyUserPayers;\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public getBadSessions() {\r\n try {\r\n this.badSessions = this.http.get('https://www.easygo-dev.com:8081/v1/naughtySessions');\r\n return this.badSessions;\r\n } catch(error) {\r\n console.error(error)\r\n return EMPTY;\r\n }\r\n\r\n }\r\n\r\n public sendApiQuery(queryObject: ChargingSessionsQuery): any {\r\n this.showWaitingSpinner = true;\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/pdf')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*')\r\n .set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,DELETE,PUT');\r\n const body = JSON.stringify(queryObject);\r\n const req = this.http.post(`${this.url}getApiQuery`, body, { headers: headers, responseType: 'blob' as 'json'} );\r\n req.subscribe( response => {\r\n FileSaver.saveAs(response, `${this.selectedCompany}_${queryObject.chargingFrom.substring(0, 10)}_to_${queryObject.chargingTo.substring(0, 10)}_Charging_Sessions`);\r\n this.showWaitingSpinner = false;\r\n const momento = moment().format('MMMM Do YYYY, h:mm:ss a');\r\n this.pdfStatus = `Successfully generated and downloaded ${this.selectedCompany}_${queryObject.chargingFrom.substring(0, 10)}_to_${queryObject.chargingTo.substring(0, 10)}_Charging_Sessions on ${momento}`;\r\n });\r\n } catch(error) {\r\n console.error(error);\r\n this.pdfStatus = 'Sorry, something went wrong. Please check the logs of the service.'\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public sendFleetsApiQuery(selectedCompanies: ChargingSessionsFleetQuery[], chargingFrom: string, chargingTo: string) {\r\n this.showFleetsWaitingSpinner = true;\r\n console.log(this.showFleetsWaitingSpinner);\r\n let uniqueFlaggedSessions = [];\r\n\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/zip')\r\n .set('Content-Type', 'application/json')\r\n .set('Allow-Control-Allow-Origin', '*')\r\n .set('Access-Control-Allow-Methods', 'POST')\r\n let queryParams = {\r\n selectedCompanies : selectedCompanies,\r\n chargingFrom : chargingFrom,\r\n chargingTo : chargingTo\r\n };\r\n const body = JSON.stringify(queryParams);\r\n const req = this.http.post(`${this.url}getMultipleFleetSubReports`, body, {headers: headers, responseType: 'blob' as 'arraybuffer'});\r\n req.subscribe( response => {\r\n console.log(response);\r\n \r\n const date = moment().format('LLLL');;\r\n const momento = moment().format('L').replace('/', '_');\r\n \r\n const fileName = `fleetSubscribersPdfs_${momento}.zip`;\r\n FileSaver.saveAs(response, fileName )\r\n this.zipStatus = `Successfully generated and downloaded ${fileName} on ${date}`;\r\n \r\n this.showFleetsWaitingSpinner = false;\r\n });\r\n \r\n } catch(error) {\r\n this.zipStatus = 'Sorry, something went wrong. Please check the logs of the service at.'\r\n\r\n console.error(error);\r\n\r\n return EMPTY;\r\n }\r\n }\r\n \r\n public sendFleetApiQuery(queryObject: ChargingSessionsFleetQuery): any {\r\n this.showFleetWaitingSpinner = true;\r\n try {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/pdf')\r\n .set('Content-Type', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*')\r\n .set('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,DELETE,PUT');\r\n const body = JSON.stringify(queryObject);\r\n const req = this.http.post(`${this.url}getFleetApiQuery/`, body, { headers: headers, responseType: 'blob' as 'json'});\r\n\r\n req.subscribe( response => {\r\n this.fleetResponse = response;\r\n if(this.fleetResponse.size === 0) {\r\n this.pdfFleetStatus = `Failed to generate a pdf file as no charging sessions have been found for ${queryObject.company} from ${queryObject.chargingFrom.substring(0, 10)} to ${queryObject.chargingTo.substring(0, 10)}`;\r\n } else {\r\n\r\n FileSaver.saveAs(response, `${queryObject.company.replace('_', '').replace(',', '_').replace(\".\", \"_\")}_${queryObject.chargingFrom.substring(0, 10)}_to_${queryObject.chargingTo.substring(0, 10)}_Charging_Sessions`);\r\n const momento = moment().format('MMMM Do YYYY, h:mm:ss a');\r\n this.pdfFleetStatus = `Successfully generated and downloaded ${queryObject.company}_${queryObject.chargingFrom.substring(0, 10)}_to_${queryObject.chargingTo.substring(0, 10)}_Charging_Sessions on ${momento}`; \r\n }\r\n\r\n });\r\n } catch(error) {\r\n console.error(error);\r\n this.pdfFleetStatus = 'Sorry, something went wrong. Please check the logs of the service.'\r\n return EMPTY;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-csv-invoice',\r\n templateUrl: './csv-invoice.component.html',\r\n styleUrls: ['./csv-invoice.component.scss']\r\n})\r\nexport class CsvInvoiceComponent {\r\n\r\n private url: string = \"https://www.easygo-dev.com:6502/api/uploadCsvFileAng\";\r\n private selectedFile: File = null;\r\n public returnedMessage: string;\r\n public waitingMessage: string;\r\n private waiting: boolean;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public onFileSelected(event: any): void {\r\n this.selectedFile = event.target.files[0];\r\n }\r\n\r\n public onUpload(): void {\r\n\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/pdf');\r\n let fileName = this.selectedFile.name;\r\n\r\n if(fileName.endsWith('csv')) {\r\n fileName = fileName.replace('.csv', '');\r\n }\r\n\r\n this.waiting = true;\r\n\r\n if(this.waiting) {\r\n this.waitingMessage = \"working...\";\r\n this.returnedMessage = \"\";\r\n let placeholder = \"\";\r\n\r\n setTimeout(function(){\r\n placeholder = \"Please be patient, the service is still generating the file...\";\r\n this.waitingMessage = placeholder;\r\n }, 10000);\r\n\r\n }\r\n\r\n const fd = new FormData();\r\n fd.append('file', this.selectedFile, this.selectedFile.name);\r\n\r\n this.http.post(this.url, fd, { headers: headers, responseType: 'blob'})\r\n .subscribe(res => {\r\n\r\n FileSaver.saveAs(res, `${fileName}_Charging_Sessions`);\r\n const momento = moment().format('MMMM Do YYYY, h:mm:ss a');\r\n\r\n // \"res\" = response\r\n // This represents the size of the generated PDF file\r\n if(res.size > 0) {\r\n\r\n this.returnedMessage = `PDF successfully generated on ${momento}`;\r\n } else {\r\n this.returnedMessage = `Failed to successfully generated PDF on ${momento}`;\r\n }\r\n\r\n this.waiting = false;\r\n\r\n if(!this.waiting) {\r\n this.waitingMessage = \"\";\r\n }\r\n\r\n },\r\n error => { // Comes down here in the event of an error (Which happens with Hospice report)\r\n console.error();\r\n const momento = moment().format('MMMM Do YYYY, h:mm:ss a');\r\n\r\n this.returnedMessage = `Failed to successfully generated PDF on ${momento}`;\r\n this.waitingMessage = \"\";\r\n\r\n }\r\n );\r\n\r\n } // End of onUpload method\r\n\r\n} // End of CsvInvoiceComponent class\r\n","\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Step 2: Generate PDF report from the selected CSV file:\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{this.waitingMessage}}\r\n\r\n {{this.returnedMessage}}\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TariffLocationsService } from '../../services/tariff-locations-service/tariff-locations-service.service';\r\n\r\n@Component({\r\n selector: 'app-tariff-locations',\r\n templateUrl: './tariff-locations.component.html',\r\n styleUrls: ['./tariff-locations.component.scss']\r\n})\r\nexport class TariffLocationsComponent implements OnInit {\r\n\r\n private tariffLocations: any;\r\n private newLocation: any;\r\n private previousRowColour: string;\r\n\r\n constructor(public tariffLocationData: TariffLocationsService) { }\r\n\r\n public ngOnInit(): void {\r\n this.generateTariffLocationsTable();\r\n }\r\n\r\n public generateTariffLocationsTable(): void {\r\n this.tariffLocationData.getAllTariffLocations().subscribe((data: any) => {\r\n \r\n this.tariffLocations = data[data.length-1].tariff;\r\n\r\n let table = document.getElementById('tariff-locations-table') as any;\r\n\r\n for(let i = 0; i < this.tariffLocations.length; i++) {\r\n let temp = table.insertRow().insertCell();\r\n temp.innerText = this.tariffLocations[i].title;\r\n temp.contentEditable = true;\r\n }\r\n let table2 = document.getElementById('tariff-locations-table-details') as any;\r\n \r\n for(let i = 0; i < this.tariffLocations.length; i++) {\r\n \r\n let row = table2.insertRow()\r\n if(i % 2 === 0) {\r\n row.style.backgroundColor = '#eee';\r\n } else {\r\n row.style.backgroundColor = '#d9d9d9';\r\n }\r\n\r\n row.style.color = '#222'\r\n\r\n for(let k = 0; k < this.tariffLocations[i].locations.length; k++) {\r\n let cell = row.insertCell();\r\n cell.contentEditable = true;\r\n cell.innerText = this.tariffLocations[i].locations[k];\r\n cell.style.margin = '3px';\r\n cell.style.padding = '5px';\r\n cell.style.cursor = 'cell';\r\n }\r\n \r\n let addLocations = document.getElementsByClassName('add_locations') as any;\r\n for(let loc = 0; loc < addLocations.length; loc++) {\r\n addLocations[loc].style.float = 'right';\r\n addLocations[loc].style.marginRight = '12px';\r\n }\r\n let removePre = row.insertCell();\r\n let plusIcon = document.createElement('i');\r\n plusIcon.className = ('fa fa-minus');\r\n removePre.appendChild(plusIcon);\r\n plusIcon.style.marginRight = '8px';\r\n plusIcon.style.float = 'right';\r\n plusIcon.style.cursor = 'pointer';\r\n }\r\n\r\n let menuCells = document.getElementById('tariff-locations-table').querySelectorAll('td') as any;\r\n\r\n for(let i = 0; i < menuCells.length; i++) {\r\n\r\n menuCells[i].style.color = '#333';\r\n if(i % 2 === 0) {\r\n menuCells[i].style.backgroundColor = '#eee';\r\n } else {\r\n menuCells[i].style.backgroundColor = '#dedede';\r\n }\r\n menuCells[i].style.padding = \"5px\";\r\n }\r\n\r\n });\r\n }\r\n\r\n public addLocation(e: any): void {\r\n e.path[1].querySelectorAll('td')[e.path[1].querySelectorAll('td').length-1].querySelector('i').remove();\r\n e.path[1].querySelectorAll('td')[e.path[1].querySelectorAll('td').length-1].contentEditable = true;\r\n let positionToAddLocation = e.path[0].closest('tr'); \r\n this.newLocation = positionToAddLocation.insertCell();\r\n this.newLocation.contentEditable = true;\r\n this.newLocation.style.minWidth = '69px';\r\n\r\n let plusIcon = document.createElement('i');\r\n plusIcon.className = ('fa fa-minus');\r\n plusIcon.id = ('minus');\r\n e.path[1].querySelectorAll('td')[e.path[1].querySelectorAll('td').length-1].appendChild(plusIcon);\r\n plusIcon.style.marginRight = '8px';\r\n plusIcon.style.float = 'right';\r\n plusIcon.style.cursor = 'pointer';\r\n }\r\n\r\n public highlightRowLocations(e: any): void {\r\n if(e.path[0].attributes[0] !== undefined && e.path[0].attributes[0].textContent === 'fa fa-minus') {\r\n let rowCells = e.path[2].querySelectorAll('td').length - 2;\r\n for(let i = 0; i < e.path[2].querySelectorAll('td').length; i++) {\r\n if(i === rowCells) {\r\n e.path[2].querySelectorAll('td')[i].remove();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let highlightedRow = e.path[1];\r\n\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n this.previousRowColour = highlightedRow.style.backgroundColor;\r\n }\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n highlightedRow.style.backgroundColor = 'rgb(255, 255, 146)';\r\n } else {\r\n highlightedRow.style.backgroundColor = this.previousRowColour;\r\n }\r\n }\r\n\r\n public highlightRowHeaders(e: any): void {\r\n let highlightedRow = e.path[0];\r\n\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n this.previousRowColour = highlightedRow.style.backgroundColor;\r\n }\r\n if(highlightedRow.style.backgroundColor !== 'rgb(255, 255, 146)') {\r\n highlightedRow.style.backgroundColor = 'rgb(255, 255, 146)';\r\n } else {\r\n highlightedRow.style.backgroundColor = this.previousRowColour;\r\n }\r\n }\r\n\r\n public saveNewLocations(): void {\r\n const tariffLocationsArr = [];\r\n const tableLocationsHeaders = document.getElementById('tariff-locations-table').querySelectorAll('td') as any;\r\n const tableLocationsRows = document.getElementById('tariff-locations-table-details').querySelectorAll('tr') as any;\r\n \r\n for(let i = 0; i < tableLocationsRows.length; i++) {\r\n let tr = []\r\n for(let j = 0; j < tableLocationsRows[i].childNodes.length; j++) {\r\n\r\n if(tableLocationsRows[i].childNodes[j].innerText !== \"\") {\r\n\r\n tr.push( (tableLocationsRows[i].childNodes[j].innerText) )\r\n }\r\n }\r\n tariffLocationsArr.push( \r\n { \r\n 'Title': tableLocationsHeaders[i].textContent, \r\n 'Locations': tr\r\n }\r\n );\r\n }\r\n this.tariffLocationData.postTariffLocations(tariffLocationsArr);\r\n }\r\n\r\n \r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{this.tariffLocationData.responseMessage}}\r\n \r\n \r\n
\r\n\r\n","import { Action } from '@ngrx/store';\r\n\r\nexport function simpleReducer(state: string = 'false', action: Action) {\r\n\r\n switch (action.type) {\r\n case 'FALSE' :\r\n return state = 'false';\r\n case 'TRUE' :\r\n return state = 'true';\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { RfidAddressesService } from 'src/app/services/rfid-addresses-service/rfid-addresses.service';\r\n\r\n@Component({\r\n selector: 'app-rfid-addresses',\r\n templateUrl: './rfid-addresses.component.html',\r\n styleUrls: ['./rfid-addresses.component.scss']\r\n})\r\nexport class RfidAddressesComponent implements OnInit {\r\n\r\n constructor(\r\n public rfidAddressesService: RfidAddressesService\r\n ) { }\r\n\r\n ngOnInit(): void {}\r\n\r\n getRfidAddressesPDF() {\r\n this.rfidAddressesService.getRfidAddressesPdf();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n Generate addresses for key fob postage ->\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n {{this.rfidAddressesService.returnedMessage}}\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TariffsService {\r\n\r\n url:string = \"https://www.easygo-dev.com:8081/v1\"; // for production in digitalocean TODO change url\r\n\r\n savedConfirm: string;\r\n timestamp: Date;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getAllTariffs() {\r\n try {\r\n return this.http.get(`${this.url}/tariffs`);\r\n } catch (error) {\r\n console.error(console.error());\r\n return EMPTY;\r\n }\r\n }\r\n\r\n public postTariffs(tariffObject: any) {\r\n try {\r\n const headers = { 'Content-Type': 'application/json'};\r\n let body = `{\"tariffs\":${JSON.stringify(tariffObject)}}`;\r\n\r\n const req = this.http.post(`${this.url}/postTariffs`, body, {'headers': headers});\r\n req.subscribe(data => {\r\n this.timestamp = new Date();\r\n this.savedConfirm = data + ' at ' + this.timestamp;\r\n });\r\n\r\n } catch(error) {\r\n console.error(error);\r\n return EMPTY;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { CouponService } from 'src/app/services/coupon-service/coupon.service';\r\n\r\n@Component({\r\n selector: 'app-coupon-interface',\r\n templateUrl: './coupon-interface.component.html',\r\n styleUrls: ['./coupon-interface.component.scss']\r\n})\r\nexport class CouponInterfaceComponent implements OnInit {\r\n\r\n coupons: any;\r\n couponSelected : boolean = false;\r\n selectedCoupon:number = 0;\r\n\r\n showCouponsMessage: boolean = false;\r\n numberOfCoupons:string = '';\r\n\r\n couponForm = new FormGroup({\r\n couponTypeId: new FormControl(''),\r\n numberOfCoupons: new FormControl('')\r\n\r\n });\r\n\r\n constructor(public couponService: CouponService) { }\r\n\r\n ngOnInit() {\r\n let selectedCoupon;\r\n this.couponService.getCouponTypes().toPromise()\r\n .then(response => {\r\n this.coupons = response\r\n return this.createCouponHtml(this.coupons);\r\n }).then(e => {\r\n e.onclick = (el: any) => {\r\n let bgColour = el.target.parentElement.style.backgroundColor;\r\n if(bgColour !== 'white') {\r\n bgColour = 'white';\r\n }\r\n if(bgColour == '#ff8282') {\r\n el.target.parentElement.style.backgroundColor = 'white';\r\n }\r\n selectedCoupon = el.target.parentElement.children[0].textContent;\r\n if(selectedCoupon.length > 10) {\r\n selectedCoupon = '';\r\n }\r\n this.selectedCoupon = selectedCoupon\r\n\r\n let selectedCouponsContainer = document.createElement('span') as any;\r\n selectedCouponsContainer.id = 'number';\r\n selectedCouponsContainer.textContent = (this.selectedCoupon);\r\n if(!this.couponSelected) { \r\n document.getElementById('idContainer').appendChild(selectedCouponsContainer);\r\n } else {\r\n document.getElementById('idContainer').removeChild(document.getElementById('number'));\r\n document.getElementById('idContainer').appendChild(selectedCouponsContainer);\r\n }\r\n this.couponSelected = true;\r\n }\r\n \r\n });\r\n }\r\n\r\n createCoupon(e): Object {\r\n let couponQuantity = e.target.parentElement.parentElement.children[0][0].value as number;\r\n if(e.target.parentElement.parentElement.children[0].children[2].children[1] === undefined) {\r\n let warningMessage = document.createElement('div');\r\n warningMessage.id = 'warningMessage';\r\n warningMessage.style.marginTop = '.4rem';\r\n warningMessage.append('Please select a coupon');\r\n if(!document.getElementById('warningMessage')) {\r\n document.getElementsByClassName('formContainer')[0].appendChild(warningMessage);\r\n }\r\n return;\r\n }\r\n if(document.getElementById('warningMessage') && e.target.parentElement.parentElement.children[0].children[2].children[1]) {\r\n document.getElementById('warningMessage').textContent = '';\r\n }\r\n let couponId = e.target.parentElement.parentElement.children[0].children[2].children[1].textContent as number;\r\n\r\n this.showCouponsMessage = true;\r\n this.numberOfCoupons = `The amount of ${couponQuantity}`;\r\n let postValues = {\r\n CouponType: {\r\n Id : couponId\r\n },\r\n NumberOfCoupons: couponQuantity,\r\n UserEmail: null,\r\n UserExternalCode: null,\r\n UserId: null\r\n }\r\n let temp = this.couponService.postCouponsInstructions(postValues);\r\n if(temp === undefined) {\r\n this.numberOfCoupons = '';\r\n this.couponService.returnedMessage = 'Failed to generate coupons, error found';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.color = 'hsl(360deg 94% 48%)';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.backgroundColor = 'white';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.paddingTop = '.2rem';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.paddingBottom = '.2rem';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.marginLeft = '3.5rem';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.marginRight = '3.5rem';\r\n (document.getElementsByClassName('returnedMessage')[0] as any).style.borderRadius = '.4rem';\r\n\r\n\r\n let table = document.getElementById('couponsTable');\r\n let selectedNumber = document.getElementById('number').textContent;\r\n\r\n let tableRows = table.querySelectorAll('tr');\r\n\r\n for(let i = 1; i < tableRows.length; i++) {\r\n if(tableRows[i].children[0].textContent === selectedNumber) {\r\n let validFrom = tableRows[i].children[3].textContent as any;\r\n let validTo = tableRows[i].children[4].textContent as any;\r\n let currentDate = moment().format('DD-MM-YYYY');\r\n\r\n if(validFrom < currentDate || validTo < currentDate) {\r\n this.couponService.returnedMessage = `Failed to generate coupons, error found. Coupon with id ${selectedNumber} date is invalid.`;\r\n if(validFrom > currentDate) {\r\n this.couponService.returnedMessage += ` Coupon is not valid until ${validFrom}`; \r\n }\r\n if(validTo < currentDate) {\r\n this.couponService.returnedMessage += ` Coupon validation date expired at ${validTo}`; \r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n } \r\n\r\n }\r\n\r\n\r\n createCouponHtml(coupons: any) {\r\n let couponsTable = document.getElementById('couponsTable');\r\n\r\n for(let coupon of coupons) {\r\n\r\n let couponContainer = document.createElement('tr');\r\n couponContainer.style.backgroundColor = 'white';\r\n couponContainer.style.cursor = 'pointer';\r\n\r\n couponContainer.onmouseenter = () => {\r\n if(couponContainer.style.backgroundColor !== 'white') {\r\n couponContainer.style.backgroundColor = 'rbg(255, 180, 180)';\r\n } else {\r\n couponContainer.style.backgroundColor = '#ffffda';\r\n }\r\n }\r\n couponContainer.onmouseleave = () => {\r\n couponContainer.style.backgroundColor = 'white';\r\n }\r\n\r\n let couponTypeId = document.createElement('td');\r\n couponTypeId.style.padding = '.1rem';\r\n couponTypeId.style.paddingLeft = '.3rem';\r\n couponTypeId.style.paddingRight = '.3rem';\r\n\r\n couponTypeId.append(coupon.CouponTypeId);\r\n\r\n let couponTitle = document.createElement('td');\r\n couponTitle.style.padding = '.1rem';\r\n couponTitle.style.paddingLeft = '.3rem';\r\n couponTitle.style.paddingRight = '.3rem';\r\n couponTitle.append(coupon.Title);\r\n\r\n let couponDescription = document.createElement('td');\r\n couponDescription.style.padding = '.1rem';\r\n couponDescription.style.paddingLeft = '.3rem';\r\n couponDescription.style.paddingRight = '.3rem';\r\n couponDescription.append(coupon.Description);\r\n\r\n let couponValidFrom = document.createElement('td');\r\n couponValidFrom.style.padding = '.1rem';\r\n couponValidFrom.style.paddingLeft = '.3rem';\r\n couponValidFrom.style.paddingRight = '.3rem';\r\n const momentValidFrom = moment(coupon.ValidFrom).format('DD-MM-YYYY');\r\n couponValidFrom.append(momentValidFrom);\r\n\r\n let couponValidTo = document.createElement('td');\r\n couponValidTo.style.padding = '.1rem';\r\n couponValidTo.style.paddingLeft = '.3rem';\r\n couponValidTo.style.paddingRight = '.3rem';\r\n \r\n const momentValidTo = moment(coupon.ValidTo).format('DD-MM-YYYY');\r\n couponValidTo.append(momentValidTo);\r\n\r\n let couponUsageFlavourId = document.createElement('td');\r\n couponUsageFlavourId.style.padding = '.1rem';\r\n couponUsageFlavourId.style.paddingLeft = '.3rem';\r\n couponUsageFlavourId.style.paddingRight = '.3rem';\r\n couponUsageFlavourId.style.textAlign = 'center';\r\n\r\n couponUsageFlavourId.append(coupon.CouponUsageFlavourId.Id);\r\n\r\n let couponMerchantCompanyName = document.createElement('td');\r\n couponMerchantCompanyName.style.padding = '.1rem';\r\n couponMerchantCompanyName.style.paddingLeft = '.3rem';\r\n couponMerchantCompanyName.style.paddingRight = '.3rem';\r\n couponMerchantCompanyName.style.textAlign = 'center';\r\n couponMerchantCompanyName.append(coupon.MerchantCompanyName);\r\n\r\n couponContainer.appendChild(couponTypeId);\r\n couponContainer.appendChild(couponTitle);\r\n couponContainer.appendChild(couponDescription);\r\n couponContainer.appendChild(couponValidFrom);\r\n couponContainer.appendChild(couponValidTo);\r\n couponContainer.appendChild(couponUsageFlavourId)\r\n couponContainer.appendChild(couponMerchantCompanyName);\r\n\r\n couponsTable.appendChild(couponContainer);\r\n\r\n couponContainer.onclick = (e: any) => {\r\n let row = e.target.parentElement;\r\n\r\n row.style.backgroundColor = '#ff8282';\r\n };\r\n }\r\n return couponsTable;\r\n }\r\n\r\n \r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Please select a coupon type:\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n
IdTitleDescriptionValid FromValid ToUsage Flavour IdMerchant Company Name
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Id:  \r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{this.numberOfCoupons}} {{this.couponService.returnedMessage}}\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-api-invoice-site',\r\n templateUrl: './api-invoice-site.component.html',\r\n styleUrls: ['./api-invoice-site.component.scss']\r\n})\r\nexport class ApiInvoiceSiteComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

api-invoice-site works!

\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ChargersMapNewComponent } from './components/chargers-map-new/chargers-map-new.component';\r\nimport { GHeatMapComponent } from './components/g-heat-map/g-heat-map.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { SiteDetailsComponent } from './components/site-details/site-details.component';\r\nimport { AuthguardGuard as AuthGuard } from './guards/authguard.guard';\r\nimport { ApiInvoiceComponent } from './components/api-invoice/api-invoice.component';\r\nimport { ApiInvoiceSiteComponent } from './components/api-invoice-site/api-invoice-site.component';\r\nimport { CsvInvoiceComponent } from './components/csv-invoice/csv-invoice.component';\r\nimport { TariffsComponent } from './components/tariffs/tariffs.component';\r\nimport { TariffLocationsComponent } from './components/tariff-locations/tariff-locations.component';\r\nimport { TariffTestRecordsComponent } from './components/tariff-test-records/tariff-test-records.component';\r\nimport { RfidAddressesComponent } from './components/rfid-addresses/rfid-addresses.component';\r\nimport { ChargingSessionsCsvGenComponent } from './components/charging-sessions-csv-gen/charging-sessions-csv-gen.component';\r\nimport { CompaniesCrudComponent } from './components/companies-crud/companies-crud.component';\r\nimport { CouponInterfaceComponent } from './components/coupon-interface/coupon-interface.component';\r\nimport { RegistrationFormComponent } from './components/registration-form/registration-form.component';\r\n\r\nexport const routes: Routes = [\r\n\r\n { path: 'api-invoice', component: ApiInvoiceComponent, \r\n canActivate: [AuthGuard],\r\n data: { \r\n role: 'ROLE_MODERATOR' \r\n }\r\n },\r\n { path: 'api-invoice-site', component: ApiInvoiceSiteComponent, \r\n canActivate: [AuthGuard],\r\n data: { \r\n role: 'ROLE_MODERATOR' \r\n }\r\n },\r\n { path: 'csv-invoice', component: CsvInvoiceComponent, \r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n },\r\n { path: 'tariffs', component: TariffsComponent, \r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n \r\n },\r\n { path: 'tariff-locations', component: TariffLocationsComponent, \r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n \r\n },\r\n { path: 'tariff-test-records', component: TariffTestRecordsComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n \r\n },\r\n {\r\n path: 'charger-map', component: ChargersMapNewComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_SALES'\r\n }\r\n },\r\n { path: 'fleetcompanies', component: CompaniesCrudComponent, \r\n canActivate: [AuthGuard], \r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n },\r\n { path: 'coupons', component: CouponInterfaceComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n },\r\n { path: 'company-users-reg', component: RegistrationFormComponent, \r\n canActivate: [AuthGuard], \r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n }\r\n },\r\n { path: 'chargingSessionsCsvGen', component: ChargingSessionsCsvGenComponent, \r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n } \r\n },\r\n {\r\n path: 'heatmapnew', component: GHeatMapComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_SALES'\r\n }\r\n },\r\n {\r\n path: 'chart', component: SiteDetailsComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_SALES'\r\n }\r\n },\r\n { path: 'rfid-addresses', component: RfidAddressesComponent, \r\n canActivate: [AuthGuard],\r\n data: {\r\n role: 'ROLE_MODERATOR'\r\n } \r\n },\r\n { path: 'login', component: LoginComponent },\r\n { path: '', redirectTo: 'login', pathMatch: 'full' }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, FormControl } from \"@angular/forms\";\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { HeatmapService } from 'src/app/services/heatmap-service/heatmap.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-map-sidebar',\r\n templateUrl: './map-sidebar.component.html',\r\n styleUrls: ['./map-sidebar.component.scss']\r\n})\r\nexport class MapSidebarComponent implements OnInit {\r\n dateForm: FormGroup;\r\n private zipFiles: File = null;\r\n isLoading = false;\r\n chargeTypes: any = ['AC', 'DC'];\r\n months: any = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n years: any = [];\r\n sessionTypes: any = ['EasyGo', 'ESB'];\r\n easyGoTypes: any = ['Public', 'Private'];\r\n chargeTypeControl: FormControl = new FormControl(['AC'], []);\r\n sessionControl: FormControl = new FormControl(['EasyGo'], []);\r\n monthControl: FormControl = new FormControl([], []);\r\n yearControl: FormControl = new FormControl('', []);\r\n easyGoControl: FormControl = new FormControl(['Public', 'Private'], []);\r\n @Output() onDateApply = new EventEmitter();\r\n energyAverage: number;\r\n chargingAverage: any;\r\n timeAverage: number;\r\n _selectedLocation: any;\r\n @Input() set selectedLocation(value) {\r\n this._selectedLocation = value;\r\n if(this.sessionControl.value.includes(\"EasyGo\")) {\r\n this.applyFilter();\r\n }\r\n\r\n }\r\n\r\n countsData: any = {\r\n energyConsumption: 0,\r\n chargingTime: 0,\r\n noOfChargers: 0,\r\n noOfSessions: 0\r\n };\r\n\r\n chargePointOwnerType: any = ['EasyGo', 'Client', 'Multiple'];\r\n chargePointOwnerTypeControl: any = new FormControl(['EasyGo']);\r\n\r\n constructor(private fbBuilder: FormBuilder,\r\n public heatmap: HeatmapService, private _snackBar: MatSnackBar,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n const today = new Date();\r\n const month = today.getMonth();\r\n const year = today.getFullYear();\r\n this.monthControl.setValue([this.months[month - 1]]);\r\n this.yearControl.setValue(year);\r\n this.generateYears(2020);\r\n const heatMapFilters = localStorage.getItem(\"heatmap_filters\");\r\n if(heatMapFilters) {\r\n const parsedFilter = JSON.parse(heatMapFilters);\r\n this.yearControl.setValue(parsedFilter.year);\r\n this.monthControl.setValue(parsedFilter.fullMonths);\r\n this.chargeTypeControl.setValue(parsedFilter.chargeType);\r\n this.sessionControl.setValue(parsedFilter.network);\r\n this.easyGoControl.setValue(parsedFilter.accessType);\r\n \r\n }\r\n \r\n this.getMarkerData();\r\n }\r\n\r\n generateYears(startYear) {\r\n const year = Number(new Date().getFullYear());\r\n for (let i = startYear; i <= year; i++) {\r\n this.years.push(i);\r\n }\r\n }\r\n\r\n public onFileChange(event): void {\r\n const target: DataTransfer = (event.target);\r\n if (target.files.length !== 1) throw new Error('Cannot upload multiple files!');\r\n this.zipFiles = event.target.files[0];\r\n this.isLoading = true;\r\n this.heatmap.postZipFile(this.zipFiles).subscribe((res) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"File uploaded successfully\", \"Close\");\r\n }, (error) => {\r\n this.isLoading = false;\r\n this.openSnackBar(\"Something went wrong!\", \"Close\")\r\n })\r\n }\r\n\r\n\r\n // getFormattedMonthAndYear(fieldName) {\r\n // return `${this.dateForm.value[fieldName].toLocaleString('en', { month: 'short' })} ${this.dateForm.value[fieldName].getFullYear()}`\r\n // }\r\n\r\n generateData() {\r\n const months = this.monthControl.value.map((m) => `${m.slice(0, 3)}`);\r\n\r\n const data: any = {\r\n chargeType: this.chargeTypeControl.value,\r\n year: this.yearControl.value,\r\n months: months,\r\n accessType: this.easyGoControl.value,\r\n network: this.sessionControl.value,\r\n fullMonths: this.monthControl.value,\r\n chargePointOwnerType: this.chargePointOwnerTypeControl.value\r\n }\r\n\r\n if (this._selectedLocation) {\r\n data.locationId = this._selectedLocation.friendlyCode;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n reset() {\r\n this.chargeTypeControl.setValue([]);\r\n this.yearControl.setValue(\"\");\r\n this.sessionControl.setValue([]);\r\n this.monthControl.setValue([]);\r\n this._selectedLocation = null;\r\n this.onDateApply.emit(null);\r\n }\r\n\r\n getMarkerData() {\r\n const data = this.generateData();\r\n localStorage.setItem(\"heatmap_filters\", JSON.stringify(data));\r\n this.onDateApply.emit(data);\r\n }\r\n\r\n applyFilter() {\r\n\r\n const data = this.generateData();\r\n\r\n if (this._selectedLocation) {\r\n this.getCounts(data)\r\n }\r\n // this.onDateApply.emit(data);\r\n\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action);\r\n }\r\n\r\n generateChartData(data): any {\r\n return {\r\n labels: Object.keys(data),\r\n dataset: Object.values(data)\r\n }\r\n }\r\n\r\n getCounts(data) {\r\n this.isLoading = true;\r\n\r\n\r\n this.heatmap.getCounts(data).subscribe((res) => {\r\n this.isLoading = false;\r\n this.countsData = res;\r\n }, (error) => {\r\n this.openSnackBar(\"Something Went Wrong!\", \"Close\");\r\n this.isLoading = false;\r\n \r\n })\r\n }\r\n\r\n getChartData(data) {\r\n this.isLoading = true;\r\n this.energyAverage = 0;\r\n this.timeAverage = 0;\r\n this.chargingAverage = 0;\r\n this.heatmap.getChartData(data).subscribe((res: any) => {\r\n this.isLoading = false;\r\n if (res.energyConsumption) {\r\n const { labels, dataset } = this.generateChartData(res.energyConsumption);\r\n this.energyAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n }\r\n\r\n if (res.noOfChargingSessions) {\r\n const { labels, dataset } = this.generateChartData(res.noOfChargingSessions);\r\n this.chargingAverage = dataset.reduce((a, b) => a + b, 0);\r\n }\r\n\r\n if (res.chargingTime) {\r\n const { labels, dataset } = this.generateChartData(res.chargingTime);\r\n this.timeAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n }\r\n }, (error) => {\r\n this.openSnackBar(\"Something Went Wrong!\", \"Close\");\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n navigateToChart() {\r\n const data = this.generateData();\r\n\r\n if (this._selectedLocation) {\r\n this.router.navigate(['/chart'], {\r\n queryParams: {\r\n locationId: data.locationId,\r\n year: data.year,\r\n months: this.monthControl.value.toString(),\r\n chargeType: data.chargeType,\r\n locationName: this._selectedLocation.friendlyName\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
Apply Filter to Map
\r\n
\r\n \r\n
\r\n \r\n Select Network\r\n \r\n \r\n {{ sessionControl.value ? sessionControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ sessionControl.value.length - 1 }}\r\n {{ sessionControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{\r\n sessionType\r\n }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select\r\n \r\n \r\n {{ easyGoControl.value ? easyGoControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ easyGoControl.value.length - 1 }}\r\n {{ easyGoControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ easyGoType }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Charge Point Owner Type\r\n \r\n \r\n {{ chargePointOwnerTypeControl.value ? chargePointOwnerTypeControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargePointOwnerTypeControl.value.length - 1 }}\r\n {{ chargePointOwnerTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ cpot }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Charge Type\r\n \r\n \r\n {{ chargeTypeControl.value ? chargeTypeControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargeTypeControl.value.length - 1 }}\r\n {{ chargeTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ chargeType }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Year\r\n \r\n {{\r\n year\r\n }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Months\r\n \r\n \r\n {{ monthControl.value ? monthControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ monthControl.value.length - 1 }}\r\n {{ monthControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{\r\n month\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
{{ _selectedLocation.friendlyName }}
\r\n\r\n
\r\n
    \r\n
  • \r\n Energy Consumption:\r\n {{ countsData.energyConsumption | number: \"0.0-2\" }}\r\n
  • \r\n
  • \r\n Charge Sessions:\r\n {{ countsData.noOfSessions | number: \"0.0-2\" }}\r\n
  • \r\n
  • \r\n Time Charging:\r\n {{ countsData.chargingTime | number: \"0.0-2\" }}\r\n
  • \r\n
  • \r\n No. of Chargers:\r\n {{ countsData.noOfChargers | number: \"0.0-2\" }}\r\n
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
    \r\n
  • \r\n Number of Sessions:\r\n {{ _selectedLocation.noOfSessions | number: \"0.0-2\" }}\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\n// import {\r\n// Chart, registerables\r\n// } from 'chart.js';\r\n// import { ChartConfiguration } from 'chart.js';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { HeatmapService } from 'src/app/services/heatmap-service/heatmap.service';\r\n//Chart.register(...registerables);\r\n\r\n@Component({\r\n selector: 'app-site-details',\r\n templateUrl: './site-details.component.html',\r\n styleUrls: ['./site-details.component.scss']\r\n})\r\nexport class SiteDetailsComponent implements OnInit {\r\n @ViewChild(\"line\") lineChart: ElementRef;\r\n @ViewChild(\"bar\") barChart: ElementRef;\r\n @ViewChild(\"barTime\") barTimeChart: ElementRef;\r\n\r\n chargeTypes: any = ['AC', 'DC'];\r\n months: any = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n years: any = [];\r\n chargeTypeControl: FormControl = new FormControl('', []);\r\n monthControl: FormControl = new FormControl([], []);\r\n yearControl: FormControl = new FormControl('', []);\r\n locationControl: FormControl = new FormControl('', []);\r\n isLoading: boolean;\r\n locations: any[] = [];\r\n countsData: any = {\r\n energyConsumption: 0,\r\n chargingTime: 0,\r\n noOfChargers: 0\r\n };\r\n chartData: any = {};\r\n //energyChart: Chart;\r\n //timeChart: Chart;\r\n //chargingChart: Chart;\r\n energyAverage: number;\r\n timeAverage: number;\r\n chargingAverage: number;\r\n filteredOptions: Observable;\r\n myControl = new FormControl('');\r\n\r\n constructor(private heatMapService: HeatmapService,\r\n private _snackBar: MatSnackBar,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.generateYears(2020);\r\n this.getLocations();\r\n\r\n this.activatedRoute.queryParams.subscribe((params: Params) => {\r\n if (params.months) {\r\n const monthsArr = params.months.split(',');\r\n this.monthControl.setValue(monthsArr);\r\n }\r\n\r\n if (params.year) {\r\n this.yearControl.setValue(Number(params.year));\r\n }\r\n\r\n if (params.locationId) {\r\n this.myControl.setValue({friendlyCode: params.locationId, friendlyName: params.locationName});\r\n }\r\n\r\n if (params.chargeType) {\r\n if (Array.isArray(params.chargeType)) {\r\n this.chargeTypeControl.setValue(params.chargeType);\r\n } else {\r\n this.chargeTypeControl.setValue(params.chargeType.split(','));\r\n }\r\n }\r\n\r\n if (this.myControl.value && this.chargeTypeControl.value && this.yearControl.value && this.monthControl.value) {\r\n this.applyFilter();\r\n }\r\n });\r\n\r\n }\r\n\r\n private _filter(value: any): string[] {\r\n\r\n const filterValue = (typeof value === \"object\") ? value.friendlyName.toLowerCase() : value.toLowerCase();\r\n\r\n if (!value || value == '') {\r\n return this.locations;\r\n }\r\n\r\n return this.locations.filter(option => option.friendlyName.toLowerCase().includes(filterValue));\r\n }\r\n\r\n goBack() {\r\n this.router.navigate(['/heatmapnew']);\r\n }\r\n\r\n displayFn(location) {\r\n return location.friendlyName;\r\n }\r\n\r\n getLocations() {\r\n this.isLoading = true;\r\n this.heatMapService.getAllLocations().subscribe((res: any) => {\r\n this.isLoading = false;\r\n if (res.locations.length) {\r\n this.locations = res.locations;\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filter(value || '')),\r\n );\r\n }\r\n\r\n }, (error) => {\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n generateFilterParam() {\r\n const months = this.monthControl.value.map((m) => m.slice(0, 3));\r\n const data = {\r\n chargeType: this.chargeTypeControl.value,\r\n locationId: this.myControl.value.friendlyCode,\r\n months: months,\r\n year: this.yearControl.value,\r\n \"accessType\": [\"Public\", \"Private\"]\r\n }\r\n return data;\r\n }\r\n\r\n getCounts(data) {\r\n this.isLoading = true;\r\n\r\n\r\n this.heatMapService.getCounts(data).subscribe((res) => {\r\n this.isLoading = false;\r\n this.countsData = res;\r\n }, (error) => {\r\n this.openSnackBar(\"Something Went Wrong!\", \"Close\");\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n generateChartData(data): any {\r\n return {\r\n labels: Object.keys(data).map((d) => d.slice(0, 3)),\r\n dataset: Object.values(data)\r\n }\r\n }\r\n\r\n getChartData(data) {\r\n this.isLoading = true;\r\n\r\n this.heatMapService.getChartData(data).subscribe((res: any) => {\r\n this.isLoading = false;\r\n this.chartData = res;\r\n if (res.energyConsumption) {\r\n const { labels, dataset } = this.generateChartData(res.energyConsumption);\r\n this.energyAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n //this.energyChart.data.datasets[0].data = dataset;\r\n //this.energyChart.data.labels = labels;\r\n //this.energyChart.update();\r\n // this.energyConsumptionChart(dataset, labels);\r\n }\r\n\r\n if (res.noOfChargingSessions) {\r\n const { labels, dataset } = this.generateChartData(res.noOfChargingSessions);\r\n this.chargingAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n //this.chargingChart.data.datasets[0].data = dataset;\r\n //this.chargingChart.data.labels = labels;\r\n //this.chargingChart.update();\r\n }\r\n\r\n if (res.chargingTime) {\r\n const { labels, dataset } = this.generateChartData(res.chargingTime);\r\n this.timeAverage = dataset.reduce((a, b) => a + b, 0) / dataset.length;\r\n //this.timeChart.data.datasets[0].data = dataset;\r\n //this.timeChart.data.labels = labels;\r\n //this.timeChart.update();\r\n }\r\n }, (error) => {\r\n this.openSnackBar(\"Something Went Wrong!\", \"Close\");\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n applyFilter() {\r\n const data = this.generateFilterParam();\r\n this.getCounts(data);\r\n this.getChartData(data);\r\n }\r\n\r\n generateYears(startYear) {\r\n const year = Number(new Date().getFullYear());\r\n for (let i = startYear; i <= year; i++) {\r\n this.years.push(i);\r\n }\r\n }\r\n\r\n openSnackBar(message: string, action: string) {\r\n this._snackBar.open(message, action, {\r\n duration: 5000\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.energyConsumptionChart();\r\n this.chargeSessionsChart();\r\n this.timeChargeChart();\r\n }\r\n\r\n onTabChange(e) {\r\n this.energyConsumptionChart();\r\n this.chargeSessionsChart();\r\n this.timeChargeChart();\r\n }\r\n\r\n energyConsumptionChart(dataset = [], labels = []) {\r\n const ctx = this.lineChart.nativeElement.getContext('2d');\r\n // this.energyChart = new Chart(ctx, {\r\n // type: 'line',\r\n // data: {\r\n // labels: labels,\r\n // datasets: [{\r\n // label: 'Energy Consumption (KW) by Month and Year',\r\n // data: dataset,\r\n // backgroundColor: [\r\n // '#3C5F3D',\r\n\r\n // ],\r\n // borderColor: [\r\n // '#4AA545',\r\n // ],\r\n // borderWidth: 1,\r\n // fill: true,\r\n // }]\r\n // },\r\n // options: {\r\n // scales: {\r\n // y: {\r\n // beginAtZero: true,\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // },\r\n // x: {\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // }\r\n // },\r\n // plugins: {\r\n // legend: {\r\n // labels: {\r\n // color: '#fff'\r\n // }\r\n // }\r\n // },\r\n // responsive: false\r\n // }\r\n // });\r\n }\r\n\r\n timeChargeChart(dataset = [], labels = []) {\r\n const ctx = this.barTimeChart.nativeElement.getContext('2d');\r\n // this.timeChart = new Chart(ctx, {\r\n // type: 'bar',\r\n // data: {\r\n // labels: labels,\r\n // datasets: [{\r\n // label: 'Time Charging (Hrs) by Month and Year',\r\n // data: dataset,\r\n // backgroundColor: [\r\n // '#3C5F3D',\r\n\r\n // ],\r\n // borderColor: [\r\n // '#4AA545',\r\n // ],\r\n // borderWidth: 1,\r\n // maxBarThickness: 80\r\n // }]\r\n // },\r\n // options: {\r\n // scales: {\r\n // y: {\r\n // beginAtZero: true,\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // },\r\n // x: {\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // },\r\n // },\r\n // plugins: {\r\n // legend: {\r\n // labels: {\r\n // color: '#fff'\r\n // }\r\n // }\r\n // },\r\n // responsive: false\r\n // }\r\n // });\r\n }\r\n\r\n chargeSessionsChart(dataset = [], labels = []) {\r\n const ctx = this.barChart.nativeElement.getContext('2d');\r\n // this.chargingChart = new Chart(ctx, {\r\n // type: 'bar',\r\n // data: {\r\n // labels: labels,\r\n // datasets: [{\r\n // label: 'No. of Charging Sessions by Month and Year',\r\n // data: dataset,\r\n // backgroundColor: [\r\n // '#3C5F3D',\r\n\r\n // ],\r\n // borderColor: [\r\n // '#4AA545',\r\n // ],\r\n // borderWidth: 1,\r\n // maxBarThickness: 80\r\n // }]\r\n // },\r\n // options: {\r\n // scales: {\r\n // y: {\r\n // beginAtZero: true,\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // },\r\n // x: {\r\n // ticks: {\r\n // color: '#fff'\r\n // }\r\n // }\r\n // },\r\n // plugins: {\r\n // legend: {\r\n // labels: {\r\n // color: '#fff'\r\n // }\r\n // }\r\n // },\r\n // responsive: false\r\n // }\r\n // });\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Filters

\r\n
\r\n \r\n Select Filter\r\n \r\n \r\n {{ location.friendlyName }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Charge Type\r\n \r\n \r\n {{ chargeTypeControl.value ? chargeTypeControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ chargeTypeControl.value.length - 1 }}\r\n {{ chargeTypeControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{ chargeType }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Year\r\n \r\n {{\r\n year\r\n }}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Months\r\n \r\n \r\n {{ monthControl.value ? monthControl.value[0] : \"\" }}\r\n 1\"\r\n class=\"example-additional-selection\"\r\n >\r\n (+{{ monthControl.value.length - 1 }}\r\n {{ monthControl.value?.length === 2 ? \"other\" : \"others\" }})\r\n \r\n \r\n {{\r\n month\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthService } from '../services/auth/auth.service';\r\nimport * as _ from 'lodash';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthguardGuard implements CanActivate {\r\n\r\n constructor(private authenticationService: AuthService, private router: Router) {}\r\n\r\n canActivate( \r\n route: ActivatedRouteSnapshot, \r\n state: RouterStateSnapshot): \r\n | Observable\r\n | Promise\r\n | UrlTree\r\n | boolean {\r\n return this.authenticationService.user.roles.includes(route.data.role);\r\n }\r\n\r\n public isUserLoggedIn(): boolean {\r\n if(this.authenticationService.isLoggedIn()) {\r\n\r\n return true;\r\n }\r\n this.router.navigate(['/login']);\r\n // Send notification to user\r\n return false;\r\n }\r\n\r\n \r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}