{"version":3,"sources":["./src/app/services/rss.service.ts","./src/app/components/schedule-timetable/schedule-timetable.component.ts","./src/app/components/schedule-timetable/schedule-timetable.component.html","xmldom (ignored)","./src/app/services/map.service.ts","./src/app/services/trains.service.ts","./src/app/components/main-navigation/main-navigation.component.ts","./src/app/components/main-navigation/main-navigation.component.html","./src/app/components/system-status/system-status.component.ts","./src/app/components/system-status/system-status.component.html","./src/app/services/route.service.ts","./src/environments/environment.ts","./src/app/components/system-wide-message/system-wide-message.component.ts","./src/app/components/system-wide-message/system-wide-message.component.html","./src/app/services/status.service.ts","./src/app/components/embedded-map-single/embedded-map-single.component.ts","./src/app/components/embedded-map-single/embedded-map-single.component.html","./src/app/components/nta/nta.component.ts","./src/app/components/nta/nta.component.html","./src/app/components/map/map.component.ts","./src/app/components/map/map.component.html","./src/app/components/route-status/route-status.component.ts","./src/app/components/route-status/route-status.component.html","./src/app/common/global-variables.ts","./src/app/services/api.service.ts","./src/app/services/alert-overview.service.ts","./src/app/services/schedules.service.ts","./src/app/components/schedule-routes/schedule-routes.component.ts","./src/app/components/schedule-routes/schedule-routes.component.html","./src/app/components/dashboard/dashboard.component.ts","./src/app/components/dashboard/dashboard.component.html","./src/app/components/route-status-button/route-status-button.component.ts","./src/app/components/route-status-button/route-status-button.component.html","./src/app/services/system-wide.service.ts","./src/app/components/route-header/route-header.component.ts","./src/app/components/route-header/route-header.component.html","./src/app/services/schedule.service.ts","./src/app/components/embedded-map-detail/embedded-map-detail.component.ts","./src/app/components/embedded-map-detail/embedded-map-detail.component.html","./src/app/components/transitview/transitview.component.ts","./src/app/components/transitview/transitview.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/trainview/trainview.component.ts","./src/app/components/trainview/trainview.component.html","./src/app/services/trips.service.ts","./src/app/components/route-direction-selector/route-direction-selector.component.ts","./src/app/components/route-direction-selector/route-direction-selector.component.html","./src/app/components/stop-details/stop-details.component.ts","./src/app/components/stop-details/stop-details.component.html","./src/app/components/schedule-route-details/schedule-route-details.component.ts","./src/app/components/schedule-route-details/schedule-route-details.component.html","./src/app/components/stop/stop.component.ts","./src/app/components/stop/stop.component.html","./src/app/services/stops.service.ts","./src/app/components/schedules/schedules.component.ts","./src/app/components/schedules/schedules.component.html","./src/app/components/four-oh-four/four-oh-four.component.ts","./src/app/components/four-oh-four/four-oh-four.component.html","./src/app/components/trip-detail/trip-detail.component.ts","./src/app/components/trip-detail/trip-detail.component.html","./src/app/components/schedule-route-today/schedule-route-today.component.ts","./src/app/components/schedule-route-today/schedule-route-today.component.html","./src/app/services/omni-search.service.ts","./src/app/services/route-directions.service.ts","./src/app/components/embedded-map/embedded-map.component.ts","./src/app/components/embedded-map/embedded-map.component.html","./src/app/services/kml.service.ts","./src/app/components/main-footer/main-footer.component.ts","./src/app/components/main-footer/main-footer.component.html","./src/app/components/trip-schedules/trip-schedules.component.ts","./src/app/components/trip-schedules/trip-schedules.component.html","./src/app/components/breadcrumb/breadcrumb.component.ts","./src/app/components/breadcrumb/breadcrumb.component.html","./src/app/services/message.service.ts","./src/app/components/route-selection/route-selection.component.ts","./src/app/components/route-selection/route-selection.component.html","./src/app/components/omni-search/omni-search.component.ts","./src/app/components/omni-search/omni-search.component.html","./src/app/components/embedded-map-trip/embedded-map-trip.component.ts","./src/app/components/embedded-map-trip/embedded-map-trip.component.html","./src/app/services/markers.service.ts","./src/app/app-routing.module.ts","./src/app/components/train-search/train-search.component.ts","./src/app/components/train-search/train-search.component.html","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { timeout, catchError, map, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\nimport { Observable, of } from 'rxjs';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RssService {\r\n private rssUrl = 'https://www3.septa.org/api/rss/';\r\n private data: any = [];\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n /** GET trains from api */\r\n get (): Observable {\r\n\r\n this.data = this.http.jsonp(this.rssUrl, 'callback')\r\n .pipe(\r\n timeout(GlobalVariables.timeout),\r\n map ((array: any) => array = this.transform(array)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n private transform(reponse: any): any{\r\n return reponse['channel']['item'];\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from \"@angular/router\"\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { ScheduleService } from '../../services/schedule.service';\r\nimport {NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';\r\nimport { GlobalVariables } from \"../../common/global-variables\";\r\n\r\n@Component({\r\n selector: 'app-schedule-timetable',\r\n templateUrl: './schedule-timetable.component.html',\r\n styleUrls: ['./schedule-timetable.component.css']\r\n})\r\nexport class ScheduleTimetableComponent implements OnInit {\r\n\r\n\r\n public route_id: string = \"1\";\r\n public direction_id: string = \"0\";\r\n public selected_date: string = \"Today\";\r\n public selected_service_id: string = \"\";\r\n public selected_special_service: Boolean = false;\r\n public calendar: any;\r\n public route_service: any;\r\n public timetable: any;\r\n public stops: any[];\r\n public first_stop: any = \"\";\r\n\r\n public service_ids: any;\r\n public pdfUrl: string = GlobalVariables.pdfScheduleUrl;\r\n\r\n public formGroup = new FormGroup({});\r\n model: NgbDateStruct;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private scheduleService: ScheduleService) {\r\n this.route_id = this.route.snapshot.paramMap.get('route');\r\n if(this.route.snapshot.paramMap.get('direction')){\r\n this.direction_id = this.route.snapshot.paramMap.get('direction');\r\n }\r\n\r\n if(this.route.snapshot.paramMap.get('date')){\r\n this.selected_date = this.route.snapshot.paramMap.get('date');;\r\n }\r\n else{\r\n this.selected_date = this.scheduleService.get_date();\r\n }\r\n\r\n this.pdfUrl = this.pdfUrl + this.route_id + '.pdf'\r\n }\r\n\r\n ngOnInit(): void {\r\n this.scheduleService.get_serivce().subscribe((data) => {\r\n\r\n this.calendar = data[\"calendar\"];\r\n this.route_service = data[\"route_service\"];\r\n\r\n var valid_service_id = this.route_service[this.route_id];\r\n var active_service_id: any[] = data[\"calendar\"][this.selected_date][\"service_id\"];\r\n this.selected_special_service = data[\"calendar\"][this.selected_date][\"special\"];\r\n\r\n for(const service_id of valid_service_id){\r\n if(active_service_id.includes(service_id)){\r\n\r\n this.selected_service_id = service_id;\r\n\r\n this.scheduleService.get_timetable(this.route_id, service_id, this.direction_id).subscribe((data) => {\r\n this.timetable = data;\r\n\r\n this.stops = data[0];\r\n this.first_stop = data[0][0];\r\n this.timetable = data[1];\r\n });\r\n }\r\n }\r\n });\r\n\r\n \r\n var date = this.selected_date;\r\n\r\n this.formGroup.addControl(\"date-select\", new FormControl({day:Number(date.substr(6,2)), month:Number(date.substr(4,2)), year:Number(date.substr(0,4))})) //nice\r\n this.formGroup.valueChanges.subscribe(val => {\r\n var year = val[\"date-select\"][\"year\"]\r\n var month = val[\"date-select\"][\"month\"]\r\n var day = val[\"date-select\"][\"day\"]\r\n\r\n if(month < 10){\r\n month = \"0\" + String(month);\r\n }\r\n\r\n if(day < 10){\r\n day = \"0\" + String(day);\r\n }\r\n\r\n var selected_date = String(year) + String(month) + String(day);\r\n\r\n this.selected_date = selected_date\r\n\r\n this.router.navigateByUrl('schedule/timetable/' + this.route_id + '/' + this.direction_id + \"/\" + this.selected_date);\r\n\r\n this.get_timetables(selected_date);\r\n });\r\n }\r\n\r\n public get_timetables(date: string){\r\n this.scheduleService.get_serivce().subscribe((data) => {\r\n\r\n this.calendar = data[\"calendar\"];\r\n this.route_service = data[\"route_service\"];\r\n\r\n var valid_service_id = this.route_service[this.route_id];\r\n var active_service_id: any[] = data[\"calendar\"][date][\"service_id\"];\r\n this.selected_special_service = data[\"calendar\"][this.selected_date][\"special\"];\r\n\r\n for(const service_id of valid_service_id){\r\n if(active_service_id.includes(service_id)){\r\n\r\n this.selected_service_id = service_id;\r\n\r\n this.scheduleService.get_timetable(this.route_id, service_id, this.direction_id).subscribe((data) => {\r\n this.timetable = data;\r\n\r\n this.stops = data[0];\r\n this.first_stop = data[0][0];\r\n this.timetable = data[1];\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n public load_timetable(direction){\r\n this.direction_id = direction;\r\n\r\n this.scheduleService.get_timetable(this.route_id, this.selected_service_id, this.direction_id).subscribe((data) => {\r\n this.timetable = data;\r\n\r\n this.stops = data[0];\r\n this.first_stop = data[0][0];\r\n this.timetable = data[1];\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n PDF\r\n
\r\n
\r\n\r\n
\r\n We are operating modified service on this day. Make sure to check our service alerts and advisories for other changes in service.\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Stops{{times[0]}}
{{stop}}{{times[2]}}
\r\n
\r\n
\r\n\r\n","/* (ignored) */","import { Injectable } from '@angular/core';\r\nimport * as L from 'leaflet';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapService {\r\n public map: any;\r\n constructor() { }\r\n\r\n public initMap(): void {\r\n this.map = L.map('map', {\r\n fullscreenControl: true,\r\n fullscreenControlOptions: {\r\n position: 'topleft'\r\n },\r\n center: [39.952333, -75.163916],\r\n zoom: 10\r\n });\r\n\r\n const tiles = L.tileLayer('https://tiles.septa.org/tiles/raster/{z}/{x}/{y}.png',\r\n {\r\n maxZoom: 17,\r\n minZoom: 9,\r\n attribution:\r\n '© OpenMapTiles © OpenStreetMap contributors'\r\n }\r\n );\r\n\r\n tiles.addTo(this.map);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { timeout, catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { Trip } from '../interfaces/trip';\r\nimport { MessageService } from '../services/message.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TrainsService {\r\n\r\n public realtime:boolean = true;\r\n private trainviewUrl = 'https://www3.septa.org/api/TrainView/?callback=jsonp_callback1';\r\n private data: any = [];\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n /** GET trains from api */\r\n get (): Observable {\r\n\r\n this.data = this.http.jsonp(this.trainviewUrl, 'callback')\r\n .pipe(\r\n timeout(GlobalVariables.timeout),\r\n map ((array: any) => array = this.transform(array)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n /* GET heroes whose name contains search term */\r\n searchTrains(term: string): Observable {\r\n if (!term.trim()) {\r\n // if not search term, return empty hero array.\r\n return of([]);\r\n }\r\n return this.http.jsonp(this.trainviewUrl, 'callback')\r\n .pipe(\r\n map ((array: any) => array = this.search(array, term)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n private transform(reponse: any): any{\r\n var transformed: any[] = [];\r\n for(const train of reponse){\r\n const cars = train.consist.split(\",\").length;\r\n var status = train.late == 0 ? 'On-time' : train.late > 0 ? train.late + \" mins late\" : (train.late * -1) + ' mins early';\r\n status = train.late > 998 ? 'Canceled' : status;\r\n transformed.push({\r\n id: train.trainno,\r\n route: train.line,\r\n routeID: this.convertRouteToID(train.line),\r\n block: train.trainno,\r\n mode: 'Regional Rail',\r\n type: train.service,\r\n origin: train.SOURCE,\r\n destination: train.dest,\r\n currentstop: train.currentstop,\r\n nextstop: train.nextstop,\r\n delay: train.late,\r\n status: status,\r\n vehicle: train.consist,\r\n cars: cars != 0 ? cars : 1,\r\n heading: train.heading,\r\n lat: train.lat,\r\n lon: train.lon\r\n });\r\n\r\n }\r\n\r\n return transformed;\r\n }\r\n\r\n private search(reponse: any, term: string): any{\r\n var transformed: any[] = [];\r\n for(const train of reponse){\r\n const cars = train.consist.split(\",\").length;\r\n const status = train.late == 0 ? 'On-time' : train.late > 0 ? train.late + \" mins late\" : train.late + ' mins early';\r\n if(this.searchArray(train, term)){\r\n transformed.push({\r\n id: train.trainno,\r\n route: train.line,\r\n routeID: this.convertRouteToID(train.line),\r\n block: train.trainno,\r\n mode: 'Regional Rail',\r\n type: train.service,\r\n origin: train.SOURCE,\r\n destination: train.dest,\r\n currentstop: train.currentstop,\r\n nextstop: train.nextstop,\r\n delay: train.late,\r\n status: status,\r\n vehicle: train.consist,\r\n cars: cars != 0 ? cars : 1,\r\n heading: train.heading,\r\n lat: train.lat,\r\n lon: train.lon\r\n });\r\n }\r\n }\r\n\r\n return transformed;\r\n }\r\n\r\n private searchArray(array: any, term: string){\r\n for( let i in array) {\r\n if(i == 'trainno' || i == 'line'){\r\n if(array[i].toLowerCase().indexOf(term.toLowerCase()) !== -1){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private convertRouteToID(name: string): string{\r\n const prefixRail = ''\r\n\r\n switch(name){\r\n case 'Airport':\r\n name = prefixRail + 'AIR';\r\n break;\r\n case 'Chestnut Hill East':\r\n name = prefixRail + 'CHE';\r\n break;\r\n case 'Chestnut Hill West':\r\n name = prefixRail + 'CHW';\r\n break;\r\n case 'Cynwyd':\r\n name = prefixRail + 'CYN';\r\n break;\r\n case 'Fox Chase':\r\n name = prefixRail + 'FOX';\r\n break;\r\n case 'Glenside Combined':\r\n name = prefixRail + 'gc';\r\n break;\r\n case 'Lansdale/Doylestown':\r\n name = prefixRail + 'DOY';\r\n break;\r\n case 'Manayunk/Norristown':\r\n name = prefixRail + 'NOR';\r\n break;\r\n case 'Media/Wawa':\r\n name = prefixRail + 'MED';\r\n break;\r\n case 'Paoli/Thorndale':\r\n name = prefixRail + 'PAO';\r\n break;\r\n case 'Trenton':\r\n name = prefixRail + 'TRE';\r\n break;\r\n case 'Warminster':\r\n name = prefixRail + 'WAR';\r\n break;\r\n case 'Wilmington/Newark':\r\n name = prefixRail + 'WIL';\r\n break;\r\n case 'West Trenton':\r\n name = prefixRail + 'WTR';\r\n break;\r\n\r\n }\r\n\r\n console.log(name)\r\n\r\n return name;\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n //Mark relatime as false to display the error message.\r\n this.realtime = false;\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-main-navigation',\r\n templateUrl: './main-navigation.component.html',\r\n styleUrls: ['./main-navigation.component.css']\r\n})\r\nexport class MainNavigationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n We are previewing our new website here.\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { StatusService } from '../../services/status.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-system-status',\r\n templateUrl: './system-status.component.html',\r\n styleUrls: ['./system-status.component.css']\r\n})\r\nexport class SystemStatusComponent implements OnInit {\r\n realtime: boolean = true;\r\n statuses: Route[] = []\r\n routes: Route[] = [];\r\n mode: string = '';\r\n public screen: any;\r\n\r\n constructor(private statusService: StatusService, private routeService: RouteService, private router: Router, private route: ActivatedRoute) {}\r\n\r\n ngOnInit(): void {\r\n this.mode = this.route.snapshot.paramMap.get('mode');\r\n if(!['rail','subway','nhsl','other','trolley','cct'].includes(this.mode)){\r\n this.mode = 'bus';\r\n }\r\n\r\n //this.routes = this.routeService.routes;\r\n this.getRoutes();\r\n\r\n\r\n this.screen = window.innerWidth;\r\n }\r\n\r\n getRoutes(): void {\r\n this.statusService.get()\r\n .subscribe(statuses => {\r\n this.statuses = statuses;\r\n this.realtime = this.statusService.realtime;\r\n });\r\n }\r\n\r\n onDetail(route: Route): void{\r\n this.routeService.detail(route);\r\n this.router.navigate(['/routes/status'])\r\n }\r\n}\r\n","
\r\n
\r\n

System Status

\r\n \r\n \r\n
\r\n
There was an error retrieving the real-time data, please try refreshing.
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
575}\" id=\"nav-subway\" role=\"tabpanel\" aria-labelledby=\"nav-subway-tab\">\r\n \r\n
\r\n \r\n
575}\" id=\"nav-nhsl\" role=\"tabpanel\" aria-labelledby=\"nav-nhsl-tab\">\r\n \r\n
\r\n \r\n
575}\" id=\"nav-cct\" role=\"tabpanel\" aria-labelledby=\"nav-cct-tab\">\r\n
\r\n
\r\n {{ route.name }} \r\n
{{ route.description }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { timeout, catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { MessageService } from '../services/message.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst routesUrl = \"assets/json/routes.json\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteService {\r\n\r\n\r\n private maxCols: number = 5;\r\n\r\n private alertSummaryUrl = 'https://www3.septa.org/api/Alerts/';\r\n //private alertDetailsUrl = 'https://www3.septa.org/hackathon/Alerts/get_alert_data.php?callback=jsonp_callback1';\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n public systemStatus: any = [];\r\n public routes: Route[] = [];\r\n public selected: Route[] = [];\r\n public realtime: boolean = true;\r\n public detailed: any = { id: 'rr_route_apt', name: 'Aiport', mode: 'Regional Rail' };\r\n private data: any = [];\r\n public user = new BehaviorSubject(this.selected);\r\n cast = this.user.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private messageService: MessageService) {\r\n\r\n var stored = JSON.parse(localStorage.getItem(\"selectedRoutes\"));\r\n\r\n if (stored != null) {\r\n this.selected = stored;\r\n }\r\n\r\n this.user.next(this.selected);\r\n var detailed = JSON.parse(localStorage.getItem(\"detailRoute\"));\r\n\r\n if (detailed != null) {\r\n this.detailed = detailed;\r\n }\r\n }\r\n\r\n /** GET routes from api */\r\n get(): Observable {\r\n\r\n this.data = this.http.jsonp(this.alertSummaryUrl, 'callback')\r\n .pipe(\r\n timeout(GlobalVariables.timeout),\r\n map((array: any) => array = this.transform(array)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n this.routes = this.data;\r\n return this.data;\r\n }\r\n\r\n /** GET routes from static file */\r\n getStatic(id: string): Observable {\r\n\r\n this.data = this.http.get(routesUrl)\r\n .pipe(\r\n map((array: any) => array = this.search(array, id)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n this.routes = this.data;\r\n return this.data;\r\n }\r\n \r\n\r\n getAlerts() {\r\n return this.routes;\r\n }\r\n\r\n select(routes: Route[]) {\r\n this.selected = routes;\r\n this.user.next(this.selected);\r\n this.getSelected();\r\n localStorage.setItem(\"selectedRoutes\", JSON.stringify(this.selected));\r\n }\r\n\r\n detail(route: Route) {\r\n this.detailed = route;\r\n localStorage.setItem(\"detailRoute\", JSON.stringify(this.detailed));\r\n }\r\n\r\n private search(response: any, stop: string): any {\r\n var searched: any[] = [];\r\n for (const array of response) {\r\n if (this.searchArray(array, stop)) {\r\n searched.push(array);\r\n }\r\n }\r\n return searched;\r\n }\r\n\r\n private searchArray(array: any, stop: string) {\r\n for (let i in array) {\r\n if (i == 'route') {\r\n if (array[i].toLowerCase() == stop.toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n //Mark relatime as false to display the error message.\r\n this.realtime = false;\r\n\r\n //Load the stored routes.json show no data message.\r\n return this.http.get(routesUrl)\r\n .pipe(\r\n map((array: any) => array = this.transform(array)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n };\r\n }\r\n\r\n private Failure(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n\r\n /** Transform the alert summary api to new structure */\r\n private transform(response: any) {\r\n var transformed: Route[] = [];\r\n for (const d of (response as any)) {\r\n transformed.push({\r\n id: d.route,\r\n legacy: d.route,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: (d.alert != '') ? d.alert : 'There are currently no alerts for this route.',\r\n advisory: (d.advisory != '') ? d.advisory : 'There are currently no advisories for this route.',\r\n detours: d.detour,\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n isdelays: (d.isdelays === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuspended === 'N') ? false : true\r\n });\r\n }\r\n return transformed;\r\n }\r\n\r\n transformDetails(reponse: any) {\r\n\r\n var sequence: number = 0;\r\n var alert: string = '';\r\n var advisory: string = '';\r\n var detours: any[] = [];\r\n\r\n for (const d of (reponse as any)) {\r\n if (d.route_id == d.route_id) {\r\n sequence = d.sequence;\r\n alert = d.message;\r\n advisory = d.advisory_message;\r\n detours.push(d.detour_message);\r\n }\r\n }\r\n }\r\n\r\n transformStatus(routes: any) {\r\n var bi: number = 0;\r\n var ri: number = 0;\r\n\r\n var buses: any = [];\r\n var rail: any = [];\r\n\r\n for (const route of routes) {\r\n if (route.mode = 'Bus') {\r\n buses.push(route);\r\n\r\n if (bi == this.maxCols) {\r\n this.systemStatus[route.mode].push(buses);\r\n buses = [];\r\n bi = 0;\r\n }\r\n\r\n bi++;\r\n }\r\n }\r\n }\r\n\r\n public getSelected(): any {\r\n const selectedObservable = new Observable(observer => {\r\n setTimeout(() => {\r\n observer.next(this.selected);\r\n }, 1000);\r\n });\r\n\r\n return selectedObservable;\r\n }\r\n\r\n public getStaticRoute(id: string): Observable {\r\n\r\n this.data = this.http.get(routesUrl)\r\n .pipe(\r\n map((array: any) => array = this.search(array, id)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n this.routes = this.data;\r\n return this.data;\r\n }\r\n\r\n public getRoute(): any {\r\n const selectedObservable = new Observable(observer => {\r\n setTimeout(() => {\r\n observer.next(this.selected);\r\n }, 1000);\r\n });\r\n\r\n return selectedObservable;\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};\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, OnInit } from '@angular/core';\r\nimport { Route } from '../../interfaces/route';\r\nimport { SystemWideService } from '../../services/system-wide.service';\r\n\r\n@Component({\r\n selector: 'app-system-wide-message',\r\n templateUrl: './system-wide-message.component.html',\r\n styleUrls: ['./system-wide-message.component.css']\r\n})\r\nexport class SystemWideMessageComponent implements OnInit {\r\n public statuses: Route[] = [];\r\n public active: boolean = false;\r\n public hidden: string;\r\n constructor(private systemWideService: SystemWideService) { }\r\n\r\n ngOnInit(): void {\r\n this.getRoute();\r\n this.hidden = localStorage.getItem(\"hide-system-message\");\r\n }\r\n\r\n getRoute(): void {\r\n this.systemWideService.get()\r\n .subscribe(statuses => {\r\n this.statuses = statuses;\r\n console.log(this.statuses[0]);\r\n if(this.statuses[0].alert != \"\"){\r\n this.active = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n onClose(): void {\r\n localStorage.setItem(\"hide-system-message\", \"true\");\r\n this.ngOnInit();\r\n }\r\n\r\n onOpen(): void {\r\n localStorage.setItem(\"hide-system-message\", \"false\");\r\n this.ngOnInit();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { timeout, catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { MessageService } from '../services/message.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst routesUrl = \"assets/json/routes.json\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StatusService {\r\n\r\n public realtime: boolean = true;\r\n\r\n private busMaxCols: number = 5;\r\n private otherMaxCols: number = 2;\r\n\r\n private alertSummaryUrl = 'https://www3.septa.org/api/Alerts/?callback=jsonp_callback1';\r\n private data: any = [];\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n public systemStatus: any = [];\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n /** GET routes from api */\r\n get (): Observable {\r\n\r\n this.data = this.http.jsonp(this.alertSummaryUrl, 'callback')\r\n .pipe(\r\n timeout(GlobalVariables.timeout),\r\n map ((array: any) => array = this.transform(array, true)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n /** Transform the alert summary api to new structure\r\n * I had to do this to make life easier...\r\n * When scaling SS the tab menu for the mode gets messed up\r\n * Since I can only fit 4 items, Subway, NHSL, and CCT get added together as others.\r\n * Also the row/col in bootstrap needed to have an array to build properly in angular.\r\n * Sorry.\r\n * **/\r\n private transform(reponse: any, realtime: boolean): any{\r\n var transformed: any[] = [];\r\n transformed['bus'] = [];\r\n transformed['rail'] = [];\r\n transformed['subway'] = [];\r\n transformed['nhsl'] = [];\r\n transformed['trolley'] = [];\r\n transformed['cct'] = [];\r\n transformed['others'] = [];\r\n var b: any[] = []; //Bus\r\n var r: any[] = []; //Rail\r\n var s: any[] = []; //Subway\r\n var n: any[] = []; //NHSL\r\n var t: any[] = []; //Trolley\r\n var c: any[] = []; //CCT\r\n var o: any[] = []; //Others (Subway + NHSL + CCT)\r\n var bi: number = 1; //Bus index\r\n var ri: number = 1; //Rail index\r\n var si: number = 1; //Subway index\r\n var ni: number = 1; //NHSL index\r\n var ti: number = 1; //Trolley index\r\n var ci: number = 1; //CCT index\r\n var oi: number = 1; //Others (Subway + NHSL + CCT) index\r\n for (const d of (reponse as any)){\r\n if(d.mode == 'Bus'){\r\n b.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(bi === this.busMaxCols){\r\n transformed['bus'].push(b);\r\n b = [];\r\n bi = 1;\r\n }\r\n else{\r\n bi++;\r\n }\r\n }\r\n if(d.mode == 'Regional Rail'){\r\n r.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(ri === this.otherMaxCols){\r\n transformed['rail'].push(r);\r\n r = [];\r\n ri = 1;\r\n }\r\n else{\r\n ri++;\r\n }\r\n }\r\n if(d.mode == 'Market/ Frankford' || d.mode == 'Broad Street Line'){\r\n s.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(si === this.otherMaxCols){\r\n transformed['subway'].push(s);\r\n s = [];\r\n si = 1;\r\n }\r\n else{\r\n si++;\r\n }\r\n }\r\n if(d.mode == 'Norristown High Speed Line'){\r\n n.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(ni === this.otherMaxCols){\r\n transformed['nhsl'].push(n);\r\n n = [];\r\n ni = 1;\r\n }\r\n else{\r\n ni++;\r\n }\r\n }\r\n if(d.mode == 'Market/ Frankford' || d.mode == 'Broad Street Line' || d.mode == 'Norristown High Speed Line' || d.mode == 'CCT' ){\r\n o.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(oi === this.otherMaxCols){\r\n transformed['others'].push(o);\r\n o = [];\r\n oi = 1;\r\n }\r\n else{\r\n oi++;\r\n }\r\n }\r\n if(d.mode == 'Trolley'){\r\n t.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(ti === this.otherMaxCols){\r\n transformed['trolley'].push(t);\r\n t = [];\r\n ti = 1;\r\n }\r\n else{\r\n ti++;\r\n }\r\n }\r\n if(d.mode == 'CCT' ){\r\n c.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: d.sequence,\r\n description: d.description,\r\n alert: d.current_message,\r\n advisory: d.advisory_message,\r\n detours: [],\r\n elevators: d.elevator,\r\n isalert: (d.isalert === 'N') ? false : true,\r\n isadvisory: (d.isadvisory === 'No') ? false : true,\r\n isdetour: (d.isdetour === 'N') ? false : true,\r\n iselevator: (d.iselevator === 'N') ? false : true,\r\n isweather: (d.isSnow === 'N') ? false : true,\r\n issuspended: (d.issuppend === 'N') ? false : true\r\n });\r\n\r\n if(ci === this.otherMaxCols){\r\n transformed['cct'].push(c);\r\n c = [];\r\n ci = 1;\r\n }\r\n else{\r\n ci++;\r\n }\r\n }\r\n }\r\n\r\n if(b.length > 0){\r\n transformed['bus'].push(b);\r\n }\r\n if(r.length > 0){\r\n transformed['rail'].push(r);\r\n }\r\n if(s.length > 0){\r\n transformed['subway'].push(s);\r\n }\r\n if(n.length > 0){\r\n transformed['nhsl'].push(n);\r\n }\r\n if(t.length > 0){\r\n transformed['trolley'].push(t);\r\n }\r\n if(c.length > 0){\r\n transformed['cct'].push(c);\r\n }\r\n if(o.length > 0){\r\n transformed['others'].push(o);\r\n }\r\n\r\n transformed['meta'] = [{ realtime : realtime }];\r\n\r\n return transformed;\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n //Mark relatime as false to display the error message.\r\n this.realtime = false;\r\n\r\n //Load the stored routes.json show no data message.\r\n return this.http.get(routesUrl)\r\n .pipe(\r\n map ((array: any) => array = this.transform(array, false)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.Failure('get', []))\r\n );\r\n };\r\n }\r\n\r\n private Failure (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport * as L from 'leaflet';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { StopsService } from '../../services/stops.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-embedded-map-single',\r\n templateUrl: './embedded-map-single.component.html',\r\n styleUrls: ['./embedded-map-single.component.css']\r\n})\r\nexport class EmbeddedMapSingleComponent implements AfterViewInit {\r\n public map: any;\r\n public current_position: any = null;\r\n\r\n public mode: string = '';\r\n public stop: string = '';\r\n public id: string = '';\r\n public data: any;\r\n\r\n constructor(private route: ActivatedRoute, private stopsService: StopsService) {\r\n this.mode = this.route.snapshot.paramMap.get('mode');\r\n this.stop = this.route.snapshot.paramMap.get('stop');\r\n this.id = this.route.snapshot.paramMap.get('route');\r\n\r\n this.stopsService.get(this.mode, this.id)\r\n .subscribe(data => this.data = data);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.stopsService.get(this.mode, this.id)\r\n .subscribe(data => {this.data = data; this.initMap()})\r\n if(this.map != null){\r\n this.map.off();\r\n this.map.remove();\r\n }\r\n\r\n }\r\n\r\n private initMap(): void {\r\n console.log(this.data);\r\n const lat = this.data[0][\"stop_lat\"];\r\n const lon = this.data[0][\"stop_lon\"];\r\n const name = this.data[0][\"stop_name\"];\r\n\r\n this.map = L.map('map', {\r\n fullscreenControl: true,\r\n fullscreenControlOptions: {\r\n position: 'topleft'\r\n },\r\n center: [lat, lon],\r\n zoom: 13\r\n });\r\n\r\n this.stopsService.get(this.mode, this.id)\r\n .subscribe(data => this.data = data);\r\n\r\n L.marker([lat, lon]).addTo(this.map)\r\n .bindPopup(name)\r\n .openPopup();\r\n\r\n const tiles = L.tileLayer('https://tiles.septa.org/tiles/raster/{z}/{x}/{y}.png',\r\n {\r\n maxZoom: 17,\r\n minZoom: 9,\r\n attribution:\r\n '© OpenMapTiles © OpenStreetMap contributors'\r\n }\r\n );\r\n\r\n tiles.addTo(this.map);\r\n }\r\n}\r\n","
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-nta',\r\n templateUrl: './nta.component.html',\r\n styleUrls: ['./nta.component.css']\r\n})\r\nexport class NtaComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

Next to Arrive

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \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 { AfterViewInit, Component } from '@angular/core';\r\nimport * as L from 'leaflet';\r\nimport 'leaflet.fullscreen/Control.FullScreen';\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { timer } from 'rxjs';\r\nimport { KmlService } from '../../services/kml.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\n\r\n//const timer:any = interval(10000);\r\nconst iconRetinaUrl = 'assets/marker-icon-2x.png';\r\nconst iconUrl = 'assets/marker-icon.png';\r\nconst shadowUrl = 'assets/marker-shadow.png';\r\nconst iconDefault = L.icon({\r\n iconRetinaUrl,\r\n iconUrl,\r\n shadowUrl,\r\n iconSize: [25, 41],\r\n iconAnchor: [12, 41],\r\n popupAnchor: [1, -34],\r\n tooltipAnchor: [16, -28],\r\n shadowSize: [41, 41]\r\n});\r\nL.Marker.prototype.options.icon = iconDefault;\r\n\r\n@Component({\r\n selector: 'app-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.css']\r\n})\r\n\r\nexport class MapComponent implements AfterViewInit {\r\n public map: any;\r\n public current_position: any = null;\r\n private selected: Route[] = [];\r\n private bluedot = '../../../assets/images/map/blue-dot.png';\r\n\r\n private transitRefresh = timer(1000, 5000).subscribe(t => {\r\n for (const route of this.selected){\r\n this.kmlService.get(this.map, route);\r\n this.markersService.fetch(this.map, route);\r\n }\r\n });\r\n\r\n constructor(private routeService: RouteService, private kmlService: KmlService, private markersService: MarkersService, private apiService: ApiService) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initMap();\r\n this.selected = this.routeService.selected;\r\n this.routeService.cast.subscribe(user=> this.checkSelected());\r\n }\r\n\r\n ngOnDestroy(){\r\n this.transitRefresh.unsubscribe();\r\n }\r\n\r\n private initMap(): void {\r\n this.map = L.map('map', {\r\n fullscreenControl: true,\r\n \r\n center: [39.952333, -75.163916],\r\n zoom: 10\r\n });\r\n\r\n //const tiles = L.tileLayer('https://www3.septa.org/api/tiles/{z}-{x}-{y}',\r\n const tiles = L.tileLayer('https://tiles.septa.org/tiles/raster/{z}/{x}/{y}.png',\r\n {\r\n maxZoom: 17,\r\n minZoom: 9,\r\n attribution:\r\n '© OpenMapTiles © OpenStreetMap contributors'\r\n }\r\n );\r\n\r\n tiles.addTo(this.map);\r\n this.map.locate({setView: true, maxZoom: 11});\r\n this.move_location(this.map, this.current_position);\r\n }\r\n\r\n private checkSelected(){\r\n this.markersService.clearMarkers(this.map);\r\n this.kmlService.clear(this.map);\r\n this.transitRefresh.unsubscribe();\r\n\r\n for (const route of this.selected){\r\n this.kmlService.get(this.map, route);\r\n }\r\n\r\n this.transitRefresh = timer(2000, 5000).subscribe(t => {\r\n for (const route of this.selected){\r\n this.markersService.fetch(this.map, route);\r\n }\r\n });\r\n }\r\n\r\n private move_location(map, current_position){\r\n var icon = L.icon( {\r\n iconUrl: this.bluedot,\r\n iconAnchor: [30,25],\r\n } );\r\n\r\n if(typeof(map) != \"undefined\"){\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(function(position) {\r\n var coordinates = new L.LatLng(position.coords.latitude, position.coords.longitude);\r\n if(current_position == null){\r\n current_position = L.marker(coordinates, {icon: icon}).addTo(map);\r\n }\r\n else{\r\n current_position.setLatLng(coordinates);\r\n }\r\n },function(){\r\n //handleLocationError(true, infoWindow, map.getCenter());\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, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\n\r\n@Component({\r\n selector: 'app-route-status',\r\n templateUrl: './route-status.component.html',\r\n styleUrls: ['./route-status.component.css']\r\n})\r\nexport class RouteStatusComponent implements OnInit {\r\n routes: Route[] = [];\r\n private id: string;\r\n public realtime: boolean = true;\r\n detailedRoute: any = {id : ''};\r\n\r\n constructor(private routeService: RouteService, private route: ActivatedRoute) {\r\n this.detailedRoute = this.routeService.detailed;\r\n this.getRoutes();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getRoutes();\r\n this.id = this.route.snapshot.paramMap.get('route');\r\n this.detailedRoute.id = this.routeService.detailed.id\r\n\r\n if(this.id != null){\r\n this.detailedRoute = {id : this.id};\r\n }\r\n else{\r\n this.detailedRoute.id = this.routeService.detailed.id\r\n }\r\n }\r\n\r\n getRoutes(): void {\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.routes = routes;\r\n this.realtime = this.routeService.realtime;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
There was an error retrieving the real-time data, please try refreshing.
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n StatusSuspendedDelays\r\n
\r\n
\r\n

{{ route.name }}

\r\n
\r\n
\r\n
{{ route.description }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Location: {{ detour.location_start }}

\r\n\r\n

Reason: {{ detour.reason }}

\r\n\r\n

Start: {{ detour.start }}

\r\n\r\n

End: {{ detour.end }}

\r\n\r\n

Message:

\r\n

{{ detour.message }}

\r\n
\r\n

There are currently no detours for this route.

\r\n
\r\n
\r\n
\r\n

{{ elevator.message }}

\r\n Updated {{ elevator.updated }} \r\n
\r\n

There are currently no elevators out for this route.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Map\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export class GlobalVariables {\r\n \r\n public static timeout: number = 10000;\r\n public static max_recent_routes = 4;\r\n\r\n public static routesUrl: string = \"assets/json/routes.json\";\r\n public static stopsUrl: string = \"assets/json/stops.json\";\r\n public static stationsUrl: string = \"assets/json/stations.json\";\r\n public static railTripsUrl: string = \"https://www3.septa.org/api/TrainView/\";\r\n public static busTripsUrl: string = \"https://www3.septa.org/api/TransitViewAll/\";\r\n\r\n public static pdfScheduleUrl: string = \"https://s3.amazonaws.com/schedules.septa.org/current/\";\r\n public static scheduledPdfUrl: string = \"https://s3.amazonaws.com/schedules.septa.org/scheduled/pdf-schedule.json\";\r\n\r\n public static busArrivalsUrl: string = \"https://www3.septa.org/hackathon/BusSchedules/?req1=\";\r\n public static calendarUrl = \"https://s3.us-east-1.amazonaws.com/flat-api.septa.org/prod/v2/schedules/calendar/combined_calendar.json\";\r\n public static serviceidsUrl = \"https://s3.us-east-1.amazonaws.com/flat-api.septa.org/prod/v2/schedules/calendar/combined_service_ids.json\";\r\n\r\n public static routeStopsUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/v2/stops/\";\r\n\r\n public static tripScheduleUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/v2/schedules/trips/\";\r\n public static tripScheduleExtension = \"schedule.json\";\r\n\r\n public static timetablesUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/v2/schedules/timetables\";\r\n public static timetablesExtension = \"timetable.json\";\r\n\r\n public static stopScheduleUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/v2/schedules/stops/\";\r\n public static stopScheduleExtension = \"schedule.json\";\r\n public static rssUrl: string = 'https://www3.septa.org/api/rss/';\r\n\r\n public static railRoutes: string[] = Array(\"AIR\",\"CHE\",\"CHW\",\"LAN\",\"MED\",\"FOX\",\"NOR\",\"PAO\",\"CYN\",\"TRE\",\"WAR\",\"WIL\",\"WTR\",\"GC\");\r\n\r\n public static earlyStatus: string = \"min early\";\r\n public static onTimeStatus: string = \"On-time\";\r\n public static lateStatus: string = \"min late\";\r\n public static canceledStatus: string = \"Canceled\";\r\n public static untrackedStatus: string = \"Untracked\";\r\n public static suspendedStatus: string = \"Suspended\";\r\n\r\n public static adaAlertTrue: string = \"Alert Icon - Currently active\";\r\n public static adaAlertFalse: string = \"Alert Icon - Currenttly inactive\";\r\n public static adaAdvisoryTrue: string = \"Advisory Icon - Currently active\";\r\n public static adaAdvisoryFalse: string = \"Advisory Icon - Currenttly inactive\";\r\n public static adaDetourTrue: string = \"Detour Icon - Currently active\";\r\n public static adaDetourFalse: string = \"Detour Icon - Currently inactive\";\r\n public static adaElevatorTrue: string = \"Elevator Icon - Currenttly active\";\r\n public static adaElevatorFalse: string = \"Elevator Icon - Currenttly inactive\";\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, throwError, interval } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport * as L from 'leaflet';\r\nimport { Route } from '../interfaces/route';\r\nimport { element } from 'protractor';\r\n\r\n\r\nconst alertSummaryUrl: string = 'https://www3.septa.org/api/Alerts/?callback=jsonp_callback';\r\nconst alertDetailsUrl: string = 'https://www3.septa.org/api/Alerts/get_alert_data.php';\r\nconst trainViewUrl: string = 'https://www3.septa.org/api/TrainView/';\r\nconst transitViewUrl: string = 'https://www3.septa.org/api/TransitViewAll/';\r\n\r\nconst busRed = '../../../assets/images/map/bus/bus-red.png';\r\nconst busYellow = '../../../assets/images/map/bus/bus-yellow.png';\r\nconst busBlue = '../../../assets/images/map/bus/bus-blue.png';\r\n\r\nconst railRed = '../../../assets/images/map/rail/rail-blue.png';\r\nconst railBlue = '../../../assets/images/map/rail/rail-blue.png';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n data: any[] = [];\r\n transitMarkers: any = [];\r\n constructor(private http: HttpClient) {}\r\n\r\n getAlertSummary(){\r\n return this.http.jsonp(alertSummaryUrl, 'callback');\r\n }\r\n\r\n getAlertDetails(){\r\n return this.http.jsonp(alertDetailsUrl, 'callback');\r\n }\r\n\r\n getTrainLocations(): Observable {\r\n return this.http.jsonp(trainViewUrl, 'callback')\r\n .pipe(\r\n tap(product => console.log('fetched products')),\r\n catchError(this.handleError('getProducts', []))\r\n );\r\n }\r\n\r\n getTrainView(map: L.map, routes: Route[]) {\r\n //Clear markers, in future need to move instead of remove.\r\n this.clearMarkers(map);\r\n return this.http.jsonp(trainViewUrl, 'callback').subscribe((res: any) => {\r\n for (const data of res) {\r\n for(const selected of routes){\r\n if(selected.name == data.line.replace('/', ' ')){\r\n const lat = data.lat;\r\n const lon = data.lon;\r\n const pop = '' +\r\n '
Route: ' + selected.name + '
' +\r\n '
Train: ' + data.trainno + '
' +\r\n '
Consist: ' + data.consist + '
' +\r\n '
Next Stop: ' + data.nextstop + '
' +\r\n '
Destination: ' + data.dest + '
' +\r\n '
Delay: ' + data.late + '
';\r\n const marker = L.marker([lat, lon], {icon: this.createIcon(data, selected)}).addTo(map);\r\n this.transitMarkers.push(marker);\r\n marker.bindPopup(pop);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getTranistView(map: L.map, routes: Route[]) {\r\n //Clear markers, in future need to move instead of remove.\r\n this.clearMarkers(map);\r\n\r\n return this.http.jsonp(transitViewUrl, 'callback').subscribe((res: any) => {\r\n for (const route of res.routes) {\r\n for(const route_id of Object.keys(route)){\r\n for(const selected of routes){\r\n if(selected.name == route_id){\r\n for (const data of route[route_id]) {\r\n const lat = data.lat;\r\n const lon = data.lng;\r\n\r\n const pop = '' +\r\n '
Route: ' + route_id + '
' +\r\n '
Block: ' + data.BlockID + '
' +\r\n '
Trip: ' + data.trip + '
' +\r\n '
Vehicle: ' + data.VehicleID + '
' +\r\n '
Direction: ' + data.Direction + '
' +\r\n '
Destination: ' + data.destination + '
' +\r\n '
Offset: ' + data.Offset + '
' +\r\n '
Delay: ' + data.late + '
';\r\n\r\n const marker = L.marker([lat, lon], {icon: this.createIcon(data, selected)}).addTo(map);\r\n this.transitMarkers.push(marker);\r\n marker.bindPopup(pop);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private createIcon(data: any, route: any){\r\n\r\n var iconUrl ='';\r\n\t\tvar angle = data.heading + 180;\r\n\t\tvar circleArrow = '';\r\n\r\n var iconColor ='';\r\n\r\n\t\tvar iconOld;\r\n\t\tif((data.Direction == 'EastBound')||(data.Direction == 'NorthBound')){\r\n\t\t\ticonColor = '00539F'; //blue\r\n\t\t\ticonOld = busBlue;\r\n\t\t}else if((data.Direction == 'WestBound')||(data.Direction == 'SouthBound')){\r\n\t\t\ticonColor = 'EA0029'; //red\r\n\t\t\ticonOld = busRed;\r\n\t\t}else{\r\n\t\t\ticonColor = 'F6891F'; //orange\r\n\t\t\ticonOld = busYellow;\r\n\t\t}\r\n\r\n\t\tif(route.mode == \"Bus\"){\r\n\t\t\ticonUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' ';\r\n }\r\n else if(route.mode == \"Trolley\"){\r\n\t\t\ticonUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' \t \t \t \t ';\r\n }\r\n else if(route.mode == \"Regional Rail\"){\r\n switch ( route.name )\r\n {\r\n case 'Warminster':\r\n iconColor = \"F7AF42\" ;\r\n break;\r\n case 'Cynwyd':\r\n iconColor = \"6F549E\";\r\n break;\r\n case 'West Trenton':\r\n iconColor = \"5D5EBC\";\r\n break;\r\n case 'Fox Chase':\r\n iconColor = \"FF823D\";\r\n break;\r\n case 'Lansdale Doylestown':\r\n iconColor = \"775B49\";\r\n break;\r\n case 'Chestnut Hill West':\r\n iconColor = \"00B4B2\";\r\n break;\r\n case 'Chestnut Hill East':\r\n iconColor = \"94763C\";\r\n break;\r\n case 'Media Elwyn':\r\n iconColor = \"007CC8\";\r\n break;\r\n case 'Manayunk Norristown':\r\n iconColor = \"EE4C69\";\r\n break;\r\n case 'Wilmington Newark':\r\n iconColor = \"8AD16B\";\r\n break;\r\n case 'Trenton':\r\n iconColor =\"F683C9\";\r\n break;\r\n case 'Paoli Thorndale':\r\n iconColor = \"20825C\";\r\n break;\r\n case 'Airport':\r\n iconColor = \"91456C\";\r\n break;\r\n default:\r\n iconColor = \"00539F\";\r\n }\r\n iconUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' ';\r\n }\r\n\r\n\t\tvar icon = L.icon( {\r\n iconUrl: iconUrl,\r\n iconAnchor: [20,23],\r\n } );\r\n\r\n return icon;\r\n }\r\n\r\n private clearMarkers(map: L.map){\r\n if (this.transitMarkers){\r\n for (var i = 0; i < this.transitMarkers.length; i++){\r\n if (this.transitMarkers[i] != undefined) {\r\n map.removeLayer(this.transitMarkers[i]);\r\n }\r\n }\r\n this.transitMarkers.length = 0;\r\n }\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { timeout, catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { MessageService } from '../services/message.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertOverviewService {\r\n\r\n public realtime:boolean = true;\r\n\r\n private alertSummaryUrl = 'https://www3.septa.org/api/Alerts/?callback=jsonp_callback1';\r\n private data: any = [];\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n public systemStatus: any = [];\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n /** GET routes from api */\r\n get (): Observable {\r\n\r\n this.data = this.http.jsonp(this.alertSummaryUrl, 'callback')\r\n .pipe(\r\n timeout(GlobalVariables.timeout),\r\n map ((array: any) => array = this.transform(array)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n /** Transform the alert summary api to new structure\r\n * I had to do this to make life easier...\r\n * When scaling SS the tab menu for the mode gets messed up\r\n * Since I can only fit 4 items, Subway, NHSL, and CCT get added together as others.\r\n * Also the row/col in bootstrap needed to have an array to build properly in angular.\r\n * Sorry.\r\n * **/\r\n private transform(reponse: any): any{\r\n var transformed: any[] = [];\r\n var bus : any = { \"name\": \"Bus\", \"url\": \"bus\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var rail : any = { \"name\": \"Regional Rail\", \"url\": \"rail\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var mfl : any = { \"name\": \"Market Frankford Line\", \"url\": \"subway\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var bsl : any = { \"name\": \"Broad Street Line\", \"url\": \"subway\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var nhsl : any = { \"name\": \"Norristown High Speed Line\", \"url\": \"nhsl\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var trolley : any = { \"name\": \"Trolley\", \"url\": \"trolley\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n var cct : any = { \"name\": \"CCT\", \"url\": \"cct\", \"issuspended\": 0, \"isstrike\": 0, \"ismodifiedservice\": 0, \"isdelays\": 0, \"isdiversion\": 0, \"isdetouralert\": 0, \"isalert\": 0, \"isadvisory\": 0};\r\n transformed['bus'] = bus;\r\n transformed['rail'] = rail;\r\n transformed['mfl'] = mfl;\r\n transformed['bsl'] = bsl;\r\n transformed['nhsl'] = nhsl;\r\n transformed['trolley'] = trolley;\r\n transformed['cct'] = cct;\r\n\r\n for (const d of (reponse as any)){\r\n var mode: string = \"\";\r\n\r\n\r\n switch(d.mode) {\r\n case 'Bus':\r\n mode = \"bus\";\r\n break;\r\n case 'Regional Rail':\r\n mode = \"rail\";\r\n break;\r\n case 'Trolley':\r\n mode = \"trolley\";\r\n break;\r\n case 'Market/ Frankford':\r\n mode = \"mfl\";\r\n break;\r\n case 'Broad Street Line':\r\n mode = \"bsl\";\r\n break;\r\n case 'Norristown High Speed Line':\r\n mode = \"nhsl\";\r\n break;\r\n case 'CCT':\r\n mode = \"cct\";\r\n break;\r\n default:\r\n mode = \"\";\r\n break;\r\n }\r\n\r\n if(mode != \"\"){\r\n transformed[mode][\"issuspended\"] = (d.issuspended === 'N') ? transformed[mode][\"issuspended\"] : transformed[mode][\"issuspended\"] + 1;\r\n transformed[mode][\"isstrike\"] = (d.isstrike === 'N') ? transformed[mode][\"isstrike\"] : transformed[mode][\"isstrike\"] + 1;\r\n transformed[mode][\"ismodifiedservice\"] = (d.ismodifiedservice === 'N') ? transformed[mode][\"ismodifiedservice\"] : transformed[mode][\"ismodifiedservice\"] + 1;\r\n transformed[mode][\"isdelays\"] = (d.isdelays === 'N') ? transformed[mode][\"isdelays\"] : transformed[mode][\"isdelays\"] + 1;\r\n transformed[mode][\"isdiversion\"] = (d.isdiversion === 'N') ? transformed[mode][\"isdiversion\"] : transformed[mode][\"isdiversion\"] + 1;\r\n transformed[mode][\"isdetouralert\"] = (d.isdetouralert === 'N') ? transformed[mode][\"isdetouralert\"] : transformed[mode][\"isdetouralert\"] + 1;\r\n transformed[mode][\"isalert\"] = (d.isalert === 'N') ? transformed[mode][\"isalert\"] : transformed[mode][\"isalert\"] + 1;\r\n transformed[mode][\"isadvisory\"] = (d.isadvisory === 'No') ? transformed[mode][\"isadvisory\"] : transformed[mode][\"isadvisory\"] + 1;\r\n }\r\n }\r\n\r\n var results: any[] = [];\r\n\r\n for (const i in transformed) {\r\n var s: string = \"\";\r\n var c: number = 0;\r\n var b: string = \"\";\r\n\r\n if(transformed[i][\"issuspended\"] > 0){\r\n s = \"Suspensions\";\r\n c = transformed[i][\"issuspended\"];\r\n b = \"badge-danger\";\r\n }\r\n else if(transformed[i][\"isstrike\"] > 0){\r\n s = \"Strike\";\r\n c = transformed[i][\"isstrike\"];\r\n b = \"badge-danger\";\r\n }\r\n else if(transformed[i][\"ismodifiedservice\"] > 0){\r\n s = \"Modified Service\";\r\n c = transformed[i][\"ismodifiedservice\"];\r\n b = \"badge-primary\";\r\n }\r\n else if(transformed[i][\"isdelays\"] > 0){\r\n s = \"Delays\";\r\n c = transformed[i][\"isdelays\"];\r\n b = \"badge-danger\";\r\n }\r\n else if(transformed[i][\"isdiversion\"] > 0){\r\n s = \"Diversion\";\r\n c = transformed[i][\"isdiversion\"];\r\n b = \"badge-warning\";\r\n }\r\n else if(transformed[i][\"isdetouralert\"] > 0){\r\n s = \"Detour\";\r\n c = transformed[i][\"isdetouralert\"];\r\n b = \"badge-warning\";\r\n\r\n }\r\n else if(transformed[i][\"isalert\"] > 0){\r\n s = \"Alert\";\r\n c = transformed[i][\"isalert\"];\r\n b = \"badge-danger\";\r\n }\r\n else if(transformed[i][\"isadvisory\"] != 0){\r\n s = \"Advisory\";\r\n c = transformed[i][\"isadvisory\"];\r\n b = \"badge-warning\";\r\n\r\n }\r\n else{\r\n s = \"Normal\";\r\n c = 0;\r\n b = \"badge-success\";\r\n }\r\n\r\n results.push({ \"mode\": transformed[i][\"name\"], \"url\": transformed[i][\"url\"], \"status\": s, \"count\": c, \"class\": b});\r\n }\r\n return results;\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n //Mark relatime as false to display the error message.\r\n this.realtime = false;\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { catchError, map, mergeMap, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\nimport { Route } from '../interfaces/route';\r\nimport { Trip } from '../interfaces/trip';\r\n\r\nconst calendarUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/schedules/calendar\";\r\nconst calendarExtension = \"calendar.json\";\r\nconst calendarDatesExtension = \"calendar_dates.json\";\r\n\r\nconst serviceidsUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/schedules/calendar\";\r\nconst serviceidsExtension = \"service_ids.json\";\r\n\r\n\r\nconst timetablesUrl = \"https://s3.amazonaws.com/flat-api.septa.org/prod/schedules/timetables\";\r\nconst timetablesExtension = \"timetable.json\";\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SchedulesService {\r\n public selectedTrip: any;\r\n public selectedRoute: any;\r\n private trainsScheduleUrl = 'https://www3.septa.org/api/TrainView/schedule.php?train=';\r\n private data: any = [];\r\n\r\n public calendar: any[];\r\n public calendar_dates: any[];\r\n public route_service_ids: any[] = [];\r\n\r\n public timetables: any[];\r\n\r\n public special_schedule: boolean = false;\r\n public service_ids: any[];\r\n\r\n public calendar_service_id: any[] = [];\r\n public calendar_date_service_id: any[] = [];\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) {\r\n\r\n //var data = this.get_current_service_id();\r\n\r\n //console.log(data);\r\n }\r\n\r\n /** GET schedule from api */\r\n get (block: string): Observable {\r\n this.data = this.http.jsonp(this.trainsScheduleUrl + block, 'callback')\r\n .pipe(\r\n map ((array: any) => array = this.transform(array)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n public get_current_service_id(route: string, direction: string = \"0\"){\r\n\r\n const bus_calendar = this.http.get(calendarUrl + \"/\" + \"bus\" + \"/\" + calendarExtension);\r\n const bus_calendar_dates = this.http.get(calendarUrl + \"/\" + \"bus\" + \"/\" + calendarDatesExtension);\r\n const rail_calendar = this.http.get(calendarUrl + \"/\" + \"rail\" + \"/\" + calendarExtension);\r\n const rail_calendar_dates = this.http.get(calendarUrl + \"/\" + \"rail\" + \"/\" + calendarDatesExtension);\r\n const bus_service = this.http.get(serviceidsUrl + \"/\" + \"bus\" + \"/\" + serviceidsExtension);\r\n const rail_service = this.http.get(serviceidsUrl + \"/\" + \"rail\" + \"/\" + serviceidsExtension);\r\n\r\n var data = forkJoin([bus_calendar, bus_calendar_dates, rail_calendar, rail_calendar_dates, bus_service, rail_service]).subscribe( result => {\r\n var bus_calendar_service_ids = this.format_calendar(result[0]);\r\n var bus_calendar_dates_service_ids = this.format_calendar_dates(result[1]);\r\n var rail_calendar_service_ids = this.format_calendar(result[2]);\r\n var rail_calendar_dates_service_ids = this.format_calendar_dates(result[3]);\r\n var bus_valid_service_ids = this.format_valid_service_ids(result[4]);\r\n var rail_valid_service_ids = this.format_valid_service_ids(result[5]);\r\n\r\n if(bus_calendar_dates_service_ids.length > 0){\r\n bus_calendar_service_ids = bus_calendar_dates_service_ids;\r\n }\r\n\r\n if(rail_calendar_dates_service_ids.length > 0){\r\n rail_calendar_service_ids = rail_calendar_dates_service_ids;\r\n }\r\n\r\n var service_ids = [ ...bus_calendar_service_ids, ...rail_calendar_service_ids ]\r\n var valid_service_ids = [ ...bus_valid_service_ids, ...rail_valid_service_ids ]\r\n\r\n this.service_ids = service_ids;\r\n\r\n for(const service_id of service_ids){\r\n\r\n for(const valid_service_id of valid_service_ids){\r\n if(valid_service_id.service_id == service_id && valid_service_id.route_id == route){\r\n this.get_timetable(route, \"0\", service_id).subscribe();\r\n }\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n return service_ids\r\n });\r\n\r\n return data;\r\n }\r\n\r\n private transform(reponse: any): any {\r\n var transformed: any[] = [];\r\n for (const stop of reponse) {\r\n transformed.push({\r\n id: stop.station,\r\n stop: stop.station,\r\n track: stop.track_change == '' ? stop.track : stop.track_change, //stop.track_change\r\n isTrackChange: stop.track_change == '' ? false : true,\r\n scheduled: stop.sched_tm,\r\n estimated: stop.est_tm,\r\n actual: stop.act_tm\r\n });\r\n }\r\n\r\n return transformed;\r\n }\r\n\r\n public fileExists(url: string): Observable {\r\n return this.http.get(url).pipe(map(() => true), catchError(() => of(false)));\r\n }\r\n\r\n // Get timetable for route and direction\r\n public get_timetables(route_id: string, direction_id: string, calendar: any[]): Observable {\r\n\r\n return data;\r\n\r\n this.timetables = []\r\n\r\n for (const service_id of this.service_ids) {\r\n var url = timetablesUrl + \"/\" + service_id + \"/\" + route_id + \"/\" + direction_id + \"/\" + timetablesExtension;\r\n\r\n for (const valid_service of this.route_service_ids){\r\n if(valid_service.route_id == route_id && valid_service.service_id == service_id){\r\n var data = this.http.get(url).pipe(\r\n map((array: any) => array = this.format_timetables(array)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n }\r\n }\r\n\r\n return data\r\n }\r\n\r\n // Get the calendar for given mode (rail/bus)\r\n public get_timetable(route_id: string, direction_id: string, service_id: string): Observable {\r\n\r\n var url = timetablesUrl + \"/\" + service_id + \"/\" + route_id + \"/\" + direction_id + \"/\" + timetablesExtension;\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map((array: any) => array = this.format_timetables(array)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n \r\n }\r\n\r\n // Get the calendar for given mode (rail/bus)\r\n public get_calendar(mode: string): Observable {\r\n\r\n var url = calendarUrl + \"/\" + mode + \"/\" + calendarDatesExtension;\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map((array: any) => array = this.format_calendar_dates(array)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n // Get the calendar_dates for given mode (rail/bus)\r\n public get_calendar_dates(mode: string): Observable {\r\n\r\n var url = calendarUrl + \"/\" + mode + \"/\" + calendarDatesExtension;\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map((array: any) => array = this.format_calendar_dates(array)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n // Get the service_ids for all routes for given mode (rail/bus)\r\n public get_route_service_ids(mode: string): Observable {\r\n\r\n var url = serviceidsUrl + \"/\" + mode + \"/\" + serviceidsExtension;\r\n\r\n console.log(url);\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map((array: any) => array = this.format_route_service_ids(array)),\r\n tap(_ => this.log('fetched route service ids')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n private format_calendar(response: any, requested_date: string = \"\"): any {\r\n this.calendar = response;\r\n\r\n // If date is blank use today's date.\r\n let date: Date = new Date();\r\n\r\n var weekday = [];\r\n weekday[0] = \"sunday\";\r\n weekday[1] = \"monday\";\r\n weekday[2] = \"tuesday\";\r\n weekday[3] = \"wednesday\";\r\n weekday[4] = \"thursday\";\r\n weekday[5] = \"friday\";\r\n weekday[6] = \"saturday\";\r\n\r\n if (requested_date == \"wqdwq\") {\r\n date.setDate(27)\r\n date.setMonth(0o5)\r\n date.setFullYear(2019)\r\n }\r\n\r\n var service_date = date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + (date.getDate() + 1)).slice(-2);\r\n\r\n var service_ids: any[] = [];\r\n\r\n for (const dates of response) {\r\n if (dates.start_date <= service_date && dates.end_date >= service_date && dates[weekday[date.getDay()]] == 1) {\r\n service_ids.push(dates.service_id)\r\n }\r\n }\r\n\r\n this.calendar_service_id = service_ids;\r\n\r\n return service_ids;\r\n }\r\n\r\n private format_route_service_ids(response: any): any {\r\n var service_ids: any[] = this.route_service_ids;\r\n\r\n for (const dates of response) {\r\n service_ids.push(dates)\r\n }\r\n\r\n this.route_service_ids = service_ids;\r\n\r\n return service_ids;\r\n }\r\n\r\n private format_valid_service_ids(response: any): any {\r\n var service_ids: any[] = this.route_service_ids;\r\n\r\n for (const dates of response) {\r\n service_ids.push(dates)\r\n }\r\n\r\n this.route_service_ids = service_ids;\r\n\r\n return service_ids;\r\n }\r\n\r\n private format_timetables(response: any): any {\r\n\r\n var stops: any[] = []; \r\n\r\n for (let country of Object.keys(response)) {\r\n var capital = response[country];\r\n stops[country] = capital;\r\n }\r\n\r\n console.log(stops);\r\n\r\n return stops;\r\n }\r\n\r\n private format_calendar_dates(response: any, requested_date: string = \"\"): any {\r\n\r\n this.calendar_dates = response;\r\n\r\n // If date is blank use today's date.\r\n let date: Date = new Date();\r\n\r\n if (requested_date == \"wqdwq\") {\r\n date.setDate(27)\r\n date.setMonth(0o5)\r\n date.setFullYear(2019)\r\n }\r\n\r\n var service_date = date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + (date.getDate() + 1)).slice(-2);\r\n\r\n var service_ids: any[] = [];\r\n\r\n for (const dates of response) {\r\n if (dates.start_date == service_date) {\r\n service_ids.push(dates.service_id)\r\n }\r\n }\r\n\r\n if (service_ids.length > 0) {\r\n this.special_schedule = true;\r\n }\r\n\r\n this.calendar_date_service_id = service_ids;\r\n\r\n return service_ids;\r\n }\r\n\r\n public get_service_ids(mode: string): Observable {\r\n\r\n var url = calendarUrl + \"/\" + \"/\" + calendarExtension;\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map((array: any) => array = this.format_calendar(array, mode)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { StatusService } from '../../services/status.service';\r\nimport { RouteService } from '../../services/route.service';\r\n\r\nconst recent_routes_max_length = 2;\r\n\r\n@Component({\r\n selector: 'app-schedule-routes',\r\n templateUrl: './schedule-routes.component.html',\r\n styleUrls: ['./schedule-routes.component.css']\r\n})\r\nexport class ScheduleRoutesComponent implements OnInit {\r\n public realtime: boolean = true;\r\n public statuses: Route[] = []\r\n public routes: Route[] = [];\r\n public all_routes: Route[] = [];\r\n public mode: string = '';\r\n\r\n public selected_route: string;\r\n public screen: any;\r\n\r\n public recent_routes: any = [];\r\n public recent_routes_status: any = [];\r\n constructor(private statusService: StatusService, private routeService: RouteService, private route: ActivatedRoute) {\r\n var recent_routes = localStorage.getItem(\"recent_routes\");\r\n\r\n if (recent_routes != null) {\r\n\r\n if (Array.isArray(JSON.parse(recent_routes)) === true) {\r\n this.recent_routes = JSON.parse(recent_routes);\r\n }\r\n else {\r\n this.recent_routes.push(recent_routes)\r\n }\r\n\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.all_routes = routes;\r\n });\r\n }\r\n\r\n this.routeService.getStaticRoute(\"1\");\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.mode = this.route.snapshot.paramMap.get('mode');\r\n if (!['rail', 'subway', 'nhsl', 'other', 'trolley', 'cct'].includes(this.mode)) {\r\n this.mode = 'bus';\r\n }\r\n\r\n //this.routes = this.routeService.routes;\r\n this.getRoutes();\r\n\r\n\r\n this.screen = window.innerWidth;\r\n }\r\n\r\n getRoutes(): void {\r\n this.statusService.get()\r\n .subscribe(statuses => {\r\n this.statuses = statuses;\r\n this.realtime = this.statusService.realtime;\r\n });\r\n }\r\n\r\n selectRoute(selected_route: string): void {\r\n this.selected_route = selected_route;\r\n\r\n //Check if newly selected route is in the recent selected routes, if not add it...\r\n if (this.recent_routes.find((x: string) => x == selected_route) == undefined) {\r\n this.recent_routes.push(selected_route);\r\n\r\n //Check if recent routes is larger than set limit\r\n console.log(this.recent_routes.length);\r\n if (this.recent_routes.length > recent_routes_max_length) {\r\n this.recent_routes.shift();\r\n }\r\n\r\n localStorage.setItem(\"recent_routes\", JSON.stringify(this.recent_routes));\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RssService } from '../../services/rss.service';\r\nimport { AlertOverviewService } from '../../services/alert-overview.service';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n public rss: any;\r\n public alerts: any;\r\n public overview: any;\r\n public realtime: boolean = true;\r\n constructor(private rssService: RssService, private alertOverviewService: AlertOverviewService) { }\r\n\r\n ngOnInit(): void {\r\n this.getRSS();\r\n this.getOverview();\r\n }\r\n\r\n getRSS(): void {\r\n this.rssService.get()\r\n .subscribe(rss => this.rss = rss);\r\n }\r\n\r\n getOverview(){\r\n this.alertOverviewService.get()\r\n .subscribe(overview => {\r\n this.overview = overview;\r\n this.realtime = this.alertOverviewService.realtime;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
There was an error retrieving the real-time data, please try refreshing.
\r\n \r\n
\r\n \r\n\r\n
0\">\r\n Overview \r\n \r\n
\r\n\r\n
0\">\r\n News Releases \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
Uh oh...
\r\n

Looks like we are having some techinical issues. Try refreshing if the problem persists try reaching out to our customer service.

\r\n Checkout SEPTA Social\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\n\r\nconst rail_routes: any = Array(\"AIR\", \"CHE\", \"CHW\", \"LAN\", \"MED\", \"FOX\", \"NOR\", \"PAO\", \"CYN\", \"TRE\", \"WAR\", \"WIL\", \"WTR\", \"GC\");\r\n\r\n@Component({\r\n selector: 'app-route-status-button',\r\n templateUrl: './route-status-button.component.html',\r\n styleUrls: ['./route-status-button.component.css']\r\n})\r\nexport class RouteStatusButtonComponent implements OnInit {\r\n\r\n public selected_route: string;\r\n public selected_mode: string;\r\n public detailed_route: any = { id: '' };\r\n public routes: Route[] = [];\r\n public realtime: boolean = true;\r\n\r\n constructor(private routeService: RouteService, private route: ActivatedRoute) {\r\n this.selected_route = this.route.snapshot.paramMap.get('route');\r\n\r\n if (this.selected_route != \"\") {\r\n if (rail_routes.includes(this.selected_route)) {\r\n this.selected_mode = 'rail'\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getRoutes();\r\n this.detailed_route.id = this.routeService.detailed.id\r\n\r\n if (this.selected_route != null) {\r\n this.detailed_route = { id: this.selected_route };\r\n }\r\n else {\r\n this.detailed_route.id = this.routeService.detailed.id\r\n }\r\n }\r\n\r\n getRoutes(): void {\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.routes = routes;\r\n this.realtime = this.routeService.realtime;\r\n });\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \"Advisories\r\n \r\n \r\n \"Detour\r\n \r\n \r\n \"Detour\r\n \r\n \r\n \"Elevator\r\n \r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { MessageService } from '../services/message.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SystemWideService {\r\n\r\n private systemWide: any = [];\r\n private alertDetailsUrl = 'https://www3.septa.org/api/Alerts/?req1=generic';\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n get (): Observable {\r\n\r\n this.systemWide = this.http.jsonp(this.alertDetailsUrl, 'callback')\r\n .pipe(\r\n map ((array: any) => array = this.transform(array)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n return this.systemWide;\r\n }\r\n\r\n private transform(reponse: any): Route[]{\r\n var transformed: Route[] = [];\r\n for (const d of (reponse as any)){\r\n if(d.route == 'SYS'){\r\n transformed.push( {\r\n id: d.route,\r\n legacy: d.route_id,\r\n name: d.route_name.replace('/', ' '),\r\n mode: d.mode,\r\n sequence: 0,\r\n description: d.description,\r\n alert: d.alert,\r\n advisory: '',\r\n detours: d.detour,\r\n elevators: d.elevator,\r\n isalert: (d.current_message === '') ? false : true,\r\n isadvisory: false,\r\n isdetour: false,\r\n isdelays: false,\r\n iselevator: false,\r\n isweather: false,\r\n issuspended: false\r\n });\r\n }\r\n }\r\n return transformed;\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\n\r\n@Component({\r\n selector: 'app-route-header',\r\n templateUrl: './route-header.component.html',\r\n styleUrls: ['./route-header.component.css']\r\n})\r\nexport class RouteHeaderComponent implements OnInit {\r\n\r\n public route_id: string = \"1\";\r\n public routes: Route[] = [];\r\n public detailed_route: any = { id: '' };\r\n public realtime: boolean = true;\r\n \r\n\r\n constructor(private route: ActivatedRoute, private routeService: RouteService) {\r\n this.route_id = this.route.snapshot.paramMap.get('route');\r\n this.detailed_route = this.routeService.detailed;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.get_routes();\r\n this.detailed_route.id = this.routeService.detailed.id\r\n\r\n if (this.route_id != null) {\r\n this.detailed_route = { id: this.route_id };\r\n }\r\n else {\r\n this.detailed_route.id = this.routeService.detailed.id\r\n }\r\n }\r\n\r\n get_routes(): void {\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.routes = routes;\r\n this.realtime = this.routeService.realtime;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Schedule\r\n
\r\n
\r\n

{{ route.name }}

\r\n
\r\n
\r\n \r\n
{{ route.description }}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst calendarUrl = GlobalVariables.calendarUrl;\r\nconst serviceidsUrl = GlobalVariables.serviceidsUrl;\r\n\r\nconst timetablesUrl = GlobalVariables.timetablesUrl;\r\nconst timetablesExtension = GlobalVariables.timetablesExtension;\r\n\r\nconst pdfScheduleUrl = GlobalVariables.pdfScheduleUrl;\r\n\r\nconst stopScheduleUrl = GlobalVariables.stopScheduleUrl;\r\nconst stopScheduleExtension = GlobalVariables.stopScheduleExtension;\r\n\r\nconst realtimeStatusBus = \"https://www3.septa.org/api/TransitViewAll/\"\r\nconst realtimeStatusRail = \"https://www3.septa.org/api/TrainView/\"\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScheduleService {\r\n\r\n public calendar: any;\r\n public route_service: any;\r\n public release_date: string = \"\";\r\n\r\n public rail_routes = GlobalVariables.railRoutes;\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { \r\n this.get_release_date();\r\n }\r\n\r\n public get_calendar(): Observable {\r\n var data = this.http.get(calendarUrl)\r\n .pipe(\r\n map((array: any) => array = this.format_calendar(array)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n public get_serivce(): Observable {\r\n var data = forkJoin({\r\n calendar: this.http.get(calendarUrl),\r\n route_service: this.http.get(serviceidsUrl),\r\n });\r\n\r\n return data;\r\n }\r\n\r\n public get_release_date(): Observable {\r\n var data = this.http.get(calendarUrl)\r\n .pipe(\r\n map((array: any) => array = this.format_release_date_from_calendar(array)),\r\n tap(_ => this.log('fetched stop times')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n public get_release_date_(): string {\r\n var data = \"\";\r\n\r\n const calendar = this.get_calendar()\r\n .subscribe(calendar => {\r\n\r\n const selected_date = this.get_date();\r\n\r\n this.get_release_date = calendar[selected_date]['week_schedule']['Weekday'][0].split('_')[0];\r\n data = calendar[selected_date]['week_schedule']['Weekday'][0].split('_')[0];\r\n });\r\n\r\n return data;\r\n }\r\n\r\n public get_timetable(route_id: string, service_id: string, direction_id: string = \"0\"): Observable {\r\n\r\n var url = timetablesUrl + \"/\" + service_id + \"/\" + route_id + \"/\" + direction_id + \"/\" + timetablesExtension;\r\n\r\n var data = this.http.get(url).pipe(\r\n map((array: any) => array = this.format_timetable(array)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n\r\n }\r\n\r\n public get_pdf_schedule(route_id: string = \"\"): Observable {\r\n\r\n var url = pdfScheduleUrl;\r\n\r\n var data = this.http.get(url).pipe(\r\n map((array: any,) => array = this.format_pdf_schedule(array, route_id)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n\r\n }\r\n\r\n public get_stop_schedule_realtime(route_id: string, stop_id: string, service_id: string): Observable {\r\n\r\n var url = stopScheduleUrl + route_id + \"/\" + stop_id + \"/\" + stopScheduleExtension;\r\n\r\n var data = this.http.get(url).pipe(\r\n map((array: any) => array = this.format_stop_schedule_realtime(array, route_id)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n\r\n }\r\n\r\n public get_stop_schedule(route_id: string, stop_id: string, service_id: string): Observable {\r\n \r\n if (route_id != null && stop_id != null) {\r\n var url = stopScheduleUrl + route_id + \"/\" + stop_id + \"/\" + stopScheduleExtension;\r\n\r\n var data = this.http.get(url).pipe(\r\n map((array: any) => array = this.format_stop_schedule(array, service_id)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n }\r\n\r\n return data;\r\n\r\n }\r\n\r\n public format_stop_schedule(response: any, service_id: any): any {\r\n\r\n var stop_times: any = []\r\n\r\n var entries = Object.entries(response);\r\n for (const stop_time in entries) {\r\n entries[stop_time][1][\"actual_arrival_time\"] = this.format_gtfs_actual_time(entries[stop_time][1][\"arrival_time\"]);\r\n entries[stop_time][1][\"arrival_time\"] = this.format_gtfs_time(entries[stop_time][1][\"arrival_time\"]);\r\n if (this.rail_routes.includes(entries[stop_time][1][\"route_id\"])) {\r\n entries[stop_time][1][\"mode\"] = \"rail\";\r\n }\r\n else {\r\n entries[stop_time][1][\"mode\"] = \"bus\";\r\n }\r\n\r\n stop_times.push(entries[stop_time][1]);\r\n }\r\n\r\n return stop_times;\r\n }\r\n\r\n public format_stop_schedule_realtime(response: any, route_id: any): any {\r\n\r\n var stop_times: any = []\r\n\r\n var entries = Object.entries(response);\r\n\r\n this.get_realtime_status(route_id).subscribe((data) => {\r\n stop_times = data;\r\n });\r\n\r\n for (const stop_time in entries) {\r\n entries[stop_time][1][\"actual_arrival_time\"] = this.format_gtfs_actual_time(entries[stop_time][1][\"arrival_time\"]);\r\n entries[stop_time][1][\"arrival_time\"] = this.format_gtfs_time(entries[stop_time][1][\"arrival_time\"]);\r\n\r\n\r\n\r\n stop_times.push(entries[stop_time][1]);\r\n }\r\n\r\n return stop_times;\r\n }\r\n\r\n public get_realtime_status(route_id: string): Observable {\r\n\r\n var url: string = realtimeStatusBus;\r\n var mode: string = \"bus\";\r\n\r\n if (this.rail_routes.includes(route_id)) {\r\n mode = 'rail'\r\n url = realtimeStatusRail;\r\n }\r\n\r\n var data = this.http.jsonp(url, 'callback').pipe(\r\n map((array: any) => array = this.format_realtime_status(array, mode, route_id)),\r\n tap(_ => this.log('fetched time tables')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n\r\n }\r\n\r\n public format_realtime_status(response: any, mode: string, route_id: string = \"\"): any {\r\n\r\n var trips: any = []\r\n\r\n var entries = Object.entries(response);\r\n\r\n if (mode == 'bus' && route_id != \"\") {\r\n return entries[0][1][0][route_id];\r\n }\r\n\r\n if (mode == 'rail' && route_id != \"\") {\r\n for (const stop_time in entries) {\r\n trips.push(\r\n {\r\n \"trip\": entries[stop_time][1][\"trainno\"],\r\n \"late\": entries[stop_time][1][\"late\"],\r\n \"track\": entries[stop_time][1][\"TRACK\"],\r\n \"track_change\": entries[stop_time][1][\"TRACK_CHANGE\"],\r\n \"lat\": entries[stop_time][1][\"lat\"],\r\n \"lng\": entries[stop_time][1][\"lon\"],\r\n \"current_stop_name\": entries[stop_time][1][\"currentstop\"],\r\n \"next_stop_name\": entries[stop_time][1][\"nextstop\"],\r\n \"type\": entries[stop_time][1][\"service\"],\r\n \"cars\": entries[stop_time][1][\"consist\"],\r\n }\r\n );\r\n }\r\n return trips;\r\n }\r\n\r\n\r\n for (const stop_time in entries) {\r\n\r\n trips.push(entries[stop_time]);\r\n }\r\n\r\n return trips;\r\n }\r\n\r\n public format_timetable(response: any): any {\r\n\r\n var stops: any = [];\r\n var times: any = [];\r\n\r\n for (const stop in response) {\r\n\r\n console.log(Object.keys(response[stop]).length);\r\n\r\n if(Object.keys(response[stop]).length > 0){\r\n var stop_name = response[stop][Object.keys(response[stop])[0]][\"stop_name\"];\r\n stops.push(stop_name);\r\n times[stop_name] = []\r\n }\r\n\r\n console.log(\"hello\");\r\n console.log(response[stop]);\r\n\r\n var entries = Object.entries(response[stop]);\r\n for (let key of entries) {\r\n if (key[1][\"arrival_time\"] != \"---\") {\r\n key[1][\"arrival_time\"] = this.format_gtfs_time(key[1][\"arrival_time\"]);\r\n }\r\n\r\n times[stop_name].push([key[1][\"block_id\"], key[1][\"trip_id\"], key[1][\"arrival_time\"]]);\r\n }\r\n\r\n }\r\n\r\n return [stops, times];\r\n }\r\n\r\n public format_pdf_schedule(response: any, route_id = \"\"): any {\r\n\r\n var schedules: any = [];\r\n for (const schedule in response) {\r\n if(response[schedule][\"route_id\"] == route_id || route_id == \"\"){\r\n schedules.push(response[schedule]);\r\n }\r\n }\r\n\r\n return schedules;\r\n }\r\n\r\n format_calendar(response: any): any {\r\n var formatted: any[] = [];\r\n\r\n for (const array of Object.entries(response)) {\r\n formatted.push(array);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n format_release_date_from_calendar(response: any): any {\r\n var formatted: any[] = [];\r\n\r\n for (const array of Object.entries(response)) {\r\n const selected_date = this.get_date();\r\n if(array[0] == selected_date){\r\n formatted.push(array[1]['week_schedule']['Weekday'][0].split('_')[0]);\r\n }\r\n }\r\n\r\n return formatted[0];\r\n }\r\n\r\n private format_gtfs_time(time: any) {\r\n var hour: number = time.toString().slice(0, 2);\r\n var minute: string = time.toString().slice(3, 5);\r\n var period: string = ' am';\r\n if (hour >= 12) {\r\n period = ' pm';\r\n }\r\n\r\n if (hour > 23) {\r\n hour = hour - 24;\r\n if (hour < 12) {\r\n period = ' am';\r\n }\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n }\r\n\r\n if (hour > 12 && hour < 24) {\r\n hour = hour - 12;\r\n }\r\n\r\n return hour + ':' + minute + period;\r\n }\r\n\r\n\r\n private format_gtfs_actual_time(time: any) {\r\n\r\n var current_date: Date = new Date();\r\n\r\n var hour: number = time.toString().slice(0, 2);\r\n var minute: string = time.toString().slice(3, 5);\r\n var period: string = ' am';\r\n\r\n if (hour <= 12) {\r\n current_date.setHours(hour);\r\n }\r\n\r\n if (hour >= 12) {\r\n period = ' pm';\r\n }\r\n\r\n if (hour > 23) {\r\n hour = hour - 24;\r\n if (hour < 12) {\r\n period = ' am';\r\n }\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n\r\n current_date.setDate(current_date.getDate() + 1);\r\n current_date.setHours(hour);\r\n }\r\n\r\n if (hour > 12 && hour < 24) {\r\n current_date.setHours(hour);\r\n hour = hour - 12;\r\n }\r\n\r\n current_date.setMinutes(Number(minute));\r\n current_date.setSeconds(0);\r\n\r\n return current_date.getTime();\r\n }\r\n\r\n public format_status(delay: number): string {\r\n var status = delay == 0 ? GlobalVariables.onTimeStatus : delay > 0 ? delay + \" \" + GlobalVariables.lateStatus : Math.abs(delay) + ' ' + GlobalVariables.earlyStatus;\r\n\r\n // Canceled \r\n status = delay == 999 ? GlobalVariables.canceledStatus : status;\r\n\r\n // Untracked\r\n status = delay == 998 ? GlobalVariables.untrackedStatus : status;\r\n\r\n return status;\r\n }\r\n\r\n public get_date(request_date: string = \"Today\") {\r\n let date: Date = new Date();\r\n\r\n if (request_date != \"Today\") {\r\n date.setDate(27)\r\n date.setMonth(0o5)\r\n date.setFullYear(2019)\r\n }\r\n\r\n return date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + (date.getDate())).slice(-2);\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport * as L from 'leaflet';\r\nimport { Route } from '../../interfaces/route';\r\nimport { TripsService } from '../../services/trips.service';\r\nimport { KmlService } from '../../services/kml.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\nimport { MapService } from '../../services/map.service';\r\nimport { Trip } from 'src/app/interfaces/trip';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { timer } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-embedded-map-detail',\r\n templateUrl: './embedded-map-detail.component.html',\r\n styleUrls: ['./embedded-map-detail.component.css']\r\n})\r\nexport class EmbeddedMapDetailComponent implements AfterViewInit {\r\n public map: any;\r\n public current_position: any = null;\r\n\r\n constructor(private mapService: MapService, private tripsService: TripsService, private kmlService: KmlService, private markersService: MarkersService, private route: ActivatedRoute) { }\r\n\r\n ngAfterViewInit(): void {\r\n \r\n if(this.map != null){\r\n this.map.off();\r\n this.map.remove();\r\n }\r\n\r\n this.mapService.initMap();\r\n \r\n }\r\n\r\n ngOnDestroy(){\r\n this.tripsService.transitRefresh.unsubscribe();\r\n }\r\n}\r\n","
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-transitview',\r\n templateUrl: './transitview.component.html',\r\n styleUrls: ['./transitview.component.css']\r\n})\r\nexport class TransitviewComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

transitview works!

\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n title = 'ng-realtime';\r\n}\r\n","\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { HttpClientJsonpModule } from '@angular/common/http';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { MainNavigationComponent } from './components/main-navigation/main-navigation.component';\r\nimport { MapComponent } from './components/map/map.component';\r\nimport { RouteStatusComponent } from './components/route-status/route-status.component';\r\nimport { SystemStatusComponent } from './components/system-status/system-status.component';\r\nimport { RouteSelectionComponent } from './components/route-selection/route-selection.component';\r\nimport { NtaComponent } from './components/nta/nta.component';\r\nimport { TrainviewComponent } from './components/trainview/trainview.component';\r\nimport { TransitviewComponent } from './components/transitview/transitview.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { EmbeddedMapComponent } from './components/embedded-map/embedded-map.component';\r\nimport { TripDetailComponent } from './components/trip-detail/trip-detail.component';\r\nimport { EmbeddedMapDetailComponent } from './components/embedded-map-detail/embedded-map-detail.component';\r\nimport { TrainSearchComponent } from './components/train-search/train-search.component';\r\nimport { SystemWideMessageComponent } from './components/system-wide-message/system-wide-message.component';\r\nimport { OmniSearchComponent } from './components/omni-search/omni-search.component';\r\nimport { StopComponent } from './components/stop/stop.component';\r\nimport { EmbeddedMapSingleComponent } from './components/embedded-map-single/embedded-map-single.component';\r\nimport { TripSchedulesComponent } from './components/trip-schedules/trip-schedules.component';\r\nimport { EmbeddedMapTripComponent } from './components/embedded-map-trip/embedded-map-trip.component';\r\nimport { MainFooterComponent } from './components/main-footer/main-footer.component';\r\nimport { FourOhFourComponent } from './components/four-oh-four/four-oh-four.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\r\nimport { SchedulesComponent } from './components/schedules/schedules.component';\r\nimport { ScheduleRoutesComponent } from './components/schedule-routes/schedule-routes.component';\r\nimport { ScheduleRouteDetailsComponent } from './components/schedule-route-details/schedule-route-details.component';\r\nimport { RouteStatusButtonComponent } from './components/route-status-button/route-status-button.component';\r\nimport { ScheduleTimetableComponent } from './components/schedule-timetable/schedule-timetable.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { RouteHeaderComponent } from './components/route-header/route-header.component';\r\nimport { RouteDirectionSelectorComponent } from './components/route-direction-selector/route-direction-selector.component';\r\nimport { ScheduleRouteTodayComponent } from './components/schedule-route-today/schedule-route-today.component';\r\nimport { StopDetailsComponent } from './components/stop-details/stop-details.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n MainNavigationComponent,\r\n MapComponent,\r\n RouteStatusComponent,\r\n SystemStatusComponent,\r\n RouteSelectionComponent,\r\n NtaComponent,\r\n TrainviewComponent,\r\n TransitviewComponent,\r\n DashboardComponent,\r\n EmbeddedMapComponent,\r\n TripDetailComponent,\r\n EmbeddedMapDetailComponent,\r\n TrainSearchComponent,\r\n SystemWideMessageComponent,\r\n OmniSearchComponent,\r\n StopComponent,\r\n EmbeddedMapSingleComponent,\r\n TripSchedulesComponent,\r\n EmbeddedMapTripComponent,\r\n MainFooterComponent,\r\n FourOhFourComponent,\r\n BreadcrumbComponent,\r\n SchedulesComponent,\r\n ScheduleRoutesComponent,\r\n ScheduleRouteDetailsComponent,\r\n RouteStatusButtonComponent,\r\n ScheduleTimetableComponent,\r\n RouteHeaderComponent,\r\n RouteDirectionSelectorComponent,\r\n ScheduleRouteTodayComponent,\r\n StopDetailsComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n HttpClientJsonpModule,\r\n AppRoutingModule,\r\n NgbModule,\r\n ReactiveFormsModule\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {Router} from \"@angular/router\"\r\nimport { TrainsService } from '../../services/trains.service';\r\nimport { TripsService } from '../../services/trips.service';\r\nimport { Trip } from '../../interfaces/trip';\r\n\r\n@Component({\r\n selector: 'app-trainview',\r\n templateUrl: './trainview.component.html',\r\n styleUrls: ['./trainview.component.css']\r\n})\r\nexport class TrainviewComponent implements OnInit {\r\n\r\n public trains: any[] = [];\r\n public realtime: boolean = true;\r\n\r\n constructor(private trainsService: TrainsService, private tripsService: TripsService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.getTrains();\r\n\r\n }\r\n\r\n getTrains(): void {\r\n this.trainsService.get()\r\n .subscribe(trains => {\r\n this.trains = trains;\r\n this.realtime = this.trainsService.realtime;\r\n });\r\n }\r\n\r\n onDetail(trip: Trip): void{\r\n this.tripsService.detail(trip);\r\n this.router.navigate(['/trip/detail'])\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

TrainView

\r\n \r\n
\r\n
There was an error retrieving the real-time data, please try refreshing.
\r\n \r\n
\r\n \r\n
\r\n \r\n \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 \r\n \r\n \r\n \r\n \r\n
TrainLineOriginDestinationNextDelay
{{ train.id }} {{ train.route.replace('/', ' ') }} {{ train.origin }} {{ train.destination }} {{ train.nextstop }} {{ train.status }}
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\nimport { KmlService } from '../services/kml.service';\r\nimport { MapService } from '../services/map.service';\r\nimport { MarkersService } from '../services/markers.service';\r\nimport { Route } from '../interfaces/route';\r\nimport { Trip } from '../interfaces/trip';\r\nimport { timer } from 'rxjs';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst railTripUrl = \"https://www3.septa.org/api/TrainView/\";\r\nconst busTripUrl = \"https://www3.septa.org/api/TransitViewAll/\";\r\n\r\nconst rail_routes: any = Array(\"AIR\", \"CHE\", \"CHW\", \"LAN\", \"MED\", \"FOX\", \"NOR\", \"PAO\", \"CYN\", \"TRE\", \"WAR\", \"WIL\", \"WTR\", \"GC\");\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TripsService {\r\n public selectedTrip: any;\r\n public selectedRoute: any;\r\n private data: any = [];\r\n public transitRefresh: any;\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService, private mapService: MapService, private kmlService: KmlService, private markersService: MarkersService) {\r\n this.selectedTrip = { id: \"562\", route: \"Trenton\", routeID: 'TRE', mode: \"Regional Rail\" };\r\n\r\n var selectedTrip = JSON.parse(localStorage.getItem(\"selectedTrip\"));\r\n if (selectedTrip != null) {\r\n this.selectedTrip = selectedTrip;\r\n }\r\n\r\n this.selectedRoute = { id: this.selectedTrip.routeID, name: this.selectedTrip.route, mode: this.selectedTrip.mode };\r\n }\r\n\r\n /** GET trips from api */\r\n get(selected_trip: string = \"\", mode: string = \"\", route_id: string = \"\"): Observable {\r\n\r\n //Clear previous markers\r\n this.markersService.clearMarkers(this.mapService.map);\r\n\r\n var url = GlobalVariables.railTripsUrl;\r\n\r\n if(selected_trip != \"\"){\r\n\r\n if(selected_trip.slice(-1) == 'D'){\r\n selected_trip = selected_trip.slice(0, -1); \r\n }\r\n\r\n url = GlobalVariables.railTripsUrl + \"?train=\" + selected_trip;\r\n }\r\n\r\n if (mode == \"bus\") {\r\n url = GlobalVariables.busTripsUrl;\r\n }\r\n\r\n this.data = this.http.jsonp(url, 'callback')\r\n .pipe(\r\n map((array: any) => array = this.transform(array, selected_trip, mode, route_id)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n detail(trip: Trip) {\r\n this.selectedTrip = trip;\r\n this.selectedRoute = { id: this.selectedTrip.routeID, name: this.selectedTrip.route, mode: this.selectedTrip.mode };\r\n localStorage.setItem(\"selectedTrip\", JSON.stringify(trip));\r\n }\r\n\r\n private transform(response: any, selected_trip: string = \"\", mode: string = \"\", route_id: string = \"\"): any {\r\n var transformed: any[] = [];\r\n\r\n\r\n if (mode == 'bus') {\r\n response = response[\"routes\"][0][route_id];\r\n }\r\n\r\n for (const trip of response) {\r\n\r\n if (mode == 'bus') {\r\n this.selectedRoute = { id: route_id, name: route_id, mode: 'Bus' };\r\n\r\n this.kmlService.get(this.mapService.map, this.selectedRoute);\r\n\r\n if(selected_trip != \"\" && selected_trip == trip.trip){\r\n this.transitRefresh = timer(1000, 5000).subscribe(t => {\r\n this.markersService.fetch(this.mapService.map, this.selectedRoute, selected_trip);\r\n });\r\n \r\n }\r\n \r\n if(selected_trip == \"\" ){\r\n this.transitRefresh = timer(1000, 5000).subscribe(t => {\r\n this.markersService.fetch(this.mapService.map, this.selectedRoute, selected_trip);\r\n });\r\n }\r\n\r\n const status = trip.late == 0 ? 'On-time' : trip.late > 0 ? trip.late + \" mins late\" : trip.late + ' mins early';\r\n\r\n transformed.push({\r\n id: trip.trip,\r\n route: trip.line,\r\n routeID: route_id,\r\n block: trip.BlockID,\r\n mode: 'Bus',\r\n type: trip.service,\r\n origin: trip.SOURCE,\r\n destination: trip.dest,\r\n currentstop: trip.next_stop_name,\r\n nextstop: trip.next_stop_name,\r\n delay: trip.late,\r\n status: status,\r\n vehicle: trip.consist,\r\n cars: trip.VehicleID,\r\n heading: trip.heading,\r\n lat: trip.lat,\r\n lon: trip.lng\r\n });\r\n }\r\n else {\r\n if (trip.trainno.trim() == selected_trip) {\r\n\r\n this.selectedRoute = { id: this.get_route_id(trip.line), name: trip.line, mode: 'Regional Rail' };\r\n this.kmlService.get(this.mapService.map, this.selectedRoute);\r\n\r\n\r\n\r\n this.transitRefresh = timer(1000, 5000).subscribe(t => {\r\n this.markersService.fetch(this.mapService.map, this.selectedRoute, selected_trip);\r\n });\r\n\r\n const cars = trip.consist.split(\",\").length;\r\n const status = trip.late == 0 ? 'On-time' : trip.late > 0 ? trip.late + \" mins late\" : trip.late + ' mins early';\r\n\r\n transformed.push({\r\n id: trip.trainno,\r\n route: trip.line,\r\n routeID: this.convertRouteToID(trip.line) + 'd',\r\n block: trip.trainno,\r\n mode: 'Regional Rail',\r\n type: trip.service,\r\n origin: trip.SOURCE,\r\n destination: trip.dest,\r\n currentstop: trip.currentstop,\r\n nextstop: trip.nextstop,\r\n delay: trip.late,\r\n status: status,\r\n vehicle: trip.consist,\r\n cars: cars != 0 ? cars : 1,\r\n heading: trip.heading,\r\n lat: trip.lat,\r\n lon: trip.lon\r\n });\r\n }\r\n }\r\n }\r\n\r\n return transformed;\r\n }\r\n\r\n private get_route_id(name: string): string {\r\n\r\n switch (name) {\r\n case 'Airport':\r\n name = 'AIR';\r\n break;\r\n case 'Chestnut Hill East':\r\n name = 'CHE';\r\n break;\r\n case 'Chestnut Hill West':\r\n name = 'CHW';\r\n break;\r\n case 'Cynwyd':\r\n name = 'CYN';\r\n break;\r\n case 'Fox Chase':\r\n name = 'FOX';\r\n break;\r\n case 'Glenside Combined':\r\n name = 'GLN';\r\n break;\r\n case 'Lansdale/Doylestown':\r\n name = 'LAN';\r\n break;\r\n case 'Manayunk/Norristown':\r\n name = 'NOR';\r\n break;\r\n case 'Media/Wawa':\r\n name = 'MED';\r\n break;\r\n case 'Paoli/Thorndale':\r\n name = 'PAO';\r\n break;\r\n case 'Trenton':\r\n name = 'TRE';\r\n break;\r\n case 'Warminster':\r\n name = 'WAR';\r\n break;\r\n case 'Wilmington/Newark':\r\n name = 'WIL';\r\n break;\r\n case 'West Trenton':\r\n name = 'WTR';\r\n break;\r\n\r\n }\r\n\r\n return name;\r\n }\r\n\r\n private convertRouteToID(name: string): string {\r\n const prefixRail = 'rr_route_'\r\n\r\n switch (name) {\r\n case 'Airport':\r\n name = prefixRail + 'apt';\r\n break;\r\n case 'Chestnut Hill East':\r\n name = prefixRail + 'che';\r\n break;\r\n case 'Chestnut Hill West':\r\n name = prefixRail + 'chw';\r\n break;\r\n case 'Cynwyd':\r\n name = prefixRail + 'cyn';\r\n break;\r\n case 'Fox Chase':\r\n name = prefixRail + 'fxc';\r\n break;\r\n case 'Glenside Combined':\r\n name = prefixRail + 'gc';\r\n break;\r\n case 'Lansdale/ Doylestown':\r\n name = prefixRail + 'landdoy';\r\n break;\r\n case 'Manayunk/Norristown':\r\n name = prefixRail + 'nor';\r\n break;\r\n case 'Media/Wawa':\r\n name = prefixRail + 'med';\r\n break;\r\n case 'Paoli/Thorndale':\r\n name = prefixRail + 'pao';\r\n break;\r\n case 'Trenton':\r\n name = prefixRail + 'trent';\r\n break;\r\n case 'Warminster':\r\n name = prefixRail + 'warm';\r\n break;\r\n case 'Wilmington/ Newark':\r\n name = prefixRail + 'wilm';\r\n break;\r\n case 'West Trenton':\r\n name = prefixRail + 'wtren';\r\n break;\r\n\r\n }\r\n\r\n return name;\r\n }\r\n\r\n public get_trips(route_id: string) {\r\n\r\n var url = busTripUrl;\r\n\r\n if (rail_routes.includes(route_id)) {\r\n url = railTripUrl;\r\n }\r\n\r\n this.data = this.http.jsonp(url, 'callback')\r\n .pipe(\r\n map((array: any) => array = this.transform_trips(array, route_id)),\r\n tap(_ => this.log('fetched routes')),\r\n catchError(this.handleError('get', []))\r\n );\r\n\r\n return this.data;\r\n }\r\n\r\n private transform_trips(response: any, route: string) {\r\n var transformed: any[] = [];\r\n\r\n if (rail_routes.includes(route)) {\r\n for (const trip of response) {\r\n const cars = trip.consist.split(\",\").length;\r\n var status = trip.late == 0 ? 'On-time' : trip.late > 0 ? trip.late + \" min late\" : Math.abs(trip.late) + ' min early';\r\n status = trip.late == 999 ? 'Canceled' : trip.late == 998 ? \"Untracked\" : status;\r\n var vehicle = trip.consist == 0 ? null : trip.consist.replaceAll(\",\", \", \");\r\n\r\n transformed.push({\r\n route: trip.line,\r\n route_id: this.get_route_id(trip.line),\r\n block_id: trip.trainno,\r\n trip_id: trip.trainno,\r\n mode: 'Regional Rail',\r\n type: trip.service,\r\n origin: trip.SOURCE,\r\n destination: trip.dest,\r\n currentstop: trip.currentstop,\r\n next_stop_name: trip.nextstop,\r\n delay: trip.late,\r\n status: status,\r\n vehicle: vehicle,\r\n cars: cars != 0 ? cars : 1,\r\n heading: trip.heading,\r\n estimated_seat_availability: \"Not available\",\r\n lat: trip.lat,\r\n lon: trip.lon\r\n });\r\n }\r\n }\r\n else {\r\n \r\n var trips : any = [];\r\n\r\n if(response[\"routes\"][0][route] != undefined){\r\n trips = response[\"routes\"][0][route];\r\n }\r\n\r\n for (const trip of trips) {\r\n var status = trip.late == 0 ? 'On-time' : trip.late > 0 ? trip.late + \" min late\" : Math.abs(trip.late) + ' min early';\r\n status = trip.late == 999 ? 'Canceled' : trip.late == 998 ? \"Untracked\" : status;\r\n var vehicle = trip.VehicleID == 0 ? null : trip.VehicleID.replace(\",\", \", \");\r\n\r\n transformed.push({\r\n route: route,\r\n route_id: route,\r\n block_id: trip.BlockID,\r\n trip_id: trip.trip,\r\n mode: 'Bus',\r\n origin: trip.Direction,\r\n destination: trip.destination,\r\n next_stop_name: trip.next_stop_name,\r\n next_stop_sequence: trip.next_stop_sequence,\r\n delay: trip.late,\r\n status: status,\r\n vehicle: vehicle,\r\n cars: 1,\r\n heading: trip.heading,\r\n estimated_seat_availability: trip.estimated_seat_availability,\r\n lat: trip.lat,\r\n lon: trip.lng\r\n });\r\n }\r\n\r\n }\r\n\r\n return transformed;\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { Router } from '@angular/router';\r\nimport { RouteDirectionsService } from '../../services/route-directions.service';\r\nimport { ScheduleTimetableComponent } from '../../components/schedule-timetable/schedule-timetable.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-route-direction-selector',\r\n templateUrl: './route-direction-selector.component.html',\r\n styleUrls: ['./route-direction-selector.component.css']\r\n})\r\nexport class RouteDirectionSelectorComponent implements OnInit {\r\n\r\n public selected_route: string = \"1\";\r\n public selected_direction: string = \"0\";\r\n public directions: any = [{ Direction: 0, DirectionDescription: 'Inbound' }, { Direction: 1, DirectionDescription: 'Outbound' }];\r\n\r\n constructor(private route: ActivatedRoute, private routeDirectionsService: RouteDirectionsService, private router: Router, private scheduleTimetableComponent: ScheduleTimetableComponent) { \r\n this.selected_route = this.route.snapshot.paramMap.get('route');\r\n this.selected_direction = this.route.snapshot.paramMap.get('direction');\r\n\r\n if (this.selected_direction == null) {\r\n this.selected_direction = \"0\";\r\n }\r\n\r\n this.routeDirectionsService.get(this.selected_route)\r\n .subscribe(routes => this.directions = routes);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //On select of the direction\r\n onDirectionChange(direction: string): void {\r\n\r\n if(this.scheduleTimetableComponent.selected_date){\r\n this.router.navigateByUrl('schedule/timetable/' + this.selected_route + '/' + direction + '/' + this.scheduleTimetableComponent.selected_date);\r\n this.selected_direction = direction;\r\n this.scheduleTimetableComponent.load_timetable(direction);\r\n }\r\n else{\r\n this.router.navigateByUrl('schedule/timetable/' + this.selected_route + '/' + direction);\r\n this.selected_direction = direction;\r\n this.scheduleTimetableComponent.load_timetable(direction);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-stop-details',\r\n templateUrl: './stop-details.component.html',\r\n styleUrls: ['./stop-details.component.css']\r\n})\r\nexport class StopDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n
\r\n Details\r\n
\r\n
\r\n

Levittown

\r\n
\r\n
\r\n 83\r\n S. Clinton Avenue Trenton, NJ 08609\r\n
\r\n
\r\n \r\n \r\n \r\n Levittown is an accessible station.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n\r\n
\r\n
\r\n Fare zone:\r\n Regional Rail Zone NJ\r\n Ticket Office hours:\r\n NJ Transit ticket vending machines sell the SEPTA/NJ Transit joint ticket\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n \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 free SEPTA parking available at this station.\r\n SEPTA Spaces Availability Price\r\n Daily 382 FULL FREE\r\n Station Amenities\r\n 4 bike racks are available, accommodating a total of 8 bicycles.

\r\n

\r\n \r\n No bike racks are at this station.

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Schedule\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
RouteDestinationDeparture
TrentonCenter City Philadelphia4:07 pm
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { Router } from '@angular/router';\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { RouteDirectionsService } from '../../services/route-directions.service';\r\nimport { StopsService } from '../../services/stops.service';\r\nimport { ScheduleService } from '../../services/schedule.service';\r\nimport { MapService } from '../../services/map.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\nimport { ScheduleRouteTodayComponent } from \"../schedule-route-today/schedule-route-today.component\";\r\nimport { GlobalVariables } from \"../../common/global-variables\";\r\n\r\n\r\nconst rail_routes: any = Array(\"AIR\", \"CHE\", \"CHW\", \"LAN\", \"MED\", \"FOX\", \"NOR\", \"PAO\", \"CYN\", \"TRE\", \"WAR\", \"WIL\", \"WTR\", \"GC\");\r\n\r\n\r\n@Component({\r\n selector: 'app-schedule-route-details',\r\n templateUrl: './schedule-route-details.component.html',\r\n styleUrls: ['./schedule-route-details.component.css']\r\n})\r\nexport class ScheduleRouteDetailsComponent implements OnInit {\r\n\r\n @ViewChild(ScheduleRouteTodayComponent) today_component;\r\n\r\n public recent_routes: any = [];\r\n public recent_routes_max_length = GlobalVariables.max_recent_routes;\r\n public routes: Route[] = [];\r\n public calendar: any;\r\n private id: string;\r\n public selected_date: any;\r\n public selected_direction: string = \"0\";\r\n public selected_stop: string;\r\n public realtime: boolean = true;\r\n public stops: any;\r\n public stop_times: any;\r\n public mode: string = 'bus';\r\n public detailedRoute: any = { id: '' };\r\n public directions: any = [{ Direction: 0, DirectionDescription: 'Inbound' }, { Direction: 1, DirectionDescription: 'Outbound' }];\r\n public pdfUrl: string = GlobalVariables.pdfScheduleUrl;\r\n public scheduledPdf: any = []\r\n\r\n constructor(private routeService: RouteService, private route: ActivatedRoute, private mapService: MapService, private markersService: MarkersService, private routeDirectionsService: RouteDirectionsService, private stopsService: StopsService, private scheduleService: ScheduleService, private router: Router) {\r\n\r\n var recent_routes = localStorage.getItem(\"recent_routes\");\r\n\r\n if (recent_routes != null) {\r\n\r\n if (Array.isArray(JSON.parse(recent_routes)) === true) {\r\n this.recent_routes = JSON.parse(recent_routes);\r\n }\r\n else {\r\n this.recent_routes.push(recent_routes)\r\n }\r\n\r\n }\r\n\r\n this.calendar = this.scheduleService.get_calendar()\r\n .subscribe(calendar => {\r\n\r\n this.selected_date = this.scheduleService.get_date();\r\n\r\n this.calendar = calendar[this.selected_date]['week_schedule'];\r\n\r\n });\r\n\r\n this.detailedRoute = this.routeService.detailed;\r\n this.getRoutes();\r\n\r\n this.id = this.route.snapshot.paramMap.get('route');\r\n this.pdfUrl = this.pdfUrl + this.id + '.pdf'\r\n this.selected_direction = this.route.snapshot.paramMap.get('direction');\r\n this.selected_stop = this.route.snapshot.paramMap.get('stop');\r\n\r\n this.scheduleService.get_pdf_schedule(this.id)\r\n .subscribe(schedules => {\r\n this.scheduledPdf = schedules;\r\n });\r\n\r\n //If route is selected, load the directions into the button, default to zero, load the stops for zero...\r\n if (this.id != \"\") {\r\n if (rail_routes.includes(this.id)) {\r\n this.mode = 'rail'\r\n }\r\n\r\n //Check if newly selected route is in the recent selected routes, if not add it...\r\n if (this.recent_routes.find((x: string) => x == this.id) == undefined) {\r\n this.recent_routes.push(this.id);\r\n\r\n //Check if recent routes is larger than set limit\r\n if (this.recent_routes.length > this.recent_routes_max_length) {\r\n this.recent_routes.shift();\r\n }\r\n\r\n localStorage.setItem(\"recent_routes\", JSON.stringify(this.recent_routes));\r\n }\r\n }\r\n\r\n this.routeDirectionsService.get(this.id)\r\n .subscribe(routes => {\r\n this.directions = routes;\r\n\r\n var directions_len = Object.keys(this.directions).length;\r\n\r\n if(directions_len <= 1){\r\n this.selected_direction = this.directions[0].Direction;\r\n }\r\n else if(this.route.snapshot.paramMap.get('direction') == undefined){\r\n this.selected_direction = this.selected_direction = this.directions[0].Direction;\r\n }\r\n else{\r\n this.selected_direction = this.route.snapshot.paramMap.get('direction');\r\n }\r\n\r\n this.stopsService.getStops(this.id, parseInt(this.selected_direction))\r\n .subscribe(stops => {\r\n this.stops = stops;\r\n\r\n });\r\n\r\n });\r\n\r\n this.stopsService.getStops(this.id, parseInt(this.selected_direction))\r\n\r\n if (this.id != null && this.selected_stop != null && this.selected_stop != \"\") {\r\n //call stoptimes api\r\n this.stopsService.getStopTimes(this.id, parseInt(this.selected_direction), this.selected_stop)\r\n .subscribe(stop_times => this.stop_times = stop_times);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getRoutes();\r\n this.detailedRoute.id = this.routeService.detailed.id\r\n\r\n if (this.id != null) {\r\n this.detailedRoute = { id: this.id };\r\n }\r\n else {\r\n this.detailedRoute.id = this.routeService.detailed.id\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.markersService.addStopMarkers(this.mapService.map, this.id, Number(this.selected_direction), Number(this.selected_stop));\r\n }\r\n\r\n getRoutes(): void {\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.routes = routes;\r\n this.realtime = this.routeService.realtime;\r\n });\r\n }\r\n\r\n //On select of the direction\r\n onDirectionChange(direction: string): void {\r\n this.router.navigateByUrl('schedules/' + this.id + '/' + direction);\r\n this.selected_direction = direction;\r\n\r\n this.markersService.clearStopMarkers(this.mapService.map);\r\n\r\n this.markersService.addStopMarkers(this.mapService.map, this.id, Number(this.selected_direction), Number(this.selected_stop));\r\n\r\n this.stopsService.getStops(this.id, parseInt(this.selected_direction))\r\n .subscribe(stops => this.stops = stops);\r\n }\r\n\r\n //On select of stop\r\n onStopChange(stop: string): void {\r\n this.router.navigateByUrl('schedules/' + this.id + '/' + this.selected_direction + '/' + stop);\r\n this.selected_stop = stop;\r\n\r\n if (this.id != null && this.selected_stop != null) {\r\n //call stoptimes api\r\n this.stopsService.getStopTimes(this.id, parseInt(this.selected_direction), this.selected_stop)\r\n .subscribe(stop_times => this.stop_times = stop_times);\r\n\r\n this.today_component.selected_direction = this.selected_direction;\r\n this.today_component.selected_stop = this.selected_stop;\r\n this.today_component.refresh();\r\n }\r\n\r\n }\r\n\r\n}","\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n Schedule\r\n
\r\n
\r\n

{{ route.name }}

\r\n
\r\n
\r\n \r\n
{{ route.description }}
\r\n
\r\n
\r\n \r\n \r\n PDF\r\n \r\n {{ schedule.description }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
BlockDestinationDeparture
\r\n {{ times.block_id }} {{ times.trip_headsign }} {{ times.arrival_time }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
BlockDestinationDeparture
\r\n {{ times.block_id }} {{ times.trip_headsign }} {{ times.arrival_time }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
BlockDestinationDeparture
\r\n {{ times.block_id }} {{ times.trip_headsign }} {{ times.arrival_time }}
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { StopsService } from '../../services/stops.service';\r\n\r\n@Component({\r\n selector: 'app-stop',\r\n templateUrl: './stop.component.html',\r\n styleUrls: ['./stop.component.css']\r\n})\r\nexport class StopComponent implements OnInit {\r\n\r\n constructor(private route: ActivatedRoute, private stopsService: StopsService) { }\r\n mode: string = '';\r\n stop: string = '';\r\n id: string = '';\r\n data: any = [];\r\n arrivals: any;\r\n ngOnInit(): void {\r\n this.mode = this.route.snapshot.paramMap.get('mode');\r\n this.stop = this.route.snapshot.paramMap.get('stop');\r\n this.id = this.route.snapshot.paramMap.get('id');\r\n\r\n this.stopsService.searchStations(this.mode, this.stop)\r\n .subscribe(data => this.data = data);\r\n\r\n this.stopsService.getArrivals(this.mode, this.stop, this.id)\r\n .subscribe(data => this.data = data);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ stop }}

\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Trip: {{ trip.id }}\r\n

\r\n

\r\n Line: {{ trip.route }}\r\n

\r\n

\r\n Route: {{ trip.route }}\r\n

\r\n

\r\n Origin: {{ trip.origin }} \r\n

\r\n

\r\n Destination: {{ trip.destination }} \r\n

\r\n

\r\n Scheduled Time: {{ trip.scheduled | date: \"shortTime\" }} \r\n

\r\n

\r\n Status: {{ trip.status }} \r\n

\r\n

\r\n Type: {{ trip.type }} \r\n

\r\n
\r\n

There are currently no arrivals for this stop.

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
StopScheduledEstimatedActual
{{ schedule.stop }}{{ schedule.scheduled }}{{ schedule.estimated }}{{ schedule.actual }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Map\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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst stopsUrl = \"assets/json/all-stops.json\";\r\nconst stationsUrl = \"assets/json/all-stops.json\";\r\nconst arrivalsUrl = \"https://www3.septa.org/hackathon/BusSchedules/?req1=\";\r\nconst arrivalsRailUrl = \"https://www3.septa.org/api/Arrivals/index.php?simple=1&req1=\";\r\n//const routeStopsUrl = \"https://flat-api.septa.org/qa/stops/\";\r\nconst routeStopsUrl = GlobalVariables.routeStopsUrl;\r\n//const stopTimesUrl = \"https://www3.septa.org/api/StopTimes/\";\r\nconst stopTimesUrl = GlobalVariables.stopScheduleUrl;\r\n//const tripStopTimesUrl = \"https://www3.septa.org/api/Schedules/?trip_id=\";\r\nconst tripStopTimesUrl = GlobalVariables.tripScheduleUrl;\r\nconst calendarUrl = \"https://s3.amazonaws.com/flat-api.septa.org/qa/calendar/calendar.json\";\r\n//const tripStopTimesUrl = \"https://www3.septa.org/api/StopTimes/Trip/?trip=\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StopsService {\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n public stops: any[] = [];\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n get(mode: string, id: string):Observable {\r\n var url: string = stopsUrl;\r\n if (mode == \"rail\" || mode == \"Regional Rail\"){\r\n url = stationsUrl;\r\n }\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n map ((array: any) => array = this.search(array, id)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n getArrivals(mode: string, name: string, id: string):Observable {\r\n var url: string = arrivalsUrl + id;\r\n\r\n if (mode == \"rail\"){\r\n url = arrivalsRailUrl + name;\r\n }\r\n\r\n return this.http.jsonp(url, 'callback')\r\n .pipe(\r\n map ((array: any) => array = this.transformArrivals(array, mode)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n getStops(id: string, direction: number):Observable {\r\n var url: string = routeStopsUrl + id + '/stops.json';\r\n\r\n var data = this.http.get(url)\r\n .pipe(\r\n map ((array: any) => array = this.search_stops(array, direction)),\r\n tap (_ => this.log('Fetched stops')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n\r\n getCalendar():Observable {\r\n var data = this.http.get(calendarUrl)\r\n .pipe(\r\n map ((array: any) => array = this.formatCalendar(array)),\r\n tap (_ => this.log('fetched stop times')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n formatCalendar(response: any): any{\r\n var weekday: any[] = [];\r\n weekday['bus'] = []; weekday['rail'] = [];\r\n var saturday: any[] = [];\r\n saturday['bus'] = []; saturday['rail'] = [];\r\n var sunday: any[] = [];\r\n sunday['bus'] = []; sunday['rail'] = [];\r\n var formatted: any[] = [];\r\n\r\n for(const array of response){\r\n // WD -> array(service ids)\r\n if(array['days'] == 62){\r\n weekday[array['mode']].push(array['service_id']);\r\n }\r\n // SAT -> array(service ids)\r\n if(array['days'] == 1){\r\n saturday[array['mode']].push(array['service_id']);\r\n }\r\n // SUNDAY -> array(service ids)\r\n if(array['days'] == 64){\r\n sunday[array['mode']].push(array['service_id']);\r\n } \r\n }\r\n formatted['weekday'] = weekday;\r\n formatted['saturday'] = saturday;\r\n formatted['sunday'] = sunday;\r\n\r\n return formatted;\r\n }\r\n\r\n getStopTimes(route: string, direction: number, stop: string):Observable {\r\n var url: string = stopTimesUrl + route + \"/\" + stop + \"/schedule.json\";\r\n var data = this.http.get(url)\r\n .pipe(\r\n map ((array: any) => array = this.search_stop_times(array, direction)),\r\n tap (_ => this.log('fetched stop times')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n getTripStopTimes(trip: string):Observable {\r\n var url: string = tripStopTimesUrl + trip + \"/schedule.json\";\r\n var data = this.http.get(url)\r\n .pipe(\r\n map ((array: any) => array = this.format_trip_stop_times(array, 3)),\r\n tap (_ => this.log('fetched stop times')),\r\n catchError (this.handleError('get', []))\r\n );\r\n\r\n return data;\r\n }\r\n\r\n /* GET stations whose name contains search term */\r\n public searchStations(mode: string, stop: string): Observable {\r\n var url: string = stopsUrl;\r\n if (mode == \"rail\"){\r\n url = stationsUrl;\r\n }\r\n\r\n if (!stop.trim()) {\r\n return of([]);\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n map ((array: any) => array = this.search(array, stop)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n private search(response: any, stop: string): any{\r\n var searched: any[] = [];\r\n for(const array of response){\r\n if(this.searchArray(array, stop)){\r\n searched.push(array);\r\n }\r\n }\r\n return searched;\r\n }\r\n\r\n private searchArray(array: any, stop: string){\r\n for( let i in array) {\r\n if(i == 'stop_name' || i == 'stop_id'){\r\n if(array[i] == stop){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private search_stops(response: any, direction: number): any{\r\n var searched: any[] = [];\r\n for(const array of response){\r\n if(this.search_stop_direction(array, direction)){\r\n searched.push(array);\r\n }\r\n }\r\n return searched;\r\n }\r\n \r\n private search_stop_direction(array: any, direction: number){\r\n for( let i in array) {\r\n if(i == 'direction_id'){\r\n if(array[i] == direction){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private search_stop_times(response: any, direction: number): any{\r\n var searched: any[] = [];\r\n for(const array of response){\r\n if(this.search_stop_times_direction(array, direction)){\r\n var hour: number = array['arrival_time'].toString().slice(0,2);\r\n var minute: string = array['arrival_time'].toString().slice(3,5);\r\n var period: string = ' am';\r\n if(hour >= 12){\r\n period = ' pm';\r\n }\r\n\r\n if(hour > 23){\r\n hour = hour - 24;\r\n if(hour < 12){\r\n period = ' am';\r\n }\r\n if(hour == 0){\r\n hour = 12;\r\n }\r\n }\r\n\r\n if(hour > 12 && hour < 24){\r\n hour = hour - 12;\r\n }\r\n\r\n array['arrival_time'] = hour + ':' + minute + period;\r\n searched.push(array);\r\n }\r\n }\r\n\r\n return searched;\r\n }\r\n\r\n private format_trip_stop_times(response: any, direction: number): any{\r\n var searched: any[] = [];\r\n\r\n for(const array of response){\r\n if(this.search_stop_times_direction(array, direction)){\r\n var hour: number = array['arrival_time'].toString().slice(0, 2);\r\n var minute: string = array['arrival_time'].toString().slice(3,5);\r\n var period: string = ' am';\r\n if(hour >= 12){\r\n period = ' pm';\r\n }\r\n\r\n if(hour > 23){\r\n hour = hour - 24;\r\n if(hour < 12){\r\n period = ' am';\r\n }\r\n if(hour == 0){\r\n hour = 12;\r\n }\r\n }\r\n\r\n if(hour > 12 && hour < 24){\r\n hour = hour - 12;\r\n }\r\n\r\n array['actual_arrival_time'] = this.format_gtfs_actual_time(array['arrival_time']);\r\n array['arrival_time'] = hour + ':' + minute + period;\r\n searched.push(array);\r\n }\r\n }\r\n\r\n searched.sort((a, b) => a.stop_sequence > b.stop_sequence ? 1 : -1);\r\n\r\n return searched;\r\n }\r\n \r\n private search_stop_times_direction(array: any, direction: number){\r\n for( let i in array) {\r\n if(i == 'direction_id'){\r\n if(array[i] == direction){\r\n return true;\r\n }\r\n if(direction == 3){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private transform(response: any, stop: string){\r\n var transformed: any = this.search(response, stop)\r\n\r\n transformed.sort((a,b) => Date.parse(a[\"scheduled\"]) - Date.parse(b[\"scheduled\"]));\r\n return response\r\n }\r\n\r\n private transformArrivals(response: any, mode: string){\r\n var transformed: any[] = [];\r\n\r\n var temp: any[] = [];\r\n if(mode != 'rail'){\r\n for (let [key, value] of Object.entries(response)) {\r\n temp.push(value);\r\n }\r\n response = temp;\r\n }\r\n\r\n for (const d of (response as any)){\r\n\r\n if(mode == \"rail\"){\r\n var date = d.depart_time.substring(0, 10) + 'T' + d.depart_time.substring(11); //\"1997-07-16T19:20+01:00\" vs //2020-04-16 16:45:00.000\r\n\r\n transformed.push( {\r\n id: d.train_id,\r\n mode: \"rail\",\r\n route: d.line,\r\n scheduled: date,\r\n origin: d.origin,\r\n destination: d.destination,\r\n status: d.status == 'On Time' ? 'On-time' : d.status + ' late',\r\n type: d.service_type\r\n });\r\n }\r\n else{\r\n for(const e of d){\r\n if(e.DirectionDesc.includes('\"')){\r\n e.DirectionDesc = e.DirectionDesc.replace('\"','');\r\n }\r\n //DateCalender\r\n //\"1997-07-16T19:20+01:00\" vs 04/17/20 12:59 pm\r\n\r\n transformed.push( {\r\n id: e.Route,\r\n mode: \"transit\",\r\n route: e.Route,\r\n scheduled: e.DateCalender,\r\n origin: e.Route,\r\n destination: e.DirectionDesc,\r\n status: 'Scheduled',\r\n type: 'Scheduled'\r\n });\r\n }\r\n }\r\n }\r\n transformed.sort((a,b) => Date.parse(a[\"scheduled\"]) - Date.parse(b[\"scheduled\"]));\r\n return transformed\r\n }\r\n\r\n private format_gtfs_actual_time(time: any) {\r\n\r\n var current_date: Date = new Date();\r\n\r\n var hour: number = time.toString().slice(0, 2);\r\n var minute: string = time.toString().slice(3, 5);\r\n var period: string = ' am';\r\n\r\n if (hour <= 12) {\r\n current_date.setHours(hour);\r\n }\r\n\r\n if (hour >= 12) {\r\n period = ' pm';\r\n }\r\n\r\n if (hour > 23) {\r\n hour = hour - 24;\r\n if (hour < 12) {\r\n period = ' am';\r\n }\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n\r\n current_date.setDate(current_date.getDate() + 1);\r\n current_date.setHours(hour);\r\n }\r\n\r\n if (hour > 12 && hour < 24) {\r\n current_date.setHours(hour);\r\n hour = hour - 12;\r\n }\r\n\r\n current_date.setMinutes(Number(minute));\r\n current_date.setSeconds(0);\r\n\r\n return current_date.getTime();\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { StopsService } from '../../services/stops.service';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { RouteDirectionsService } from '../../services/route-directions.service';\r\n\r\nconst rail_routes: any = Array(\"AIR\", \"CHE\", \"CHW\", \"LAN\", \"MED\", \"FOX\", \"NOR\", \"PAO\", \"CYN\", \"TRE\", \"WAR\", \"WIL\", \"WTR\", \"GC\");\r\n\r\n@Component({\r\n selector: 'app-schedules',\r\n templateUrl: './schedules.component.html',\r\n styleUrls: ['./schedules.component.css']\r\n})\r\nexport class SchedulesComponent implements OnInit {\r\n\r\n public recent_routes: any = [];\r\n public routes: any = [];\r\n public subway_routes: string[] = [\"Market/ Frankford\", \"Broad Street Line\", \"Norristown High Speed Line\"];\r\n public trolley_routes: string[] = [\"Trolley\"];\r\n\r\n constructor(private route: ActivatedRoute, private routeService: RouteService,) {\r\n var recent_routes = localStorage.getItem(\"recent_routes\");\r\n\r\n if (recent_routes != null) {\r\n\r\n if (Array.isArray(JSON.parse(recent_routes)) === true) {\r\n this.recent_routes = JSON.parse(recent_routes);\r\n }\r\n else {\r\n this.recent_routes.push(recent_routes);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.routeService.get().subscribe(routes => {\r\n this.routes = routes;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Schedules

\r\n \r\n
\r\n\r\n
0\">\r\n

Recently Visited

\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-four-oh-four',\r\n templateUrl: './four-oh-four.component.html',\r\n styleUrls: ['./four-oh-four.component.css']\r\n})\r\nexport class FourOhFourComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n

Oops!

\r\n

Error code: 404

\r\n

We can't seem to find the page you were looking for.

\r\n

Pick and choo-choose some of the popular features listed below.

\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { TripsService } from '../../services/trips.service';\r\nimport { SchedulesService } from '../../services/schedules.service';\r\nimport { Trip } from 'src/app/interfaces/trip';\r\n\r\n@Component({\r\n selector: 'app-trip-detail',\r\n templateUrl: './trip-detail.component.html',\r\n styleUrls: ['./trip-detail.component.css']\r\n})\r\nexport class TripDetailComponent implements OnInit {\r\n\r\n public trips: any[] = [];\r\n public schedules: any[] = [];\r\n private selected_trip: string;\r\n\r\n constructor(private tripsService: TripsService, private schedulesService: SchedulesService, private route: ActivatedRoute) {\r\n if(this.route.snapshot.paramMap.get('block') != \"\"){\r\n this.selected_trip = this.route.snapshot.paramMap.get('block')\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getTrips();\r\n this.getSchedule(this.selected_trip);\r\n }\r\n\r\n getTrips(): void {\r\n this.tripsService.get(this.selected_trip)\r\n .subscribe(trips => this.trips = trips);\r\n }\r\n\r\n getSchedule(block: string): void {\r\n this.schedulesService.get(block)\r\n .subscribe(schedules => this.schedules = schedules);\r\n }\r\n} \r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Details\r\n
\r\n
\r\n

{{ trip.id }}

\r\n
\r\n
\r\n
to {{ trip.destination }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
0 }\">\r\n {{ trip.status }}\r\n
\r\n

Line: {{ trip.route }}

\r\n

Destination: {{ trip.destination }}

\r\n

Current Stop: {{ trip.currentstop }}

\r\n

Next Stop: {{ trip.nextstop }}

\r\n

Cars: {{ trip.cars }} - {{ trip.vehicle }}

\r\n

Type: {{ trip.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 \r\n \r\n \r\n
StopScheduledEstimatedActual
{{ schedule.stop }} {{ schedule.scheduled }} {{ schedule.estimated }} {{ schedule.actual }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Map\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\"\r\nimport { forkJoin } from 'rxjs';\r\nimport { ScheduleService } from '../../services/schedule.service';\r\nimport { TripsService } from '../../services/trips.service';\r\n\r\n@Component({\r\n selector: 'app-schedule-route-today',\r\n templateUrl: './schedule-route-today.component.html',\r\n styleUrls: ['./schedule-route-today.component.css']\r\n})\r\nexport class ScheduleRouteTodayComponent implements OnInit {\r\n\r\n public selected_route: string = \"1\";\r\n public selected_direction: string = \"0\";\r\n public selected_stop: string;\r\n public selected_date: string = \"Today\";\r\n public selected_service_id: string = \"\";\r\n public selected_special_service: Boolean = false;\r\n public current_date: any = new Date().getTime() - 600000;\r\n public calendar: any;\r\n public route_service: any;\r\n public timetable: any;\r\n public stop_times: any;\r\n public stops: any[];\r\n public first_stop: any = \"\";\r\n\r\n public service_ids: any;\r\n\r\n constructor(private route: ActivatedRoute, private scheduleService: ScheduleService, private tripsService: TripsService) { \r\n\r\n this.selected_route = this.route.snapshot.paramMap.get('route');\r\n this.selected_direction = this.route.snapshot.paramMap.get('direction');\r\n this.selected_stop = this.route.snapshot.paramMap.get('stop');\r\n\r\n if(this.route.snapshot.paramMap.get('date')){\r\n this.selected_date = this.route.snapshot.paramMap.get('date');;\r\n }\r\n else{\r\n this.selected_date = this.scheduleService.get_date();\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.refresh();\r\n\r\n }\r\n\r\n public refresh(): void{\r\n this.scheduleService.get_serivce().subscribe((data) => {\r\n\r\n this.calendar = data[\"calendar\"];\r\n this.route_service = data[\"route_service\"];\r\n\r\n var valid_service_id = this.route_service[this.selected_route];\r\n var active_service_id: any[] = data[\"calendar\"][this.selected_date][\"service_id\"];\r\n this.selected_special_service = data[\"calendar\"][this.selected_date][\"special\"];\r\n\r\n for(const service_id of valid_service_id){\r\n\r\n if(active_service_id.includes(service_id) && this.selected_stop != null){\r\n this.selected_service_id = service_id;\r\n\r\n var schedule = this.scheduleService.get_stop_schedule(this.selected_route, this.selected_stop, service_id);\r\n var realtime = this.tripsService.get_trips(this.selected_route)\r\n\r\n forkJoin({ scheduled: schedule, realtime: realtime}).subscribe( ({scheduled, realtime}) => {\r\n\r\n var entries_scheduled = Object.entries(scheduled);\r\n var entries_realtime = Object.entries(realtime);\r\n\r\n var stop_times: any = [];\r\n\r\n for(const schedule_trip of entries_scheduled){\r\n\r\n var trip = {\r\n \"block_id\": schedule_trip[1].block_id,\r\n \"service_id\": service_id,\r\n \"trip_id\": schedule_trip[1][\"trip_id\"].slice(schedule_trip[1][\"trip_id\"].lastIndexOf('_') + 1),\r\n \"actual_trip_id\": schedule_trip[1][\"trip_id\"],\r\n \"next_stop_name\": \"\",\r\n \"next_stop_sequence\": \"\",\r\n \"destination\": schedule_trip[1].destination,\r\n \"vehicle_id\": \"\",\r\n \"status\": \"Scheduled\",\r\n \"delay\": -999,\r\n \r\n \"actual_arrival_time\": schedule_trip[1].actual_arrival_time,\r\n \"arrival_time\": schedule_trip[1].arrival_time,\r\n \"stop_sequence\": schedule_trip[1].stop_sequence,\r\n \"direction_id\": schedule_trip[1].direction_id,\r\n \"trip_headsign\": schedule_trip[1].trip_headsign,\r\n };\r\n\r\n\r\n if(schedule_trip[1][\"service_id\"] == service_id){\r\n\r\n for(const realtime_trip of entries_realtime){\r\n\r\n var trip_id = schedule_trip[1][\"trip_id\"].slice(schedule_trip[1][\"trip_id\"].lastIndexOf('_') + 1);\r\n\r\n if(schedule_trip[1].mode == 'rail'){\r\n var split = schedule_trip[1][\"trip_id\"].split(\"_\")\r\n trip_id = split[2];\r\n }\r\n\r\n if(realtime_trip[1].trip_id == trip_id){\r\n\r\n if(realtime_trip[1].delay > 0){\r\n schedule_trip[1].actual_arrival_time = schedule_trip[1].actual_arrival_time - (realtime_trip[1].delay * 60);\r\n }\r\n\r\n trip = {\r\n \"block_id\": realtime_trip[1].block_id,\r\n \"service_id\": service_id,\r\n \"trip_id\": realtime_trip[1].trip_id,\r\n \"actual_trip_id\": schedule_trip[1].trip_id,\r\n \"next_stop_name\": realtime_trip[1].next_stop_name,\r\n \"next_stop_sequence\": realtime_trip[1].next_stop_sequence,\r\n \"destination\": realtime_trip[1].destination,\r\n \"vehicle_id\": realtime_trip[1].vehicle,\r\n \"status\": realtime_trip[1].status,\r\n \"delay\": realtime_trip[1].delay,\r\n \r\n \"actual_arrival_time\": schedule_trip[1].actual_arrival_time,\r\n \"arrival_time\": schedule_trip[1].arrival_time,\r\n \"stop_sequence\": schedule_trip[1].stop_sequence,\r\n \"direction_id\": schedule_trip[1].direction_id,\r\n \"trip_headsign\": schedule_trip[1].trip_headsign,\r\n };\r\n }\r\n }\r\n \r\n if(this.current_date <= schedule_trip[1].actual_arrival_time){\r\n stop_times.push(trip);\r\n }\r\n }\r\n }\r\n\r\n if(stop_times.length > 0){\r\n this.stop_times = stop_times;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n We are operating modified service on this day. Make sure to check our service alerts and advisories\r\n for other changes in service.\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = current_date || (times.next_stop_sequence <= times.stop_sequence && times.next_stop_sequence != null) ) && times.direction_id == selected_direction\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Block vehicleDestinationDeparture
{{ times.block_id }}\r\n
{{times.vehicle_id}}
\r\n
{{ times.trip_headsign }} {{ times.arrival_time }}\r\n \r\n {{times.status}}\r\n \r\n -900\">\r\n {{times.status}}\r\n \r\n = 1 && times.delay < 900\">\r\n {{times.status}}\r\n \r\n \r\n {{times.status}}\r\n \r\n \r\n {{times.status}}\r\n \r\n \r\n
Next stop {{times.next_stop_name}}
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { MessageService } from '../services/message.service';\r\n\r\nconst routesUrl = \"assets/json/routes.json\";\r\nconst stopsUrl = \"assets/json/stops.json\";\r\nconst stationsUrl = \"assets/json/stations.json\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OmniSearchService {\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' })\r\n };\r\n\r\n private stations: any;\r\n private stops: any;\r\n\r\n constructor(private http: HttpClient, private messageService: MessageService) { }\r\n\r\n get():Observable {\r\n return this.http.get(stationsUrl)\r\n .pipe(\r\n map ((array: any) => array = this.transform(array, 'station')),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n search(term: string):Observable {\r\n var stations = this.searchStations(term);\r\n var stops = this.searchStop(term);\r\n var routes = this.searchRoutes(term);\r\n\r\n var found = forkJoin( routes, stations, stops).subscribe(results => {\r\n var combined : any; // = {...results[0], ...object2 }\r\n if(typeof(results[0]) == \"object\" && typeof(results[1]) == \"object\" && typeof(results[2]) == \"object\"){\r\n combined = [{...results[0], ...results[1], ...results[2] }];\r\n }\r\n console.log(combined);\r\n\r\n return combined;\r\n });\r\n\r\n return routes;\r\n }\r\n\r\n /* GET stations whose name contains search term */\r\n public searchStations(term: string): Observable {\r\n if (!term.trim()) {\r\n return of([]);\r\n }\r\n return this.http.get(stationsUrl)\r\n .pipe(\r\n map ((array: any) => array = this.find(array, term)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n /* GET stops whose name contains search term */\r\n public searchStop(term: string): Observable {\r\n if (!term.trim()) {\r\n return of([]);\r\n }\r\n return this.http.get(stopsUrl)\r\n .pipe(\r\n map ((array: any) => array = this.find(array, term)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n /* GET routes whose name contains search term */\r\n public searchRoutes(term: string): Observable {\r\n if (!term.trim()) {\r\n return of([]);\r\n }\r\n return this.http.get(routesUrl)\r\n .pipe(\r\n map ((array: any) => array = this.find(array, term)),\r\n tap (_ => this.log('fetched trains')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n private find(response: any, term: string): any{\r\n var searched: any[] = [];\r\n for(const array of response){\r\n if(this.searchArray(array, term)){\r\n searched.push(array);\r\n }\r\n }\r\n\r\n return searched;\r\n }\r\n\r\n private searchArray(array: any, term: string){\r\n for( let i in array) {\r\n if(i == 'StopName' || (i == 'route_name' && array[\"sequence\"] != null )){\r\n if(array[i].toLowerCase().indexOf(term.toLowerCase()) !== -1){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n private transform(response: any, type: string){\r\n for (const d of response){\r\n if(type == \"station\"){\r\n\r\n }\r\n }\r\n return response\r\n }\r\n\r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Route } from '../interfaces/route';\r\nimport { MessageService } from '../services/message.service';\r\nconst directionsUrl = \"assets/json/directions.json\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteDirectionsService {\r\n\r\n constructor( private http: HttpClient,\r\n private messageService: MessageService) {\r\n\r\n }\r\n\r\n get (route: string): Observable {\r\n return this.http.get(directionsUrl)\r\n .pipe(\r\n map ((array: any) => array = this.transform(array, route)),\r\n tap (_ => this.log('fetched routes')),\r\n catchError (this.handleError('get', []))\r\n );\r\n }\r\n\r\n private transform(reponse: any, route: string): any{\r\n var directions: any = [];\r\n\r\n for(const routes of reponse){\r\n if(routes.Route == route){\r\n directions.push(routes);\r\n }\r\n }\r\n\r\n return directions;\r\n }\r\n \r\n private handleError (operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log('${operation} failed: ${error.message}');\r\n\r\n //Load the stored routes.json show no data message.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a RouteService message with the MessageService */\r\n private log(message: string) {\r\n this.messageService.add(`RouteService: ${message}`);\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from \"@angular/router\"\r\nimport * as L from 'leaflet';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { MapService } from '../../services/map.service';\r\nimport { KmlService } from '../../services/kml.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\nimport { StopsService } from '../../services/stops.service';\r\nimport { timer } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-embedded-map',\r\n templateUrl: './embedded-map.component.html',\r\n styleUrls: ['./embedded-map.component.css']\r\n})\r\nexport class EmbeddedMapComponent implements AfterViewInit {\r\n private map: any;\r\n public current_position: any = null;\r\n private detailed: any;\r\n private id: string;\r\n public schedule: any = [{ 'block_id': null, trip_headsign: \"\" }];\r\n public selected_direction: any = 0;\r\n public selected_stop: any;\r\n\r\n private transitRefresh: any;\r\n\r\n constructor(private routeService: RouteService, private mapService: MapService, private kmlService: KmlService, private markersService: MarkersService, private router: Router, private route: ActivatedRoute, private stopsService: StopsService) {\r\n\r\n this.id = this.route.snapshot.paramMap.get('route');\r\n this.selected_direction = this.route.snapshot.paramMap.get('direction');\r\n this.selected_stop = this.route.snapshot.paramMap.get('stop');\r\n //console.log(\"The route is \" + this.router.url.substring(1, 10));\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.mapService.initMap();\r\n if (this.mapService.map != null) {\r\n this.mapService.map.off();\r\n this.mapService.map.remove();\r\n }\r\n\r\n this.mapService.initMap();\r\n\r\n\r\n if (this.id != null) {\r\n this.routeService.getStatic(this.id).subscribe(routes => {\r\n this.detailed = routes[0];\r\n this.detailed = { id: this.id, name: routes[0]['route_name'], mode: routes[0]['mode'] };\r\n\r\n if (this.selected_stop != undefined) {\r\n this.kmlService.get(this.mapService.map, this.detailed, false);\r\n\r\n this.markersService.addStopMarkers(this.mapService.map, this.id, this.selected_direction, this.selected_stop);\r\n }\r\n else {\r\n this.kmlService.get(this.mapService.map, this.detailed, true);\r\n }\r\n\r\n this.transitRefresh = timer(1000, 5000).subscribe(t => {\r\n this.markersService.fetch(this.mapService.map, this.detailed);\r\n });\r\n });\r\n }\r\n else {\r\n this.detailed = this.routeService.detailed;\r\n this.kmlService.get(this.mapService.map, this.detailed);\r\n\r\n this.transitRefresh = timer(1000, 5000).subscribe(t => {\r\n this.markersService.fetch(this.mapService.map, this.detailed);\r\n });\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.transitRefresh.unsubscribe();\r\n }\r\n \r\n}\r\n","
","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as omnivore from '@mapbox/leaflet-omnivore'\r\nimport * as L from 'leaflet';\r\nimport { Route } from '../interfaces/route';\r\nimport { MapService } from '../services/map.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst baseUrl: string = \"https://www3.septa.org/realtime/kml/kml.php?route=\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KmlService {\r\n\r\n public map: any;\r\n private layers: any = L.featureGroup();\r\n\r\n constructor(private http: HttpClient, private mapService: MapService) { }\r\n\r\n get(map: L.map, route: Route, focused: boolean = true) {\r\n var mode = 'bus';\r\n var line = route.id.toUpperCase();\r\n if (route.mode == \"Regional Rail\") {\r\n mode = 'rail';\r\n line = line.toUpperCase();\r\n }\r\n\r\n if(line == 'MEDIA/WAWA'){\r\n line = 'MED';\r\n }\r\n\r\n if (focused) {\r\n var layer = omnivore.kml('https://www3.septa.org/realtime/kml/kml.php?route=' + line + '&type=' + mode)\r\n .on('ready', function () {\r\n this.options._markertype = 'kml';\r\n map.fitBounds(layer.getBounds());\r\n })\r\n .addTo(map);\r\n }\r\n else{\r\n var layer = omnivore.kml('https://www3.septa.org/realtime/kml/kml.php?route=' + line + '&type=' + mode)\r\n .on('ready', function () {\r\n this.options._markertype = 'kml';\r\n })\r\n .addTo(map);\r\n }\r\n\r\n this.layers.addLayer(layer);\r\n }\r\n\r\n set(route_id: string, focused: boolean = true) {\r\n var mode = 'bus';\r\n\r\n if (GlobalVariables.railRoutes.includes(route_id)) {\r\n mode = 'rail';\r\n }\r\n\r\n if (focused) {\r\n var layer = omnivore.kml('https://www3.septa.org/realtime/kml/kml.php?route=' + route_id + '&type=' + mode)\r\n .on('ready', function () {\r\n this.options._markertype = 'kml';\r\n this.mapService.map.fitBounds(layer.getBounds());\r\n })\r\n .addTo(this.mapService.map);\r\n }\r\n else{\r\n var layer = omnivore.kml('https://www3.septa.org/realtime/kml/kml.php?route=' + route_id + '&type=' + mode)\r\n .on('ready', function () {\r\n this.options._markertype = 'kml';\r\n })\r\n .addTo(this.mapService.map);\r\n }\r\n\r\n this.layers.addLayer(layer);\r\n }\r\n\r\n clear(map: L.map) {\r\n map.eachLayer(function (layer: any) {\r\n if (layer.options._markertype == 'kml') {\r\n map.removeLayer(layer);\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n transform(route: Route): string {\r\n var i = route.legacy.lastIndexOf(\"_\") + 1;\r\n var line: string = route.legacy.toUpperCase().substring(i);\r\n\r\n switch (line) {\r\n case 'APT':\r\n line = 'AIR';\r\n break;\r\n case 'FXC':\r\n line = 'FOX';\r\n break;\r\n case 'LANDDOY':\r\n line = 'LAN';\r\n break;\r\n case 'TRENT':\r\n line = 'TRE'\r\n break;\r\n case 'WARM':\r\n line = 'WAR';\r\n break;\r\n case 'WILM':\r\n line = 'WIL';\r\n break;\r\n case 'WTREN':\r\n line = 'WTR';\r\n break;\r\n case 'MEDIA/WAWA':\r\n line = 'MED';\r\n }\r\n\r\n return line;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-main-footer',\r\n templateUrl: './main-footer.component.html',\r\n styleUrls: ['./main-footer.component.css']\r\n})\r\nexport class MainFooterComponent implements OnInit {\r\n\r\n public anio: number = new Date().getFullYear();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Router } from '@angular/router';\r\nimport { Route } from '../../interfaces/route';\r\nimport { StopsService } from '../../services/stops.service';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { ScheduleService } from '../../services/schedule.service';\r\nimport { GlobalVariables } from '../../common/global-variables';\r\nimport { KmlService } from '../../services/kml.service';\r\nimport { TripsService } from '../../services/trips.service';\r\nimport { timer } from 'rxjs';\r\nimport { MapService } from '../../services/map.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\n\r\n@Component({\r\n selector: 'app-trip-schedules',\r\n templateUrl: './trip-schedules.component.html',\r\n styleUrls: ['./trip-schedules.component.css']\r\n})\r\nexport class TripSchedulesComponent implements OnInit {\r\n public trip_id: string;\r\n public schedule: any = [{ 'block_id': null, trip_headsign: \"\" }];\r\n public routes: any;\r\n public route_id: string;\r\n public route_name: string;\r\n public trip_headsign: string;\r\n public start_time: string;\r\n public end_time: string;\r\n public current_stop: string;\r\n public next_stop_id: string;\r\n public next_stop_name: string;\r\n public next_stop_sequence: string;\r\n public car_count: number;\r\n public cars: string;\r\n public vehicle: string;\r\n public type: string;\r\n public realtime: any;\r\n public late: number;\r\n public status: string = \"Scheduled\";\r\n public estimated_seat_availability: string;\r\n public estimated_seat_availability_html: string;\r\n public transitRefresh: any;\r\n\r\n public embedded_map: any;\r\n\r\n constructor(private route: ActivatedRoute, private stopsService: StopsService, private routeService: RouteService, private scheduleService: ScheduleService, private mapService: MapService, private kmlService: KmlService, private markersService: MarkersService, private tripsService: TripsService) { }\r\n\r\n ngOnInit(): void {\r\n this.trip_id = this.route.snapshot.paramMap.get('trip');\r\n if (this.trip_id != \"\") {\r\n this.getSchedule(this.trip_id);\r\n }\r\n }\r\n\r\n getSchedule(trip: any): void {\r\n this.stopsService.getTripStopTimes(trip)\r\n .subscribe(schedule => {\r\n\r\n this.schedule = schedule;\r\n\r\n this.route_id = schedule[0].route_id;\r\n this.trip_headsign = schedule[0].trip_headsign;\r\n this.start_time = schedule[0].arrival_time;\r\n this.end_time = schedule[schedule.length - 1].arrival_time;\r\n\r\n this.getRoutes();\r\n\r\n this.getRealtime(this.route_id, schedule);\r\n\r\n this.kmlService.set(this.route_id, false);\r\n\r\n });\r\n }\r\n\r\n getRoutes(): void {\r\n this.routeService.get()\r\n .subscribe(routes => {\r\n this.routes = routes;\r\n\r\n for (let i in routes) {\r\n if (routes[i].id == this.route_id) {\r\n this.route_name = routes[i].name;\r\n }\r\n }\r\n\r\n this.realtime = this.routeService.realtime;\r\n });\r\n }\r\n\r\n getRealtime(route_id: string, schedule: any = null): void {\r\n this.scheduleService.get_realtime_status(route_id).subscribe(trips => {\r\n var extracted_trips = Object.entries(trips);\r\n for (let trip in extracted_trips) {\r\n\r\n var trip_id = extracted_trips[trip][1].trip;\r\n var requested_trip_id = this.trip_id.split(\"_\").pop();\r\n var mode = 'bus'\r\n\r\n if (GlobalVariables.railRoutes.includes(route_id)) {\r\n requested_trip_id = this.trip_id.split(\"_\")[2];\r\n mode = 'rail'\r\n }\r\n\r\n if (requested_trip_id == trip_id) {\r\n\r\n var seat_estimate = 'No Estimate';\r\n var many_seats = \"MANY_SEATS_AVAILABLE\";\r\n var few_seats = \"FEW_SEATS_AVAILABLE\";\r\n var standing_seats = \"STANDING_ROOM_ONLY\";\r\n\r\n if(extracted_trips[trip][1].estimated_seat_availability == many_seats){\r\n seat_estimate = 'Many Seats';\r\n }\r\n if(extracted_trips[trip][1].estimated_seat_availability == few_seats){\r\n seat_estimate = 'Few Seats';\r\n }\r\n if(extracted_trips[trip][1].estimated_seat_availability == standing_seats){\r\n seat_estimate = 'Standing room only';\r\n }\r\n\r\n this.next_stop_name = extracted_trips[trip][1].next_stop_name;\r\n this.next_stop_sequence = extracted_trips[trip][1].next_stop_sequence;\r\n this.next_stop_id = extracted_trips[trip][1].next_stop_id;\r\n this.late = extracted_trips[trip][1].late;\r\n this.status = this.scheduleService.format_status(this.late);\r\n this.estimated_seat_availability = extracted_trips[trip][1].estimated_seat_availability;\r\n this.estimated_seat_availability_html = seat_estimate;\r\n this.vehicle = extracted_trips[trip][1].VehicleID;\r\n this.cars = extracted_trips[trip][1].cars;\r\n this.car_count = this.cars != null ? this.cars.split(\",\").length : null;\r\n this.type = extracted_trips[trip][1].type;\r\n\r\n if (this.next_stop_sequence == null) {\r\n for (const stop of schedule) {\r\n if (stop.stop_name == this.next_stop_name) {\r\n this.next_stop_id = stop.stop_id;\r\n this.next_stop_sequence = stop.stop_sequence;\r\n }\r\n }\r\n }\r\n\r\n this.tripsService.get(requested_trip_id, mode, route_id).subscribe();\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if( typeof this.tripsService.transitRefresh != \"undefined\"){\r\n this.markersService.clearMarkers(this.mapService.map);\r\n this.tripsService.transitRefresh.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n Block\r\n

{{ schedule[0].block_id }}

\r\n\r\n

{{ trip_headsign }}

\r\n\r\n \r\n \r\n

\r\n \r\n

\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
0 && late < 999, 'alert-danger': late == 999}\">\r\n {{ status}}\r\n
\r\n

Route: {{ route_name }}

\r\n

Destination: {{ trip_headsign }}

\r\n

Start Time: {{ start_time }}

\r\n

End Time: {{ end_time }}

\r\n

Next Stop: {{ next_stop_name }}

\r\n

Cars: {{ car_count }} - {{ cars }}

\r\n

Vehicle: {{ vehicle }}

\r\n

Type: {{ type }}

\r\n

Estimated Seats: \r\n {{ estimated_seat_availability_html }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n times.stop_sequence && next_stop_sequence != null}\">\r\n \r\n \r\n \r\n \r\n
StopScheduled
\r\n
\r\n {{ times.stop_name }}\r\n
\r\n
\r\n times.stop_sequence\">Departed\r\n 0 && late < 999, 'badge-danger': late == 999}\" *ngIf=\"next_stop_sequence <= times.stop_sequence\">{{ status }}\r\n
\r\n
\r\n
0 && next_stop_sequence <= times.stop_sequence && late < 900}\">\r\n {{ times.arrival_time }} \r\n
\r\n
0 && late < 900\">\r\n {{ (times.actual_arrival_time + ( late * 60000)) | date:'hh:mm a' | lowercase }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Map\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.css']\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\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 MessageService {\r\n messages: string[] = [];\r\n\r\n add(message: string) {\r\n this.messages.push(message);\r\n }\r\n\r\n clear() {\r\n this.messages = [];\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport {Router} from \"@angular/router\"\r\nimport { Route } from '../../interfaces/route';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { StatusService } from '../../services/status.service';\r\n\r\n@Component({\r\n selector: 'app-route-selection',\r\n templateUrl: './route-selection.component.html',\r\n styleUrls: ['./route-selection.component.css']\r\n})\r\n\r\nexport class RouteSelectionComponent implements OnInit {\r\n selectLimit: number = 3;\r\n routes: Route[];\r\n selectedRoutes: Route[] = [];\r\n statuses: Route[] = [];\r\n\r\n constructor(private statusService: StatusService, private routeService: RouteService, private router: Router) {\r\n this.selectedRoutes = this.routeService.selected;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getRoutes();\r\n this.selectedRoutes = this.routeService.selected;\r\n this.routeService.cast.subscribe(user=> this.selectedRoutes = user);\r\n }\r\n\r\n getRoutes(): void {\r\n this.statusService.get()\r\n .subscribe(statuses => this.statuses = statuses);\r\n }\r\n\r\n onSelect(route: Route): void {\r\n var index: number = this.selectedRoutes.indexOf(route);\r\n\r\n if(this.selectLimit <= this.selectedRoutes.length && index === -1){\r\n this.selectedRoutes.pop();\r\n }\r\n\r\n if(index === -1){\r\n this.selectedRoutes.push(route);\r\n }\r\n else{\r\n this.selectedRoutes.splice(index, 1);\r\n }\r\n\r\n this.routeService.select(this.selectedRoutes);\r\n }\r\n\r\n onRemove(route: Route): void{\r\n this.selectedRoutes.splice(this.selectedRoutes.indexOf(route), 1);\r\n }\r\n\r\n onDetail(route: Route): void{\r\n this.routeService.detail(route);\r\n this.router.navigate(['/routes/status'])\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
Click this button to select a route.
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{route.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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ route.name }}     
\r\n
{{ route.description }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ route.name }}     \r\n
{{ route.description }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ route.name }}     \r\n
{{ route.description }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ route.name }}     \r\n
{{ route.description }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\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, OnInit } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport {\r\n debounceTime, distinctUntilChanged, switchMap\r\n} from 'rxjs/operators';\r\nimport { OmniSearchService } from '../../services/omni-search.service';\r\n\r\n@Component({\r\n selector: 'app-omni-search',\r\n templateUrl: './omni-search.component.html',\r\n styleUrls: ['./omni-search.component.css']\r\n})\r\nexport class OmniSearchComponent implements OnInit {\r\n results$: Observable;\r\n routes$: Observable;\r\n stops$: Observable;\r\n public searchTerms = new Subject();\r\n\r\n constructor(private omnisearchService: OmniSearchService) { }\r\n\r\n // Push a search term into the observable stream.\r\n search(term: string): void {\r\n this.searchTerms.next(term);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.results$ = this.searchTerms.pipe(\r\n // wait 300ms after each keystroke before considering the term\r\n debounceTime(300),\r\n\r\n // ignore new term if same as previous term\r\n distinctUntilChanged(),\r\n\r\n // switch to new search observable each time the term changes\r\n switchMap((term: string) => this.omnisearchService.searchStations(term)),\r\n );\r\n\r\n this.routes$ = this.searchTerms.pipe(\r\n // wait 300ms after each keystroke before considering the term\r\n debounceTime(300),\r\n\r\n // ignore new term if same as previous term\r\n distinctUntilChanged(),\r\n\r\n // switch to new search observable each time the term changes\r\n switchMap((term: string) => this.omnisearchService.searchRoutes(term)),\r\n );\r\n\r\n this.stops$ = this.searchTerms.pipe(\r\n // wait 300ms after each keystroke before considering the term\r\n debounceTime(300),\r\n\r\n // ignore new term if same as previous term\r\n distinctUntilChanged(),\r\n\r\n // switch to new search observable each time the term changes\r\n switchMap((term: string) => this.omnisearchService.searchStop(term)),\r\n );\r\n }\r\n\r\n\r\n\r\n onDetail(trip: any): void{\r\n\r\n }\r\n\r\n}\r\n","
\r\n Search\r\n \r\n\r\n \r\n
\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from \"@angular/router\"\r\nimport * as L from 'Leaflet';\r\nimport { RouteService } from '../../services/route.service';\r\nimport { MapService } from '../../services/map.service';\r\nimport { KmlService } from '../../services/kml.service';\r\nimport { MarkersService } from '../../services/markers.service';\r\nimport { StopsService } from '../../services/stops.service';\r\n\r\n@Component({\r\n selector: 'app-embedded-map-trip',\r\n templateUrl: './embedded-map-trip.component.html',\r\n styleUrls: ['./embedded-map-trip.component.css']\r\n})\r\n\r\nexport class EmbeddedMapTripComponent implements AfterViewInit {\r\n public map: any;\r\n public route_id: string;\r\n\r\n constructor(private routeService: RouteService, private mapService: MapService, private kmlService: KmlService, private markersService: MarkersService, private router: Router, private route: ActivatedRoute, private stopsService: StopsService) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.mapService.initMap();\r\n if (this.mapService.map != null) {\r\n this.mapService.map.off();\r\n this.mapService.map.remove();\r\n }\r\n\r\n this.mapService.initMap();\r\n\r\n }\r\n}","
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as L from 'leaflet';\r\nimport { Route } from '../interfaces/route';\r\nimport { StopsService } from '../services/stops.service';\r\nimport { ScheduleService } from '../services/schedule.service';\r\nimport { GlobalVariables } from '../common/global-variables';\r\n\r\nconst trainUrl: string = \"https://www3.septa.org/api/TrainView/?callback=?\";\r\nconst transitUrl: string = 'https://www3.septa.org/api/TransitViewAll/?callback=?';\r\n\r\nconst busRed = '../../../assets/images/map/bus/bus-red.png';\r\nconst busYellow = '../../../assets/images/map/bus/bus-yellow.png';\r\nconst busBlue = '../../../assets/images/map/bus/bus-blue.png';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MarkersService {\r\n\r\n data: any[] = [];\r\n routes: Route[] = [];\r\n test: any = [];\r\n markers: any = {};\r\n schedule: string = \"\";\r\n\r\n constructor(private http: HttpClient, private stopsService: StopsService, private scheduleService: ScheduleService) {\r\n this.schedule = this.scheduleService.release_date;\r\n this.scheduleService.get_release_date().subscribe((res: any) => {\r\n this.schedule = res + \"_\";\r\n });\r\n }\r\n\r\n fetch(map: L.map, route: Route, trip: string = null) {\r\n\r\n if (route.mode == 'Regional Rail') {\r\n this.getTrains(map, route, trip);\r\n }\r\n else {\r\n this.getTranist(map, route, trip);\r\n }\r\n }\r\n\r\n getTrains(map: L.map, route: Route, trip: string = null) {\r\n return this.http.jsonp(trainUrl, 'callback').subscribe((res: any) => {\r\n for (const data of res) {\r\n const combined = this.gcCheck(route.name.replace('/', ' '), data.line.replace('/', ' '));\r\n if (route.name.replace('/', ' ') == data.line.replace('/', ' ') || combined) {\r\n const lat = data.lat;\r\n const lon = data.lon;\r\n const id = 'r_' + data.trainno;\r\n const status = data.late == 0 ? GlobalVariables.onTimeStatus : data.late > 0 ? data.late + \" \" + GlobalVariables.lateStatus : (data.late * -1) + ' ' + GlobalVariables.earlyStatus;\r\n const pop = '' +\r\n '
Route: ' + data.line.replace('/', ' ') + '
' +\r\n '' +\r\n '
Consist: ' + data.consist + '
' +\r\n '
Next Stop: ' + data.nextstop + '
' +\r\n '
Destination: ' + data.dest + '
' +\r\n '
Delay: ' + status + '
';\r\n const exist = this.moveMarker(map, [lat, lon,], id, pop, data, route);\r\n\r\n // Does this route exist in the markers?\r\n if (trip != null) {\r\n if (trip == data.trainno) {\r\n this.createMarker(map, [lat, lon], id, pop, data, route);\r\n }\r\n }\r\n else if (!exist) {\r\n this.createMarker(map, [lat, lon], id, pop, data, route);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n getTranist(map: L.map, route: Route, trip: string = null) {\r\n return this.http.jsonp(transitUrl, 'callback').subscribe((res: any) => {\r\n for (const gps of res.routes) {\r\n for (const route_id of Object.keys(gps)) {\r\n if (route.name == route_id || (route.name == \"LUCY\" && (route_id == \"LUCYGR\" || route_id == \"LUCYGO\"))) {\r\n for (const data of gps[route_id]) {\r\n const lat = data.lat;\r\n const lon = data.lng;\r\n const id = data.VehicleID != 0 ? 't_' + data.VehicleID : 'tb_' + data.BlockID;\r\n var status = data.late == 0 ? GlobalVariables.onTimeStatus : data.late > 0 ? data.late + \" \" + GlobalVariables.lateStatus : (data.late * -1) + ' ' + GlobalVariables.earlyStatus;\r\n var next_stop_name = data.next_stop_name;\r\n\r\n var seat_estimate = 'No Estimate';\r\n var many_seats = \"MANY_SEATS_AVAILABLE\";\r\n var few_seats = \"FEW_SEATS_AVAILABLE\";\r\n var standing_seats = \"STANDING_ROOM_ONLY\";\r\n\r\n if (data.estimated_seat_availability == many_seats) {\r\n seat_estimate = 'Many Seats';\r\n seat_estimate = 'Many Seats';\r\n }\r\n if (data.estimated_seat_availability == few_seats) {\r\n seat_estimate = 'Few Seats';\r\n seat_estimate = 'Few Seats';\r\n }\r\n if (data.estimated_seat_availability == standing_seats) {\r\n seat_estimate = 'Standing room only';\r\n seat_estimate = 'Standing room only';\r\n }\r\n\r\n if (!next_stop_name) {\r\n next_stop_name = 'n/a';\r\n }\r\n status = data.late == 998 ? 'Untracked' : data.late > 998 ? 'Canceled' : status;\r\n\r\n var updated_seconds = (Math.ceil((Date.now() / 1000)) - data.timestamp)\r\n \r\n if(updated_seconds > 6000) {\r\n updated_seconds = 600;\r\n }\r\n\r\n const pop = '' +\r\n '
Route: ' + route_id + '
' +\r\n '
Block: ' + data.BlockID + '
' +\r\n '' +\r\n '
Vehicle: ' + data.VehicleID + '
' +\r\n '
Direction: ' + data.Direction + '
' +\r\n '
Destination: ' + data.destination + '
' +\r\n '
Next Stop: ' + next_stop_name + '
' +\r\n '
Delay: ' + status + '
' +\r\n '
Estimated Seats: ' + seat_estimate + '
' +\r\n '
Updated: ' + updated_seconds + ' seconds ago
';\r\n\r\n if (data.late !== 9999) {\r\n const exist = this.moveMarker(map, [lat, lon,], id, pop, data, route);\r\n\r\n // Does this route exist in the markers?\r\n // Does this route exist in the markers?\r\n if (trip != null) {\r\n if (trip == data.trip) {\r\n this.createMarker(map, [lat, lon], id, pop, data, route);\r\n }\r\n }\r\n else if (!exist) {\r\n this.createMarker(map, [lat, lon], id, pop, data, route);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public addStopMarkers(map: any, selected_route: string, selected_direction: number, selected_stop: number) {\r\n\r\n this.stopsService.getStops(selected_route, selected_direction)\r\n .subscribe(data => {\r\n\r\n var schedule = data;\r\n\r\n //If stop is selected show stop on map\r\n for (const d of schedule) {\r\n\r\n var selected = false;\r\n\r\n if (d.stop_id == selected_stop) {\r\n selected = true;\r\n\r\n var marker = L.marker([d.stop_lat, d.stop_lon], { icon: this.createStopIcon(selected) }).addTo(map)\r\n .bindPopup('' + d.stop_name + '
')\r\n .openPopup();\r\n\r\n var latLngs = [marker.getLatLng()];\r\n var markerBounds = L.latLngBounds(latLngs);\r\n map.fitBounds(markerBounds);\r\n }\r\n else {\r\n\r\n var marker = L.marker([d.stop_lat, d.stop_lon], { icon: this.createStopIcon(selected) }).addTo(map)\r\n .setZIndexOffset(-50)\r\n .bindPopup('' + d.stop_name + '

' + '
Select
')\r\n //.on('click', this.router.navigateByUrl('schedules/' + this.id + '/' + this.selected_direction + '/' + d.stop_id));\r\n }\r\n\r\n marker.options._markertype = 'stop';\r\n }\r\n });\r\n }\r\n\r\n //Remove all markers for type vehicle\r\n public clearMarkers(map: L.map) {\r\n if (map != undefined) {\r\n map.eachLayer(function (layer: any) {\r\n if (layer.options._markertype == 'vehicle') {\r\n map.removeLayer(layer);\r\n return true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n //Remove all markers for type stop\r\n public clearStopMarkers(map: L.map) {\r\n map.eachLayer(function (layer: any) {\r\n if (layer.options._markertype == 'stop') {\r\n map.removeLayer(layer);\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n private createMarker(map: L.map, geo: any, id: string, pop: string, data: any, route: Route): void {\r\n var marker = L.marker(geo, { icon: this.createIcon(data, route) })\r\n marker._leaflet_id = id;\r\n marker.options._markertype = 'vehicle';\r\n marker.addTo(map);\r\n marker.bindPopup(pop);\r\n\r\n }\r\n\r\n //Take a marker, check if it exists, move it, if not create it.\r\n private moveMarker(map: L.map, geo: any, id: string, pop: string, data: any, route: Route): boolean {\r\n var exist = false;\r\n var icon = this.createIcon(data, route);\r\n map.eachLayer(function (layer: any) {\r\n if (layer._leaflet_id === id && layer.options._markertype == 'vehicle') {\r\n\r\n layer.setLatLng(geo);\r\n layer.setIcon(icon);\r\n layer.bindPopup(pop);\r\n exist = true;\r\n return true;\r\n }\r\n });\r\n return exist;\r\n }\r\n\r\n private gcCheck(combined: string, route: string) {\r\n if (combined == 'Glenside Combined' && (route == 'Lansdale Doylestown' || route == 'Warminster' || route == 'West Trenton')) {\r\n return true\r\n }\r\n return false;\r\n }\r\n\r\n // Creates the correct icon for the marker.\r\n private createIcon(data: any, route: any) {\r\n\r\n var iconUrl = '';\r\n var angle = data.heading + 180;\r\n var circleArrow = '';\r\n\r\n var iconColor = '';\r\n\r\n var iconOld;\r\n if ((data.Direction == 'EastBound') || (data.Direction == 'NorthBound')) {\r\n iconColor = '00539F'; //blue\r\n iconOld = busBlue;\r\n } else if ((data.Direction == 'WestBound') || (data.Direction == 'SouthBound')) {\r\n iconColor = 'EA0029'; //red\r\n iconOld = busRed;\r\n } else {\r\n iconColor = 'F6891F'; //orange\r\n iconOld = busYellow;\r\n }\r\n\r\n if (route.mode == \"Bus\") {\r\n iconUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' ';\r\n }\r\n else if (route.mode == \"Trolley\") {\r\n iconUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' \t \t \t \t ';\r\n }\r\n else if (route.mode == \"Regional Rail\") {\r\n switch (route.name) {\r\n case 'Warminster':\r\n iconColor = \"F7AF42\";\r\n break;\r\n case 'Cynwyd':\r\n iconColor = \"6F549E\";\r\n break;\r\n case 'West Trenton':\r\n iconColor = \"5D5EBC\";\r\n break;\r\n case 'Fox Chase':\r\n iconColor = \"FF823D\";\r\n break;\r\n case 'Lansdale Doylestown':\r\n iconColor = \"775B49\";\r\n break;\r\n case 'Chestnut Hill West':\r\n iconColor = \"00B4B2\";\r\n break;\r\n case 'Chestnut Hill East':\r\n iconColor = \"94763C\";\r\n break;\r\n case 'Media Elwyn':\r\n iconColor = \"007CC8\";\r\n break;\r\n case 'Manayunk Norristown':\r\n iconColor = \"EE4C69\";\r\n break;\r\n case 'Wilmington Newark':\r\n iconColor = \"8AD16B\";\r\n break;\r\n case 'Trenton':\r\n iconColor = \"F683C9\";\r\n break;\r\n case 'Paoli Thorndale':\r\n iconColor = \"20825C\";\r\n break;\r\n case 'Airport':\r\n iconColor = \"91456C\";\r\n break;\r\n default:\r\n iconColor = \"00539F\";\r\n }\r\n iconUrl = 'data:image/svg+xml;utf-8, ' + circleArrow + ' ';\r\n }\r\n\r\n var icon = L.icon({\r\n iconUrl: iconUrl,\r\n iconAnchor: [20, 23],\r\n });\r\n\r\n return icon;\r\n }\r\n\r\n public createStopIcon(selected: boolean) {\r\n\r\n var stroke: string = \"rgb(51, 136, 255)\"\r\n var iconUrl: string = 'data:image/svg+xml;utf-8, '\r\n\r\n if (selected) {\r\n var iconUrl: string = 'data:image/svg+xml;utf-8, '\r\n }\r\n\r\n var icon = L.icon({\r\n iconUrl: iconUrl,\r\n iconSize: [40, 40],\r\n iconAnchor: [20, 20]\r\n });\r\n\r\n return icon;\r\n }\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { RouteSelectionComponent } from './components/route-selection/route-selection.component';\r\nimport { MapComponent } from './components/map/map.component';\r\nimport { SystemStatusComponent } from './components/system-status/system-status.component';\r\nimport { NtaComponent } from './components/nta/nta.component';\r\nimport { TrainviewComponent } from './components/trainview/trainview.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { ScheduleRoutesComponent } from './components/schedule-routes/schedule-routes.component';\r\nimport { SchedulesComponent } from './components/schedules/schedules.component';\r\nimport { ScheduleRouteDetailsComponent } from './components/schedule-route-details/schedule-route-details.component';\r\nimport { ScheduleTimetableComponent } from './components/schedule-timetable/schedule-timetable.component';\r\nimport { RouteStatusComponent } from './components/route-status/route-status.component';\r\nimport { TripDetailComponent } from './components/trip-detail/trip-detail.component';\r\nimport { StopComponent } from './components/stop/stop.component';\r\nimport { StopDetailsComponent } from './components/stop-details/stop-details.component';\r\nimport { TripSchedulesComponent } from './components/trip-schedules/trip-schedules.component';\r\nimport { FourOhFourComponent } from './components/four-oh-four/four-oh-four.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {path: '', component: DashboardComponent},\r\n {path: 'dashboard', component: DashboardComponent},\r\n {path: 'routes', component: RouteSelectionComponent},\r\n {path: 'routes/status', component: RouteStatusComponent},\r\n {path: 'routes/status/:route', component: RouteStatusComponent},\r\n {path: 'system', component: SystemStatusComponent},\r\n {path: 'system/:mode', component: SystemStatusComponent},\r\n {path: 'train', component: TrainviewComponent},\r\n {path: 'map', component: MapComponent},\r\n {path: 'trip/detail', component: TripDetailComponent},\r\n {path: 'trip/detail/:block', component: TripDetailComponent},\r\n {path: 'nta', component: NtaComponent},\r\n {path: 'schedules-old', component: ScheduleRoutesComponent},\r\n {path: 'schedules', component: SchedulesComponent},\r\n {path: 'schedules/:route', component: ScheduleRouteDetailsComponent},\r\n {path: 'schedules/:route/:direction', component: ScheduleRouteDetailsComponent},\r\n {path: 'schedules/:route/:direction/:stop', component: ScheduleRouteDetailsComponent},\r\n {path: 'schedule/trip/:trip', component: TripSchedulesComponent},\r\n {path: 'schedule/timetable/:route', component: ScheduleTimetableComponent},\r\n {path: 'schedule/timetable/:route/:direction', component: ScheduleTimetableComponent},\r\n {path: 'schedule/timetable/:route/:direction/:date', component: ScheduleTimetableComponent},\r\n {path: 'stop/:stop', component: StopDetailsComponent},\r\n {path: 'stop/:mode/:stop/:id', component: StopComponent},\r\n {path: 'systemstatus', component: SystemStatusComponent},\r\n {path: 'bus_trolley/:id', component: RouteStatusComponent},\r\n {path: 'bus_trolley', component: MapComponent},\r\n {path: 'regionalrail', component: TrainviewComponent},\r\n {path: '**', component: FourOhFourComponent}\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport {\r\n debounceTime, distinctUntilChanged, switchMap\r\n} from 'rxjs/operators';\r\n\r\nimport { Trip } from '../../interfaces/trip';\r\nimport { TrainsService } from '../../services/trains.service';\r\n\r\nimport {Router} from \"@angular/router\"\r\nimport { TripsService } from '../../services/trips.service';\r\n\r\n@Component({\r\n selector: 'app-train-search',\r\n templateUrl: './train-search.component.html',\r\n styleUrls: ['./train-search.component.css']\r\n})\r\nexport class TrainSearchComponent implements OnInit {\r\n\r\n trips$: Observable;\r\n private searchTerms = new Subject();\r\n\r\n constructor(private trainsService: TrainsService, private tripsService: TripsService, private router: Router) { }\r\n\r\n // Push a search term into the observable stream.\r\n search(term: string): void {\r\n this.searchTerms.next(term);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.trips$ = this.searchTerms.pipe(\r\n // wait 300ms after each keystroke before considering the term\r\n debounceTime(300),\r\n\r\n // ignore new term if same as previous term\r\n distinctUntilChanged(),\r\n\r\n // switch to new search observable each time the term changes\r\n switchMap((term: string) => this.trainsService.searchTrains(term)),\r\n );\r\n }\r\n\r\n onDetail(trip: Trip): void{\r\n this.tripsService.detail(trip);\r\n this.router.navigate(['/trip/detail'])\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n\r\n
\r\n
\r\n
Train
\r\n
Line
\r\n
Origin
\r\n
Destination
\r\n
Next
\r\n
Delay
\r\n
\r\n
\r\n \r\n
Line:
{{ trip.route.replace('/', ' ') }}
\r\n
Origin:
{{ trip.origin }}
\r\n
Destination:
{{ trip.destination }}
\r\n
Next:
{{ trip.nextstop }}
\r\n
Delay:
{{ trip.status }}
\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:///"}