{"version":3,"sources":["api.js","components/TableForm.js","helper.js","components/Header.js","components/Route.js","components/ConfigureItem.js","components/Configure.js","components/AdminPage.js","components/LoginPage.js","App.js","reportWebVitals.js","index.js"],"names":["obj","Promise","resolve","reject","a","window","fetch","url","method","headers","Headers","body","JSON","stringify","undefined","then","response","status","json","catch","e","options","name","secondName","innerWidth","className","TableForm","props","load","api","cropOptions","setState","setFirstList","loadWeedingOption","weedingCropOptions","onAdd","lists","state","push","Crop","ShowWeeding","findIndex","m","Skord","onDelete","index","splice","onCalculation","handleChange","type","Number","target","value","handleCheck","checked","onChange","func","wait","immediate","timeout","context","this","args","arguments","later","apply","callNow","clearTimeout","setTimeout","debounce","PAL","KAL","loading","CropItems","results","error","message","bortPTotal","Math","round","reduce","b","parseInt","BortP","toFixed","recoPTotal","RecoP","bortKTotal","BortK","recoKTotal","RecoK","key","label","helper","map","k","style","whiteSpace","onFocus","select","o","color","item","fontSize","backgroundImage","process","data","display","title","AddWeeding","paddingRight","justifyContent","disabled","length","onClick","src","alt","sun","PureComponent","Header","slugRegex","Route","path","isNot","slugs","match","replace","exact","startsWith","vals","location","pathname","forEach","slug","substr","React","cloneElement","children","Component","ConfigureItem","keys","i","required","step","val","width","height","columnMap","KalConfigure","items","add","remove","submit","preventDefault","formRef","checkValidity","alert","columns","ref","onSubmit","c","marginTop","backgroundRepeat","backgroundSize","padding","AdminPage","active","logged","authorize","token","localStorage","getItem","user","console","log","removeItem","href","Email","minWidth","Configure","marginTopStyle","marginRight","marginLeft","LoginPage","Password","Token","setItem","Message","maxWidth","flexDirection","v","placeholder","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.4fcacb35.chunk.js","sourcesContent":["// eslint-disable-next-line import/no-anonymous-default-export\nexport default (obj) => {\n return new Promise(async (resolve, reject) => {\n window.fetch(`${obj.url}`, {\n method: obj.method,\n headers: new Headers({ 'content-type': 'application/json' }),\n body: obj.body ? JSON.stringify(obj.body) : undefined\n }).then(response => {\n if (response.status !== 200) {\n response.json().then(reject)\n return\n }\n response.json().then(resolve)\n }).catch(e => reject(e))\n })\n}","import React, { PureComponent } from \"react\";\nimport '../styles/tableForm.css';\nimport '../styles/commonStyles.css'\nimport { debounce } from '../helper';\nimport api from '../api';\n\nconst options = [{ name: 'Ange grödor i växtföljden' }, { name: 'Ange skörd ton/ha' }, { name: 'Halm' }, { name: 'Bortförsel', secondName: 'kg P/ ha' }, { name: window.innerWidth > 768 ? 'Rekommendation' : 'Rek', secondName: 'kg P / ha', className: 'border-line' }, { name: 'Bortförsel', secondName: 'kg K / ha' }, { name: window.innerWidth > 768 ? 'Rekommendation' : 'Rek', secondName: 'kg K / ha' }]\n\nclass TableForm extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n PAL: 10,\n KAL: 10,\n cropOptions: [],\n weedingCropOptions: [],\n lists: [{ Crop: 'Höstvete', Skord: 0 }]\n }\n }\n\n componentDidMount() {\n this.load();\n this.loadWeedingOption();\n }\n load = async () => {\n const cropOptions = await api({\n url: '/api/Calculate'\n }) || [];\n this.setState({ cropOptions })\n this.setFirstList();\n }\n loadWeedingOption = async () => {\n const weedingCropOptions = await api({\n url: '/api/WeedingCrop'\n }) || [];\n this.setState({ weedingCropOptions })\n this.setFirstList();\n }\n setFirstList() {\n if (this.state.cropOptions && this.state.weedingCropOptions) {\n this.setState({ lists: [{ Crop: this.state.cropOptions[0], ShowWeeding: this.state.weedingCropOptions.findIndex(m => m === this.state.cropOptions[0]) > -1, Skord: 0 }] })\n }\n }\n\n onAdd = () => {\n const lists = [...this.state.lists];\n lists.push({\n Crop: this.state.cropOptions[0],\n ShowWeeding: this.state.weedingCropOptions.findIndex(m => m === this.state.cropOptions[0]) > -1,\n Skord: 0\n });\n\n this.setState({ lists })\n }\n\n onDelete = (index) => {\n const lists = [...this.state.lists];\n lists.splice(index, 1)\n this.setState({ lists }, this.onCalculation)\n }\n\n handleChange = (e, index, type) => {\n const lists = [...this.state.lists];\n lists[index][type] = Number(e.target.value) >= 0 ? e.target.value : 0;\n this.setState({ lists }, this.onCalculation)\n }\n\n handleCheck = (e, index, type) => {\n const lists = [...this.state.lists];\n lists[index][type] = e.target.checked;\n this.setState({ lists }, this.onCalculation)\n }\n\n onChange = (index, e) => {\n const lists = [...this.state.lists];\n lists[index].Crop = e.target.value;\n lists[index].ShowWeeding = this.state.weedingCropOptions.findIndex(m => m === e.target.value) > -1;\n this.setState({ lists }, this.onCalculation)\n }\n\n onCalculation = debounce(async () => {\n const { PAL, KAL, lists } = this.state;\n this.setState({ loading: true, })\n try {\n const results = await api({\n url: '/api/Calculate',\n method: 'post',\n body: { PAL, KAL, CropItems: lists }\n })\n this.setState({ loading: false, results })\n } catch (e) {\n this.setState({ error: e.message || 'Något fel inträffade', loading: false })\n setTimeout(() => {\n this.setState({ error: '' })\n }, 3000);\n }\n }, 1000)\n\n render() {\n\n const { results = [], loading, error, cropOptions = [] } = this.state;\n const bortPTotal = Math.round(results.reduce((a, b) => a + parseInt(b.BortP.toFixed(0)), 0))\n const recoPTotal = Math.round(results.reduce((a, b) => a + parseInt(b.RecoP.toFixed(0)), 0))\n const bortKTotal = Math.round(results.reduce((a, b) => a + parseInt(b.BortK.toFixed(0)), 0))\n const recoKTotal = Math.round(results.reduce((a, b) => a + parseInt(b.RecoK.toFixed(0)), 0))\n const kls = [{ key: 'PAL', label: 'P-AL-tal', helper: 'P-AL värdet du skriver in är ett medeltal av det fältet/område som du vill göra beräkningen för. Medeltalet får du genom att uppskatta eller räkna ett medelvärde av P-AL från din markkarta. ' }, { key: 'KAL', label: 'K-AL-tal', helper: 'K-AL värdet du skriver in är ett medeltal av det fältet/område som du vill göra beräkningen för. Medeltalet får du genom att uppskatta eller räkna ett medelvärde av K-AL från din markkarta. ' }]\n return (\n
\n
\n
\n {\n kls.map(k => (\n
\n
\n {k.helper}\n

Ange

\n

{k.label}

\n
\n
\n e.target.select()} className='head-input primary-border'\n type='number'\n value={this.state[k.key]}\n onChange={e => {\n const o = { ...this.state }\n o[k.key] = Number(e.target.value) >= 0 ? e.target.value : 0;\n this.setState(o, this.onCalculation)\n }} />\n

mg/100 g jord

\n
\n
\n ))\n }\n
\n
\n
{loading ? 'Läser in...' : ''}
\n {error &&
{error}
}\n
\n \n \n \n {options.map((item, index) => {\n return (\n \n )\n })}\n \n \n \n \n {this.state.lists.map((item, index) => {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n })}\n \n {[{ value: \"loading\" }, { value: 'Summa' }, { value: '' }, { value: bortPTotal }, { value: recoPTotal }, { value: bortKTotal }, { value: recoKTotal }, { value: '' }].map((sun, index) => {\n return (\n \n )\n })}\n \n \n \n \n \n \n \n \n \n \n \n
\n
{item.name}
\n
{item.secondName}
\n
\n
\n \n
\n
\n
\n {\n e.target.select()\n }}\n type='number'\n onChange={(e) => this.handleChange(e, index, 'Skord')} value={typeof item.Skord === 'undefined' ? 0 : item.Skord} />\n Decimaltecken skrivs med punkt\n
\n
\n
\n e.target.select()} type='checkbox' onChange={(e) => this.handleCheck(e, index, 'AddWeeding')} value={typeof item.AddWeeding === 'undefined' ? 0 : item.AddWeeding} />\n
\n
{Math.round((results[index] && results[index].BortP) || 0)}
{Math.round((results[index] && results[index].RecoP) || 0)}
{Math.round((results[index] && results[index].BortK) || 0)}
{Math.round((results[index] && results[index].RecoK) || 0)}
\n
\n \n
\n
{sun.value}
Balans över växtföljd
{Math.round(recoPTotal - bortPTotal)} kg P/ha
{Math.round(recoKTotal - bortKTotal)} kg K/ha
\n
\n
\n );\n }\n}\n\nexport default TableForm;","export function debounce(func, wait, immediate) {\n var timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n}","import React, { PureComponent } from \"react\";\nimport '../styles/header.css'\nimport '../styles/commonStyles.css'\n\nclass Header extends PureComponent {\n state = {}\n render() {\n return (\n
\n \"loading\"\n

