{"version":3,"sources":["airtableclient.js","secrets.js","totalBelastning.js","utils.js","manedsFordeling.js","currentMonth.js","lopingManed.js","nokkeltall.js","nokkeltallContainer.js","dagbok.js","App.js","index.js"],"names":["base","require","apiKey","TotalBelastning","data","labels","this","props","datasets","label","backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","react_default","a","createElement","className","es","width","height","options","maintainAspectRatio","React","Component","groupBy","list","keyGetter","map","Map","forEach","item","key","collection","get","push","set","months","ManedsFordeling","groupedTotals","records","x","getMonth","dato","Object","toConsumableArray","keys","totalsummer","length","CurrentMonth","currentMonth","Date","lastMonth","addMonths","lastlastMonth","filter","type","isSameMonth","getISOWeek","reduce","sum","elmt","distanse","toFixed","LopingManed","NokkelTall","_this$props","value","title","subtitle","NokkelTallContainer","totalLopin","totalLangrenn","antallStyrkeokter","weeks","numSessionsPerWeek","nokkeltall_NokkelTall","Dagbok","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","state","_this2","callback","console","log","foobar","select","maxRecords","view","eachPage","fetchNextPage","mappedRecors","fields","Dato","Type","Distanse","trim","concat","err","error","getShit","setState","nokkeltallContainer_NokkelTallContainer","totalBelastning_TotalBelastning","manedsFordeling_ManedsFordeling","lopingManed_LopingManed","currentMonth_CurrentMonth","App","dagbok_Dagbok","ReactDOM","render","src_App","document","getElementById"],"mappings":"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","file":"static/js/main.168d1701.chunk.js","sourcesContent":["import {AIRTABLE_API_KEY} from './secrets'\r\nconst Airtable = require('airtable');\r\nconst base = new Airtable({apiKey: 'keyhjIHag6pThZ0k3'}).base(AIRTABLE_API_KEY);\r\n\r\n\r\nexport function getShit(callback) {\r\n console.log(\"fuck off\");\r\n let foobar = [];\r\n return base('Imported table').select({\r\n // Selecting the first 3 records in Grid view:\r\n maxRecords: 1000,\r\n view: \"Grid view\"\r\n }).eachPage(function page(records, fetchNextPage) {\r\n // This function (`page`) will get called for each page of records.\r\n\r\n\r\n const filteredRecords = records.filter(x => x.fields.Dato && x.fields.Type);\r\n\r\n const mappedRecors = filteredRecords.map(x => ({dato: new Date(x.fields.Dato), distanse: x.fields.Distanse, type: x.fields.Type.trim()}));\r\n foobar = [...foobar, ...mappedRecors];\r\n // To fetch the next page of records, call `fetchNextPage`.\r\n // If there are more records, `page` will get called again.\r\n // If there are no more records, `done` will get called.\r\n fetchNextPage();\r\n }, function done(err) {\r\n if (err) {\r\n console.error(err);\r\n }\r\n callback(foobar)\r\n });\r\n}","export const AIRTABLE_API_KEY = \"app6AXmJfif4YKaUf\";","import React from 'react';\r\nimport {Bar} from 'react-chartjs-2';\r\n\r\n\r\n\r\nexport default class TotalBelastning extends React.Component {\r\n render() {\r\n\r\n const data = {\r\n labels: this.props.labels,\r\n datasets: [\r\n {\r\n label: 'Antall treninsøkter',\r\n backgroundColor: 'rgba(255,99,132,0.2)',\r\n borderColor: 'rgba(255,99,132,1)',\r\n borderWidth: 1,\r\n hoverBackgroundColor: 'rgba(255,99,132,0.4)',\r\n hoverBorderColor: 'rgba(255,99,132,1)',\r\n data: this.props.data,\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n
\r\n

Antall treningsøkter

\r\n \r\n
\r\n );\r\n }\r\n};","export function groupBy(list, keyGetter) {\r\n const map = new Map();\r\n list.forEach((item) => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n map.set(key, [item]);\r\n } else {\r\n collection.push(item);\r\n }\r\n });\r\n return map;\r\n}","import React from 'react';\r\nimport {Bar} from 'react-chartjs-2';\r\nimport {groupBy} from \"./utils\";\r\nimport {getMonth } from 'date-fns';\r\n\r\nconst months = [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"]\r\n\r\nexport default class ManedsFordeling extends React.Component {\r\n render() {\r\n const { records} = this.props;\r\n const groupedTotals = groupBy(records, x => months[getMonth(x.dato)]);\r\n const labels = [...groupedTotals.keys()];\r\n const totalsummer = labels.map(x => {\r\n const belastning = groupedTotals.get(x);\r\n return belastning.length;\r\n });\r\n const data = {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: 'Antall treninsøkter',\r\n backgroundColor: 'rgba(255,99,132,0.2)',\r\n borderColor: 'rgba(255,99,132,1)',\r\n borderWidth: 1,\r\n hoverBackgroundColor: 'rgba(255,99,132,0.4)',\r\n hoverBorderColor: 'rgba(255,99,132,1)',\r\n data: totalsummer,\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n
\r\n

Månedsfordeling

\r\n \r\n
\r\n );\r\n }\r\n};","import React from 'react';\r\nimport { HorizontalBar } from 'react-chartjs-2';\r\nimport {groupBy} from \"./utils\";\r\nimport {isSameMonth, getISOWeek, addMonths} from 'date-fns';\r\nexport default class CurrentMonth extends React.Component {\r\n render() {\r\n const { records} = this.props;\r\n const currentMonth = new Date();\r\n const lastMonth = addMonths(currentMonth, -1);\r\n const lastlastMonth = addMonths(lastMonth, -1);\r\n const sessionsCurrentMonth = records.filter(x => x.type === \"Løping\").filter(x => isSameMonth(currentMonth, x.dato) || isSameMonth(lastMonth, x.dato) || isSameMonth(lastlastMonth, x.dato));\r\n\r\n const groupedTotals = groupBy(sessionsCurrentMonth, x=> getISOWeek(x.dato));\r\n\r\n const labels = [...groupedTotals.keys()];\r\n const totalsummer = labels.map(x => {\r\n const belastning = groupedTotals.get(x);\r\n const sumBelastning = belastning.reduce((sum, elmt) => sum + elmt.distanse, 0);\r\n return sumBelastning.toFixed(0);\r\n });\r\n\r\n const data = {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: 'Kilometer',\r\n backgroundColor: 'rgba(255,99,132,0.2)',\r\n borderColor: 'rgba(255,99,132,1)',\r\n borderWidth: 1,\r\n hoverBackgroundColor: 'rgba(255,99,132,0.4)',\r\n hoverBorderColor: 'rgba(255,99,132,1)',\r\n data: totalsummer,\r\n }\r\n ]\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n

