{"version":3,"sources":["FinanceCalculator.js","App.js","serviceWorker.js","index.js"],"names":["FinanceCalculator","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","interestRate","initialInvestmet","yearlyIncome","calcualteNpv","bind","assertThisInitialized","changeInterestRate","changeInitialInvestmet","changeYearlyIncome","addYearlyIncome","removeYearlyIncome","changeKwh","changeLv","yearResults","index","length","parseFloat","Math","pow","event","setState","kwh","target","value","lv","i","prevState","_","newList","toConsumableArray","concat","filter","_this2","react_default","a","createElement","className","class","placeholder","type","onChange","map","y","key","onClick","React","Component","App","src_FinanceCalculator","Boolean","window","location","hostname","match","ReactDOM","render","src_App","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.5d0703cd.chunk.js","sourcesContent":["import React from 'react';\r\n\r\nclass FinanceCalculator extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n interestRate: 1.5,\r\n initialInvestmet: 40000,\r\n yearlyIncome: [8000, 9200.00, 10000.00, 12000.00, 14500.00]\r\n }\r\n\r\n this.calcualteNpv = this.calcualteNpv.bind(this);\r\n this.changeInterestRate = this.changeInterestRate.bind(this);\r\n this.changeInitialInvestmet = this.changeInitialInvestmet.bind(this);\r\n this.changeYearlyIncome = this.changeYearlyIncome.bind(this);\r\n this.addYearlyIncome = this.addYearlyIncome.bind(this);\r\n this.removeYearlyIncome = this.removeYearlyIncome.bind(this);\r\n this.changeKwh = this.changeKwh.bind(this);\r\n this.changeLv = this.changeLv.bind(this);\r\n }\r\n\r\n calcualteNpv() {\r\n let yearResults = 0;\r\n\r\n for (let index = 0; index < this.state.yearlyIncome.length; index++) {\r\n const element = parseFloat(this.state.yearlyIncome[index]);\r\n\r\n yearResults += element / Math.pow(1 + parseFloat(this.state.interestRate), index + 1);\r\n }\r\n\r\n return yearResults - parseFloat(this.state.initialInvestmet);\r\n }\r\n\r\n changeKwh(event) {\r\n this.setState({ kwh: event.target.value });\r\n }\r\n\r\n changeLv(event) {\r\n this.setState({ lv: event.target.value });\r\n }\r\n\r\n changeInterestRate(event) {\r\n this.setState({ interestRate: event.target.value });\r\n }\r\n\r\n changeInitialInvestmet(event) {\r\n this.setState({ initialInvestmet: event.target.value });\r\n }\r\n\r\n changeYearlyIncome(event, i) {\r\n let value = event.target.value;\r\n\r\n this.setState((prevState, _) => {\r\n let newList = [...prevState.yearlyIncome];\r\n newList[i] = value;\r\n\r\n return { yearlyIncome: newList };\r\n });\r\n }\r\n\r\n addYearlyIncome() {\r\n this.setState((prevState, _) => {\r\n let newList = [...prevState.yearlyIncome, 0];\r\n\r\n return { yearlyIncome: newList };\r\n });\r\n }\r\n\r\n removeYearlyIncome(index) {\r\n this.setState((prevState, _) => {\r\n let newList = prevState.yearlyIncome.filter((_, i) => i !== index);\r\n\r\n return { yearlyIncome: newList };\r\n });\r\n }\r\n\r\n render() {\r\n return
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.yearlyIncome.map((y, i) => {\r\n return \r\n \r\n \r\n \r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Годишна дисконтова ставка (лихвен процент)
Начална стойност на инвестицията (лв.)
Годишни доходи:
Доход за {i + 1}-та година\r\n
\r\n
\r\n this.changeYearlyIncome(event, i)} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Нетна настояща стойност на инвестицията{this.calcualteNpv()} лв.
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n \r\n

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

\r\n \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n}\r\n\r\nexport default FinanceCalculator;","import React from 'react';\nimport './App.css';\nimport FinanceCalculator from './FinanceCalculator';\n\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport \"bulma/css/bulma.css\";\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\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\nserviceWorker.unregister();\n"],"sourceRoot":""}