{"version":3,"sources":["img/house.svg","img/car.svg","img/shower.svg","img/microwave.svg","img/cooking.svg","img/washing.svg","img/dryer.svg","img/train.svg","img/heater.svg","img/solar.svg","RestClient.tsx","Energy.tsx","Power.tsx","App.tsx","index.tsx"],"names":["module","exports","RestClient","baseUrl","key","path","fetchJsonp","this","timeout","then","response","json","Promise","resolve","equivalents","icon","carIcon","factor","unit","text","showerIcon","eaIcon","trainIcon","saunaIcon","max","maxUnit","microwaveIcon","cookingIcon","washingIcon","dryerIcon","Energy","props","overview","view","dayEnergy","lastDayData","energy","monthEnergy","lastMonthData","yearEnergy","lastYearData","totalEnergy","lifeTimeData","title","number","Date","toLocaleString","month","year","React","Component","EnergyCard","Math","round","parseFloat","equivalent","floor","random","length","equivalentNumber","equivalentUnit","Grid","item","xs","Card","CardContent","className","end","src","alt","formattingFn","Power","details","daily","power","currentPower","lastDay","peak","peakPower","powerWatt","effect","consumption","subtext","subnumber","value","center","color","PowerCard","style","textAlign","strokeWidth","circleRatio","styles","buildStyles","pathColor","rotation","backgroundColor","restClient","App","state","step","init","bind","setInterval","slideTime","setState","get","data","Container","container","spacing","onClick","render","now","total","Progress","padding","marginTop","Array","map","e","i","require","polyfill","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.39658036.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/house.879fc982.svg\";","module.exports = __webpack_public_path__ + \"static/media/car.aaedf804.svg\";","module.exports = __webpack_public_path__ + \"static/media/shower.4690cba3.svg\";","module.exports = __webpack_public_path__ + \"static/media/microwave.894d613a.svg\";","module.exports = __webpack_public_path__ + \"static/media/cooking.ad282bb4.svg\";","module.exports = __webpack_public_path__ + \"static/media/washing.1ca40d9f.svg\";","module.exports = __webpack_public_path__ + \"static/media/dryer.0b2d8470.svg\";","module.exports = __webpack_public_path__ + \"static/media/train.2d8438d7.svg\";","module.exports = __webpack_public_path__ + \"static/media/heater.e3bcf962.svg\";","module.exports = __webpack_public_path__ + \"static/media/solar.03d6ed33.svg\";","import fetchJsonp from 'fetch-jsonp';\r\n\r\nexport class RestClient {\r\n public baseUrl = \"https://monitoringapi.solaredge.com/site/1260017\"\r\n public key = \"0WXH5KIQYICA7KJDW574D9E8P52OF8QV\";\r\n\r\n public get(path: string): Promise {\r\n return fetchJsonp(this.baseUrl + path + \"?api_key=\" + this.key, {timeout: 15000})\r\n .then((response: any) => {\r\n return response.json();\r\n });\r\n }\r\n\r\n public getMocked(response: any)\r\n {\r\n return new Promise((resolve) => {\r\n resolve(response);\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport carIcon from './img/car.svg';\r\nimport showerIcon from './img/shower.svg';\r\nimport microwaveIcon from './img/microwave.svg';\r\nimport cookingIcon from './img/cooking.svg';\r\nimport washingIcon from './img/washing.svg';\r\nimport dryerIcon from './img/dryer.svg';\r\nimport trainIcon from './img/train.svg';\r\nimport saunaIcon from './img/heater.svg';\r\nimport eaIcon from './img/house.svg';\r\nimport CountUp from 'react-countup';\r\n\r\ninterface Equivalent {\r\n\ticon: string,\r\n\tfactor: number,\r\n\tunit: string,\r\n\tmax?: number,\r\n\tmaxUnit?: string,\r\n\ttext: string\r\n}\r\n\r\nconst equivalents: Equivalent[] = [\r\n\t{\r\n\t\ticon: carIcon,\r\n\t\tfactor: 0.625,\r\n\t\tunit: \"mil\",\r\n\t\ttext: \"elbilskörning\"\r\n\t},\r\n\t{\r\n\t\ticon: showerIcon,\r\n\t\tfactor: 0.227,\r\n\t\tunit: \"st\",\r\n\t\ttext: \"varma duschar\"\r\n\t},\r\n\t{\r\n\t\ticon: eaIcon,\r\n\t\tfactor: 0.000416666666,\r\n\t\tunit: \"%\",\r\n\t\ttext: \"av årsförbrukning\"\r\n\t},\r\n\t{\r\n\t\ticon: trainIcon,\r\n\t\tfactor: 0.01,\r\n\t\tunit: \"mil\",\r\n\t\ttext: \"tågtransport\"\r\n\t},\r\n\t{\r\n\t\ticon: saunaIcon,\r\n\t\tfactor: 0.1666,\r\n\t\tunit: \"tim\",\r\n\t\ttext: \"bastubad\",\r\n\t\tmax: 24,\r\n\t\tmaxUnit: \"dagar\"\r\n\t},\r\n\t{\r\n\t\ticon: microwaveIcon,\r\n\t\tfactor: 0.9,\r\n\t\tunit: \"tim\",\r\n\t\ttext: \"med microvågsugn\",\r\n\t\tmax: 168,\r\n\t\tmaxUnit: \"veckor\"\r\n\t},\r\n\t{\r\n\t\ticon: cookingIcon,\r\n\t\tfactor: 0.1333,\r\n\t\tunit: \"tim\",\r\n\t\ttext: \"matlagning spisplatta\",\r\n\t\tmax: 24,\r\n\t\tmaxUnit: \"dagar\"\r\n\t},\r\n\t{\r\n\t\ticon: washingIcon,\r\n\t\tfactor: 1.5,\r\n\t\tunit: \"st\",\r\n\t\ttext: \"tvättprogram\"\r\n\t},\r\n\t{\r\n\t\ticon: dryerIcon,\r\n\t\tfactor: 0.2,\r\n\t\tunit: \"st\",\r\n\t\ttext: \"torktumlingar\"\r\n\t},\r\n]\r\n\r\ninterface Props {\r\n\toverview: any,\r\n\tdetails: any,\r\n\tview: number\r\n}\r\n\r\nexport class Energy extends React.Component {\r\n\r\n\trender() {\r\n\t\tconst { overview, view } = this.props;\r\n\r\n\t\tlet dayEnergy = overview ? overview.lastDayData.energy : \"0\";\r\n\t\tlet monthEnergy = overview ? overview.lastMonthData.energy : \"0\";\r\n\r\n\t\tlet yearEnergy = overview ? overview.lastYearData.energy : \"0\";\r\n\t\tlet totalEnergy = overview ? overview.lifeTimeData.energy : \"0\";\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{view === 1 &&\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t{view === 2 &&\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n \r\n\t\t);\r\n\t}\r\n}\r\n\r\ninterface CardProps {\r\n\ttitle: string,\r\n\tnumber: string,\r\n\tunit: string,\r\n}\r\n\r\nclass EnergyCard extends React.Component {\r\n\r\n\trender() {\r\n\t\tconst { title, number, unit } = this.props;\r\n\t\tconst energy = Math.round(parseFloat(number) / 1000);\r\n\r\n\t\tconst equivalent = equivalents[Math.floor(Math.random()*equivalents.length)];\r\n\r\n\t\tlet equivalentNumber = 0;\r\n\t\tlet equivalentUnit = \"\";\r\n\r\n\t\tif (equivalent.max && equivalent.factor * energy > equivalent.max) {\r\n\t\t\tequivalentNumber = Math.round((equivalent.factor * energy) / equivalent.max);\r\n\t\t\tequivalentUnit = equivalent.maxUnit ? equivalent.maxUnit : equivalent.unit;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tequivalentNumber = Math.round(equivalent.factor * energy);\r\n\t\t\tequivalentUnit = equivalent.unit;\r\n\t\t}\r\n\r\n\t \treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {unit}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t number.toLocaleString()} /> {equivalentUnit}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{equivalent.text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n","import React from \"react\";\r\nimport { Grid, CardContent, Card } from '@material-ui/core';\r\nimport { CircularProgressbarWithChildren, buildStyles } from 'react-circular-progressbar';\r\nimport 'react-circular-progressbar/dist/styles.css';\r\nimport CountUp from \"react-countup\";\r\nimport saunaIcon from './img/solar.svg';\r\nimport eaIcon from './img/house.svg';\r\n\r\ninterface Props {\r\n\tmatch: any;\r\n\toverview: any,\r\n\tdetails: any,\r\n\tdaily: number\r\n}\r\n\r\nexport class Power extends React.Component {\r\n\r\n\trender() {\r\n\t\tconst { overview, details, daily } = this.props;\r\n\r\n\t\t// Extract data\r\n\t\tconst power = overview ? overview.currentPower.power : 0;\r\n\t\tconst lastDay = overview ? overview.lastDayData.energy : 0;\r\n\t\tconst peak = overview ? details.peakPower : 0;\r\n\r\n\t\tconst powerWatt = power/1000;\r\n\t\tconst effect = powerWatt > 0 && peak > 0 ? Math.round(powerWatt/peak * 100) : 0;\r\n\t\tconst consumption = Math.round(((lastDay / 1000) / daily) * 100);\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\r\n \r\n\t\t);\r\n\t}\r\n}\r\n\r\ninterface CardProps {\r\n\ttitle: string,\r\n\tvalue: number,\r\n\tcenter: number,\r\n\tunit: string,\r\n\tcolor: string,\r\n\tsubtext: string,\r\n\tsubnumber: string,\r\n\ticon?: string\r\n}\r\n\r\nclass PowerCard extends React.Component {\r\n\r\n\trender() {\r\n\t\tconst { title, value, center, unit, color, subtext, icon, subnumber } = this.props;\r\n\r\n\t \treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {unit}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{icon && }\r\n\t\t\t\t\t\t\t{subtext}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{subnumber}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","import React from \"react\";\r\nimport { HashRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport { RestClient } from \"./RestClient\";\r\nimport { Grid, Container } from '@material-ui/core/';\r\nimport { Energy } from \"./Energy\";\r\nimport { Power } from \"./Power\";\r\n\r\nconst restClient = new RestClient();\r\nconst stepCount = 3;\r\nconst slideTime = 20;\r\nconst daily = 657;\r\n\r\ninterface Props {}\r\n\r\ninterface State {\r\n\toverview: any,\r\n\tdetails: any,\r\n\tstep: number,\r\n}\r\n\r\nexport class App extends React.Component {\r\n\r\n\tconstructor(props: Props) {\r\n\t\tsuper(props);\r\n\r\n this.state = {\r\n\t\t\toverview: null,\r\n\t\t\tdetails: null,\r\n\t\t\tstep: 1,\r\n\t\t};\r\n\r\n\t\tthis.init = this.init.bind(this);\r\n\t\tthis.step = this.step.bind(this);\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tsetInterval(() => {\r\n\t\t\tthis.step();\r\n\t\t}, slideTime * 1000);\r\n\t}\r\n\r\n\tstep() {\r\n\t\tlet {step} = this.state;\r\n\r\n\t\tthis.setState({\r\n\t\t\tstep: step === stepCount ? 1 : step + 1\r\n\t\t})\r\n\t}\r\n\r\n\tcomponentDidMount()\r\n\t{\r\n restClient.get('/overview').then((data) => {\r\n\t\t\tthis.setState({\r\n\t\t\t\toverview: data.overview\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\trestClient.get('/details').then((data) => {\r\n\t\t\tthis.setState({\r\n\t\t\t\tdetails: data.details\r\n\t\t\t})\r\n });\r\n\t}\r\n\r\n\trender () {\r\n\t\tconst { step } = this.state;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{step === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t{step === 2 &&\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t{step === 3 &&\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\ninterface ProgressProps {\r\n\tnow: number,\r\n\ttotal: number\r\n}\r\n\r\nclass Progress extends React.Component {\r\n\r\n\trender() {\r\n\t\tconst { now, total } = this.props;\r\n\r\n\t \treturn (\r\n\t\t\t<>\r\n\t\t\t\r\n\t\t\t\t{[...Array(total)].map((e, i) =>\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default App;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nrequire('es6-promise').polyfill();\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n"],"sourceRoot":""}