{"version":3,"file":"health-check.js","names":["data","sessionStorage","getItem","gender","job","age","retireAge","retireMoney","retireProperty","rental","perMonthSpend","lifeModel","q1","q2","q3","JSON","parse","simple","title","content","carefree","elegant","resultTypeDesc","resultText","rate","statusType","plans","high","desc","bg","medium","low","inheritPlans","window","addEventListener","assessmentPage","document","querySelector","retiredPage","nonFinancialPage","reportPage","getElementById","ageInvalidTextEl","moneyInvalidTextEl","prepareData","bsTab","bootstrap","Tab","show","roleSwiper","prepareRetireMoney","tabs","querySelectorAll","forEach","tab","event","_document$querySelect","target","currentTarget","prevTarget","relatedTarget","dataset","value","swiper","destroy","parseInt","setTimeout","validateAge","classList","contains","remove","add","setData","slides","initialIndex","isGet","slide","index","model","Swiper","initialSlide","loop","navigation","nextEl","prevEl","pagination","el","on","slideChangeTransitionEnd","activeIndex","setItem","stringify","qOne","qTwo","qThree","item","qOneChecked","qOneValue","length","setAttribute","removeAttribute","checked","push","includes","_lifeModel$data$lifeM","_lifeModel$data$lifeM2","direction","autoplay","params","URLSearchParams","location","search","obj","has","shareResult","atob","get","key","hasOwnProperty","Array","isArray","Object","keys","textContent","Intl","NumberFormat","format","prepareRetireTotal","prepareRetireProperty","prepareRetireGapType","prepareRetireGap","style","color","prepareResultColor","prepareProgress","prepareProgressColor","stroke","prepareResultType","backgroundColor","prepareResultBgColor","prepareResultText","display","result","pmt","isNaN","Math","abs","toFixed","rateOptions","option","type","status","risk","score","innerHTML","fields","field","minWidth","textAlign","done","img","removeItem","href","queryString","toQueryString","btoa","form","preventDefault","stopPropagation","failed","checkValidity","_document$querySelect2","clearAge","_document$querySelect3","_document$querySelect4","elementPosition","getBoundingClientRect","top","body","offsetPosition","scrollTo","behavior","slidesPerView","spaceBetween","centeredSlides","slideToClickedSlide","allowTouchMove","breakpoints","_swiper$slides$swiper","_swiper$slides$swiper2","progressBar","reserveBtn","footerBottom","onscroll","scrollY","kanban1","kanbanNav","windowHeight","innerHeight","elementTop","input","prepareRetireLife","life","retireLife","round","ir","np","pv","fv","pvif","floorToDecimalFirst","pow","number","floor","parseFloat","v","parts","entries","val","encodeURIComponent","join"],"sources":["health-check.js"],"sourcesContent":["let data = {};\n\nif (!sessionStorage.getItem('retireData')) {\n data = {\n gender: 'female',\n job: 'labor',\n age: 0,\n retireAge: 65,\n retireMoney: 31375,\n retireProperty: 0,\n rental: 0,\n perMonthSpend: 31338,\n lifeModel: 'simple',\n q1: [],\n q2: '',\n q3: '',\n };\n} else {\n data = JSON.parse(sessionStorage.getItem('retireData'));\n}\n\nconst lifeModel = {\n simple: {\n title: '簡單生活',\n content: '一般大眾運輸、小吃店家、國內旅遊、診所醫療',\n },\n carefree: {\n title: '自在悠活',\n content: '自駕出行、中階餐館、每年海外短/長程旅行、不定期聘僱到宅照護服務',\n },\n elegant: {\n title: '優雅樂活',\n content: '專車接送代步、高級料理、每季嚴選海外長程旅行、專人看護',\n }\n};\n\nconst resultTypeDesc = [\n '下列方案提供您參考!',\n '下列方案也很適合您!',\n];\n\nconst resultText = [\n '瞄準退休金缺口目標全力以赴,迎向無後顧之憂的退休生活',\n '距離退休目標尚有一哩路,迎向安穩精彩的退休生活',\n '穩定滾大退休金,迎向富足豐裕的退休生活'\n];\n\nlet rate = 2;\n\nconst statusType = [\n 'financial',\n 'alone',\n 'scam',\n 'inherit',\n];\n\nconst plans = {\n high: {\n title: '即刻守護安養信託',\n desc: '讓此後的您,安享晚年',\n content: '由永豐銀行立即啟動資產管理、運用,
以保障生活、照護、醫療給付需求',\n bg: 'bg-protect',\n },\n medium: {\n title: '預約幸福
安養樂活信託',\n desc: '用現在的財富,預先規劃未來的照顧',\n content: '提前安排財產運用方式
信託專注照顧自己,自主安心面對老後',\n bg: 'bg-care-trust',\n },\n low: {\n title: '預約幸福
安養樂活信託',\n desc: '用現在的財富,預先規劃未來的照顧',\n content: '提前安排財產運用方式
信託專注照顧自己,自主安心面對老後',\n bg: 'bg-care-trust',\n },\n};\n\nconst inheritPlans = [\n {\n title: '遺囑信託',\n desc: '遺產更具保障,更有溫度',\n content: '遺產交由永豐銀行專業管理,
可事先約定受益人領取信託財產的時程及條件',\n bg: 'bg-will',\n },\n {\n title: '公益信託',\n desc: '行善舉,讓有意義的回饋行動持續',\n content: '您的愛心結合信託,
創造更多促進社會公益機會',\n bg: 'bg-public-welfare',\n }\n];\n\nwindow.addEventListener('DOMContentLoaded', function () {\n const assessmentPage = document.querySelector('.l-assessment');\n const retiredPage = document.querySelector('.l-retirement-life');\n const nonFinancialPage = document.querySelector('.l-non-financial');\n const reportPage = document.querySelector('.l-report-page');\n\n if (assessmentPage) {\n const age = document.getElementById('age');\n const retireMoney = document.getElementById('retire-money');\n const retireProperty = document.getElementById('retire-property');\n const rental = document.getElementById('rental');\n const ageInvalidTextEl = document.querySelector('.retire-age-invalid-feedback');\n const moneyInvalidTextEl = document.querySelector('.retire-money-invalid-feedback');\n\n prepareData('age', age);\n prepareData('retireMoney', retireMoney);\n prepareData('retireProperty', retireProperty);\n prepareData('rental', rental);\n\n const bsTab = new bootstrap.Tab(`button[data-bs-toggle=\"tab\"][data-value=${data.gender}]`);\n bsTab.show();\n roleSwiper(data.gender);\n prepareRetireMoney();\n\n const tabs = document.querySelectorAll('button[data-bs-toggle=\"tab\"]');\n tabs.forEach((tab) => {\n tab.addEventListener('shown.bs.tab', function (event) {\n const target = event.currentTarget;\n const prevTarget = event.relatedTarget;\n\n document.querySelector(`.j-assessment-swiper-${prevTarget.dataset.value}`).swiper?.destroy();\n\n data.gender = target.dataset.value;\n\n roleSwiper(data.gender);\n\n prepareRetireMoney();\n });\n });\n\n age?.addEventListener('input', function (event) {\n const target = event.currentTarget;\n\n data.age = parseInt(target.value);\n\n if (age.value < 0) {\n setTimeout(() => {\n age.value = '';\n }, 100)\n }\n\n if (age.value !== '' && validateAge(age.value)) {\n if (ageInvalidTextEl.classList.contains('d-none')) {\n ageInvalidTextEl.classList.remove('d-none');\n }\n } else {\n ageInvalidTextEl.classList.add('d-none');\n }\n });\n\n retireMoney?.addEventListener('input', function (event) {\n const target = event.currentTarget;\n\n data.retireMoney = parseInt(target.value);\n\n if (retireMoney.value > 100000) {\n if (moneyInvalidTextEl.classList.contains('d-none')) {\n moneyInvalidTextEl.classList.remove('d-none');\n }\n } else {\n moneyInvalidTextEl.classList.add('d-none');\n }\n });\n\n setData('retireProperty', retireProperty);\n setData('rental', rental);\n }\n\n if (retiredPage) {\n const slides = document.querySelectorAll('.swiper-slide');\n let initialIndex = 0;\n let isGet = false;\n\n slides.forEach((slide, index) => {\n if (slide.dataset.model === data.lifeModel && !isGet) {\n initialIndex = index;\n\n isGet = true;\n }\n });\n\n new Swiper('.j-tv-swiper', {\n initialSlide: initialIndex,\n loop: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n pagination: {\n el: '.swiper-pagination',\n },\n on: {\n slideChangeTransitionEnd: function (swiper) {\n data.perMonthSpend = parseInt(swiper.slides[swiper.activeIndex].dataset.value);\n\n data.lifeModel = swiper.slides[swiper.activeIndex].dataset.model;\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n }\n }\n });\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n }\n\n if (nonFinancialPage) {\n const qOne = document.querySelectorAll('[name=\\'q1\\']');\n const qTwo = document.querySelectorAll('[name=\\'q2\\']');\n const qThree = document.querySelectorAll('[name=\\'q3\\']');\n\n qOne.forEach((item) => {\n item.addEventListener('change', (event) => {\n const qOneChecked = document.querySelectorAll('[name=\\'q1\\']:checked');\n const qOneValue = [];\n\n if (qOneChecked.length <= 0) {\n qOne.forEach((el) => {\n el.setAttribute('required', '');\n });\n } else {\n qOne.forEach((el) => {\n el.removeAttribute('required');\n });\n }\n\n qOneChecked.forEach((checked) => {\n qOneValue.push(checked.value);\n });\n\n data.q1 = qOneValue;\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n });\n\n if (data.q1.length > 0) {\n if (data.q1.includes(item.value)) {\n item.setAttribute('checked', 'checked');\n }\n }\n });\n\n qTwo.forEach((item) => {\n item.addEventListener('change', (event) => {\n data.q2 = event.currentTarget.value;\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n });\n\n if (data.q2.includes(item.value)) {\n item.setAttribute('checked', 'checked');\n }\n });\n\n qThree.forEach((item) => {\n item.addEventListener('change', (event) => {\n data.q3 = event.currentTarget.value;\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n });\n\n if (data.q3.includes(item.value)) {\n item.setAttribute('checked', 'checked');\n }\n });\n }\n\n if (reportPage) {\n new Swiper('.imgSwiper', {\n direction: 'vertical',\n autoplay: true,\n loop: true,\n });\n\n const params = new URLSearchParams(window.location.search);\n const obj = {};\n\n if (params.has('result')) {\n const shareResult = window.atob(params.get('result'));\n\n for (const [key, value] of (new URLSearchParams(shareResult))) {\n if (obj.hasOwnProperty(key)) {\n if (!Array.isArray(obj[key])) {\n obj[key] = [obj[key]];\n }\n obj[key].push(value);\n } else {\n obj[key] = value;\n }\n }\n\n if (Object.keys(obj).length > 0) {\n data = obj;\n }\n }\n\n document.querySelector('.j-gender').textContent = data.gender === 'female' ? '女性' : '男性';\n document.querySelector('.j-age').textContent = data.age;\n document.querySelector('.j-model').textContent = lifeModel[data.lifeModel]?.title;\n document.querySelector('.j-model-content').textContent = lifeModel[data.lifeModel]?.content;\n document.querySelector('.j-per-month-spend').textContent = new Intl.NumberFormat().format(data.perMonthSpend);\n document.querySelector('.j-life-total').textContent = new Intl.NumberFormat().format(prepareRetireTotal());\n document.querySelector('.j-property').textContent = new Intl.NumberFormat().format(prepareRetireProperty());\n document.querySelector('.j-gap-type').textContent = prepareRetireGapType() ? '缺口' : '盈餘';\n document.querySelector('.j-gap').textContent = new Intl.NumberFormat().format(prepareRetireGap());\n document.querySelector('.j-gap').style.color = prepareResultColor();\n document.querySelector('.j-progress').textContent = prepareProgress();\n document.querySelector('.j-progress').style.color = prepareProgressColor();\n document.querySelector('.j-progress-circle').setAttribute(\n 'stroke-dashoffset',\n 100 * 3.1415926 / 360 * (360 - 360 * prepareProgress() / 100)\n );\n document.querySelector('.j-progress-circle').style.stroke = prepareRetireGapType() ? '#635647' : '#4cb068';\n document.querySelector('.j-result-type').textContent = prepareResultType();\n document.querySelector('.j-result-type').style.color = prepareResultColor();\n document.querySelector('.l-report-page .c-chart-content #chart').style.backgroundColor = prepareResultBgColor();\n document.querySelector('.j-result-type-desc').textContent = prepareRetireGapType() ? resultTypeDesc[0] : resultTypeDesc[1];\n document.querySelector('.j-result-text').textContent = prepareResultText();\n document.querySelector('.j-rate').textContent = rate;\n\n if (!prepareRetireGapType()) {\n document.querySelector('.c-chart-amount').style.display = 'none';\n }\n\n const result = pmt(rate / 100 / 12, (data.retireAge - data.age) * 12, 0, prepareRetireGap() * 10000, 0);\n\n if (!isNaN(result) && prepareRetireGapType()) {\n document.querySelector('.j-invest').value = Math.abs(result / 10000).toFixed(2);\n }\n\n const rateOptions = document.querySelectorAll('.j-rate-option');\n\n rateOptions.forEach((option) => {\n option.addEventListener('click', (event) => {\n const target = event.currentTarget;\n\n document.querySelector('.j-rate').textContent = target.dataset.value;\n rate = parseInt(target.dataset.value);\n\n const result = pmt(rate / 100 / 12, (data.retireAge - data.age) * 12, 0, prepareRetireGap() * 10000, 0);\n\n if (!isNaN(result) && prepareRetireGapType()) {\n document.querySelector('.j-invest').value = Math.abs(result / 10000).toFixed(2);\n }\n });\n });\n\n statusType.forEach((type) => {\n let status = '';\n let color = '#ff6868';\n let risk = 'high';\n let score = 0;\n\n if (type === 'scam') {\n if (data.q1.includes('experienced')) {\n score += 4;\n }\n\n if (data.q1.includes('unfamiliar')) {\n score += 3;\n }\n\n if (data.q1.includes('contacted')) {\n score += 2;\n }\n\n if (data.q1.includes('uncontacted')) {\n score += 1;\n }\n }\n\n if (type === 'alone') {\n switch (data.q2) {\n case 'alone':\n score = 4;\n break;\n case 'caregiver':\n score = 3;\n break;\n case 'one_together':\n score = 2;\n break;\n case 'all_together':\n score = 1;\n break;\n }\n }\n\n if (type === 'inherit') {\n switch (data.q3) {\n case 'unclear':\n score = 3;\n break;\n case 'progress':\n score = 2;\n break;\n case 'completed':\n score = 1;\n break;\n }\n }\n\n if (type === 'financial') {\n if (prepareProgress() < 50) {\n risk = 'high';\n }\n\n if (prepareProgress() >= 50 && prepareProgress() <= 80) {\n risk = 'medium';\n }\n\n if (prepareProgress() > 80) {\n risk = 'low';\n }\n } else {\n if (score <= 1) {\n risk = 'low';\n }\n\n if (score === 2) {\n risk = 'medium';\n }\n\n if (score >= 3) {\n risk = 'high';\n }\n }\n\n switch (risk) {\n case 'high':\n status = '
高風險:需立即行動';\n color = '#ff6868';\n break;\n case 'medium':\n status = '
中風險:可預約諮詢';\n color = '#e49349';\n break;\n case 'low':\n status = '
低風險:可暫免行動';\n color = '#76c97d';\n break;\n }\n\n document.querySelectorAll('.j-status-' + type).forEach((item) => {\n item.innerHTML = status;\n item.style.backgroundColor = color;\n });\n\n const fields = ['title', 'desc', 'content', 'link', 'bg'];\n\n if (['alone', 'scam'].includes(type)) {\n fields.forEach((field) => {\n document.querySelectorAll('.j-' + field + '-' + type + '-main').forEach((item) => {\n if (field === 'link') {\n item.setAttribute('href', 'https://trust.sinopac.com/ETrust/Web/Home/Contact');\n item.setAttribute('target', '_blank');\n } else if (field === 'bg') {\n item.classList.add(plans[risk][field]);\n } else {\n item.innerHTML = plans[risk][field];\n }\n\n if (field === 'title') {\n item.style.minWidth = '211px';\n item.style.textAlign = 'center';\n }\n });\n\n document.querySelectorAll('.j-' + field + '-' + type).forEach((item, index) => {\n if (field === 'link') {\n item.setAttribute('href', 'https://trust.sinopac.com/ETrust/Web/Home/Contact');\n item.setAttribute('target', '_blank');\n }\n\n if (field === 'title') {\n item.style.minWidth = '211px';\n item.style.textAlign = 'center';\n }\n\n if (index === 0) {\n let done = false;\n\n Object.keys(plans).forEach((key) => {\n if (key !== risk && !done) {\n if (field !== 'link') {\n if (field === 'bg') {\n item.classList.add(plans[key][field]);\n } else {\n item.innerHTML = plans[key][field];\n }\n }\n\n done = true;\n }\n });\n }\n\n if (index === 1) {\n if (field === 'title') {\n item.innerHTML = '保險金信託';\n }\n\n if (field === 'desc') {\n item.innerHTML = '擁有信託保障,妥善運用保險金';\n }\n\n if (field === 'content') {\n item.innerHTML = '保險金信託能夠確保保險金按照
您的意願使用,避免保險金遭挪用或浪費';\n }\n\n if (field === 'bg') {\n item.classList.add('bg-insurance');\n }\n }\n });\n });\n }\n\n if (type === 'inherit') {\n fields.forEach((field) => {\n document.querySelectorAll('.j-' + field + '-inherit-main').forEach((item) => {\n if (field === 'link') {\n item.setAttribute('href', 'https://trust.sinopac.com/ETrust/Web/Home/Contact');\n item.setAttribute('target', '_blank');\n }\n\n if (field === 'title') {\n item.innerHTML = '家族信託';\n item.style.minWidth = '211px';\n item.style.textAlign = 'center';\n }\n\n if (field === 'desc') {\n item.innerHTML = '傳承財富,守護家族首選';\n }\n\n if (field === 'content') {\n item.innerHTML = '靈活規劃家族接班安排,
協助稅務規劃、資產管理、企業永續經營';\n }\n\n if (field === 'bg') {\n item.classList.add('bg-family');\n }\n });\n\n document.querySelectorAll('.j-' + field + '-inherit').forEach((item, index) => {\n if (field === 'link') {\n item.setAttribute('href', 'https://trust.sinopac.com/ETrust/Web/Home/Contact');\n item.setAttribute('target', '_blank');\n } else if (field === 'bg') {\n item.classList.add(inheritPlans[index][field]);\n } else {\n item.innerHTML = inheritPlans[index][field];\n }\n\n if (field === 'title') {\n item.style.minWidth = '211px';\n item.style.textAlign = 'center';\n }\n });\n });\n }\n });\n\n document.querySelectorAll('.j-model-img').forEach((img, index) => {\n img.setAttribute('src', './assets/images/front/report/' + data.lifeModel + (index + 1) + '.png');\n });\n\n document.querySelector('.j-reset-btn').addEventListener('click', (event) => {\n sessionStorage.removeItem('retireData');\n\n location.href = './assessment.html';\n });\n\n const queryString = toQueryString(JSON.parse(sessionStorage.getItem('retireData')));\n\n document.querySelector('.j-line-share').setAttribute(\n 'href',\n 'https://social-plugins.line.me/lineit/share?url=https://demo.lyrasoft.net/sinopac-trust/report.html?result=' + window.btoa(queryString)\n )\n }\n\n // validation\n (function () {\n 'use strict';\n\n const form = document.querySelector('.needs-validation');\n\n if (!form) {\n return;\n }\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n let failed = false;\n\n if (nonFinancialPage) {\n const qOne = document.querySelectorAll('[name=\\'q1\\']');\n const qOneChecked = document.querySelector('[name=\\'q1\\']:checked');\n\n if (qOneChecked === null) {\n qOne.forEach((el) => {\n el.setAttribute('required', '');\n });\n\n failed = true;\n } else {\n qOne.forEach((el) => {\n el.removeAttribute('required');\n });\n }\n }\n\n if (!form.checkValidity()) {\n failed = true;\n }\n\n if (!failed) {\n if (assessmentPage) {\n\n if (validateAge(data.age)) {\n document.querySelector('.retire-age-invalid-feedback')?.classList.remove('d-none');\n\n clearAge();\n } else if (data.retireMoney > 100000) {\n document.querySelector('.retire-money-invalid-feedback')?.classList.remove('d-none');\n\n document.getElementById('retire-money').value = '';\n\n prepareRetireMoney();\n } else {\n document.querySelector('.retire-age-invalid-feedback')?.classList.add('d-none');\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n\n location.href = './retirement-life.html';\n }\n }\n\n if (retiredPage) {\n location.href = './non-financial.html';\n }\n\n if (nonFinancialPage) {\n location.href = './report.html';\n }\n }\n\n const elementPosition = document.querySelector('input:invalid').getBoundingClientRect().top - document.body.getBoundingClientRect().top;\n const offsetPosition = elementPosition - 150;\n\n window.scrollTo(\n {\n top: offsetPosition,\n behavior: 'smooth'\n }\n );\n\n form.classList.add('was-validated');\n }, false);\n })();\n});\n\n// assessment page swiper\nfunction roleSwiper(gender) {\n const slides = document.querySelectorAll('.swiper-slide');\n let initialIndex = 0;\n let isGet = false;\n\n slides.forEach((slide, index) => {\n if (slide.dataset.value === data.job && !isGet) {\n initialIndex = index;\n\n isGet = true;\n }\n });\n\n new Swiper(`.j-assessment-swiper-${gender}`, {\n initialSlide: initialIndex,\n slidesPerView: 2,\n spaceBetween: 24,\n loop: true,\n centeredSlides: true,\n slideToClickedSlide: true,\n allowTouchMove: true,\n navigation: {\n nextEl: `.swiper-button-next-${gender}`,\n prevEl: `.swiper-button-prev-${gender}`,\n },\n breakpoints: {\n 1400: {\n slidesPerView: 4,\n },\n 1920: {\n slidesPerView: 5,\n },\n },\n on: {\n slideChangeTransitionEnd: function (swiper) {\n data.job = swiper.slides[swiper.activeIndex]?.dataset?.value;\n\n prepareRetireMoney();\n\n sessionStorage.setItem('retireData', JSON.stringify(data));\n }\n }\n });\n}\n\n// bottom progressBar\nconst progressBar = document.querySelector('.j-progress-bar');\nconst reserveBtn = document.querySelector('.j-reserve-btn');\nconst footerBottom = document.querySelector('.j-footer');\n\nwindow.onscroll = () => {\n\n if (window.scrollY > 350) {\n progressBar.classList.add('active');\n reserveBtn.classList.add('moved');\n footerBottom.classList.add('moved');\n } else {\n progressBar.classList.remove('active');\n reserveBtn.classList.remove('moved');\n footerBottom.classList.remove('moved');\n }\n\n const kanban1 = document.getElementById('risk1');\n const kanbanNav = document.querySelector('.j-risk-nav');\n\n if (!kanban1) {\n return;\n }\n\n const windowHeight = window.innerHeight;\n const elementTop = kanban1.getBoundingClientRect().top;\n\n if (elementTop <= windowHeight / 2) {\n kanbanNav.classList.add('show');\n } else {\n kanbanNav.classList.remove('show');\n }\n};\n\nfunction prepareData(field, input) {\n if (data[field] !== 0) {\n input.value = data[field];\n }\n}\n\nfunction setData(field, input) {\n input?.addEventListener('input', function (event) {\n const target = event.currentTarget;\n\n data[field] = parseInt(target.value);\n });\n}\n\nfunction prepareRetireMoney() {\n const retireMoney = document.getElementById('retire-money');\n\n switch (data.job) {\n case 'labor':\n data.retireMoney = 31375;\n break;\n case 'soldier':\n data.retireMoney = 56706;\n break;\n case 'public-teacher':\n data.retireMoney = 49434;\n break;\n case 'private-teacher':\n data.retireMoney = 43090;\n break;\n case 'other':\n data.retireMoney = 10276;\n break;\n }\n\n retireMoney.value = data.retireMoney;\n}\n\nfunction validateAge(age) {\n return age >= 65 || age < 30;\n}\n\nfunction clearAge() {\n data.age = 0;\n\n document.getElementById('age').value = '';\n}\n\nfunction prepareRetireLife() {\n let life = 0;\n\n if (data.gender === 'female') {\n life = 83;\n }\n\n if (data.gender === 'male') {\n life = 78;\n }\n\n const retireLife = life - data.retireAge;\n\n if (retireLife <= 0) {\n return 0;\n }\n\n return retireLife;\n}\n\nfunction prepareRetireTotal() {\n return Math.round(prepareRetireLife() * 12 * parseInt(data.perMonthSpend) / 10000);\n}\n\nfunction prepareRetireProperty() {\n return Math.round((parseInt(data.retireMoney) + (parseInt(data.rental) * 10000)) * 12 * prepareRetireLife() / 10000) + parseInt(data.retireProperty);\n}\n\nfunction prepareRetireGapType() {\n return prepareRetireTotal() - prepareRetireProperty() > 0;\n}\n\nfunction prepareRetireGap() {\n if (prepareRetireGapType()) {\n return prepareRetireTotal() - prepareRetireProperty();\n } else {\n return prepareRetireProperty() - prepareRetireTotal();\n }\n}\n\nfunction prepareProgress() {\n if (prepareRetireGapType()) {\n return Math.round(prepareRetireProperty() / prepareRetireTotal() * 100);\n } else {\n return 100;\n }\n}\n\nfunction prepareResultText() {\n const result = prepareProgress();\n\n if (result < 50) {\n return resultText[0];\n }\n\n if (result >= 50 && result < 80) {\n return resultText[1];\n }\n\n if (result > 80) {\n return resultText[2];\n }\n}\n\nfunction pmt(ir, np, pv, fv, type) {\n let pmt;\n let pvif;\n\n fv || (fv = 0);\n type || (type = 0);\n\n if (ir === 0) {\n return floorToDecimalFirst(-(pv + fv) / np);\n }\n\n pvif = Math.pow(1 + ir, np);\n pmt = -ir * (pv * pvif + fv) / (pvif - 1);\n\n if (type === 1) {\n pmt /= (1 + ir);\n }\n\n return floorToDecimalFirst(pmt);\n}\n\nfunction floorToDecimalFirst(number) {\n return Math.floor(parseFloat(number) * 10) / 10;\n}\n\nfunction prepareResultBgColor() {\n if (!prepareRetireGapType()) {\n return '#76c97d';\n }\n\n if (prepareRetireGap() === 0) {\n return '#e49349';\n }\n\n if (prepareProgress() < 80) {\n return '#ff6868';\n }\n\n if (prepareProgress() >= 80) {\n return '#e49349';\n }\n\n return '#76c97d';\n}\n\nfunction prepareResultColor() {\n if (!prepareRetireGapType()) {\n return '#76c97d';\n }\n\n if (prepareRetireGap() === 0) {\n return '#e49349';\n }\n\n if (prepareProgress() < 80) {\n return '#ff6868';\n }\n\n if (prepareProgress() >= 80) {\n return '#e49349';\n }\n\n return '#76c97d';\n}\n\nfunction prepareProgressColor() {\n if (!prepareRetireGapType()) {\n return '#76c97d';\n }\n\n if (prepareRetireGap() === 0) {\n return '#e49349';\n }\n\n return '#635647';\n}\n\nfunction prepareResultType() {\n if (!prepareRetireGapType()) {\n return '已達成退休準備進度!';\n }\n\n if (prepareRetireGap() === 0) {\n return '已達成退休準備進度!';\n }\n\n if (prepareProgress() < 80) {\n return '您尚未達成退休準備進度';\n }\n\n if (prepareProgress() >= 80) {\n return '即將達成退休準備進度!';\n }\n\n return '';\n}\n\nfunction toQueryString(v) {\n const parts = [];\n\n for (const [key, value] of Object.entries(v)) {\n if (Array.isArray(value)) {\n value.forEach(val => parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(val)}`));\n } else {\n parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n }\n\n return parts.join('&');\n}\n"],"mappings":"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","ignoreList":[]}