{"version":3,"sources":["webpack://metamatrix.web/webpack/bootstrap","webpack://metamatrix.web/webpack/runtime/define property getters","webpack://metamatrix.web/webpack/runtime/hasOwnProperty shorthand","webpack://metamatrix.web/./static/scripts/servicepensioncalculator/servicepensioncalculator.js"],"names":[],"mappings":";;UAAA;UACA;;;;;WCDA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;;ACAA,CAAgB;;AAEhB;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,+EAA+E,iBAAiB,E","file":"scripts/servicepensioncalculator.js","sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export default class ServicePensionCalculator extends HTMLDivElement {\r\n\r\n constructor() {\r\n\r\n super();\r\n\r\n this.sek = new Intl.NumberFormat('sv-SE', {\r\n style: 'currency',\r\n currency: 'SEK',\r\n maximumFractionDigits: 0\r\n });\r\n\r\n }\r\n\r\n get calulateButton() {\r\n return this.querySelector(\"[data-service-pension-calculator-form-button]\");\r\n }\r\n\r\n get ibb() {\r\n return this.dataset.servicePensionCalculatorIbb;\r\n }\r\n\r\n get method() {\r\n return this.dataset.servicePensionCalculatorMethod;\r\n }\r\n\r\n get resultElement() {\r\n return this.querySelector(\"[data-service-pension-calculator-result]\");\r\n }\r\n\r\n get disclaimerElement() {\r\n return this.querySelector(\"[data-service-pension-calculator-disclaimer]\");\r\n }\r\n\r\n set result(value) {\r\n this.resultElement.innerHTML = \"

Cirka \" + this.sek.format(value) + \" betalas in till din tjänstepension.

\";\r\n }\r\n\r\n get salaryElement() {\r\n return this.querySelector(\"[data-service-pension-calculator-form-input]\");\r\n }\r\n\r\n get salary() {\r\n return this.salaryElement.value;\r\n }\r\n\r\n calculateEventHandler(event) {\r\n\r\n event.preventDefault();\r\n\r\n this.disclaimerElement.classList.add(\"hidden\");\r\n this.resultElement.classList.add(\"hidden\");\r\n\r\n this.result = this.calculate(this.salary, this.ibb, this.method);\r\n\r\n this.resultElement.classList.remove(\"hidden\");\r\n this.disclaimerElement.classList.remove(\"hidden\");\r\n }\r\n\r\n calculate(salary, ibb, method, extra = false) {\r\n salary = salary.match(/\\d+/g).join('');\r\n if (method == 1) {\r\n return this.calculateBTP1(salary, ibb);\r\n } else if (method == 2) {\r\n return this.calculateBTP2(salary, ibb);\r\n }\r\n }\r\n\r\n calculateBTP1(salary, ibb) {\r\n const percent1 = 0.065;\r\n const percent2 = 0.32;\r\n const threshold = (7.5 * ibb) / 12.0;\r\n const ceiling = (30.0 * ibb) / 12.0;\r\n return Math.min(salary, threshold) * percent1 + Math.min(ceiling - threshold, Math.max(0, salary - threshold)) * percent2;\r\n }\r\n\r\n calculateBTP2(salary, ibb) {\r\n const percent1 = 0.10;\r\n const percent2 = 0.65;\r\n const threshold = (7.5 * ibb) / 12.0;\r\n const ceiling = (20.0 * ibb) / 12.0;\r\n return Math.min(salary, threshold) * percent1 + Math.min(ceiling - threshold, Math.max(0, salary - threshold)) * percent2;\r\n }\r\n\r\n testCalculator(...salaries) {\r\n salaries.map((salary) => {\r\n console.log(\"For salary \" + salary + \" => \" + this.sek.format(Math.ceil(this.calculate(salary, this.ibb, this.method))));\r\n });\r\n }\r\n\r\n connectedCallback() {\r\n var calculator = this;\r\n this.calulateButton.addEventListener(\"click\", function (event) {\r\n calculator.calculateEventHandler(event)\r\n });\r\n // this.testCalculator(25000, 50000, 80000);\r\n }\r\n\r\n}\r\n\r\ncustomElements.define('service-pension-calculator', ServicePensionCalculator, { extends: \"div\" });"],"sourceRoot":""}