{"version":3,"sources":["webpack:///app.js","webpack:///webpack/bootstrap 33435ad271fc30694841","webpack:///./Frontend/js/app.js","webpack:///./Frontend/js/modules/tooltip.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","calculate","event","preventDefault","$","addClass","data","getInputs","inputs","errList","length","input","focus","removeClass","outputs","WorkdaysPerYear","WorkPercent","CarCostsPerDay","KmPerWay","TcsPricePerKm","CarCostsPerMonth","ParkingPerMonth","PubTransPerMonth","YearSubscription","CarCostsPerYear","PubTransPerYear","CarSavingsPerMonth","CarSavingsPerYear","TotalKm","SavingsCo2PerYear","FuelLitres","FuelTanks","applyOutput","attr","selector","each","iRef","this","val","valNum","parseFloat","isNaN","String","errRef","closest","find","push","error","removeAttr","i","value","roundedValue","Math","round","ref","html","numberWithCommas","calculateTime","CarWorkTimePerDay","TakeHomePayPerMonth","PubTransWorkTimePerDay","setTimeout","document","ready","on","x","toString","replace","tooltipFocus","type","keyCode","tooltipIcon","target","isShown","hasClass","tooltipClose","tRef","icon"],"mappings":"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","file":"app.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t__webpack_require__(1);\n\t\n\tvar outputs = {};\n\t\n\tvar inputs = {};\n\t$(document).ready(function () {\n\t\n\t\t$(\"#CalcButton\").on(\"click\", calculate);\n\t\t$(\"#CalcButtonTime\").on(\"click\", calculateTime);\n\t\n\t\t//$(\".tooltip-icon\").attr(\"aria-expanded\",\"false\");\n\t\n\t\n\t\t//$(\".tooltip-text\").on(\"blur keydown\",tooltipBlur)\n\t\n\t});\n\t\n\tfunction calculate(event) {\n\t\tevent.preventDefault();\n\t\n\t\t$(\".error\").addClass(\"hidden\");\n\t\n\t\tvar data = getInputs(\".inputs input\");\n\t\tinputs = data.inputs;\n\t\n\t\tif (data.errList.length > 0) {\n\t\t\tdata.errList[0].input.focus();\n\t\t\treturn;\n\t\t}\n\t\n\t\t//console.log(inputs);\n\t\n\t\t$(\".outputs\").removeClass(\"hidden\");\n\t\t//(Arbeitstage / 100% * Arbeitspensum = Arbeitstage pro Jahr)\n\t\n\t\n\t\toutputs.WorkdaysPerYear = inputs.WorkdaysPerYear * inputs.WorkPercent / 100;\n\t\t//(Km pro Weg * 2 (=KM pro Tag) * 0.65chf/km = Kosten Pro Tag)\n\t\toutputs.CarCostsPerDay = inputs.KmPerWay * 2 * inputs.TcsPricePerKm;\n\t\n\t\t//Kosten Arbeitsweg pro Monat\n\t\t//Auto: W8 * W7 / 12 + W4 = W9 (Kosten pro Tag * Arbeitstage pro Jahr / 12 + Parkplatzkosten = Kosten pro Monat)\n\t\t//ÖV: W3 / 12 = W10 (ÖV Kosten / 12 = Kosten pro Monat)\n\t\n\t\toutputs.CarCostsPerMonth = outputs.CarCostsPerDay * (outputs.WorkdaysPerYear / 12) + inputs.ParkingPerMonth;\n\t\n\t\toutputs.PubTransPerMonth = inputs.YearSubscription / 12;\n\t\n\t\t//Kosten Arbeitsweg pro Jahr\n\t\t//Auto: W8 * W7 + (W4 * 12) = W11 (Kosten pro Tag * Arbeitstage pro Jahr + Parkplatzkosten pro Jahr)\n\t\t//ÖV: W3\n\t\n\t\toutputs.CarCostsPerYear = outputs.CarCostsPerDay * outputs.WorkdaysPerYear + inputs.ParkingPerMonth * 12;\n\t\n\t\toutputs.PubTransPerYear = inputs.YearSubscription;\n\t\n\t\t//Einsparungen ÖV gegenüber Auto\n\t\t//Pro Monat: W9 – W10 (Autokosten – ÖV Kosten)\n\t\t//Pro Jahr: W11 – W3 (Autokosten – ÖV Kosten)\n\t\n\t\toutputs.CarSavingsPerMonth = outputs.CarCostsPerMonth - outputs.PubTransPerMonth;\n\t\toutputs.CarSavingsPerYear = outputs.CarCostsPerYear - outputs.PubTransPerYear;\n\t\n\t\toutputs.TotalKm = outputs.WorkdaysPerYear * 2 * inputs.KmPerWay;\n\t\n\t\toutputs.SavingsCo2PerYear = outputs.TotalKm / 5.1 - outputs.TotalKm / 328.3;\n\t\toutputs.FuelLitres = outputs.TotalKm / 10.4 - outputs.TotalKm / 113.8;\n\t\toutputs.FuelTanks = outputs.FuelLitres / 60;\n\t\n\t\t/*\r\n\t \r\n\t function processAndWriteResults() {\r\n\t \t\t\tnumberWorkingDaysPerYear = 220.0*jQuery(\"#input2\").val()/100.0;\r\n\t \t\t\tif (numberWorkingDaysPerYear == 0.0) numberWorkingDaysPerYear++;\r\n\t \t\t\tvar resultCostsCarPerYear = Math.round((jQuery(\"#input1\").val()*2*0.65*numberWorkingDaysPerYear + 12*jQuery(\"#input4\").val())); // formula from Excel sheet translated to JS\r\n\t \t\t\tjQuery(\"#costscarperyear\").text(resultCostsCarPerYear);\r\n\t \t\t\tjQuery(\"#costscarpermonth\").text(Math.round(resultCostsCarPerYear/12.0));\r\n\t \t\t\tjQuery(\"#costsoevperyear\").text(Math.round(jQuery(\"#input3\").val()));\r\n\t \t\t\tjQuery(\"#costsoevpermonth\").text(Math.round(jQuery(\"#input3\").val()/12.0));\r\n\t \t\t\t\r\n\t \t\t\tvar tmpResultSavingsCarPerYear = jQuery(\"#input1\").val()*2*numberWorkingDaysPerYear;\r\n\t \t\t\tvar resultSavingsCarPerYear = Math.round(tmpResultSavingsCarPerYear/5.1 - tmpResultSavingsCarPerYear/328.3);\r\n\t \t\t\tjQuery(\"#savingscarpermonth\").text(jQuery(\"#costscarpermonth\").text() - jQuery(\"#costsoevpermonth\").text());\r\n\t \t\t\tjQuery(\"#savingscarperyear\").text(jQuery(\"#costscarperyear\").text() - jQuery(\"#costsoevperyear\").text());\r\n\t \t\t\tjQuery(\"#savingsco2peryear\").text(resultSavingsCarPerYear);\r\n\t \t\t\tjQuery(\"#savingsfuelperyear\").text(Math.round((tmpResultSavingsCarPerYear/10.4 - tmpResultSavingsCarPerYear/113.8)/60.0));\r\n\t \t\t\t\r\n\t \t\t\tshowSliderValue(currentChosenIncome); \r\n\t \t\t\tshowDivs();\r\n\t \t\t}\r\n\t */\n\t\n\t\tapplyOutput(outputs);\n\t\n\t\t//console.log(outputs);\n\t\n\t\t$(\"#CalcButtonFocus\").attr(\"tabindex\", \"0\").focus();\n\t}\n\t\n\tfunction getInputs(selector) {\n\t\tvar data = {\n\t\t\tinputs: []\n\t\t};\n\t\tvar errList = [];\n\t\n\t\t$(selector).each(function () {\n\t\t\tvar iRef = $(this);\n\t\t\tvar id = iRef.attr(\"id\");\n\t\t\tvar val = iRef.val();\n\t\t\tvar valNum = parseFloat(val);\n\t\n\t\t\tif (isNaN(valNum) || String(val) != String(valNum)) {\n\t\t\t\tvar errRef = iRef.closest(\".input\").find(\".error\");\n\t\t\t\terrRef.attr(\"id\", id + \"-error\");\n\t\t\t\tiRef.attr(\"aria-invalid\", \"true\");\n\t\t\t\tiRef.attr(\"aria-describedby\", id + \"-error\");\n\t\t\t\terrRef.removeClass(\"hidden\");\n\t\t\t\tiRef.focus();\n\t\t\t\terrList.push({ input: iRef, error: errRef });\n\t\t\t} else {\n\t\t\t\tiRef.attr(\"aria-invalid\", \"false\");\n\t\t\t\tiRef.removeAttr(\"aria-describedby\");\n\t\t\t\tdata.inputs[id] = valNum;\n\t\t\t}\n\t\t});\n\t\tdata.errList = errList;\n\t\treturn data;\n\t}\n\t\n\tfunction applyOutput(outputs) {\n\t\tfor (var i in outputs) {\n\t\t\tvar value = outputs[i];\n\t\t\tif (isNaN(value)) {\n\t\t\t\tvalue = 0;\n\t\t\t}\n\t\t\tvar roundedValue = Math.round(value);\n\t\t\tvar ref = $(\".output-\" + i);\n\t\n\t\t\tref.html(roundedValue);\n\t\n\t\t\tref = $(\".output-formatted-\" + i);\n\t\n\t\t\t//console.log(numberWithCommas(roundedValue));\n\t\t\tref.html(numberWithCommas(roundedValue));\n\t\t}\n\t}\n\t\n\tfunction calculateTime() {\n\t\t//outputs.TakeHomeSalary\n\t\n\t\tvar data = getInputs(\".outputs input\");\n\t\n\t\toutputs.CarWorkTimePerDay = outputs.CarCostsPerYear / outputs.WorkdaysPerYear / data.inputs.TakeHomePayPerMonth * 10000;\n\t\toutputs.PubTransWorkTimePerDay = outputs.PubTransPerYear / outputs.WorkdaysPerYear / data.inputs.TakeHomePayPerMonth * 10000;\n\t\n\t\t//console.log(outputs);\n\t\n\t\n\t\tapplyOutput(outputs);\n\t\n\t\t$(\"#timeresults\").removeClass(\"hidden\");\n\t\n\t\tsetTimeout(function () {\n\t\t\t$(\"#calculateTimeFocus\").attr(\"tabindex\", \"0\").focus();\n\t\t}, 100);\n\t}\n\t\n\tvar numberWithCommas = function numberWithCommas(x) {\n\t\treturn x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"'\") + \".00\";\n\t};\n\t\n\t/*\r\n\t\r\n\tjQuery(\"#workingtimeneededforcar\").text(Math.round(jQuery(\"#costscarperyear\").text() / numberWorkingDaysPerYear / jQuery(\"#salarypermonth\").text() * 10000.0));\r\n\t\t\t\tjQuery(\"#workingtimeneededforoev\").text(Math.round(jQuery(\"#costsoevperyear\").text()/numberWorkingDaysPerYear/jQuery(\"#salarypermonth\").text() * 10000.0));\r\n\t*/\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\t$(document).ready(function () {\n\t\t$(\".tooltip-icon\").attr(\"role\", \"button\");\n\t\t$(\".tooltip-icon\").attr(\"aria-expanded\", \"false\");\n\t\t$(\".tooltip-close\").attr(\"role\", \"button\");\n\t\t$(\".tooltip-icon\").on(\"click keydown\", tooltipFocus);\n\t\t$(\".tooltip-close\").on(\"click keydown\", tooltipClose);\n\t});\n\t\n\tfunction tooltipFocus(event) {\n\t\tif (event.type == \"keydown\") {\n\t\t\tif (event.keyCode != 13 && event.keyCode != 32) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tvar tooltipIcon = $(event.target);\n\t\tvar isShown = tooltipIcon.hasClass(\"show\");\n\t\t$(\".tooltip-icon\").attr(\"aria-expanded\", \"false\");\n\t\t$(\".tooltip-icon\").removeClass(\"show\");\n\t\n\t\tif (!isShown) {\n\t\t\ttooltipIcon.addClass(\"show\");\n\t\t\ttooltipIcon.attr(\"aria-expanded\", \"true\");\n\t\t}\n\t}\n\t\n\tfunction tooltipClose(event) {\n\t\n\t\tif (event.type == \"keydown\") {\n\t\t\tif (event.keyCode == 13) {\n\t\t\t\tevent.preventDefault();\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tvar tRef = $(event.target);\n\t\tvar icon = tRef.closest(\".tooltip-container\").find(\".tooltip-icon\");\n\t\ticon.removeClass(\"show\");\n\t\ticon.focus();\n\t\t$(\".tooltip-icon\").attr(\"aria-expanded\", \"false\");\n\t}\n\n/***/ }\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// app.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 33435ad271fc30694841","require(\"./modules/tooltip.js\");\r\n\r\nvar outputs = {};\r\n\r\nvar inputs = {};\r\n$(document).ready(function(){\r\n\r\n\r\n\t$(\"#CalcButton\").on(\"click\",calculate)\r\n\t$(\"#CalcButtonTime\").on(\"click\",calculateTime)\r\n\r\n\r\n\t//$(\".tooltip-icon\").attr(\"aria-expanded\",\"false\");\r\n\t\r\n\r\n\t//$(\".tooltip-text\").on(\"blur keydown\",tooltipBlur)\r\n\r\n\t\r\n\t\r\n\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction calculate(event){\r\n\tevent.preventDefault();\r\n\t\r\n\r\n\t$(\".error\").addClass(\"hidden\");\r\n\t\r\n\r\n\tvar data = getInputs(\".inputs input\");\r\n\tinputs = data.inputs;\r\n\r\n\tif(data.errList.length > 0){\r\n\t\tdata.errList[0].input.focus();\r\n\t\treturn;\r\n\t}\r\n\r\n\t//console.log(inputs);\r\n\r\n\t$(\".outputs\").removeClass(\"hidden\");\r\n\t//(Arbeitstage / 100% * Arbeitspensum = Arbeitstage pro Jahr)\r\n\r\n\t\r\n\toutputs.WorkdaysPerYear = inputs.WorkdaysPerYear * inputs.WorkPercent / 100;\r\n\t//(Km pro Weg * 2 (=KM pro Tag) * 0.65chf/km = Kosten Pro Tag)\r\n\toutputs.CarCostsPerDay = inputs.KmPerWay * 2 * inputs.TcsPricePerKm;\r\n\r\n\t//Kosten Arbeitsweg pro Monat\r\n //Auto: W8 * W7 / 12 + W4 = W9 (Kosten pro Tag * Arbeitstage pro Jahr / 12 + Parkplatzkosten = Kosten pro Monat)\r\n //ÖV: W3 / 12 = W10 (ÖV Kosten / 12 = Kosten pro Monat)\r\n\r\n\toutputs.CarCostsPerMonth = outputs.CarCostsPerDay * (outputs.WorkdaysPerYear / 12) + inputs.ParkingPerMonth;\r\n\r\n\toutputs.PubTransPerMonth = inputs.YearSubscription / 12;\r\n\r\n\r\n\r\n //Kosten Arbeitsweg pro Jahr\r\n //Auto: W8 * W7 + (W4 * 12) = W11 (Kosten pro Tag * Arbeitstage pro Jahr + Parkplatzkosten pro Jahr)\r\n //ÖV: W3\r\n\r\n outputs.CarCostsPerYear = (outputs.CarCostsPerDay * outputs.WorkdaysPerYear) + (inputs.ParkingPerMonth * 12);\r\n\r\n outputs.PubTransPerYear = inputs.YearSubscription;\r\n\r\n\r\n //Einsparungen ÖV gegenüber Auto\r\n //Pro Monat: W9 – W10 (Autokosten – ÖV Kosten)\r\n //Pro Jahr: W11 – W3 (Autokosten – ÖV Kosten)\r\n\r\n outputs.CarSavingsPerMonth = outputs.CarCostsPerMonth - outputs.PubTransPerMonth;\r\n outputs.CarSavingsPerYear = outputs.CarCostsPerYear - outputs.PubTransPerYear;\r\n\r\n \r\n outputs.TotalKm = outputs.WorkdaysPerYear * 2 * inputs.KmPerWay;\r\n\r\n\r\n\r\n outputs.SavingsCo2PerYear = outputs.TotalKm / 5.1 - outputs.TotalKm / 328.3;\r\n outputs.FuelLitres = outputs.TotalKm / 10.4 - outputs.TotalKm / 113.8;\r\n outputs.FuelTanks = outputs.FuelLitres / 60;\r\n\r\n\r\n/*\r\n\r\nfunction processAndWriteResults() {\r\n\t\t\tnumberWorkingDaysPerYear = 220.0*jQuery(\"#input2\").val()/100.0;\r\n\t\t\tif (numberWorkingDaysPerYear == 0.0) numberWorkingDaysPerYear++;\r\n\t\t\tvar resultCostsCarPerYear = Math.round((jQuery(\"#input1\").val()*2*0.65*numberWorkingDaysPerYear + 12*jQuery(\"#input4\").val())); // formula from Excel sheet translated to JS\r\n\t\t\tjQuery(\"#costscarperyear\").text(resultCostsCarPerYear);\r\n\t\t\tjQuery(\"#costscarpermonth\").text(Math.round(resultCostsCarPerYear/12.0));\r\n\t\t\tjQuery(\"#costsoevperyear\").text(Math.round(jQuery(\"#input3\").val()));\r\n\t\t\tjQuery(\"#costsoevpermonth\").text(Math.round(jQuery(\"#input3\").val()/12.0));\r\n\t\t\t\r\n\t\t\tvar tmpResultSavingsCarPerYear = jQuery(\"#input1\").val()*2*numberWorkingDaysPerYear;\r\n\t\t\tvar resultSavingsCarPerYear = Math.round(tmpResultSavingsCarPerYear/5.1 - tmpResultSavingsCarPerYear/328.3);\r\n\t\t\tjQuery(\"#savingscarpermonth\").text(jQuery(\"#costscarpermonth\").text() - jQuery(\"#costsoevpermonth\").text());\r\n\t\t\tjQuery(\"#savingscarperyear\").text(jQuery(\"#costscarperyear\").text() - jQuery(\"#costsoevperyear\").text());\r\n\t\t\tjQuery(\"#savingsco2peryear\").text(resultSavingsCarPerYear);\r\n\t\t\tjQuery(\"#savingsfuelperyear\").text(Math.round((tmpResultSavingsCarPerYear/10.4 - tmpResultSavingsCarPerYear/113.8)/60.0));\r\n\t\t\t\r\n\t\t\tshowSliderValue(currentChosenIncome); \r\n\t\t\tshowDivs();\r\n\t\t}\r\n*/\r\n \r\n\r\n\r\n \r\n\tapplyOutput(outputs);\r\n\r\n\t//console.log(outputs);\r\n\r\n\t$(\"#CalcButtonFocus\").attr(\"tabindex\",\"0\").focus();\r\n\r\n}\r\n\r\nfunction getInputs(selector){\r\n\tvar data = {\r\n\t\tinputs:[]\r\n\t};\r\n\tvar errList = [];\r\n\r\n\r\n\t$(selector).each(function(){\r\n\t\tvar iRef = $(this);\r\n\t\tvar id = iRef.attr(\"id\");\r\n\t\tvar val = iRef.val();\r\n\t\tvar valNum = parseFloat(val);\t\t\r\n\r\n\t\tif(isNaN(valNum) || String(val) != String(valNum)){\r\n\t\t\tvar errRef = iRef.closest(\".input\").find(\".error\");\r\n\t\t\terrRef.attr(\"id\",id+\"-error\");\r\n\t\t\tiRef.attr(\"aria-invalid\",\"true\");\r\n\t\t\tiRef.attr(\"aria-describedby\",id+\"-error\");\r\n\t\t\terrRef.removeClass(\"hidden\");\r\n\t\t\tiRef.focus();\r\n\t\t\terrList.push({input:iRef,error:errRef});\r\n\t\t}else{\r\n\t\t\tiRef.attr(\"aria-invalid\",\"false\");\r\n\t\t\tiRef.removeAttr(\"aria-describedby\");\r\n\t\t\tdata.inputs[id] = valNum;\t\r\n\t\t}\t\t\r\n\t});\r\n\tdata.errList = errList;\r\n\treturn data;\r\n}\r\n\r\nfunction applyOutput(outputs){\r\n\tfor (var i in outputs){\r\n \tvar value = outputs[i];\r\n \tif(isNaN(value)){\r\n \t\tvalue = 0;\r\n \t}\r\n \tvar roundedValue = Math.round(value);\r\n \tvar ref = $(\".output-\"+i);\r\n\r\n \tref.html(roundedValue);\r\n\r\n \tref = $(\".output-formatted-\"+i);\r\n\r\n \t//console.log(numberWithCommas(roundedValue));\r\n \tref.html(numberWithCommas(roundedValue));\r\n }\r\n}\r\n\r\n\r\nfunction calculateTime(){\r\n\t//outputs.TakeHomeSalary\r\n\r\n\tvar data = getInputs(\".outputs input\");\r\n\r\n\t\r\n\r\n\toutputs.CarWorkTimePerDay = outputs.CarCostsPerYear / outputs.WorkdaysPerYear / data.inputs.TakeHomePayPerMonth * 10000;\r\n\toutputs.PubTransWorkTimePerDay = outputs.PubTransPerYear / outputs.WorkdaysPerYear / data.inputs.TakeHomePayPerMonth * 10000;\r\n\r\n\t//console.log(outputs);\r\n\r\n\r\n\tapplyOutput(outputs);\r\n\r\n\r\n\t$(\"#timeresults\").removeClass(\"hidden\");\r\n\r\n\tsetTimeout(function(){\r\n\t\t$(\"#calculateTimeFocus\").attr(\"tabindex\",\"0\").focus();\r\n\t},100);\r\n\r\n\r\n\t\r\n}\r\n\r\n\r\nconst numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"'\")+\".00\";\r\n}\r\n\r\n\r\n/*\r\n\r\njQuery(\"#workingtimeneededforcar\").text(Math.round(jQuery(\"#costscarperyear\").text() / numberWorkingDaysPerYear / jQuery(\"#salarypermonth\").text() * 10000.0));\r\n\t\t\tjQuery(\"#workingtimeneededforoev\").text(Math.round(jQuery(\"#costsoevperyear\").text()/numberWorkingDaysPerYear/jQuery(\"#salarypermonth\").text() * 10000.0));\r\n*/\n\n\n// WEBPACK FOOTER //\n// ./Frontend/js/app.js","$(document).ready(function(){\r\n\t$(\".tooltip-icon\").attr(\"role\",\"button\");\r\n\t$(\".tooltip-icon\").attr(\"aria-expanded\",\"false\");\r\n\t$(\".tooltip-close\").attr(\"role\",\"button\");\r\n\t$(\".tooltip-icon\").on(\"click keydown\",tooltipFocus);\r\n\t$(\".tooltip-close\").on(\"click keydown\",tooltipClose);\r\n});\r\n\r\n\r\n\r\n\r\nfunction tooltipFocus(event){\r\n\tif(event.type == \"keydown\"){\r\n\t\tif(event.keyCode != 13 && event.keyCode != 32){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tevent.preventDefault();\r\n\t}\r\n\tvar tooltipIcon = $(event.target);\r\n\tvar isShown = tooltipIcon.hasClass(\"show\");\r\n\t$(\".tooltip-icon\").attr(\"aria-expanded\",\"false\");\r\n\t$(\".tooltip-icon\").removeClass(\"show\");\r\n\r\n\tif(!isShown){\r\n\t\ttooltipIcon.addClass(\"show\");\r\n\t\ttooltipIcon.attr(\"aria-expanded\",\"true\");\r\n\t}\t\r\n}\r\n\r\nfunction tooltipClose(event){\r\n\t\r\n\tif(event.type == \"keydown\"){\r\n\t\tif(event.keyCode == 13){\r\n\t\t\tevent.preventDefault();\t\t\t\r\n\t\t}else{\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t}\r\n\tvar tRef = $(event.target);\r\n\tvar icon = tRef.closest(\".tooltip-container\").find(\".tooltip-icon\");\r\n\ticon.removeClass(\"show\");\r\n\ticon.focus();\r\n\t$(\".tooltip-icon\").attr(\"aria-expanded\",\"false\");\t\r\n\t\r\n}\n\n\n// WEBPACK FOOTER //\n// ./Frontend/js/modules/tooltip.js"],"sourceRoot":""}