Kilometer pr uke

\r\n \r\n
\r\n );\r\n }\r\n};","import React from 'react';\r\nimport { HorizontalBar } from 'react-chartjs-2';\r\nimport {groupBy} from \"./utils\";\r\nimport {getMonth} from 'date-fns';\r\n\r\nconst months = [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"]\r\n\r\nexport default class LopingManed extends React.Component {\r\n render() {\r\n const { records} = this.props;\r\n\r\n\r\n const lopeSessions = records.filter(x => x.type === \"Løping\");\r\n\r\n const groupedTotals = groupBy(lopeSessions, x => months[getMonth(x.dato)]);\r\n const labels = [...groupedTotals.keys()];\r\n const totalsummer = labels.map(x => {\r\n const belastning = groupedTotals.get(x);\r\n const sumBelastning = belastning.reduce((sum, elmt) => sum + elmt.distanse, 0);\r\n return sumBelastning.toFixed(0);\r\n });\r\n\r\n const data = {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: 'Kilometer',\r\n backgroundColor: 'rgba(255,99,132,0.2)',\r\n borderColor: 'rgba(255,99,132,1)',\r\n borderWidth: 1,\r\n hoverBackgroundColor: 'rgba(255,99,132,0.4)',\r\n hoverBorderColor: 'rgba(255,99,132,1)',\r\n data: totalsummer,\r\n }\r\n ]\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n

Kilometer pr måned

\r\n \r\n
\r\n );\r\n }\r\n};","import React from 'react';\r\n\r\nexport default class NokkelTall extends React.Component {\r\n render() {\r\n\r\n const {value, title, subtitle} = this.props;\r\n return (\r\n
\r\n
\r\n
{value}
\r\n

{subtitle}

\r\n

{title}

\r\n
\r\n
)\r\n }\r\n};","import React from 'react';\r\nimport NokkelTall from \"./nokkeltall\";\r\nimport {getISOWeek} from 'date-fns';\r\n\r\nexport default class NokkelTallContainer extends React.Component {\r\n render() {\r\n const {records} = this.props;\r\n if (! records) {\r\n return null;\r\n }\r\n const totalLopin = records.filter(x => x.type === \"Løping\").reduce((sum,elmt) => sum + elmt.distanse, 0).toFixed(0);\r\n const totalLangrenn = records.filter(x => x.type === \"Langrenn\").reduce((sum,elmt) => sum + elmt.distanse, 0).toFixed(0);\r\n const antallStyrkeokter = records.filter(x => x.type === \"Styrke\" || x.type === \"Barry's Bootcamp\");\r\n\r\n const weeks = getISOWeek(new Date());\r\n const numSessionsPerWeek = (records.length / weeks).toFixed(1);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n};","import React from 'react';\r\nimport './App.css';\r\nimport {getShit} from \"./airtableclient\";\r\nimport TotalBelastning from \"./totalBelastning\";\r\nimport {groupBy} from \"./utils\";\r\nimport ManedsFordeling from \"./manedsFordeling\";\r\nimport CurrentMonth from \"./currentMonth\";\r\nimport LopingManed from \"./lopingManed\";\r\nimport NokkelTallContainer from \"./nokkeltallContainer\";\r\n\r\n\r\nexport default class Dagbok extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() {\r\n getShit((x) => {\r\n this.setState({\r\n records: x\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n if (!this.state.records) {\r\n return

fetching

\r\n }\r\n const {records} = this.state;\r\n const groupedTotals = groupBy(records, x => x.type);\r\n const labels = [...groupedTotals.keys()];\r\n const totalsummer = labels.map(x => {\r\n const belastning = groupedTotals.get(x);\r\n return belastning.length;\r\n });\r\n return (
\r\n \r\n
\r\n

Total belastning

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

Løping

\r\n \r\n \r\n
\r\n
);\r\n }\r\n}","import React from 'react';\nimport './App.css';\nimport Dagbok from \"./dagbok\";\n\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n"],"sourceRoot":""}