{"version":3,"sources":["webpack:///src/app/services/rss.service.ts","webpack:///src/app/components/schedule-timetable/schedule-timetable.component.ts","webpack:///src/app/components/schedule-timetable/schedule-timetable.component.html","webpack:///xmldom (ignored)","webpack:///src/app/services/map.service.ts","webpack:///src/app/services/trains.service.ts","webpack:///src/app/components/main-navigation/main-navigation.component.ts","webpack:///src/app/components/main-navigation/main-navigation.component.html","webpack:///src/app/components/system-status/system-status.component.ts","webpack:///src/app/components/system-status/system-status.component.html","webpack:///src/app/services/route.service.ts","webpack:///src/environments/environment.ts","webpack:///src/app/components/system-wide-message/system-wide-message.component.ts","webpack:///src/app/components/system-wide-message/system-wide-message.component.html","webpack:///src/app/services/status.service.ts","webpack:///src/app/components/embedded-map-single/embedded-map-single.component.ts","webpack:///src/app/components/embedded-map-single/embedded-map-single.component.html","webpack:///src/app/components/nta/nta.component.ts","webpack:///src/app/components/nta/nta.component.html","webpack:///src/app/components/map/map.component.ts","webpack:///src/app/components/map/map.component.html","webpack:///src/app/components/route-status/route-status.component.ts","webpack:///src/app/components/route-status/route-status.component.html","webpack:///src/app/common/global-variables.ts","webpack:///src/app/services/api.service.ts","webpack:///src/app/services/alert-overview.service.ts","webpack:///src/app/services/schedules.service.ts","webpack:///src/app/components/schedule-routes/schedule-routes.component.ts","webpack:///src/app/components/schedule-routes/schedule-routes.component.html","webpack:///src/app/components/dashboard/dashboard.component.ts","webpack:///src/app/components/dashboard/dashboard.component.html","webpack:///src/app/components/route-status-button/route-status-button.component.ts","webpack:///src/app/components/route-status-button/route-status-button.component.html","webpack:///src/app/services/system-wide.service.ts","webpack:///src/app/components/route-header/route-header.component.ts","webpack:///src/app/components/route-header/route-header.component.html","webpack:///src/app/services/schedule.service.ts","webpack:///src/app/components/embedded-map-detail/embedded-map-detail.component.ts","webpack:///src/app/components/embedded-map-detail/embedded-map-detail.component.html","webpack:///src/app/components/transitview/transitview.component.ts","webpack:///src/app/components/transitview/transitview.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/components/trainview/trainview.component.ts","webpack:///src/app/components/trainview/trainview.component.html","webpack:///src/app/services/trips.service.ts","webpack:///src/app/components/route-direction-selector/route-direction-selector.component.ts","webpack:///src/app/components/route-direction-selector/route-direction-selector.component.html","webpack:///src/app/components/stop-details/stop-details.component.ts","webpack:///src/app/components/stop-details/stop-details.component.html","webpack:///src/app/components/schedule-route-details/schedule-route-details.component.ts","webpack:///src/app/components/schedule-route-details/schedule-route-details.component.html","webpack:///src/app/components/stop/stop.component.ts","webpack:///src/app/components/stop/stop.component.html","webpack:///src/app/services/stops.service.ts","webpack:///src/app/components/schedules/schedules.component.ts","webpack:///src/app/components/schedules/schedules.component.html","webpack:///src/app/components/four-oh-four/four-oh-four.component.ts","webpack:///src/app/components/four-oh-four/four-oh-four.component.html","webpack:///src/app/components/trip-detail/trip-detail.component.ts","webpack:///src/app/components/trip-detail/trip-detail.component.html","webpack:///src/app/components/schedule-route-today/schedule-route-today.component.ts","webpack:///src/app/components/schedule-route-today/schedule-route-today.component.html","webpack:///src/app/services/omni-search.service.ts","webpack:///src/app/services/route-directions.service.ts","webpack:///src/app/components/embedded-map/embedded-map.component.ts","webpack:///src/app/components/embedded-map/embedded-map.component.html","webpack:///src/app/services/kml.service.ts","webpack:///src/app/components/main-footer/main-footer.component.ts","webpack:///src/app/components/main-footer/main-footer.component.html","webpack:///src/app/components/trip-schedules/trip-schedules.component.ts","webpack:///src/app/components/trip-schedules/trip-schedules.component.html","webpack:///src/app/components/breadcrumb/breadcrumb.component.ts","webpack:///src/app/components/breadcrumb/breadcrumb.component.html","webpack:///src/app/services/message.service.ts","webpack:///src/app/components/route-selection/route-selection.component.ts","webpack:///src/app/components/route-selection/route-selection.component.html","webpack:///src/app/components/omni-search/omni-search.component.ts","webpack:///src/app/components/omni-search/omni-search.component.html","webpack:///src/app/components/embedded-map-trip/embedded-map-trip.component.ts","webpack:///src/app/components/embedded-map-trip/embedded-map-trip.component.html","webpack:///src/app/services/markers.service.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/components/train-search/train-search.component.ts","webpack:///src/app/components/train-search/train-search.component.html","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["RssService","http","messageService","rssUrl","data","httpOptions","headers","jsonp","pipe","timeout","array","transform","_","log","handleError","reponse","operation","result","error","console","message","add","providedIn","ScheduleTimetableComponent","router","route","scheduleService","route_id","direction_id","selected_date","selected_service_id","selected_special_service","first_stop","pdfUrl","pdfScheduleUrl","formGroup","snapshot","paramMap","get","get_date","get_serivce","subscribe","calendar","route_service","valid_service_id","active_service_id","service_id","includes","get_timetable","timetable","stops","date","addControl","day","Number","substr","month","year","valueChanges","val","String","navigateByUrl","get_timetables","direction","selector","templateUrl","styleUrls","MapService","map","fullscreenControl","fullscreenControlOptions","position","center","zoom","tiles","maxZoom","minZoom","attribution","addTo","TrainsService","realtime","trainviewUrl","term","trim","search","transformed","train","cars","consist","split","length","status","late","push","id","trainno","line","routeID","convertRouteToID","block","mode","type","service","origin","SOURCE","destination","dest","currentstop","nextstop","delay","vehicle","heading","lat","lon","searchArray","i","toLowerCase","indexOf","name","prefixRail","MainNavigationComponent","SystemStatusComponent","statusService","routeService","statuses","routes","getRoutes","screen","window","innerWidth","detail","navigate","routesUrl","RouteService","maxCols","alertSummaryUrl","systemStatus","selected","detailed","user","cast","asObservable","stored","JSON","parse","localStorage","getItem","next","getSelected","setItem","stringify","response","stop","searched","d","legacy","route_name","replace","sequence","description","alert","advisory","detours","detour","elevators","elevator","isalert","isadvisory","isdetour","isdelays","iselevator","isweather","isSnow","issuspended","advisory_message","detour_message","bi","ri","buses","rail","selectedObservable","observer","setTimeout","environment","production","SystemWideMessageComponent","systemWideService","active","getRoute","hidden","ngOnInit","StatusService","busMaxCols","otherMaxCols","b","r","s","n","t","c","o","si","ni","ti","ci","oi","current_message","issuppend","Failure","EmbeddedMapSingleComponent","stopsService","current_position","initMap","off","remove","bindPopup","openPopup","NtaComponent","iconRetinaUrl","iconUrl","shadowUrl","iconDefault","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowSize","prototype","options","icon","MapComponent","kmlService","markersService","apiService","bluedot","transitRefresh","fetch","checkSelected","unsubscribe","locate","setView","move_location","clearMarkers","clear","navigator","geolocation","getCurrentPosition","coordinates","coords","latitude","longitude","setLatLng","RouteStatusComponent","detailedRoute","GlobalVariables","max_recent_routes","stopsUrl","stationsUrl","railTripsUrl","busTripsUrl","scheduledPdfUrl","busArrivalsUrl","calendarUrl","serviceidsUrl","routeStopsUrl","tripScheduleUrl","tripScheduleExtension","timetablesUrl","timetablesExtension","stopScheduleUrl","stopScheduleExtension","railRoutes","Array","earlyStatus","onTimeStatus","lateStatus","canceledStatus","untrackedStatus","suspendedStatus","adaAlertTrue","adaAlertFalse","adaAdvisoryTrue","adaAdvisoryFalse","adaDetourTrue","adaDetourFalse","adaElevatorTrue","adaElevatorFalse","alertDetailsUrl","trainViewUrl","transitViewUrl","busRed","busYellow","busBlue","railRed","railBlue","ApiService","transitMarkers","product","res","pop","marker","createIcon","Object","keys","lng","BlockID","trip","VehicleID","Direction","Offset","angle","circleArrow","iconColor","iconOld","undefined","removeLayer","AlertOverviewService","bus","mfl","bsl","nhsl","trolley","cct","isstrike","ismodifiedservice","isdiversion","isdetouralert","results","calendarExtension","calendarDatesExtension","serviceidsExtension","SchedulesService","trainsScheduleUrl","route_service_ids","special_schedule","calendar_service_id","calendar_date_service_id","bus_calendar","bus_calendar_dates","rail_calendar","rail_calendar_dates","bus_service","rail_service","bus_calendar_service_ids","format_calendar","bus_calendar_dates_service_ids","format_calendar_dates","rail_calendar_service_ids","rail_calendar_dates_service_ids","bus_valid_service_ids","format_valid_service_ids","rail_valid_service_ids","service_ids","valid_service_ids","station","track","track_change","isTrackChange","scheduled","sched_tm","estimated","est_tm","actual","act_tm","url","timetables","valid_service","format_timetables","format_route_service_ids","requested_date","Date","weekday","setDate","setMonth","setFullYear","service_date","getFullYear","getMonth","slice","getDate","dates","start_date","end_date","getDay","country","capital","calendar_dates","recent_routes_max_length","ScheduleRoutesComponent","all_routes","recent_routes","recent_routes_status","isArray","getStaticRoute","selected_route","find","x","shift","DashboardComponent","rssService","alertOverviewService","getRSS","getOverview","rss","overview","rail_routes","RouteStatusButtonComponent","detailed_route","selected_mode","SystemWideService","systemWide","RouteHeaderComponent","get_routes","realtimeStatusBus","realtimeStatusRail","ScheduleService","release_date","get_release_date","format_release_date_from_calendar","get_calendar","format_timetable","format_pdf_schedule","stop_id","format_stop_schedule_realtime","format_stop_schedule","stop_times","entries","stop_time","format_gtfs_actual_time","format_gtfs_time","get_realtime_status","format_realtime_status","trips","times","stop_name","key","schedules","schedule","formatted","time","hour","toString","minute","period","current_date","setHours","setMinutes","setSeconds","getTime","Math","abs","request_date","EmbeddedMapDetailComponent","mapService","tripsService","TransitviewComponent","AppComponent","title","AppModule","declarations","imports","providers","bootstrap","TrainviewComponent","trainsService","trains","getTrains","railTripUrl","busTripUrl","TripsService","selectedTrip","selectedRoute","selected_trip","next_stop_name","get_route_id","transform_trips","replaceAll","block_id","trip_id","estimated_seat_availability","next_stop_sequence","RouteDirectionSelectorComponent","routeDirectionsService","scheduleTimetableComponent","selected_direction","directions","DirectionDescription","load_timetable","onDirectionChange","StopDetailsComponent","ScheduleRouteDetailsComponent","scheduledPdf","selected_stop","get_pdf_schedule","directions_len","getStops","parseInt","getStopTimes","addStopMarkers","clearStopMarkers","today_component","refresh","onStopChange","StopComponent","searchStations","getArrivals","arrivalsUrl","arrivalsRailUrl","stopTimesUrl","tripStopTimesUrl","StopsService","transformArrivals","search_stops","formatCalendar","saturday","sunday","search_stop_times","format_trip_stop_times","search_stop_direction","search_stop_times_direction","sort","a","stop_sequence","temp","value","depart_time","substring","train_id","service_type","e","DirectionDesc","Route","DateCalender","SchedulesComponent","subway_routes","trolley_routes","FourOhFourComponent","TripDetailComponent","schedulesService","getTrips","getSchedule","ScheduleRouteTodayComponent","get_stop_schedule","get_trips","entries_scheduled","entries_realtime","schedule_trip","lastIndexOf","actual_arrival_time","arrival_time","trip_headsign","realtime_trip","OmniSearchService","stations","searchStop","searchRoutes","found","combined","directionsUrl","RouteDirectionsService","EmbeddedMapComponent","getStatic","baseUrl","KmlService","layers","focused","toUpperCase","layer","on","_markertype","fitBounds","getBounds","addLayer","eachLayer","MainFooterComponent","anio","TripSchedulesComponent","getTripStopTimes","start_time","end_time","getRealtime","set","extracted_trips","requested_trip_id","seat_estimate","many_seats","few_seats","standing_seats","next_stop_id","format_status","estimated_seat_availability_html","car_count","BreadcrumbComponent","MessageService","messages","RouteSelectionComponent","selectLimit","selectedRoutes","index","splice","select","OmniSearchComponent","omnisearchService","searchTerms","results$","routes$","stops$","EmbeddedMapTripComponent","trainUrl","transitUrl","MarkersService","test","markers","getTranist","gcCheck","exist","moveMarker","createMarker","gps","updated_seconds","ceil","now","timestamp","stop_lat","stop_lon","createStopIcon","latLngs","getLatLng","markerBounds","setZIndexOffset","geo","_leaflet_id","setIcon","stroke","path","component","AppRoutingModule","forRoot","exports","TrainSearchComponent","trips$","searchTrains","bootstrapModule","err","webpackEmptyAsyncContext","req","Promise","resolve","then","Error","code","module"],"mappings":"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;iBAEjB,oBAAQ,CACP;;;;;;;yBALUA,oB;AAAoB,O;;;cAApBA,oB;AAAoB,yC;AAAA,kB;AAAA,e;AAAA,ioI;AAAA;AAAA;ACPjC;;AACA;;AACE;;AACA;;AACA;;AACE;;AACE;;AAAoB;;AAAO;;AAC3B;;AACE;;AACE;;AAAK;;AAAU;;AACjB;;AACA;;AACE;;AACmP;;AAC9M;;AACvC;;AACA;;AACE;;AAAA;;AAEE;;AACA;;AAEF;;AAAO;;AACT;;AACF;;AACA;;AAAA;;AAEA;;AACE;;AACE;;AAAoD;;AAElD;;AACE;;AACE;;AACF;;AACA;;AACE;;AACF;;AACA;;AACE;;AACF;;AACA;;AACE;;AACF;;AACF;;AACF;;AACF;;AACA;;AACE;;AAAmD;;AAEjD;;AACE;;AACE;;AACF;;AACA;;AACE;;AACF;;AACA;;AACE;;AACF;;AACA;;AACE;;AACF;;AACF;;AACF;;AACF;;AACF;;AACA;;AACA;;AAEE;;AACE;;AACE;;AACE;;AACE;;AAEE;;AACF;;AACF;;AACF;;AAEA;;AACE;;AACE;;AAIF;;AACF;;AACF;;AACA;;AACE;;AACE;;AACE;;AAEE;;AACF;;AACF;;AACF;;AACA;;AACE;;AACE;;AACI;;AACI;;AACA;;AAAW;;AAAI;;AAAiB;;AAAK;;AAAK;;AAAgD;;AAAM;;AAChG;;AACA;;AACI;;AAA0D;;AAAG;;AAAS;;AACtE;;AAA0D;;AAAG;;AAAS;;AAC1E;;AACJ;;AACA;;AACI;;AACA;;AAAW;;AAAI;;AAAkC;;AAAK;;AAAK;;AAAgD;;AAAM;;AACjH;;AACA;;AACI;;AAA0D;;AAAG;;AAAS;;AACtE;;AAA0D;;AAAG;;AAAS;;AAC1E;;AACJ;;AACF;;AACJ;;AACF;;AACF;;AACA;;AACE;;AACE;;AACE;;AAEE;;AACF;;AACF;;AACF;;AACA;;AACE;;AACE;;AAAG;;AAIiE;;AACpE;;AAAG;;AAAA;;AACC;;AACF;;AAAO;;AAAkC;;AAC7C;;AACF;;AACF;;AACF;;AAEF;;AACF;;AACA;;AAAA;;AACE;;AAAoB;;AAAQ;;AAC5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","file":"main-es5.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\";"]}