Bördighetsanpassad P- och K-gödsling

\n
\n {/*
\n \"loading\"\n
Skicka din beräkning
\n
*/}\n
\n );\n }\n}\n\nexport default Header;","import React from 'react'\n\nconst slugRegex = /:[a-z]*/ig // :id, :name, etc.\n\nclass Route extends React.Component {\n match () {\n let { path, isNot } = this.props\n const slugs = path.match(slugRegex) // find slugs\n if (slugs) {\n path = path.replace(slugRegex, '([^/]*)') // replace slugs and create strict regex\n }\n if (this.props.exact) {\n path = '^' + path + '$' // do an exact match?\n }\n if (this.props.startsWith) {\n path = '^' + path // should start with?\n }\n const vals = window.location.pathname.match(path) // match the route\n if ((isNot && !vals) || (!isNot && vals)) {\n const props = {}\n slugs && slugs.forEach((slug, index) => { // replace any variable names\n props[slug.substr(1)] = vals[index + 1]\n })\n return props\n }\n }\n\n render () {\n const props = this.match()\n if (props) {\n return React.cloneElement(this.props.children, props)\n } else {\n return null\n }\n }\n}\n\nexport default Route\n","import React, { Component } from 'react';\n\nclass ConfigureItem extends Component {\n render() {\n const { item, index, onChange, keys } = this.props\n return (\n
\n {\n keys.map((k, i) => (\n
\n {\n const val = { ...item }\n val[k] = e.target.value\n onChange(val, index)\n }} />\n
\n ))\n }\n \n
\n );\n }\n}\n\nexport default ConfigureItem;","import React, { Component } from 'react';\nimport ConfigureItem from './ConfigureItem';\nimport '../styles/adminPage.css';\nimport api from '../api';\n\nconst columnMap = {\n 'Crop': 'Grödor',\n 'Juster': 'Justering',\n 'Bort': 'Bortförsel',\n 'Break1': 'brytpunkt1',\n 'Break2': 'brytpunkt2',\n 'Break3': 'brytpunkt3',\n 'AndelHalmav': 'Andel halm av kärna',\n 'Fosfor': 'Fosfor i halm',\n 'Kalium': 'Kalium i halm',\n 'BortPRate': 'Bortförsel P',\n 'BortKRate': 'Bortförsel K',\n}\n\nclass KalConfigure extends Component {\n\n state = {\n items: []\n }\n\n async componentDidMount() {\n const items = await api({\n url: `/api/${this.props.type}`,\n }) || []\n this.setState({ items })\n }\n\n\n add = () => {\n const { items } = this.state;\n if (this.props.type === 'Weeding') {\n items.push({\n 'Crop': '',\n 'Andel': '',\n 'Fosfor': '',\n 'Kalium': '',\n 'BortPRate': 0.85,\n 'BortKRate': 0.85\n });\n } else {\n items.push({});\n }\n this.setState({ items });\n }\n remove = (i) => {\n const items = [...this.state.items]\n items.splice(i, 1)\n this.setState({ items })\n }\n\n onChange = (item, i) => {\n const { items } = this.state;\n items[i] = item\n this.setState({ items })\n }\n\n submit = async (e) => {\n e.preventDefault()\n const isValid = this.formRef.checkValidity()\n if (isValid) {\n this.setState({ loading: true })\n try {\n await api({\n url: `/api/${this.props.type}`,\n method: 'post',\n body: {\n data: JSON.stringify(this.state.items)\n }\n })\n alert('Save successfully');\n } catch (error) {\n alert('Some error happened')\n } finally {\n this.setState({ loading: false })\n }\n\n }\n }\n\n render() {\n const { items = [], loading } = this.state;\n const { columns = [], } = this.props;\n return (\n
this.formRef = e} onSubmit={this.submit}>\n
\n {\n columns.map(c => (
{columnMap[c] || c}
))\n }\n \n
\n {\n items.map((i, k) => )\n }\n
\n
Lägg till gröda
\n \n
\n \n );\n }\n}\n\nexport default KalConfigure;","import React, { Component } from 'react';\nimport '../styles/commonStyles.css'\nimport '../styles/adminPage.css';\nimport Configure from './Configure';\nimport api from '../api';\n\nconst style = {\n backgroundImage: `url(${process.env.PUBLIC_URL + '/images/background.png'})`,\n height: 200,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n padding: '0 10vw'\n}\nclass AdminPage extends Component {\n state = { active: 'forsfor', logged: false }\n componentDidMount() {\n this.authorize()\n }\n authorize = async () => {\n try {\n var token = window.localStorage.getItem('token');\n const user = await api({\n url: `/api/Authorize?token=${token}`\n })\n this.setState({ logged: true, user })\n } catch (error) {\n console.log(error)\n window.localStorage.removeItem('token')\n window.location.href = '/login'\n }\n }\n\n render() {\n const { active, user = {}, logged } = this.state;\n return logged ? (\n
\n
\n \"loading\"\n

{user.Email}

\n
\n
\n
\n
this.setState({ active: 'forsfor' })}>Fosfor
\n
this.setState({ active: 'kalium' })}>Kalium
\n
this.setState({ active: 'Weeding' })}>Halm
\n
{ window.localStorage.removeItem('token'); window.location.href = '/login' }}>Logout
\n
\n
\n {active === 'forsfor' && }\n {active === 'kalium' && }\n {active === 'Weeding' && }\n
\n
\n
\n ) : null;\n }\n}\n\nexport default AdminPage;","import React, { Component } from 'react';\nimport api from '../api';\n\nconst style = {\n backgroundImage: `url(${process.env.PUBLIC_URL + '/images/background.png'})`,\n height: 200,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n padding: '0 10vw'\n}\n\nconst marginTopStyle = {\n marginTop: 20,\n width: '100%',\n marginRight: 0,\n marginLeft: 0,\n height: 56,\n fontSize: 24,\n}\n\nclass LoginPage extends Component {\n state = {\n Email: \"\",\n Password: \"\"\n }\n\n onSubmit = async (e) => {\n e.preventDefault();\n const isValid = this.formRef.checkValidity()\n if (isValid) {\n try {\n const { Token } = await api({\n url: \"/api/Authorize\",\n method: 'post',\n body: this.state\n })\n window.localStorage.setItem('token', Token)\n window.location.href = '/admin'\n } catch (e) {\n alert(e.Message)\n }\n }\n\n }\n render() {\n return (\n
\n
\n \"loading\"\n
\n
\n
this.formRef = e} onSubmit={this.onSubmit}>\n this.setState({ Email: v.target.value })} required name=\"Email\" placeholder=\"Email\" />\n this.setState({ Password: v.target.value })} required type='password' placeholder=\"Password\" name=\"Password\" />\n \n
\n
\n\n
\n );\n }\n}\n\nexport default LoginPage;","import './App.css';\nimport TableForm from './components/TableForm';\nimport Header from './components/Header';\nimport Route from './components/Route';\nimport React, { PureComponent } from \"react\";\nimport './styles/commonStyles.css';\nimport AdminPage from './components/AdminPage';\nimport LoginPage from './components/LoginPage';\n\n\nclass App extends PureComponent {\n\n render() {\n return (\n
\n \n
\n
\n \n
\n
\n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}