{"version":3,"file":"hi3.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/./Source/js/store/calculator/mutations.js","webpack://app/./Source/js/routes/hi3/store/utilities/hi3CareerProgressionHelpers.js","webpack://app/./Source/js/routes/hi3/store/state/Hi3ServiceMember.js","webpack://app/./Source/js/routes/hi3/store/utilities/hi3AllNumbersHelpers.js","webpack://app/./Source/js/routes/hi3/store/utilities/hi3AllPaymentsHelpers.js","webpack://app/./Source/js/routes/hi3/store/index.js","webpack://app/./Source/js/routes/hi3/hi3-wizard.vue?e92d","webpack://app/./Source/js/routes/hi3/introduction/introduction.vue?ee37","webpack://app/Source/js/routes/hi3/introduction/introduction.vue","webpack://app/./Source/js/routes/hi3/introduction/introduction.vue?2d34","webpack://app/./Source/js/routes/hi3/introduction/introduction.vue","webpack://app/./Source/js/routes/hi3/personal-information/personal-information.vue?838a","webpack://app/./Source/js/routes/hi3/personal-information/personal-information-form.vue?fd90","webpack://app/Source/js/routes/hi3/personal-information/personal-information-form.vue","webpack://app/./Source/js/routes/hi3/personal-information/personal-information-form.vue?5288","webpack://app/./Source/js/routes/hi3/personal-information/personal-information-form.vue","webpack://app/./Source/js/routes/hi3/personal-information/personal-information.vue?d963","webpack://app/Source/js/routes/brs/personal-information/personal-information.vue","webpack://app/./Source/js/routes/hi3/personal-information/personal-information.vue","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information.vue?103e","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information-form.vue?2087","webpack://app/Source/js/routes/hi3/retirement-information/retirement-information-form.vue","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information-form.vue?eb2e","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information-form.vue","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information.vue?ebc3","webpack://app/Source/js/routes/brs/retirement-information/retirement-information.vue","webpack://app/./Source/js/routes/hi3/retirement-information/retirement-information.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-progression.vue?d890","webpack://app/./Source/js/routes/hi3/career-progression/career-progression-table.vue?73ea","webpack://app/./Source/js/routes/hi3/career-progression/hi3-past-year.vue?5a97","webpack://app/Source/js/routes/brs/career-progression/hi3-past-year.vue","webpack://app/./Source/js/routes/hi3/career-progression/hi3-past-year.vue?6b9e","webpack://app/./Source/js/routes/hi3/career-progression/hi3-past-year.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-service-year.vue?5003","webpack://app/Source/js/routes/brsComparison/career-progression/career-service-year.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-service-year.vue?dd54","webpack://app/./Source/js/routes/hi3/career-progression/career-service-year.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-progression-table.vue?7e50","webpack://app/Source/js/routes/brsComparison/career-progression/career-progression-table.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-progression-table.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-progression.vue?21c2","webpack://app/Source/js/routes/hi3/career-progression/career-progression.vue","webpack://app/./Source/js/routes/hi3/career-progression/career-progression.vue","webpack://app/./Source/js/routes/hi3/results/results.vue?e498","webpack://app/./Source/js/routes/hi3/results/overview/overview.vue?3736","webpack://app/Source/js/routes/hi3/results/overview/overview.vue","webpack://app/./Source/js/routes/hi3/results/overview/overview.vue?7b6e","webpack://app/./Source/js/routes/hi3/results/overview/overview.vue","webpack://app/./Source/js/routes/hi3/results/tsp-summary/tsp-summary.vue?d8bf","webpack://app/Source/js/routes/brs/results/tsp-summary/tsp-summary.vue","webpack://app/./Source/js/routes/hi3/results/tsp-summary/tsp-summary.vue?1dae","webpack://app/./Source/js/routes/hi3/results/tsp-summary/tsp-summary.vue","webpack://app/./Source/js/routes/hi3/results/all-payments/all-payments.vue?054e","webpack://app/Source/js/routes/brs/results/all-payments/all-payments.vue","webpack://app/./Source/js/routes/hi3/results/all-payments/all-payments.vue?8f70","webpack://app/./Source/js/routes/hi3/results/all-payments/all-payments.vue","webpack://app/./Source/js/routes/hi3/results/all-numbers/all-numbers.vue?ad3a","webpack://app/Source/js/routes/hi3/results/all-numbers/all-numbers.vue","webpack://app/./Source/js/routes/hi3/results/all-numbers/all-numbers.vue?14ab","webpack://app/./Source/js/routes/hi3/results/all-numbers/all-numbers.vue","webpack://app/./Source/js/routes/hi3/results/change-options/change-options.vue?a98b","webpack://app/Source/js/routes/hi3/results/change-options/change-options.vue","webpack://app/./Source/js/routes/hi3/results/change-options/change-options.vue?03da","webpack://app/./Source/js/routes/hi3/results/change-options/change-options.vue","webpack://app/./Source/js/routes/hi3/results/results.vue?c8be","webpack://app/Source/js/routes/hi3/results/results.vue","webpack://app/./Source/js/routes/hi3/results/results.vue","webpack://app/./Source/js/routes/hi3/hi3-wizard.vue?79d6","webpack://app/Source/js/routes/hi3/hi3-wizard.vue","webpack://app/./Source/js/routes/hi3/hi3-wizard.vue","webpack://app/./Source/js/routes/hi3/hi3-print.vue?9721","webpack://app/Source/js/routes/hi3/hi3-print.vue","webpack://app/./Source/js/routes/hi3/hi3-print.vue?1b54","webpack://app/./Source/js/routes/hi3/hi3-print.vue","webpack://app/./Source/js/routes/hi3/index.js","webpack://app/./Source/js/store/calculator/utilities/allNumbersHelpers.js","webpack://app/./Source/js/store/calculator/utilities/careerProgressionHelpers.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/make namespace object","webpack://app/webpack/runtime/node module decorator","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import { toNumber } from 'lodash';\r\nimport FormData from './state/FormData';\r\nimport { getOverrideRanks } from './utilities/careerProgressionHelpers';\r\n\r\nconst initialFormData = new FormData();\r\n\r\nexport function applySettingsToDefaults(state, formData) {\r\n const { reserveComponent, tspSettings } = state.globalSettings;\r\n\r\n formData.withdrawalAgeYears = tspSettings.withdrawalAgeYearDefault;\r\n formData.withdrawalAgeMonths = tspSettings.withdrawalAgeMonthDefault;\r\n formData.contributionRate = toNumber(tspSettings.defaultContributionRate);\r\n formData.growthRate = toNumber(tspSettings.growthRate);\r\n formData.growthRateDisplay = tspSettings.growthRate;\r\n formData.withdrawalGrowthRate = toNumber(tspSettings.withdrawalGrowthRate);\r\n formData.withdrawalGrowthRateDisplay = tspSettings.withdrawalGrowthRate;\r\n formData.retirementAgeYears = reserveComponent.nonRegularRetirementCommencePayAtAgeYear;\r\n formData.retirementAgeMonths = reserveComponent.nonRegularRetirementCommencePayAtAgeMonth;\r\n}\r\n\r\nconst mutations = {\r\n setStepIndex(state, stepIndex) {\r\n state.currentStepIndex = stepIndex;\r\n },\r\n\r\n setAltMode(state, altMode) {\r\n state.currentStepAltMode = altMode;\r\n },\r\n\r\n setFormData(state, data) {\r\n state.formData = { ...state.formData, ...data };\r\n },\r\n\r\n setStepLoading(state, stepLoading) {\r\n state.stepLoading = stepLoading;\r\n },\r\n\r\n resetFormData(state) {\r\n state.formData = { ...state.formData, ...initialFormData };\r\n },\r\n\r\n setSameAsPayDate(state, value) {\r\n state.sameAsPayDate = value;\r\n },\r\n\r\n setGlobalSettings(state, data) {\r\n state.globalSettings = data;\r\n },\r\n\r\n setModuleSettings(state, data) {\r\n state.moduleSettings = data;\r\n },\r\n\r\n setSteps(state, steps) {\r\n state.steps = steps.map((step, index) => ({ ...state.steps[index], ...step }));\r\n },\r\n\r\n setMoreInfo(state, moreInfo) {\r\n state.moreInfo = moreInfo;\r\n },\r\n\r\n setTooltips(state, tooltips) {\r\n state.tooltips = tooltips;\r\n },\r\n\r\n setPayTables(state, data) {\r\n state.payTables = data;\r\n },\r\n\r\n applySettingsToDefaults(state) {\r\n applySettingsToDefaults(state, initialFormData);\r\n },\r\n\r\n setServiceMember(state, data) {\r\n state.serviceMember = data;\r\n },\r\n\r\n updateYearOfServiceRankCareerService(state, { yearOfServiceRank, index }) {\r\n const careerProgressionCareerService = state.serviceMember.careerProgression.careerService;\r\n for (let i = index; i < careerProgressionCareerService.length; i += 1) {\r\n const currentItem = careerProgressionCareerService[i];\r\n currentItem.yearOfServiceRank = yearOfServiceRank;\r\n }\r\n },\r\n\r\n updateOverrideRanksCareerService(state, { yearOfServiceRank, index }) {\r\n const careerProgressionCareerService = state.serviceMember.careerProgression.careerService;\r\n for (let i = index + 1; i < careerProgressionCareerService.length; i += 1) {\r\n const currentItem = careerProgressionCareerService[i];\r\n const overrideRanks = getOverrideRanks(\r\n yearOfServiceRank,\r\n currentItem.yearOfService,\r\n );\r\n currentItem.overrideRanks = overrideRanks;\r\n }\r\n },\r\n\r\n updateReserveComponentCareerService(state, { key, value, index }) {\r\n const { reserveComponent } = state.serviceMember.careerProgression.careerService[index];\r\n reserveComponent[key] = value;\r\n },\r\n\r\n validateReserveComponentCareerService(state, { isValid, index }) {\r\n const { reserveComponent } = state.serviceMember.careerProgression.careerService[index];\r\n reserveComponent.isValid = isValid;\r\n },\r\n\r\n setBornDateOptions(state, data) {\r\n state.bornDateOptions = data;\r\n },\r\n\r\n setPayEntryBaseDateOptions(state, data) {\r\n state.payEntryBaseDateOptions = data;\r\n },\r\n\r\n setActiveServiceDateOptions(state, data) {\r\n state.activeServiceDateOptions = data;\r\n },\r\n\r\n setRetirementSTOptions(state, data) {\r\n state.retirementSTOptions = data;\r\n },\r\n\r\n setTransferToRcOptions(state, data) {\r\n state.transferToRcOptions = data;\r\n },\r\n\r\n setTransferToAcOptions(state, data) {\r\n state.transferToAcOptions = data;\r\n },\r\n\r\n setQualifyingYearsOptions(state, data) {\r\n state.qualifyingYearsOptions = data;\r\n },\r\n\r\n setLifeExpectancyOptions(state, data) {\r\n state.lifeExpectancyOptions = data;\r\n },\r\n\r\n setWithdrawalAgeOptions(state, data) {\r\n state.withdrawalAgeOptions = data;\r\n },\r\n\r\n setRetirementAgeOptions(state, data) {\r\n state.retirementAgeOptions = data;\r\n },\r\n};\r\n\r\nexport default mutations;\r\n","import moment from 'moment';\r\n\r\nimport { getAllNumbersByMonthForCareerProgression } from '@/js/store/calculator/utilities/allNumbersHelpers';\r\n\r\nexport { getCareerService } from '@/js/store/calculator/utilities/careerProgressionHelpers';\r\n\r\n/**\r\n * Get rank override list for Hi3 past years based on current rank and year of service.\r\n */\r\nexport function getOverrideRanksForHi3PastYears(rank) {\r\n const ranks = {\r\n // Enlisted ranks\r\n 'E-1': ['E-1'],\r\n 'E-2': ['E-1', 'E-2'],\r\n 'E-3': ['E-1', 'E-2', 'E-3'],\r\n 'E-4': ['E-2', 'E-3', 'E-4'],\r\n 'E-5': ['E-3', 'E-4', 'E-5'],\r\n 'E-6': ['E-5', 'E-6'],\r\n 'E-7': ['E-6', 'E-7'],\r\n 'E-8': ['E-7', 'E-8'],\r\n 'E-9': ['E-8', 'E-9'],\r\n\r\n // Warrant Officer ranks\r\n 'W-1': ['W-1', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9'],\r\n 'W-2': ['W-2', 'W-1', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9'],\r\n 'W-3': ['W-3', 'W-2', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9'],\r\n 'W-4': ['W-4', 'W-3', 'W-2', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9'],\r\n 'W-5': ['W-5', 'W-4', 'W-3', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9'],\r\n\r\n // Officer ranks\r\n 'O-1': ['O-1'],\r\n 'O-2': ['O-1', 'O-2'],\r\n 'O-3': ['O-1', 'O-2', 'O-3'],\r\n 'O-4': ['O-3', 'O-3E', 'O-4'],\r\n 'O-5': ['O-4', 'O-5'],\r\n 'O-6': ['O-5', 'O-6'],\r\n 'O-7': ['O-6', 'O-7'],\r\n 'O-8': ['O-6', 'O-7', 'O-8'],\r\n 'O-9': ['O-6', 'O-7', 'O-8', 'O-9'],\r\n 'O-10': ['O-6', 'O-7', 'O-8', 'O-9', 'O-10'],\r\n\r\n // Prior Enlisted ranks\r\n 'O-1E': ['O-1E', 'E-1', 'E-2', 'E-3', 'E-4', 'E-5', 'E-6', 'E-7', 'E-8', 'E-9', 'W-1', 'W-2', 'W-3', 'W-4', 'W-5'],\r\n 'O-2E': ['O-1E', 'O-2E'],\r\n 'O-3E': ['O-2E', 'O-3E'],\r\n };\r\n\r\n return ranks[rank] || [];\r\n}\r\n\r\n/**\r\n * The Hi3 Pension requires 36 months of data to compute. If the service member's number of\r\n * of months remaining in the service before ret/sep, need to request 'pasy years' data from prior calendar\r\n * years to obtain 36 months.\r\n */\r\nexport function getHi3PastYears(serviceMember) {\r\n const hi3PastYears = [];\r\n\r\n if (serviceMember.isEligibleForRetirementPension() && serviceMember.numberOfMonthsRemainingInServiceCareer() < 36) {\r\n const { currentRank } = serviceMember;\r\n const rundate = serviceMember.rundate();\r\n\r\n const allNumbersByMonth = getAllNumbersByMonthForCareerProgression(serviceMember);\r\n\r\n const startingDate = moment(rundate).subtract(36 - serviceMember.numberOfMonthsRemainingInServiceCareer(), 'months');\r\n const endingDate = moment(rundate).subtract(1, 'months');\r\n const startingYearOfService = allNumbersByMonth.find((o) => o.calendarYear === startingDate.year() && o.calendarMonth === startingDate.month() + 1).pebdServiceYear;\r\n const endingYearOfService = allNumbersByMonth.find((o) => o.calendarYear === endingDate.year() && o.calendarMonth === endingDate.month() + 1).pebdServiceYear;\r\n\r\n for (let serviceYear = startingYearOfService; serviceYear <= endingYearOfService; serviceYear += 1) {\r\n const obj = allNumbersByMonth.find((o) => o.pebdServiceYear === serviceYear);\r\n hi3PastYears.push({\r\n yearOfService: obj.pebdServiceYear,\r\n age: obj.ageYears,\r\n calendarYear: obj.calendarYear,\r\n defaultOverrideRank: currentRank,\r\n overrideRanks: getOverrideRanksForHi3PastYears(currentRank),\r\n suggestedRank: currentRank,\r\n yearOfServiceRank: currentRank,\r\n });\r\n }\r\n }\r\n\r\n return hi3PastYears;\r\n}\r\n","import ServiceMember from '@/js/store/calculator/state/ServiceMember';\r\nimport { getHi3PastYears } from '../utilities/hi3CareerProgressionHelpers';\r\n\r\nclass Hi3ServiceMember extends ServiceMember {\r\n constructor(formData, globalSettings, payTables, moduleSettings) {\r\n super(formData, globalSettings, payTables, moduleSettings);\r\n\r\n if (formData && globalSettings) {\r\n this.careerProgression.hi3PastYears = getHi3PastYears(this);\r\n }\r\n }\r\n}\r\n\r\nexport default Hi3ServiceMember;\r\n","import moment from 'moment';\r\nimport { toNumber } from 'lodash';\r\n\r\nimport * as allNumbersHelpers from '@/js/store/calculator/utilities/allNumbersHelpers';\r\n\r\nexport {\r\n initializeValues,\r\n getAllNumbersByMonthForCareerProgression,\r\n generateServiceMemberTsp,\r\n getAllNumbersByMonthFromRunDateToDeathDateTodaysDollars,\r\n getAllNumbersByMonthFromRunDateToDeathDateFutureDollars,\r\n getPayTableMonthlyPay,\r\n} from '@/js/store/calculator/utilities/allNumbersHelpers';\r\n\r\n// ****************************************************************************************************\r\n// Add the current monthly pay amount (Today's $) to each record in the array based on years of\r\n// service completed and rank.\r\n//\r\n// For records prior to the run date year/month, the GlobalSettings-->PayTables are utilized. If\r\n// the year/month are older than the oldest pay table, the oldest pay table is utilized.\r\n//\r\n// The current monthly pay amount (Today's $) is based on the years of completed service and rank.\r\n// ****************************************************************************************************\r\nfunction addPayAmountTodaysDollars(careerMonths, serviceMember, rundate, pebd, retSepDate) {\r\n const { payTables } = serviceMember;\r\n const pebdPlus3Months = moment(pebd).add(2, 'months');\r\n const pebdPlus4Months = moment(pebd).add(3, 'months');\r\n const pebdPlus6Months = moment(pebd).add(5, 'months');\r\n let rank = '';\r\n let pebdserviceYear = 0;\r\n let payGrade = '';\r\n\r\n // If Hi3 past years are being utilized, start from the prior date needed to fulfill 36 months of data.\r\n let startDate = rundate;\r\n if (serviceMember.isEligibleForRetirementPension() && serviceMember.numberOfMonthsRemainingInServiceCareer() < 36) {\r\n startDate = moment(rundate).subtract(36 - serviceMember.numberOfMonthsRemainingInServiceCareer(), 'months');\r\n }\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // When a non-regular retirement pension is being implemented, the \"Pay Todays $\" must be provided thru the month before the first tsp payout.\r\n // When a regular retirement pension is begin implemented, only need record up to and including the retSep date. But don't know what the\r\n // retirement type is at this point, so just extend the pay amounts out to 1 month prior to TSP being paid out.\r\n const endDate = moment(serviceMember.tspWithdrawalDate()).subtract(1, 'months');\r\n\r\n careerMonth.payAmountTodaysDollars = 0;\r\n if (calendarDate.isSameOrAfter(startDate) && calendarDate.isSameOrBefore(endDate)) {\r\n // Determine rank basked on the calendar date.\r\n // 1. If the calendar date is prior to the run date, obtain the rank associated to the month. Rank for each month for lookback years was manipulated in 'addOverrideCareerProgression'.\r\n // 2. If the calendar date is within the 1st three months of career, make E-1<4 (in boot camp, lower pay than regular E-1 rank).\r\n // 3. if the calendar date is within month 4 thru 6, make E-1 (pay increase from completing boot camp).\r\n // 2. After retSepDate, rank will retain to the last rank obtained while in service (required to determine TSP payment for non-regular retirement).\r\n if (calendarDate.isSameOrAfter(startDate) && calendarDate.isBefore(rundate)) {\r\n rank = careerMonth.overrideRank;\r\n } else if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(pebdPlus3Months)) {\r\n rank = 'E-1<4';\r\n } else if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebdPlus4Months) && calendarDate.isSameOrBefore(pebdPlus6Months)) {\r\n rank = 'E-1';\r\n } else if (calendarDate.isSameOrAfter(rundate) && calendarDate.isSameOrBefore(retSepDate)) {\r\n rank = careerMonth.overrideRank;\r\n }\r\n\r\n pebdserviceYear = calendarDate.isSameOrBefore(retSepDate) ? careerMonth.pebdServiceYear : pebdserviceYear;\r\n\r\n // Non-regular retirement requires the 'Pay Today/Future $' to be projected up to 1 month prior to the non-regular retirement withdrawal age.\r\n pebdserviceYear = (calendarDate.isAfter(retSepDate) && calendarMonth === pebd.month() + 1) ? pebdserviceYear + 1 : pebdserviceYear;\r\n\r\n payGrade = calendarDate.isSameOrBefore(retSepDate) ? serviceMember.currentPayGrade(rank) : payGrade;\r\n\r\n let yearsDifferenceCalendarDateFromRundate = calendarYear > rundate.year() ? 0 : rundate.year() - calendarYear;\r\n yearsDifferenceCalendarDateFromRundate = yearsDifferenceCalendarDateFromRundate > 3 ? 3 : yearsDifferenceCalendarDateFromRundate; // 3 years in past is max.\r\n const payTableFilename = `runDateMinus${yearsDifferenceCalendarDateFromRundate}${(yearsDifferenceCalendarDateFromRundate === 1 ? 'Year' : 'Years')}`;\r\n\r\n careerMonth.payAmountTodaysDollars = allNumbersHelpers.getPayTableMonthlyPay(payTables, payTableFilename, payGrade, rank, pebdserviceYear);\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the current monthly pay amount (Future $) to each record in the array.\r\n//\r\n// For records equal to the run date year, the pay amount is equal to the today's dollar pay amount.\r\n//\r\n// For records greater than the run date year, the associated GlobalSettings-->PayTableGrowthRate\r\n// multiplier is used.\r\n// Example:\r\n// 1. Run date year is 2020\r\n// 2. Future dollay current pay amount = today's current pay amount.\r\n// 3. In 2021, the current pay amount (Today's $) is multiplied/added by\r\n// GlobalSettings-->PayTableGrowthRates-->Year1.\r\n// 4. In 2022, the current pay amount (Today's $) is multiplied/added by\r\n// GlobalSettings-->PayTableGrowthRates-->Year1 as well ass\r\n// GlobalSettings-->PayTableGrowthRates-- > Year2.\r\n// ****************************************************************************************************\r\nfunction addPayAmountFutureDollars(careerMonths, serviceMember, rundate) {\r\n const rundateMinus1Month = moment(rundate).subtract(1, 'months');\r\n\r\n const payTableGrowthRateYear1 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year1) / 100 + 1;\r\n const payTableGrowthRateYear2 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year2) / 100 + 1;\r\n const payTableGrowthRateYear3 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year3) / 100 + 1;\r\n const payTableGrowthRateYear4 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year4) / 100 + 1;\r\n const payTableGrowthRateYear5 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year5) / 100 + 1;\r\n\r\n // If Hi3 past years are required, start from the prior date needed to fulfill 36 months of data.\r\n const hi3PastYearsRequired = serviceMember.isEligibleForRetirementPension && serviceMember.numberOfMonthsRemainingInServiceCareer() < 36;\r\n let hi3PastYearsStartDate = rundate;\r\n if (hi3PastYearsRequired) {\r\n hi3PastYearsStartDate = moment(rundate).subtract(36 - serviceMember.numberOfMonthsRemainingInServiceCareer(), 'months');\r\n }\r\n\r\n for (let index = 0; index <= careerMonths.length - 1; index += 1) {\r\n const careerMonth = careerMonths[index];\r\n\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // When a non-regular retirement pension is being implemented, the \"Pay Todays $\" must be provided thru the month before the first tsp payout.\r\n // When a regular retirement pension is begin implemented, only need record up to and including the retSep date. But don't know what the\r\n // retirement type is at this point, so just extend the pay amounts out to 1 month prior to TSP being paid out.\r\n const endDate = moment(serviceMember.tspWithdrawalDate()).subtract(1, 'months');\r\n\r\n careerMonth.payAmountFutureDollars = 0;\r\n\r\n if (calendarDate.isSameOrAfter(hi3PastYearsStartDate) && calendarDate.isSameOrBefore(endDate)) {\r\n let payAmountFutureDollars = 0;\r\n const payAmountTodaysDollars = toNumber(careerMonth.payAmountTodaysDollars);\r\n\r\n if (hi3PastYearsRequired && calendarDate.isSameOrBefore(rundateMinus1Month)) {\r\n // Past years monies do not include adjustment for inflation.\r\n careerMonth.payAmountFutureDollars = payAmountTodaysDollars;\r\n continue;\r\n } else if (calendarYear === rundate.year()) {\r\n // No adjustment for 1st calendar year.\r\n payAmountFutureDollars = payAmountTodaysDollars;\r\n } else if (calendarYear >= (rundate.year() + 1)) {\r\n // Adjust for inflation.\r\n const calendarYearFromRundateYearOffset = calendarYear - rundate.year();\r\n\r\n payAmountFutureDollars = payAmountTodaysDollars * payTableGrowthRateYear1;\r\n if (calendarYearFromRundateYearOffset >= 2) payAmountFutureDollars *= payTableGrowthRateYear2;\r\n if (calendarYearFromRundateYearOffset >= 3) payAmountFutureDollars *= payTableGrowthRateYear3;\r\n if (calendarYearFromRundateYearOffset >= 4) payAmountFutureDollars *= payTableGrowthRateYear4;\r\n if (calendarYearFromRundateYearOffset >= 5) payAmountFutureDollars *= payTableGrowthRateYear5;\r\n if (calendarYearFromRundateYearOffset >= 6) {\r\n for (let yearOffset = 6; yearOffset <= calendarYearFromRundateYearOffset; yearOffset += 1) {\r\n payAmountFutureDollars *= payTableGrowthRateYear5;\r\n }\r\n }\r\n }\r\n\r\n careerMonth.payAmountFutureDollars = payAmountFutureDollars;\r\n }\r\n }\r\n\r\n return careerMonths;\r\n}\r\n\r\nexport function getAllNumbersByMonth(serviceMember) {\r\n // these functions are being overwritten\r\n return allNumbersHelpers.getAllNumbersByMonth(serviceMember, {\r\n addPayAmountTodaysDollars,\r\n addPayAmountFutureDollars,\r\n });\r\n}\r\n\r\nexport function generateHi3Pension(serviceMember) {\r\n let { allNumbersByMonth } = serviceMember.results;\r\n const retSepDate = serviceMember.retSepDate();\r\n let paymentStartDate = null;\r\n\r\n if (serviceMember.pensionRetirementType() === serviceMember.RETIREMENT_ELIGIBILITIES.REGULAR_RETIREMENT) {\r\n paymentStartDate = serviceMember.firstMonthOutOfServiceDate();\r\n allNumbersByMonth = allNumbersHelpers.addHi3PensionPaymentsRegularRetirementTodaysDollars(allNumbersByMonth, serviceMember, paymentStartDate, retSepDate);\r\n allNumbersByMonth = allNumbersHelpers.addHi3PensionPaymentsRegularRetirementFutureDollars(allNumbersByMonth, serviceMember, paymentStartDate, retSepDate);\r\n } else {\r\n paymentStartDate = serviceMember.nonRegularRetirementWithdrawalDate();\r\n allNumbersByMonth = allNumbersHelpers.addHi3PensionPaymentsNonRegularRetirementTodaysDollars(allNumbersByMonth, serviceMember, paymentStartDate);\r\n allNumbersByMonth = allNumbersHelpers.addHi3PensionPaymentsNonRegularRetirementFutureDollars(allNumbersByMonth, serviceMember, paymentStartDate);\r\n }\r\n\r\n return allNumbersByMonth;\r\n}\r\n","import moment from 'moment';\r\nimport { isNumber } from 'lodash';\r\n\r\nimport * as base from '@/js/store/calculator/utilities/allPaymentsHelpers';\r\n\r\n// ****************************************************************************************************\r\n// For each calendar year, add the Hi3 Pension amount.\r\n// ****************************************************************************************************\r\nfunction getHi3Pension(careerMonths, allPayments, firstMonthOutOfServiceDate, endOfLifeDate, key) {\r\n let obj = {};\r\n let hi3Pension = 0;\r\n let allPaymentsYear = firstMonthOutOfServiceDate.year();\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n if (calendarDate.isSameOrAfter(firstMonthOutOfServiceDate)) {\r\n if (calendarMonth === 1) {\r\n obj = allPayments.data.find((o) => o.calendarYear === allPaymentsYear);\r\n obj.pensionPaymentAmount = hi3Pension === 0 ? '' : hi3Pension;\r\n hi3Pension = 0;\r\n allPaymentsYear = calendarYear;\r\n }\r\n\r\n hi3Pension += careerMonth[key];\r\n\r\n // Ensure retSep year are included.\r\n // endOfLifeDate is last day of the month. Only check year and month.\r\n if (calendarYear === endOfLifeDate.year() && calendarMonth === endOfLifeDate.month() + 1) {\r\n obj = allPayments.data.find((o) => o.calendarYear === calendarYear);\r\n obj.pensionPaymentAmount = hi3Pension === 0 ? '' : hi3Pension;\r\n }\r\n }\r\n });\r\n\r\n return allPayments.data;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// For each calendar year, sum the Hi3 Pension amount and TSP Payout amount.\r\n// ****************************************************************************************************\r\nfunction getHi3Total(allPayments) {\r\n allPayments.data.forEach((item) => {\r\n const hi3Pension = isNumber(item.pensionPaymentAmount) ? item.pensionPaymentAmount : 0;\r\n const tspPayout = isNumber(item.tspServiceMemberPaymentAmount) ? item.tspServiceMemberPaymentAmount : 0;\r\n\r\n item.pensionTotal = hi3Pension + tspPayout === 0 ? '' : hi3Pension + tspPayout;\r\n });\r\n\r\n return allPayments.data;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Generate data to be displayed in the All-Payments results tab.\r\n// ****************************************************************************************************\r\nfunction populateHi3Data(allPayments, serviceMember, keys) {\r\n const { allNumbersByMonth } = serviceMember.results;\r\n\r\n const endOfLifeDate = serviceMember.endOfLifeDate();\r\n const firstMonthOutOfServiceDate = serviceMember.firstMonthOutOfServiceDate();\r\n\r\n allPayments.data = serviceMember.pensionRetirementType() !== serviceMember.RETIREMENT_ELIGIBILITIES.TSP_ONLY\r\n ? getHi3Pension(allNumbersByMonth, allPayments, firstMonthOutOfServiceDate, endOfLifeDate, keys.hi3PensionAmountKey)\r\n : allPayments.data;\r\n allPayments.data = getHi3Total(allPayments);\r\n\r\n return allPayments;\r\n}\r\n\r\nexport function getResultsAllPaymentsInFutureDollars(serviceMember) {\r\n const allPayments = base.getResultsAllPaymentsInFutureDollars(serviceMember);\r\n\r\n populateHi3Data(allPayments, serviceMember, {\r\n hi3PensionAmountKey: 'pensionAmountFutureDollars',\r\n });\r\n\r\n return allPayments;\r\n}\r\n\r\nexport function getResultsAllPaymentsInTodaysDollars(serviceMember) {\r\n const allPayments = base.getResultsAllPaymentsInTodaysDollars(serviceMember);\r\n\r\n populateHi3Data(allPayments, serviceMember, {\r\n hi3PensionAmountKey: 'pensionAmountTodaysDollars',\r\n });\r\n\r\n return allPayments;\r\n}\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nimport mutations from '@/js/store/calculator/mutations';\r\nimport actions from '@/js/store/calculator/actions';\r\nimport getters from '@/js/store/calculator/getters';\r\nimport initialState from '@/js/store/calculator/initialState';\r\nimport { generateReserveComponent } from '@/js/store/calculator/utilities/reserveComponentHelpers';\r\nimport { getResultsOverviewInTodaysDollars, getResultsOverviewInFutureDollars } from '@/js/store/calculator/utilities/overviewHelpers';\r\nimport { getResultsTspSummaryInTodaysDollars, getResultsTspSummaryInFutureDollars } from '@/js/store/calculator/utilities/tspSummaryHelpers';\r\n\r\nimport Hi3ServiceMember from './state/Hi3ServiceMember';\r\nimport { getOverrideRanksForHi3PastYears } from './utilities/hi3CareerProgressionHelpers';\r\nimport {\r\n initializeValues,\r\n getAllNumbersByMonth,\r\n generateHi3Pension,\r\n generateServiceMemberTsp,\r\n getAllNumbersByMonthFromRunDateToDeathDateTodaysDollars,\r\n getAllNumbersByMonthFromRunDateToDeathDateFutureDollars,\r\n} from './utilities/hi3AllNumbersHelpers';\r\nimport { getResultsAllPaymentsInTodaysDollars, getResultsAllPaymentsInFutureDollars } from './utilities/hi3AllPaymentsHelpers';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default (preloadedState, useAll, config) => new Vuex.Store({\r\n state: useAll\r\n ? preloadedState\r\n : {\r\n ...preloadedState,\r\n ...initialState,\r\n config,\r\n },\r\n\r\n mutations: {\r\n ...mutations,\r\n\r\n updateYearOfServiceRankHi3PastYears(state, { yearOfServiceRank, index }) {\r\n state.serviceMember.careerProgression.hi3PastYears[index].yearOfServiceRank = yearOfServiceRank;\r\n },\r\n\r\n updateOverrideRanksHi3PastYears(state, { yearOfServiceRank, index }) {\r\n const careerProgressionHi3PastYears = state.serviceMember.careerProgression.hi3PastYears;\r\n for (let i = index; i < careerProgressionHi3PastYears.length; i += 1) {\r\n const currentItem = careerProgressionHi3PastYears[i];\r\n const overrideRanks = getOverrideRanksForHi3PastYears(\r\n yearOfServiceRank,\r\n currentItem.yearOfService,\r\n );\r\n currentItem.overrideRanks = overrideRanks;\r\n }\r\n },\r\n\r\n generateResults(state) {\r\n state.serviceMember.results.allNumbersByMonth = getAllNumbersByMonth(state.serviceMember);\r\n\r\n if (state.serviceMember.componentMatrix() !== state.serviceMember.COMPONENT_MATRICES.AC_2_AC) {\r\n state.serviceMember = generateReserveComponent(state.serviceMember);\r\n }\r\n\r\n if (state.serviceMember.pensionRetirementType() !== state.serviceMember.RETIREMENT_ELIGIBILITIES.TSP_ONLY) {\r\n state.serviceMember.results.allNumbersByMonth = generateHi3Pension(state.serviceMember);\r\n }\r\n\r\n state.serviceMember.results.allNumbersByMonth = initializeValues(state.serviceMember);\r\n state.serviceMember.results.todaysDollars.overview = generateServiceMemberTsp(state.serviceMember, state.formData);\r\n\r\n state.serviceMember.results.todaysDollars.overview = getResultsOverviewInTodaysDollars(state.serviceMember, state.moduleSettings);\r\n state.serviceMember.results.futureDollars.overview = getResultsOverviewInFutureDollars(state.serviceMember, state.moduleSettings);\r\n state.serviceMember.results.todaysDollars.tspSummary = getResultsTspSummaryInTodaysDollars(state.serviceMember);\r\n state.serviceMember.results.futureDollars.tspSummary = getResultsTspSummaryInFutureDollars(state.serviceMember);\r\n state.serviceMember.results.todaysDollars.allPayments = getResultsAllPaymentsInTodaysDollars(state.serviceMember);\r\n state.serviceMember.results.futureDollars.allPayments = getResultsAllPaymentsInFutureDollars(state.serviceMember);\r\n state.serviceMember.results.todaysDollars.allNumbers = getAllNumbersByMonthFromRunDateToDeathDateTodaysDollars(state.serviceMember);\r\n state.serviceMember.results.futureDollars.allNumbers = getAllNumbersByMonthFromRunDateToDeathDateFutureDollars(state.serviceMember);\r\n },\r\n },\r\n\r\n getters,\r\n\r\n actions: {\r\n ...actions,\r\n\r\n clearServiceMember({ commit }) {\r\n commit('setServiceMember', new Hi3ServiceMember());\r\n },\r\n\r\n initializeServiceMember({ commit, state }) {\r\n const { grade, retirementSTMonths } = state.formData;\r\n\r\n let serviceMember;\r\n if (grade && retirementSTMonths) {\r\n serviceMember = new Hi3ServiceMember(state.formData, state.globalSettings, state.payTables, state.moduleSettings);\r\n } else {\r\n serviceMember = new Hi3ServiceMember();\r\n }\r\n\r\n commit('setServiceMember', serviceMember);\r\n },\r\n\r\n updateYearOfServiceRankHi3PastYears({ commit }, { yearOfServiceRank, index }) {\r\n commit('updateYearOfServiceRankHi3PastYears', { yearOfServiceRank, index });\r\n },\r\n\r\n updateOverrideRanksHi3PastYears({ commit }, { yearOfServiceRank, index }) {\r\n commit('updateOverrideRanksHi3PastYears', { yearOfServiceRank, index });\r\n },\r\n\r\n generateResults({ commit }) {\r\n commit('generateResults');\r\n },\r\n },\r\n});\r\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"h6\", [_vm._v(\"Hi-3\")]),\n _vm._v(\" \"),\n _c(\"hr\", { staticClass: \"divider\" }),\n _vm._v(\" \"),\n _c(\n \"wizard-nav\",\n {\n attrs: {\n currentStepIndex: _vm.currentStepIndex,\n currentStep: _vm.currentStep,\n altMode: _vm.currentStepAltMode,\n steps: _vm.steps,\n showNav: false,\n },\n on: { toPrevious: _vm.setPreviousStep, toNext: _vm.setNextStep },\n },\n [\n _vm.currentStepIndex === 0 ? _c(\"introduction\") : _vm._e(),\n _vm._v(\" \"),\n _vm.currentStepIndex === 1 ? _c(\"personal-information\") : _vm._e(),\n _vm._v(\" \"),\n _vm.currentStepIndex === 2 ? _c(\"retirement-information\") : _vm._e(),\n _vm._v(\" \"),\n _vm.currentStepIndex === 3 ? _c(\"career-progression\") : _vm._e(),\n _vm._v(\" \"),\n _vm.currentStepIndex === 4 ? _c(\"results\") : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"modal\",\n {\n attrs: {\n value: _vm.stepLoading,\n header: false,\n footer: false,\n backdrop: false,\n keyboard: false,\n size: \"sm\",\n },\n on: { show: _vm.stepLoadingModalShown },\n },\n [\n _c(\"div\", { staticClass: \"text-center\" }, [\n _c(\"img\", {\n attrs: {\n src: \"/DesktopModules/MVC/MilitaryPayCalculatorsMVC/Resources/images/loading.gif\",\n },\n }),\n ]),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"form-group currentComponent col-xs-12\" }, [\n _c(\"label\", [_vm._v(\"I am in the\")]),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.activeComponent,\n expression: \"tooltips.activeComponent\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"radio-inline\",\n },\n [\n _c(\"input\", {\n attrs: {\n type: \"radio\",\n name: \"currentComponent\",\n value: \"active\",\n },\n domProps: {\n checked: this.formData.currentComponent === \"active\",\n },\n on: {\n change: function ($event) {\n return _vm.setFormData({ currentComponent: \"active\" })\n },\n },\n }),\n _vm._v(\"\\n Active Component\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.reserveComponent,\n expression: \"tooltips.reserveComponent\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"radio-inline\",\n },\n [\n _c(\"input\", {\n attrs: {\n type: \"radio\",\n name: \"currentComponent\",\n value: \"reserve\",\n },\n domProps: {\n checked: this.formData.currentComponent === \"reserve\",\n },\n on: {\n change: function ($event) {\n return _vm.setFormData({ currentComponent: \"reserve\" })\n },\n },\n }),\n _vm._v(\"\\n Reserve Component\\n \"),\n ]\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group col-xs-12\" }, [\n _c(\"label\", [\n _vm._v(\"\\n and will\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.separate,\n expression: \"tooltips.separate\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"separate\")]\n ),\n _vm._v(\"\\n or retire from the\\n \"),\n ]),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.formData.endingComponent },\n on: {\n change: function ($event) {\n return _vm.setFormData({ endingComponent: $event.target.value })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"active\" } }, [\n _vm._v(\"Active Component\"),\n ]),\n _vm._v(\" \"),\n _c(\"option\", { attrs: { value: \"reserve\" } }, [\n _vm._v(\"Reserve Component\"),\n ]),\n ]\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-sm-offset-4 col-sm-4\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-primary btn-block\",\n attrs: { type: \"button\" },\n on: { click: _vm.setNextStep },\n },\n [\n _vm._v(\"\\n Get Started\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./introduction.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./introduction.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./introduction.vue?vue&type=template&id=5690dfa6&scoped=true&\"\nimport script from \"./introduction.vue?vue&type=script&lang=js&\"\nexport * from \"./introduction.vue?vue&type=script&lang=js&\"\nimport style0 from \"./introduction.vue?vue&type=style&index=0&id=5690dfa6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5690dfa6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5690dfa6')) {\n api.createRecord('5690dfa6', component.options)\n } else {\n api.reload('5690dfa6', component.options)\n }\n module.hot.accept(\"./introduction.vue?vue&type=template&id=5690dfa6&scoped=true&\", function () {\n api.rerender('5690dfa6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/introduction/introduction.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [\n _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"h6\", [_vm._v(_vm._s(_vm.currentStep.title))]),\n ]),\n _vm._v(\" \"),\n _c(\"personal-information-form\"),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12 button-group\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-default\",\n attrs: { type: \"button\" },\n on: { click: _vm.setPreviousStep },\n },\n [\n _c(\"i\", { staticClass: \"fa fa-caret-left\" }),\n _vm._v(\"\\n Previous\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-primary\",\n attrs: {\n type: \"button\",\n disabled: !_vm.personalInformationIsValid,\n },\n on: { click: _vm.setNextStep },\n },\n [\n _vm._v(\"\\n Continue\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n _vm._v(\" \"),\n _vm.isDev\n ? _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-primary\",\n attrs: { type: \"button\" },\n on: { click: _vm.populateAndContinue },\n },\n [\n _vm._v(\"\\n Populate & Continue\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n )\n : _vm._e(),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"form\",\n { staticClass: \"form-horizontal\" },\n [\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [_vm._v(\"When were you born?\")]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.bornDateMonths.length === 0 },\n domProps: { value: _vm.formData.bornDateMonth },\n on: {\n change: function ($event) {\n return _vm.setFormData({ bornDateMonth: $event.target.value })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.bornDateMonths, function (month) {\n return _c(\n \"option\",\n { key: month.value, domProps: { value: month.value } },\n [_vm._v(_vm._s(month.name))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.formData.bornDateYear },\n on: {\n change: function ($event) {\n return _vm.setFormData({ bornDateYear: $event.target.value })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.bornDateYears, function (year) {\n return _c(\"option\", { key: year, domProps: { value: year } }, [\n _vm._v(_vm._s(year)),\n ])\n }),\n ],\n 2\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n What is your\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.payEntryBaseDate,\n expression: \"tooltips.payEntryBaseDate\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n Pay Entry Base Date\\n \")]\n ),\n _vm._v(\"\\n ?\\n \"),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.payEntryBaseDateMonths.length === 0 },\n domProps: { value: _vm.formData.payEntryBaseDateMonth },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n payEntryBaseDateMonth: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.payEntryBaseDateMonths, function (month) {\n return _c(\n \"option\",\n { key: month.value, domProps: { value: month.value } },\n [_vm._v(_vm._s(month.name))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.payEntryBaseDateYears.length === 0 },\n domProps: { value: _vm.formData.payEntryBaseDateYear },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n payEntryBaseDateYear: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.payEntryBaseDateYears, function (year) {\n return _c(\"option\", { key: year, domProps: { value: year } }, [\n _vm._v(_vm._s(year)),\n ])\n }),\n ],\n 2\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [_vm._v(\"What is your current grade?\")]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.formData.grade },\n on: {\n change: function ($event) {\n return _vm.setFormData({ grade: $event.target.value })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.gradeOptions, function (grade) {\n return _c(\n \"option\",\n { key: grade, domProps: { value: grade } },\n [_vm._v(_vm._s(grade))]\n )\n }),\n ],\n 2\n ),\n ]\n ),\n _vm._v(\" \"),\n _vm.showFor(\"ac2ac\", \"ac2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n What is your\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.activeServiceDate,\n expression: \"tooltips.activeServiceDate\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n Active Service Date\\n \")]\n ),\n _vm._v(\"\\n ?\\n \"),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 4052800388\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"checkbox\" }, [\n _c(\"label\", [\n _c(\"input\", {\n attrs: { type: \"checkbox\" },\n domProps: { checked: _vm.sameAsPayDate },\n on: {\n change: function ($event) {\n return _vm.setSameAsPayDate($event.target.checked)\n },\n },\n }),\n _vm._v(\" same as Pay Entry Base Date\\n \"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.sameAsPayDate,\n expression: \"!sameAsPayDate\",\n },\n ],\n },\n [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled: _vm.activeServiceDateMonths.length === 0,\n },\n domProps: { value: _vm.formData.activeServiceDateMonth },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n activeServiceDateMonth: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.activeServiceDateMonths, function (month) {\n return _c(\n \"option\",\n {\n key: month.value,\n domProps: { value: month.value },\n },\n [_vm._v(_vm._s(month.name))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled: _vm.activeServiceDateYears.length === 0,\n },\n domProps: { value: _vm.formData.activeServiceDateYear },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n activeServiceDateYear: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.activeServiceDateYears, function (year) {\n return _c(\n \"option\",\n { key: year, domProps: { value: year } },\n [_vm._v(_vm._s(year))]\n )\n }),\n ],\n 2\n ),\n ]\n ),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\n \"How many years of service will you have at separation or retirement?\"\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.retirementSTYears.length === 0 },\n domProps: { value: _vm.formData.retirementSTYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n retirementSTYears: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.retirementSTYears, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n year(s)\\n \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.retirementSTMonths.length === 0 },\n domProps: { value: _vm.formData.retirementSTMonths },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n retirementSTMonths: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.retirementSTMonths, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n month(s)\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _vm.showFor(\"ac2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\n \"When do you plan to join the Reserve component?\"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 2535574916\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled:\n typeof _vm.transferToRcYears === \"undefined\" ||\n _vm.transferToRcYears.length === 0,\n },\n domProps: { value: _vm.formData.transferToRcYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n transferToRcYears: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.transferToRcYears, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n year(s)\\n \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled:\n typeof _vm.transferToRcMonths === \"undefined\" ||\n _vm.transferToRcMonths.length === 0,\n },\n domProps: { value: _vm.formData.transferToRcMonths },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n transferToRcMonths: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.transferToRcMonths, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n month(s)\\n \"),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\")\n ? _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\n \"When do you plan to join the Active component?\"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 3050566568\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled:\n typeof _vm.transferToAcYears === \"undefined\" ||\n _vm.transferToAcYears.length === 0,\n },\n domProps: { value: _vm.formData.transferToAcYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n transferToAcYears: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.transferToAcYears, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n year(s)\\n \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled:\n typeof _vm.transferToAcMonths === \"undefined\" ||\n _vm.transferToAcMonths.length === 0,\n },\n domProps: { value: _vm.formData.transferToAcMonths },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n transferToAcMonths: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [\n _vm._v(\"- select -\"),\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.transferToAcMonths, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n _vm._v(\"\\n month(s)\\n \"),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\", \"rc2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.activeServiceDaysHasError },\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n What is your total number of\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.activeService,\n expression: \"tooltips.activeService\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"Active Service\")]\n ),\n _vm._v(\"\\n days to date?\\n \"),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 654504024\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"form-control input-sm\",\n attrs: {\n type: \"number\",\n min: _vm.config.activeServiceDaysMin,\n max: _vm.config.activeServiceDaysMax,\n },\n domProps: { value: _vm.formData.activeServiceDays },\n on: {\n input: function ($event) {\n _vm.setFormData({\n activeServiceDays: Number(\n Number($event.target.value).toFixed(0)\n ),\n })\n },\n },\n }),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\", \"rc2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n How many\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.qualifyingYears,\n expression: \"tooltips.qualifyingYears\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"Qualifying Years\")]\n ),\n _vm._v(\n \"\\n towards retirement have you earned?\\n \"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 2007898767\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.qualifyingYearsOptions.length === 0 },\n domProps: { value: _vm.formData.qualifyingYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n qualifyingYears: $event.target.value,\n })\n },\n },\n },\n _vm._l(_vm.qualifyingYearsOptions, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n 0\n ),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\", \"rc2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.retirementPointsHasError },\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\n \"How many retirement points in total do you have to date?\"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 908701223\n ),\n },\n [\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"form-control input-sm\",\n attrs: {\n type: \"number\",\n min: _vm.config.retirementPointsMin,\n max: _vm.config.retirementPointsMax,\n },\n domProps: { value: _vm.formData.retirementPoints },\n on: {\n input: function ($event) {\n _vm.setFormData({\n retirementPoints: Number(\n Number($event.target.value).toFixed(0)\n ),\n })\n },\n },\n }),\n ]\n )\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./personal-information-form.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./personal-information-form.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./personal-information-form.vue?vue&type=template&id=5c4627f4&\"\nimport script from \"./personal-information-form.vue?vue&type=script&lang=js&\"\nexport * from \"./personal-information-form.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5c4627f4')) {\n api.createRecord('5c4627f4', component.options)\n } else {\n api.reload('5c4627f4', component.options)\n }\n module.hot.accept(\"./personal-information-form.vue?vue&type=template&id=5c4627f4&\", function () {\n api.rerender('5c4627f4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/personal-information/personal-information-form.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./personal-information.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./personal-information.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./personal-information.vue?vue&type=template&id=7f64944d&scoped=true&\"\nimport script from \"./personal-information.vue?vue&type=script&lang=js&\"\nexport * from \"./personal-information.vue?vue&type=script&lang=js&\"\nimport style0 from \"./personal-information.vue?vue&type=style&index=0&id=7f64944d&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f64944d\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7f64944d')) {\n api.createRecord('7f64944d', component.options)\n } else {\n api.reload('7f64944d', component.options)\n }\n module.hot.accept(\"./personal-information.vue?vue&type=template&id=7f64944d&scoped=true&\", function () {\n api.rerender('7f64944d', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/personal-information/personal-information.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [\n _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"h6\", [_vm._v(_vm._s(_vm.currentStep.title))]),\n ]),\n _vm._v(\" \"),\n _c(\"retirement-information-form\"),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12 button-group\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-default\",\n attrs: { type: \"button\" },\n on: { click: _vm.setPreviousStep },\n },\n [\n _c(\"i\", { staticClass: \"fa fa-caret-left\" }),\n _vm._v(\"\\n Previous\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-primary\",\n attrs: {\n type: \"button\",\n disabled: !_vm.retirementInformationIsValid,\n },\n on: { click: _vm.setNextStep },\n },\n [\n _vm._v(\"\\n Continue\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"form\",\n { staticClass: \"form-horizontal\" },\n [\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.lifeExpectancy,\n expression: \"tooltips.lifeExpectancy\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n life expectancy\\n \")]\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.formData.lifeExpectancy },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n lifeExpectancy: $event.target.value,\n })\n },\n },\n },\n [\n _c(\"option\", { attrs: { value: \"\" } }, [_vm._v(\"- select -\")]),\n _vm._v(\" \"),\n _vm._l(_vm.lifeExpectancyOptions, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n ],\n 2\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your TSP\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.withdrawalAge,\n expression: \"tooltips.withdrawalAge\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n withdrawal age\\n \")]\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.withdrawalAgeYears.length === 0 },\n domProps: { value: _vm.formData.withdrawalAgeYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n withdrawalAgeYears: $event.target.value,\n })\n },\n },\n },\n _vm._l(_vm.withdrawalAgeYears, function (value) {\n return _c(\"option\", { key: value, domProps: { value: value } }, [\n _vm._v(_vm._s(value)),\n ])\n }),\n 0\n ),\n _vm._v(\"\\n year(s)\\n \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.withdrawalAgeMonths.length === 0 },\n domProps: { value: _vm.formData.withdrawalAgeMonths },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n withdrawalAgeMonths: $event.target.value,\n })\n },\n },\n },\n _vm._l(_vm.withdrawalAgeMonths, function (value) {\n return _c(\"option\", { key: value, domProps: { value: value } }, [\n _vm._v(_vm._s(value)),\n ])\n }),\n 0\n ),\n _vm._v(\"\\n month(s)\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.contributionRateHasError },\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your TSP\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.contributionRate,\n expression: \"tooltips.contributionRate\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n contribution rate\\n \")]\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group input-group-sm\" }, [\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"number\",\n min: _vm.config.contributionRateMin,\n max: _vm.config.contributionRateMax,\n },\n domProps: { value: _vm.formData.contributionRate },\n on: {\n input: function ($event) {\n _vm.setFormData({\n contributionRate: Number(\n Number($event.target.value).toFixed(0)\n ),\n })\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group-addon\" }, [_vm._v(\"%\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.growthRateHasError },\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your TSP\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.rateOfReturn,\n expression: \"tooltips.rateOfReturn\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n rate of return\\n \")]\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group input-group-sm\" }, [\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"number\",\n min: _vm.config.growthRateMin,\n max: _vm.config.growthRateMax,\n },\n domProps: { value: _vm.formData.growthRateDisplay },\n on: {\n keyup: function ($event) {\n return _vm.formatRate(\n $event,\n \"growthRate\",\n $event.target.value\n )\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group-addon\" }, [_vm._v(\"%\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.withdrawalGrowthRateHasError },\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your TSP\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.withdrawRate,\n expression: \"tooltips.withdrawRate\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [\n _vm._v(\n \"\\n rate of return after you begin to withdrawal\\n \"\n ),\n ]\n ),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group input-group-sm\" }, [\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"number\",\n min: _vm.config.growthRateMin,\n max: _vm.config.growthRateMax,\n },\n domProps: { value: _vm.formData.withdrawalGrowthRateDisplay },\n on: {\n keyup: function ($event) {\n return _vm.formatRate(\n $event,\n \"withdrawalGrowthRate\",\n $event.target.value\n )\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group-addon\" }, [_vm._v(\"%\")]),\n ]),\n ]\n ),\n _vm._v(\" \"),\n _vm.showFor(\"ac2rc\", \"rc2ac\", \"rc2rc\")\n ? _c(\n \"wizard-form-row\",\n {\n scopedSlots: _vm._u(\n [\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\n \"\\n Set your non-regular retirement pay age\\n \"\n ),\n ]\n },\n proxy: true,\n },\n ],\n null,\n false,\n 1730216596\n ),\n },\n [\n _vm._v(\" \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: { disabled: _vm.retirementAgeYears.length === 0 },\n domProps: { value: _vm.formData.retirementAgeYears },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n retirementAgeYears: $event.target.value,\n })\n },\n },\n },\n _vm._l(_vm.retirementAgeYears, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n 0\n ),\n _vm._v(\"\\n year(s)\\n \"),\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n attrs: {\n disabled:\n typeof _vm.retirementAgeMonths === \"undefined\" ||\n _vm.retirementAgeMonths.length === 0,\n },\n domProps: { value: _vm.formData.retirementAgeMonths },\n on: {\n change: function ($event) {\n return _vm.setFormData({\n retirementAgeMonths: $event.target.value,\n })\n },\n },\n },\n _vm._l(_vm.retirementAgeMonths, function (value) {\n return _c(\n \"option\",\n { key: value, domProps: { value: value } },\n [_vm._v(_vm._s(value))]\n )\n }),\n 0\n ),\n _vm._v(\"\\n month(s)\\n \"),\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"wizard-form-row\",\n {\n attrs: { hasError: _vm.tspServiceMemberContributionHasError },\n scopedSlots: _vm._u([\n {\n key: \"label\",\n fn: function () {\n return [\n _vm._v(\"\\n Set your TSP\\n \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.balanceServiceMember,\n expression: \"tooltips.balanceServiceMember\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"text-underline\",\n },\n [_vm._v(\"\\n account balance\\n \")]\n ),\n _vm._v(\"\\n from Service Member contributions\\n \"),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"input-group input-group-sm\" }, [\n _c(\"div\", { staticClass: \"input-group-addon\" }, [_vm._v(\"$\")]),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"number\",\n min: _vm.config.tspServiceMemberContributionMin,\n max: _vm.config.tspServiceMemberContributionMax,\n },\n domProps: { value: _vm.formData.tspServiceMemberContribution },\n on: {\n input: function ($event) {\n _vm.setFormData({\n tspServiceMemberContribution: Number(\n Number($event.target.value).toFixed(0)\n ),\n })\n },\n },\n }),\n ]),\n ]\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./retirement-information-form.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./retirement-information-form.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./retirement-information-form.vue?vue&type=template&id=7ca45314&\"\nimport script from \"./retirement-information-form.vue?vue&type=script&lang=js&\"\nexport * from \"./retirement-information-form.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7ca45314')) {\n api.createRecord('7ca45314', component.options)\n } else {\n api.reload('7ca45314', component.options)\n }\n module.hot.accept(\"./retirement-information-form.vue?vue&type=template&id=7ca45314&\", function () {\n api.rerender('7ca45314', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/retirement-information/retirement-information-form.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./retirement-information.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./retirement-information.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./retirement-information.vue?vue&type=template&id=194015a6&scoped=true&\"\nimport script from \"./retirement-information.vue?vue&type=script&lang=js&\"\nexport * from \"./retirement-information.vue?vue&type=script&lang=js&\"\nimport style0 from \"./retirement-information.vue?vue&type=style&index=0&id=194015a6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"194015a6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('194015a6')) {\n api.createRecord('194015a6', component.options)\n } else {\n api.reload('194015a6', component.options)\n }\n module.hot.accept(\"./retirement-information.vue?vue&type=template&id=194015a6&scoped=true&\", function () {\n api.rerender('194015a6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/retirement-information/retirement-information.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [\n _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"h6\", [_vm._v(_vm._s(_vm.currentStep.title))]),\n ]),\n _vm._v(\" \"),\n _c(\"career-progression-table\"),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12 button-group\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-default\",\n attrs: { type: \"button\" },\n on: { click: _vm.setPreviousStep },\n },\n [\n _c(\"i\", { staticClass: \"fa fa-caret-left\" }),\n _vm._v(\"\\n Previous\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-lg btn-primary\",\n attrs: { type: \"button\", disabled: _vm.dutyDaysHasError },\n on: { click: _vm.setNextStep },\n },\n [\n _vm._v(\"\\n Continue\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _vm.errorMessages && _vm.errorMessages.length\n ? _c(\"message-panel\", {\n attrs: { mode: \"error\", messages: _vm.errorMessages },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.serviceMember.careerProgression.hi3PastYears &&\n _vm.serviceMember.careerProgression.hi3PastYears.length > 0\n ? _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12 table-wrapper\" }, [\n _c(\"div\", { staticClass: \"table-responsive\" }, [\n _c(\n \"table\",\n {\n staticClass:\n \"table table-striped table-condensed table-bordered\",\n },\n [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(\n _vm.serviceMember.careerProgression.hi3PastYears,\n function (hi3PastYear, index) {\n return _c(\"hi3-past-year\", {\n key: hi3PastYear.yearOfService,\n attrs: { hi3PastYear: hi3PastYear },\n on: {\n change: function (psy) {\n return _vm.onHi3PYChange(psy, index)\n },\n },\n })\n }\n ),\n 1\n ),\n ]\n ),\n ]),\n ]),\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12 table-wrapper\" }, [\n _c(\"div\", { staticClass: \"table-responsive\" }, [\n _c(\n \"table\",\n {\n staticClass:\n \"table table-striped table-condensed table-bordered\",\n },\n [\n _c(\"thead\", [\n _c(\"tr\", [\n _c(\n \"th\",\n {\n staticClass: \"table-title\",\n attrs: { colspan: _vm.hasRc ? 6 : 5 },\n },\n [_vm._v(\"Career Service\")]\n ),\n _vm._v(\" \"),\n _vm.hasRc\n ? _c(\n \"th\",\n {\n staticClass: \"table-title\",\n attrs: { colspan: \"3\" },\n },\n [_vm._v(\"Retirement Points\")]\n )\n : _vm._e(),\n ]),\n _vm._v(\" \"),\n _c(\n \"tr\",\n [\n _c(\"th\", [_vm._v(\"YOS\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Age\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Year\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Grade\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Override\")]),\n _vm._v(\" \"),\n _vm.hasRc\n ? [\n _c(\"th\", [_vm._v(\"Active Service\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Mbr\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Id Paid\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Id Non-Paid\")]),\n ]\n : _vm._e(),\n ],\n 2\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(\n _vm.serviceMember.careerProgression.careerService,\n function (careerServiceYear, index) {\n return _c(\"career-service-year\", {\n key: careerServiceYear.yearOfService,\n attrs: {\n careerServiceYear: careerServiceYear,\n hasRc: _vm.hasRc,\n },\n on: {\n rankChange: function (rank) {\n return _vm.onRankChange(rank, index)\n },\n activeDutyDaysChange: function (days) {\n return _vm.updateReserveComponent(\n \"activeDutyDays\",\n days,\n index\n )\n },\n inactiveDutyDaysPaidChange: function (days) {\n return _vm.updateReserveComponent(\n \"inactiveDutyDaysPaid\",\n days,\n index\n )\n },\n inactiveDutyDaysNonPaidChange: function (days) {\n return _vm.updateReserveComponent(\n \"inactiveDutyDaysNonPaid\",\n days,\n index\n )\n },\n onValidate: function (isValid) {\n return _vm.onValidate(isValid, index)\n },\n },\n })\n }\n ),\n 1\n ),\n ]\n ),\n ]),\n ]),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = [\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"thead\", [\n _c(\"tr\", [\n _c(\"th\", { staticClass: \"table-title\", attrs: { colspan: \"4\" } }, [\n _vm._v(\"Hi3 Past Year Grades\"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"th\", [_vm._v(\"YOS\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Age\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Year\")]),\n _vm._v(\" \"),\n _c(\"th\", [_vm._v(\"Grade\")]),\n ]),\n ])\n },\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"tr\", [\n _c(\"td\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.hi3PastYear.yearOfService)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.hi3PastYear.age)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.hi3PastYear.calendarYear)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.hi3PastYear.yearOfServiceRank },\n on: {\n change: function ($event) {\n return _vm.onRankChange($event.target.value)\n },\n },\n },\n _vm._l(_vm.hi3PastYear.overrideRanks, function (rank) {\n return _c(\"option\", { key: rank, domProps: { value: rank } }, [\n _vm._v(_vm._s(rank)),\n ])\n }),\n 0\n ),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-past-year.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-past-year.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hi3-past-year.vue?vue&type=template&id=245ff42c&scoped=true&\"\nimport script from \"./hi3-past-year.vue?vue&type=script&lang=js&\"\nexport * from \"./hi3-past-year.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hi3-past-year.vue?vue&type=style&index=0&id=245ff42c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"245ff42c\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('245ff42c')) {\n api.createRecord('245ff42c', component.options)\n } else {\n api.reload('245ff42c', component.options)\n }\n module.hot.accept(\"./hi3-past-year.vue?vue&type=template&id=245ff42c&scoped=true&\", function () {\n api.rerender('245ff42c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/career-progression/hi3-past-year.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"tr\",\n [\n _c(\"td\", [\n _c(\"div\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.careerServiceYear.yearOfService)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.careerServiceYear.age)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.careerServiceYear.calendarYear)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(_vm._s(_vm.careerServiceYear.suggestedRank)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\n \"select\",\n {\n staticClass: \"form-control input-sm\",\n domProps: { value: _vm.careerServiceYear.yearOfServiceRank },\n on: {\n change: function ($event) {\n return _vm.onRankChange($event.target.value)\n },\n },\n },\n _vm._l(_vm.careerServiceYear.overrideRanks, function (rank) {\n return _c(\"option\", { key: rank, domProps: { value: rank } }, [\n _vm._v(_vm._s(rank)),\n ])\n }),\n 0\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _vm.careerServiceYear.reserveComponent\n ? [\n _c(\"td\", [\n _c(\n \"div\",\n {\n staticClass: \"form-group\",\n class: {\n \"has-error\":\n !_vm.careerServiceYear.reserveComponent.isValid,\n },\n },\n [\n _c(\"input\", {\n staticClass: \"form-control input-sm\",\n attrs: { type: \"number\", min: \"0\" },\n domProps: {\n value:\n _vm.careerServiceYear.reserveComponent.activeDutyDays,\n },\n on: {\n input: function ($event) {\n _vm.onActiveDutyDaysChange(Number($event.target.value))\n },\n },\n }),\n ]\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"div\", { staticClass: \"plaintext-sm\" }, [\n _vm._v(\n _vm._s(\n _vm.careerServiceYear.reserveComponent.membershipPoints\n )\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\n \"div\",\n {\n staticClass: \"form-group\",\n class: {\n \"has-error\":\n !_vm.careerServiceYear.reserveComponent.isValid,\n },\n },\n [\n _c(\"input\", {\n staticClass: \"form-control input-sm\",\n attrs: { type: \"number\", min: \"0\" },\n domProps: {\n value:\n _vm.careerServiceYear.reserveComponent\n .inactiveDutyDaysPaid,\n },\n on: {\n input: function ($event) {\n _vm.onInactiveDutyDaysPaidChange(\n Number($event.target.value)\n )\n },\n },\n }),\n ]\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\n \"div\",\n {\n staticClass: \"form-group\",\n class: {\n \"has-error\":\n !_vm.careerServiceYear.reserveComponent.isValid,\n },\n },\n [\n _c(\"input\", {\n staticClass: \"form-control input-sm\",\n attrs: { type: \"number\", min: \"0\" },\n domProps: {\n value:\n _vm.careerServiceYear.reserveComponent\n .inactiveDutyDaysNonPaid,\n },\n on: {\n input: function ($event) {\n _vm.onInactiveDutyDaysNonPaidChange(\n Number($event.target.value)\n )\n },\n },\n }),\n ]\n ),\n ]),\n ]\n : _vm.hasRc\n ? [\n _c(\"td\"),\n _vm._v(\" \"),\n _c(\"td\"),\n _vm._v(\" \"),\n _c(\"td\"),\n _vm._v(\" \"),\n _c(\"td\"),\n ]\n : _vm._e(),\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-service-year.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-service-year.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./career-service-year.vue?vue&type=template&id=63de5153&scoped=true&\"\nimport script from \"./career-service-year.vue?vue&type=script&lang=js&\"\nexport * from \"./career-service-year.vue?vue&type=script&lang=js&\"\nimport style0 from \"./career-service-year.vue?vue&type=style&index=0&id=63de5153&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63de5153\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('63de5153')) {\n api.createRecord('63de5153', component.options)\n } else {\n api.reload('63de5153', component.options)\n }\n module.hot.accept(\"./career-service-year.vue?vue&type=template&id=63de5153&scoped=true&\", function () {\n api.rerender('63de5153', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/career-progression/career-service-year.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-progression-table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-progression-table.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./career-progression-table.vue?vue&type=template&id=590271ae&scoped=true&\"\nimport script from \"./career-progression-table.vue?vue&type=script&lang=js&\"\nexport * from \"./career-progression-table.vue?vue&type=script&lang=js&\"\nimport style0 from \"./career-progression-table.vue?vue&type=style&index=0&id=590271ae&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"590271ae\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('590271ae')) {\n api.createRecord('590271ae', component.options)\n } else {\n api.reload('590271ae', component.options)\n }\n module.hot.accept(\"./career-progression-table.vue?vue&type=template&id=590271ae&scoped=true&\", function () {\n api.rerender('590271ae', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/career-progression/career-progression-table.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-progression.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./career-progression.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./career-progression.vue?vue&type=template&id=aaa0a3a6&scoped=true&\"\nimport script from \"./career-progression.vue?vue&type=script&lang=js&\"\nexport * from \"./career-progression.vue?vue&type=script&lang=js&\"\nimport style0 from \"./career-progression.vue?vue&type=style&index=0&id=aaa0a3a6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aaa0a3a6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('aaa0a3a6')) {\n api.createRecord('aaa0a3a6', component.options)\n } else {\n api.reload('aaa0a3a6', component.options)\n }\n module.hot.accept(\"./career-progression.vue?vue&type=template&id=aaa0a3a6&scoped=true&\", function () {\n api.rerender('aaa0a3a6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/career-progression/career-progression.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _vm.currentStepAltMode === \"changeOptions\"\n ? _c(\"change-options\")\n : _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row button-row\" }, [\n _c(\"div\", { staticClass: \"col-sm-4 results-filter\" }, [\n _c(\"label\", [_vm._v(\"Dollars:\")]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"btn-group\" }, [\n _c(\n \"button\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.today,\n expression: \"tooltips.today\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"btn\",\n class: _vm.getFilterCss(\"today\"),\n attrs: { type: \"button\" },\n on: {\n click: function ($event) {\n return _vm.setFilter(\"today\")\n },\n },\n },\n [_vm._v(\"\\n Today's\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n directives: [\n {\n name: \"popover\",\n rawName: \"v-popover.hover\",\n value: _vm.tooltips.future,\n expression: \"tooltips.future\",\n modifiers: { hover: true },\n },\n ],\n staticClass: \"btn\",\n class: _vm.getFilterCss(\"future\"),\n attrs: { type: \"button\" },\n on: {\n click: function ($event) {\n return _vm.setFilter(\"future\")\n },\n },\n },\n [_vm._v(\"\\n Future\\n \")]\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-sm-8 results-actions\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary\",\n attrs: { type: \"button\" },\n on: { click: _vm.changeOptions },\n },\n [\n _c(\"i\", { staticClass: \"fa fa-caret-left\" }),\n _vm._v(\"\\n Change Options\\n \"),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary\",\n attrs: { type: \"button\" },\n on: { click: _vm.startOver },\n },\n [\n _vm._v(\"\\n Start Over\\n \"),\n _c(\"i\", { staticClass: \"fa fa-repeat\" }),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary\",\n attrs: { type: \"button\" },\n on: { click: _vm.showPrint },\n },\n [\n _vm._v(\"\\n Print\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row tab-row\" }, [\n _c(\"div\", { staticClass: \"col-xs-12\" }, [\n _c(\n \"ul\",\n { staticClass: \"nav nav-tabs hidden-xs\" },\n _vm._l(_vm.tabs, function (tab) {\n return _c(\n \"li\",\n {\n key: tab.key,\n class: { active: tab.key === _vm.activeTab },\n attrs: { role: tab.key },\n },\n [\n _c(\n \"a\",\n {\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setTab(tab.key)\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(tab.label) +\n \"\\n \"\n ),\n ]\n ),\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"nav-responsive visible-xs\" },\n [\n _c(\n \"dropdown\",\n [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-default\",\n attrs: { type: \"button\" },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.currentTab.label) +\n \"\\n \"\n ),\n _c(\"i\", { staticClass: \"fa fa-caret-down\" }),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"template\",\n { slot: \"dropdown\" },\n _vm._l(_vm.otherTabs, function (tab) {\n return _c(\"li\", { key: tab.key }, [\n _c(\n \"a\",\n {\n attrs: { href: \"#\" },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.setTab(tab.key)\n },\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(tab.label) +\n \"\\n \"\n ),\n ]\n ),\n ])\n }),\n 0\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-xs-12\" },\n [\n _vm.activeTab === \"overview\"\n ? _c(\"overview\", {\n attrs: { filter: _vm.filter },\n on: { onMounted: _vm.clearLoading },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.activeTab === \"tsp-summary\"\n ? _c(\"tsp-summary\", {\n attrs: { filter: _vm.filter },\n on: { onMounted: _vm.clearLoading },\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"all-payments\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.activeTab === \"all-payments\",\n expression: \"activeTab === 'all-payments'\",\n },\n ],\n attrs: { filter: _vm.filter },\n on: { onMounted: _vm.clearLoading },\n }),\n _vm._v(\" \"),\n _c(\"all-numbers\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.activeTab === \"all-numbers\",\n expression: \"activeTab === 'all-numbers'\",\n },\n ],\n on: { onMounted: _vm.clearLoading },\n }),\n ],\n 1\n ),\n ]),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12 chart-row\" },\n [\n _c(\"overview-chart\", {\n attrs: {\n value:\n _vm.filter === \"future\" ? _vm.futureOverview : _vm.todaysOverview,\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-6\" },\n [\n _c(\"overview-summary\", {\n attrs: {\n title: \"Total Retirement Benefit\",\n value:\n _vm.filter === \"future\"\n ? _vm.futureTotalRetirementBenefit\n : _vm.todaysTotalRetirementBenefit,\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-6\" },\n [\n _c(\"overview-summary\", {\n attrs: {\n title: \"Present Value*\",\n value:\n _vm.filter === \"future\"\n ? _vm.futurePresentValue\n : _vm.todaysPresentValue,\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-12\" },\n [\n _c(\"more-info\", {\n attrs: { moreInfo: _vm.moreInfo.overview },\n on: { click: _vm.moreInfoOpen },\n }),\n ],\n 1\n ),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./overview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./overview.vue?vue&type=template&id=ecb99f98&scoped=true&\"\nimport script from \"./overview.vue?vue&type=script&lang=js&\"\nexport * from \"./overview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./overview.vue?vue&type=style&index=0&id=ecb99f98&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ecb99f98\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ecb99f98')) {\n api.createRecord('ecb99f98', component.options)\n } else {\n api.reload('ecb99f98', component.options)\n }\n module.hot.accept(\"./overview.vue?vue&type=template&id=ecb99f98&scoped=true&\", function () {\n api.rerender('ecb99f98', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/overview/overview.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"tsp-summary-chart\", {\n attrs: {\n value:\n _vm.filter === \"future\"\n ? _vm.futureTspSummary\n : _vm.todaysTspSummary,\n },\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n This chart summarizes your TSP account based on the information you provided.\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"tsp-summary-table\", {\n attrs: {\n value:\n _vm.filter === \"future\"\n ? _vm.futureTspSummary\n : _vm.todaysTspSummary,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\"more-info\", {\n attrs: { moreInfo: _vm.moreInfo.tspSummary },\n on: { click: _vm.moreInfoOpen },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tsp-summary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tsp-summary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tsp-summary.vue?vue&type=template&id=8fa17a2c&\"\nimport script from \"./tsp-summary.vue?vue&type=script&lang=js&\"\nexport * from \"./tsp-summary.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('8fa17a2c')) {\n api.createRecord('8fa17a2c', component.options)\n } else {\n api.reload('8fa17a2c', component.options)\n }\n module.hot.accept(\"./tsp-summary.vue?vue&type=template&id=8fa17a2c&\", function () {\n api.rerender('8fa17a2c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/tsp-summary/tsp-summary.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"all-payments-table\", {\n attrs: {\n value:\n _vm.filter === \"future\"\n ? _vm.futureAllPayments\n : _vm.todaysAllPayments,\n },\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\"more-info\", {\n attrs: { moreInfo: _vm.moreInfo.allPayments },\n on: { click: _vm.moreInfoOpen },\n }),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-payments.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-payments.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./all-payments.vue?vue&type=template&id=6e005434&\"\nimport script from \"./all-payments.vue?vue&type=script&lang=js&\"\nexport * from \"./all-payments.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6e005434')) {\n api.createRecord('6e005434', component.options)\n } else {\n api.reload('6e005434', component.options)\n }\n module.hot.accept(\"./all-payments.vue?vue&type=template&id=6e005434&\", function () {\n api.rerender('6e005434', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/all-payments/all-payments.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"all-numbers\" } }, [\n _c(\"a\", { ref: \"blobAnchor\", staticClass: \"d-none\" }),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-info btn-sm\",\n attrs: { type: \"button\" },\n on: { click: _vm.exportToCsv },\n },\n [\n _vm._v(\"\\n Export All #'s (by month) Table\\n \"),\n _c(\"i\", { staticClass: \"fa fa-download\" }),\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"table-responsive\" }, [\n _c(\n \"table\",\n {\n staticClass:\n \"table table-striped table-bordered table-hover table-sm\",\n },\n [\n _c(\"thead\", { staticClass: \"thead-dark\" }, [\n _c(\n \"tr\",\n _vm._l(_vm.columns, function (col) {\n return _c(\n \"th\",\n {\n key: col.text,\n style: { \"min-width\": col.width || \"none\" },\n },\n [_vm._v(_vm._s(col.text))]\n )\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.careerByMonths, function (month) {\n return _c(\"tr\", { key: month.recordId }, [\n _c(\"td\", [_vm._v(_vm._s(month.recordId))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.calendar))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.ageByMonths))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.ageCompletedYears))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pebdService))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pebdPresent))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pebdCompleted))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pebdYOSCompleted))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.asdService))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.asdPresent))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.asdCompleted))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.asdYOSCompleted))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.suggestedRank))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.overrideRank))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.component))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.payAmountTodaysDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.payAmountFutureDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.currentPayAmountTodaysDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.currentPayAmountFutureDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pensionAmountTodaysDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pensionAmountFutureDollars))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.pensionColaGrowthRate))]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(\n month.tspServiceMemberContributionAmountTodaysDollars\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(\n month.tspServiceMemberContributionMonthlyTotalTodaysDollars\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspYearlyRunningTotalAmountTodaysDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspIrsYearlyCapLimitTodaysDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspServiceMemberBalanceNoGrowthTodaysDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspServiceMemberGrowthAmountTodaysDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspServiceMemberWithdrawalTodaysDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspServiceMemberBalanceTodaysDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(\n month.tspServiceMemberContributionAmountFutureDollars\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(\n month.tspServiceMemberContributionMonthlyTotalFutureDollars\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspYearlyRunningTotalAmountFutureDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspIrsYearlyCapLimitFutureDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspServiceMemberBalanceNoGrowthFutureDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(\n _vm._s(month.tspServiceMemberGrowthAmountFutureDollars)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspServiceMemberWithdrawalFutureDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _vm._v(_vm._s(month.tspServiceMemberBalanceFutureDollars)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.activeDutyDays))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.inactiveDutyDaysPaid))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.inactiveDutyDaysNonPaid))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.membershipPoints))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.payPoints))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.retirementPoints))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.serviceYearPoints))]),\n _vm._v(\" \"),\n _c(\"td\", [_vm._v(_vm._s(month.goodYear))]),\n ])\n }),\n 0\n ),\n ]\n ),\n ]),\n _vm._v(\" \"),\n _vm.serviceMember.currentComponent === \"reserve\" ||\n _vm.serviceMember.endingComponent === \"reserve\"\n ? _c(\"div\", [\n _c(\"div\", [\n _vm._v(\n \"\\n Active duty days (inferred): \" +\n _vm._s(\n _vm.serviceMember.results.reserveComponent\n .inferredActiveDutyDays\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n Good years (inferred): \" +\n _vm._s(\n _vm.serviceMember.results.reserveComponent.inferredGoodYears\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\n \"\\n Retirement point (inferred): \" +\n _vm._s(\n _vm.serviceMember.results.reserveComponent\n .inferredRetirementPoints\n ) +\n \"\\n \"\n ),\n ]),\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n _c(\"more-info\", {\n attrs: { moreInfo: _vm.moreInfo.allNumbers },\n on: { click: _vm.moreInfoOpen },\n }),\n ],\n 1\n ),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-numbers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-numbers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./all-numbers.vue?vue&type=template&id=26f51dd2&scoped=true&\"\nimport script from \"./all-numbers.vue?vue&type=script&lang=js&\"\nexport * from \"./all-numbers.vue?vue&type=script&lang=js&\"\nimport style0 from \"./all-numbers.vue?vue&type=style&index=0&id=26f51dd2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26f51dd2\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('26f51dd2')) {\n api.createRecord('26f51dd2', component.options)\n } else {\n api.reload('26f51dd2', component.options)\n }\n module.hot.accept(\"./all-numbers.vue?vue&type=template&id=26f51dd2&scoped=true&\", function () {\n api.rerender('26f51dd2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/all-numbers/all-numbers.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"step-container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"personal-information-form\"),\n _vm._v(\" \"),\n _c(\"hr\"),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [\n _vm._m(1),\n _vm._v(\" \"),\n _c(\"retirement-information-form\"),\n _vm._v(\" \"),\n _c(\"hr\"),\n ],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col-sm-12\" },\n [_vm._m(2), _vm._v(\" \"), _c(\"career-progression-table\")],\n 1\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-sm-12 buttons\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary\",\n attrs: { type: \"button\", disabled: !_vm.canContinue },\n on: { click: _vm.recalculate },\n },\n [\n _vm._v(\"\\n Recalculate\\n \"),\n _c(\"i\", { staticClass: \"fa fa-caret-right\" }),\n ]\n ),\n ]),\n ]),\n ])\n}\nvar staticRenderFns = [\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"div\", {\n staticClass:\n \"step-icon step-icon-active step-icon-active-personal-information\",\n }),\n _vm._v(\" \"),\n _c(\"h6\", [_vm._v(\"Personal Information\")]),\n ])\n },\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"div\", {\n staticClass:\n \"step-icon step-icon-active step-icon-active-retirement-information\",\n }),\n _vm._v(\" \"),\n _c(\"h6\", [_vm._v(\"Retirement Information\")]),\n ])\n },\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"title-container\" }, [\n _c(\"div\", {\n staticClass:\n \"step-icon step-icon-active step-icon-active-career-progression\",\n }),\n _vm._v(\" \"),\n _c(\"h6\", [_vm._v(\"Career Information\")]),\n ])\n },\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./change-options.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./change-options.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./change-options.vue?vue&type=template&id=09504998&scoped=true&\"\nimport script from \"./change-options.vue?vue&type=script&lang=js&\"\nexport * from \"./change-options.vue?vue&type=script&lang=js&\"\nimport style0 from \"./change-options.vue?vue&type=style&index=0&id=09504998&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09504998\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('09504998')) {\n api.createRecord('09504998', component.options)\n } else {\n api.reload('09504998', component.options)\n }\n module.hot.accept(\"./change-options.vue?vue&type=template&id=09504998&scoped=true&\", function () {\n api.rerender('09504998', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/change-options/change-options.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./results.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./results.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./results.vue?vue&type=template&id=5aac339b&scoped=true&\"\nimport script from \"./results.vue?vue&type=script&lang=js&\"\nexport * from \"./results.vue?vue&type=script&lang=js&\"\nimport style0 from \"./results.vue?vue&type=style&index=0&id=5aac339b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5aac339b\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5aac339b')) {\n api.createRecord('5aac339b', component.options)\n } else {\n api.reload('5aac339b', component.options)\n }\n module.hot.accept(\"./results.vue?vue&type=template&id=5aac339b&scoped=true&\", function () {\n api.rerender('5aac339b', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/results/results.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-wizard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-wizard.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./hi3-wizard.vue?vue&type=template&id=41b7d910&\"\nimport script from \"./hi3-wizard.vue?vue&type=script&lang=js&\"\nexport * from \"./hi3-wizard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hi3-wizard.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('41b7d910')) {\n api.createRecord('41b7d910', component.options)\n } else {\n api.reload('41b7d910', component.options)\n }\n module.hot.accept(\"./hi3-wizard.vue?vue&type=template&id=41b7d910&\", function () {\n api.rerender('41b7d910', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/hi3-wizard.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"h1\", [_vm._v(\"Hi-3\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n Information you entered about yourself, your career, and your retirement planning is shown in the summary below.\\n These inputs, and how they may impact your pension under the Hi-3 retirement plan, are explained in the following\\n graphs and charts. Additional resources can be found at the end of this summary. All amounts are shown in future dollars.\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"margin-top\" }, [\n _c(\"h1\", [_vm._v(\"Your Information\")]),\n _vm._v(\" \"),\n _c(\"h2\", [_vm._v(\"Personal Information\")]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"When were you born?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm._f(\"month\")(_vm.formData.bornDateMonth)) +\n \" \" +\n _vm._s(_vm.formData.bornDateYear)\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"What is your Pay Entry Base Date?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm._f(\"month\")(_vm.formData.payEntryBaseDateMonth)) +\n \" \" +\n _vm._s(_vm.formData.payEntryBaseDateYear)\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"What is your current grade?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.grade)),\n ]),\n ]),\n _vm._v(\" \"),\n _vm.showFor(\"ac2ac\", \"ac2rc\")\n ? [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"What is your Active Service Date?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"month\")(_vm.formData.activeServiceDateMonth)\n ) +\n \" \" +\n _vm._s(_vm.formData.activeServiceDateYear)\n ),\n ]),\n ]),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\n \"What is your estimate of service at separation or retirement?\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm.formData.retirementSTYears) +\n \" years \" +\n _vm._s(_vm.formData.retirementSTMonths) +\n \" months\"\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _vm.showFor(\"ac2rc\")\n ? [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"When do you plan to join the Reserve component?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm.formData.transferToRcYears) +\n \" years \" +\n _vm._s(_vm.formData.transferToRcMonths) +\n \" months\"\n ),\n ]),\n ]),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\")\n ? [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"When do you plan to join the Active component?\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm.formData.transferToAcYears) +\n \" years \" +\n _vm._s(_vm.formData.transferToAcMonths) +\n \" months\"\n ),\n ]),\n ]),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showFor(\"rc2ac\", \"rc2rc\")\n ? [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\n \"What is your total number of Active Service days to date?\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.activeServiceDays)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\n \"How many Qualifying Years towards retirement have you earned?\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.qualifyingYears)),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\n \"How many retirement points in total do you have to date?\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.retirementPoints)),\n ]),\n ]),\n ]\n : _vm._e(),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"h2\", [_vm._v(\"Retirement Information\")]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your life expectancy\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.lifeExpectancy) + \" years\"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your TSP withdrawal age\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm.formData.withdrawalAgeYears) +\n \" years \" +\n _vm._s(_vm.formData.withdrawalAgeMonths) +\n \" months\"\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your TSP contribution rate\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.contributionRate) + \"%\"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your TSP rate of return\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.growthRate) + \"%\"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your TSP rate of return at withdrawal\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(_vm._s(_vm.formData.withdrawalGrowthRate) + \"%\"),\n ]),\n ]),\n _vm._v(\" \"),\n _vm.showFor(\"ac2rc\", \"rc2ac\", \"rc2rc\")\n ? [\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\"Set your non-regular retirement pay age\"),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(_vm.formData.retirementAgeYears) +\n \" years \" +\n _vm._s(_vm.formData.retirementAgeMonths) +\n \" months\"\n ),\n ]),\n ]),\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\"span\", { staticClass: \"question\" }, [\n _vm._v(\n \"Set your TSP account balance from Service Member contributions\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"answer\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.formData.tspServiceMemberContribution,\n \"$\",\n 0\n )\n )\n ),\n ]),\n ]),\n ],\n 2\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"margin-top\" },\n [_c(\"overview-chart\", { attrs: { value: _vm.overview } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"margin-top row\" }, [\n _c(\"section\", { staticClass: \"col left\" }, [\n _c(\"h1\", [_vm._v(\"Total Retirement Package\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n '\\n The Hi-3 retirement plan also includes contributions you make to your own retirement.\\n \"Total Retirement Package\" includes the value of your own TSP contributions at the rate you\\n plan to invest compounded at the average annual percentage rate you projected, which is\\n shown in yellow.\\n '\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col left\" },\n [\n _vm._l(_vm.totalRetirementBenefit.items, function (item) {\n return _c(\n \"div\",\n {\n key: item.key,\n staticStyle: { border: \"solid 2px\", \"text-align\": \"right\" },\n style: { \"border-color\": item.bgColor },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm._f(\"currency\")(item.amount, \"$\", 0)) +\n \"\\n \"\n ),\n ]\n )\n }),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"h3\", { staticStyle: { \"text-align\": \"right\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"currency\")(\n _vm.totalRetirementBenefit.total,\n \"$\",\n 0\n )\n ) +\n \"\\n \"\n ),\n ]),\n ]),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col right\" },\n _vm._l(_vm.totalRetirementBenefit.items, function (item) {\n return _c(\n \"div\",\n { key: item.key, staticStyle: { padding: \"2px\" } },\n [_vm._v(\"\\n \" + _vm._s(item.label) + \"\\n \")]\n )\n }),\n 0\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"col right\" }, [\n _c(\"h1\", [_vm._v(\"Present Value\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n '\\n \"Present Value\" shows the sum of all future pension and TSP payments in the year you retire\\n or separate. To determine the present value, a \"discount rate\" is applied to each payment you\\n will receive in the future. Doing this removes future inflation. This discount is applied\\n annually, so that money in the future is less valuable than it will be to you in the year you\\n retire or separate. You may want to consult with a financial professional for assistance\\n understanding this comparison.\\n '\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\n \"div\",\n { staticClass: \"col left\" },\n [\n _vm._l(_vm.presentValue.items, function (item) {\n return _c(\n \"div\",\n {\n key: item.key,\n staticStyle: { border: \"solid 2px\", \"text-align\": \"right\" },\n style: { \"border-color\": item.bgColor },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm._f(\"currency\")(item.amount, \"$\", 0)) +\n \"\\n \"\n ),\n ]\n )\n }),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"h3\", { staticStyle: { \"text-align\": \"right\" } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"currency\")(_vm.presentValue.total, \"$\", 0)\n ) +\n \"\\n \"\n ),\n ]),\n ]),\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col right\" },\n _vm._l(_vm.presentValue.items, function (item) {\n return _c(\n \"div\",\n { key: item.key, staticStyle: { padding: \"2px\" } },\n [_vm._v(\"\\n \" + _vm._s(item.label) + \"\\n \")]\n )\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticStyle: { \"font-size\": \"0.6em\" } }, [\n _vm._v(\n \"\\n * Dollars represent the year in which you separate or begin to receive monthly retired pay.\\n \"\n ),\n ]),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"margin-top\" },\n [_c(\"tsp-summary-chart\", { attrs: { value: _vm.tspSummary } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"margin-top\" }, [\n _c(\"h1\", [_vm._v(\"TSP Summary\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n '\\n The \"Summary of the TSP Account Balance\" graph shows your approximate TSP account balance by calendar year by\\n the amounts you may have contributed to your TSP account. The \"TSP Summary\" table details the amounts you contribute\\n to your TSP account and the projected lifetime values of your TSP. The first column, \"Total Contribution\" shows\\n the amount that you will actually contribute to your account during your career, based on the TSP percentage\\n contribution you entered in the calculator. The second column, \"Max Account Value\" shows the maximum projected\\n value of your TSP account, based on the annual rate of return percentage you entered. This is the projected value\\n of your TSP account before you begin taking withdrawals during retirement. The final column, \"Annualized Payment\"\\n shows how much you will receive in retirement income from TSP if you were to withdraw an equal amount each year\\n from the age you indicated you would begin withdrawing (\"TSP Withdrawal Age\") through your estimated life expectancy age.\\n '\n ),\n ]),\n _vm._v(\" \"),\n _c(\"table\", [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"tbody\", [\n _c(\"tr\", [\n _c(\"td\", [_vm._v(\"Service Member TSP Contribution\")]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.serviceMember.totalContribution,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.serviceMember.maxAccountValue,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.serviceMember.annualizedPayment,\n \"$\",\n 0\n )\n )\n ),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"tr\", [\n _c(\"td\", [_vm._v(\"TSP Total\")]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.tspTotal.totalContribution,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.tspTotal.maxAccountValue,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n _vm.tspSummary.tspTotal.annualizedPayment,\n \"$\",\n 0\n )\n )\n ),\n ]),\n ]),\n ]),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"margin-top\" }, [\n _c(\"h1\", [_vm._v(\"All Payments\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n This table estimates the annual military basic pay you will receive, the TSP contributions you may make from\\n your basic pay, the pension you would receive under the Hi-3 retirement plan, and the TSP payouts you would receive.\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"table\",\n { staticClass: \"table table-condensed table-bordered table-hover\" },\n [\n _c(\"thead\", [\n _c(\n \"tr\",\n _vm._l(_vm.allPayments.columnHeadings, function (heading) {\n return _c(\"th\", { key: heading, staticClass: \"text-center\" }, [\n _vm._v(_vm._s(heading)),\n ])\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.allPayments.data, function (item) {\n return _c(\"tr\", { key: item.year }, [\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(_vm._s(item.calendarYear)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(_vm._s(item.payGrade)),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(_vm._s(_vm._f(\"currency\")(item.militaryPay, \"$\", 0))),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n item.serviceMemberTspContribution,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(item.pensionPaymentAmount, \"$\", 0)\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(\n _vm._s(\n _vm._f(\"currency\")(\n item.tspServiceMemberPaymentAmount,\n \"$\",\n 0\n )\n )\n ),\n ]),\n _vm._v(\" \"),\n _c(\"td\", { staticClass: \"text-center\" }, [\n _vm._v(_vm._s(_vm._f(\"currency\")(item.pensionTotal, \"$\", 0))),\n ]),\n ])\n }),\n 0\n ),\n ]\n ),\n ]),\n _vm._v(\" \"),\n _vm._m(1),\n ])\n}\nvar staticRenderFns = [\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"thead\", [\n _c(\"tr\", [\n _c(\"th\"),\n _vm._v(\" \"),\n _c(\"th\", { staticClass: \"text-center\" }, [\n _vm._v(\"Total Contribution\"),\n ]),\n _vm._v(\" \"),\n _c(\"th\", { staticClass: \"text-center\" }, [_vm._v(\"Max Account Value\")]),\n _vm._v(\" \"),\n _c(\"th\", { staticClass: \"text-center\" }, [\n _vm._v(\"Annualized Payment\"),\n ]),\n ]),\n ])\n },\n function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"section\", { staticClass: \"margin-top\" }, [\n _c(\"h1\", [_vm._v(\"Summary\")]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"There are many factors you should consider in the Hi-3 retirement plan. Some of these factors include:\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"How likely are you to serve for a full career of at least 20 years?\"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n Do you prefer investments with the potential for higher returns even if there is greater risk, or are you more\\n comfortable with conservative investments?\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\"Other on-line resources such as \"),\n _c(\"a\", { attrs: { href: \"#\" } }, [\n _vm._v(\"https://www.tsp.gov/index.html\"),\n ]),\n _vm._v(\" offer information on investing.\"),\n ]),\n ])\n },\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-print.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hi3-print.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hi3-print.vue?vue&type=template&id=916de9a0&\"\nimport script from \"./hi3-print.vue?vue&type=script&lang=js&\"\nexport * from \"./hi3-print.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"e:\\\\Jenkins\\\\workspace\\\\yCalculatorsMVC_release-06.09.07\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('916de9a0')) {\n api.createRecord('916de9a0', component.options)\n } else {\n api.reload('916de9a0', component.options)\n }\n module.hot.accept(\"./hi3-print.vue?vue&type=template&id=916de9a0&\", function () {\n api.rerender('916de9a0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"Source/js/routes/hi3/hi3-print.vue\"\nexport default component.exports","import 'core-js/features/promise';\r\nimport Vue from 'vue';\r\nimport VueToast from 'vue-toast-notification';\r\nimport Vue2Filters from 'vue2-filters';\r\n\r\nimport '@/js/utilities/assign-polyfill';\r\nimport EventBus from '@/js/utilities/event-bus';\r\nimport { getMilitaryPayCalculatorConfig } from '@/js/api/calculator';\r\n\r\nimport 'vue-toast-notification/dist/index.css';\r\n\r\nimport '@/styles/main.scss';\r\nimport '@/styles/calculator.scss';\r\n\r\nimport createStore from './store';\r\nimport Hi3Wizard from './hi3-wizard';\r\nimport Hi3Print from './hi3-print';\r\n\r\nVue.use(VueToast, {\r\n position: 'top',\r\n duration: 5000,\r\n});\r\n\r\nVue.use(Vue2Filters);\r\n\r\nVue.config.productionTip = false;\r\n\r\n/**\r\n * mounts application to document\r\n * @param {*} preloadedState\r\n * @param {*} scripts\r\n */\r\nexport async function mount(preloadedState, scripts) {\r\n const config = await getMilitaryPayCalculatorConfig();\r\n const store = createStore(preloadedState, false, config);\r\n\r\n /* eslint-disable no-new */\r\n new Vue({\r\n el: '#app',\r\n store,\r\n render: (h) => h(Hi3Wizard),\r\n });\r\n\r\n EventBus.$on('print', (filter) => {\r\n const w = window.open();\r\n\r\n w.document.write(''\r\n + ''\r\n + 'Print - Military Pay Calc'\r\n + ''\r\n + ''\r\n + '
');\r\n scripts.forEach((s) => {\r\n w.document.write(``);\r\n });\r\n w.document.write('');\r\n w.document.write('');\r\n\r\n w.postMessage({ state: store.state, filter }, window.location.origin); // NOSONAR\r\n });\r\n}\r\n\r\nexport function mountPopup(e) {\r\n if (e.data) {\r\n const store = createStore(e.data.state, true);\r\n\r\n /* eslint-disable no-new */\r\n new Vue({\r\n el: '#app',\r\n store,\r\n render: (h) => h(Hi3Print, {\r\n props: {\r\n filter: e.data.filter,\r\n },\r\n }),\r\n });\r\n }\r\n}\r\n","import moment from 'moment';\r\nimport { sumBy, toNumber, isUndefined } from 'lodash';\r\nimport { computeCareerServiceBonusTodaysDollars, computeCareerServiceBonusFutureDollars } from '@/js/routes/redux/store/utilities/reduxAllNumbersHelpers';\r\nimport { computeContinuationPayTodaysDollars, computeContinuationPayFutureDollars } from '@/js/routes/brs/store/utilities/brsAllNumbersHelpers';\r\nimport { getRcActiveDutyServiceTime } from '@/js/store/calculator/utilities/reserveComponentHelpers';\r\n\r\n// ****************************************************************************************************\r\n// Aggregate common data for each month of a service member's career.\r\n// ****************************************************************************************************\r\nfunction getCommonAllNumbersByMonthFromRunDateToDeathDate(serviceMember) {\r\n const rundate = serviceMember.rundate();\r\n const retSepDate = serviceMember.retSepDate();\r\n const allNumbersByMonth = [];\r\n\r\n serviceMember.results.allNumbersByMonth.forEach((month) => {\r\n const calendarYear = Number(month.calendarYear);\r\n const calendarMonth = Number(month.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n if (calendarDate.isBefore(rundate)) return;\r\n\r\n const allNumbersData = {};\r\n allNumbersData.recordId = month.recordId;\r\n\r\n allNumbersData.calendarYear = month.calendarYear;\r\n allNumbersData.calendarMonth = month.calendarMonth;\r\n allNumbersData.calendarMonthAbbreviation = month.calendarMonthAbbreviation;\r\n\r\n allNumbersData.ageYears = month.ageYears;\r\n allNumbersData.ageMonths = month.ageMonths;\r\n allNumbersData.ageCompletedYears = month.ageCompletedYears;\r\n\r\n // Only include fields while in service.\r\n if (calendarDate.isSameOrBefore(retSepDate)) {\r\n allNumbersData.pebdServiceYear = month.pebdServiceYear;\r\n allNumbersData.pebdServiceMonth = month.pebdServiceMonth;\r\n allNumbersData.pebdPresentServiceYear = month.pebdPresentServiceYear;\r\n allNumbersData.pebdPresentServiceMonth = month.pebdPresentServiceMonth;\r\n allNumbersData.pebdCompletedServiceYear = month.pebdCompletedServiceYear;\r\n allNumbersData.pebdCompletedServiceMonth = month.pebdCompletedServiceMonth;\r\n allNumbersData.pebdCompletedServiceYears = month.pebdCompletedServiceYears;\r\n\r\n allNumbersData.asdServiceYear = month.asdServiceYear;\r\n allNumbersData.asdServiceMonth = month.asdServiceMonth;\r\n allNumbersData.asdPresentServiceYear = month.asdPresentServiceYear;\r\n allNumbersData.asdPresentServiceMonth = month.asdPresentServiceMonth;\r\n allNumbersData.asdCompletedServiceYear = month.asdCompletedServiceYear;\r\n allNumbersData.asdCompletedServiceMonth = month.asdCompletedServiceMonth;\r\n allNumbersData.asdCompletedServiceYears = month.asdCompletedServiceYears;\r\n\r\n allNumbersData.suggestedRank = month.suggestedRank;\r\n allNumbersData.overrideRank = month.overrideRank;\r\n\r\n allNumbersData.component = month.component;\r\n }\r\n\r\n allNumbersByMonth.push(allNumbersData);\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add a unique numeric ID to each record in the array.\r\n// ****************************************************************************************************\r\nfunction addRecordId(careerMonths, serviceMember) {\r\n const numberOfMonthsInLife = serviceMember.numberOfMonthsInLife();\r\n\r\n for (let recordId = 1; recordId <= numberOfMonthsInLife; recordId += 1) {\r\n careerMonths.push({\r\n recordId,\r\n });\r\n }\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the calendar year/month to each record in the array starting at the service member's\r\n// date of birth and ending at the death date.\r\n// ****************************************************************************************************\r\nfunction addCalendarYearMonth(careerMonths, dob) {\r\n let year = dob.year();\r\n let month = dob.month() + 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n careerMonth.calendarYear = year;\r\n careerMonth.calendarMonth = month;\r\n careerMonth.calendarMonthAbbreviation = moment([year, month - 1, 1]).format('MMM');\r\n\r\n if (month === 12) {\r\n year += 1;\r\n month = 1;\r\n } else {\r\n month += 1;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the service member's monthly age to each record in the array.\r\n// ****************************************************************************************************\r\nfunction addAge(careerMonths) {\r\n let years = 0;\r\n let months = 0;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n careerMonth.ageYears = years;\r\n careerMonth.ageMonths = months;\r\n\r\n if (months === 11) {\r\n years += 1;\r\n months = 0;\r\n } else {\r\n months += 1;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the service member's present age starting at 1y1m old.\r\n// ****************************************************************************************************\r\nfunction addAgePresentYears(careerMonths) {\r\n let presentAgeYear = 1;\r\n let presentAgeMonth = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n careerMonth.agePresentYear = presentAgeYear;\r\n careerMonth.agePresentMonth = presentAgeMonth;\r\n\r\n if (presentAgeMonth === 12) {\r\n presentAgeYear += 1;\r\n presentAgeMonth = 1;\r\n } else {\r\n presentAgeMonth += 1;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the service member's yearly age at each date of birth month.\r\n// ****************************************************************************************************\r\nfunction addAgeCompletedYears(careerMonths) {\r\n careerMonths.forEach((careerMonth) => {\r\n careerMonth.ageCompletedYears = -1;\r\n if (careerMonth.ageYears > 0 && careerMonth.ageMonths === 0) {\r\n careerMonth.ageCompletedYears = careerMonth.ageYears;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Pay Entry Base Date (PEBD) ~ when the service member joined the service.\r\n// Add the service member's service year/month to each record in the array.\r\n//\r\n// The common nomenclature for when service member's speak about their career is to state\r\n// \"I am currently in my 1st year of service, 2nd month\". The equates to service year \"1Y2M\"\r\n// This actually translates to being the service member being in their 2nd month of duty having\r\n// completed 0 years and only 1 month.\r\n// ****************************************************************************************************\r\nfunction addPebdServiceYearsAndMonths(careerMonths, pebd, retSepDate) {\r\n let serviceYear = 1;\r\n let serviceMonth = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.pebdServiceYear = -1;\r\n careerMonth.pebdServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.pebdServiceYear = serviceYear;\r\n careerMonth.pebdServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 12) {\r\n serviceYear += 1;\r\n serviceMonth = 1;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Pay Entry Base Date (PEBD) ~ when the service member joined the service.\r\n// Add the service member's present service year/month to each record in the array.\r\n//\r\n// This translates to the service member's completed years of service and the current month of duty.\r\n// 2Y4M translates to the service member having completed 2 years of service and currently in their\r\n// 4th month of duty. But they have not completed the 4th month of duty yet.\r\n// ****************************************************************************************************\r\nfunction addPebdPresentServiceYearsAndMonths(careerMonths, pebd, retSepDate) {\r\n let serviceYear = 0;\r\n let serviceMonth = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.pebdPresentServiceYear = -1;\r\n careerMonth.pebdPresentServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.pebdPresentServiceYear = serviceYear;\r\n careerMonth.pebdPresentServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 12) {\r\n serviceYear += 1;\r\n serviceMonth = 1;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Pay Entry Base Date (PEBD) ~ when the service member joined the service.\r\n// Add the service member's current service year/month to each record in the array.\r\n//\r\n// This translates to the service member's completed years and months of service.\r\n// 2Y4M translates to the service member having completed 2 years and 4 months of duty.\r\n// ****************************************************************************************************\r\nfunction addPebdCompletedServiceYearsAndMonths(careerMonths, pebd, retSepDate) {\r\n let serviceYear = 0;\r\n let serviceMonth = 0;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.pebdCompletedServiceYear = -1;\r\n careerMonth.pebdCompletedServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.pebdCompletedServiceYear = serviceYear;\r\n careerMonth.pebdCompletedServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 11) {\r\n serviceYear += 1;\r\n serviceMonth = 0;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Pay Entry Base Date (PEBD) ~ when the service member joined the service.\r\n// Add the service member's completed service years. 12 months of completed duty = 1 service year.\r\n//\r\n// This translates to the service member's completed years of service.\r\n// 3Y translates to the service member completing a full 3 years (or 36 months) of service.\r\n// Completed service years are recognized on the service member's PEBD month.\r\n// ****************************************************************************************************\r\nfunction addPebdCompletedServiceYears(careerMonths, pebd, retSepDate) {\r\n let serviceYear = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.pebdCompletedServiceYears = 0;\r\n if (calendarDate.isAfter(pebd) && calendarDate.isSameOrBefore(retSepDate) && calendarMonth === pebd.month() + 1) {\r\n careerMonth.pebdCompletedServiceYears = serviceYear;\r\n serviceYear += 1;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Active Service Date (ASD) ~ offset from PEBD when the service member commences active duty.\r\n// Add the service member's service year/month to each record in the array.\r\n//\r\n// The common nomenclature for when service member's speak about their career is to state\r\n// \"I am currently in my 1st year of service, 2nd month\". The equates to service year \"1Y2M\"\r\n// This actually translates to being the service member being in their 2nd month of duty having\r\n// completed 0 years and only 1 month.\r\n// ****************************************************************************************************\r\nfunction addAsdServiceYearsAndMonths(careerMonths, asd, retSepDate) {\r\n let serviceYear = 1;\r\n let serviceMonth = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.asdServiceYear = -1;\r\n careerMonth.asdServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(asd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.asdServiceYear = serviceYear;\r\n careerMonth.asdServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 12) {\r\n serviceYear += 1;\r\n serviceMonth = 1;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Active Date (ASD) ~ offset from PEBD when the service member commences active duty.\r\n// Add the service member's present service year/month to each record in the array.\r\n//\r\n// This translates to the service member's completed years of service and the current month of duty.\r\n// 2Y4M translates to the service member having completed 2 years of service and currently in their\r\n// 4th month of duty. But they have not completed the 4th month of duty yet.\r\n// ****************************************************************************************************\r\nfunction addAsdPresentServiceYearsAndMonths(careerMonths, asd, retSepDate) {\r\n let serviceYear = 0;\r\n let serviceMonth = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.asdPresentServiceYear = -1;\r\n careerMonth.asdPresentServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(asd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.asdPresentServiceYear = serviceYear;\r\n careerMonth.asdPresentServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 12) {\r\n serviceYear += 1;\r\n serviceMonth = 1;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Active Service Date (ASD) ~ offset from PEBD when the service member commences active duty.\r\n// Add the service member's current service year/month to each record in the array.\r\n//\r\n// This translates to the service member's completed years and months of service.\r\n// 2Y4M translates to the service member having completed 2 years and 4 months of duty.\r\n// ****************************************************************************************************\r\nfunction addAsdCompletedServiceYearsAndMonths(careerMonths, asd, retSepDate) {\r\n let serviceYear = 0;\r\n let serviceMonth = 0;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.asdCompletedServiceYear = -1;\r\n careerMonth.asdCompletedServiceMonth = -1;\r\n if (calendarDate.isSameOrAfter(asd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n careerMonth.asdCompletedServiceYear = serviceYear;\r\n careerMonth.asdCompletedServiceMonth = serviceMonth;\r\n\r\n if (serviceMonth === 11) {\r\n serviceYear += 1;\r\n serviceMonth = 0;\r\n } else {\r\n serviceMonth += 1;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Active Service Date (ASD) ~ offset from PEBD when the service member commences active duty.\r\n// Add the service member's completed active service years. 12 months of completed duty = 1\r\n// service year.\r\n//\r\n// This translates to the service member's completed years of service.\r\n// 3Y translates to the service member completing a full 3 years (or 36 months) of service.\r\n// Completed service years are recognized on the service member's ASD month.\r\n// ****************************************************************************************************\r\nfunction addAsdCompletedServiceYears(careerMonths, asd, retSepDate) {\r\n let serviceYear = 1;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.asdCompletedServiceYears = 0;\r\n if (calendarDate.isAfter(asd) && calendarDate.isSameOrBefore(retSepDate) && calendarMonth === asd.month() + 1) {\r\n careerMonth.asdCompletedServiceYears = serviceYear;\r\n serviceYear += 1;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the suggested rank based on year of service (YOS) completed.\r\n//\r\n// Based on the GlobalSettings-->CareerProgression and the service member's YOS completed,\r\n// add the associated rank the service member \"should\" currently possess. This is the government's\r\n// suggestive career path for a service member and determines if the service member is\r\n// under performing, on track or over performing.\r\n// ****************************************************************************************************\r\nfunction addSuggestedCareerProgression(careerMonths, serviceMember, pebd, retSepDate) {\r\n const pebdPlus6Months = moment(pebd).add(5, 'months');\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.suggestedRank = '';\r\n\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(pebdPlus6Months)) {\r\n careerMonth.suggestedRank = 'E-1';\r\n } else {\r\n careerMonth.suggestedRank = serviceMember.yearOfServiceSuggestedRank(Number(careerMonth.pebdServiceYear));\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\nfunction addOverrideCareerProgression(careerMonths, serviceMember, rundate, pebd, retSepDate) {\r\n if (serviceMember.isEligibleForRetirementPension()) {\r\n // If less than 36 months remain in service member's career, populate past calendar months to ensure we obtain 36 months.\r\n if (serviceMember.numberOfMonthsRemainingInServiceCareer() < 36 && serviceMember.careerProgression.hi3PastYears && serviceMember.careerProgression.hi3PastYears.length > 0) {\r\n // Retrieve the last year of service in the career progression array. May need to know what the override grade is for past months in the current run date year.\r\n const objCareerProgressionLastYearOfService = serviceMember.careerProgression.careerService[serviceMember.careerProgression.careerService.length - 1];\r\n\r\n serviceMember.careerProgression.hi3PastYears.forEach((hi3PastYear) => {\r\n let yearOfServiceCareerMonths = careerMonths.filter((o) => o.pebdServiceYear === hi3PastYear.yearOfService);\r\n\r\n // The service member is allowed to change their pay grade for the beginning of the current run date year up to one month before the run date.\r\n if (hi3PastYear.calendarYear === rundate.year()) {\r\n yearOfServiceCareerMonths = yearOfServiceCareerMonths.filter((o) => o.calendarMonth < rundate.month() + 1);\r\n }\r\n\r\n yearOfServiceCareerMonths.forEach((yearOfServiceCareerMonth) => {\r\n yearOfServiceCareerMonth.overrideRank = hi3PastYear.yearOfServiceRank;\r\n\r\n // The service year in the current date may be split among different ranks.\r\n if (yearOfServiceCareerMonth.calendarYear === rundate.year()) {\r\n if (yearOfServiceCareerMonth.calendarMonth >= pebd.month() + 1) {\r\n yearOfServiceCareerMonth.overrideRank = objCareerProgressionLastYearOfService.yearOfServiceRank;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n // Populate override rank from run date through ret/sep date.\r\n const pebdPlus6Months = moment(pebd).add(5, 'months');\r\n const pebdPlus12Months = moment(pebd).add(11, 'months');\r\n\r\n // Get run date override rank from Career Progression.\r\n let objCareerService = serviceMember.careerProgression.careerService.find((o) => o.calendarYear === rundate.year());\r\n\r\n // For scenarios where the service member's last month in service is in the run date year and the PEBD month has not yet passed,\r\n // need to pull the rank from the last year of service in Career Progression.\r\n if (!objCareerService) {\r\n objCareerService = serviceMember.careerProgression.careerService.find((o) => o.calendarYear == retSepDate.year() - 1);\r\n }\r\n\r\n let { yearOfServiceRank } = objCareerService;\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n if (calendarDate.isSameOrAfter(rundate) && calendarDate.isSameOrBefore(retSepDate)) {\r\n if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(pebdPlus6Months)) {\r\n yearOfServiceRank = 'E-1';\r\n } else if (serviceMember.currentRank === 'E-1' && calendarDate.isAfter(pebdPlus6Months) && calendarDate.isSameOrBefore(pebdPlus12Months)) {\r\n yearOfServiceRank = 'E-2';\r\n }\r\n\r\n // Service members are promotoed on their PEBD month.\r\n if (calendarMonth === pebd.month() + 1) {\r\n // Get override rank from Career Progression based on calendar year.\r\n objCareerService = serviceMember.careerProgression.careerService.find((o) => o.calendarYear === calendarDate.year());\r\n\r\n // If the last service year is split between two (2) calendar years, the retSep year will NOT be displayed in\r\n // Career Progression. Ensure the retSep calendar year months are set to the rank from the first month of the retSep service year.\r\n if (!objCareerService) {\r\n objCareerService = serviceMember.careerProgression.careerService[serviceMember.careerProgression.careerService.length - 1];\r\n }\r\n\r\n ({ yearOfServiceRank } = objCareerService);\r\n }\r\n\r\n careerMonth.overrideRank = yearOfServiceRank;\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the suggested rank based on year of service (YOS) completed.\r\n//\r\n// Based on the GlobalSettings-->CareerProgression and the service member's YOS completed,\r\n// add the associated rank the service member \"should\" currently possess. This is the government's\r\n// suggestive career path for a service member and determines if the service member is\r\n// under performing, on track or over performing.\r\n// ****************************************************************************************************\r\nfunction addComponent(careerMonths, serviceMember, pebd, retSepDate) {\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.component = '';\r\n\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n if (serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.AC_2_AC) {\r\n careerMonth.component = 'AC';\r\n } else if (serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.AC_2_RC) {\r\n careerMonth.component = 'AC';\r\n if (calendarDate.isSameOrAfter(serviceMember.transferToReserveComponentDate())) {\r\n careerMonth.component = 'RC';\r\n }\r\n } else if (serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.RC_2_AC) {\r\n careerMonth.component = 'RC';\r\n if (calendarDate.isSameOrAfter(serviceMember.transferToActiveComponentDate())) {\r\n careerMonth.component = 'AC';\r\n }\r\n } else if (serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.RC_2_RC) {\r\n careerMonth.component = 'RC';\r\n } else {\r\n careerMonth.component = 'error';\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\nexport function getPayTableMonthlyPay(payTables, payTableFilename, payGrade, rank, pebdserviceYear) {\r\n let payTableServiceYear = -1;\r\n\r\n if (pebdserviceYear < 2) payTableServiceYear = 'Under 2';\r\n if (pebdserviceYear >= 2) payTableServiceYear = 2;\r\n if (pebdserviceYear >= 3) payTableServiceYear = 3;\r\n if (pebdserviceYear >= 4) payTableServiceYear = 4;\r\n if (pebdserviceYear >= 6) payTableServiceYear = 6;\r\n if (pebdserviceYear >= 8) payTableServiceYear = 8;\r\n if (pebdserviceYear >= 10) payTableServiceYear = 10;\r\n if (pebdserviceYear >= 12) payTableServiceYear = 12;\r\n if (pebdserviceYear >= 14) payTableServiceYear = 14;\r\n if (pebdserviceYear >= 16) payTableServiceYear = 16;\r\n if (pebdserviceYear >= 18) payTableServiceYear = 18;\r\n if (pebdserviceYear >= 20) payTableServiceYear = 20;\r\n if (pebdserviceYear >= 22) payTableServiceYear = 22;\r\n if (pebdserviceYear >= 24) payTableServiceYear = 24;\r\n if (pebdserviceYear >= 26) payTableServiceYear = 26;\r\n if (pebdserviceYear >= 28) payTableServiceYear = 28;\r\n if (pebdserviceYear >= 30) payTableServiceYear = 30;\r\n if (pebdserviceYear >= 32) payTableServiceYear = 32;\r\n if (pebdserviceYear >= 34) payTableServiceYear = 34;\r\n if (pebdserviceYear >= 36) payTableServiceYear = 36;\r\n if (pebdserviceYear >= 38) payTableServiceYear = 38;\r\n if (pebdserviceYear >= 40) payTableServiceYear = 40;\r\n\r\n return payTables[payTableFilename][payGrade][rank][payTableServiceYear];\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the current monthly pay amount (Today's $) to each record in the array based on years of\r\n// service completed and rank.\r\n//\r\n// For records prior to the run date year/month, the GlobalSettings-->PayTables are utilized. If\r\n// the year/month are older than the oldest pay table, the oldest pay table is utilized.\r\n//\r\n// The current monthly pay amount (Today's $) is based on the years of completed service and rank.\r\n// ****************************************************************************************************\r\nfunction addPayAmountTodaysDollars(careerMonths, serviceMember, rundate, pebd, retSepDate) {\r\n const { payTables } = serviceMember;\r\n const pebdPlus3Months = moment(pebd).add(2, 'months');\r\n const pebdPlus4Months = moment(pebd).add(3, 'months');\r\n const pebdPlus6Months = moment(pebd).add(5, 'months');\r\n let rank = '';\r\n let pebdserviceYear = 0;\r\n let payGrade = '';\r\n\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // When a non-regular retirement pension is being implemented, the \"Pay Todays $\" must be projected thru the month before the first tsp payout.\r\n // When a regular retirement pension is begin implemented, only need record up to and including the retSep date. But don't know what the\r\n // retirement type is at this point, so just extend the pay amounts out to 1 month prior to TSP being paid out.\r\n const endDate = moment(serviceMember.tspWithdrawalDate()).subtract(1, 'months');\r\n\r\n careerMonth.payAmountTodaysDollars = 0;\r\n if (calendarDate.isSameOrAfter(rundate) && calendarDate.isSameOrBefore(endDate)) {\r\n // Determine rank based on the calendar date.\r\n // 1. If the calendar date is within the 1st three months of career, make E-1<4 (in boot camp, lower pay than regular E-1 rank).\r\n // 2. if the calendar date is within month 4 thru 6, make E-1 (pay increase from completing boot camp).\r\n // 3. After retSepDate, rank will retain to the last rank obtained while in service (required to determine TSP payment for non-regular retirement).\r\n if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(pebdPlus3Months)) {\r\n rank = 'E-1<4';\r\n } else if (serviceMember.currentRank === 'E-1' && calendarDate.isSameOrAfter(pebdPlus4Months) && calendarDate.isSameOrBefore(pebdPlus6Months)) {\r\n rank = 'E-1';\r\n } else if (calendarDate.isSameOrAfter(rundate) && calendarDate.isSameOrBefore(retSepDate)) {\r\n rank = careerMonth.overrideRank;\r\n }\r\n\r\n pebdserviceYear = calendarDate.isSameOrBefore(retSepDate) ? careerMonth.pebdServiceYear : pebdserviceYear;\r\n\r\n // Non-regular retirement requires the 'Pay Today/Future $' to be projected up to 1 month prior to the non-regular retirement withdrawal age.\r\n pebdserviceYear = (calendarDate.isAfter(retSepDate) && calendarMonth === pebd.month() + 1) ? pebdserviceYear + 1 : pebdserviceYear;\r\n\r\n payGrade = calendarDate.isSameOrBefore(retSepDate) ? serviceMember.currentPayGrade(rank) : payGrade;\r\n\r\n let yearsDifferenceCalendarDateFromRundate = calendarYear > rundate.year() ? 0 : rundate.year() - calendarYear;\r\n yearsDifferenceCalendarDateFromRundate = yearsDifferenceCalendarDateFromRundate > 3 ? 3 : yearsDifferenceCalendarDateFromRundate; // 3 years in past is max.\r\n const payTableFilename = `runDateMinus${yearsDifferenceCalendarDateFromRundate}${(yearsDifferenceCalendarDateFromRundate === 1 ? 'Year' : 'Years')}`;\r\n\r\n careerMonth.payAmountTodaysDollars = getPayTableMonthlyPay(payTables, payTableFilename, payGrade, rank, pebdserviceYear);\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Add the current monthly pay amount (Future $) to each record in the array.\r\n//\r\n// For records equal to the run date year, the pay amount is equal to the today's dollar pay amount.\r\n//\r\n// For records greater than the run date year, the associated GlobalSettings-->PayTableGrowthRate\r\n// multiplier is used.\r\n// Example:\r\n// 1. Run date year is 2020\r\n// 2. Future dollay current pay amount = today's current pay amount.\r\n// 3. In 2021, the current pay amount (Today's $) is multiplied/added by\r\n// GlobalSettings-->PayTableGrowthRates-->Year1.\r\n// 4. In 2022, the current pay amount (Today's $) is multiplied/added by\r\n// GlobalSettings-->PayTableGrowthRates-->Year1 as well ass\r\n// GlobalSettings-->PayTableGrowthRates-- > Year2.\r\n// ****************************************************************************************************\r\nfunction addPayAmountFutureDollars(careerMonths, serviceMember, rundate) {\r\n const payTableGrowthRateYear1 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year1) / 100 + 1;\r\n const payTableGrowthRateYear2 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year2) / 100 + 1;\r\n const payTableGrowthRateYear3 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year3) / 100 + 1;\r\n const payTableGrowthRateYear4 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year4) / 100 + 1;\r\n const payTableGrowthRateYear5 = toNumber(serviceMember.globalSettings.payTableGrowthRates.year5) / 100 + 1;\r\n\r\n for (let index = 0; index <= careerMonths.length - 1; index += 1) {\r\n const careerMonth = careerMonths[index];\r\n\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // When a non-regular retirement pension is being implemented, the \"Pay Future $\" must be projected thru the month before the first tsp payout.\r\n // When a regular retirement pension is begin implemented, only need record up to and including the retSep date. But don't know what the\r\n // retirement type is at this point, so just extend the pay amounts out to 1 month prior to TSP being paid out.\r\n const endDate = moment(serviceMember.tspWithdrawalDate()).subtract(1, 'months');\r\n\r\n careerMonth.payAmountFutureDollars = 0;\r\n\r\n if (calendarDate.isSameOrAfter(rundate) && calendarDate.isSameOrBefore(endDate)) {\r\n let payAmountFutureDollars = 0;\r\n const payAmountTodaysDollars = toNumber(careerMonth.payAmountTodaysDollars);\r\n\r\n if (calendarYear === rundate.year()) {\r\n // No adjustment for 1st calendar year.\r\n payAmountFutureDollars = payAmountTodaysDollars;\r\n } else if (calendarYear >= (rundate.year() + 1)) {\r\n // Adjust for inflation.\r\n const calendarYearFromRundateYearOffset = calendarYear - rundate.year();\r\n\r\n payAmountFutureDollars = payAmountTodaysDollars * payTableGrowthRateYear1;\r\n if (calendarYearFromRundateYearOffset >= 2) payAmountFutureDollars *= payTableGrowthRateYear2;\r\n if (calendarYearFromRundateYearOffset >= 3) payAmountFutureDollars *= payTableGrowthRateYear3;\r\n if (calendarYearFromRundateYearOffset >= 4) payAmountFutureDollars *= payTableGrowthRateYear4;\r\n if (calendarYearFromRundateYearOffset >= 5) payAmountFutureDollars *= payTableGrowthRateYear5;\r\n if (calendarYearFromRundateYearOffset >= 6) {\r\n for (let yearOffset = 6; yearOffset <= calendarYearFromRundateYearOffset; yearOffset += 1) {\r\n payAmountFutureDollars *= payTableGrowthRateYear5;\r\n }\r\n }\r\n }\r\n\r\n careerMonth.payAmountFutureDollars = payAmountFutureDollars;\r\n }\r\n }\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Set the \"Pay Amount (Today's $)\" equal to the \"Current Pay (Today's $)\" while the service member\r\n// is in service.\r\n// ****************************************************************************************************\r\nfunction addCurrentPayAmountTodaysDollars(careerMonths, pebd, retSepDate) {\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.currentPayAmountTodaysDollars = 0;\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n if (careerMonth.component === 'AC') {\r\n careerMonth.currentPayAmountTodaysDollars = careerMonth.payAmountTodaysDollars;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Set the \"Pay Amount (Future $)\" equal to the \"Current Pay (Future $)\" while the service member\r\n// is in service.\r\n// ****************************************************************************************************\r\nfunction addCurrentPayAmountFutureDollars(careerMonths, pebd, retSepDate) {\r\n careerMonths.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.currentPayAmountFutureDollars = 0;\r\n if (calendarDate.isSameOrAfter(pebd) && calendarDate.isSameOrBefore(retSepDate)) {\r\n if (careerMonth.component === 'AC') {\r\n careerMonth.currentPayAmountFutureDollars = careerMonth.payAmountFutureDollars;\r\n }\r\n }\r\n });\r\n\r\n return careerMonths;\r\n}\r\n\r\nexport function pmt(totalNumberOfPayments, rate, loanAmount) {\r\n if (rate === 0) return loanAmount / totalNumberOfPayments;\r\n\r\n const denominator = 1 - Math.pow((1 + rate), totalNumberOfPayments * -1);\r\n return (loanAmount * rate) / denominator;\r\n}\r\n\r\nexport function getReducedContributionAmountIfIrsCapIsMet(currentAmount, contributionAmount, capAmount) {\r\n let irsTspCapLimitMet = false;\r\n\r\n if (currentAmount + contributionAmount >= capAmount) {\r\n contributionAmount = capAmount - currentAmount;\r\n irsTspCapLimitMet = true;\r\n }\r\n return { irsTspCapLimitMet, contributionAmount };\r\n}\r\n\r\nfunction computeTspIrsYearlyCapAmounts(serviceMember, allNumbersByMonth, rundate, retSepDate) {\r\n const { tspIrsYearlyCapGrowth } = serviceMember;\r\n let tspIrsYearlyCapLimitFutureDollars = serviceMember.tspIrsYearlyCapLimit;\r\n\r\n allNumbersByMonth.forEach((careerMonth) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // Set the TSP IRS cap limit for the rundate and each subsequent month of January.\r\n if (calendarDate.isSame(rundate)) {\r\n careerMonth.tspIrsYearlyCapLimitTodaysDollars = serviceMember.tspIrsYearlyCapLimit;\r\n careerMonth.tspIrsYearlyCapLimitFutureDollars = serviceMember.tspIrsYearlyCapLimit;\r\n } else if (calendarDate.isAfter(rundate) && calendarDate.isSameOrBefore(retSepDate) && calendarDate.month() + 1 === 1) {\r\n careerMonth.tspIrsYearlyCapLimitTodaysDollars = serviceMember.tspIrsYearlyCapLimit;\r\n\r\n tspIrsYearlyCapLimitFutureDollars += tspIrsYearlyCapGrowth;\r\n careerMonth.tspIrsYearlyCapLimitFutureDollars = tspIrsYearlyCapLimitFutureDollars;\r\n }\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\nfunction computeServiceMemberTspContribution(serviceMember, allNumbersByMonth, tspStartDate, retSepDate) {\r\n\r\n const tspServiceMemberContributionRate = serviceMember.tspServiceMemberContributionRate / 100;\r\n\r\n allNumbersByMonth.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // Compute the monthly TSP contribution:\r\n // 1. Calculate TSP contribution amount.\r\n // 2. Retrieve the calendar year IRS TSP cap limit.\r\n // 3. Retrieve the prior calendar year's yearly running total. The amount resets every January.\r\n // 4. Determine if adding the current month's contribution amount will exceed the IRS TSP cap limit. If it does, adjust the amount to max out the contrinbution to the limit.\r\n // 5. Add the monthly contribution amount to the monthly total.\r\n // 6. Add this month's monthly total contribution amount to the yearly amount.\r\n if (calendarDate.isSameOrAfter(tspStartDate) && calendarDate.isSameOrBefore(retSepDate)) {\r\n // Today's dollars.\r\n careerMonth.tspServiceMemberContributionAmountTodaysDollars = careerMonth.currentPayAmountTodaysDollars * tspServiceMemberContributionRate; // 1\r\n const { tspIrsYearlyCapLimitTodaysDollars } = allNumbersByMonth.find((x) => x.calendarYear === careerMonth.calendarYear && x.tspIrsYearlyCapLimitTodaysDollars > 0); // 2\r\n const priorTspYearlyRunningTotalAmountTodaysDollars = calendarDate.isSame(tspStartDate) || calendarMonth === 1 ? 0 : allNumbersByMonth[index - 1].tspYearlyRunningTotalAmountTodaysDollars; // 3\r\n const irsTspCapLimitMetDataTodaysDollars = getReducedContributionAmountIfIrsCapIsMet(priorTspYearlyRunningTotalAmountTodaysDollars, careerMonth.tspServiceMemberContributionAmountTodaysDollars, tspIrsYearlyCapLimitTodaysDollars); // 4\r\n careerMonth.irsTspCapLimitMetTodaysDollars = irsTspCapLimitMetDataTodaysDollars.irsTspCapLimitMet;\r\n careerMonth.tspServiceMemberContributionAmountTodaysDollars = irsTspCapLimitMetDataTodaysDollars.contributionAmount;\r\n careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars = careerMonth.tspServiceMemberContributionAmountTodaysDollars; // 5\r\n careerMonth.tspYearlyRunningTotalAmountTodaysDollars = priorTspYearlyRunningTotalAmountTodaysDollars + careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars; // 6\r\n\r\n // Future dollars.\r\n careerMonth.tspServiceMemberContributionAmountFutureDollars = careerMonth.currentPayAmountFutureDollars * tspServiceMemberContributionRate; // 1\r\n const { tspIrsYearlyCapLimitFutureDollars } = allNumbersByMonth.find((x) => x.calendarYear === careerMonth.calendarYear && x.tspIrsYearlyCapLimitFutureDollars > 0); // 2\r\n const priorTspYearlyRunningTotalAmountFutureDollars = calendarDate.isSame(tspStartDate) || calendarMonth === 1 ? 0 : allNumbersByMonth[index - 1].tspYearlyRunningTotalAmountFutureDollars; // 3\r\n const irsTspCapLimitMetDataFutureDollars = getReducedContributionAmountIfIrsCapIsMet(priorTspYearlyRunningTotalAmountFutureDollars, careerMonth.tspServiceMemberContributionAmountFutureDollars, tspIrsYearlyCapLimitFutureDollars); // 4\r\n careerMonth.irsTspCapLimitMetFutureDollars = irsTspCapLimitMetDataFutureDollars.irsTspCapLimitMet;\r\n careerMonth.tspServiceMemberContributionAmountFutureDollars = irsTspCapLimitMetDataFutureDollars.contributionAmount;\r\n careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars = careerMonth.tspServiceMemberContributionAmountFutureDollars; // 5\r\n careerMonth.tspYearlyRunningTotalAmountFutureDollars = priorTspYearlyRunningTotalAmountFutureDollars + careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars; // 6\r\n }\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\nfunction generateServiceMemberTspBalance(serviceMember, allNumbersByMonth, rundate, retSepDate, tspWithdrawalDate, endOfLifeDate) {\r\n const tspInflationRate = serviceMember.globalSettings.tspSettings.inflationRate / 100;\r\n const tspGrowthRate = serviceMember.tspGrowthRate / 100;\r\n const tspWithdrawalGrowthRate = serviceMember.tspWithdrawalGrowthRate / 100;\r\n\r\n // Calculate growth rates for run date thru withdrawal date (minus 1 month).\r\n const tspMonthlyGrowthRate = Math.pow(1 + tspGrowthRate, 1 / 12) - 1;\r\n const tspGrowthRateWithInflation = (1 + tspGrowthRate) / (1 + tspInflationRate) - 1;\r\n const tspMonthlyGrowthRateWithInflation = Math.pow((1 + tspGrowthRateWithInflation), 1 / 12) - 1;\r\n\r\n // Calculate growth rates for withdrawal date thru death date.\r\n const tspWithdrawalMonthlyGrowthRate = Math.pow(1 + tspWithdrawalGrowthRate, 1 / 12) - 1;\r\n const tspWithdrawalGrowthRateWithInflation = (1 + tspWithdrawalGrowthRate) / (1 + tspInflationRate) - 1;\r\n const tspWithdrawalMonthlyGrowthRateWithInflation = Math.pow((1 + tspWithdrawalGrowthRateWithInflation), 1 / 12) - 1;\r\n\r\n allNumbersByMonth.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n // No growth amount in run date.\r\n if (calendarDate.isSame(rundate)) {\r\n careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars = careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars;\r\n careerMonth.tspServiceMemberGrowthAmountTodaysDollars = 0;\r\n careerMonth.tspServiceMemberBalanceTodaysDollars = careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars + serviceMember.tspServiceMemberContribution;\r\n\r\n careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars = careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars;\r\n careerMonth.tspServiceMemberGrowthAmountFutureDollars = 0;\r\n careerMonth.tspServiceMemberBalanceFutureDollars = careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars + serviceMember.tspServiceMemberContribution;\r\n } else if (calendarDate.isAfter(rundate)) {\r\n careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceTodaysDollars + careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars;\r\n careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceFutureDollars + careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars;\r\n\r\n if (calendarDate.isAfter(rundate) && calendarDate.isBefore(tspWithdrawalDate)) {\r\n careerMonth.tspServiceMemberGrowthAmountTodaysDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceTodaysDollars * tspMonthlyGrowthRateWithInflation;\r\n careerMonth.tspServiceMemberGrowthAmountFutureDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceFutureDollars * tspMonthlyGrowthRate;\r\n } else if (calendarDate.isSameOrAfter(tspWithdrawalDate) && calendarDate.isSameOrBefore(endOfLifeDate)) {\r\n careerMonth.tspServiceMemberGrowthAmountTodaysDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceTodaysDollars * tspWithdrawalMonthlyGrowthRateWithInflation;\r\n careerMonth.tspServiceMemberGrowthAmountFutureDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceFutureDollars * tspWithdrawalMonthlyGrowthRate;\r\n }\r\n\r\n careerMonth.tspServiceMemberBalanceTodaysDollars = careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars + careerMonth.tspServiceMemberGrowthAmountTodaysDollars;\r\n careerMonth.tspServiceMemberBalanceFutureDollars = careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars + careerMonth.tspServiceMemberGrowthAmountFutureDollars;\r\n }\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\nfunction generateServiceMemberTspWithdrawal(serviceMember, allNumbersByMonth, tspWithdrawalDate, endOfLifeDate) {\r\n const tspInflationRate = serviceMember.globalSettings.tspSettings.inflationRate / 100;\r\n\r\n let tspServiceMemberWithdrawalTodaysDollars = 0;\r\n let tspServiceMemberWithdrawalFutureDollars = 0;\r\n\r\n // Calculate growth rates for run date thru withdrawal date (minus 1 month).\r\n const tspGrowthRate = serviceMember.tspGrowthRate / 100;\r\n // const tspMonthlyGrowthRate = Math.pow(1 + tspGrowthRate, 1 / 12) - 1; // NOSONAR\r\n const tspGrowthRateWithInflation = (1 + tspGrowthRate) / (1 + tspInflationRate) - 1;\r\n const tspMonthlyGrowthRateWithInflation = Math.pow((1 + tspGrowthRateWithInflation), 1 / 12) - 1;\r\n\r\n // Calculate growth rates for withdrawal date thru death date.\r\n const tspWithdrawalGrowthRate = serviceMember.tspWithdrawalGrowthRate / 100;\r\n const tspWithdrawalMonthlyGrowthRate = Math.pow(1 + tspWithdrawalGrowthRate, 1 / 12) - 1;\r\n const tspWithdrawalGrowthRateWithInflation = (1 + tspWithdrawalGrowthRate) / (1 + tspInflationRate) - 1;\r\n const tspWithdrawalMonthlyGrowthRateWithInflation = Math.pow((1 + tspWithdrawalGrowthRateWithInflation), 1 / 12) - 1;\r\n\r\n // Get 1 month prior to the withdrawal date when the service member TSP balance is at its highest.\r\n const withdrawalDateMinus1Month = moment(tspWithdrawalDate).subtract(1, 'months');\r\n const careerMonthAtWithdrawalDateMinus1Month = allNumbersByMonth.find((x) => x.calendarYear === withdrawalDateMinus1Month.year() && x.calendarMonth === withdrawalDateMinus1Month.month() + 1);\r\n\r\n // Compute service member TSP monthly payment.\r\n if (!isUndefined(careerMonthAtWithdrawalDateMinus1Month)) {\r\n const tspNumberOfPayments = serviceMember.numberOfMonthsFromTspWithdrawalDateToDeathDate();\r\n\r\n // Compute monthly TSP payment amount based on whether the growth rate is 0 or not. This is a divide by 0 check.\r\n if (tspMonthlyGrowthRateWithInflation !== 0) {\r\n tspServiceMemberWithdrawalTodaysDollars = pmt(tspNumberOfPayments, tspWithdrawalMonthlyGrowthRateWithInflation, careerMonthAtWithdrawalDateMinus1Month.tspServiceMemberBalanceTodaysDollars);\r\n } else {\r\n tspServiceMemberWithdrawalTodaysDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceTodaysDollars / tspNumberOfPayments;\r\n }\r\n\r\n if (tspMonthlyGrowthRateWithInflation !== 0) {\r\n tspServiceMemberWithdrawalFutureDollars = pmt(tspNumberOfPayments, tspWithdrawalMonthlyGrowthRate, careerMonthAtWithdrawalDateMinus1Month.tspServiceMemberBalanceFutureDollars);\r\n } else {\r\n tspServiceMemberWithdrawalFutureDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceFutureDollars / tspNumberOfPayments;\r\n }\r\n\r\n allNumbersByMonth.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n if (calendarDate.isSameOrAfter(tspWithdrawalDate) && calendarDate.isSameOrBefore(endOfLifeDate)) {\r\n careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceTodaysDollars;\r\n careerMonth.tspServiceMemberGrowthAmountTodaysDollars = careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars * tspWithdrawalMonthlyGrowthRateWithInflation;\r\n careerMonth.tspServiceMemberWithdrawalTodaysDollars = tspServiceMemberWithdrawalTodaysDollars;\r\n careerMonth.tspServiceMemberBalanceTodaysDollars = careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars + careerMonth.tspServiceMemberGrowthAmountTodaysDollars - tspServiceMemberWithdrawalTodaysDollars;\r\n\r\n careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars = allNumbersByMonth[index - 1].tspServiceMemberBalanceFutureDollars;\r\n careerMonth.tspServiceMemberGrowthAmountFutureDollars = careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars * tspWithdrawalMonthlyGrowthRate;\r\n careerMonth.tspServiceMemberWithdrawalFutureDollars = tspServiceMemberWithdrawalFutureDollars;\r\n careerMonth.tspServiceMemberBalanceFutureDollars = careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars + careerMonth.tspServiceMemberGrowthAmountFutureDollars - tspServiceMemberWithdrawalFutureDollars;\r\n }\r\n });\r\n }\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\nexport function generateServiceMemberTsp(serviceMember, isEligibleForBonus) {\r\n let { allNumbersByMonth } = serviceMember.results;\r\n const rundate = serviceMember.rundate();\r\n const pebd = serviceMember.pebd();\r\n const retSepDate = serviceMember.retSepDate();\r\n const tspWithdrawalDate = serviceMember.tspWithdrawalDate();\r\n const endOfLifeDate = serviceMember.endOfLifeDate();\r\n\r\n // If BRSC calculator, TSP starts on the opt-in month/year.\r\n let tspStartDate = rundate;\r\n if (serviceMember.moduleSettings.details.calculatorName === 'BRS Comparison') {\r\n tspStartDate = moment([serviceMember.optInYear, serviceMember.optInMonth - 1, 1]);\r\n }\r\n\r\n allNumbersByMonth = computeTspIrsYearlyCapAmounts(serviceMember, allNumbersByMonth, rundate, retSepDate);\r\n allNumbersByMonth = computeServiceMemberTspContribution(serviceMember, allNumbersByMonth, tspStartDate, retSepDate);\r\n\r\n if (serviceMember.moduleSettings.details.calculatorName === 'REDUX') {\r\n const { numberOfInstallments, percentageToTsp } = serviceMember;\r\n\r\n allNumbersByMonth = computeCareerServiceBonusTodaysDollars(allNumbersByMonth, rundate, pebd, retSepDate, numberOfInstallments, percentageToTsp);\r\n allNumbersByMonth = computeCareerServiceBonusFutureDollars(allNumbersByMonth, rundate, pebd, retSepDate, numberOfInstallments, percentageToTsp);\r\n } else if (serviceMember.moduleSettings.details.calculatorName === 'BRS' || serviceMember.moduleSettings.details.calculatorName === 'BRS Comparison') {\r\n const {\r\n completionMultiplier,\r\n addBonusTo1stMonthAfterCompletingYos,\r\n serviceAgreementYears,\r\n numberOfInstallments,\r\n percentageToTsp,\r\n payEntryBaseDateMonth,\r\n } = serviceMember;\r\n\r\n // Need to compute Continuation Pay in the event part of it goes into TSP.\r\n allNumbersByMonth = computeContinuationPayTodaysDollars(serviceMember, allNumbersByMonth, pebd, rundate, retSepDate, completionMultiplier, addBonusTo1stMonthAfterCompletingYos, serviceAgreementYears, numberOfInstallments, percentageToTsp, payEntryBaseDateMonth, isEligibleForBonus);\r\n allNumbersByMonth = computeContinuationPayFutureDollars(serviceMember, allNumbersByMonth, pebd, rundate, retSepDate, completionMultiplier, addBonusTo1stMonthAfterCompletingYos, serviceAgreementYears, numberOfInstallments, percentageToTsp, payEntryBaseDateMonth, isEligibleForBonus); // NOSONAR\r\n }\r\n\r\n allNumbersByMonth = generateServiceMemberTspBalance(serviceMember, allNumbersByMonth, rundate, retSepDate, tspWithdrawalDate, endOfLifeDate);\r\n allNumbersByMonth = generateServiceMemberTspWithdrawal(serviceMember, allNumbersByMonth, tspWithdrawalDate, endOfLifeDate);\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\nexport function initializeValues(serviceMember) {\r\n const { allNumbersByMonth } = serviceMember.results;\r\n\r\n allNumbersByMonth.forEach((careerMonth) => {\r\n careerMonth.bonusAmountTodaysDollars = 0;\r\n careerMonth.bonusAmountFutureDollars = 0;\r\n\r\n careerMonth.bonusAmountToTspTodaysDollars = 0;\r\n careerMonth.bonusAmountToTspFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentMandatoryContributionAmountTodaysDollars = 0;\r\n careerMonth.tspGovernmentMandatoryContributionAmountFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentMatchingContributionAmountTodaysDollars = 0;\r\n careerMonth.tspGovernmentMatchingContributionAmountFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentContributionMonthlyTotalTodaysDollars = 0;\r\n careerMonth.tspGovernmentContributionMonthlyTotalFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentBalanceNoGrowthTodaysDollars = 0;\r\n careerMonth.tspGovernmentBalanceNoGrowthFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentGrowthAmountTodaysDollars = 0;\r\n careerMonth.tspGovernmentGrowthAmountFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentWithdrawalTodaysDollars = 0;\r\n careerMonth.tspGovernmentWithdrawalFutureDollars = 0;\r\n\r\n careerMonth.tspGovernmentBalanceTodaysDollars = 0;\r\n careerMonth.tspGovernmentBalanceFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberBalanceTodaysDollars = 0;\r\n careerMonth.tspServiceMemberBalanceFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberContributionAmountTodaysDollars = 0;\r\n careerMonth.tspServiceMemberContributionAmountFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberContributionMonthlyTotalTodaysDollars = 0;\r\n careerMonth.tspServiceMemberContributionMonthlyTotalFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberBalanceNoGrowthTodaysDollars = 0;\r\n careerMonth.tspServiceMemberBalanceNoGrowthFutureDollars = 0;\r\n\r\n careerMonth.tspYearlyRunningTotalAmountTodaysDollars = 0;\r\n careerMonth.tspYearlyRunningTotalAmountFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberWithdrawalTodaysDollars = 0;\r\n careerMonth.tspServiceMemberWithdrawalFutureDollars = 0;\r\n\r\n careerMonth.tspServiceMemberGrowthAmountTodaysDollars = 0;\r\n careerMonth.tspServiceMemberGrowthAmountFutureDollars = 0;\r\n\r\n careerMonth.tspIrsYearlyCapLimitTodaysDollars = 0;\r\n careerMonth.tspIrsYearlyCapLimitFutureDollars = 0;\r\n\r\n careerMonth.lumpSumTwentyFivePercentPensionAmountTodaysDollars = 0;\r\n careerMonth.lumpSumTwentyFivePercentPensionAmountFutureDollars = 0;\r\n\r\n careerMonth.lumpSumFiftyPercentPensionAmountTodaysDollars = 0;\r\n careerMonth.lumpSumFiftyPercentPensionAmountFutureDollars = 0;\r\n\r\n careerMonth.lumpSumTwentyFivePercentInstallmentTodaysDollars = 0;\r\n careerMonth.lumpSumTwentyFivePercentInstallmentFutureDollars = 0;\r\n\r\n careerMonth.lumpSumFiftyPercentInstallmentTodaysDollars = 0;\r\n careerMonth.lumpSumFiftyPercentInstallmentFutureDollars = 0;\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Formulate and populate data for each month of a service member's career.\r\n// Only retrieve what is needed to accomodate generating the Career Progression page.\r\n// ****************************************************************************************************\r\nexport function getAllNumbersByMonthForCareerProgression(serviceMember) {\r\n let allNumbersByMonth = [];\r\n\r\n const dob = serviceMember.dob();\r\n const pebd = serviceMember.pebd();\r\n const asd = serviceMember.asd();\r\n const retSepDate = serviceMember.retSepDate();\r\n\r\n allNumbersByMonth = addRecordId(allNumbersByMonth, serviceMember);\r\n allNumbersByMonth = addCalendarYearMonth(allNumbersByMonth, dob);\r\n allNumbersByMonth = addAge(allNumbersByMonth);\r\n allNumbersByMonth = addAgePresentYears(allNumbersByMonth);\r\n allNumbersByMonth = addAgeCompletedYears(allNumbersByMonth);\r\n\r\n allNumbersByMonth = addPebdServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = addPebdPresentServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = addPebdCompletedServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = addPebdCompletedServiceYears(allNumbersByMonth, pebd, retSepDate);\r\n\r\n allNumbersByMonth = addAsdServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = addAsdPresentServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = addAsdCompletedServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = addAsdCompletedServiceYears(allNumbersByMonth, asd, retSepDate);\r\n\r\n allNumbersByMonth = addComponent(allNumbersByMonth, serviceMember, pebd, retSepDate);\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Formulate and populate data for each month of a service member's career.\r\n// ****************************************************************************************************\r\nexport function getAllNumbersByMonth(serviceMember, funcOverrides = {}) {\r\n // these functions can be overwritten\r\n const defaultFuncs = {\r\n addRecordId,\r\n addCalendarYearMonth,\r\n addAge,\r\n addAgePresentYears,\r\n addAgeCompletedYears,\r\n addPebdServiceYearsAndMonths,\r\n addPebdPresentServiceYearsAndMonths,\r\n addPebdCompletedServiceYearsAndMonths,\r\n addPebdCompletedServiceYears,\r\n addAsdServiceYearsAndMonths,\r\n addAsdPresentServiceYearsAndMonths,\r\n addAsdCompletedServiceYearsAndMonths,\r\n addAsdCompletedServiceYears,\r\n addSuggestedCareerProgression,\r\n addOverrideCareerProgression,\r\n addComponent,\r\n addPayAmountTodaysDollars,\r\n addPayAmountFutureDollars,\r\n addCurrentPayAmountTodaysDollars,\r\n addCurrentPayAmountFutureDollars,\r\n };\r\n const funcs = { ...defaultFuncs, ...funcOverrides };\r\n\r\n let allNumbersByMonth = [];\r\n\r\n const rundate = serviceMember.rundate();\r\n const dob = serviceMember.dob();\r\n const pebd = serviceMember.pebd();\r\n const asd = serviceMember.asd();\r\n const retSepDate = serviceMember.retSepDate();\r\n\r\n allNumbersByMonth = funcs.addRecordId(allNumbersByMonth, serviceMember);\r\n allNumbersByMonth = funcs.addCalendarYearMonth(allNumbersByMonth, dob);\r\n allNumbersByMonth = funcs.addAge(allNumbersByMonth);\r\n allNumbersByMonth = funcs.addAgePresentYears(allNumbersByMonth);\r\n allNumbersByMonth = funcs.addAgeCompletedYears(allNumbersByMonth);\r\n\r\n allNumbersByMonth = funcs.addPebdServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addPebdPresentServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addPebdCompletedServiceYearsAndMonths(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addPebdCompletedServiceYears(allNumbersByMonth, pebd, retSepDate);\r\n\r\n allNumbersByMonth = funcs.addAsdServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = funcs.addAsdPresentServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = funcs.addAsdCompletedServiceYearsAndMonths(allNumbersByMonth, asd, retSepDate);\r\n allNumbersByMonth = funcs.addAsdCompletedServiceYears(allNumbersByMonth, asd, retSepDate);\r\n\r\n allNumbersByMonth = funcs.addSuggestedCareerProgression(allNumbersByMonth, serviceMember, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addOverrideCareerProgression(allNumbersByMonth, serviceMember, rundate, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addComponent(allNumbersByMonth, serviceMember, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addPayAmountTodaysDollars(allNumbersByMonth, serviceMember, rundate, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addPayAmountFutureDollars(allNumbersByMonth, serviceMember, rundate);\r\n allNumbersByMonth = funcs.addCurrentPayAmountTodaysDollars(allNumbersByMonth, pebd, retSepDate);\r\n allNumbersByMonth = funcs.addCurrentPayAmountFutureDollars(allNumbersByMonth, pebd, retSepDate);\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Collect data for each month of a service member's career in Today's Dollars only.\r\n// ****************************************************************************************************\r\nexport function getAllNumbersByMonthFromRunDateToDeathDateTodaysDollars(serviceMember) {\r\n const firstMonthOutOfService = serviceMember.firstMonthOutOfServiceDate();\r\n const tspWithdrawalDate = serviceMember.tspWithdrawalDate();\r\n const allNumbersByMonth = getCommonAllNumbersByMonthFromRunDateToDeathDate(serviceMember);\r\n\r\n allNumbersByMonth.forEach((month) => {\r\n const calendarYear = Number(month.calendarYear);\r\n const calendarMonth = Number(month.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n const obj = serviceMember.results.allNumbersByMonth.find((o) => o.recordId === month.recordId);\r\n\r\n month.tspBalance = obj.tspServiceMemberBalanceTodaysDollars;\r\n\r\n if (calendarDate.isBefore(firstMonthOutOfService)) {\r\n month.payAmount = obj.payAmountTodaysDollars;\r\n month.currentPayAmount = obj.currentPayAmountTodaysDollars;\r\n month.tspContributionAmount = obj.tspServiceMemberContributionAmountTodaysDollars;\r\n month.tspContributionAmountYearlyRunningTotal = obj.tspYearlyRunningTotalAmountTodaysDollars;\r\n month.tspIrsYearlyCapLimit = obj.tspIrsYearlyCapLimitTodaysDollars;\r\n }\r\n\r\n if (calendarDate.isSameOrAfter(firstMonthOutOfService)) {\r\n month.pensionAmountTodaysDollars = obj.pensionAmountTodaysDollars;\r\n }\r\n\r\n if (calendarDate.isSameOrAfter(tspWithdrawalDate)) {\r\n month.tspServiceMemberPaymentAmount = obj.tspServiceMemberWithdrawalTodaysDollars;\r\n }\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Aggregate data for each month of a service member's career in Future Dollars only.\r\n// ****************************************************************************************************\r\nexport function getAllNumbersByMonthFromRunDateToDeathDateFutureDollars(serviceMember) {\r\n const firstMonthOutOfService = serviceMember.firstMonthOutOfServiceDate();\r\n const tspWithdrawalDate = serviceMember.tspWithdrawalDate();\r\n const allNumbersByMonth = getCommonAllNumbersByMonthFromRunDateToDeathDate(serviceMember);\r\n\r\n allNumbersByMonth.forEach((month) => {\r\n const calendarYear = Number(month.calendarYear);\r\n const calendarMonth = Number(month.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n const obj = serviceMember.results.allNumbersByMonth.find((o) => o.recordId === month.recordId);\r\n\r\n month.tspBalance = obj.tspServiceMemberBalanceFutureDollars;\r\n\r\n if (calendarDate.isBefore(firstMonthOutOfService)) {\r\n month.payAmount = obj.payAmountFutureDollars;\r\n month.currentPayAmount = obj.currentPayAmountFutureDollars;\r\n month.tspContributionAmount = obj.tspServiceMemberContributionAmountFutureDollars;\r\n month.tspContributionAmountYearlyRunningTotal = obj.tspYearlyRunningTotalAmountFutureDollars;\r\n month.tspIrsYearlyCapLimit = obj.tspIrsYearlyCapLimitFutureDollars;\r\n }\r\n\r\n if (calendarDate.isSameOrAfter(firstMonthOutOfService)) {\r\n month.pensionAmountFutureDollars = obj.pensionAmountFutureDollars;\r\n }\r\n\r\n if (calendarDate.isSameOrAfter(tspWithdrawalDate)) {\r\n month.tspServiceMemberPaymentAmount = obj.tspServiceMemberWithdrawalFutureDollars;\r\n }\r\n });\r\n\r\n return allNumbersByMonth;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Calculate the Hi3 Pension for a regular retirement.\r\n// For Today's Dollars, the payout amount is the same for all months starting at the 1st month\r\n// after leaving the service thru death month.\r\n// ****************************************************************************************************\r\nexport function addHi3PensionPaymentsRegularRetirementTodaysDollars(careerMonths, serviceMember, paymentStartDate, retSepDate) {\r\n // Compute active duty service time from 1 month prior to the ret/sep date.\r\n const paymentStartDateMinus1month = moment(paymentStartDate).subtract(1, 'months');\r\n const paymentStartDateMinus1monthCareerMonth = careerMonths.find((o) => o.calendarYear === paymentStartDateMinus1month.year() && o.calendarMonth === paymentStartDateMinus1month.month() + 1);\r\n const paymentStartDateMinus1monthAsdPresentServiceYear = paymentStartDateMinus1monthCareerMonth.asdPresentServiceYear;\r\n const paymentStartDateMinus1monthAsdPresentServiceMonth = paymentStartDateMinus1monthCareerMonth.asdPresentServiceMonth;\r\n const paymentStartDateMinus1monthServiceTime = ((paymentStartDateMinus1monthAsdPresentServiceYear * 12) + paymentStartDateMinus1monthAsdPresentServiceMonth) / 12;\r\n\r\n // Determine the total active duty service time based on starting/ending components. RC member's can attain a regular retirement.\r\n const activeDutyServiceTime = serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.AC_2_AC\r\n ? paymentStartDateMinus1monthServiceTime\r\n : getRcActiveDutyServiceTime(serviceMember);\r\n\r\n // Get sum of pay amount from 1 month prior to the 1st Hi3 pension payment to 36 months in the past.\r\n const retSepDateMinus36Months = moment(serviceMember.firstMonthOutOfServiceDate()).subtract(36, 'months');\r\n const hi3ServiceMonthStart = careerMonths.find((o) => o.calendarYear === retSepDateMinus36Months.year() && o.calendarMonth === retSepDateMinus36Months.month() + 1);\r\n const hi3ServiceMonthEnd = careerMonths.find((o) => o.calendarYear === retSepDate.year() && o.calendarMonth === retSepDate.month() + 1);\r\n const hi3ServiceMonths = careerMonths.filter((o) => o.recordId >= hi3ServiceMonthStart.recordId && o.recordId <= hi3ServiceMonthEnd.recordId);\r\n\r\n // Get Hi3 total and average.\r\n const hi3PensionPaySum = sumBy(hi3ServiceMonths, 'payAmountTodaysDollars');\r\n const hi3PensionPayAverage = hi3PensionPaySum / hi3ServiceMonths.length;\r\n\r\n careerMonths.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.hi3PensionAmountTodaysDollars = 0;\r\n if (calendarDate.isSame(paymentStartDate)) {\r\n careerMonth.hi3PensionAmountTodaysDollars = serviceMember.hi3PensionPercentage() * activeDutyServiceTime * hi3PensionPayAverage;\r\n } else if (calendarDate.isAfter(paymentStartDate)) {\r\n careerMonth.hi3PensionAmountTodaysDollars = careerMonths[index - 1].hi3PensionAmountTodaysDollars;\r\n }\r\n\r\n if (serviceMember.moduleSettings.details.calculatorName === 'Hi3') careerMonth.pensionAmountTodaysDollars = careerMonth.hi3PensionAmountTodaysDollars;\r\n });\r\n\r\n serviceMember.hi3.todaysDollarsAverage = hi3PensionPayAverage;\r\n return careerMonths;\r\n}\r\n\r\n// ****************************************************************************************************\r\n// Calculate the Hi3 Pension for a non-regular retirement.\r\n// For Today's Dollars, the payout amount is the same for all months starting at the provided\r\n// non-regular retirement withdrawal date thru death month.\r\n// ****************************************************************************************************\r\nexport function addHi3PensionPaymentsNonRegularRetirementTodaysDollars(careerMonths, serviceMember, paymentStartDate) {\r\n // Get sum of pay amount from 1 month prior to the 1st Hi3 pension payment to 36 months in the past.\r\n const nonRegularRetirementWithdrawalDateMinus1month = moment(serviceMember.nonRegularRetirementWithdrawalDate()).subtract(1, 'months');\r\n const nonRegularRetirementWithdrawalDateMinus36Months = moment(serviceMember.nonRegularRetirementWithdrawalDate()).subtract(36, 'months');\r\n const hi3ServiceMonthStart = careerMonths.find((o) => o.calendarYear === nonRegularRetirementWithdrawalDateMinus36Months.year() && o.calendarMonth === nonRegularRetirementWithdrawalDateMinus36Months.month() + 1);\r\n const hi3ServiceMonthEnd = careerMonths.find((o) => o.calendarYear === nonRegularRetirementWithdrawalDateMinus1month.year() && o.calendarMonth === nonRegularRetirementWithdrawalDateMinus1month.month() + 1);\r\n const hi3ServiceMonths = careerMonths.filter((o) => o.recordId >= hi3ServiceMonthStart.recordId && o.recordId <= hi3ServiceMonthEnd.recordId);\r\n\r\n // Get Hi3 total and average.\r\n const hi3PensionPaySum = sumBy(hi3ServiceMonths, 'payAmountTodaysDollars');\r\n const hi3PensionPayAverage = hi3PensionPaySum / hi3ServiceMonths.length;\r\n\r\n careerMonths.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n careerMonth.hi3PensionAmountTodaysDollars = 0;\r\n careerMonth.pensionAmountTodaysDollars = 0;\r\n\r\n if (calendarDate.isSame(paymentStartDate)) {\r\n careerMonth.hi3PensionAmountTodaysDollars = serviceMember.hi3PensionPercentage() * serviceMember.results.reserveComponent.multiplier * hi3PensionPayAverage;\r\n } else if (calendarDate.isAfter(paymentStartDate)) {\r\n careerMonth.hi3PensionAmountTodaysDollars = careerMonths[index - 1].hi3PensionAmountTodaysDollars;\r\n }\r\n\r\n if (serviceMember.moduleSettings.details.calculatorName === 'Hi3') careerMonth.pensionAmountTodaysDollars = careerMonth.hi3PensionAmountTodaysDollars;\r\n });\r\n\r\n serviceMember.hi3.todaysDollarsAverage = hi3PensionPayAverage;\r\n return careerMonths;\r\n}\r\n\r\nexport function addHi3PensionPaymentsRegularRetirementFutureDollars(careerMonths, serviceMember, paymentStartDate, retSepDate) {\r\n // Compute active duty service time from 1 month prior to the ret/sep date.\r\n const paymentStartDateMinus1month = moment(paymentStartDate).subtract(1, 'months');\r\n const paymentStartDateMinus1monthCareerMonth = careerMonths.find((o) => o.calendarYear === paymentStartDateMinus1month.year() && o.calendarMonth === paymentStartDateMinus1month.month() + 1);\r\n const paymentStartDateMinus1monthAsdPresentServiceYear = paymentStartDateMinus1monthCareerMonth.asdPresentServiceYear;\r\n const paymentStartDateMinus1monthAsdPresentServiceMonth = paymentStartDateMinus1monthCareerMonth.asdPresentServiceMonth;\r\n const paymentStartDateMinus1monthServiceTime = ((paymentStartDateMinus1monthAsdPresentServiceYear * 12) + paymentStartDateMinus1monthAsdPresentServiceMonth) / 12;\r\n\r\n // Determine the total active duty service time based on starting/ending components. RC member's can attain a regular retirement.\r\n const activeDutyServiceTime = serviceMember.componentMatrix() === serviceMember.COMPONENT_MATRICES.AC_2_AC\r\n ? paymentStartDateMinus1monthServiceTime\r\n : getRcActiveDutyServiceTime(serviceMember);\r\n\r\n // Get sum of pay amount from 1 month prior to receiving the 1st Hi3 pension payment to 36 months in the past.\r\n const retSepDateMinus36Months = moment(serviceMember.firstMonthOutOfServiceDate()).subtract(36, 'months');\r\n const hi3ServiceMonthStart = careerMonths.find((o) => o.calendarYear === retSepDateMinus36Months.year() && o.calendarMonth === retSepDateMinus36Months.month() + 1);\r\n const hi3ServiceMonthEnd = careerMonths.find((o) => o.calendarYear === retSepDate.year() && o.calendarMonth === retSepDate.month() + 1);\r\n const hi3ServiceMonths = careerMonths.filter((o) => o.recordId >= hi3ServiceMonthStart.recordId && o.recordId <= hi3ServiceMonthEnd.recordId);\r\n\r\n // Get Hi3 total and average.\r\n const hi3PensionPaySum = sumBy(hi3ServiceMonths, 'payAmountFutureDollars');\r\n const hi3PensionPayAverage = hi3PensionPaySum / hi3ServiceMonths.length;\r\n\r\n careerMonths.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n let hi3PensionColaGrowthRate = 0;\r\n\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = 0;\r\n careerMonth.pensionColaGrowthRate = 0;\r\n careerMonth.pensionAmountFutureDollars = 0;\r\n\r\n if (calendarDate.year() === paymentStartDate.year()) {\r\n if (calendarDate.isSame(paymentStartDate)) {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = serviceMember.hi3PensionPercentage() * activeDutyServiceTime * hi3PensionPayAverage;\r\n } else {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = careerMonths[index - 1].hi3PensionAmountFutureDollars;\r\n }\r\n } else if (calendarYear > paymentStartDate.year()) {\r\n let colaGrowthRateAdjustment = 1;\r\n\r\n if (calendarMonth === 1) {\r\n switch (calendarYear - serviceMember.firstMonthOutOfServiceDate().year()) {\r\n case 1:\r\n colaGrowthRateAdjustment = serviceMember.getColaAdjustmentRate(paymentStartDate.month());\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year1);\r\n break;\r\n case 2:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year2);\r\n break;\r\n case 3:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year3);\r\n break;\r\n case 4:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year4);\r\n break;\r\n case 5:\r\n default:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year5);\r\n break;\r\n }\r\n\r\n // Calculate COLA growth rate.\r\n hi3PensionColaGrowthRate = hi3PensionColaGrowthRate * colaGrowthRateAdjustment;\r\n\r\n // Safe guard against 0%.\r\n hi3PensionColaGrowthRate = hi3PensionColaGrowthRate == 0 ? 1 : hi3PensionColaGrowthRate / 100 + 1;\r\n\r\n // Calculate pension amount.\r\n careerMonth.hi3PensionAmountFutureDollars = toNumber(careerMonths[index - 1].hi3PensionAmountFutureDollars) * hi3PensionColaGrowthRate;\r\n\r\n // Persist data to all-numbers table. When value = 0, does NOT display a value in all-numbers table.\r\n careerMonth.colaGrowthRateAdjustment = colaGrowthRateAdjustment === 1 ? 0 : colaGrowthRateAdjustment;\r\n careerMonth.hi3PensionColaGrowthRate = hi3PensionColaGrowthRate === 1 ? 0 : hi3PensionColaGrowthRate;\r\n }\r\n else {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = toNumber(careerMonths[index - 1].hi3PensionAmountFutureDollars);\r\n }\r\n }\r\n\r\n if (serviceMember.moduleSettings.details.calculatorName === 'Hi3') {\r\n careerMonth.pensionColaGrowthRate = careerMonth.hi3PensionColaGrowthRate;\r\n careerMonth.pensionAmountFutureDollars = careerMonth.hi3PensionAmountFutureDollars;\r\n }\r\n });\r\n\r\n serviceMember.hi3.futureDollarsAverage = hi3PensionPayAverage;\r\n return careerMonths;\r\n}\r\n\r\nexport function addHi3PensionPaymentsNonRegularRetirementFutureDollars(careerMonths, serviceMember, paymentStartDate) {\r\n // Retrieve 36 career months starting at 1 month prior to the non-regular retirement withdrawal date.\r\n const nonRegularRetirementWithdrawalDateMinus1month = moment(serviceMember.nonRegularRetirementWithdrawalDate()).subtract(1, 'months');\r\n const nonRegularRetirementWithdrawalDateMinus36Months = moment(serviceMember.nonRegularRetirementWithdrawalDate()).subtract(36, 'months');\r\n const hi3ServiceMonthStart = careerMonths.find((o) => o.calendarYear === nonRegularRetirementWithdrawalDateMinus36Months.year() && o.calendarMonth === nonRegularRetirementWithdrawalDateMinus36Months.month() + 1);\r\n const hi3ServiceMonthEnd = careerMonths.find((o) => o.calendarYear === nonRegularRetirementWithdrawalDateMinus1month.year() && o.calendarMonth === nonRegularRetirementWithdrawalDateMinus1month.month() + 1);\r\n const hi3ServiceMonths = careerMonths.filter((o) => o.recordId >= hi3ServiceMonthStart.recordId && o.recordId <= hi3ServiceMonthEnd.recordId);\r\n\r\n // Get Hi3 total and average.\r\n const hi3PensionPaySum = sumBy(hi3ServiceMonths, 'payAmountFutureDollars');\r\n const hi3PensionPayAverage = hi3PensionPaySum / hi3ServiceMonths.length;\r\n\r\n careerMonths.forEach((careerMonth, index) => {\r\n const calendarYear = Number(careerMonth.calendarYear);\r\n const calendarMonth = Number(careerMonth.calendarMonth);\r\n const calendarDate = moment([calendarYear, calendarMonth - 1, 1]);\r\n\r\n let hi3PensionColaGrowthRate = 0;\r\n\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = 0;\r\n careerMonth.pensionAmountFutureDollars = 0;\r\n\r\n if (calendarYear === paymentStartDate.year()) {\r\n if (calendarDate.isSame(paymentStartDate)) {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = serviceMember.hi3PensionPercentage() * serviceMember.results.reserveComponent.multiplier * hi3PensionPayAverage;\r\n } else {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = careerMonths[index - 1].hi3PensionAmountFutureDollars;\r\n }\r\n } else if (calendarYear > paymentStartDate.year()) {\r\n let colaGrowthRateAdjustment = 1;\r\n\r\n if (calendarMonth === 1) {\r\n switch (calendarYear - serviceMember.firstMonthOutOfServiceDate().year()) {\r\n case 1:\r\n colaGrowthRateAdjustment = serviceMember.getColaAdjustmentRate(paymentStartDate.month());\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year1);\r\n break;\r\n case 2:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year2);\r\n break;\r\n case 3:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year3);\r\n break;\r\n case 4:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year4);\r\n break;\r\n case 5:\r\n default:\r\n hi3PensionColaGrowthRate = toNumber(serviceMember.globalSettings.colaGrowthRates.year5);\r\n break;\r\n }\r\n\r\n // Calculate COLA growth rate.\r\n hi3PensionColaGrowthRate = hi3PensionColaGrowthRate * colaGrowthRateAdjustment;\r\n\r\n // Safe guard against 0%.\r\n hi3PensionColaGrowthRate = hi3PensionColaGrowthRate === 0 || hi3PensionColaGrowthRate / 100 + 1 < 1 ? 1 : hi3PensionColaGrowthRate / 100 + 1;\r\n\r\n // Calculate pension amount.\r\n careerMonth.hi3PensionAmountFutureDollars = toNumber(careerMonths[index - 1].hi3PensionAmountFutureDollars) * hi3PensionColaGrowthRate;\r\n\r\n // Persist data to all-numbers table. When value = 0, does NOT display a value in all-numbers table.\r\n careerMonth.colaGrowthRateAdjustment = colaGrowthRateAdjustment === 1 ? 0 : colaGrowthRateAdjustment;\r\n careerMonth.hi3PensionColaGrowthRate = hi3PensionColaGrowthRate === 1 ? 0 : hi3PensionColaGrowthRate;\r\n } else {\r\n careerMonth.hi3PensionColaGrowthRate = 0;\r\n careerMonth.hi3PensionAmountFutureDollars = toNumber(careerMonths[index - 1].hi3PensionAmountFutureDollars);\r\n }\r\n }\r\n\r\n if (serviceMember.moduleSettings.details.calculatorName === 'Hi3') {\r\n careerMonth.pensionColaGrowthRate = careerMonth.hi3PensionColaGrowthRate;\r\n careerMonth.pensionAmountFutureDollars = careerMonth.hi3PensionAmountFutureDollars;\r\n }\r\n });\r\n\r\n serviceMember.hi3.futureDollarsAverage = hi3PensionPayAverage;\r\n return careerMonths;\r\n}\r\n","import { getAllNumbersByMonthForCareerProgression } from './allNumbersHelpers';\r\n\r\nfunction getRcDutyYearLimits(serviceMember, numberOfRcMonthsInServiceYear) {\r\n const reserveComponent = {};\r\n\r\n reserveComponent.rcDutyYearPartialYearLimit = serviceMember.RC_DUTY_YEAR_PARTIAL_YEAR_LIMITS.find((o) => o.monthsRemainingInYearOfService === numberOfRcMonthsInServiceYear);\r\n\r\n reserveComponent.activeDutyDays = reserveComponent.rcDutyYearPartialYearLimit.activeDutyDaysDefault;\r\n reserveComponent.membershipPoints = reserveComponent.rcDutyYearPartialYearLimit.membershipPointsDefault;\r\n reserveComponent.inactiveDutyDaysPaid = reserveComponent.rcDutyYearPartialYearLimit.inactiveDutyDaysPaidDefault;\r\n reserveComponent.inactiveDutyDaysNonPaid = reserveComponent.rcDutyYearPartialYearLimit.inactiveDutyDaysNonPaidDefault;\r\n reserveComponent.isValid = true;\r\n\r\n return reserveComponent;\r\n}\r\n\r\n/**\r\n * Get rank override list based on current rank and year of service.\r\n *\r\n * When rank = 'O-4' or 'O-5' or 'O-6', need to know if the service member's career includes\r\n * prior enlistment.\r\n */\r\nexport function getOverrideRanks(rank, yearOfService) {\r\n yearOfService = parseInt(yearOfService, 10);\r\n\r\n const ranks = {\r\n // Enlisted ranks\r\n 'E-1': ['E-1', 'E-2', 'E-3'],\r\n 'E-2': ['E-2', 'E-3', 'E-4'],\r\n 'E-3': ['E-2', 'E-3', 'E-4', 'E-5', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-4': ['E-3', 'E-4', 'E-5', 'E-6', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-5': ['E-4', 'E-5', 'E-6', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-6': ['E-5', 'E-6', 'E-7', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-7': ['E-6', 'E-7', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-8': ['E-7', 'E-8', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n 'E-9': ['E-8', 'E-9', 'W-1', 'W-2', 'W-3', 'W-4'],\r\n\r\n // Warrant Officer ranks\r\n 'W-1': ['W-1', 'W-2'],\r\n 'W-2': ['W-1', 'W-2', 'W-3'],\r\n 'W-3': ['W-2', 'W-3', 'W-4'],\r\n 'W-4': ['W-3', 'W-4'],\r\n 'W-5': ['W-4', 'W-5'],\r\n\r\n // Officer ranks\r\n 'O-1': ['O-1', 'O-2'],\r\n 'O-2': ['O-2', 'O-3'],\r\n 'O-3': ['O-2', 'O-3', 'O-4'],\r\n 'O-4': ['O-3', 'O-3E', 'O-4', 'O-5'],\r\n 'O-5': ['O-4', 'O-5', 'O-6'],\r\n 'O-6': ['O-5', 'O-6', 'O-7'],\r\n 'O-7': ['O-6', 'O-7', 'O-8'],\r\n 'O-8': ['O-7', 'O-8', 'O-9'],\r\n 'O-9': ['O-7', 'O-8', 'O-9', 'O-10'],\r\n 'O-10': ['O-10'],\r\n\r\n // Prior Enlisted ranks\r\n 'O-1E': ['O-1E', 'O-2E'],\r\n 'O-2E': ['O-1E', 'O-2E', 'O-3E'],\r\n 'O-3E': ['O-2E', 'O-3E', 'O-4'],\r\n };\r\n\r\n const overrideRanks = ranks[rank] ? [...ranks[rank]] : [];\r\n\r\n // Add ranks based on conditional years of service.\r\n if (rank === 'E-3' || rank === 'E-4' || rank === 'E-5' || rank === 'E-6' || rank === 'E-7' || rank === 'E-8' || rank === 'E-9') {\r\n if (rank === 'E-7' && yearOfService >= 8) overrideRanks.splice(overrideRanks.indexOf('W-1'), 0, 'E-8');\r\n if (rank === 'E-8' && yearOfService >= 10) overrideRanks.splice(overrideRanks.indexOf('W-1'), 0, 'E-9');\r\n if (yearOfService >= 20) overrideRanks.push('W-5');\r\n if (yearOfService >= 5) overrideRanks.push('O-1E');\r\n }\r\n\r\n // Add ranks based on conditional years of service.\r\n // if (rank === 'W-1' || rank === 'W-2' || rank === 'W-3' || rank === 'W-4' || rank === 'W-5') {\r\n if (rank === 'W-1' || rank === 'W-2' || rank === 'W-3' || rank === 'W-5') {\r\n if (yearOfService >= 5) overrideRanks.push('O-1E');\r\n } else if (rank === 'W-4') {\r\n if (yearOfService >= 20) overrideRanks.push('W-5');\r\n if (yearOfService >= 5) overrideRanks.push('O-1E');\r\n }\r\n\r\n return overrideRanks;\r\n}\r\n\r\n\r\n//\r\n// For service member's who are 'under performing', adjust their career to 'catch up' ASAP.\r\n// More or less, the service member is given the benefit of the doubt and the system expects\r\n// they will get 'back on track'.\r\n//\r\nfunction adjustCareerProgressionForUnderPerformers(careerProgression, serviceMember) {\r\n const { currentRank } = serviceMember;\r\n const currentYearOfService = serviceMember.currentYearOfService();\r\n const officerSuggestedCareerProgression = serviceMember.globalSettings.careerProgression.officer;\r\n const enlistedSuggestedCareerProgression = serviceMember.globalSettings.careerProgression.enlisted;\r\n const warrantOfficerSuggestedCareerProgression = serviceMember.globalSettings.careerProgression.warrantOfficer;\r\n const priorEnlistedSuggestedCareerProgression = serviceMember.globalSettings.careerProgression.priorEnlisted;\r\n\r\n let careerProgressionIndex = -1;\r\n\r\n if (currentRank === 'E-2' && currentYearOfService > 2) careerProgressionIndex = 0; // enter grade progression at YOS 1\r\n else if (currentRank === 'E-3' && currentYearOfService > 4) careerProgressionIndex = 1; // enter grade progression at YOS 2\r\n else if (currentRank === 'E-4' && currentYearOfService > 6) careerProgressionIndex = 4; // enter grade progression at YOS 5\r\n else if (currentRank === 'O-1' && currentYearOfService > 2) careerProgressionIndex = 1; // enter grade progression at YOS 2\r\n else if (currentRank === 'O-2' && currentYearOfService > 4) careerProgressionIndex = 3; // enter grade progression at YOS 4\r\n else if (currentRank === 'O-3' && currentYearOfService > 11) careerProgressionIndex = 10; // enter grade progression at YOS 11\r\n else if (currentRank === 'W-1' && currentYearOfService > 4) careerProgressionIndex = 2; // enter grade progression at YOS 3\r\n else if (currentRank === 'O-1E') careerProgressionIndex = 0; // enter grade progression at YOS 1\r\n else if (currentRank === 'O-2E') careerProgressionIndex = 2; // enter grade progression at YOS 3\r\n else if (currentRank === 'O-3E') careerProgressionIndex = 4; // enter grade progression at YOS 5\r\n\r\n // Only make rank adjustment if needed.\r\n if (careerProgressionIndex !== -1) {\r\n let adjustedRank = '';\r\n\r\n for (let index = 0; index <= careerProgression.length - 1; index += 1) {\r\n if (currentRank === 'E-2' && currentYearOfService > 2) adjustedRank = enlistedSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'E-3' && currentYearOfService > 4) adjustedRank = enlistedSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'E-4' && currentYearOfService > 6) adjustedRank = enlistedSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-1' && currentYearOfService > 2) adjustedRank = officerSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-2' && currentYearOfService > 4) adjustedRank = officerSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-3' && currentYearOfService > 11) adjustedRank = officerSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'W-1' && currentYearOfService > 4) adjustedRank = warrantOfficerSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-1E') adjustedRank = priorEnlistedSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-2E') adjustedRank = priorEnlistedSuggestedCareerProgression[careerProgressionIndex];\r\n else if (currentRank === 'O-3E') adjustedRank = priorEnlistedSuggestedCareerProgression[careerProgressionIndex];\r\n\r\n careerProgression[index].suggestedRank = adjustedRank;\r\n careerProgression[index].yearOfServiceRank = adjustedRank;\r\n careerProgression[index].overrideRanks = getOverrideRanks(adjustedRank, careerProgression[index].yearOfService);\r\n\r\n careerProgressionIndex += 1;\r\n }\r\n }\r\n\r\n return careerProgression;\r\n}\r\n\r\n/*\r\n * Generate data to display upon initial entry into the Career Progressiin wizard page.\r\n */\r\nexport function getCareerService(serviceMember) {\r\n let careerService = [];\r\n\r\n const { currentRank } = serviceMember;\r\n let yearOfServiceRank;\r\n const rundate = serviceMember.rundate();\r\n const retSepDate = serviceMember.retSepDate();\r\n\r\n const allNumbersByMonth = getAllNumbersByMonthForCareerProgression(serviceMember);\r\n\r\n // Determine current year of service and ending year of service.\r\n const yearOfServiceStart = allNumbersByMonth.find((o) => o.calendarYear === rundate.year() && o.calendarMonth === rundate.month() + 1).pebdServiceYear;\r\n const yearOfServiceEnd = allNumbersByMonth.find((o) => o.calendarYear === retSepDate.year() && o.calendarMonth === retSepDate.month() + 1).pebdServiceYear;\r\n\r\n // Get the service member's performance level for the current service year (ie. behindTheCurve, ridingTheCurve, aheadOfTheCurve).\r\n // How the service member is performing in their current service year will determine which ranks to display for each service year in Career Progression -\r\n // 1) behindTheCurve ~ straight line the career progression from the current rank.\r\n // 2) ridingTheCurve ~ display the government suggest career progression for each service year.\r\n // 3) aheadOfTheCurve ~ straight line the career progression from the current rank.\r\n\r\n let yearOfServiceSuggestedRank = serviceMember.yearOfServiceSuggestedRank(yearOfServiceStart);\r\n const runDatePerformance = serviceMember.compareRanks(currentRank === 'E-1' ? yearOfServiceSuggestedRank : currentRank, yearOfServiceSuggestedRank);\r\n\r\n for (let serviceYear = yearOfServiceStart; serviceYear <= yearOfServiceEnd; serviceYear += 1) {\r\n switch (runDatePerformance) {\r\n case 'behindTheCurve':\r\n case 'aheadOfTheCurve':\r\n yearOfServiceSuggestedRank = currentRank;\r\n yearOfServiceRank = currentRank;\r\n break;\r\n case 'ridingTheCurve':\r\n default:\r\n yearOfServiceSuggestedRank = serviceMember.yearOfServiceSuggestedRank(serviceYear);\r\n yearOfServiceRank = yearOfServiceSuggestedRank;\r\n break;\r\n }\r\n\r\n // Calculate number of total months (including partial months) and full months (in the future) remaining in service year.\r\n const monthsInServiceYear = allNumbersByMonth.filter((x) => x.pebdServiceYear === serviceYear);\r\n let numberOfMonthsRemainingInServiceYear = monthsInServiceYear.length;\r\n let numberOfFullMonthsRemainingInServiceYear = numberOfMonthsRemainingInServiceYear;\r\n if (serviceYear === serviceMember.currentYearOfService()) {\r\n numberOfMonthsRemainingInServiceYear = monthsInServiceYear.filter((x) => x.calendarYear >= rundate.year() && x.calendarMonth >= rundate.month() + 1).length;\r\n numberOfFullMonthsRemainingInServiceYear = numberOfMonthsRemainingInServiceYear - 1;\r\n }\r\n\r\n // Retrieve career progression 'row' associated to service year.\r\n const obj = allNumbersByMonth.find((o) => o.pebdServiceYear === serviceYear);\r\n\r\n // Persist info to career progression 'row'.\r\n const serviceYearData = {\r\n yearOfService: obj.pebdServiceYear,\r\n age: obj.ageYears,\r\n calendarYear: obj.calendarYear,\r\n defaultOverrideRank: yearOfServiceRank,\r\n suggestedRank: yearOfServiceSuggestedRank,\r\n overrideRanks: getOverrideRanks(yearOfServiceRank, obj.pebdServiceYear),\r\n yearOfServiceRank,\r\n numberOfMonthsRemainingInServiceYear,\r\n numberOfFullMonthsRemainingInServiceYear,\r\n };\r\n\r\n // Get the count of RC months remaining in the service year.\r\n const countOfRcMonthsRemainingInServiceYear = serviceMember.countOfMonthsRemainingInServiceYear(allNumbersByMonth, 'RC', serviceYearData.yearOfService, rundate, retSepDate);\r\n\r\n if (countOfRcMonthsRemainingInServiceYear && countOfRcMonthsRemainingInServiceYear > 0) {\r\n serviceYearData.reserveComponent = getRcDutyYearLimits(serviceMember, countOfRcMonthsRemainingInServiceYear);\r\n }\r\n\r\n careerService.push(serviceYearData);\r\n }\r\n\r\n // Adjust the career progression for certain ranks with a certain number years of service.\r\n careerService = adjustCareerProgressionForUnderPerformers(careerService, serviceMember);\r\n\r\n return careerService;\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t953: 0,\n\t494: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [496,913,250,125,764,494,940,592,650,86,118], () => (__webpack_require__(8100)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","initialFormData","FormData","setStepIndex","state","stepIndex","currentStepIndex","setAltMode","altMode","currentStepAltMode","setFormData","data","formData","_objectSpread","setStepLoading","stepLoading","resetFormData","setSameAsPayDate","value","sameAsPayDate","setGlobalSettings","globalSettings","setModuleSettings","moduleSettings","setSteps","steps","map","step","index","setMoreInfo","moreInfo","setTooltips","tooltips","setPayTables","payTables","applySettingsToDefaults","_state$globalSettings","reserveComponent","tspSettings","withdrawalAgeYears","withdrawalAgeYearDefault","withdrawalAgeMonths","withdrawalAgeMonthDefault","contributionRate","toNumber","defaultContributionRate","growthRate","growthRateDisplay","withdrawalGrowthRate","withdrawalGrowthRateDisplay","retirementAgeYears","nonRegularRetirementCommencePayAtAgeYear","retirementAgeMonths","nonRegularRetirementCommencePayAtAgeMonth","setServiceMember","serviceMember","updateYearOfServiceRankCareerService","_ref","yearOfServiceRank","careerProgressionCareerService","careerProgression","careerService","i","length","updateOverrideRanksCareerService","_ref2","currentItem","overrideRanks","getOverrideRanks","yearOfService","updateReserveComponentCareerService","_ref3","key","validateReserveComponentCareerService","_ref4","isValid","setBornDateOptions","bornDateOptions","setPayEntryBaseDateOptions","payEntryBaseDateOptions","setActiveServiceDateOptions","activeServiceDateOptions","setRetirementSTOptions","retirementSTOptions","setTransferToRcOptions","transferToRcOptions","setTransferToAcOptions","transferToAcOptions","setQualifyingYearsOptions","qualifyingYearsOptions","setLifeExpectancyOptions","lifeExpectancyOptions","setWithdrawalAgeOptions","withdrawalAgeOptions","setRetirementAgeOptions","retirementAgeOptions","getOverrideRanksForHi3PastYears","rank","_ServiceMember","_inherits","Hi3ServiceMember","_super","_createSuper","_this","_classCallCheck","call","hi3PastYears","isEligibleForRetirementPension","numberOfMonthsRemainingInServiceCareer","currentRank","rundate","allNumbersByMonth","getAllNumbersByMonthForCareerProgression","startingDate","moment","subtract","endingDate","startingYearOfService","find","o","calendarYear","year","calendarMonth","month","pebdServiceYear","endingYearOfService","_loop","serviceYear","obj","push","age","ageYears","defaultOverrideRank","suggestedRank","getHi3PastYears","_assertThisInitialized","_createClass","ServiceMember","addPayAmountTodaysDollars","careerMonths","pebd","retSepDate","pebdPlus3Months","add","pebdPlus4Months","pebdPlus6Months","pebdserviceYear","payGrade","startDate","forEach","careerMonth","Number","calendarDate","endDate","tspWithdrawalDate","payAmountTodaysDollars","isSameOrAfter","isSameOrBefore","isBefore","overrideRank","isAfter","currentPayGrade","yearsDifferenceCalendarDateFromRundate","payTableFilename","concat","allNumbersHelpers","addPayAmountFutureDollars","rundateMinus1Month","payTableGrowthRateYear1","payTableGrowthRates","year1","payTableGrowthRateYear2","year2","payTableGrowthRateYear3","year3","payTableGrowthRateYear4","year4","payTableGrowthRateYear5","year5","hi3PastYearsRequired","hi3PastYearsStartDate","payAmountFutureDollars","calendarYearFromRundateYearOffset","yearOffset","populateHi3Data","allPayments","keys","results","endOfLifeDate","firstMonthOutOfServiceDate","pensionRetirementType","RETIREMENT_ELIGIBILITIES","TSP_ONLY","hi3Pension","allPaymentsYear","pensionPaymentAmount","getHi3Pension","hi3PensionAmountKey","item","isNumber","tspPayout","tspServiceMemberPaymentAmount","pensionTotal","getHi3Total","Vue","use","Vuex","preloadedState","useAll","config","initialState","mutations","updateYearOfServiceRankHi3PastYears","updateOverrideRanksHi3PastYears","careerProgressionHi3PastYears","generateResults","componentMatrix","COMPONENT_MATRICES","AC_2_AC","generateReserveComponent","paymentStartDate","REGULAR_RETIREMENT","nonRegularRetirementWithdrawalDate","generateHi3Pension","initializeValues","todaysDollars","overview","generateServiceMemberTsp","getResultsOverviewInTodaysDollars","futureDollars","getResultsOverviewInFutureDollars","tspSummary","getResultsTspSummaryInTodaysDollars","getResultsTspSummaryInFutureDollars","base","getResultsAllPaymentsInTodaysDollars","getResultsAllPaymentsInFutureDollars","allNumbers","getAllNumbersByMonthFromRunDateToDeathDateTodaysDollars","getAllNumbersByMonthFromRunDateToDeathDateFutureDollars","getters","actions","clearServiceMember","commit","initializeServiceMember","_state$formData","grade","retirementSTMonths","_ref5","_ref6","_ref7","_ref8","_ref9","render","_vm","this","_h","$createElement","_c","_self","_v","staticClass","attrs","currentStep","showNav","on","toPrevious","setPreviousStep","toNext","setNextStep","_e","header","footer","backdrop","keyboard","size","show","stepLoadingModalShown","src","_withStripped","directives","name","rawName","activeComponent","expression","modifiers","hover","type","domProps","checked","currentComponent","change","$event","separate","endingComponent","target","click","mixins","component","options","__file","_s","title","disabled","personalInformationIsValid","isDev","populateAndContinue","scopedSlots","_u","fn","proxy","bornDateMonths","bornDateMonth","_l","bornDateYear","bornDateYears","payEntryBaseDate","payEntryBaseDateMonths","payEntryBaseDateMonth","payEntryBaseDateYears","payEntryBaseDateYear","gradeOptions","showFor","activeServiceDate","activeServiceDateMonths","activeServiceDateMonth","activeServiceDateYears","activeServiceDateYear","retirementSTYears","transferToRcYears","transferToRcMonths","transferToAcYears","transferToAcMonths","hasError","activeServiceDaysHasError","activeService","min","activeServiceDaysMin","max","activeServiceDaysMax","activeServiceDays","input","toFixed","qualifyingYears","retirementPointsHasError","retirementPointsMin","retirementPointsMax","retirementPoints","components","retirementInformationIsValid","lifeExpectancy","withdrawalAge","contributionRateHasError","contributionRateMin","contributionRateMax","growthRateHasError","rateOfReturn","growthRateMin","growthRateMax","keyup","formatRate","withdrawalGrowthRateHasError","withdrawRate","tspServiceMemberContributionHasError","balanceServiceMember","tspServiceMemberContributionMin","tspServiceMemberContributionMax","tspServiceMemberContribution","dutyDaysHasError","errorMessages","mode","messages","_m","hi3PastYear","psy","onHi3PYChange","colspan","hasRc","careerServiceYear","rankChange","onRankChange","activeDutyDaysChange","days","updateReserveComponent","inactiveDutyDaysPaidChange","inactiveDutyDaysNonPaidChange","onValidate","props","methods","class","activeDutyDays","onActiveDutyDaysChange","membershipPoints","inactiveDutyDaysPaid","onInactiveDutyDaysPaidChange","inactiveDutyDaysNonPaid","onInactiveDutyDaysNonPaidChange","mapActions","today","getFilterCss","setFilter","future","changeOptions","startOver","showPrint","tabs","tab","active","activeTab","role","href","preventDefault","setTab","label","currentTab","slot","otherTabs","filter","onMounted","clearLoading","futureOverview","todaysOverview","futureTotalRetirementBenefit","todaysTotalRetirementBenefit","futurePresentValue","todaysPresentValue","moreInfoOpen","futureTspSummary","todaysTspSummary","TspSummaryMixin","futureAllPayments","todaysAllPayments","id","ref","exportToCsv","columns","col","text","style","width","careerByMonths","recordId","calendar","ageByMonths","ageCompletedYears","pebdService","pebdPresent","pebdCompleted","pebdYOSCompleted","asdService","asdPresent","asdCompleted","asdYOSCompleted","currentPayAmountTodaysDollars","currentPayAmountFutureDollars","pensionAmountTodaysDollars","pensionAmountFutureDollars","pensionColaGrowthRate","tspServiceMemberContributionAmountTodaysDollars","tspServiceMemberContributionMonthlyTotalTodaysDollars","tspYearlyRunningTotalAmountTodaysDollars","tspIrsYearlyCapLimitTodaysDollars","tspServiceMemberBalanceNoGrowthTodaysDollars","tspServiceMemberGrowthAmountTodaysDollars","tspServiceMemberWithdrawalTodaysDollars","tspServiceMemberBalanceTodaysDollars","tspServiceMemberContributionAmountFutureDollars","tspServiceMemberContributionMonthlyTotalFutureDollars","tspYearlyRunningTotalAmountFutureDollars","tspIrsYearlyCapLimitFutureDollars","tspServiceMemberBalanceNoGrowthFutureDollars","tspServiceMemberGrowthAmountFutureDollars","tspServiceMemberWithdrawalFutureDollars","tspServiceMemberBalanceFutureDollars","payPoints","serviceYearPoints","goodYear","inferredActiveDutyDays","inferredGoodYears","inferredRetirementPoints","getCsvRowData","canContinue","recalculate","getMilitaryPayCalculatorSettings","_context","duration","dismissible","EventBus","created","computed","mapState","mapGetters","_f","totalRetirementBenefit","items","staticStyle","border","bgColor","amount","total","padding","presentValue","totalContribution","maxAccountValue","annualizedPayment","tspTotal","columnHeadings","heading","militaryPay","serviceMemberTspContribution","OverviewDataMixin","TspSummaryDataMixin","conditions","filters","mount","_x","_x2","_mount","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","scripts","store","wrap","prev","next","getMilitaryPayCalculatorConfig","sent","createStore","el","h","Hi3Wizard","$on","w","window","open","document","write","s","postMessage","location","origin","stop","mountPopup","e","Hi3Print","VueToast","position","Vue2Filters","productionTip","getCommonAllNumbersByMonthFromRunDateToDeathDate","allNumbersData","calendarMonthAbbreviation","ageMonths","pebdServiceMonth","pebdPresentServiceYear","pebdPresentServiceMonth","pebdCompletedServiceYear","pebdCompletedServiceMonth","pebdCompletedServiceYears","asdServiceYear","asdServiceMonth","asdPresentServiceYear","asdPresentServiceMonth","asdCompletedServiceYear","asdCompletedServiceMonth","asdCompletedServiceYears","addRecordId","numberOfMonthsInLife","addCalendarYearMonth","dob","format","addAge","years","months","addAgePresentYears","presentAgeYear","presentAgeMonth","agePresentYear","agePresentMonth","addAgeCompletedYears","addPebdServiceYearsAndMonths","serviceMonth","addPebdPresentServiceYearsAndMonths","addPebdCompletedServiceYearsAndMonths","addPebdCompletedServiceYears","addAsdServiceYearsAndMonths","asd","addAsdPresentServiceYearsAndMonths","addAsdCompletedServiceYearsAndMonths","addAsdCompletedServiceYears","addSuggestedCareerProgression","yearOfServiceSuggestedRank","addOverrideCareerProgression","objCareerProgressionLastYearOfService","yearOfServiceCareerMonths","yearOfServiceCareerMonth","pebdPlus12Months","objCareerService","addComponent","AC_2_RC","transferToReserveComponentDate","RC_2_AC","transferToActiveComponentDate","RC_2_RC","getPayTableMonthlyPay","payTableServiceYear","addCurrentPayAmountTodaysDollars","addCurrentPayAmountFutureDollars","pmt","totalNumberOfPayments","rate","loanAmount","Math","pow","getReducedContributionAmountIfIrsCapIsMet","currentAmount","contributionAmount","capAmount","irsTspCapLimitMet","isEligibleForBonus","tspStartDate","details","calculatorName","optInYear","optInMonth","tspIrsYearlyCapGrowth","tspIrsYearlyCapLimit","isSame","computeTspIrsYearlyCapAmounts","tspServiceMemberContributionRate","x","priorTspYearlyRunningTotalAmountTodaysDollars","irsTspCapLimitMetDataTodaysDollars","irsTspCapLimitMetTodaysDollars","priorTspYearlyRunningTotalAmountFutureDollars","irsTspCapLimitMetDataFutureDollars","irsTspCapLimitMetFutureDollars","computeServiceMemberTspContribution","numberOfInstallments","percentageToTsp","computeCareerServiceBonusTodaysDollars","computeCareerServiceBonusFutureDollars","completionMultiplier","addBonusTo1stMonthAfterCompletingYos","serviceAgreementYears","computeContinuationPayTodaysDollars","computeContinuationPayFutureDollars","tspInflationRate","inflationRate","tspGrowthRate","tspWithdrawalGrowthRate","tspMonthlyGrowthRate","tspGrowthRateWithInflation","tspMonthlyGrowthRateWithInflation","tspWithdrawalMonthlyGrowthRate","tspWithdrawalGrowthRateWithInflation","tspWithdrawalMonthlyGrowthRateWithInflation","generateServiceMemberTspBalance","withdrawalDateMinus1Month","careerMonthAtWithdrawalDateMinus1Month","isUndefined","tspNumberOfPayments","numberOfMonthsFromTspWithdrawalDateToDeathDate","generateServiceMemberTspWithdrawal","bonusAmountTodaysDollars","bonusAmountFutureDollars","bonusAmountToTspTodaysDollars","bonusAmountToTspFutureDollars","tspGovernmentMandatoryContributionAmountTodaysDollars","tspGovernmentMandatoryContributionAmountFutureDollars","tspGovernmentMatchingContributionAmountTodaysDollars","tspGovernmentMatchingContributionAmountFutureDollars","tspGovernmentContributionMonthlyTotalTodaysDollars","tspGovernmentContributionMonthlyTotalFutureDollars","tspGovernmentBalanceNoGrowthTodaysDollars","tspGovernmentBalanceNoGrowthFutureDollars","tspGovernmentGrowthAmountTodaysDollars","tspGovernmentGrowthAmountFutureDollars","tspGovernmentWithdrawalTodaysDollars","tspGovernmentWithdrawalFutureDollars","tspGovernmentBalanceTodaysDollars","tspGovernmentBalanceFutureDollars","lumpSumTwentyFivePercentPensionAmountTodaysDollars","lumpSumTwentyFivePercentPensionAmountFutureDollars","lumpSumFiftyPercentPensionAmountTodaysDollars","lumpSumFiftyPercentPensionAmountFutureDollars","lumpSumTwentyFivePercentInstallmentTodaysDollars","lumpSumTwentyFivePercentInstallmentFutureDollars","lumpSumFiftyPercentInstallmentTodaysDollars","lumpSumFiftyPercentInstallmentFutureDollars","getAllNumbersByMonth","funcOverrides","undefined","defaultFuncs","funcs","firstMonthOutOfService","tspBalance","payAmount","currentPayAmount","tspContributionAmount","tspContributionAmountYearlyRunningTotal","addHi3PensionPaymentsRegularRetirementTodaysDollars","paymentStartDateMinus1month","paymentStartDateMinus1monthCareerMonth","paymentStartDateMinus1monthServiceTime","activeDutyServiceTime","getRcActiveDutyServiceTime","retSepDateMinus36Months","hi3ServiceMonthStart","hi3ServiceMonthEnd","hi3ServiceMonths","hi3PensionPayAverage","sumBy","hi3PensionAmountTodaysDollars","hi3PensionPercentage","hi3","todaysDollarsAverage","addHi3PensionPaymentsNonRegularRetirementTodaysDollars","nonRegularRetirementWithdrawalDateMinus1month","nonRegularRetirementWithdrawalDateMinus36Months","multiplier","addHi3PensionPaymentsRegularRetirementFutureDollars","hi3PensionColaGrowthRate","hi3PensionAmountFutureDollars","colaGrowthRateAdjustment","getColaAdjustmentRate","colaGrowthRates","futureDollarsAverage","addHi3PensionPaymentsNonRegularRetirementFutureDollars","parseInt","ranks","_toConsumableArray","splice","indexOf","getCareerService","yearOfServiceStart","yearOfServiceEnd","runDatePerformance","compareRanks","monthsInServiceYear","numberOfMonthsRemainingInServiceYear","numberOfFullMonthsRemainingInServiceYear","currentYearOfService","serviceYearData","countOfRcMonthsRemainingInServiceYear","countOfMonthsRemainingInServiceYear","numberOfRcMonthsInServiceYear","rcDutyYearPartialYearLimit","RC_DUTY_YEAR_PARTIAL_YEAR_LIMITS","monthsRemainingInYearOfService","activeDutyDaysDefault","membershipPointsDefault","inactiveDutyDaysPaidDefault","inactiveDutyDaysNonPaidDefault","getRcDutyYearLimits","officerSuggestedCareerProgression","officer","enlistedSuggestedCareerProgression","enlisted","warrantOfficerSuggestedCareerProgression","warrantOfficer","priorEnlistedSuggestedCareerProgression","priorEnlisted","careerProgressionIndex","adjustedRank","adjustCareerProgressionForUnderPerformers","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","every","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}