{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/footer/footer.component.ts","./src/app/components/header/header.component.ts","./src/app/components/no-robots/no-robots.component.ts","./src/app/components/privacy/privacy.component.ts","./src/app/components/robot/robot.component.ts","./src/app/components/schedule/schedule.component.ts","./src/app/components/wait-spinner/wait-spinner.component.ts","./src/app/components/welcome/welcome.component.ts","./src/app/components/wi-fi/wi-fi.component.ts","./src/app/models/action-translator.ts","./src/app/models/alert-translator.ts","./src/app/models/app-state.enum.ts","./src/app/models/disconnected-message-translator.ts","./src/app/models/schedule-day-translator.ts","./src/app/models/schedule-item.ts","./src/app/models/wi-fi-info.ts","./src/app/pipes/latest-update.pipe.ts","./src/app/pipes/schedule-mode.pipe.ts","./src/app/services/debug.ts","./src/environments/environment.ts","./src/main.ts","./src/app/app.component.scss","./src/app/components/footer/footer.component.scss","./src/app/components/header/header.component.scss","./src/app/components/no-robots/no-robots.component.scss","./src/app/components/privacy/privacy.component.scss","./src/app/components/robot/robot.component.scss","./src/app/components/schedule/schedule.component.scss","./src/app/components/wait-spinner/wait-spinner.component.scss","./src/app/components/welcome/welcome.component.scss","./src/app/components/wi-fi/wi-fi.component.scss"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { AppState } from './models/app-state.enum';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Debug } from './services/debug';\r\ndeclare var Neato: any;\r\ndeclare var $:any;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements AfterViewInit{\r\n title = 'Neato';\r\n user: any;\r\n appState: AppState = AppState.Loading;\r\n userName: string;\r\n robots: Array;\r\n robotsLoaded:boolean = false;\r\n\r\n constructor(private http: HttpClient) {\r\n this.user = new Neato.User();\r\n this.setUserstatus();\r\n }\r\n\r\n ngAfterViewInit(){\r\n }\r\n\r\n setUserstatus() {\r\n var that = this;\r\n if (this.UserHasToken()) {\r\n that.appState = AppState.LoggedInUserLoading;\r\n this.user.isConnected()\r\n .done(function () {\r\n that.getUserData();\r\n that.getRobotData();\r\n that.appState = AppState.LoggedIn;\r\n })\r\n .fail(function () {\r\n that.appState = AppState.FailedLogin;\r\n });\r\n }\r\n else {\r\n that.appState = AppState.LoggedOut;\r\n }\r\n }\r\n getUserData() {\r\n var that = this;\r\n this.user.getUserInfo()\r\n .done(function (data) {\r\n if (data.first_name){\r\n that.userName = data.first_name;\r\n }\r\n }).fail(function (data) {\r\n Debug.info('this.user.getUserInfo fail', data)\r\n });\r\n }\r\n getRobotData() {\r\n var that = this;\r\n this.user.getRobots()\r\n .done(function (robotsArray) {\r\n that.robots = robotsArray;\r\n var robot;\r\n //start polling robot state\r\n for (var i = 0; i < robotsArray.length; i++) {\r\n robot = robotsArray[i];\r\n Debug.info('robot', robot);\r\n Debug.info('robot.name', robot.name);\r\n that.logModel(robot.model);\r\n }\r\n that.robotsLoaded = true;\r\n }).fail(function (data) {\r\n Debug.info('this.user.getRobots() fail', data);\r\n that.robotsLoaded = true;\r\n });\r\n }\r\n logModel(model: any) {\r\n if (environment.doLogModel){\r\n this\r\n .http\r\n .post('https://neato.affinno.nl/log/log.php', { data: model })\r\n .subscribe((data: any) => Debug.info(data));\r\n }\r\n }\r\n\r\n UserHasToken() {\r\n return this.user.token;\r\n }\r\n\r\n isLoading(): boolean {\r\n return this.appState === AppState.Loading;\r\n }\r\n\r\n isLoggedOut(): boolean {\r\n return this.appState === AppState.LoggedOut;\r\n }\r\n isLoggedIn(): boolean {\r\n return this.appState === AppState.LoggedIn;\r\n }\r\n isFailedLoggedIn(): boolean {\r\n return this.appState === AppState.FailedLogin;\r\n }\r\n isLoggedInUserLoading(): boolean {\r\n return this.appState === AppState.LoggedInUserLoading;\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { WelcomeComponent } from './components/welcome/welcome.component';\r\nimport { RobotComponent } from './components/robot/robot.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { WaitSpinnerComponent } from './components/wait-spinner/wait-spinner.component';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { NoRobotsComponent } from './components/no-robots/no-robots.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ScheduleComponent } from './components/schedule/schedule.component';\r\nimport { ScheduleModePipe } from './pipes/schedule-mode.pipe';\r\nimport { PrivacyComponent } from './components/privacy/privacy.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { WiFiComponent } from './components/wi-fi/wi-fi.component';\r\nimport { LastUpdatedPipe } from './pipes/latest-update.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n WelcomeComponent,\r\n RobotComponent,\r\n FooterComponent,\r\n WaitSpinnerComponent,\r\n NoRobotsComponent,\r\n ScheduleComponent,\r\n ScheduleModePipe,\r\n PrivacyComponent,\r\n WiFiComponent,\r\n LastUpdatedPipe\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule\r\n ],\r\n providers: [\r\n {\r\n provide: APP_BASE_HREF,\r\n useValue: window['base-href']\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnInit,AfterViewInit {\n currentDate = new Date();\n constructor() { }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(){\n }\n\n version(){\n return \"1.14\";\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Debug } from 'src/app/services/debug';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() user: any;\r\n @Input() userName: string;\r\n @Input() isLoggedIn: boolean;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n Debug.info('user in header', this.user);\r\n }\r\n\r\n logOff(){\r\n this.user.logout()\r\n .done(function (data) {\r\n Debug.info('logOff succeeded, data', data)\r\n window.location.href = environment.redirectUrl;\r\n //location.reload();\r\n Debug.info(window.location.origin);\r\n }).fail(function (data) {\r\n Debug.info('logOff failed, data', data)\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-no-robots',\n templateUrl: './no-robots.component.html',\n styleUrls: ['./no-robots.component.scss']\n})\nexport class NoRobotsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\ndeclare var $:any;\n\n@Component({\n selector: 'app-privacy',\n templateUrl: './privacy.component.html',\n styleUrls: ['./privacy.component.scss']\n})\nexport class PrivacyComponent implements OnInit, AfterViewInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n ngAfterViewInit(){\n $('#modalPrivacy').modal();\n $('.modal').modal();\n }\n\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { AfterViewInit, Component, Input, OnInit, Output } from '@angular/core';\r\nimport { ActionTranslator } from 'src/app/models/action-translator';\r\nimport { AlertTranslator } from 'src/app/models/alert-translator';\r\nimport { DisconnectedMessageTranslator } from 'src/app/models/disconnected-message-translator';\r\nimport { ScheduleDayTranslator } from 'src/app/models/schedule-day-translator';\r\nimport { ScheduleItem } from 'src/app/models/schedule-item';\r\nimport { WiFiInfo } from 'src/app/models/wi-fi-info';\r\nimport { Debug } from 'src/app/services/debug';\r\ndeclare var Neato: any;\r\ndeclare var $:any;\r\n\r\n@Component({\r\n selector: 'app-robot',\r\n templateUrl: './robot.component.html',\r\n styleUrls: ['./robot.component.scss']\r\n})\r\nexport class RobotComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() robot: any;\r\n robotConnected: boolean = false;\r\n prettyState: string = '';\r\n isDocked: boolean = false;\r\n batteryPercentage: string = '';\r\n batteryName: string = '';\r\n alert: string = '';\r\n error: string = '';\r\n canGoToBase: boolean = false;\r\n canPause: boolean = false;\r\n canResume: boolean = false;\r\n canStart: boolean = false;\r\n canStop: boolean = false;\r\n isScheduleEnabled: any;\r\n robotDisconnectedMessage: string;\r\n cleaningInfo: string;\r\n showJson: boolean = false;\r\n scheduleItems: Array = null;\r\n wifiInfos: Array = null;\r\n updatedDate: Date;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n var that = this;\r\n\r\n this.robot.onConnected = function (data) {\r\n Debug.info(that.robot.serial + \" got connected\");\r\n that.robotConnected = true;\r\n that.robotDisconnectedMessage = '';\r\n that.scheduleSetWiFi();\r\n\r\n };\r\n this.robot.onDisconnected = function (status, json) {\r\n Debug.info(that.robot.serial + \" got disconnected\");\r\n Debug.info(that.robot.serial + \" got disconnected status\", status);\r\n Debug.info(that.robot.serial + \" got disconnected json\", json);\r\n that.robotConnected = false;\r\n if (json && json.message) {\r\n that.robotDisconnectedMessage = DisconnectedMessageTranslator.translate(status, json.message, that.robot.name);\r\n }\r\n else {\r\n that.robotDisconnectedMessage = '';\r\n }\r\n };\r\n this.robot.onStateChange = function () {\r\n Debug.info(that.robot.serial + \" got new state @ \" + new Date() + \" : \", that.robot.state);\r\n that.stateChanged();\r\n };\r\n\r\n this.robot.connect();\r\n\r\n }\r\n\r\n maps(){\r\n this.robot.generalInfo().done(function (data,data2, data3) {\r\n Debug.info('generalInfo', data);\r\n Debug.info('generalInfo', data2);\r\n Debug.info('generalInfo', data3);\r\n\r\n// battery:\r\n// authorizationStatus: 1\r\n// level: 2\r\n// manufacturingDate: \"2018-11-14\"\r\n// timeToEmpty: 65535\r\n// timeToFullCharge: 120\r\n// totalCharges: 36\r\n// vendor: \"Panasonic\"\r\n// __proto__: Object\r\n// firmware: \"4.5.3-189\"\r\n// model: \"BotVacD4Connected\"\r\n// productNumber: \"905-0499\"\r\n// serial: \"GPC30419-0479b71b41ce\"\r\n });\r\n\r\n this.robot.getWifiNetworks().done(function (data,data2, data3) {\r\n Debug.info('getWifiNetworks', data);\r\n Debug.info('getWifiNetworks', data2);\r\n Debug.info('getWifiNetworks', data3);\r\n });\r\n\r\n\r\n // connected: true\r\n // ipAddress: \"192.168.178.81\"\r\n // macAddress: \"30-45-11-e5-6e-2b\"\r\n // routerIpAddress: \"192.168.178.81\"\r\n // ssid: \"Kiwi-TF\"\r\n // strength: 1\r\n // subnetMask: \"255.255.255.0\"\r\n }\r\n\r\n ngAfterViewInit(){\r\n $('.modal').modal();\r\n }\r\n\r\n toggleJsonMode(){\r\n this.showJson = ! this.showJson;\r\n }\r\n\r\n stateChanged() {\r\n this.setPrettyStateAndAction();\r\n this.setBattery();\r\n this.setScheduleEnabled();\r\n this.setBatteryPercentage();\r\n this.setCleaningInfo();\r\n this.setActions();\r\n this.setMessages();\r\n this.setUpdatedDate();\r\n }\r\n setUpdatedDate() {\r\n this.updatedDate = new Date();\r\n }\r\n\r\n hasSchedules(){\r\n return (this.scheduleItems !== null && this.scheduleItems.length > 0);\r\n }\r\n\r\n hasWifis(){\r\n return this.wifiInfos != null && this.wifiInfos.length > 0;\r\n }\r\n\r\n scheduleSetWiFi() {\r\n var that = this;\r\n var interval;\r\n interval = setInterval(function(){\r\n if (that.robot.getWifiNetworks){\r\n clearInterval(interval);\r\n that.setWiFi();\r\n }\r\n }, 100);\r\n }\r\n\r\n setWiFi() {\r\n var that = this;\r\n that.wifiInfos = null;\r\n this.robot.getWifiNetworks().done(function (status, networks) {\r\n if (networks){\r\n var wifiInfos: Array = [];\r\n for(var i = 0; i < networks.length;i++ ){\r\n wifiInfos.push(new WiFiInfo(\r\n networks[i].connected,\r\n networks[i].ipAddress,\r\n networks[i].ssid,\r\n ))\r\n }\r\n that.wifiInfos = wifiInfos;\r\n\r\n }\r\n });\r\n }\r\n\r\n scheduleSetSchedule() {\r\n var that = this;\r\n var interval;\r\n interval = setInterval(function(){\r\n if (that.robot.getSchedule){\r\n clearInterval(interval);\r\n that.setSchedule();\r\n }\r\n }, 100);\r\n\r\n }\r\n setSchedule() {\r\n var that = this;\r\n this.robot.getSchedule().done(function (status, schedule) {\r\n if (schedule){\r\n if (schedule.enabled && schedule.events){\r\n Debug.info('schedule.events', schedule.events);\r\n var scheduleItems: Array = [];\r\n for(var i = 0; i < schedule.events.length;i++ ){\r\n scheduleItems.push(new ScheduleItem(\r\n ScheduleDayTranslator.translate(schedule.events[i].day),\r\n schedule.events[i].mode,\r\n schedule.events[i].startTime\r\n ))\r\n }\r\n that.scheduleItems = scheduleItems;\r\n }\r\n }\r\n });\r\n }\r\n\r\n setScheduleEnabled() {\r\n if (this.robot.state && this.robot.state.details) {\r\n if (! this.isScheduleEnabled && this.robot.state.details.isScheduleEnabled){\r\n this.scheduleSetSchedule();\r\n }\r\n this.isScheduleEnabled = this.robot.state.details.isScheduleEnabled;\r\n }\r\n else {\r\n this.isScheduleEnabled = false;\r\n }\r\n }\r\n\r\n setMessages() {\r\n if (this.robot.state && this.robot.state.error) {\r\n this.error = AlertTranslator.translate(this.robot.state.error);\r\n }\r\n else {\r\n this.error = '';\r\n }\r\n if (this.robot.state && this.robot.state.alert) {\r\n this.alert = AlertTranslator.translate(this.robot.state.alert);\r\n }\r\n else {\r\n this.alert = '';\r\n }\r\n }\r\n\r\n setActions() {\r\n if (this.robot.state && this.robot.state.availableCommands) {\r\n this.canGoToBase = this.robot.state.availableCommands.goToBase;\r\n this.canPause = this.robot.state.availableCommands.pause;\r\n this.canResume = this.robot.state.availableCommands.resume;\r\n this.canStart = this.robot.state.availableCommands.start;\r\n this.canStop = this.robot.state.availableCommands.stop;\r\n }\r\n }\r\n setBattery() {\r\n this.batteryName = \"battery_unknown\";\r\n if (this.robot.state && this.robot.state.details) {\r\n this.isDocked = this.robot.state.details.isDocked;\r\n if (this.robot.state.details.isCharging) {\r\n this.batteryName = \"battery_charging_full\";\r\n }\r\n else {\r\n this.batteryName = \"battery_full\";\r\n }\r\n }\r\n else {\r\n Debug.info('no battery details!');\r\n }\r\n }\r\n\r\n setBatteryPercentage() {\r\n if (this.robot.state && this.robot.state.details) {\r\n this.batteryPercentage = this.robot.state.details.charge + ' %';\r\n }\r\n else {\r\n this.batteryPercentage = null;\r\n }\r\n }\r\n setCleaningInfo() {\r\n if (this.robot.state && this.robot.state.state && this.robot.state.cleaning) {\r\n if (this.robot.state.state === 2) {\r\n var cleaningInfoTemp = \"\";\r\n switch (this.robot.state.cleaning.category) {\r\n case 1:\r\n cleaningInfoTemp += \"manual, \";\r\n break;\r\n case 2:\r\n cleaningInfoTemp += \"house, \";\r\n break;\r\n case 3:\r\n cleaningInfoTemp += \"spot, \";\r\n break;\r\n case 4:\r\n cleaningInfoTemp += \"map, \";\r\n break;\r\n default:\r\n cleaningInfoTemp += \"\";\r\n }\r\n switch (this.robot.state.cleaning.mode) {\r\n case 1:\r\n cleaningInfoTemp += \"eco\";\r\n break;\r\n case 2:\r\n cleaningInfoTemp += \"turbo\";\r\n break;\r\n default:\r\n cleaningInfoTemp += \"\";\r\n }\r\n if (this.robot.state.cleaning.navigationMode){\r\n switch (this.robot.state.cleaning.navigationMode) {\r\n case 1:\r\n cleaningInfoTemp += \", normal\";\r\n break;\r\n case 2:\r\n cleaningInfoTemp += \", extra care\";\r\n break;\r\n default:\r\n cleaningInfoTemp += \", deep\";\r\n }\r\n }\r\n this.cleaningInfo = \"Doing a \" + cleaningInfoTemp + \" cleaning\";\r\n }\r\n else {\r\n this.cleaningInfo = \"\";\r\n }\r\n }\r\n else {\r\n this.cleaningInfo = \"\";\r\n }\r\n }\r\n\r\n setPrettyStateAndAction() {\r\n var prettyStateTemp = \"\";\r\n var prettyActionTemp = \"\";\r\n if (this.robot.state && this.robot.state.state) {\r\n var robot_state = this.robot.state.state;\r\n switch (robot_state) {\r\n case 1:\r\n prettyStateTemp = \"idle\";\r\n break;\r\n case 2:\r\n prettyStateTemp = \"busy\";\r\n break;\r\n case 3:\r\n prettyStateTemp = \"paused\";\r\n break;\r\n case 4:\r\n prettyStateTemp = \"error\";\r\n break;\r\n default:\r\n prettyStateTemp = \"\";\r\n }\r\n }\r\n if (this.robot.state && this.robot.state.action) {\r\n var robot_action = this.robot.state.action;\r\n prettyActionTemp = ActionTranslator.Translate(robot_action);\r\n\r\n }\r\n if (!prettyStateTemp && !prettyActionTemp) {\r\n this.prettyState = null;\r\n }\r\n else if (prettyStateTemp && !prettyActionTemp) {\r\n this.prettyState = this.robot.name + \" is \" + prettyStateTemp + \".\"\r\n }\r\n else if (!prettyStateTemp && prettyActionTemp) {\r\n this.prettyState = this.robot.name + \" is \" + prettyActionTemp + \".\"\r\n }\r\n else if (prettyStateTemp && prettyActionTemp) {\r\n this.prettyState = this.robot.name + \" is \" + prettyStateTemp + \", \" + prettyActionTemp + \".\"\r\n }\r\n }\r\n\r\n getImageName() {\r\n if (this.robot.model === \"BotVacD4Connected\") {\r\n return \"./assets/BotVacD4Connected.png\"\r\n }\r\n return \"./assets/smarter-navigation.png\";\r\n }\r\n\r\n goToBase() {\r\n this.robot.sendToBase();\r\n }\r\n pause() { this.robot.pauseCleaning(); }\r\n resume() { this.robot.resumeCleaning(); }\r\n start() {\r\n this.robot.startHouseCleaning({\r\n mode: Neato.Constants.TURBO_MODE,\r\n modifier: Neato.Constants.HOUSE_FREQUENCY_NORMAL,\r\n navigationMode: Neato.Constants.EXTRA_CARE_OFF\r\n });\r\n }\r\n stop() { this.robot.stopCleaning(); }\r\n\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { ScheduleItem } from 'src/app/models/schedule-item';\ndeclare var $:any;\n\n@Component({\n selector: 'app-schedule',\n templateUrl: './schedule.component.html',\n styleUrls: ['./schedule.component.scss']\n})\nexport class ScheduleComponent implements OnInit, AfterViewInit {\n @Input() scheduleItems : Array = [];\n constructor() { }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(){\n $('.modal').modal();\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-wait-spinner',\n templateUrl: './wait-spinner.component.html',\n styleUrls: ['./wait-spinner.component.scss']\n})\nexport class WaitSpinnerComponent implements OnInit {\n @Input() size: string;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AppState } from 'src/app/models/app-state.enum';\r\nimport { Debug } from 'src/app/services/debug';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.scss']\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n clientId = environment.key;\r\n scopes = \"control_robots+public_profile+maps\";\r\n redirectUrl = environment.redirectUrl;\r\n\r\n @Input() user: any;\r\n @Input() appState: AppState;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n login(){\r\n Debug.info('starting login in WelcomeComponent');\r\n Debug.info('this.redirectUrl',this.redirectUrl);\r\n\r\n this.user.login({\r\n clientId: this.clientId,\r\n scopes: this.scopes,\r\n redirectUrl: this.redirectUrl\r\n });\r\n\r\n }\r\n\r\n isFailedLogin(){\r\n return this.appState === AppState.FailedLogin;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { WiFiInfo } from 'src/app/models/wi-fi-info';\n\n@Component({\n selector: 'app-wi-fi',\n templateUrl: './wi-fi.component.html',\n styleUrls: ['./wi-fi.component.scss']\n})\nexport class WiFiComponent implements OnInit {\n\n @Input() wifiInfos: Array = null;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export class ActionTranslator {\n static Translate(robot_action: any): string {\n var prettyActionTemp = '';\n switch (robot_action) {\n case 0: prettyActionTemp = \"\";\n break;\n case 1: prettyActionTemp = \"house cleaning\";\n break;\n case 2: prettyActionTemp = \"spot cleaning\";\n break;\n case 3: prettyActionTemp = \"manual cleaning\";\n break;\n case 4: prettyActionTemp = \"docking\";\n break;\n case 5: prettyActionTemp = \"user menu active\";\n break;\n case 6: prettyActionTemp = \"suspended cleaning\";\n break;\n case 7: prettyActionTemp = \"updating\";\n break;\n case 8: prettyActionTemp = \"copying logs\";\n break;\n case 9: prettyActionTemp = \"recovering location\";\n break;\n case 10: prettyActionTemp = \"IEC test\";\n break;\n case 11: prettyActionTemp = \"map cleaning\";\n break;\n case 12: prettyActionTemp = \"exploring map (creating a persistent map)\";\n break;\n case 13: prettyActionTemp = \"acquiring persistent map id's\";\n break;\n case 14: prettyActionTemp = \"creating & uploading map\";\n break;\n case 15: prettyActionTemp = \"suspended exploration\";\n break;\n default:\n prettyActionTemp = \"\";\n }\n return prettyActionTemp;\n }\n}\n","export class AlertTranslator {\n static translate(alertText: string){\n if (! alertText){\n return '';\n }\n alertText = alertText.toLowerCase();\n if (alertText === 'maint_bumper_stuck'){\n return 'Check the main bumper, it is stuck.';\n } else if (alertText === 'dustbin_full'){\n return 'The dustbin is full.'\n }\n return alertText;\n\n }\n}\n","export enum AppState {\n LoggedOut = 0,\n Loading = 1,\n LoggedIn =2 ,\n LoggedInUserLoading = 3 ,\n FailedLogin = 4\n}\n","export class DisconnectedMessageTranslator {\n static translate(status: number, message: string, robotname :string){\n if (! message){\n return '';\n }\n message = message.toLowerCase();\n if (message === 'timeout waiting a response from robot'){\n // 504\n return `Busy on the line getting updates from ${robotname}`;\n } else if (message === 'could not find robot_serial for specified vendor_name') {\n // 404\n return `Busy on the line talking to ${robotname}`;\n } else if (status === 0){\n return `Could not connect to ${robotname}. Could there be connection issues?`;\n }\n return message;\n\n }\n}\n","export class ScheduleDayTranslator {\n static translate(dayNumber: number): string {\n\n switch (dayNumber) {\n case 0: {\n return 'sunday';\n }\n case 1: {\n return 'monday';\n }\n case 2: {\n return 'tuesday';\n }\n case 3: {\n return 'wednesday';\n }\n case 4: {\n return 'thursday';\n }\n case 5: {\n return 'friday';\n }\n case 6: {\n return 'saturday';\n }\n default: {\n return dayNumber.toLocaleString();\n }\n }\n\n }\n}\n","export class ScheduleItem {\n constructor(public day: string, public mode: number, public startTime: string ) {\n\n }\n}\n\n\n\n","export class WiFiInfo {\n constructor(public connected: boolean, public ipAddress: string, public ssid: string ) {\n\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'latestUpdate'\n})\nexport class LastUpdatedPipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n if (value === null || value === undefined){\n return '';\n }\n\n var result:string = 'Latest update ';\n var hour = value.getHours();\n if (hour < 10){\n result += '0';\n }\n result += hour + \":\";\n\n var minute = value.getMinutes();\n if (minute < 10){\n result += '0';\n }\n result += minute + \":\";\n\n var second = value.getSeconds();\n if (second < 10){\n result += '0';\n }\n result += second;\n return result;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'scheduleMode'\n})\nexport class ScheduleModePipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n if (value === 1){\n return 'eco';\n }\n\n return 'turbo';\n }\n\n}\n","import { environment } from 'src/environments/environment';\r\n\r\nexport class Debug {\r\n static info(message?: any, ...optionalParams: any[]){\r\n if (! environment.production){\r\n console.info(message, optionalParams);\r\n }\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\n// export const environment = {\n// production: false,\n// key: \"18e2443d7b5728e7b9a0b6555fbb7d2b3d02f9a97e1bd7ca48200344d5380518\",\n// redirectUrl: 'https://localhost:4800/',\n// doLogModel: false\n// };\nexport const environment = {\n production: true,\n key: '57994c8c09c44b9710fa0c4333d54460326e3958a236c3983e91f65654bfd7a8',\n redirectUrl: 'https://neato.affinno.nl',\n doLogModel : true\n};\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.titleml {\n font-size: 36px;\n font-weight: bolder;\n}\n\n.titles {\n font-size: 20px;\n font-weight: bolder;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/header/header.component.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAA;EACA,mBAAA;AACF;;AACA;EACE,eAAA;EACA,mBAAA;AAEF\",\"sourcesContent\":[\".titleml{\\r\\n font-size:36px;\\r\\n font-weight: bolder;\\r\\n}\\r\\n.titles{\\r\\n font-size:20px;\\r\\n font-weight: bolder;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.logo2 {\n width: 200px;\n}\n\n.robotml {\n height: 12rem;\n}\n\n.btnFill {\n width: 100%;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/robot/robot.component.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,YAAA;AACF;;AACA;EACE,aAAA;AAEF;;AACA;EACE,WAAA;AAEF\",\"sourcesContent\":[\".logo2{\\r\\n width:200px;\\r\\n}\\r\\n.robotml{\\r\\n height:12rem;\\r\\n}\\r\\n\\r\\n.btnFill{\\r\\n width:100%;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nvar ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\");\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___.toString();\n"],"names":["NgModule","RouterModule","routes","AppRoutingModule","__decorate","imports","forRoot","exports","Component","AppState","HttpClient","environment","Debug","AppComponent","constructor","http","title","appState","Loading","robotsLoaded","user","Neato","User","setUserstatus","ngAfterViewInit","that","UserHasToken","LoggedInUserLoading","isConnected","done","getUserData","getRobotData","LoggedIn","fail","FailedLogin","LoggedOut","getUserInfo","data","first_name","userName","info","getRobots","robotsArray","robots","robot","i","length","name","logModel","model","doLogModel","post","subscribe","token","isLoading","isLoggedOut","isLoggedIn","isFailedLoggedIn","isLoggedInUserLoading","_","selector","template","__NG_CLI_RESOURCE__0","BrowserModule","HeaderComponent","WelcomeComponent","RobotComponent","FooterComponent","WaitSpinnerComponent","APP_BASE_HREF","NoRobotsComponent","HttpClientModule","ScheduleComponent","ScheduleModePipe","PrivacyComponent","BrowserAnimationsModule","WiFiComponent","LastUpdatedPipe","AppModule","declarations","providers","provide","useValue","window","bootstrap","currentDate","Date","ngOnInit","version","Input","logOff","logout","location","href","redirectUrl","origin","$","modal","ActionTranslator","AlertTranslator","DisconnectedMessageTranslator","ScheduleDayTranslator","ScheduleItem","WiFiInfo","robotConnected","prettyState","isDocked","batteryPercentage","batteryName","alert","error","canGoToBase","canPause","canResume","canStart","canStop","showJson","scheduleItems","wifiInfos","onConnected","serial","robotDisconnectedMessage","scheduleSetWiFi","onDisconnected","status","json","message","translate","onStateChange","state","stateChanged","connect","maps","generalInfo","data2","data3","getWifiNetworks","toggleJsonMode","setPrettyStateAndAction","setBattery","setScheduleEnabled","setBatteryPercentage","setCleaningInfo","setActions","setMessages","setUpdatedDate","updatedDate","hasSchedules","hasWifis","interval","setInterval","clearInterval","setWiFi","networks","push","connected","ipAddress","ssid","scheduleSetSchedule","getSchedule","setSchedule","schedule","enabled","events","day","mode","startTime","details","isScheduleEnabled","availableCommands","goToBase","pause","resume","start","stop","isCharging","charge","cleaning","cleaningInfoTemp","category","navigationMode","cleaningInfo","prettyStateTemp","prettyActionTemp","robot_state","action","robot_action","Translate","getImageName","sendToBase","pauseCleaning","resumeCleaning","startHouseCleaning","Constants","TURBO_MODE","modifier","HOUSE_FREQUENCY_NORMAL","EXTRA_CARE_OFF","stopCleaning","clientId","key","scopes","login","isFailedLogin","alertText","toLowerCase","robotname","dayNumber","toLocaleString","Pipe","transform","value","args","undefined","result","hour","getHours","minute","getMinutes","second","getSeconds","optionalParams","production","console","enableProdMode","platformBrowserDynamic","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}