{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/ui/marketingList/marketingList.scss?e3e4","webpack:///./src/pages/makeAnAppointment/makeAnAppointment.scss?fd96","webpack:///./src/components/form/input/input.scss?c7d1","webpack:///./src/i18n/messages.csv","webpack:///./src/components/page/page.vue?b5a7","webpack:///./src/pages/makeAnAppointment/appointmentDesktop/appointmentDesktop.scss?a289","webpack:///./src/components/form/select/select.scss?f7ee","webpack:///./src/pages/resultsSimple/resultsSimple.scss?02aa","webpack:///./src/components/ui/badge/badge.scss?0fa0","webpack:///./src/components/questionCard/questionCard.vue?079f","webpack:///./src/components/form/checkbox/checkbox.scss?ecfc","webpack:///./src/components/wizard/wizard.vue?2818","webpack:///./src/components/ui/tabbedContent/tabbedContent.scss?fb6a","webpack:///./src/pages/financialSituation/financialSituation.vue?ae44","webpack:///./src/App.vue?c650","webpack:///./src/pages/pinpointResult/pinpointResult.scss?4327","webpack:///./src/components/ui/card/card.vue?9199","webpack:///./src/pages/makeAnAppointment/appointmentInputs/appointmentInputs.scss?5a06","webpack:///./src/assets/image-trotinette@2x.jpg","webpack:///./src/components/ui/projectionCard/projectionCard.scss?a577","webpack:///./src/components/optimizationIndicator/optimizationIndicator.scss?6b1b","webpack:///./src/pages/results/results.scss?c27e","webpack:///./src/components/optimizationTable/optimizationTable.scss?b0a5","webpack:///./src/components/form/radio/radio.scss?1aaa","webpack:///./src/components/ui/referenceNumberSection/referenceNumberSection.scss?7975","webpack:///./src/components/form/toggle/toggle.scss?879b","webpack:///./src/pages/financialMarketing/financialMarketing.scss?57c6","webpack:///./src/pages/results/results.vue?ade5","webpack:///./src/pages/errorPage/errorPage.scss?ea2f","webpack:///./src/components/ui/textTooltip/textTooltip.scss?0ad7","webpack:///./src/components/form/buttonCheckbox/buttonCheckbox.vue?e150","webpack:///./src/components/sectionOverview/sectionOverview.scss?600b","webpack:///./src/components/optimizationSection/optimizationSection.scss?bba3","webpack:///./src/pages/educationPlan/educationPlan.vue?0efa","webpack:///./src/components/ui/banner/banner.scss?08fb","webpack:///./src/components/ui/drawer/drawer.scss?8551","webpack:///./src/components/ui/telephoneContactInfo/telephoneContactInfo.scss?bc7b","webpack:///./src/components/ui/stackedThreeDBarGraph/stackedThreeDBarGraph.vue?3111","webpack:///./src/App.vue?05d5","webpack:///./src/i18n/index.ts","webpack:///./src/models/basicInformation.ts","webpack:///./src/utils/fauxDash.ts","webpack:///./src/utils/numberFormatter.ts","webpack:///./src/models/validation.ts","webpack:///./src/models/educationInformation.ts","webpack:///./src/components/icons/iconCategoryFamily/iconCategoryFamily.vue?3858","webpack:///./src/components/icons/iconCategoryFamily/iconCategoryFamily.vue","webpack:///./src/components/icons/iconCategoryOrientation/iconCategoryOrientation.vue?ed66","webpack:///./src/components/icons/iconCategoryOrientation/iconCategoryOrientation.vue","webpack:///./src/components/icons/iconCategoryTutoring/iconCategoryTutoring.vue?d4a1","webpack:///./src/components/icons/iconCategoryTutoring/iconCategoryTutoring.vue","webpack:///./src/models/tracker.ts","webpack:///./src/components/icons/iconCategoryFinance/iconCategoryFinance.vue?6183","webpack:///./src/components/icons/iconCategoryFinance/iconCategoryFinance.vue","webpack:///./src/models/financialInformation.ts","webpack:///./src/models/calculatorState.ts","webpack:///./src/models/optimizationState.ts","webpack:///./src/models/plan.ts","webpack:///./src/models/futureEducationCost.ts","webpack:///./src/models/receiveResultViewModel.ts","webpack:///./src/models/apiState.ts","webpack:///./src/api/calculator.ts","webpack:///./src/env.js","webpack:///./src/api/index.ts","webpack:///./src/components/form/select/select.ts","webpack:///./src/pages/basicInformationWizard/basicInformationWizard.vue?1629","webpack:///./src/components/form/input/input.vue?1738","webpack:///./src/components/form/input/input.ts","webpack:///./src/components/form/input/input.ts?4ff4","webpack:///./src/components/form/input/input.vue","webpack:///./src/components/form/radio/radio.vue?bca2","webpack:///./src/components/icons/iconRadioOn/iconRadioOn.vue?3328","webpack:///./src/components/icons/iconRadioOn/iconRadioOn.vue","webpack:///./src/components/icons/iconRadioOff/iconRadioOff.vue?c778","webpack:///./src/components/icons/iconRadioOff/iconRadioOff.vue","webpack:///./src/components/form/radio/radio.ts","webpack:///./src/components/form/radio/radio.ts?a52c","webpack:///./src/components/form/radio/radio.vue","webpack:///./src/components/form/select/select.vue?1f9e","webpack:///./src/components/icons/iconChevron/iconChevron.vue?4dbc","webpack:///./src/components/icons/iconChevron/iconChevron.ts","webpack:///./src/components/icons/iconChevron/iconChevron.ts?6920","webpack:///./src/components/icons/iconChevron/iconChevron.vue","webpack:///./src/components/page/page.ts","webpack:///./src/components/form/select/select.ts?ed05","webpack:///./src/components/form/select/select.vue","webpack:///./src/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.vue?d237","webpack:///./src/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.ts","webpack:///./src/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.ts?73f5","webpack:///./src/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.vue","webpack:///./src/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue?38fe","webpack:///./src/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.ts","webpack:///./src/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.ts?d675","webpack:///./src/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue","webpack:///./src/components/page/page.vue?e6ca","webpack:///./src/components/icons/iconContact/iconContact.vue?ca7b","webpack:///./src/components/icons/iconContact/iconContact.vue","webpack:///./src/components/icons/logoKaleidoSmall/logoKaleidoSmall.vue?f88f","webpack:///./src/components/icons/logoKaleidoSmall/logoKaleidoSmall.vue","webpack:///./src/components/icons/logoKaleidoLight/logoKaleidoLight.vue?05d6","webpack:///./src/components/icons/logoKaleidoLight/logoKaleidoLight.vue","webpack:///./src/components/needHelp/needHelp.vue?c26b","webpack:///./src/components/form/toggle/toggle.vue?5ff6","webpack:///./src/components/form/toggle/toggle.ts","webpack:///./src/components/form/toggle/toggle.ts?c58a","webpack:///./src/components/form/toggle/toggle.vue","webpack:///./src/components/icons/iconActionCheckCircle/iconActionCheckCircle.vue?9738","webpack:///./src/components/icons/iconActionCheckCircle/iconActionCheckCircle.vue","webpack:///./src/components/ui/telephoneContactInfo/telephoneContactInfo.vue?822d","webpack:///./src/components/ui/telephoneContactInfo/telephoneContactInfo.ts","webpack:///./src/components/ui/telephoneContactInfo/telephoneContactInfo.ts?4d74","webpack:///./src/components/ui/telephoneContactInfo/telephoneContactInfo.vue","webpack:///./src/components/needHelp/needHelp.ts","webpack:///./src/components/needHelp/needHelp.ts?ad4d","webpack:///./src/components/needHelp/needHelp.vue","webpack:///./src/components/ui/drawer/drawer.vue?c4e5","webpack:///./src/components/icons/iconClose/iconClose.vue?0ac4","webpack:///./src/components/icons/iconClose/iconClose.vue","webpack:///./src/utils/domHelper.ts","webpack:///./src/eventHub.ts","webpack:///./src/components/ui/drawer/drawer.ts","webpack:///./src/components/ui/drawer/drawer.ts?a174","webpack:///./src/components/ui/drawer/drawer.vue","webpack:///./src/components/ui/arbitraryTooltip/arbitraryTooltip.ts","webpack:///./src/components/page/page.ts?91cf","webpack:///./src/components/page/page.vue","webpack:///./src/components/questionCard/questionCard.vue?284e","webpack:///./src/components/ui/card/card.vue?2a3d","webpack:///./src/components/ui/card/card.ts","webpack:///./src/components/ui/card/card.ts?d592","webpack:///./src/components/ui/card/card.vue","webpack:///./src/components/questionCard/questionCard.ts","webpack:///./src/components/questionCard/questionCard.ts?4cf4","webpack:///./src/components/questionCard/questionCard.vue","webpack:///./src/components/ui/textTooltip/textTooltip.vue?b18c","webpack:///./src/components/ui/arbitraryTooltip/arbitraryTooltip.vue?0f11","webpack:///./src/pages/errorPage/errorPage.ts?8993","webpack:///./src/components/ui/arbitraryTooltip/arbitraryTooltip.ts?ee16","webpack:///./src/components/ui/arbitraryTooltip/arbitraryTooltip.vue","webpack:///./src/components/ui/textTooltip/textTooltip.ts","webpack:///./src/components/ui/textTooltip/textTooltip.ts?5ba3","webpack:///./src/components/ui/textTooltip/textTooltip.vue","webpack:///./src/components/wizard/wizard.vue?1d94","webpack:///./src/components/wizard/wizard.ts","webpack:///./src/components/wizard/wizard.ts?9ab0","webpack:///./src/components/wizard/wizard.vue","webpack:///./src/pages/basicInformationWizard/basicInformationWizard.ts","webpack:///./src/pages/basicInformationWizard/basicInformationWizard.ts?10bf","webpack:///./src/pages/basicInformationWizard/basicInformationWizard.vue","webpack:///./src/pages/educationMarketing/educationMarketing.vue?436b","webpack:///./src/components/icons/iconHighArrow/iconHighArrow.vue?21b4","webpack:///./src/components/icons/iconHighArrow/iconHighArrow.vue","webpack:///./src/components/ui/marketingList/marketingList.vue?94ea","webpack:///./src/components/ui/marketingList/marketingList.ts","webpack:///./src/components/ui/marketingList/marketingList.ts?58d9","webpack:///./src/components/ui/marketingList/marketingList.vue","webpack:///./src/components/ui/badge/badge.vue?6cd3","webpack:///./src/components/ui/badge/badge.ts","webpack:///./src/components/ui/badge/badge.ts?4a2c","webpack:///./src/components/ui/badge/badge.vue","webpack:///./src/pages/educationMarketing/educationMarketing.ts","webpack:///./src/pages/educationMarketing/educationMarketing.ts?08cb","webpack:///./src/pages/educationMarketing/educationMarketing.vue","webpack:///./src/pages/educationPlan/educationPlan.vue?ec92","webpack:///./src/pages/educationPlan/educationPlan.ts","webpack:///./src/pages/educationPlan/educationPlan.ts?3329","webpack:///./src/pages/educationPlan/educationPlan.vue","webpack:///./src/pages/errorPage/errorPage.vue?36a3","webpack:///./src/components/icons/iconError/iconError.vue?bdcd","webpack:///./src/components/icons/iconError/iconError.vue","webpack:///./src/pages/makeAnAppointment/makeAnAppointment.ts","webpack:///./src/pages/errorPage/errorPage.ts?1355","webpack:///./src/pages/errorPage/errorPage.vue","webpack:///./src/pages/financialMarketing/financialMarketing.vue?3725","webpack:///./src/pages/financialMarketing/financialMarketing.ts","webpack:///./src/pages/financialMarketing/financialMarketing.ts?8278","webpack:///./src/pages/financialMarketing/financialMarketing.vue","webpack:///./src/pages/financialSituation/financialSituation.vue?7c85","webpack:///./src/pages/financialSituation/financialSituation.ts","webpack:///./src/pages/financialSituation/financialSituation.ts?a806","webpack:///./src/pages/financialSituation/financialSituation.vue","webpack:///./src/pages/optimization/optimization.vue?70c0","webpack:///./src/components/optimizationTable/optimizationTable.vue?c8bc","webpack:///./src/components/optimizationTable/optimizationTable.ts","webpack:///./src/components/optimizationTable/optimizationTable.ts?a86c","webpack:///./src/components/optimizationTable/optimizationTable.vue","webpack:///./src/components/ui/banner/banner.vue?f0a0","webpack:///./src/components/icons/iconActionInformation/iconActionInformation.vue?5894","webpack:///./src/components/icons/iconActionInformation/iconActionInformation.vue","webpack:///./src/components/ui/banner/banner.ts","webpack:///./src/components/ui/banner/banner.ts?0597","webpack:///./src/components/ui/banner/banner.vue","webpack:///./src/pages/optimization/optimization.ts","webpack:///./src/pages/optimization/optimization.ts?1eba","webpack:///./src/pages/optimization/optimization.vue","webpack:///./src/pages/makeAnAppointment/makeAnAppointment.vue?d1b1","webpack:///./src/components/form/buttonCheckbox/buttonCheckbox.vue?56c6","webpack:///./src/components/form/buttonCheckbox/buttonCheckbox.ts","webpack:///./src/components/form/buttonCheckbox/buttonCheckbox.ts?d4f2","webpack:///./src/components/form/buttonCheckbox/buttonCheckbox.vue","webpack:///./src/components/form/checkbox/checkbox.vue?c8f1","webpack:///./src/components/icons/iconCheckmark/iconCheckmark.vue?d7f6","webpack:///./src/components/icons/iconCheckmark/iconCheckmark.vue","webpack:///./src/components/form/checkbox/checkbox.ts","webpack:///./src/components/form/checkbox/checkbox.ts?1120","webpack:///./src/components/form/checkbox/checkbox.vue","webpack:///./src/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue?cdb3","webpack:///./src/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue","webpack:///./src/components/ui/referenceNumberSection/referenceNumberSection.vue?8fb9","webpack:///./src/components/ui/tooltip/tooltip.vue?fe77","webpack:///./src/components/ui/tooltip/tooltip.ts","webpack:///./src/components/ui/tooltip/tooltip.ts?a147","webpack:///./src/components/ui/tooltip/tooltip.vue","webpack:///./src/components/ui/referenceNumberSection/referenceNumberSection.ts","webpack:///./src/components/ui/referenceNumberSection/referenceNumberSection.ts?2aa8","webpack:///./src/components/ui/referenceNumberSection/referenceNumberSection.vue","webpack:///./src/components/ui/tabbedContent/tabbedContent.vue?861d","webpack:///./src/components/icons/iconLeaf/iconLeaf.vue?d65b","webpack:///./src/components/icons/iconLeaf/iconLeaf.vue","webpack:///./src/components/ui/tabbedContent/tabbedContent.ts","webpack:///./src/components/ui/tabbedContent/tabbedContent.ts?8361","webpack:///./src/components/ui/tabbedContent/tabbedContent.vue","webpack:///./src/pages/makeAnAppointment/appointmentDesktop/appointmentDesktop.vue?6acc","webpack:///./src/pages/makeAnAppointment/appointmentInputs/appointmentInputs.vue?c79d","webpack:///./src/pages/makeAnAppointment/appointmentInputs/appointmentInputs.ts","webpack:///./src/pages/makeAnAppointment/appointmentInputs/appointmentInputs.ts?b96f","webpack:///./src/pages/makeAnAppointment/appointmentInputs/appointmentInputs.vue","webpack:///./src/pages/makeAnAppointment/appointmentDesktop/appointmentDesktop.ts","webpack:///./src/pages/makeAnAppointment/appointmentDesktop/appointmentDesktop.ts?15dc","webpack:///./src/pages/makeAnAppointment/appointmentDesktop/appointmentDesktop.vue","webpack:///./src/pages/errorPage/errorPage.ts","webpack:///./src/pages/makeAnAppointment/makeAnAppointment.ts?6fe8","webpack:///./src/pages/makeAnAppointment/makeAnAppointment.vue","webpack:///./src/pages/pinpointResult/pinpointResult.vue?b6ba","webpack:///./src/components/sectionOverview/sectionOverview.vue?fe4b","webpack:///./src/components/icons/iconClock/iconClock.vue?e9eb","webpack:///./src/components/icons/iconClock/iconClock.vue","webpack:///./src/components/icons/iconComplete/iconComplete.vue?9f21","webpack:///./src/components/icons/iconComplete/iconComplete.vue","webpack:///./src/components/sectionOverview/sectionOverview.ts","webpack:///./src/components/sectionOverview/sectionOverview.ts?5940","webpack:///./src/components/sectionOverview/sectionOverview.vue","webpack:///./src/pages/pinpointResult/pinpointResult.ts","webpack:///./src/pages/pinpointResult/pinpointResult.ts?21e8","webpack:///./src/pages/pinpointResult/pinpointResult.vue","webpack:///./src/pages/results/results.vue?b255","webpack:///./src/components/icons/iconEdit/iconEdit.vue?00a1","webpack:///./src/components/icons/iconEdit/iconEdit.vue","webpack:///./src/components/icons/iconInformation/iconInformation.vue?6d16","webpack:///./src/components/icons/iconInformation/iconInformation.vue","webpack:///./src/components/optimizationIndicator/optimizationIndicator.vue?0dac","webpack:///./src/components/optimizationIndicator/optimizationIndicator.ts","webpack:///./src/components/optimizationIndicator/optimizationIndicator.ts?c414","webpack:///./src/components/optimizationIndicator/optimizationIndicator.vue","webpack:///./src/components/optimizationSection/optimizationSection.vue?53fe","webpack:///./src/components/optimizationSection/optimizationSection.ts","webpack:///./src/components/optimizationSection/optimizationSection.ts?6c9e","webpack:///./src/components/optimizationSection/optimizationSection.vue","webpack:///./src/components/ui/projectionCard/projectionCard.vue?6230","webpack:///./src/components/icons/iconArrow/iconArrow.vue?3947","webpack:///./src/components/icons/iconArrow/iconArrow.vue","webpack:///./src/components/icons/iconIdeo/iconIdeo.vue?a137","webpack:///./src/components/icons/iconIdeo/iconIdeo.vue","webpack:///./src/components/ui/stackedThreeDBarGraph/stackedThreeDBarGraph.vue?40df","webpack:///./src/components/ui/stackedThreeDBarGraph/stackedThreeDBarGraph.ts","webpack:///./src/components/ui/stackedThreeDBarGraph/stackedThreeDBarGraph.ts?a5bd","webpack:///./src/components/ui/stackedThreeDBarGraph/stackedThreeDBarGraph.vue","webpack:///./src/components/ui/projectionCard/projectionCard.ts","webpack:///./src/components/ui/projectionCard/projectionCard.ts?fb6b","webpack:///./src/components/ui/projectionCard/projectionCard.vue","webpack:///./src/components/icons/iconCategoryHealth/iconCategoryHealth.vue?5405","webpack:///./src/components/icons/iconCategoryHealth/iconCategoryHealth.vue","webpack:///./src/pages/results/results.ts","webpack:///./src/pages/results/results.ts?d6db","webpack:///./src/pages/results/results.vue","webpack:///./src/pages/resultsSimple/resultsSimple.vue?84f3","webpack:///./src/pages/resultsSimple/resultsSimple.ts","webpack:///./src/pages/resultsSimple/resultsSimple.ts?7493","webpack:///./src/pages/resultsSimple/resultsSimple.vue","webpack:///./src/router/routes.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/router/index.ts","webpack:///./src/main.ts","webpack:///./src/components/ui/arbitraryTooltip/arbitraryTooltip.scss?31ef","webpack:///./src/pages/educationMarketing/educationMarketing.scss?1d10","webpack:///./src/assets/image-escalier@3x.jpg","webpack:///./src/components/ui/tooltip/tooltip.scss?0ce3","webpack:///./src/assets/image-roulade@3x.jpg","webpack:///./src/pages/resultsSimple/resultsSimple.vue?a04a","webpack:///./src/pages/optimization/optimization.scss?f4f9","webpack:///./src/pages/basicInformationWizard/basicInformationWizard.vue?7f16","webpack:///./src/components/needHelp/needHelp.scss?663b"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","_b","apiState","calculatorAPI","calculatorState","calculatorViewModel","optimizationState","futureEducationCostState","tracker","resetCalculatorState","resubmitReferenceNumber","saveResult","staticRenderFns","use","buildMessagesObject","location","hostname","includes","pathname","document","documentElement","lang","history","replaceState","state","i18n","locale","fallbackLocale","messages","pluralizationRules","fr","choice","choicesLength","messageRows","en","forEach","row","ChildRole","Provinces","SavingStrategy","BasicInformationWizardSteps","FauxDash","sumBy","items","func","sum","item","shallowObjectEquals","a","b","NumberFormatter","formatCurrency","minimumFractionDigits","roundedValue","toFixed","toString","replace","emailValidationRegex","Validation","numberInRangeExclusive","min","max","Number","isFinite","numberOrDefault","val","orElse","postalCode","toLowerCase","test","postalCodeMask","mask","prepare","toUpperCase","telephone","telephoneMask","email","EducationLevel","HousingType","EducationPlanSteps","childName","childAge","relationshipToChild","Parent","province","Quebec","startingAmount","savingStrategy","Monthly","monthlyDeposit","totalGoal","vm","isComplete","BasicInformationState","trim","assign","BasicInformationViewModel","baseProps","other","values","filter","stepValues","reduce","stepRoutes","step","route","find","Name","Age","Role","Province","StartingAmount","TotalGoal","baseFields","label","translateRelation","translateProvince","stepProgression","every","completionLocationName","params","getRouteFromStep","query","basicInfos","role","translationKey","Guardian","FriendOrFamily","NewBrunswick","script","component","PageScroll","targetedLevel","BAC","housingType","Away","EducationInformationState","EducationInformationViewModel","type","Home","Level","Housing","translateEducationLevel","DEC","translateHousingType","icon","title","text","educationInfos","DEP","level","CEPTechnique","CCNB","familyIncome","FinancialInformationState","FinancialInformationViewModel","1","financialInfos","asViewModel","CalculatorState","fromViewModel","CalculatorViewModel","clone","equals","educationLevels","grantsOptimized","educationProjectOptimized","baseProjections","grantsOptimizedProjections","educationProjectProjections","lastCalculatorViewModel","newCalculatorViewModel","isOptimized","plans","map","baseProjection","grantsOptimizedProjection","projections","plan","educationProjectProjection","grantsMaxContribution","Math","monthlyDirectContributions","educationMaxContribution","maxGrantsProjections","TypePlan","LanguageMapping","gtagInstance","routerInstance","provinceRaw","targetedEducationLevel","referenceNumber","optimization","optInInfoletter","gtag","router","pageview","baseParams","page_title","meta","gtm","page_path","path","scrollTop","body","scrollHeight","percentScrolled","clientHeight","zero","twentyFive","fifty","seventyFive","hundred","receiveResultViewModel","convertChildAge","convertRelationshipToChild","convertTargetedEducationLevel","convertFamilyIncome","convertStartingAmount","convertReferenceNumber","convertOptimization","convertOptInInfoletter","receiveMarketingEmails","age","etudes_envisagees","montant_depart","revenu","numero_de_reference","optimisation","opt_in_infolettre","langue","currentRoute","pageScroll","event","eventName","extraParams","relationship","income","apiFutureEducationCost","educationLevel","niveauEtude","averageAmount","coutMoyen","_futureEducationCosts","possibleEducationLevels","costs","cost","futureEducationCosts","firstName","lastName","telephoneNumber","availableMorning","availableAfternoon","availableEvening","emailResult","scheduleAppointment","recaptchaResponse","validations","concat","v","ReceiveResultViewModel","oldState","_referenceNumber","_lastPostedViewModel","_submissionData","_hasMadeAppointment","_isOutdated","_recentlyResubmitted","justMadeAppointment","hasMadeAppointment","referenceNumberData","submissionData","lastPostedViewModel","newModel","directContributions","incomeOnDirectContributions","incomeOnGrants","grants","total","initialDirectContributions","planNameFr","planNameEn","color","tooltip","totalIncome","apiProjection","projection","Projection","cotisations","revenusSurCotisations","revenusSurSubventions","subventions","contributionInitiale","contributionMensuelle","CalculatorAPIServiceRoute","AppointmentTimes","apiPlan","Plan","nomPlan","nomPlanAnglais","fromAPIProjection","projectionAvecMontantDemande","projectionAvecMontantPourAtteindreProjetEtude","projectionAvecMontantOptimise","overrides","calculateur_env","VUE_APP_ENABLE_HOTKEYS","process","VUE_APP_RECAPTCHA_KEY","VUE_APP_GA_ID","VUE_APP_API_URL","APIService","post","request","env","error","messageErreur","undefined","Promise","reject","calculatorRequestFromState","Error","ageBeneficiaire","objectifEpargne","projetEtude","situationFinanciere","niveauEtudeVise","lieuResidence","revenuAnnuel","sleep","resolve","setTimeout","Keys","forceError","GetResults","response","objetRetour","fromAPIPlan","amount","EvolutifIDEO","FutureEducationCosts","viewModel","appointmentTimes","Morning","Afternoon","Evening","numeroReference","prenomSouscripteur","nomSouscripteur","prenomBeneficiaire","roleSouscripteur","courriel","codePostal","envoyerParCourriel","accepteRecevoirCourrielInformationnel","planifierUnAppel","partagerResultat","momentsPrivilegies","calculerProjection","maximiserSubventions","maximiserProjetEtude","ReceiveYourResult","ref","staticClass","currentStep","$t","on","onNextStep","onBack","model","callback","$$v","$set","expression","noReeePossible","$event","showDrawer","domProps","_s","_e","noGovernmentSubsidiesPossible","showNeedHelp","_v","step3Title","possibleRoles","_l","possibleStrategies","strategy","translateSavingStrategy","step2Paragraph","scopedSlots","_u","fn","proxy","calculationHelpKey","futureEducationCost","_f","class","computedInvalid","directives","rawName","staticStyle","emitInput","target","checkInternalInvalid","onFocus","onBlur","inputProps","append","invalidLabel","Input","extend","props","String","required","Boolean","default","invalid","validator","Function","internalInvalid","computed","$attrs","optional","maxlength","maxLength","pattern","inputmode","attrMaxLength","mounted","addPaddingOnInput","methods","$emit","parseInt","$refs","input","inputElement","appendElement","extraPadding","clientWidth","paddingRight","style","focus","activeElement","watch","imask","checked","Radio","components","IconRadioOn","IconRadioOff","tabindex","emitNativeInputValue","placeholder","option","getKey","_t","getLabel","hidden","labelId","getId","internalValue","buttonId","show","hide","onButtonKeyPress","hasBeenOpened","hideOnClickOutside","onListKeyPress","isOptionSelected","hardSelect","IconChevron","HeaderStyle","BackgroundStyle","Select","options","Array","getOptionKey","getOptionLabel","inputButton","expandableItemList","listElements","from","childNodes","nextItem","_","index","previousItem","uniqueId","Date","now","getMatchingElement","element","id","toggle","classList","remove","scrollToElement","emitValue","add","relatedTarget","softSelect","Down","Up","Enter","preventDefault","nextOption","searchOptions","Escape","Tab","characterMatchesOption","character","startsWith","currentValueIndex","findIndex","getFirstElementMatching","goingDown","matchingOptions","isElementVisible","offsetTop","containerTop","containerBottom","elementTop","elementBottom","IconActionExclamationCircleFull","IconActionQuestionCircle","_obj","_obj$1","backgroundColor","headerStyle","hideNeedHelp","$slots","footerClass","toggleStyle","disabled","_m","smallLabel","Toggle","noHeader","TelephoneContactInfo","NeedHelp","IconActionCheckCircle","contentUniqueKey","isModal","currentTarget","backgroundImage","bannerSrc","bannerAlt","hideFooter","footer","focusablesCSSQuery","DomHelper","getFocusables","rootElement","root","elements","querySelectorAll","isStyleVisible","getComputedStyle","display","visibility","parentElement","getFirstOverflowHiddenContainer","page","querySelector","parent","overflow","overflowX","overflowY","getRepositioning","container","offsetWidth","offsetHeight","x","y","containerBounds","getBoundingClientRect","elementBounds","left","right","top","bottom","EventHub","Drawer","IconClose","drawerController","created","$on","beforeDestroy","removeEventListeners","removeBodyClass","bodyClass","isKeyboardEvent","screenX","screenY","scrollX","scrollY","requestAnimationFrame","scrollTo","drawer","addEventListeners","focusables","addEventListener","closeOnEscape","trapFocusKey","removeEventListener","keyCode","shiftKey","firstFocusable","lastFocusable","getDrawer","random","Position","Page","LogoKaleidoLight","LogoKaleidoSmall","IconContact","Marine","hasFloatingLogo","doNotTrack","needHelpDrawer","sectionName","maxStep","showReturnOnFirstStep","questionStep","section","nextEnabled","Card","QuestionCard","focusElements","toggleTabIndexes","updated","$nextTick","ensureUnfocusable","isShown","elem","removeAttribute","setAttribute","focusRoot","getAttribute","tagName","emitOpen","open","internalPosition","caretColor","buttonClass","ErrorPageType","PositionOpposites","Top","Bottom","Right","Left","ArbitraryTooltip","position","isRepositioning","openTooltipOnFocusInside","reset","tooltipContent","firstOverflowHiddenContainer","transform","contains","repositionTooltip","TextTooltip","word","innerHTML","translateX","CARD_SPACING","Wizard","stepDelta","translate1","translate2","BasicInformationWizard","stepFromUrl","getStepFromRoute","$router","beforeRouteLeave","to","next","basicInfoNames","updateDimensions","stepIsEnabled","possibleProvinces","completionLocation","$route","drawerName","setState","back","resetEducationLevel","routeName","trackDefinition","item_name","updateFutureEducationCosts","getFutureEducationCosts","stepFromRoute","invalidChange","nextLocation","marketingListItems","toggleable","tag","selectedItem","indexOf","_k","select","MarketingList","Badge","EducationMarketing","IconHighArrow","possibleHousingTypes","moduleStep1Paragraph1","moduleStep1Paragraph2Key","moduleStep2Paragraph2","EducationPlan","__","description","isButtonLink","onButtonClick","buttonText","AppointmentStep","AppointmentTab","ErrorPage","pageType","onClick","IconError","NotFound","FinancialMarketing","FinancialSituation","onSaveOptimizations","isLoading","financialInformation","onOptimizeFinancialSituation","educationInformation","onCompleteEducationInformation","vertical","column","bold","strikeThrough","accent","isStatic","OptimizationTable","getFormattedMonthlyContributions","displayedProjection","displayedProjections","displayTable","baseProjectionContributions","grantsOptimizedProjectionContributions","educationProjectProjectionContributions","headerItems","verticalRows","rows","columns","firstRow","textDesktop","subtextDesktop","subtext","Banner","IconActionInformation","Optimization","needsReset","showOptimizationResetBanner","resetOptimizations","getPlans","then","setProjections","catch","finally","basicInformation","optimizationResetBanner","hideOptimizationResetBanner","trackSaveOptimizations","sectionFormLocation","startSectionEventName","isSending","Consent","initiallyHadAppointment","appointmentViewModel","canAppointment","appointmentNext","Call","openTab","Telephone","trackCall","shareModel","initiallyHadReferenceNumber","consentNext","hideErrorModal","ButtonCheckbox","centerLabel","Checkbox","IconCheckmark","isFooter","isOutdated","resubmit","Tooltip","ReferenceNumberSection","IconActionCheckCircleFull","tabStyle","tab","currentTab","setTab","icons","TabbedContent","tabs","IconLeaf","AppointmentInputs","AppointmentDesktop","MakeAnAppointment","$recaptchaLoaded","$recaptchaInstance","showBadge","trackScroll","scroll","hideBadge","maxPageScrolled","Appointment","getCurrentPageScroll","showErrorModal","errorModal","canShare","canConsent","displayBackToConsentButton","onNext","trackSectionClick","small","$tc","timeToFinish","buttonAriaLabel","onLinkClick","buttonLabel","field","overviewText","SectionOverview","IconClock","IconComplete","PinpointResult","planName","getProjectionFromPlanName","maxSavings","showMaxContributionNotice","isContributionCapped","disableOptimizationSection","onOptimizeResult","onPinpointEducationProject","maxCappedProjectionTotal","healthMarketing","valueMissing","OptimizationIndicator","educationProjectObjective","baseTotal","amountForEducationProjectObjective","isEducationProject","addApostropheToLabel","addLabelVariants","OptimizationSection","bloc_optimisation","titleLine1","barGraphItems","maxProjectionTotal","hideSeeMore","openProgramInfoDrawer","graphValue","leftColor","proportion","topColor","rightColor","StackedThreeDBarGraph","scaleY","entranceAnimating","adjustedScaleY","opacity","containerStyle","sideSections","overallTotal","runningTotal","cumItems","ProjectionCard","IconArrow","IconIdeo","planInfoDrawer","isPlaceholder","Results","IconInformation","IconEdit","resetProjections","hideRecaptchaBadge","some","allProjections","flatMap","hideDrawer","valueInput","provinceInput","optimizedMonthlyContribution","grantsOptimizationEnabled","valuesValid","valuesChanged","calculate","formatNiveauEtude","coutMoyenMaison","coutMoyenAppart","submittedAmount","calculated","coutsProgrammes","getPlan","home","away","all","returnedArrays","coutsProgrammesMaison","coutsProgrammesAppart","sort","cout","coutAppart","innerWidth","elmnt","getElementsByClassName","scrollIntoView","behavior","block","routes","RouterHelper","isFormRoute","visualizationCount","$gtag","startingRoutes","replaceToFirstStep","nombre_de_visualisations","sendThemHome","fillSections","ctrlKey","getTestData","educationVm","financialVm","testData","onViewModelUpdate","toggleForceError","console","log","execute","updateReferenceNumber","makeAppointment","newRoute","old","onRouteChange","base","beforeEach","nearestTitle","matched","reverse","config","send_page_view","productionTip","siteKey","loaderOptions","autoHideBadge","renderParameters","hl","onload","inputs","onbeforeunload","el","render","h","App"],"mappings":"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","file":"calculator.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./marketingList.scss?vue&type=style&index=0&id=87d90318&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./makeAnAppointment.scss?vue&type=style&index=0&id=5479db6b&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./input.scss?vue&type=style&index=0&id=b371c62e&lang=scss&scoped=true&\"","module.exports = [{\"key\":\"hello.my.friend.text\",\"en\":\"(EN) Hello {0} {1} flaksdjf laskdfj asdlkfjads lfkjads lfkajsd fladskjf adlskfj asdlfkj asdlkfj asdlfkjasd lfkjads lfkjasd flkadsj fldsak {0} ldfkjsl fkjasdl fkadsjfla sdjfl\",\"fr\":\"Hello {0} {1} flaksdjf laskdfj asdlkfjads lfkjads lfkajsd fladskjf adlskfj asdlfkj asdlkfj asdlfkjasd lfkjads lfkjasd flkadsj fldsak {0} ldfkjsl fkjasdl fkadsjfla sdjfl alsdkfjas dlkfjasd lkfjasd lfkajsdfl askdjf asdlkfjas dlkfjads lkfjads flaksjf lkasdfj {1} lsakdfj ladskfjads lfkjads lfkadsjf lasdkjf lsadkfjasdl kfj asdlkfj aslkfjas dlfkj asdlkfj asdlkf {0} s ldfkjas ldfkjads flkasdjf ladksjfals dkfj alsdkjf alsdkjf lsak.\"},{\"key\":\"hello.my.friend.word1\",\"en\":\"(EN) my\",\"fr\":\"mon\"},{\"key\":\"hello.my.friend.word2\",\"en\":\"(EN) friend\",\"fr\":\"ami\"},{\"key\":\"hello.my.friend.tooltip1\",\"en\":\"(EN) definition of my\",\"fr\":\"définition de mon lkasdjf lasdkjf alsdkfj asdlfkjasd lfkjasd flkasdjfd lasdkk jdlfkjas dlfkjasd flkasdjf lasdkjf asdlkfjas dlfkjas dflkjasdl\"},{\"key\":\"hello.my.friend.tooltip2\",\"en\":\"(EN) definition of friend\",\"fr\":\"définition de ami\"},{\"key\":\"meta.title\",\"en\":\"RESP Calculator | Plan for your child’s future\",\"fr\":\"Calculateur REEE | Planifiez l’avenir de votre enfant\"},{\"key\":\"meta.description\",\"en\":\"Kaleido can help you calculate how much you should invest in your RESP to maximize government grants.\",\"fr\":\"Kaleido vous accompagne pour calculer le montant à investir dans votre REEE pour maximiser les subventions gouvernementales.\"},{\"key\":\"meta.url\",\"en\":\"www.kaleido.ca/en/resp-calculator/\",\"fr\":\"www.kaleido.ca/fr/calculateur-reee\"},{\"key\":\"routes.titleSuffix\",\"en\":\"RESP Calculator | Kaleido\",\"fr\":\"Calculateur REEE | Kaleido\"},{\"key\":\"routes.home\",\"en\":\"/\",\"fr\":\"/\"},{\"key\":\"routes.home.title\",\"en\":\"Let’s get acquainted\",\"fr\":\"Faisons connaissance\"},{\"key\":\"routes.basicInformation\",\"en\":\"/lets-get-acquainted/:step\",\"fr\":\"/faisons-connaissance/:step\"},{\"key\":\"routes.basicInformation.title\",\"en\":\"Let’s get acquainted\",\"fr\":\"Faisons connaissance\"},{\"key\":\"routes.basicInformation2.title\",\"en\":\"Let’s talk investments\",\"fr\":\"Parlons investissement\"},{\"key\":\"routes.basicInformation.step.1\",\"en\":\"first-name\",\"fr\":\"prenom\"},{\"key\":\"routes.basicInformation.step.2\",\"en\":\"age\",\"fr\":\"age\"},{\"key\":\"routes.basicInformation.step.3\",\"en\":\"role\",\"fr\":\"role\"},{\"key\":\"routes.basicInformation.step.4\",\"en\":\"province\",\"fr\":\"province\"},{\"key\":\"routes.basicInformation.step.5\",\"en\":\"initial-contribution\",\"fr\":\"montant-depart\"},{\"key\":\"routes.basicInformation.step.6\",\"en\":\"investment-strategy\",\"fr\":\"strategie-epargne\"},{\"key\":\"routes.basicInformation.financial\",\"en\":\"/lets-talk-investments/:step\",\"fr\":\"/parlons-investissement/:step\"},{\"key\":\"routes.basicInformation.financial.title\",\"en\":\"Let’s talk investments\",\"fr\":\"Parlons investissement\"},{\"key\":\"routes.pinpointResult\",\"en\":\"/lets-dig-deeper\",\"fr\":\"/allons-plus-loin\"},{\"key\":\"routes.pinpointResult.title\",\"en\":\"Let’s dig deeper\",\"fr\":\"Allons plus loin\"},{\"key\":\"routes.results\",\"en\":\"/lets-see-the-result\",\"fr\":\"/visualisons-le-resultat\"},{\"key\":\"routes.results.title\",\"en\":\"Let’s see the result\",\"fr\":\"Visualisons le résultat\"},{\"key\":\"routes.resultsSimple\",\"en\":\"/calculate\",\"fr\":\"/calculer\"},{\"key\":\"routes.educationPlan\",\"en\":\"/lets-dig-deeper/education-plans/:step\",\"fr\":\"/allons-plus-loin/etudes-envisagees/:step\"},{\"key\":\"routes.educationPlan.title\",\"en\":\"Post-secondary education plans\",\"fr\":\"Études postsecondaires envisagées\"},{\"key\":\"routes.educationPlan.step.1\",\"en\":\"education-level\",\"fr\":\"niveau-etude\"},{\"key\":\"routes.educationPlan.step.2\",\"en\":\"place-of-residence\",\"fr\":\"logement\"},{\"key\":\"routes.educationMarketing\",\"en\":\"/lets-dig-deeper/education-plans/offers\",\"fr\":\"/allons-plus-loin/etudes-envisagees/offres\"},{\"key\":\"routes.educationMarketing.title\",\"en\":\"Post-secondary education plans\",\"fr\":\"Études postsecondaires envisagées\"},{\"key\":\"routes.financialSituation\",\"en\":\"/lets-dig-deeper/financial-situation/family-income\",\"fr\":\"/allons-plus-loin/situation-financiere/revenu-familial\"},{\"key\":\"routes.financialSituation.title\",\"en\":\"Financial situation\",\"fr\":\"Situation financière\"},{\"key\":\"routes.financialMarketing\",\"en\":\"/lets-dig-deeper/financial-situation/offers\",\"fr\":\"/allons-plus-loin/situation-financiere/offres\"},{\"key\":\"routes.financialMarketing.title\",\"en\":\"Financial situation\",\"fr\":\"Situation financière\"},{\"key\":\"routes.receiveYourResult\",\"en\":\"/get-my-result\",\"fr\":\"/recevoir-mon-resultat\"},{\"key\":\"routes.receiveYourResult.title\",\"en\":\"Get my result\",\"fr\":\"Recevoir votre résultat\"},{\"key\":\"routes.optimization\",\"en\":\"/lets-optimize\",\"fr\":\"/optimisons\"},{\"key\":\"routes.optimization.title\",\"en\":\"Let’s optimize\",\"fr\":\"Optimisons\"},{\"key\":\"routes.makeAnAppointment\",\"en\":\"/lets-talk\",\"fr\":\"/parlons-nous\"},{\"key\":\"routes.makeAnAppointment.title\",\"en\":\"Let’s talk\",\"fr\":\"Parlons-nous\"},{\"key\":\"routes.error\",\"en\":\"/error\",\"fr\":\"/erreur\"},{\"key\":\"routes.error.title\",\"en\":\"Error\",\"fr\":\"Erreur\"},{\"key\":\"childRelationship.parent\",\"en\":\"Parent\",\"fr\":\"Parent\"},{\"key\":\"childRelationship.guardian\",\"en\":\"Guardian\",\"fr\":\"Tuteur/Tutrice\"},{\"key\":\"childRelationship.friendOrFamily\",\"en\":\"Friend/Family member\",\"fr\":\"Amis/Famille\"},{\"key\":\"educationLevel.dep\",\"en\":\"DVS\",\"fr\":\"Diplôme d'études professionnelles (DEP)\"},{\"key\":\"educationLevel.cepTechnique\",\"en\":\"DCS Technical\",\"fr\":\"Diplôme d'études collégiales (DEC technique)\"},{\"key\":\"educationLevel.dec\",\"en\":\"DCS\",\"fr\":\"Diplôme d'études collégiales (DEC)\"},{\"key\":\"educationLevel.bac\",\"en\":\"BA\",\"fr\":\"Baccalauréat (BAC)\"},{\"key\":\"educationLevel.ccnb\",\"en\":\"Community college degree\",\"fr\":\"Diplôme du Collège communautaire (CCNB)\"},{\"key\":\"no-diploma\",\"en\":\"No Post-Secondary Diploma\",\"fr\":\"Pas de diplôme d'études postsecondaires\"},{\"key\":\"DEP\",\"en\":\"Diploma of Vocational Studies (DVS)\",\"fr\":\"Diplôme d'études professionnelles (DEP)\"},{\"key\":\"DEP-outside-qc\",\"en\":\"Diploma in Technical and Vocational Studies\",\"fr\":\"Diplôme d'études Techniques et professionnelles\"},{\"key\":\"DECTechnique\",\"en\":\"Diploma of College Studies (DCS Technical)\",\"fr\":\"Diplôme d'études collégiales (DEC technique)\"},{\"key\":\"DEC\",\"en\":\"Diploma of College Studies (DCS)\",\"fr\":\"Diplôme d'études collégiales (DEC)\"},{\"key\":\"BAC\",\"en\":\"Bachelor's degree\",\"fr\":\"Baccalauréat (BAC)\"},{\"key\":\"BAC-outside-qc\",\"en\":\"Bachelor's\",\"fr\":\"Baccalauréat (BAC)\"},{\"key\":\"CCNB\",\"en\":\"College Diploma\",\"fr\":\"Diplôme Collégial\"},{\"key\":\"housingType.home\",\"en\":\"Live at home\",\"fr\":\"Il restera à la maison\"},{\"key\":\"housingType.away\",\"en\":\"Leave the nest\",\"fr\":\"Il quittera le domicile familial\"},{\"key\":\"provinces.quebec\",\"en\":\"Quebec\",\"fr\":\"Québec\"},{\"key\":\"provinces.newBrunswick\",\"en\":\"New Brunswick\",\"fr\":\"Nouveau-Brunswick\"},{\"key\":\"helloWorld\",\"en\":\"Hello, World!\",\"fr\":\"Bonjour\",\"__parsed_extra\":[\" Monde!\\\"\"]},{\"key\":\"page.header.needHelp\",\"en\":\"Need help ?\",\"fr\":\"Besoin d'aide ?\"},{\"key\":\"components.title\",\"en\":\"Components\",\"fr\":\"Composants\"},{\"key\":\"basicInfo.selectPlaceholder\",\"en\":\"Choose an option\",\"fr\":\"Choisir une option\"},{\"key\":\"basicInfo.step1.sectionName\",\"en\":\"Let’s get acquainted\",\"fr\":\"Faisons connaissance\"},{\"key\":\"basicInfo.step1.title\",\"en\":\"What’s the child’s first name?\",\"fr\":\"Quel est le prénom de l'enfant?\"},{\"key\":\"basicInfo.step2.title\",\"en\":\"How old is {name}?\",\"fr\":\"Quel âge a {name}?\"},{\"key\":\"basicInfo.step2.title.noname\",\"en\":\"How old is the child?\",\"fr\":\"Quel âge a l'enfant?\"},{\"key\":\"basicInfo.step2.yearsOld\",\"en\":\"year(s) old\",\"fr\":\"an(s)\"},{\"key\":\"basicInfo.step2.noSubsidies\",\"en\":\"There are certain eligibility rules for government grants and incentives for children between 15 and 17. Don’t hesitate to contact us for more information.\",\"fr\":\"Il existe certaines règles d'admissibilités aux subventions et incitatifs gouvernementaux pour les enfants de 15 à 17. N'hésitez pas à nous contacter pour plus d'information.\"},{\"key\":\"basicInfo.step2.noReee\",\"en\":\"Registered Education Savings Plans are available to those 18 years and older. However, there are certain eligibility rules for government grants and incentives. Don’t hesitate to contact us for more information.\",\"fr\":\"Il est possible d'ouvrir un régime enregistré d'épargne-études à partir de 18 ans. Toutefois, il existe certaines règles d'admissibilités aux subventions et incitatifs gouvernementaux. N'hésitez pas à nous contacter pour plus d'information.\"},{\"key\":\"basicInfo.step2.contact\",\"en\":\"Contact us\",\"fr\":\"Nous contacter\"},{\"key\":\"basicInfo.step2.moduleTitle\",\"en\":\"Why do we need to know the child’s age?\",\"fr\":\"Pourquoi avons-nous besoin de connaître l'âge de l'enfant?\"},{\"key\":\"basicInfo.step2.moduleParagraph1NoApostrophe\",\"en\":\"{name}’s age will have an impact on the projected rate of return and access to certain government grants and incentives.\",\"fr\":\"L'âge de {name} aura un impact sur le taux de rendement projeté et sur l'accès à certaines subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step2.moduleParagraph1Apostrophe\",\"en\":\"{name}’s age will have an impact on the projected rate of return and access to certain government grants and incentives.\",\"fr\":\"L'âge d'{name} aura un impact sur le taux de rendement projeté et sur l'accès à certaines subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step2.moduleParagraph1.noname\",\"en\":\"The child age will have an impact on the projected rate of return and access to certain government grants and incentives.\",\"fr\":\"L'âge de l'enfant aura un impact sur le taux de rendement projeté et sur l'accès à certaines subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step2.moduleParagraph2\",\"en\":\"You can contribute to an RESP for a 15-year-old. However, there are certain eligibility rules for government grants and incentives.\",\"fr\":\"Il est possible de cotiser à un REEE pour un jeune âgé de 15 ans. Cependant, il faut savoir qu'il existe certaines règles d'admissibilités aux subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step2.moduleParagraph3\",\"en\":\"If the {0} is 15 or older, it's best to contact us or consult the prospectus for more details.\",\"fr\":\"Pour avoir plus de détails si le {0} est âgé de 15 ans et plus, il est préférable de nous contacter ou de consulter le prospectus.\"},{\"key\":\"basicInfo.step2.word\",\"en\":\"beneficiary\",\"fr\":\"bénéficiaire\"},{\"key\":\"basicInfo.step2.tooltip\",\"en\":\"The beneficiary is the child designated by the subscriber to benefit from the RESP for their post-secondary education. The beneficiary must reside in Canada and obtain a social insurance number within 24 months of opening the RESP.\",\"fr\":\"Le bénéficiaire est l’enfant désigné par le souscripteur qui pourra bénéficier du REEE pour ses études postsecondaires. Il doit cependant résider au Canada et obtenir un numéro d'assurance sociale dans les 24 mois suivant l'ouverture du REEE.\"},{\"key\":\"basicInfo.step3.titleApostrophe\",\"en\":\"What is your role in {name}’s life?\",\"fr\":\" Quel est votre rôle dans la vie d'{name} ?\"},{\"key\":\"basicInfo.step3.titleNoApostrophe\",\"en\":\"What is your role in {name}’s life?\",\"fr\":\" Quel est votre rôle dans la vie de {name} ?\"},{\"key\":\"basicInfo.step3.moduleTitle\",\"en\":\"Why do we need to know your role in the child's life?\",\"fr\":\"Pourquoi avons-nous besoin de connaître votre rôle dans la vie de l'enfant?\"},{\"key\":\"basicInfo.step3.moduleParagraph1\",\"en\":\"It's possible to contribute to an RESP and make a child you care about the beneficiary. However, only the beneficiary can take advantage of government grants and incentives to boost their RESP.\",\"fr\":\"Vous pouvez toujours cotiser à un REEE et faire d’un enfant qui vous tient à coeur son bénéficiaire. Cependant, seul le bénéficiaire peut se prévaloir des subventions et incitatifs gouvernementaux pour bonifier un REEE.\"},{\"key\":\"basicInfo.step3.moduleParagraph2\",\"en\":\"A child who is enrolled by someone other than their parent or guardian will also be eligible for government grants and incentives as long as the parent or guardian has completed their portion of the grant application form.\",\"fr\":\"Un enfant qui est inscrit par quelqu'un d'autre que ses parents ou son tuteur aura également les subventions et incitatifs gouvernementaux à condition que son tuteur ait complété sa partie du formulaire de demande de subvention.\"},{\"key\":\"basicInfo.step3.moduleParagraph3\",\"en\":\"So, it's the income of the child’s primary caregiver (i.e., the person receiving the family allowance) that is used to determine the percentage increase from government grants and incentives.\",\"fr\":\"Ainsi, pour établir le pourcentage de bonification des subventions et incitatifs gouvernementaux, c'est le revenu du principal responsable de l'enfant qui sera pris en considération, soit celui qui reçoit l'Allocation familiale.\"},{\"key\":\"basicInfo.step4.title\",\"en\":\"What province do you live in?\",\"fr\":\"Dans quelle province résidez-vous?\"},{\"key\":\"basicInfo.step4.moduleTitle\",\"en\":\"Why do we need to know your province of residence?\",\"fr\":\"Pourquoi avons-nous besoin de connaître votre province de résidence?\"},{\"key\":\"basicInfo.step4.moduleParagraph1\",\"en\":\"Kaleido’s Registered Education Savings Plans (RESPs) are only available in Quebec and New Brunswick, and eligibility for government grants and incentives depends on the beneficiary’s province of residence.\",\"fr\":\"Les régimes enregistrés d’épargne-études (REEE) de Kaleido ne sont offerts qu’au Québec et au Nouveau-Brunswick et l'admissibilité aux subventions et incitatifs gouvernementaux dépend de la province de résidence du bénéficiaire.\"},{\"key\":\"basicInfo.step4.moduleParagraph2\",\"en\":\"The total amount of government grants and incentives you may be eligible for differs between the two provinces (up to $12,800 in Quebec and up to $9,200 in New Brunswick).\",\"fr\":\"Le montant total des subventions et incitatifs gouvernementaux auxquels vous pourriez avoir droit diffère entre les deux provinces, pouvant totaliser 12 800 $ au Québec et jusqu’à 9 200 $ au Nouveau-Brunswick.\"},{\"key\":\"basicInfo.step5.sectionName\",\"en\":\"Let’s talk investments\",\"fr\":\"Parlons investissement\"},{\"key\":\"basicInfo.step5.title\",\"en\":\"What's your initial contribution?\",\"fr\":\"Quelle est votre cotisation initiale?\"},{\"key\":\"basicInfo.step5.inputSubtext\",\"en\":\"Single amount you wish to add to your monthly contributions. At Kaleido, you can open an RESP with an initial contribution of $0.\",\"fr\":\"Montant unique que vous désirez ajouter à vos cotisations mensuelles. Chez Kaleido, il est possible d'ouvrir un REEE avec une cotisation de départ de 0 $.\"},{\"key\":\"basicInfo.step5.moduleTitle\",\"en\":\"Why do we need to know your initial contribution amount?\",\"fr\":\"Pourquoi avons-nous besoin de connaître votre cotisation initiale?\"},{\"key\":\"basicInfo.step5.moduleParagraph1\",\"en\":\"Investing an initial amount in an RESP helps you reach your savings goals faster. It's like any other financial investment: the earlier you invest, the more interest you earn!\",\"fr\":\"Investir une cotisation initiale dans un REEE vous permettra d'atteindre vos objectifs d'épargne plus rapidement, car comme dans tous investissements financiers, plus l'investissement est fait tôt, plus il rapporte des intérêts avec le temps!\"},{\"key\":\"basicInfo.step5.moduleParagraph2\",\"en\":\"This initial amount can include what you or anyone else wants to invest in the beneficiary's post-secondary education, like birthday money from their grandparents.\",\"fr\":\"Ce montant peut notamment comprendre ce que l'entourage désire investir dans les études postsecondairs du bénéficiaire, par exemple un montant d'argent des grands-parents reçu en cadeau.\"},{\"key\":\"basicInfo.step5.moduleParagraph3\",\"en\":\"Knowing what this amount will be helps our calculator make better projections for achieving your post-secondary education goals and maximizing government grants and incentives.\",\"fr\":\"Connaître ce montant permet à notre calculateur de faire de meilleures projections quant à l'atteinte de vos objectifs pour les études postsecondaires visées ainsi que la maximisation des subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step5.moduleParagraph4\",\"en\":\"You don't have to make an initial contrbution, but if you do, know that it doesn’t have to be a big amount. Whatever you contribute, we’ll help you make the most of it!\",\"fr\":\"Ce montant n'est pas nécessaire ou n'a pas besoin d'être élevé; nous vous aiderons à en tirer le maximum!\"},{\"key\":\"basicInfo.step6.title.simple\",\"en\":\"What are your monthly contributions?\",\"fr\":\"Quelles sont vos cotisations mensuelles?\"},{\"key\":\"basicInfo.step6.sectionName\",\"en\":\"Let’s talk investments\",\"fr\":\"Parlons investissement\"},{\"key\":\"basicInfo.step6.title\",\"en\":\"What's your investment strategy?\",\"fr\":\"Quelle est votre stratégie d'épargne?\"},{\"key\":\"basicInfo.step6.needHelp\",\"en\":\"Need help figuring out your contribution?\",\"fr\":\"Besoin d'aide pour déterminer votre cotisation?\"},{\"key\":\"basicInfo.step6.monthlyOption\",\"en\":\"I have a monthly budget\",\"fr\":\"J’ai un budget mensuel\"},{\"key\":\"basicInfo.step6.totalOption\",\"en\":\"I have a savings goal\",\"fr\":\"J’ai un objectif d’épargne\"},{\"key\":\"basicInfo.step6.perMonth\",\"en\":\"$ /month\",\"fr\":\"$ /mois\"},{\"key\":\"basicInfo.step6.moduleTitle\",\"en\":\"Why do we need to know your investment strategy?\",\"fr\":\"Pourquoi avons-nous besoin de connaître votre stratégie d'épargne?\"},{\"key\":\"basicInfo.step6.moduleParagraph1\",\"en\":\"Knowing your investment strategy helps our calculator make better projections for reaching your post-secondary education goals and maximizing government grants and incentives.\",\"fr\":\"Connaître votre stratégie d’épargne permet à notre calculateur de faire de meilleures projections quant à l'atteinte de vos objectifs pour les études postsecondaires visées ainsi que la maximisation des subventions et incitatifs gouvernementaux.\"},{\"key\":\"basicInfo.step6.moduleParagraph2\",\"en\":\"Our calculator can also help you optimize your investment strategy based on your goal or the amount of your contributions:\",\"fr\":\"Notre calculateur peut également vous permettre d’optimiser votre stratégie d'épargne que ce soit en fonction de votre objectif ou du montant de vos cotisations :\"},{\"key\":\"basicInfo.step6.moduleParagraph3\",\"en\":\"And remember: you can always change savings strategies along the way!\",\"fr\":\"Il est possible de changer votre stratégie en cours de route!\"},{\"key\":\"saving-goal-tooltip-title\",\"en\":\"Total amount to save for education\",\"fr\":\"Montant total à épargner pour les études\"},{\"key\":\"saving-goal-tooltip-1\",\"en\":\"Whether your beneficiary goes from LEGO to engineering or from colouring to web design, or a preference for working with her hands pushes her toward plumbing or mechanics, there are plenty of post-secondary programs that will help her build a successful life.\",\"fr\":\"Que votre bénéficiaire passe des LEGO à l’ingénierie ou du coloriage au design web, ou que son côté manuel la pousse vers la plomberie ou la mécanique, il existe des tas de formations postsecondaires qui lui permettront de s’épanouir.\"},{\"key\":\"saving-goal-tooltip-2\",\"en\":\"Those programs can vary considerably in length. They can be vocational, college or university programs. They may be offered by public or private institutions. The cost will also vary. With information about the type of post-secondary education you are considering, our calculator can identify the goals you want to achieve. When your beneficiary turns 18, the average cost of programs (adjusted for inflation) will be as follows:\",\"fr\":\"Ces programmes peuvent varier grandement en termes de durée. Ils peuvent être de niveau professionnel, collégial ou universitaire, sont parfois offerts au public et au privé, et occasionnent des coûts différents. Connaître le niveau d'études postsecondaires envisagé permet à notre calculateur de préciser les objectifs à atteindre. Lorsque votre bénéficiaire aura 18 ans, le coût moyen (ajusté au taux d'inflation) des programmes suivants sera de :\"},{\"key\":\"saving-goal-tooltip-table-title\",\"en\":\"Cost of studies\",\"fr\":\"Coûts des études\"},{\"key\":\"saving-goal-tooltip-col-2\",\"en\":\"Living at home*\",\"fr\":\"Résidant à la maison*\"},{\"key\":\"saving-goal-tooltip-col-3\",\"en\":\"Living elsewhere**\",\"fr\":\"Résidant à l’extérieur**\"},{\"key\":\"saving-goal-tooltip-note-1\",\"en\":\"* This approximate figure includes education costs and everyday expenses but does not include the cost of housing and groceries.\",\"fr\":\"* Ce coût approximatif comprend le coût des études et les dépenses courantes, mais ne prend pas en compte le coût du logis et de l’épicerie.\"},{\"key\":\"saving-goal-tooltip-note-2\",\"en\":\"** This approximate figure includes education costs, regular expenses, housing and food.\",\"fr\":\"** Ce coût approximatif comprend le coût des études, des dépenses courantes, du logis et de la nourriture.\"},{\"key\":\"saving-goal-tooltip-note-3\",\"en\":\"Ministère de l’Éducation et de l’enseignement supérieur, Ministère de la Famille, Statistics Canada, CMHC\",\"fr\":\"Ministère de l’Éducation et de l’enseignement supérieur, Ministère de la Famille, Statistique Canada, SCHL\"},{\"key\":\"contribution-limits-title\",\"en\":\"Contribution limits\",\"fr\":\"Limites des cotisations\"},{\"key\":\"contribution-limits-bullet-1\",\"en\":\"Contributions above the annual limit of $2,500 ($208 per month) will not attract government grants unless there are unused entitlements from previous years, in which case grant room can be up to $5,000 per year.\",\"fr\":\"Les cotisations dépassant la limite de 2 500 $ par an (208 $ par mois) ne seront pas subventionnées par les gouvernements, à moins de droits à la subvention inutilisés d'années antérieures (montant maximum de 5 000 $ par an).\"},{\"key\":\"contribution-limits-bullet-2\",\"en\":\"The lifetime limit for government grants is $36,000 per beneficiary.\",\"fr\":\"La limite à vie donnant droit aux subventions des gouvernements est de 36 000 $ par bénéficiaire.\"},{\"key\":\"contribution-limits-bullet-3\",\"en\":\"The lifetime limit in all RESP accounts is $50,000 per beneficiary.\",\"fr\":\"La limite à vie dans l'ensemble des comptes REEE est fixée à 50 000 $ par bénéficiaire.\"},{\"key\":\"basicInfo.savingStrategy.monthlyHeader\",\"en\":\"Monthly contributions\",\"fr\":\"Cotisations mensuelles\"},{\"key\":\"basicInfo.savingStrategy.monthlyContent\",\"en\":\"Choose this option if you know the amount you want to contribute each month.\",\"fr\":\"Choisissez cette option si vous savez combien vous voulez cotiser mensuellement.\"},{\"key\":\"basicInfo.savingStrategy.totalHeader\",\"en\":\"Savings goal\",\"fr\":\"Objectif d'épargne\"},{\"key\":\"basicInfo.savingStrategy.totalContent\",\"en\":\"Choose this option if you want to have a specific amount of money available for post-secondary education.\",\"fr\":\"Choisissez cette option si vous désirez atteindre un montant spécifique au moment des études postsecondaires.\"},{\"key\":\"basicInfo.calculationHelp.title\",\"en\":\"Need help figuring out your contribution?\",\"fr\":\"Besoin d'aide pour déterminer votre cotisation?\"},{\"key\":\"basicInfo.calculationHelp.intro\",\"en\":\"Whether you’ve got a specific goal in mind or are making monthly contributions on a budget, you need to be comfortable with the amount you're investing in an RESP. There’s no annual contribution limit but, under Canada’s Income Tax Act, the maximum lifetime contribution for a single beneficiary is $50,000. However, any amount invested in excess of $2,500 per year will not be eligible for government grants, unless you have unused grant room from a previous year.\",\"fr\":\"Que l'on ait un objectif à atteindre ou que l'on cotise mensuellement selon son budget, il est important d'être confortable avec le montant que l'on choisit d'épargner dans un REEE. Il n'y a pas de limite de cotisation annuelle, mais selon la Loi de l’impôt sur le revenu (Canada), le montant maximal de cotisations à vie pour un seul bénéficiaire s’élève à 50 000 $. Toutefois, tout montant investi excédant 2500$ par année ne sera pas subventionné par les gouvernements, à moins de droits inutilisés pour les années antérieures.\"},{\"key\":\"basicInfo.calculationHelp.paragraph1\",\"en\":\"This includes all the beneficiary’s RESPs, regardless of the subscribers or individual contributors.\",\"fr\":\"Cela inclut tous les REEE du bénéficiaire, quels que soient les souscripteurs ou les différents contributeurs de REEE.\"},{\"key\":\"basicInfo.calculationHelp.paragraph2NoApostrophe\",\"en\":\"Also, post-secondary education can vary greatly in terms of length and cost. When {name} is 18 years old, the average {tooltip}-adjusted cost (on average 1.2% in Quebec and 1.5% in New Brunswick) of the following programs would be: \",\"fr\":\"De plus, les formations postsecondaires peuvent varier grandement en termes de durée et de coûts. Lorsque {name} aura 18 ans, le coût moyen ajusté au {tooltip} (en moyenne de 1.2 % au Québec et 1.5 % au Nouveau-Brunswick) des programmes suivants serait de : \"},{\"key\":\"basicInfo.calculationHelp.paragraph2Apostrophe\",\"en\":\"Also, post-secondary education can vary greatly in terms of length and cost. When {name} is 18 years old, the average {tooltip}-adjusted cost (on average 1.2% in Quebec and 1.5% in New Brunswick) of the following programs would be: \",\"fr\":\"De plus, les formations postsecondaires peuvent varier grandement en termes de durée et de coûts. Lorsque {name} aura 18 ans, le coût moyen ajusté au {tooltip} (en moyenne de 1.2 % au Québec et 1.5 % au Nouveau-Brunswick) des programmes suivants serait de : \"},{\"key\":\"basicInfo.calculationHelp.paragraph7\",\"en\":\"Don't worry: if your situation changes, we'll help you adjust along the way.\",\"fr\":\"Ne vous inquiétez pas : si votre situation vient à changer, nous vous aiderons à vous adapter en cours de route.\"},{\"key\":\"basicInfo.calculationHelp.word\",\"en\":\"inflation\",\"fr\":\"taux d'inflation\"},{\"key\":\"basicInfo.calculationHelp.tooltip\",\"en\":\"Inflation is a persistent rise in the average level of prices over time.\",\"fr\":\"L’inflation est une hausse persistante du niveau moyen des prix au fil du temps.\"},{\"key\":\"basicInfo.calculationHelp.link\",\"en\":\"https://www.bankofcanada.ca/2020/08/understanding-inflation/\",\"fr\":\"https://www.banqueducanada.ca/2020/08/inflation-expliquee/\"},{\"key\":\"basicInfo.calculationHelp.linkLabel\",\"en\":\"See inflation rates\",\"fr\":\"Voir les taux d'inflation\"},{\"key\":\"basicInfo.calculationHelp.subtitle1\",\"en\":\"DVS\",\"fr\":\"DEP\"},{\"key\":\"basicInfo.calculationHelp.paragraph3\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"basicInfo.calculationHelp.subtitle2\",\"en\":\"DCS Technical\",\"fr\":\"DEC technique\"},{\"key\":\"basicInfo.calculationHelp.paragraph4\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"basicInfo.calculationHelp.subtitle3\",\"en\":\"DCS\",\"fr\":\"DEC\"},{\"key\":\"basicInfo.calculationHelp.paragraph5\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"basicInfo.calculationHelp.subtitle4\",\"en\":\"BA\",\"fr\":\"BAC\"},{\"key\":\"basicInfo.calculationHelp.paragraph6\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"pinpointResult.title\",\"en\":\"Let's dig deeper\",\"fr\":\"Allons plus loin\"},{\"key\":\"pinpointResult.subtitle\",\"en\":\"Answering the following questions can help you get an even more accurate result.\",\"fr\":\"Répondre aux questions suivantes vous permettra de préciser davantage le résultat.\"},{\"key\":\"pinpointResult.optionalTag\",\"en\":\"Optional\",\"fr\":\"Optionnel\"},{\"key\":\"pinpointResult.skipButton\",\"en\":\"Skip and see the result\",\"fr\":\"Sauter et visualiser le résultat\"},{\"key\":\"resultsSimple.title\",\"en\":\"How much an RESP with Kaleido could earn for you!\",\"fr\":\"Voyez combien un REEE avec Kaleido pourrait vous rapporter!\"},{\"key\":\"resultsSimple.subtitle\",\"en\":\"A registered education savings (RESP) plan calculator is a handy tool that gives you the information you need to optimize your investments for your child’s postsecondary education.\",\"fr\":\"Un calculateur de régime enregistré d’épargne-études (REEE) est un outil pratique qui vous permet d’obtenir des informations pour investir de façon optimale pour les études postsecondaires de votre enfant.\"},{\"key\":\"resultsSimple.nextStepButton\",\"en\":\"I'd like to discuss it!\",\"fr\":\"Je désire en discuter!\"},{\"key\":\"resultsSimple.calculate\",\"en\":\"Calculate\",\"fr\":\"Calculer\"},{\"key\":\"resultsSimple.legalNote\",\"en\":\"The amounts are suggested based on enrolment in the IDEO+ Adaptive RESP. A Kaleido scholarship plan representative can recommend product best suited to your investor profile.\",\"fr\":\"Les montants suggérés sont basés sur l’adhésion au REEE IDEO+ Évolutif. Un(e) représentant(e) en plans de bourses d'études Kaleido pourrait vous proposer le produit le mieux adapté à votre profil d’investisseur.\"},{\"key\":\"results.title\",\"en\":\"See the result\",\"fr\":\"Visualisons le résultat\"},{\"key\":\"results.subtitle\",\"en\":\"Our RESPs are available in three IDEO+ savings plans. Let’s look at them together. These projections are for information only and are not guarantee of future performance\",\"fr\":\"Nos REEE se déclinent en trois formules d’épargne IDEO+, découvrons-les ensemble. Ces projections figurent à titre informatif et elles ne sont pas une garantie pour la performance future.\"},{\"key\":\"results.nextStepButton\",\"en\":\"Next step\",\"fr\":\"Prochaine étape\"},{\"key\":\"results.getResultButton\",\"en\":\"Get the result\",\"fr\":\"Recevoir le résultat\"},{\"key\":\"results.cardTitle\",\"en\":\"IDEO+ {planName}\",\"fr\":\"IDEO+ {planName}\"},{\"key\":\"results.maxContributionNotice\",\"en\":\"* Your contribution is above $50,000. This is the lifetime maximum for RESP contributions according to Canadian Income Tax Law.\",\"fr\":\"* La cotisation dépasse 50 000 $, soit le montant maximal de cotisations à vie pour un REEE selon la Loi de l’impôt sur le revenu (Canada).\"},{\"key\":\"results.protege.description\",\"en\":\"

● Intended for customers with low risk tolerance.

● Variable return potential.

● Conservative and adaptive investment strategy.

● Respects Kaleido’s Sustainable Investment Policy.

● Contribute to your RESP at your own pace. Choose how much and when to contribute. No minimum initial contribution.

● Maintain access to your savings if you need to withdraw them before maturity.\",\"fr\":\"

● Destiné à des clients ayant une faible tolérance au risque.

● Le potentiel de rendement de ce plan est variable.

● Ce plan vous permet de profiter d’une stratégie d’investissement prudente et évolutive.

● Respecte la politique d’investissement durable de Kaleido.

● Cotisez à votre REEE à votre rythme. Choisissez le montant de vos cotisations et le moment où vous les faites. Aucune cotisation initiale minimale.

● Conservez l’accès à votre épargne, si vous devez en effectuer le retrait avant l’échéance.\"},{\"key\":\"results.protege.word\",\"en\":\"guaranteed return of contributions\",\"fr\":\"cotisations est garanti à l’échéance\"},{\"key\":\"results.protege.tooltip\",\"en\":\"When it’s time to withdraw your RESP at maturity, you're guaranteed to be able to withdraw your contributions in full.\",\"fr\":\"Lorsqu'il sera temps de retirer votre REEE à l'échéance, vous êtes assuré de pouvoir retirer la totalité de vos cotisations.\"},{\"key\":\"results.equilibre.description\",\"en\":\"

● Intended for clients with a moderate risk tolerance.

● Variable return potential.

● Adaptive investment strategy that can be adapted to the age of the child.

● Respects Kaleido’s Sustainable Investment Policy.

● Contribute to your RESP at your own pace. Choose how much and when to contribute. No minimum initial contribution.

● Maintain access to your savings if you need to withdraw them before maturity.\",\"fr\":\"

● Destiné à des clients ayant une tolérance au risque modérée.

● Le potentiel de rendement de ce plan est variable.

● Ce plan vous permet de profiter d’une stratégie d’investissement évolutive, qui s’adapte selon l’âge de l’enfant.

● Respecte la politique d’investissement durable de Kaleido.

● Cotisez à votre REEE à votre rythme. Choisissez le montant de vos cotisations et le moment où vous les faites. Aucune cotisation initiale minimale.

● Conservez l’accès à votre épargne, si vous devez en effectuer le retrait avant l’échéance.\"},{\"key\":\"results.responsable.description\",\"en\":\"

● Intended for clients with a moderate risk tolerance.

● Variable return potential.

● Adaptive investment strategy that can be adapted to the age of the child.

● Respects and even goes beyond Kaleido’s Sustainable Investment Policy. This RESP incorporates impact investing principles to generate more positive environmental and social impacts.

● Contribute to your RESP at your own pace. Choose how much and when to contribute. No minimum initial contribution.

● Maintain access to your savings if you need to withdraw them before maturity.\",\"fr\":\"

● Destiné à des clients ayant une tolérance au risque modérée.

● Le potentiel de rendement de ce plan est variable.

● Ce plan vous permet de profiter d’une stratégie d’investissement évolutive, qui s’adapte selon l’âge de l’enfant.

● Respecte la politique d’investissement durable de Kaleido et va même au-delà. Ce REEE intègre des principes d’investissement d’impact visant à générer plus de répercussions environnementales et sociales positives.

● Cotisez à votre REEE à votre rythme. Choisissez le montant de vos cotisations et le moment où vous les faites. Aucune cotisation initiale minimale.

● Conservez l’accès à votre épargne, si vous devez en effectuer le retrait avant l’échéance.\"},{\"key\":\"referenceNumberSection.label\",\"en\":\"Your reference number\",\"fr\":\"Votre numéro de référence\"},{\"key\":\"referenceNumberSection.invalidLabel\",\"en\":\"Your reference number is no longer valid.\",\"fr\":\"Votre numéro de référence n'est plus valide.\"},{\"key\":\"referenceNumberSection.resubmit\",\"en\":\"Update\",\"fr\":\"Mettre à jour\"},{\"key\":\"referenceNumberSection.helpText\",\"en\":\"You made changes to the information in your visualization. Please update it.\",\"fr\":\"Vous avez modifié des informations dans votre visualisation. Mettez-la à jour.\"},{\"key\":\"referenceNumberSection.helpTextLong\",\"en\":\"You made changes to the information in your visualization. Please update it.\",\"fr\":\"Vous avez modifié des informations dans votre visualisation. Mettez-la à jour.\"},{\"key\":\"referenceNumberSection.resent\",\"en\":\"It's on its way!\",\"fr\":\"C'est envoyé!\"},{\"key\":\"results.links.startANewVisualisation\",\"en\":\"Start a new visualization\",\"fr\":\"Effectuer une nouvelle visualisation\"},{\"key\":\"results.links.makeAnAppointment\",\"en\":\"Make an appointment\",\"fr\":\"Prendre rendez-vous\"},{\"key\":\"results.links.calculationDetails\",\"en\":\"Calculation details\",\"fr\":\"Voir plus de détails sur le calcul\"},{\"key\":\"results.myInfos.title\",\"en\":\"About you\",\"fr\":\"À votre sujet\"},{\"key\":\"results.marketing.title\",\"en\":\"Family coaching\",\"fr\":\"Accompagnement familial\"},{\"key\":\"results.marketing.description1\",\"en\":\"Part and parcel of your RESP, our family coaching services are designed to support your child on their educational journey and help your family deal with the challenges of daily life. You’ll get access to tools and advice to support your family and help your child reach their full potential, whatever path they choose.\",\"fr\":\"Offert avec votre REEE, l'accès à notre programme d'accompagnement familial destiné à soutenir l'enfant dans son cheminement et aider votre famille à faire face aux défis du quotidien. Vous disposerez ainsi d'outils et de conseils offerts pour accompagner votre famille et permettre à votre enfant de développer son plein potentiel, quel que soit son parcours.\"},{\"key\":\"results.marketing.description2\",\"en\":\"Certain conditions and restrictions apply.\",\"fr\":\"Certaines conditions et limitations s'appliquent.\"},{\"key\":\"results.marketing.health.title\",\"en\":\"Health and well-being\",\"fr\":\"Santé & mieux-être\"},{\"key\":\"results.marketing.health.text\",\"en\":\"Our health and well-being partners can provide daily coaching services and advice on healthy eating habits and an active lifestyle.

You’ll have access to the following:

\",\"fr\":\"Nos partenaires en santé & mieux-être accompagnent votre famille au quotidien et vous offrent des conseils et des outils pour faciliter l’acquisition de bons réflexes sur le plan alimentaire et un mode de vie actif.

Pour cela, vous disposez :

\"},{\"key\":\"results.newVisualisationModal.title\",\"en\":\"Not so fast!\",\"fr\":\"Attendez!\"},{\"key\":\"results.newVisualisationModal.text\",\"en\":\"If you start a new visualization, the data from the current visualization will be lost.\",\"fr\":\"Si vous débutez une nouvelle visualisation, les données de la visualisation en cours seront perdues.\"},{\"key\":\"results.newVisualisationModal.receiveByEmail\",\"en\":\"Get the result by email\",\"fr\":\"Recevoir le résultat par courriel\"},{\"key\":\"results.newVisualisationModal.confirm\",\"en\":\"Start a new visualization\",\"fr\":\"Débuter une nouvelle visualisation\"},{\"key\":\"results.calculatorDrawer.title\",\"en\":\"Calculation details\",\"fr\":\"Détails du calcul\"},{\"key\":\"results.calculatorDrawer.paragraph1\",\"en\":\"The basic Canada Education Savings Grant (CESG) rate is 20%, and the Quebec Education Savings Incentive (QESI) rate is 10%. Additional rates of 10% and 20% for the CESG and 5% and 10% for the QESI are applied on the first $500 per year, based on adjusted family net income. The Canada Learning Bond (CLB) is paid only to beneficiaries born after December 31, 2003, and to families who are financially eligible.

Two criteria are used to determine whether or not government grants apply to your beneficiary: place of residence and family income. The beneficiary’s eligibility for government grants may therefore vary over time.

According to our projections, your contributions, the CESG, the QESI, the CLB and the income generated on all these amounts grow at an effective annual rate of return net of fees ranging from 2.33 % to 4.02 % in the IDEO+ Adaptive Plan, from 2.33 % to 4.02 % in IDEO+ Responsible Plan, and between 1.05 % and 3.31 % in IDEO+ Conservative Plan, with the exception of the first 60 days of the contract, during which a discretionary rate of return is granted. The net annual effective rate of return is determined on the basis of the beneficiary’s age and the evolution of the target asset allocation to the account, as described in the IDEO+ Plans prospectus. These two elements vary according to the scholarship plan chosen. The above rates of return are net of estimated administration and management fees paid by IDEO+ Plans. Please refer to the current IDEO+ Plan prospectuses for details on applicable fees.

This illustration is an estimate of the account value as at May, when the beneficiary is deemed to be 18 years old, in order to include the last grant payments. IDEO+ Plans allow you to withdraw available funds at your own pace and according to your needs, as soon as your beneficiary enrolls in a post-secondary program that qualifies under the Income Tax Act and is subject to the limits imposed by the Act. Starting from your beneficiary’s 18th birthday, the investments that make up your RESP are managed more conservatively, with a larger proportion of fixed-income securities and/or money market instruments to reduce volatility and help protect the accumulated gains. It is worth noting that this more conservative management may generate lower returns than during the accumulation phase.

The above net annual effective rates of return have been estimated on the basis of a long-term rate of return based on current investment policy, asset management modelling for each scholarship plan and assumptions of estimated future returns for each asset class. Actual results will vary and may differ from the returns used for the present projection. This example illustrates the hypothetical amounts that could potentially be available for the beneficiary’s post-secondary education. These amounts are provided for illustrative purposes only and are based on the information gathered and assumptions disclosed above. The amounts available for the beneficiary’s post-secondary education will vary depending on the actual future performance of IDEO+ Plans, as well as the length of the investment, the contributions actually made, the grants actually received and the timing of withdrawals. The amounts available for studies will probably be lower or higher than illustrated. The information presented is for illustrative purposes only and is not a guarantee of the future performance of IDEO+ Plans.\",\"fr\":\"Le taux de base de la Subvention canadienne pour l'épargne-études (SCEE) est de 20 %, et celui de l'Incitatif québécois à l'épargne-études (IQEE) est de 10 %. Les taux supplémentaires de 10 % et 20 % pour la SCEE et de 5 % et 10 % pour l'IQEE sont appliqués sur le premier 500 $ par année, selon le revenu net familial rajusté. Le Bon d'études canadien (BEC) est versé uniquement aux bénéficiaires nés après le 31 décembre 2003 et aux familles qui y sont financièrement admissibles.

Deux critères permettent de déterminer si les subventions gouvernementales s'appliquent ou non à votre bénéficiaire : son lieu de résidence et son revenu familial. L’admissibilité du bénéficiaire aux subventions gouvernementales peut ainsi varier dans le temps.

Selon nos projections, vos cotisations, la SCEE, l'IQEE, le BEC ainsi que les revenus générés sur toutes ces sommes fructifient selon un taux de rendement effectif annuel net de frais variant entre 2,33 % et 4,02 % dans le Plan IDEO+ Évolutif, entre 2,33 % et 4,02 % dans le Plan IDEO+ Responsable, et entre 1,05 % et 3,31 % dans le Plan IDEO+ Prudent, à l’exception de la période de résolution des 60 premiers jours du contrat, pendant laquelle un taux de rendement discrétionnaire est consenti. Le taux de rendement effectif annuel net est déterminé en fonction de l’âge du bénéficiaire et de l’évolution de la répartition des actifs cibles au compte, telle que décrite au prospectus des Plans IDEO+. Ces deux éléments varient en fonction du plan de bourses d’études choisi. Les taux de rendement exprimés ci-dessus sont nets des honoraires d’administration et des frais de gestion estimés qui sont payés par les Plans IDEO+. Veuillez vous reporter aux prospectus en vigueur des Plans IDEO+ pour plus de détails sur les frais applicables.

La présente illustration constitue une estimation de la valeur au compte au mois de mai auquel le bénéficiaire est réputé avoir 18 ans afin d’inclure les derniers versements de subventions. Les Plans IDEO+ vous permettent de décaisser les sommes disponibles à votre rythme et selon vos besoins, et ce, dès l'inscription de votre bénéficiaire à un programme d'études postsecondaires admissible, en vertu de la Loi de l’impôt sur le revenu et sous réserve des limites imposées par cette même loi. À partir des 18 ans de votre bénéficiaire, les placements qui composent votre REEE sont gérés de manière plus prudente, avec une proportion plus importante de titres à revenu fixe et/ou de titres du marché monétaire pour réduire la volatilité et favoriser une protection des gains accumulés. À noter que cette gestion plus prudente pourrait générer des rendements plus faibles que pendant la phase d’accumulation.

Les taux de rendement effectifs annuels nets susmentionnés ont été estimés sur la base d’un taux de rendement à long terme fondé sur la politique de placement en vigueur, la modélisation de la gestion des actifs de chaque plan de bourses d’études et des hypothèses de rendements futurs estimés pour chaque classe d’actifs. Les résultats réels varieront et peuvent différer des rendements utilisés pour la projection ci-présente. Cet exemple illustre les montants hypothétiques qui pourraient potentiellement être disponibles pour les études postsecondaires du bénéficiaire. Ces montants sont fournis à des fins illustratives uniquement et sont basés sur l’information recueillie et sur les hypothèses divulguées ci-dessus. Les montants qui seront réellement disponibles pour les études postsecondaires du bénéficiaire varieront en fonction de la performance future réelle des Plans IDEO+ ainsi que de la durée du placement, des cotisations qui auront réellement été versées, des subventions qui auront réellement été reçues et du moment où les décaissements seront effectués. Les montants qui seront réellement disponibles pour les études seront probablement inférieurs ou supérieurs à ce qui est illustré. L’information présentée constitue une illustration uniquement et n’est pas une garantie pour la performance future des Plans IDEO+.\"},{\"key\":\"results.optimization.title\",\"en\":\"Let's optimize\",\"fr\":\"Optimisons\"},{\"key\":\"results.optimization.cta.normal\",\"en\":\"Optimize the results\",\"fr\":\"Optimiser le résultat\"},{\"key\":\"results.optimization.cta.complete\",\"en\":\"Optimization parameters\",\"fr\":\"Paramètres d'optimisation\"},{\"key\":\"results.optimization.banner.textMobile\",\"en\":\"Because changes were made, your optimized result has been reset.\",\"fr\":\"Suite à des modifications, vos résultats optimisés ont été réinitialisés.\"},{\"key\":\"results.optimization.banner.text\",\"en\":\"Because changes were made, your optimized result has been reset.\",\"fr\":\"Suite à des modifications, vos résultats optimisés ont été réinitialisés.\"},{\"key\":\"results.optimization.banner.subtext\",\"en\":\"Please re-activate the optimization options to see your updated result.\",\"fr\":\"Nous vous invitons à réactiver les options d'optimisation pour voir vos résultats mis à jour.\"},{\"key\":\"results.optimization.pinpointResult\",\"en\":\"Complete the “Post-secondary education plans” section to specify your needs and savings goals.\",\"fr\":\"Compléter la section « études postsecondaires envisagées » pour préciser vos besoins et vos objectifs d'épargne.\"},{\"key\":\"optimization.title\",\"en\":\"Let's optimize\",\"fr\":\"Optimisons\"},{\"key\":\"optimization.subtitle\",\"en\":\"We'll tweak your data based on your goal so that you can reach it effectively.\",\"fr\":\"En fonction de votre objectif, nous ajusterons vos données pour l’atteindre de façon efficace.\"},{\"key\":\"optimization.returnButton\",\"en\":\"Return to result\",\"fr\":\"Retourner aux résultats\"},{\"key\":\"optimization.indicator.grants.header.enabled\",\"en\":\"Your contributions enable you to receive the maximum government grants and incentives possible.\",\"fr\":\"Vos cotisations vous permettent d'obtenir le maximum de subventions et incitatifs gouvernementaux possible.\"},{\"key\":\"optimization.indicator.grants.header.disabled\",\"en\":\"Increasing your contributions could enable you to maximize the government grants and incentives available to you.\",\"fr\":\"Augmenter vos cotisations pourrait vous permettre de profiter du maximum de subventions et incitatifs gouvernementaux possible.\"},{\"key\":\"optimization.indicator.educationProject.header.enabled\",\"en\":\"You’ve reached the goal for {name}'s post-secondary education plans.\",\"fr\":\"L'objectif pour les études postsecondaires envisagées de {name} est atteint.\"},{\"key\":\"optimization.indicator.educationProject.header.enabled.apostrophe\",\"en\":\"You’ve reached the goal for {name}'s post-secondary education plans. \",\"fr\":\"L'objectif pour les études postsecondaires envisagées d'{name} est atteint.\"},{\"key\":\"optimization.indicator.educationProject.header.disabled\",\"en\":\"You haven't reached the goal for {name}'s post-secondary education plans.\",\"fr\":\"Vous n'atteignez pas l'objectif pour les études postsecondaires envisagées de {name}.\"},{\"key\":\"optimization.indicator.educationProject.header.disabled.apostrophe\",\"en\":\"You haven't reached the goal for {name}'s post-secondary education plans.\",\"fr\":\"Vous n'atteignez pas l'objectif pour les études postsecondaires envisagées d'{name}.\"},{\"key\":\"optimization.indicator.educationProject.header.disabled.negative\",\"en\":\"Your contribution or the sum of all contributions exceeds the goal for post-secondary education plans.\",\"fr\":\"Votre cotisation ou l'ensemble des cotisations est supérieur à l'objectif des études postsecondaires envisagées.\"},{\"key\":\"optimization.indicator.educationProject.header.disabled.negative.apostrophe\",\"en\":\"Your contribution or the sum of all contributions exceeds the goal for post-secondary education plans.\",\"fr\":\"Votre cotisation ou l'ensemble des cotisations est supérieur à l'objectif des études postsecondaires envisagées.\"},{\"key\":\"optimization.indicator.educationProject.header.missing\",\"en\":\"Complete the “Post-secondary education plans” section to specify your needs and savings goals.\",\"fr\":\"Compléter la section « études postsecondaires envisagées » pour préciser vos besoins et vos objectifs d'épargne.\"},{\"key\":\"optimization.grants.label.simple\",\"en\":\"Maximize government grants and incentives\",\"fr\":\"Obtenir le maximum de subventions\"},{\"key\":\"optimization.grants.note\",\"en\":\"Increasing your contributions could enable you to maximize the government grants and incentives available.\",\"fr\":\"Augmenter vos cotisations pourrait vous permettre de profiter du maximum de subventions et incitatifs gouvernementaux.\"},{\"key\":\"optimization.grants.label\",\"en\":\"Maximize government grants and incentives.\",\"fr\":\"Maximiser les subventions et incitatifs gouvernementaux\"},{\"key\":\"optimization.educationProject.label\",\"en\":\"Reach your post-secondary education savings goal.\",\"fr\":\"Atteindre l'objectif pour les études postsecondaires envisagées.\"},{\"key\":\"optimization.educationProject.complete\",\"en\":\"Complete\",\"fr\":\"Compléter\"},{\"key\":\"optimization.pinpointFinancialSituation.label\",\"en\":\"Complete the {0} section for a more detailed overview of government grants and incentives.\",\"fr\":\"Complétez la section {0} pour un aperçu plus précis des subventions et incitatifs gouvernementaux.\"},{\"key\":\"optimization.pinpointFinancialSituation.link\",\"en\":\"financial situation\",\"fr\":\"situation financière\"},{\"key\":\" \"},{\"key\":\"optimization.table.title\",\"en\":\"Optimized contributions\",\"fr\":\"Cotisations optimisées\"},{\"key\":\"optimization.table.subtitle\",\"en\":\"The amounts below are suggested based on enrolment in the IDEO+ Adaptive RESP. A Kaleido scholarship plan representative can recommend product best suited to your investor profile.\",\"fr\":\"Les montants suggérés ci-dessous sont basés sur l’adhésion au REEE IDEO+ Évolutif. La présentation par produit est actualisée selon vos données d'optimisation. Un(e) représentant(e) en plans de bourses d'études Kaleido pourrait vous proposer le produit le mieux adapté à votre profil d’investisseur.\"},{\"key\":\"optimization.table.monthlyContributionsLabel\",\"en\":\"Monthly contributions\",\"fr\":\"Cotisations mensuelles\"},{\"key\":\"optimization.table.monthlyContributions\",\"en\":\"{amount}/month\",\"fr\":\"{amount}/mois\"},{\"key\":\"optimization.table.baseProjectionContributions\",\"en\":\"Contributions based on your specifications\",\"fr\":\"Cotisation selon vos paramètres\"},{\"key\":\"optimization.table.grantsOptimizedContributions\",\"en\":\"Optimized contributions\",\"fr\":\"Cotisations optimisées\"},{\"key\":\"optimization.table.educationProjectOptimizedContributions\",\"en\":\"Post-secondary education plans\",\"fr\":\"Études postsecondaires envisagées\"},{\"key\":\"optimization.table.optimizations\",\"en\":\"Optimizations\",\"fr\":\"Optimisations\"},{\"key\":\"projectionCard.monthly.titleLine1NoApostrophe\",\"en\":\"By the time {name} turns 18,\",\"fr\":\"Lorsque {name} aura 18 ans,\"},{\"key\":\"projectionCard.monthly.titleLine1Apostrophe\",\"en\":\"By the time {name} turns 18,\",\"fr\":\"Lorsqu'{name} aura 18 ans,\"},{\"key\":\"projectionCard.monthly.titleLine1\",\"en\":\"By the time the child turns 18,\",\"fr\":\"Lorsque l'enfant aura 18 ans,\"},{\"key\":\"projectionCard.monthly.titleLine2\",\"en\":\"their RESP could be worth :\",\"fr\":\"son REEE pourrait valoir :\"},{\"key\":\"projectionCard.totalGoal.titleLine1NoApostrophe\",\"en\":\"For {name}’s RESP to reach {amount} by the time they’re 18, you'll need to contribute:\",\"fr\":\"Pour que le REEE de {name} atteigne {amount} à ses 18 ans, vous devez cotiser:\"},{\"key\":\"projectionCard.totalGoal.titleLine1Apostrophe\",\"en\":\"For {name}’s RESP to reach {amount} by the time they’re 18, you'll need to contribute:\",\"fr\":\"Pour que le REEE d'{name} atteigne {amount} à ses 18 ans, vous devez cotiser:\"},{\"key\":\"projectionCard.totalGoal.titleLine1NoApostrophe.capped\",\"en\":\"For {name}’s RESP to reach {amount}* by the time they’re 18, you'll need to contribute:\",\"fr\":\"Pour que le REEE de {name} atteigne {amount}* à ses 18 ans, vous devez cotiser:\"},{\"key\":\"projectionCard.totalGoal.titleLine1Apostrophe.capped\",\"en\":\"For {name}’s RESP to reach {amount}* by the time they’re 18, you'll need to contribute:\",\"fr\":\"Pour que le REEE d'{name} atteigne {amount}* à ses 18 ans, vous devez cotiser:\"},{\"key\":\"projectionCard.totalGoal.titleLine1.capped\",\"en\":\"For the child RESP to reach {amount}* by the time they’re 18, you'll need to contribute:\",\"fr\":\"Pour que le REEE de l'enfant atteigne {amount}* à ses 18 ans, vous devez cotiser:\"},{\"key\":\"projectionCard.totalGoal.titleAmount\",\"en\":\"{amount}  per month\",\"fr\":\"{amount}  par mois\"},{\"key\":\"projectionCard.seeMoreButton\",\"en\":\"Find out more\",\"fr\":\"En savoir plus\"},{\"key\":\"projectionCard.labels.directContributions\",\"en\":\"Contributions\",\"fr\":\"Cotisations\"},{\"key\":\"projectionCard.labels.grants\",\"en\":\"Grants\",\"fr\":\"Subventions\"},{\"key\":\"projectionCard.labels.totalIncome\",\"en\":\"Earnings\",\"fr\":\"Revenus\"},{\"key\":\"projectionCard.labels.contributionsTooltip\",\"en\":\"The amount invested by the subscriber in an RESP.\",\"fr\":\"Somme investie par le souscripteur dans le cadre d'un REEE.\"},{\"key\":\"projectionCard.labels.grantsTooltip\",\"en\":\"A financial grant, bond or incentive offered by the federal government (such as the Canada Education Savings Grant or Canada Learning Bond) or a provincial government to encourage people to save for post-secondary education and open an RESP.\",\"fr\":\"Une subvention financière, un bon d’études ou un incitatif financier offert par le gouvernement fédéral (comme la Subvention canadienne pour l’épargne-études ou le Bon d’études canadien) ou par un gouvernement provincial dans le but d’encourager l’épargne pour les études postsecondaires et la souscription d’un REEE.\"},{\"key\":\"projectionCard.labels.incomeTooltip\",\"en\":\"Any money earned on RESP contributions and government grants, such as interest, dividends and capital gains.\",\"fr\":\"Somme cumulée sur les cotisations du souscripteur et les subventions gouvernementales, comme les intérêts, les dividendes et les gains en capital.\"},{\"key\":\"sectionOverview.startButton\",\"en\":\"Start\",\"fr\":\"Débuter\"},{\"key\":\"sectionOverview.editButton\",\"en\":\"Change\",\"fr\":\"Modifier\"},{\"key\":\"sectionOverview.timeBadge\",\"en\":\"{count} min.\",\"fr\":\"{count} min.\"},{\"key\":\"sectionOverview.complete\",\"en\":\"Completed\",\"fr\":\"Complétée\"},{\"key\":\"basicInfos.overview.title\",\"en\":\"Profile\",\"fr\":\"Profil\"},{\"key\":\"basicInfos.overview.childName\",\"en\":\"Name\",\"fr\":\"Nom\"},{\"key\":\"basicInfos.overview.childAge\",\"en\":\"Age\",\"fr\":\"Âge\"},{\"key\":\"basicInfos.overview.relationshipToChild\",\"en\":\"Role\",\"fr\":\"Rôle\"},{\"key\":\"basicInfos.overview.province\",\"en\":\"Province\",\"fr\":\"Province\"},{\"key\":\"basicInfos.overview.startingAmount\",\"en\":\"Initial contribution\",\"fr\":\"Cotisation initiale\"},{\"key\":\"basicInfos.overview.monthlyDeposit\",\"en\":\"Monthly contributions\",\"fr\":\"Cotisations mensuelles\"},{\"key\":\"basicInfos.overview.totalGoal\",\"en\":\"Savings goal\",\"fr\":\"Objectif d'épargne\"},{\"key\":\"educationInfos.overview.title\",\"en\":\"Post-secondary education plans\",\"fr\":\"Études postsecondaires envisagées\"},{\"key\":\"educationInfos.overview.textNoApostrophe\",\"en\":\"Let’s imagine what the future holds! What are your plans for {name}'s post-secondary education?\",\"fr\":\"Imaginons l'avenir! Comment envisagez-vous les études postsecondaires de {name}?\"},{\"key\":\"educationInfos.overview.textApostrophe\",\"en\":\"Let’s imagine what the future holds! What are your plans for {name}'s post-secondary education?\",\"fr\":\"Imaginons l'avenir! Comment envisagez-vous les études postsecondaires d'{name}?\"},{\"key\":\"educationInfos.overview.targetedLevel\",\"en\":\"Level of post-secondary education\",\"fr\":\"Niveau d'études postsecondaires\"},{\"key\":\"educationInfos.overview.housingType\",\"en\":\"Place of residence\",\"fr\":\"Lieu de résidence\"},{\"key\":\"financialInfos.overview.title\",\"en\":\"Financial situation\",\"fr\":\"Situation financière\"},{\"key\":\"financialInfos.overview.text\",\"en\":\"Let’s clarify your financial situation in order to maximize the amount of government grants and incentives.\",\"fr\":\"Précisons votre situation financière afin de maximiser le montant des subventions et incitatifs gouvernementaux.\"},{\"key\":\"financialInfos.overview.familyIncome\",\"en\":\"Annual family income\",\"fr\":\"Revenu familial annuel\"},{\"key\":\"educationPlan.selectPlaceholder\",\"en\":\"Choose an option\",\"fr\":\"Choisir une option\"},{\"key\":\"educationPlan.step1.sectionName\",\"en\":\"Post-secondary education plans\",\"fr\":\"Études postsecondaires envisagées\"},{\"key\":\"educationPlan.step1.sectionTitle\",\"en\":\"What level of post-secondary education is being considered?\",\"fr\":\"Quel est le niveau d'études postsecondaires envisagé?\"},{\"key\":\"educationPlan.step1.moduleTitle\",\"en\":\"Why do we need to know about post-secondary education plans?\",\"fr\":\"Pourquoi avons-nous besoin de connaître les études postsecondaires envisagées?\"},{\"key\":\"educationPlan.step1.moduleParagraph1NoApostrophe\",\"en\":\"{name} may eventually go from LEGOs to engineering, or from colouring books to web design. Or maybe their manual skills will lead them into plumbing or mechanics. Whatever happens, there are plenty of post-secondary programs that will help them develop.\",\"fr\":\"Que {name} passe des LEGO à l’ingénierie, du coloriage au design web, ou que son côté manuel le pousse vers la plomberie ou la mécanique, il existe des tas de formations postsecondaires qui lui permettront de s’épanouir.\"},{\"key\":\"educationPlan.step1.moduleParagraph1Apostrophe\",\"en\":\"{name} may eventually go from LEGOs to engineering, or from colouring books to web design. Or maybe their manual skills will lead them into plumbing or mechanics. Whatever happens, there are plenty of post-secondary programs that will help them develop.\",\"fr\":\"Qu'{name} passe des LEGO à l’ingénierie, du coloriage au design web, ou que son côté manuel le pousse vers la plomberie ou la mécanique, il existe des tas de formations postsecondaires qui lui permettront de s’épanouir.\"},{\"key\":\"educationPlan.step1.moduleParagraph2NoApostrophe\",\"en\":\"These programs can vary greatly in length and cost. They may be vocational or college or university level, and offered publicly or privately. Knowing the level of post-secondary education you're considering helps our calculator refine your goals. Here's what the average cost will be (adjusted for {tooltip}) for the following programs when {name} is 18 years old:\",\"fr\":\"Ces programmes peuvent varier grandement en termes de durée. Ils peuvent être de niveau professionnel, collégial ou universitaire, sont parfois offerts au public et au privé, et occasionnent des coûts différents. Connaître le niveau d'études postsecondaires envisagées permet à notre calculateur de préciser les objectifs à atteindre. Lorsque {name} aura 18 ans, le coût moyen (ajusté au {tooltip}) des programmes suivants serait de :\"},{\"key\":\"educationPlan.step1.moduleParagraph2Apostrophe\",\"en\":\"These programs can vary greatly in length and cost. They may be vocational or college or university level, and offered publicly or privately. Knowing the level of post-secondary education you're considering helps our calculator refine your goals. Here's what the average cost will be (adjusted for {tooltip}) for the following programs when {name} is 18 years old:\",\"fr\":\"Ces programmes peuvent varier grandement en termes de durée. Ils peuvent être de niveau professionnel, collégial ou universitaire, sont parfois offerts au public et au privé, et occasionnent des coûts différents. Connaître le niveau d'études postsecondaires envisagées permet à notre calculateur de préciser les objectifs à atteindre. Lorsqu'{name} aura 18 ans, le coût moyen (ajusté au {tooltip}) des programmes suivants serait de :\"},{\"key\":\"educationPlan.step1.word\",\"en\":\"inflation\",\"fr\":\"taux d'inflation\"},{\"key\":\"educationPlan.step1.tooltip\",\"en\":\"Inflation is a persistent rise in the average level of prices over time.\",\"fr\":\"Hausse persistante du niveau moyen des prix au fil du temps.\"},{\"key\":\"educationPlan.step1.link\",\"en\":\"https://www.bankofcanada.ca/2020/08/understanding-inflation/\",\"fr\":\"https://www.banqueducanada.ca/2020/08/inflation-expliquee/\"},{\"key\":\"educationPlan.step1.linkLabel\",\"en\":\"See inflation rates\",\"fr\":\"Voir les taux d'inflation\"},{\"key\":\"educationPlan.step1.moduleParagraph3\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"educationPlan.step1.moduleParagraph4\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"educationPlan.step1.moduleParagraph5\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"educationPlan.step1.moduleParagraph6\",\"en\":\"0$\",\"fr\":\"0$\"},{\"key\":\"educationPlan.step1.moduleSubtitle1\",\"en\":\"DEP\",\"fr\":\"DEP\"},{\"key\":\"educationPlan.step1.moduleSubtitle2\",\"en\":\"Technical DEC\",\"fr\":\"DEC technique\"},{\"key\":\"educationPlan.step1.moduleSubtitle3\",\"en\":\"DEC\",\"fr\":\"DEC\"},{\"key\":\"educationPlan.step1.moduleSubtitle4\",\"en\":\"BAC\",\"fr\":\"BAC\"},{\"key\":\"educationPlan.step2.sectionTitle\",\"en\":\"Will your child live at home or leave the nest?\",\"fr\":\"Restera-t-il dans le nid familial ou volera-t-il de ses propres ailes?\"},{\"key\":\"educationPlan.step2.moduleTitle\",\"en\":\"Why do we need to know where your child will be living?\",\"fr\":\"Pourquoi avons-nous besoin de connaître le lieu de résidence envisagé pour votre enfant?\"},{\"key\":\"educationPlan.step2.moduleParagraph1NoApostrophe\",\"en\":\"Whether {name} is more of a homebody or wants to strike out on their own; whether their post-secondary plans take them from your neck of the woods to the big city (or vice versa)—or even to another country—the costs of post-secondary education will vary depending on where they live.\",\"fr\":\"Que votre enfant soit plutôt du type casanier ou qu’il désire voler de ses propres ailes, que ses études le mènent de votre coin de patelin à la grande ville (ou vice-versa) ou même dans un autre pays, les coûts associés aux études postsecondaires peuvent varier en fonction de la situation résidentielle de {name}.\"},{\"key\":\"educationPlan.step2.moduleParagraph1Apostrophe\",\"en\":\"Whether {name} is more of a homebody or wants to strike out on their own; whether their post-secondary plans take them from your neck of the woods to the big city (or vice versa)—or even to another country—the costs of post-secondary education will vary depending on where they live.\",\"fr\":\"Que votre enfant soit plutôt du type casanier ou qu’il désire voler de ses propres ailes, que ses études le mènent de votre coin de patelin à la grande ville (ou vice-versa) ou même dans un autre pays, les coûts associés aux études postsecondaires peuvent varier en fonction de la situation résidentielle d'{name}.\"},{\"key\":\"educationPlan.step2.moduleParagraph2\",\"en\":\"If we know where {name} might end up living, our calculator can give you a more accurate picture of where you want to be financially in order to support their post-secondary education.\",\"fr\":\"Connaître le lieu de logement visé permet à notre calculateur de vous offrir un aperçu plus exact des objectifs financiers à atteindre pour accompagner {name} dans ses études postsecondaires.\"},{\"key\":\"educationMarketing.title\",\"en\":\"We're with you, from preschool to university.\",\"fr\":\"Nous vous accompagnons, du préscolaire à l'université.\"},{\"key\":\"educationMarketing.text1\",\"en\":\"Part and parcel of your RESP, our family coaching services are designed to support your child on their educational journey and help your family deal with the challenges of daily life. You’ll get access to tools and advice to support your family and help your child reach their full potential, whatever path they choose.\",\"fr\":\"Offert avec votre REEE, l'accès à notre programme d'accompagnement familial destiné à soutenir l'enfant dans son cheminement et aider votre famille à faire face aux défis du quotidien. Vous disposerez ainsi d'outils et de conseils offerts pour accompagner votre famille et permettre à votre enfant de développer son plein potentiel, quel que soit son parcours.\"},{\"key\":\"educationMarketing.text2\",\"en\":\"Certain conditions and restrictions apply.\",\"fr\":\"Certaines conditions et limitations s'appliquent.\"},{\"key\":\"educationMarketing.nextButton\",\"en\":\"Confirm plans for post-secondary education\",\"fr\":\"Confirmer les études postsecondaires envisagées\"},{\"key\":\"educationMarketing.goToResult\",\"en\":\"See the result\",\"fr\":\"Visualiser le résultat\"},{\"key\":\"educationMarketing.includedWithPlan\",\"en\":\"Included with your RESP\",\"fr\":\"Inclus dans votre REEE\"},{\"key\":\"educationMarketing.family.title\",\"en\":\"Parenting and family life support\",\"fr\":\"Soutien parental & vie familiale\"},{\"key\":\"educationMarketing.family.text\",\"en\":\"Our parenting and family life partners can support you in your everyday life with children aged 0 to 17.

You’ll have access to :

\",\"fr\":\"Nos partenaires en soutien parental et vie familiale vous accompagnent dans votre parentalité pour faciliter votre quotidien avec des enfants de 0 à 17 ans.

Pour cela, vous disposez de :

\"},{\"key\":\"educationMarketing.orientation.title\",\"en\":\"Career orientation\",\"fr\":\"Orientation de carrière\"},{\"key\":\"educationMarketing.orientation.text\",\"en\":\"To help guide your child’s choice of post-secondary education, Kaleido offers a series of podcasts on various professional careers. Tune in on your own or as a family!\",\"fr\":\"Kaleido vous propose une série de balados sur différentes carrières professionnelles afin d’aider vos jeunes dans leur choix d’études postsecondaires. À écouter seul ou en famille!\"},{\"key\":\"educationMarketing.tutoring.title\",\"en\":\"Tutoring and academic support\",\"fr\":\"Tutorat et soutien scolaire\"},{\"key\":\"educationMarketing.tutoring.text\",\"en\":\"Our tutoring and academic support partners can help you optimize your child’s learning.

You’ll have access to :

\",\"fr\":\"Nos partenaires en tutorat et soutien scolaire vous soutiennent dans l’optimisation de l’apprentissage de vos enfants.

Pour cela, vous disposez de :

\"},{\"key\":\"financialSituation.step1.sectionName\",\"en\":\"Financial situation\",\"fr\":\"Situation financière\"},{\"key\":\"financialSituation.step1.sectionTitle\",\"en\":\"What is your annual family income?\",\"fr\":\"Quel est le revenu familial annuel?\"},{\"key\":\"financialSituation.step1.moduleTitle\",\"en\":\"Why do we need to know your family income?\",\"fr\":\"Pourquoi avons-nous besoin de connaître votre revenu familial?\"},{\"key\":\"financialSituation.step1.moduleParagraph1\",\"en\":\"Some government grants and incentives are directly linked to family income.\",\"fr\":\"Certaines subventions et incitatifs gouvernementaux sont directement liés au revenu familial.\"},{\"key\":\"financialSituation.step1.moduleParagraph2\",\"en\":\"For example, the federal government provides the Canada Learning Bond (CLB) to help lower-income families save for their children’s post-secondary education. No personal contribution to an RESP is required to be eligible for the CLB.\",\"fr\":\"Par exemple, le Bon d’études canadien (BEC) est versé par le gouvernement fédéral pour aider les familles à plus faible revenu à économiser en vue des études postsecondaires de leurs enfants. Aucune cotisation personnelle à un REEE n’est nécessaire pour recevoir le BEC.\"},{\"key\":\"financialSituation.step1.moduleParagraph3\",\"en\":\"The CLB amount is based on the {0} (of the child's primary caregiver) and can be as much as $2,000!\",\"fr\":\"Le montant du BEC est déterminé en fonction du {0} (du principal responsable de l’enfant) et peut atteindre jusqu’à 2 000 $!\"},{\"key\":\"financialSituation.step1.word\",\"en\":\"adjusted family net income\",\"fr\":\"revenu net familial rajusté\"},{\"key\":\"financialSituation.step1.tooltip\",\"en\":\"The sum of lines 23600 of your and your spouse’s federal income tax return, minus any income received from the Registered Disability Savings Plan (RDSP), plus any RDSP amounts repaid.\",\"fr\":\"Addition des lignes 23600 de votre rapport d’impôt fédéral et de celui de votre conjoint(e), moins tout revenu reçu du régime enregistré d’épargne-invalidité (REEI), plus tout montant du REEI remboursé.\"},{\"key\":\"financialSituation.step1.link\",\"en\":\"https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/t4114/canada-child-benefit.html\",\"fr\":\"https://www.canada.ca/fr/agence-revenu/services/formulaires-publications/publications/t4114/allocation-canadienne-enfants.html\"},{\"key\":\"financialSituation.step1.linkLabel\",\"en\":\"Learn more about adjusted family net income\",\"fr\":\"Qu'est-ce que l'allocation canadienne pour enfants?\"},{\"key\":\"financialSituation.step1.moduleParagraph4\",\"en\":\"Knowing your family income helps our calculator further optimize your education savings plan to maximize your eligibility for government grants and incentives.\",\"fr\":\"Connaître le revenu familial permet à notre calculateur d’optimiser davantage votre plan d’épargne-études pour maximiser les subventions et incitatifs gouvernementaux auxquels vous avez droit.\"},{\"key\":\"financialMarketing.title\",\"en\":\"Free tools and information for family finances. Because a penny saved is a penny earned.\",\"fr\":\"Des contenus et des outils gratuits en lien avec les finances familiales, parce que chaque sou compte.\"},{\"key\":\"financialMarketing.text\",\"en\":\"Part and parcel of your RESP, our unique family coaching service gives you access to offers and services from qualified partners. You'll have all the tools you need to help your child reach their full potential.\",\"fr\":\"Inclus dans votre REEE, l'accès à notre offre d'accompagnement familial unique en son genre vous permet de profiter d'offres et de services de partenaires qualifiés. Vous disposerez ainsi de tous les outils pour permettre à votre enfant de s’accomplir pleinement.\"},{\"key\":\"financialMarketing.title1\",\"en\":\"Family finances\",\"fr\":\"Finances familiales\"},{\"key\":\"financialMarketing.text1\",\"en\":\"Our family finance partners can help you better understand your day-to-day spending and financial investments in general.

You’ll have access to :

\",\"fr\":\"Nos partenaires en finances familiales vous aident à y voir plus clair dans vos finances au quotidien, ainsi qu’à mieux comprendre les placements financiers en général.

Pour cela, vous disposez de :

\"},{\"key\":\"financialMarketing.nextButton\",\"en\":\"Confirm your financial situation\",\"fr\":\"Confirmer la situation financière\"},{\"key\":\"financialMarketing.goToResult\",\"en\":\"See the result\",\"fr\":\"Visualiser le résultat\"},{\"key\":\"financialMarketing.includedWithPlan\",\"en\":\"Included with your RESP\",\"fr\":\"Inclus dans votre REEE\"},{\"key\":\"needHelp.title\",\"en\":\"Give us a shout\",\"fr\":\"Appelez-nous\"},{\"key\":\"needHelp.titleSub\",\"en\":\"Need help? Our Kaleido scholarship plan representatives are here for you.\",\"fr\":\"Besoin de soutien? Parler à un(e) de nos représentant(e)s en plans de bourses d'études Kaleido!\",\"__parsed_extra\":[\"\"]},{\"key\":\"receiveYourResult.pageTitle\",\"en\":\"Get my result\",\"fr\":\" Recevoir mon résultat \"},{\"key\":\"receiveYourResult.pageSubitle\",\"en\":\"Enter the following information to receive a copy of your visualization results by email.\",\"fr\":\"Entrez les informations suivantes afin de recevoir par courriel une copie des résultats de votre simulation.\"},{\"key\":\"receiveYourResult.lastNameLabel\",\"en\":\"Last name\",\"fr\":\"Nom\"},{\"key\":\"receiveYourResult.firstNameLabel\",\"en\":\"First name\",\"fr\":\"Prénom\"},{\"key\":\"receiveYourResult.emailLabel\",\"en\":\"Email\",\"fr\":\"Adresse courriel\"},{\"key\":\"receiveYourResult.telephoneLabel\",\"en\":\"Telephone\",\"fr\":\"Numéro de téléphone\"},{\"key\":\"receiveYourResult.postalCodeLabel\",\"en\":\"Postal code\",\"fr\":\"Code postal\"},{\"key\":\"receiveYourResult.timeSlotLabel\",\"en\":\"The best time to contact you\",\"fr\":\"Moment privilégié\"},{\"key\":\"receiveYourResult.morning\",\"en\":\"Morning\",\"fr\":\"Matin\"},{\"key\":\"receiveYourResult.afternoon\",\"en\":\"Afternoon\",\"fr\":\"Après-midi\"},{\"key\":\"receiveYourResult.evening\",\"en\":\"Evening\",\"fr\":\"Soir\"},{\"key\":\"receiveYourResult.mandatoryLabels\",\"en\":\"*These fields are mandatory.\",\"fr\":\"*Ces champs sont obligatoires.\"},{\"key\":\"receiveYourResult.kaleidoCanContact\",\"en\":\"I would like to receive more information on Kaleido's Registered Education Savings Plans (RESPs) and the government grants and incentives available to me. I agree to be contacted by a Kaleido scholarship plan representative.\",\"fr\":\"Je désire recevoir des renseignements supplémentaires sur les régimes enregistrés d’épargne-études (REEE) offerts par Kaleido et les subventions et incitatifs gouvernementaux dont je pourrais bénéficier. J’accepte qu’un(e) représentant(e) en plans de bourses d'études Kaleido communique avec moi à cet effet.\"},{\"key\":\"receiveYourResult.contactDisclaimer\",\"en\":\"Note: If you check this box, your phone number and postal code will be required so that a local Kaleido scholarship plan representative can get in touch with you.\",\"fr\":\"N.B.: En cochant cette case, votre numéro de téléphone et votre code postal seront requis afin qu’un(e) représentant(e) de Kaleido de votre région puisse vous contacter.\"},{\"key\":\"receiveYourResult.canMarket\",\"en\":\"I would like to receive communications from Kaleido about products, promotions, contests and resources to equip my family. I can withdraw my consent at any time.\",\"fr\":\"Je souhaite recevoir des communications de Kaleido sur ses produits, ses promotions, ses concours et ses ressources pour outiller ma famille. Je peux retirer mon consentement en tout temps.\"},{\"key\":\"receiveYourResult.return\",\"en\":\"Back\",\"fr\":\"Précédent\"},{\"key\":\"receiveYourResult.send\",\"en\":\"Submit\",\"fr\":\"Soumettre\"},{\"key\":\"receiveYourResult.modalTitle\",\"en\":\"It's on its way!\",\"fr\":\"C'est envoyé!\"},{\"key\":\"receiveYourResult.modalReferenceNumber\",\"en\":\"Your reference number\",\"fr\":\"Votre numéro de référence:\"},{\"key\":\"receiveYourResult.modalReturn\",\"en\":\"Return to the visualization\",\"fr\":\"Retour à la visualisation\"},{\"key\":\"receiveYourResult.modalNewVisualization\",\"en\":\"Start a new visualization\",\"fr\":\"Débuter une nouvelle visualisation\"},{\"key\":\"receiveYourResult.modalIncomingContact\",\"en\":\"Be sure to keep this number handy. It's what will enable a Kaleido scholarship plan representative to access your visualization.\",\"fr\":\"Conservez-le. Il permettra à un(e) représentant(e) en plans de bourses d'études Kaleido d'accéder à cette visualisation.\"},{\"key\":\"receiveYourResult.modalSpam\",\"en\":\"Didn't get the email? Check your spam folder.\",\"fr\":\"Si vous n’avez pas reçu le courriel, vérifiez votre dossier indésirable ou spam.\"},{\"key\":\"receiveYourResult.modalVisualizationWarning\",\"en\":\"Also, not that if you start a new visualization, the data from your current visualization will be lost.\",\"fr\":\"Si vous débutez une nouvelle visualisation, les données de la visualisation en cours seront perdues.\"},{\"key\":\"makeAppointment.pageTitle\",\"en\":\"Let's talk!\",\"fr\":\"Parlons-nous!\"},{\"key\":\"makeAppointment.bodyTitle\",\"en\":\"Share your result\",\"fr\":\"Partager le résultat\"},{\"key\":\"makeAppointment.mobileBodyParagraph2\",\"en\":\"Share your visualization result with us so that one of our Kaleido Scholarship Plan representatives can get in touch to discuss it with you.\",\"fr\":\"Transmettez-nous le résultat de votre visualisation afin qu'un(e) de nos représentant(e)s en plans de bourses d'études Kaleido puisse en discuter avec vous.\"},{\"key\":\"makeAppointment.consentToggleLabel\",\"en\":\"I agree to share my visualization so that a Kaleido scholarship plan representative can help me analyze it during a telephone interview.\",\"fr\":\"J'accepte de transmettre mon résultat afin qu'un(e) représentant(e) en plans de bourses d'études Kaleido puisse m'accompagner dans l'analyse lors d'un entretien téléphonique.\"},{\"key\":\"makeAppointment.receiveEmailCopy\",\"en\":\"Receive a copy of your result by email\",\"fr\":\"Recevoir une copie du résultat par courriel\"},{\"key\":\"makeAppointment.lastNameLabel\",\"en\":\"Last name\",\"fr\":\"Nom\"},{\"key\":\"makeAppointment.firstNameLabel\",\"en\":\"First name\",\"fr\":\"Prénom\"},{\"key\":\"makeAppointment.emailLabel\",\"en\":\"Email\",\"fr\":\"Adresse courriel\"},{\"key\":\"makeAppointment.telephoneLabel\",\"en\":\"Telephone\",\"fr\":\"Numéro de téléphone\"},{\"key\":\"makeAppointment.postalCodeLabel\",\"en\":\"Postal code\",\"fr\":\"Code postal\"},{\"key\":\"makeAppointment.mandatoryLabels\",\"en\":\"All fields are mandatory.\",\"fr\":\"Tous les champs sont obligatoires.\"},{\"key\":\"makeAppointment.timeSlotLabel\",\"en\":\"The best time to contact you\",\"fr\":\"Moment privilégié\"},{\"key\":\"makeAppointment.back\",\"en\":\"Back\",\"fr\":\"Précédent\"},{\"key\":\"makeAppointment.next\",\"en\":\"Next\",\"fr\":\"Suivant\"},{\"key\":\"makeAppointment.submit\",\"en\":\"Submit\",\"fr\":\"Soumettre\"},{\"key\":\"makeAppointment.call\",\"en\":\"Call\",\"fr\":\"Appeler\"},{\"key\":\"makeAppointment.send\",\"en\":\"Send\",\"fr\":\"Envoyer\"},{\"key\":\"makeAppointment.appointmentTab\",\"en\":\"Make an appointment\",\"fr\":\"Prenons rendez-vous\"},{\"key\":\"makeAppointment.callTab\",\"en\":\"Call\",\"fr\":\"Appeler\"},{\"key\":\"makeAppointment.contactUs\",\"en\":\"Contact us\",\"fr\":\"Nous contacter\"},{\"key\":\"makeAppointment.referencePleaseNote\",\"en\":\"Be sure to keep your reference number handy.\",\"fr\":\"Prenez bien en note votre numéro de référence.\"},{\"key\":\"makeAppointment.twoOptions\",\"en\":\"Discuss your results with a Kaleido RESP advisor.\",\"fr\":\"Discutez de votre résultat avec un conseiller REEE de Kaleido.\"},{\"key\":\"makeAppointment.contactUsSubtitle\",\"en\":\"Chose one of the following options:\",\"fr\":\"Choisissez l'une des options suivantes :\"},{\"key\":\"makeAppointment.received\",\"en\":\"It's on its way!\",\"fr\":\"C'est envoyé!\"},{\"key\":\"makeAppointment.referenceNumber\",\"en\":\"Your reference number\",\"fr\":\"Votre numéro de référence\"},{\"key\":\"makeAppointment.receivedExplanation\",\"en\":\"Thanks for sharing your result with us. Don't forget to take note of your reference number before closing the page or starting a new visualization.\",\"fr\":\"Merci de nous avoir partagé votre résultat. N’oubliez pas de bien prendre en note votre numéro de référence avant de fermer la page ou de démarrer une nouvelle visualisation.\"},{\"key\":\"makeAppointment.fillMeOut\",\"en\":\"Please enter the following information so that an RESP advisor can contact you as soon as possible:\",\"fr\":\"Veuillez entrer les informations suivantes afin qu’un conseiller REEE vous contacte dans les meilleurs délais :\"},{\"key\":\"makeAppointment.consentBody\",\"en\":\"Share your visualization result with us so that one of our Kaleido Scholarship Plan representatives can get in touch to discuss it with you.\",\"fr\":\"Transmettez-nous le résultat de votre visualisation afin qu'un(e) de nos représentant(e)s en plans de bourses d'études Kaleido puisse en discuter avec vous.\"},{\"key\":\"makeAppointment.postalCodeInfo\",\"en\":\"We need your postal code so that a local Kaleido scholarship plan representative can get in touch with you.\",\"fr\":\"Votre code postal est nécessaire afin qu'un(e) représentant(e) en plans de bourses d'études Kaleido de votre région puisse vous contacter.\"},{\"key\":\"makeAppointment.planACall\",\"en\":\"I want to be called\",\"fr\":\"Je désire qu’on m’appelle\"},{\"key\":\"makeAppointment.callUs\",\"en\":\"Give us a shout\",\"fr\":\"Appelez-nous\"},{\"key\":\"makeAppointment.desktopAppointmentBody\",\"en\":\"Please enter the following information so that an RESP advisor can contact you as soon as possible:\",\"fr\":\"Veuillez entrer les informations suivantes afin qu’un conseiller REEE vous contacte dans les meilleurs délais :\"},{\"key\":\"makeAppointment.telephoneAppointmentBody\",\"en\":\"Need help? Our Kaleido scholarship plan representatives are here for you.\",\"fr\":\"Besoin de soutien? Parlez à un(e) de nos représentant(e)s en plans de bourses d'études Kaleido!\"},{\"key\":\"makeAppointment.callIsPlanned.title\",\"en\":\"It’s been sent!\",\"fr\":\"C'est envoyé!\"},{\"key\":\"makeAppointment.callIsPlanned.text\",\"en\":\"An RESP advisor will contact you as soon as possible.\",\"fr\":\"Un conseiller REEE communiquera avec vous dans les meilleurs délais.\"},{\"key\":\"makeAppointment.callIsPlanned.close\",\"en\":\"Close\",\"fr\":\"Fermer\"},{\"key\":\"questionCard.stepProgression\",\"en\":\"{0}/{1}\",\"fr\":\"{0}/{1}\"},{\"key\":\"questionCard.return\",\"en\":\"Return\",\"fr\":\"Retour\"},{\"key\":\"questionCard.back\",\"en\":\"Back\",\"fr\":\"Précédent\"},{\"key\":\"questionCard.next\",\"en\":\"Next\",\"fr\":\"Suivant\"},{\"key\":\"telephoneContactInfo.subtitle\",\"en\":\"Customer Service\",\"fr\":\"Service à la clientèle\"},{\"key\":\"telephoneContactInfo.tollFreeLabel\",\"en\":\"Toll-free :\",\"fr\":\"Ligne sans frais :\"},{\"key\":\"telephoneContactInfo.tollFreeNumber\",\"en\":\"1-877-710-7377\",\"fr\":\"1 877 410-7333\"},{\"key\":\"telephoneContactInfo.telephoneLabel\",\"en\":\"Telephone :\",\"fr\":\"Téléphone :\"},{\"key\":\"telephoneContactInfo.telephoneNumber\",\"en\":\"418-651-8975\",\"fr\":\"418 651-8975\"},{\"key\":\"telephoneContactInfo.hoursLabel\",\"en\":\"Telephone customer service hours are :\",\"fr\":\"Les heures d'ouverture du service à la clientèle téléphonique sont :\"},{\"key\":\"telephoneContactInfo.hoursValue\",\"en\":\"Monday and Tuesday, 8 a.m. to 7 p.m., Wednesday to Friday, 8 a.m. to 5 p.m.\",\"fr\":\"Lundi et mardi : 8 h à 19 h et mercredi au vendredi : 8 h à 17 h\"},{\"key\":\"timeBadge.minutes\",\"en\":\"{ count } min.\",\"fr\":\"{ count } min. \"},{\"key\":\"drawer.footerClose\",\"en\":\"Close\",\"fr\":\"Fermer\"},{\"key\":\"input.invalidEmail\",\"en\":\"Incorrect format. Please use aaa@aaaa.aa.\",\"fr\":\"Le format entré n'est pas valide. Veuillez utiliser un format aaa@aaaa.aa.\"},{\"key\":\"input.invalidTelephoneNumber\",\"en\":\"Incorrect format. Please use (555) 555-5555.\",\"fr\":\"Le format entré n'est pas valide. Veuillez utiliser un format (555) 555-5555.\"},{\"key\":\"input.invalidPostalCode\",\"en\":\"Incorrect format. Please use H2H 2H2.\",\"fr\":\"Le format entré n'est pas valide. Veuillez utiliser un format H2H 2H2.\"},{\"key\":\"input.emailPlaceholder\",\"en\":\"email@example.com\",\"fr\":\"email@exemple.com\"},{\"key\":\"input.telephonePlaceholder\",\"en\":\"(555) 123-4567\",\"fr\":\"(555) 123-4567\"},{\"key\":\"input.postalCodePlaceholder\",\"en\":\"G1K 2H2\",\"fr\":\"G1K 2H2\"},{\"key\":\"errorPage.title\",\"en\":\"Oops!\",\"fr\":\"Oups!\"},{\"key\":\"errorPage.description\",\"en\":\"We're currently experiencing a technical problem.\",\"fr\":\"Nous rencontrons actuellement un problème technique.\"},{\"key\":\"errorPage.button\",\"en\":\"Back to the calculator home page\",\"fr\":\"Revenir à l'accueil du calculateur\"},{\"key\":\"notFoundPage.title\",\"en\":\"Oops!\",\"fr\":\"Oups!\"},{\"key\":\"notFoundPage.description\",\"en\":\"The page you're looking for cannot be found.\",\"fr\":\"La page que vous recherchez est introuvable.\"},{\"key\":\"notFoundPage.button\",\"en\":\"Back to the calculator home page\",\"fr\":\"Revenir à l'accueil du calculateur\"},{\"key\":\"notFoundPage.homePageLink\",\"en\":\"https://www.kaleido.ca/en/resp-calculator/\",\"fr\":\"https://www.kaleido.ca/fr/calculateur-reee/\"}]","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page.vue?vue&type=style&index=0&id=79d18d48&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./appointmentDesktop.scss?vue&type=style&index=0&id=5b0bd9dc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./select.scss?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./resultsSimple.scss?vue&type=style&index=1&id=5909139e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./badge.scss?vue&type=style&index=0&id=64f63ee3&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./questionCard.vue?vue&type=style&index=0&id=a79c6ab4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./checkbox.scss?vue&type=style&index=0&id=1d529829&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wizard.vue?vue&type=style&index=0&id=2afa168f&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./tabbedContent.scss?vue&type=style&index=0&id=3a8ebd44&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./financialSituation.vue?vue&type=style&index=0&id=8b184a9a&lang=scss&scoped=true&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./pinpointResult.scss?vue&type=style&index=0&id=70d18f58&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./card.vue?vue&type=style&index=0&id=0bcc4a6f&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./appointmentInputs.scss?vue&type=style&index=0&id=2d36c07a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/image-trotinette@2x.8f050e75.jpg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./projectionCard.scss?vue&type=style&index=0&id=cefc26b0&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./optimizationIndicator.scss?vue&type=style&index=0&id=0815c0f2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./results.scss?vue&type=style&index=1&id=63079aeb&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./optimizationTable.scss?vue&type=style&index=0&id=4d9909d5&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./radio.scss?vue&type=style&index=0&id=9a74cc18&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./referenceNumberSection.scss?vue&type=style&index=0&id=f7f5a422&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./toggle.scss?vue&type=style&index=0&id=001e280a&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./financialMarketing.scss?vue&type=style&index=0&id=26bd3399&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./results.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./errorPage.scss?vue&type=style&index=0&id=56a1cba4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./textTooltip.scss?vue&type=style&index=0&id=b28264c8&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./buttonCheckbox.vue?vue&type=style&index=0&id=f2be3bae&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./sectionOverview.scss?vue&type=style&index=0&id=b13d04a2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./optimizationSection.scss?vue&type=style&index=0&id=4f4366dc&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./educationPlan.vue?vue&type=style&index=0&id=4ae58a99&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./banner.scss?vue&type=style&index=0&id=0c16db4e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./drawer.scss?vue&type=style&index=0&id=38debcb0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./telephoneContactInfo.scss?vue&type=style&index=0&id=13cad276&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stackedThreeDBarGraph.vue?vue&type=style&index=0&id=565066be&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"calculator\"}},[_c('router-view',_vm._b({},'router-view',{\n apiState: _vm.apiState,\n calculatorAPI: _vm.calculatorAPI,\n calculatorState: _vm.calculatorState,\n calculatorViewModel: _vm.calculatorViewModel,\n optimizationState: _vm.optimizationState,\n futureEducationCostState: _vm.futureEducationCostState,\n tracker: _vm.tracker,\n resetCalculatorState: _vm.resetCalculatorState,\n resubmitReferenceNumber: _vm.resubmitReferenceNumber,\n saveResult: _vm.saveResult,\n },false)),_c('portal-target',{attrs:{\"name\":\"drawers\",\"multiple\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueI18n, { LocaleMessages } from 'vue-i18n';\n\n// @ts-ignore\nimport messageRows from './messages.csv';\n\nVue.use(VueI18n);\n\nconst messages = buildMessagesObject(messageRows);\n\nif (process.env.NODE_ENV !== 'development') {\n if (\n window.location.hostname.includes('calculator') &&\n window.location.pathname === '/'\n ) {\n document.documentElement.lang = 'en';\n window.history.replaceState(window.history.state, '', '/en/');\n }\n}\n\nconst i18n = new VueI18n({\n locale: document.documentElement.lang,\n fallbackLocale: 'fr',\n messages,\n pluralizationRules: {\n fr: (choice, choicesLength) => {\n if (choice === 1 || choice === 0 || choicesLength < 2) {\n return 0;\n }\n\n return 1;\n },\n },\n});\n\ninterface IMessageRow {\n key: string;\n en: string;\n fr: string;\n}\n\nfunction buildMessagesObject(messageRows: IMessageRow[]): LocaleMessages {\n const messages: LocaleMessages = {\n en: {},\n fr: {},\n };\n\n messageRows.forEach(row => {\n messages.en[row.key] = row.en;\n messages.fr[row.key] = row.fr;\n });\n\n return messages;\n}\n\nexport default i18n;\n","import i18n from '@/i18n';\nimport { FauxDash } from '@/utils/fauxDash';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport { RawLocation } from 'vue-router';\nimport { IMarketingListItem, ISectionOverviewField } from './section';\nimport Validation from './validation';\n\nexport enum ChildRole {\n Parent,\n Guardian,\n FriendOrFamily,\n}\n\nexport enum Provinces {\n Quebec,\n NewBrunswick,\n}\n\nexport enum SavingStrategy {\n Monthly,\n TotalGoal,\n}\n\nexport enum BasicInformationWizardSteps {\n Name = 1,\n Age = 2,\n Role = 3,\n Province = 4,\n StartingAmount = 5,\n SavingStrategy = 6,\n}\n\nexport class BasicInformationState {\n childName: string;\n childAge: number;\n relationshipToChild: ChildRole;\n province: Provinces;\n startingAmount: number;\n savingStrategy: SavingStrategy;\n monthlyDeposit: number;\n totalGoal: number;\n\n private constructor() {\n this.childName = '';\n this.childAge = 0;\n this.relationshipToChild = ChildRole.Parent;\n this.province = Provinces.Quebec;\n this.startingAmount = 0;\n this.savingStrategy = SavingStrategy.Monthly;\n this.monthlyDeposit = 0;\n this.totalGoal = 0;\n }\n\n static fromViewModel(\n vm: BasicInformationViewModel\n ): BasicInformationState | null {\n if (!vm.isComplete) {\n return null;\n }\n\n const { relationshipToChild, province, savingStrategy } = vm;\n\n const state = new BasicInformationState();\n\n if (relationshipToChild == null || province == null) {\n return null;\n }\n\n state.childName = vm.childName.trim();\n state.childAge = Validation.numberOrDefault(vm.childAge);\n state.relationshipToChild = relationshipToChild;\n state.province = province;\n state.startingAmount = Validation.numberOrDefault(vm.startingAmount);\n state.savingStrategy = savingStrategy;\n\n if (savingStrategy === SavingStrategy.Monthly) {\n state.monthlyDeposit = Validation.numberOrDefault(vm.monthlyDeposit);\n state.totalGoal = 0;\n } else {\n state.monthlyDeposit = 0;\n state.totalGoal = Validation.numberOrDefault(vm.totalGoal);\n }\n\n return state;\n }\n\n asViewModel(): BasicInformationViewModel {\n const vm = new BasicInformationViewModel();\n vm.childName = this.childName;\n vm.childAge = this.childAge;\n vm.relationshipToChild = this.relationshipToChild;\n vm.province = this.province;\n vm.savingStrategy = this.savingStrategy;\n vm.monthlyDeposit = this.monthlyDeposit;\n vm.startingAmount = this.startingAmount;\n vm.totalGoal = this.totalGoal;\n return vm;\n }\n}\n\nexport class BasicInformationViewModel {\n public static getTestData(): BasicInformationViewModel {\n const basicInfos = new this();\n basicInfos.childName = 'Adam';\n basicInfos.childAge = 2;\n basicInfos.relationshipToChild = ChildRole.Parent;\n basicInfos.province = Provinces.Quebec;\n basicInfos.startingAmount = 2000;\n basicInfos.savingStrategy = SavingStrategy.TotalGoal;\n basicInfos.totalGoal = 50000;\n return basicInfos;\n }\n\n public static translateRelation(\n role: ChildRole | null,\n locale?: 'fr' | 'en'\n ): string {\n if (role == null) {\n return '';\n }\n\n const translationKey = {\n [ChildRole.Parent]: 'childRelationship.parent',\n [ChildRole.Guardian]: 'childRelationship.guardian',\n [ChildRole.FriendOrFamily]: 'childRelationship.friendOrFamily',\n }[role];\n\n if (locale) {\n return i18n.t(translationKey, locale).toString();\n }\n\n return i18n.t(translationKey).toString();\n }\n\n public static translateProvince(\n province: Provinces | null,\n locale?: 'fr' | 'en'\n ): string {\n if (province == null) {\n return '';\n }\n\n const translationKey = {\n [Provinces.Quebec]: 'provinces.quebec',\n [Provinces.NewBrunswick]: 'provinces.newBrunswick',\n }[province];\n\n if (locale) {\n return i18n.t(translationKey, locale).toString();\n }\n\n return i18n.t(translationKey).toString();\n }\n\n childName: string = '';\n childAge: number | string = '';\n relationshipToChild: ChildRole | null = null;\n province: Provinces | null = null;\n startingAmount: number | string = '';\n savingStrategy: SavingStrategy = SavingStrategy.Monthly;\n monthlyDeposit: number | string = '';\n totalGoal: number | string = '';\n\n get noGovernmentSubsidiesPossible(): boolean {\n return (\n typeof this.childAge === 'number' &&\n 15 <= this.childAge &&\n this.childAge < 18\n );\n }\n\n get noReeePossible(): boolean {\n return typeof this.childAge === 'number' && 18 <= this.childAge;\n }\n\n get ageInvalid(): boolean {\n return typeof this.childAge === 'number' && this.childAge >= 18;\n }\n\n get baseProps() {\n return {\n childName: this.childName,\n relationshipToChild: this.relationshipToChild,\n province: this.province,\n startingAmount: this.startingAmount,\n savingStrategy: this.savingStrategy,\n monthlyDeposit: this.monthlyDeposit,\n totalGoal: this.totalGoal,\n };\n }\n\n clone(): BasicInformationViewModel {\n return Object.assign(new BasicInformationViewModel(), this.baseProps);\n }\n\n equals(other: BasicInformationViewModel): boolean {\n return FauxDash.shallowObjectEquals(this.baseProps, other.baseProps);\n }\n\n private get stepValues(): BasicInformationWizardSteps[] {\n return Object.values(BasicInformationWizardSteps).filter(\n value => typeof value === 'number'\n ) as BasicInformationWizardSteps[];\n }\n\n private get stepRoutes(): Record {\n return this.stepValues.reduce(\n (stepRoutes, step) => ({\n ...stepRoutes,\n [step]: i18n.t(`routes.basicInformation.step.${step}`).toString(),\n }),\n {} as Record\n );\n }\n\n getStepFromRoute(route: string): BasicInformationWizardSteps {\n return (\n this.stepValues.find(step => route === this.stepRoutes[step]) ??\n BasicInformationWizardSteps.Name\n );\n }\n\n getRouteFromStep(step: BasicInformationWizardSteps): string {\n return this.stepRoutes[step];\n }\n\n stepProgression(): Record {\n return {\n [BasicInformationWizardSteps.Name]: !!this.childName.trim().length,\n [BasicInformationWizardSteps.Age]: Validation.numberInRangeExclusive(\n this.childAge,\n 0,\n 18\n ),\n [BasicInformationWizardSteps.Role]: this.relationshipToChild != null,\n [BasicInformationWizardSteps.Province]: this.province != null,\n [BasicInformationWizardSteps.StartingAmount]: Validation.numberInRangeExclusive(\n this.startingAmount,\n 0,\n 1_000_000\n ),\n [BasicInformationWizardSteps.SavingStrategy]:\n (this.savingStrategy === SavingStrategy.Monthly &&\n Validation.numberInRangeExclusive(\n this.monthlyDeposit,\n 0,\n 1_000_000\n )) ||\n (this.savingStrategy === SavingStrategy.TotalGoal &&\n Validation.numberInRangeExclusive(this.totalGoal, 0, 1_000_000)),\n };\n }\n\n get sectionName(): string {\n return 'basicInfos';\n }\n\n get startSectionEventName(): string {\n return 'debuter_profil';\n }\n\n get sectionThemeColor(): string {\n return 'bleu';\n }\n\n get sectionOverviewFields(): ISectionOverviewField[] {\n if (!this.isComplete) {\n return [];\n }\n\n const baseFields = [\n {\n label: i18n.t('basicInfos.overview.childName'),\n value: this.childName,\n },\n {\n label: i18n.t('basicInfos.overview.childAge'),\n value: this.childAge,\n },\n {\n label: i18n.t('basicInfos.overview.relationshipToChild'),\n value: BasicInformationViewModel.translateRelation(\n this.relationshipToChild\n ),\n },\n {\n label: i18n.t('basicInfos.overview.province'),\n value:\n this.province != null\n ? BasicInformationViewModel.translateProvince(this.province)\n : '',\n },\n {\n label: i18n.t('basicInfos.overview.startingAmount'),\n value:\n typeof this.startingAmount === 'number'\n ? NumberFormatter.formatCurrency(this.startingAmount)\n : '',\n },\n ];\n\n if (this.savingStrategy === SavingStrategy.TotalGoal) {\n return [\n ...baseFields,\n {\n label: i18n.t('basicInfos.overview.totalGoal'),\n value:\n typeof this.totalGoal === 'number'\n ? NumberFormatter.formatCurrency(this.totalGoal)\n : '',\n },\n ];\n }\n\n return [\n ...baseFields,\n {\n label: i18n.t('basicInfos.overview.monthlyDeposit'),\n value:\n typeof this.monthlyDeposit === 'number'\n ? NumberFormatter.formatCurrency(this.monthlyDeposit)\n : '',\n },\n ];\n }\n\n get timeToFinish(): number {\n return 5;\n }\n\n get isComplete(): boolean {\n return Object.values(this.stepProgression()).every(b => b);\n }\n\n sectionFormLocation(completionLocationName?: string): RawLocation {\n const location: RawLocation = {\n name: 'basicInformation',\n params: { step: this.getRouteFromStep(BasicInformationWizardSteps.Name) },\n };\n\n if (completionLocationName) {\n location.query = { completionLocationName };\n }\n\n return location;\n }\n\n get marketingListItems(): IMarketingListItem[] {\n return [];\n }\n}\n","const FauxDash = {\n sumBy(items: T[], func: (val: T) => number): number {\n let sum = 0;\n for (const item of items) {\n sum += func(item);\n }\n\n return sum;\n },\n shallowObjectEquals(a: Record, b: Record): boolean {\n for (const key in a) {\n if (!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n\n for (const key in b) {\n if (!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n },\n};\n\nexport { FauxDash };\n","import i18n from '@/i18n';\n\nconst NumberFormatter = {\n formatCurrency: function(value: number, minimumFractionDigits = 0): string {\n const locale = i18n.locale;\n const roundedValue = value.toFixed(minimumFractionDigits).toString();\n\n if (locale === 'en') {\n return `$${roundedValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n } else {\n return `${roundedValue\n .replace('.', ',')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ')} $`;\n }\n },\n};\n\nexport default NumberFormatter;\n","// eslint-disable-next-line\nconst emailValidationRegex = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n\nconst Validation = {\n numberInRangeExclusive(value: any, min: number, max: number): boolean {\n if (!Number.isFinite(value)) {\n return false;\n }\n\n return min <= value && value < max;\n },\n numberOrDefault(val: unknown, orElse: number = 0): number {\n if (typeof val === 'number' && Number.isFinite(val)) {\n return val;\n }\n\n return orElse;\n },\n postalCode(val: string): boolean {\n val = val.toLowerCase().replace(/\\s/g, '');\n return /^[a-z]\\d[a-z]\\d[a-z]\\d$/.test(val);\n },\n postalCodeMask: {\n mask: 'a0a 0a0',\n prepare: (val: string) => val.toUpperCase(),\n },\n telephone(val: string): boolean {\n return val.replace(/\\D/g, '').length === 10;\n },\n telephoneMask: {\n mask: '(000) 000-0000',\n },\n email(val: string): boolean {\n return emailValidationRegex.test(val);\n },\n};\n\nexport default Validation;\n","import IconCategoryFamily from '@/components/icons/iconCategoryFamily/iconCategoryFamily.vue';\nimport IconCategoryOrientation from '@/components/icons/iconCategoryOrientation/iconCategoryOrientation.vue';\nimport IconCategoryTutoring from '@/components/icons/iconCategoryTutoring/iconCategoryTutoring.vue';\nimport i18n from '@/i18n';\nimport { FauxDash } from '@/utils/fauxDash';\nimport { RawLocation } from 'vue-router';\nimport { IMarketingListItem, ISectionOverviewField } from './section';\n\nexport enum EducationLevel {\n DEP,\n CEPTechnique,\n DEC,\n BAC,\n CCNB,\n}\n\nexport enum HousingType {\n Home,\n Away,\n}\n\nexport enum EducationPlanSteps {\n Level = 1,\n Housing = 2,\n}\n\nexport class EducationInformationState {\n targetedLevel: EducationLevel;\n housingType: HousingType;\n\n private constructor() {\n this.targetedLevel = EducationLevel.BAC;\n this.housingType = HousingType.Away;\n }\n\n static fromViewModel(\n vm: EducationInformationViewModel\n ): EducationInformationState | null {\n if (vm.housingType == null || vm.targetedLevel == null) {\n return null;\n }\n\n const state = new EducationInformationState();\n state.housingType = vm.housingType;\n state.targetedLevel = vm.targetedLevel;\n return state;\n }\n\n asViewModel(): EducationInformationViewModel {\n const vm = new EducationInformationViewModel();\n vm.targetedLevel = this.targetedLevel;\n vm.housingType = this.housingType;\n return vm;\n }\n}\n\nexport class EducationInformationViewModel {\n public static getTestData(): EducationInformationViewModel {\n const educationInfos = new this();\n educationInfos.targetedLevel = EducationLevel.DEP;\n educationInfos.housingType = HousingType.Away;\n return educationInfos;\n }\n\n public static translateEducationLevel(\n level: EducationLevel | null,\n locale?: 'fr' | 'en'\n ): string {\n if (level == null) {\n return '';\n }\n\n const translationKey = {\n [EducationLevel.DEP]: 'educationLevel.dep',\n [EducationLevel.CEPTechnique]: 'educationLevel.cepTechnique',\n [EducationLevel.DEC]: 'educationLevel.dec',\n [EducationLevel.BAC]: 'educationLevel.bac',\n [EducationLevel.CCNB]: 'educationLevel.ccnb',\n }[level];\n\n if (locale) {\n return i18n.t(translationKey, locale).toString();\n }\n\n return i18n.t(translationKey).toString();\n }\n\n targetedLevel: EducationLevel | null = null;\n housingType: HousingType | null = null;\n\n get baseProps() {\n return {\n targetedLevel: this.targetedLevel,\n housingType: this.housingType,\n };\n }\n\n clone(): EducationInformationViewModel {\n return Object.assign(new EducationInformationViewModel(), this.baseProps);\n }\n\n equals(other: EducationInformationViewModel): boolean {\n return FauxDash.shallowObjectEquals(this.baseProps, other.baseProps);\n }\n\n translateHousingType(type: HousingType): string {\n const translationKey = {\n [HousingType.Home]: 'housingType.home',\n [HousingType.Away]: 'housingType.away',\n }[type];\n\n return i18n.t(translationKey).toString();\n }\n\n private get stepValues(): EducationPlanSteps[] {\n return Object.values(EducationPlanSteps).filter(\n value => typeof value === 'number'\n ) as EducationPlanSteps[];\n }\n\n private get stepRoutes(): Record {\n return this.stepValues.reduce(\n (stepRoutes, step) => ({\n ...stepRoutes,\n [step]: i18n.t(`routes.educationPlan.step.${step}`).toString(),\n }),\n {} as Record\n );\n }\n\n getStepFromRoute(route: string): EducationPlanSteps {\n return (\n this.stepValues.find(step => route === this.stepRoutes[step]) ??\n EducationPlanSteps.Level\n );\n }\n\n getRouteFromStep(step: EducationPlanSteps): string {\n return this.stepRoutes[step];\n }\n\n stepProgression(): Record {\n return {\n [EducationPlanSteps.Level]: this.targetedLevel != null,\n [EducationPlanSteps.Housing]: this.housingType != null,\n };\n }\n\n get sectionName(): string {\n return 'educationInfos';\n }\n\n get startSectionEventName(): string {\n return 'debuter_etudes_envisagees';\n }\n\n get sectionThemeColor(): string {\n return 'peche';\n }\n\n get sectionOverviewFields(): ISectionOverviewField[] {\n if (!this.isComplete) {\n return [];\n }\n\n return [\n {\n label: i18n.t('educationInfos.overview.targetedLevel').toString(),\n value: EducationInformationViewModel.translateEducationLevel(\n this.targetedLevel ?? EducationLevel.DEC\n ),\n },\n {\n label: i18n.t('educationInfos.overview.housingType').toString(),\n value: this.translateHousingType(this.housingType ?? HousingType.Away),\n },\n ];\n }\n\n get timeToFinish(): number {\n return 1;\n }\n\n get isComplete(): boolean {\n return Object.values(this.stepProgression()).every(b => b);\n }\n\n sectionFormLocation(completionLocationName?: string): RawLocation {\n const location: RawLocation = {\n name: 'educationPlan',\n params: {\n step: this.getRouteFromStep(EducationPlanSteps.Level),\n },\n };\n\n if (completionLocationName) {\n location.query = { completionLocationName };\n }\n\n return location;\n }\n\n get marketingListItems(): IMarketingListItem[] {\n return [\n {\n icon: IconCategoryFamily,\n title: i18n.t('educationMarketing.family.title').toString(),\n text: i18n.t('educationMarketing.family.text').toString(),\n },\n {\n icon: IconCategoryTutoring,\n title: i18n.t('educationMarketing.tutoring.title').toString(),\n text: i18n.t('educationMarketing.tutoring.text').toString(),\n },\n {\n icon: IconCategoryOrientation,\n title: i18n.t('educationMarketing.orientation.title').toString(),\n text: i18n.t('educationMarketing.orientation.text').toString(),\n },\n ];\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"42\",\"height\":\"42\",\"viewbox\":\"0 0 42 42\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M36.89 36.75h-9.562v-4.22a5.28 5.28 0 00-3.022-4.766 4.197 4.197 0 00.812-3.53 5.304 5.304 0 014.32-2.25h2.18a5.28 5.28 0 015.273 5.273v9.493zm-20.109 0v-4.22a3.168 3.168 0 013.164-3.163h2.11a3.168 3.168 0 013.164 3.164v4.219H16.78zM5.11 27.257a5.28 5.28 0 015.274-5.273h2.18c1.718 0 3.338.853 4.32 2.25a4.198 4.198 0 00.81 3.53 5.28 5.28 0 00-3.021 4.767v4.219H5.109v-9.493zm6.329-13.71A3.167 3.167 0 0114.6 16.71a3.168 3.168 0 01-3.163 3.164 3.168 3.168 0 01-3.165-3.164 3.168 3.168 0 013.165-3.164zM21 23.039c1.163 0 2.11.946 2.11 2.109s-.947 2.11-2.11 2.11a2.112 2.112 0 01-2.11-2.11c0-1.163.947-2.11 2.11-2.11zm9.563-9.492a3.168 3.168 0 013.164 3.164 3.168 3.168 0 01-3.164 3.164 3.168 3.168 0 01-3.164-3.164 3.168 3.168 0 013.164-3.164zm3.77 6.845a5.255 5.255 0 001.503-3.681 5.28 5.28 0 00-5.273-5.274 5.28 5.28 0 00-5.274 5.274c0 1.423.568 2.716 1.488 3.665a7.452 7.452 0 00-2.739 1.85 4.208 4.208 0 00-6.076 0 7.452 7.452 0 00-2.739-1.85 5.255 5.255 0 001.488-3.665 5.28 5.28 0 00-5.273-5.274 5.28 5.28 0 00-5.274 5.274c0 1.43.574 2.73 1.503 3.681C4.936 21.476 3 24.145 3 27.257v10.547c0 .583.472 1.055 1.055 1.055h33.89c.583 0 1.055-.472 1.055-1.055V27.257c0-3.112-1.936-5.78-4.667-6.865z\",\"fill\":\"#A4D0B9\"}}),_c('g',{attrs:{\"transform\":\"translate(3 11.437)\"}},[_c('path',{attrs:{\"d\":\"M8.438 2.11a3.168 3.168 0 013.164 3.164 3.168 3.168 0 01-3.164 3.164 3.168 3.168 0 01-3.165-3.164 3.168 3.168 0 013.165-3.165m3.202 23.204H2.11V15.82a5.28 5.28 0 015.273-5.273h2.18c1.718 0 3.338.853 4.32 2.25-.012.05-.017.1-.026.15.02.005.04.012.06.019a5.068 5.068 0 011.027-2.195 7.447 7.447 0 00-2.72-1.832 5.254 5.254 0 001.487-3.665A5.28 5.28 0 008.438 0a5.28 5.28 0 00-5.274 5.274c0 1.43.574 2.73 1.503 3.681C1.936 10.04 0 12.708 0 15.82v10.547c0 .583.472 1.055 1.055 1.055h10.589a83.992 83.992 0 01-.004-2.11\",\"fill\":\"#0AABC7\"}})]),_c('path',{attrs:{\"d\":\"M33.705 16.71a3.168 3.168 0 01-3.164 3.165 3.168 3.168 0 01-3.164-3.164 3.168 3.168 0 013.164-3.165 3.168 3.168 0 013.164 3.165m-6.37 22.148h10.589c.582 0 1.055-.472 1.055-1.055V27.258c0-3.113-1.936-5.781-4.667-6.866a5.255 5.255 0 001.502-3.681 5.28 5.28 0 00-5.273-5.274 5.28 5.28 0 00-5.274 5.274c0 1.423.568 2.715 1.488 3.665a7.447 7.447 0 00-2.72 1.832 5.07 5.07 0 011.027 2.195l.06-.02c-.01-.05-.015-.1-.026-.15a5.303 5.303 0 014.32-2.249h2.18a5.28 5.28 0 015.273 5.274v9.492h-9.53c.01.71.004 1.416-.004 2.109\",\"fill\":\"#F3BEA1\"}}),_c('g',{attrs:{\"transform\":\"translate(15.375 3)\"}},[_c('path',{attrs:{\"d\":\"M4.737 2.935a1.055 1.055 0 001.776 0c.966-1.506 2.628-.803 2.628.922 0 1.44-1.97 3.293-3.513 4.37-1.296-.914-3.518-2.805-3.518-4.37 0-1.72 1.658-2.433 2.627-.922M2.624 8.507a17.672 17.672 0 002.448 1.883c.34.209.767.209 1.106 0 .05-.031 1.244-.77 2.448-1.883 1.741-1.609 2.624-3.174 2.624-4.65 0-3.352-3.333-4.925-5.625-3.063C3.33-1.073 0 .514 0 3.857c0 1.476.883 3.041 2.624 4.65\",\"fill\":\"#EC6D5A\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCategoryFamily.vue?vue&type=template&id=1ae2835b&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"42\",\"height\":\"42\",\"viewBox\":\"0 0 42 42\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M21.004 24.582l-6.547-2.784 6.547-2.784 6.548 2.784-6.548 2.784zM24.8 27.19c-2.584 1.265-5.076 1.268-7.591.007v-2.272l3.443 1.464a.901.901 0 00.705 0l3.443-1.464v2.265zm5.405-6.22l-8.848-3.762a.901.901 0 00-.705 0l-8.848 3.762a.9.9 0 000 1.657l3.606 1.533-.002.02v3.557a.9.9 0 00.46.785c1.682.945 3.387 1.418 5.103 1.418 1.713 0 3.438-.471 5.161-1.412a.9.9 0 00.469-.79V24.18l-.002-.02 1.358-.577v3.512a.9.9 0 001.8 0v-4.278l.448-.19a.9.9 0 000-1.657z\",\"fill\":\"#0AABC7\"}}),_c('path',{attrs:{\"d\":\"M25.21 9.635L21.66 6.25a.9.9 0 00-1.243 0l-3.55 3.386a.9.9 0 001.244 1.303l2.028-1.935v5.18a.9.9 0 001.8 0v-5.18l2.028 1.935a.898.898 0 001.273-.03.9.9 0 00-.03-1.273\",\"fill\":\"#EDE6B8\"}}),_c('path',{attrs:{\"d\":\"M38.568 16.358l-4.19-2.552a.9.9 0 00-.937 1.537l2.4 1.462-4.971 1.357a.9.9 0 10.474 1.737l4.954-1.352L34.958 21a.9.9 0 001.58.863l2.352-4.305a.9.9 0 00-.322-1.2\",\"fill\":\"#A4D0B9\"}}),_c('path',{attrs:{\"d\":\"M11.13 18.162l-4.97-1.357 2.399-1.462a.9.9 0 00-.937-1.537l-4.19 2.552a.9.9 0 00-.322 1.2l2.353 4.306A.9.9 0 107.043 21l-1.341-2.454 4.954 1.352a.9.9 0 00.474-1.737\",\"fill\":\"#F3BEA1\"}}),_c('path',{attrs:{\"d\":\"M38.89 31.57l-2.353-4.306a.9.9 0 00-1.58.863l1.341 2.454-4.954-1.353a.9.9 0 00-.474 1.737l4.97 1.358-2.398 1.461a.9.9 0 10.936 1.538l4.19-2.552a.9.9 0 00.322-1.2\",\"fill\":\"#EC6D5A\"}}),_c('g',{attrs:{\"transform\":\"translate(3 26.795)\"}},[_c('path',{attrs:{\"d\":\"M8.762 3.065a.9.9 0 00-1.106-.632L2.702 3.786l1.34-2.454a.9.9 0 10-1.58-.863L.11 4.774a.9.9 0 00.322 1.2l4.19 2.553a.897.897 0 001.237-.3.9.9 0 00-.3-1.238l-2.4-1.461L8.13 4.17a.9.9 0 00.632-1.105\",\"fill\":\"#6882A6\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCategoryOrientation.vue?vue&type=template&id=1533c40e&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"42\",\"height\":\"42\",\"viewbox\":\"0 0 42 42\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M6.873 25.853a.846.846 0 01-.398-1.594c3.466-1.837 7.411-2.352 11.108-1.447a.846.846 0 11-.402 1.644c-3.294-.806-6.814-.345-9.913 1.298a.845.845 0 01-.395.099\",\"fill\":\"#F3BEA1\"}}),_c('path',{attrs:{\"d\":\"M6.873 29.545a.846.846 0 01-.398-1.595c3.467-1.837 7.411-2.351 11.108-1.446a.846.846 0 11-.402 1.643c-3.293-.805-6.814-.344-9.913 1.299a.845.845 0 01-.395.099\",\"fill\":\"#EC6D5A\"}}),_c('path',{attrs:{\"d\":\"M8.734 17.768c.077 0 .155-.01.233-.032l.023-.007a.857.857 0 10-.466-1.648l-.02.006a.856.856 0 00.23 1.681\",\"fill\":\"#0AABC7\"}}),_c('g',{attrs:{\"transform\":\"translate(30.52 37.554)\"}},[_c('path',{attrs:{\"d\":\"M.88 0H.855a.856.856 0 000 1.713h.023A.856.856 0 00.88 0\",\"fill\":\"#0AABC7\"}})]),_c('path',{attrs:{\"d\":\"M37.251 33.02c-5.344-2.577-11.852-3.234-15.411-.47V19.211l-.04-.07a19.3 19.3 0 012.73-1.228l.533.53.246.247 3.057 3.057c.026.023.051.046.079.067.004.004.014.009.018.014l.065.043.023.014c.025.014.05.028.078.04a.812.812 0 00.113.041l4.475 1.254a.854.854 0 00.837-.219.857.857 0 00.219-.837l-1.257-4.475v-.004a.775.775 0 00-.034-.097c-.003-.002-.003-.007-.005-.012a1.242 1.242 0 00-.053-.099 1 1 0 00-.044-.067c-.002-.002-.004-.006-.009-.009 1.457.353 2.912.936 4.369 1.755l.011.223V33.02zm0 3.424c-5.341-2.575-11.85-3.232-15.411-.47v-.941c1.122-1.69 3.382-2.596 6.393-2.554 2.881.039 6.141.933 9.018 2.46v1.505zM20.984 11.942l2.01-2.008 5.292 5.291 1.786 1.784.911.911-2.01 2.01-2.566-2.568-.528-.526c0-.002-.002-.002-.005-.004l-4.89-4.89zm-5.18-5.18l2.008-2.01 3.97 3.97-2.008 2.01-3.97-3.97zm16.408 14.4l-1.598-.45 1.15-1.15.448 1.6zM20.127 35.973c-3.562-2.762-10.07-2.105-15.414.47v-1.506c2.877-1.526 6.137-2.42 9.018-2.46 3.012-.04 5.273.865 6.396 2.555v.94zM6.414 37.553c2.418-1.028 4.991-1.616 7.317-1.649 2.421-.032 4.356.545 5.603 1.649H6.414zm32.133-19.774c-2.587-1.521-5.206-2.377-7.843-2.566l-.092-.09h-.005L18.956 3.473a1.619 1.619 0 00-2.285 0l-2.146 2.146c-.63.63-.63 1.656 0 2.285l4.643 4.645h.002l3.938 3.938c-.756.309-1.515.669-2.273 1.084-2.22-1.783-5.303-2.557-8.805-2.188a.856.856 0 00.18 1.704c3.244-.344 6.038.41 7.917 2.125v13.34c-3.562-2.765-10.07-2.108-15.414.47V19.378a30.39 30.39 0 011.996-.871.856.856 0 10-.627-1.593c-.848.334-1.726.724-2.605 1.162a.85.85 0 00-.477.765V38.41c0 .473.383.856.855.856h24.099a.857.857 0 100-1.713H22.63c1.249-1.104 3.183-1.68 5.602-1.649 2.326.033 4.899.62 7.32 1.649H33.86a.857.857 0 100 1.713h4.249a.855.855 0 00.855-.856V18.826a.918.918 0 00-.417-1.047z\",\"fill\":\"#0AABC7\"}}),_c('path',{attrs:{\"d\":\"M30.704 15.214l-.092-.09h-.005L18.956 3.472a1.618 1.618 0 00-2.285 0l-2.146 2.146c-.63.63-.63 1.656 0 2.285l4.643 4.645h.002l3.938 3.938 1.422 1.427.533.53.247.247 3.056 3.057c.026.023.051.046.079.067l.018.014.065.044c.01.004.016.009.023.013.025.014.05.028.078.04a.784.784 0 00.113.041l4.475 1.254a.853.853 0 00.837-.219c.219-.219.302-.537.219-.837l-1.257-4.474v-.005a.812.812 0 00-.034-.097c-.003-.002-.003-.007-.005-.011a1.129 1.129 0 00-.053-.1 1.004 1.004 0 00-.044-.066c-.002-.003-.004-.007-.009-.01l-2.167-2.187zm-9.72-3.272l2.01-2.008 5.292 5.291 1.786 1.784.91.911-2.01 2.01-2.565-2.568-.528-.525c0-.003-.002-.003-.005-.005l-4.89-4.89zm-5.18-5.18l2.008-2.01 3.97 3.97-2.008 2.01-3.97-3.97zm16.408 14.4l-1.598-.45 1.15-1.15.448 1.6z\",\"fill\":\"#F3BEA1\"}}),_c('path',{attrs:{\"d\":\"M6.694 22.527a.807.807 0 01-.41-1.502c2.113-1.245 4.75-1.734 7.838-1.454a.807.807 0 01-.146 1.608c-2.744-.25-5.057.166-6.873 1.236a.801.801 0 01-.41.112\",\"fill\":\"#F2EDCC\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCategoryTutoring.vue?vue&type=template&id=b34b9058&\"\nvar script = {}\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\nexport default component.exports","import { PageView, VueGtag } from 'vue-gtag';\nimport VueRouter, { Route } from 'vue-router';\nimport { ApiState } from './apiState';\nimport { BasicInformationViewModel, ChildRole, Provinces } from './basicInformation';\nimport { CalculatorViewModel } from './calculatorState';\nimport {\n EducationInformationViewModel,\n EducationLevel,\n} from './educationInformation';\nimport { OptimizationState } from './optimizationState';\nimport { ReceiveResultViewModel } from './receiveResultViewModel';\n\ninterface DimensionUpdate {\n calculatorViewModel?: CalculatorViewModel;\n apiState?: ApiState;\n optimizationState?: OptimizationState;\n receiveResultViewModel?: ReceiveResultViewModel;\n}\n\nexport enum PageScroll {\n zero,\n twentyFive,\n fifty,\n seventyFive,\n hundred,\n}\n\nconst LanguageMapping: Record = {\n fr: 'Français',\n en: 'Anglais',\n};\n\nexport class Tracker {\n gtag: VueGtag;\n router: VueRouter;\n\n childAge: string;\n relationshipToChild: string;\n province: string;\n provinceRaw: Provinces | null = null;\n targetedEducationLevel: string;\n familyIncome: string | null;\n referenceNumber: 'oui' | 'non' | null;\n optimization: 'oui' | 'non' | null;\n optInInfoletter: 'oui' | 'non' | null;\n startingAmount: 'oui' | 'non' | null;\n\n constructor(gtagInstance: VueGtag, routerInstance: VueRouter) {\n this.childAge = '';\n this.relationshipToChild = '';\n this.province = '';\n this.targetedEducationLevel = '';\n this.familyIncome = null;\n this.referenceNumber = null;\n this.optimization = null;\n this.optInInfoletter = null;\n this.startingAmount = null;\n\n this.gtag = gtagInstance;\n this.router = routerInstance;\n }\n\n pageview(route: Route) {\n this.gtag.pageview({\n ...this.baseParams,\n page_title: route.meta?.gtm ?? route.name,\n page_path: route.path,\n } as PageView);\n }\n\n getCurrentPageScroll(): PageScroll {\n const scrollTop =\n document.documentElement.scrollTop || document.body.scrollTop;\n const scrollHeight =\n document.documentElement.scrollHeight || document.body.scrollHeight;\n\n const percentScrolled =\n (scrollTop / (scrollHeight - document.documentElement.clientHeight)) *\n 100;\n\n if (percentScrolled < 25) {\n return PageScroll.zero;\n }\n\n if (percentScrolled < 50) {\n return PageScroll.twentyFive;\n }\n\n if (percentScrolled < 75) {\n return PageScroll.fifty;\n }\n\n if (percentScrolled < 100) {\n return PageScroll.seventyFive;\n }\n\n return PageScroll.hundred;\n }\n\n updateDimensions({\n calculatorViewModel,\n apiState,\n optimizationState,\n receiveResultViewModel,\n }: DimensionUpdate) {\n if (calculatorViewModel) {\n this.childAge = this.convertChildAge(\n calculatorViewModel.basicInfos.childAge\n );\n this.relationshipToChild = this.convertRelationshipToChild(\n calculatorViewModel.basicInfos.relationshipToChild\n );\n this.province = BasicInformationViewModel.translateProvince(\n calculatorViewModel.basicInfos.province,\n 'fr'\n );\n this.provinceRaw = calculatorViewModel.basicInfos.province;\n this.targetedEducationLevel = this.convertTargetedEducationLevel(\n calculatorViewModel.educationInfos.targetedLevel\n );\n this.familyIncome = this.convertFamilyIncome(\n calculatorViewModel.financialInfos.familyIncome\n );\n this.startingAmount = this.convertStartingAmount(\n calculatorViewModel.basicInfos.startingAmount\n );\n }\n\n if (apiState) {\n this.referenceNumber = this.convertReferenceNumber(\n apiState.referenceNumber\n );\n }\n\n if (optimizationState) {\n this.optimization = this.convertOptimization(\n optimizationState.isOptimized\n );\n }\n\n if (receiveResultViewModel) {\n this.optInInfoletter = this.convertOptInInfoletter(\n receiveResultViewModel.receiveMarketingEmails\n );\n }\n }\n\n private get baseParams(): Record {\n return {\n age: this.childAge,\n role: this.relationshipToChild,\n etudes_envisagees: this.targetedEducationLevel,\n montant_depart: this.startingAmount,\n revenu: this.familyIncome,\n numero_de_reference: this.referenceNumber,\n optimisation: this.optimization,\n opt_in_infolettre: this.optInInfoletter,\n province: this.province,\n langue: LanguageMapping[document.documentElement.lang],\n page_path: this.router.currentRoute.path,\n };\n }\n\n scroll(pageScroll: PageScroll) {\n switch (pageScroll) {\n case PageScroll.zero:\n this.gtag.event('scroll', { ...this.baseParams, value: '0' });\n break;\n case PageScroll.twentyFive:\n this.gtag.event('scroll', { ...this.baseParams, value: '25' });\n break;\n case PageScroll.fifty:\n this.gtag.event('scroll', { ...this.baseParams, value: '50' });\n break;\n case PageScroll.seventyFive:\n this.gtag.event('scroll', { ...this.baseParams, value: '75' });\n break;\n default:\n this.gtag.event('scroll', { ...this.baseParams, value: '100' });\n break;\n }\n }\n\n event(eventName: string, extraParams?: Record) {\n this.gtag.event(eventName, { ...this.baseParams, ...extraParams });\n }\n\n private convertChildAge(age: number | string): string {\n if (age === '') {\n return '';\n }\n\n if (age <= 4) {\n return '0-4';\n }\n\n if (age <= 11) {\n return '5-11';\n }\n\n if (age <= 14) {\n return '12-14';\n }\n\n return '15-17';\n }\n\n private convertRelationshipToChild(relationship: ChildRole | null): string {\n return BasicInformationViewModel.translateRelation(relationship, 'fr');\n }\n\n private convertTargetedEducationLevel(level: EducationLevel | null): string {\n return EducationInformationViewModel.translateEducationLevel(level, 'fr');\n }\n\n private convertReferenceNumber(value: string | null): 'oui' | 'non' {\n if (!value?.length) {\n return 'non';\n }\n\n return 'oui';\n }\n\n private convertOptimization(value: boolean): 'oui' | 'non' {\n return value ? 'oui' : 'non';\n }\n\n private convertOptInInfoletter(value: boolean | null): 'oui' | 'non' {\n return value ? 'oui' : 'non';\n }\n\n private convertFamilyIncome(income: number | string): string | null {\n if (income === '') {\n return null;\n }\n\n return income <= 49_020 ? 'moins ou égal à 49 020$' : '49 021$ et +';\n }\n\n private convertStartingAmount(value: number | string): 'oui' | 'non' | null {\n if (value === '') {\n return null;\n }\n\n return value > 0 ? 'oui' : 'non';\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"42\",\"height\":\"42\",\"viewbox\":\"0 0 42 42\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('path',{attrs:{\"d\":\"M21.312 34.001a.922.922 0 110-1.844c.998 0 1.804-.067 2.693-.224a.922.922 0 01.32 1.816c-.987.174-1.916.252-3.013.252\",\"fill\":\"#6882A6\"}}),_c('path',{attrs:{\"d\":\"M18.207 36.68h-4.744a.922.922 0 110-1.844h3.933l.268-2.092a.923.923 0 011.829.234l-.371 2.897a.922.922 0 01-.915.805M29.283 36.68H24.54a.922.922 0 01-.915-.805l-.373-2.917a.922.922 0 111.828-.234l.271 2.112h3.102l.43-4.127a.921.921 0 111.834.19l-.516 4.954a.922.922 0 01-.917.827\",\"fill\":\"#0AABC7\"}}),_c('path',{attrs:{\"d\":\"M7.687 25.99a.935.935 0 01-.079-.003l-2.602-.218A2.278 2.278 0 013 23.517v-5.6a2.278 2.278 0 011.995-2.25l2.603-.249a.922.922 0 11.175 1.836l-2.577.246a.426.426 0 00-.352.418v5.599c0 .204.148.38.348.417l2.57.216a.922.922 0 01-.075 1.84\",\"fill\":\"#F2EDCC\"}}),_c('path',{attrs:{\"d\":\"M13.09 31.841a.916.916 0 01-.464-.125c-2.65-1.543-4.65-3.713-5.786-6.274a.922.922 0 111.686-.747c.977 2.204 2.715 4.08 5.028 5.428a.922.922 0 01-.465 1.718\",\"fill\":\"#6882A6\"}}),_c('path',{attrs:{\"d\":\"M29.72 31.73a.921.921 0 01-.476-1.711c3.572-2.151 5.705-5.632 5.705-9.312a.922.922 0 111.844 0c0 4.332-2.466 8.404-6.598 10.892a.916.916 0 01-.474.132\",\"fill\":\"#F3BEA1\"}}),_c('path',{attrs:{\"d\":\"M35.871 21.629a.922.922 0 01-.922-.922c0-6.314-6.118-11.45-13.637-11.45a.922.922 0 010-1.844c8.536 0 15.481 5.963 15.481 13.294 0 .51-.413.922-.922.922\",\"fill\":\"#6882A6\"}}),_c('path',{attrs:{\"d\":\"M7.682 17.258a.922.922 0 01-.842-1.297c2.273-5.111 8.085-8.544 14.464-8.544h.01a.922.922 0 010 1.843h-.01c-5.662 0-10.797 2.993-12.779 7.45a.922.922 0 01-.843.548\",\"fill\":\"#F3BEA1\"}}),_c('path',{attrs:{\"d\":\"M25.39 12.546a.92.92 0 01-.288-.047c-1.115-.366-2.383-.56-3.667-.56a.922.922 0 010-1.843c1.477 0 2.944.225 4.242.651a.922.922 0 01-.287 1.799\",\"fill\":\"#EC6D5A\"}}),_c('path',{attrs:{\"d\":\"M17.812 12.443a.922.922 0 01-.26-1.807 13.754 13.754 0 013.878-.539h.007a.922.922 0 010 1.844h-.007c-1.18 0-2.31.156-3.357.464a.926.926 0 01-.26.038\",\"fill\":\"#EC6D5A\"}}),_c('g',{attrs:{\"transform\":\"translate(8.295 6)\"}},[_c('path',{attrs:{\"d\":\"M2.213 7.336a.922.922 0 01-.892-1.159C1.619 5.055 1.2 3.388.11 1.359A.921.921 0 01.915 0c2.671-.016 4.898.78 6.609 2.378a.922.922 0 11-1.26 1.347C5.22 2.75 3.96 2.16 2.44 1.94c.793 1.857 1.01 3.408.664 4.71a.922.922 0 01-.89.686\",\"fill\":\"#F3BEA1\",\"mask\":\"url(#b)\"}})]),_c('path',{attrs:{\"d\":\"M5.082 17.506a.922.922 0 01-.087-1.84l2.603-.248a.921.921 0 11.175 1.836l-2.603.248a.947.947 0 01-.088.004\",\"fill\":\"#F2EDCC\"}}),_c('path',{attrs:{\"d\":\"M12.702 16.46a1.067 1.067 0 11-2.133 0 1.067 1.067 0 012.133 0\",\"fill\":\"#6882A6\"}}),_c('path',{attrs:{\"d\":\"M38.078 24.28a.922.922 0 01-.922-.922v-4.71a.922.922 0 111.844 0v4.71c0 .51-.413.922-.922.922\",\"fill\":\"#F2EDCC\"}}),_c('path',{attrs:{\"d\":\"M13.462 36.68a.922.922 0 01-.919-.852l-.371-4.838a.922.922 0 011.838-.141l.372 4.838a.922.922 0 01-.92.993\",\"fill\":\"#0AABC7\"}}),_c('path',{attrs:{\"d\":\"M21.312 34.001c-.974 0-1.947-.078-2.895-.232a.922.922 0 01.295-1.82c.85.138 1.725.208 2.6.208a.922.922 0 110 1.844\",\"fill\":\"#6882A6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCategoryFinance.vue?vue&type=template&id=1175d882&\"\nvar script = {}\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\nexport default component.exports","import IconCategoryFinance from '@/components/icons/iconCategoryFinance/iconCategoryFinance.vue';\nimport i18n from '@/i18n';\nimport { FauxDash } from '@/utils/fauxDash';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport { RawLocation } from 'vue-router';\nimport { IMarketingListItem, ISectionOverviewField } from './section';\nimport Validation from './validation';\n\nexport class FinancialInformationState {\n familyIncome: number;\n\n private constructor() {\n this.familyIncome = 0;\n }\n\n static fromViewModel(\n vm: FinancialInformationViewModel\n ): FinancialInformationState | null {\n if (!vm.isComplete || typeof vm.familyIncome !== 'number') {\n return null;\n }\n\n const state = new FinancialInformationState();\n state.familyIncome = vm.familyIncome;\n return state;\n }\n\n asViewModel(): FinancialInformationViewModel {\n const vm = new FinancialInformationViewModel();\n vm.familyIncome = this.familyIncome;\n return vm;\n }\n}\n\nexport class FinancialInformationViewModel {\n public static getTestData(): FinancialInformationViewModel {\n const financialInfos = new this();\n financialInfos.familyIncome = 50000;\n return financialInfos;\n }\n\n familyIncome: number | string = '';\n\n get baseProps() {\n return { familyIncome: this.familyIncome };\n }\n\n clone(): FinancialInformationViewModel {\n return Object.assign(new FinancialInformationViewModel(), this.baseProps);\n }\n\n equals(other: FinancialInformationViewModel): boolean {\n return FauxDash.shallowObjectEquals(this.baseProps, other.baseProps);\n }\n\n stepProgression(): Record {\n return {\n 1: Validation.numberInRangeExclusive(this.familyIncome, 0, 100_000_000),\n };\n }\n\n get sectionName(): string {\n return 'financialInfos';\n }\n\n get startSectionEventName(): string {\n return 'debuter_situation_financiere';\n }\n\n get sectionThemeColor(): string {\n return 'vert';\n }\n\n get sectionOverviewFields(): ISectionOverviewField[] {\n if (!this.isComplete) {\n return [];\n }\n\n return [\n {\n label: i18n.t('financialInfos.overview.familyIncome'),\n value: NumberFormatter.formatCurrency(\n typeof this.familyIncome === 'number' ? this.familyIncome : 0\n ),\n },\n ];\n }\n\n get timeToFinish(): number {\n return 1;\n }\n\n get isComplete(): boolean {\n return Object.values(this.stepProgression()).every(b => b);\n }\n\n sectionFormLocation(completionLocationName?: string): RawLocation {\n const location: RawLocation = { name: 'financialInformation' };\n if (completionLocationName) {\n location.query = { completionLocationName };\n }\n\n return location;\n }\n\n get marketingListItems(): IMarketingListItem[] {\n return [\n {\n icon: IconCategoryFinance,\n title: i18n.t('financialMarketing.title1').toString(),\n text: i18n.t('financialMarketing.text1').toString(),\n },\n ];\n }\n}\n","import {\n BasicInformationState,\n BasicInformationViewModel,\n Provinces,\n} from './basicInformation';\nimport {\n EducationInformationState,\n EducationInformationViewModel,\n EducationLevel,\n} from './educationInformation';\nimport {\n FinancialInformationState,\n FinancialInformationViewModel,\n} from './financialInformation';\n\nexport type Section =\n | BasicInformationViewModel\n | EducationInformationViewModel\n | FinancialInformationViewModel;\n\nexport class CalculatorState {\n basicInfos: BasicInformationState | null;\n educationInfos: EducationInformationState | null;\n financialInfos: FinancialInformationState | null;\n\n constructor() {\n this.basicInfos = null;\n this.educationInfos = null;\n this.financialInfos = null;\n }\n\n static fromViewModel(vm: CalculatorViewModel): CalculatorState {\n const state = new CalculatorState();\n state.basicInfos = BasicInformationState.fromViewModel(vm.basicInfos);\n state.educationInfos = EducationInformationState.fromViewModel(\n vm.educationInfos\n );\n state.financialInfos = FinancialInformationState.fromViewModel(\n vm.financialInfos\n );\n return state;\n }\n\n asViewModel(): CalculatorViewModel {\n const vm = new CalculatorViewModel();\n\n if (this.basicInfos != null) {\n vm.basicInfos = this.basicInfos.asViewModel();\n }\n\n if (this.educationInfos != null) {\n vm.educationInfos = this.educationInfos.asViewModel();\n }\n\n if (this.financialInfos != null) {\n vm.financialInfos = this.financialInfos.asViewModel();\n }\n\n return vm;\n }\n}\n\nexport class CalculatorViewModel {\n basicInfos: BasicInformationViewModel;\n educationInfos: EducationInformationViewModel;\n financialInfos: FinancialInformationViewModel;\n\n constructor() {\n this.basicInfos = new BasicInformationViewModel();\n this.educationInfos = new EducationInformationViewModel();\n this.financialInfos = new FinancialInformationViewModel();\n }\n\n clone(): CalculatorViewModel {\n const vm = new CalculatorViewModel();\n vm.basicInfos = this.basicInfos.clone();\n vm.educationInfos = this.educationInfos.clone();\n vm.financialInfos = this.financialInfos.clone();\n return vm;\n }\n\n equals(other: CalculatorViewModel): boolean {\n return (\n this.basicInfos.equals(other.basicInfos) &&\n this.educationInfos.equals(other.educationInfos) &&\n this.financialInfos.equals(other.financialInfos)\n );\n }\n\n get possibleEducationLevels(): EducationLevel[] {\n const educationLevels = [EducationLevel.DEP];\n\n if (this.basicInfos.province === Provinces.Quebec) {\n educationLevels.push(EducationLevel.DEC);\n educationLevels.push(EducationLevel.CEPTechnique);\n } else {\n educationLevels.push(EducationLevel.CCNB);\n }\n\n educationLevels.push(EducationLevel.BAC);\n\n return educationLevels;\n }\n}\n","import { CalculatorViewModel } from './calculatorState';\nimport { Plan, Projection } from './plan';\n\nexport class OptimizationState {\n grantsOptimized: boolean;\n educationProjectOptimized: boolean;\n baseProjections: Projection[];\n grantsOptimizedProjections: Projection[];\n educationProjectProjections: Projection[];\n lastCalculatorViewModel: CalculatorViewModel | null;\n\n constructor() {\n this.grantsOptimized = false;\n this.educationProjectOptimized = false;\n this.baseProjections = [];\n this.grantsOptimizedProjections = [];\n this.educationProjectProjections = [];\n this.lastCalculatorViewModel = null;\n }\n\n resetProjections() {\n this.baseProjections = [];\n this.grantsOptimizedProjections = [];\n this.educationProjectProjections = [];\n }\n\n resetOptimizations() {\n this.grantsOptimized = false;\n this.educationProjectOptimized = false;\n }\n\n needsReset(newCalculatorViewModel: CalculatorViewModel): boolean {\n return (\n this.isOptimized &&\n this.lastCalculatorViewModel != null &&\n !this.lastCalculatorViewModel.equals(newCalculatorViewModel)\n );\n }\n\n setProjections(plans: Plan[]) {\n this.baseProjections = plans.map(p => p.baseProjection);\n this.grantsOptimizedProjections = plans.map(\n p => p.grantsOptimizedProjection\n );\n this.educationProjectProjections = plans.reduce(\n (projections, plan) =>\n plan.educationProjectProjection\n ? [...projections, plan.educationProjectProjection]\n : projections,\n [] as Projection[]\n );\n }\n\n get isOptimized() {\n return this.grantsOptimized || this.educationProjectOptimized;\n }\n\n get maxGrantsProjections(): Projection[] {\n const grantsMaxContribution = Math.max.apply(\n null,\n this.grantsOptimizedProjections.map(p => p.monthlyDirectContributions)\n );\n\n const educationMaxContribution = Math.max.apply(\n null,\n this.educationProjectProjections.map(p => p.monthlyDirectContributions)\n );\n\n return grantsMaxContribution >= educationMaxContribution\n ? this.grantsOptimizedProjections\n : this.educationProjectProjections;\n }\n\n get displayedProjections(): Projection[] {\n if (this.grantsOptimized && this.educationProjectOptimized) {\n return this.maxGrantsProjections;\n }\n\n if (this.grantsOptimized) {\n return this.grantsOptimizedProjections;\n }\n\n if (this.educationProjectOptimized) {\n return this.educationProjectProjections;\n }\n\n return this.baseProjections;\n }\n}\n","import { APIPlan, APIProjection } from '@/api/calculator';\nimport i18n from '@/i18n';\n\nexport interface PlanGraphValue {\n label: string;\n color: string;\n value: number;\n tooltip: string;\n}\n\nexport class Projection {\n plan: Plan | null;\n directContributions: number;\n incomeOnDirectContributions: number;\n incomeOnGrants: number;\n grants: number;\n total: number;\n initialDirectContributions: number;\n monthlyDirectContributions: number;\n\n constructor() {\n this.plan = null;\n this.directContributions = 0;\n this.incomeOnDirectContributions = 0;\n this.incomeOnGrants = 0;\n this.grants = 0;\n this.total = 0;\n this.initialDirectContributions = 0;\n this.monthlyDirectContributions = 0;\n }\n\n get totalIncome(): number {\n return this.incomeOnDirectContributions + this.incomeOnGrants;\n }\n\n static fromAPIProjection(apiProjection: APIProjection, plan: Plan) {\n const projection = new Projection();\n projection.plan = plan;\n projection.directContributions = apiProjection.cotisations;\n projection.incomeOnDirectContributions =\n apiProjection.revenusSurCotisations;\n projection.incomeOnGrants = apiProjection.revenusSurSubventions;\n projection.grants = apiProjection.subventions;\n projection.total = apiProjection.total;\n projection.initialDirectContributions = apiProjection.contributionInitiale;\n projection.monthlyDirectContributions = apiProjection.contributionMensuelle;\n return projection;\n }\n\n get planName(): string {\n return (\n (i18n.locale === 'fr' ? this.plan?.planNameFr : this.plan?.planNameEn) ||\n ''\n );\n }\n\n get icon(): string | null {\n if (this.plan?.planNameFr === 'Responsable') {\n return 'IconLeaf';\n }\n\n return null;\n }\n\n get graphValues(): PlanGraphValue[] {\n return [\n {\n label: i18n.t('projectionCard.labels.directContributions').toString(),\n value: this.directContributions,\n color: '#0aabc7',\n tooltip: i18n\n .t('projectionCard.labels.contributionsTooltip')\n .toString(),\n },\n {\n label: i18n.t('projectionCard.labels.grants').toString(),\n value: this.grants,\n color: '#294772',\n tooltip: i18n.t('projectionCard.labels.grantsTooltip').toString(),\n },\n {\n label: i18n.t('projectionCard.labels.totalIncome').toString(),\n value: this.totalIncome,\n color: '#a4d0b9',\n tooltip: i18n.t('projectionCard.labels.incomeTooltip').toString(),\n },\n ];\n }\n}\n\nexport enum TypePlan {\n PrudentIDEO = 0,\n EvolutifIDEO = 1,\n ResponsableIDEO = 2\n}\n\nexport class Plan {\n planNameFr: string;\n planNameEn: string;\n\n baseProjection: Projection;\n educationProjectProjection: Projection | null;\n grantsOptimizedProjection: Projection;\n\n constructor() {\n this.planNameFr = '';\n this.planNameEn = '';\n this.baseProjection = new Projection();\n this.educationProjectProjection = new Projection();\n this.grantsOptimizedProjection = new Projection();\n }\n\n static fromAPIPlan(apiPlan: APIPlan): Plan {\n const plan = new Plan();\n plan.planNameFr = apiPlan.nomPlan;\n plan.planNameEn = apiPlan.nomPlanAnglais;\n plan.baseProjection = Projection.fromAPIProjection(\n apiPlan.projectionAvecMontantDemande,\n plan\n );\n\n if (apiPlan.projectionAvecMontantPourAtteindreProjetEtude) {\n plan.educationProjectProjection = Projection.fromAPIProjection(\n apiPlan.projectionAvecMontantPourAtteindreProjetEtude,\n plan\n );\n } else {\n plan.educationProjectProjection = null;\n }\n\n plan.grantsOptimizedProjection = Projection.fromAPIProjection(\n apiPlan.projectionAvecMontantOptimise,\n plan\n );\n return plan;\n }\n}\n","import { APIFutureEducationCost } from '@/api/calculator';\nimport { CalculatorViewModel } from './calculatorState';\nimport { EducationLevel } from './educationInformation';\n\nexport class FutureEducationCost {\n educationLevel: EducationLevel;\n averageAmount: number;\n\n constructor(apiFutureEducationCost: APIFutureEducationCost) {\n this.educationLevel = apiFutureEducationCost.niveauEtude;\n this.averageAmount = apiFutureEducationCost.coutMoyen;\n }\n}\n\nexport class FutureEducationCostState {\n calculatorViewModel: CalculatorViewModel;\n\n private _futureEducationCosts: FutureEducationCost[];\n\n constructor(calculatorViewModel: CalculatorViewModel) {\n this.calculatorViewModel = calculatorViewModel;\n\n this._futureEducationCosts = [];\n }\n\n get futureEducationCosts(): FutureEducationCost[] {\n return this.calculatorViewModel.possibleEducationLevels.reduce(\n (costs: FutureEducationCost[], level: EducationLevel) => {\n const cost = this._futureEducationCosts.find(\n cost => cost.educationLevel === level\n );\n\n if (cost) {\n return [...costs, cost];\n }\n\n return costs;\n },\n [] as FutureEducationCost[]\n );\n }\n\n set futureEducationCosts(futureEducationCosts: FutureEducationCost[]) {\n this._futureEducationCosts = futureEducationCosts;\n }\n}\n","import { ApiState } from './apiState';\nimport Validation from './validation';\nimport { Provinces } from '@/models/basicInformation';\n\nexport class ReceiveResultViewModel {\n firstName: string = '';\n lastName: string = '';\n email: string = '';\n telephoneNumber: string = '';\n postalCode: string = '';\n availableMorning: boolean = false;\n availableAfternoon: boolean = false;\n availableEvening: boolean = false;\n\n referenceNumber: string | null = null;\n emailResult: boolean = false;\n receiveMarketingEmails: boolean | null = null;\n scheduleAppointment = false;\n saveResult = false;\n recaptchaResponse = null as string | null;\n province = null as Provinces | null;\n\n static testData(): ReceiveResultViewModel {\n const vm = new ReceiveResultViewModel();\n vm.firstName = 'Adam';\n vm.lastName = 'Hammes';\n vm.email = 'ahammes@cortexmedia.ca';\n vm.telephoneNumber = '(666) 666-6666';\n vm.postalCode = 'G1K 3S6';\n vm.availableMorning = true;\n vm.availableAfternoon = true;\n vm.availableEvening = false;\n vm.receiveMarketingEmails = false;\n vm.emailResult = true;\n vm.saveResult = true;\n vm.scheduleAppointment = true;\n vm.recaptchaResponse = null;\n return vm;\n }\n\n canSubmit(apiState?: ApiState): boolean {\n const firstName = apiState?.firstName || this.firstName;\n const lastName = apiState?.lastName || this.lastName;\n const postalCode = apiState?.postalCode || this.postalCode;\n\n let validations = [\n !!firstName.trim(),\n !!lastName.trim(),\n Validation.email(this.email),\n ];\n\n if (this.scheduleAppointment) {\n validations = validations.concat([\n Validation.telephone(this.telephoneNumber),\n Validation.postalCode(postalCode),\n this.availableMorning ||\n this.availableAfternoon ||\n this.availableEvening,\n ]);\n }\n\n return validations.every(v => v);\n }\n\n canShare(): boolean {\n if (!this.saveResult) {\n return true;\n }\n\n const validations = [\n !!this.firstName.trim(),\n !!this.lastName.trim(),\n Validation.postalCode(this.postalCode),\n ];\n\n if (this.emailResult) {\n validations.push(Validation.email(this.email));\n }\n\n return validations.every(v => v);\n }\n\n canAppointment(): boolean {\n return (\n this.firstName.trim().length > 0 &&\n this.lastName.trim().length > 0 &&\n Validation.telephone(this.telephoneNumber) &&\n Validation.email(this.email) \n );\n }\n}\n","import { CalculatorState, CalculatorViewModel } from './calculatorState';\nimport { ReceiveResultViewModel } from './receiveResultViewModel';\n\ninterface UpdateReferenceNumberProps {\n referenceNumber: string;\n referenceNumberData: CalculatorViewModel;\n submissionData: ReceiveResultViewModel;\n}\n\nexport class ApiState {\n private _referenceNumber: string | null = null;\n private _lastPostedViewModel: CalculatorViewModel | null = null;\n private _submissionData: ReceiveResultViewModel | null = null;\n private _hasMadeAppointment: boolean = false;\n private _isOutdated: boolean = false;\n private _recentlyResubmitted: boolean = false;\n\n constructor(oldState?: ApiState) {\n if (!oldState) {\n return;\n }\n\n this._hasMadeAppointment = oldState.hasMadeAppointment;\n }\n\n // When you make an appointment, the confirmation modal is on the results\n // page, not the appointment page. To coordinate the two pages, we set this\n // to `true` upon appointment confirmation; in the created hook, we check the\n // boolean and open the modal accordingly.\n justMadeAppointment: boolean = false;\n\n firstName: string = '';\n lastName: string = '';\n postalCode: string = '';\n\n get referenceNumber(): string | null {\n return this._referenceNumber;\n }\n\n get lastPostedViewModel(): CalculatorViewModel | null {\n return this._lastPostedViewModel;\n }\n\n get submissionData(): ReceiveResultViewModel | null {\n return this._submissionData;\n }\n\n get hasMadeAppointment(): boolean {\n return this._hasMadeAppointment;\n }\n\n get isOutdated() {\n return this._isOutdated;\n }\n\n get recentlyResubmitted(): boolean {\n return this._recentlyResubmitted;\n }\n\n updateReferenceNumber({\n referenceNumber,\n referenceNumberData,\n submissionData,\n }: UpdateReferenceNumberProps): void {\n if (this.lastPostedViewModel) {\n this._recentlyResubmitted = true;\n }\n\n this._referenceNumber = referenceNumber;\n this._lastPostedViewModel = CalculatorState.fromViewModel(\n referenceNumberData\n ).asViewModel();\n\n this._submissionData = submissionData;\n this._submissionData.referenceNumber = referenceNumber;\n\n this._hasMadeAppointment =\n this.hasMadeAppointment || submissionData.scheduleAppointment;\n this._isOutdated = false;\n }\n\n makeAppointment(): void {\n this.justMadeAppointment = !this.hasMadeAppointment;\n this._hasMadeAppointment = true;\n }\n\n onViewModelUpdate(newModel: CalculatorViewModel): void {\n if (!this.lastPostedViewModel) {\n return;\n }\n\n this._isOutdated =\n this._isOutdated || !this.lastPostedViewModel.equals(newModel);\n }\n\n onRouteChange(): void {\n this._recentlyResubmitted = false;\n }\n}\n","import { ChildRole, Provinces } from '@/models/basicInformation';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport { EducationLevel, HousingType } from '@/models/educationInformation';\nimport { FutureEducationCost } from '@/models/futureEducationCost';\nimport { OptimizationState } from '@/models/optimizationState';\nimport { Plan, TypePlan } from '@/models/plan';\nimport { ReceiveResultViewModel as SaveResultViewModel } from '@/models/receiveResultViewModel';\nimport { APIService } from '.';\n\nexport interface EducationPlanAPIRequest {\n niveauEtudeVise: EducationLevel;\n lieuResidence: HousingType;\n}\n\nexport interface FinancialSituationAPIRequest {\n revenuAnnuel: number;\n}\n\nexport interface APIResponse {\n objetRetour: T | null;\n messageErreur: string | null;\n}\n\ninterface CalculatorAPIRequest {\n ageBeneficiaire: number;\n province: Provinces;\n contributionInitiale: number;\n contributionMensuelle: number;\n objectifEpargne: number;\n projetEtude: EducationPlanAPIRequest | null;\n situationFinanciere: FinancialSituationAPIRequest | null;\n}\n\nexport interface APIProjection {\n cotisations: number;\n revenusSurCotisations: number;\n revenusSurSubventions: number;\n subventions: number;\n total: number;\n contributionInitiale: number;\n contributionMensuelle: number;\n}\n\nexport interface APIPlan {\n nomPlan: string;\n nomPlanAnglais: string;\n projectionAvecMontantDemande: APIProjection;\n projectionAvecMontantPourAtteindreProjetEtude: APIProjection | null;\n projectionAvecMontantOptimise: APIProjection;\n}\n\nexport interface APIFutureEducationCost {\n niveauEtude: EducationLevel;\n coutMoyen: number;\n}\n\nenum CalculatorAPIServiceRoute {\n GetResults = '/CalculerProjection',\n ReceiveYourResult = '/EnregistrerResultat',\n FutureEducationCosts = '/CalculerCoutsFutursProgrammes',\n}\n\nenum AppointmentTimes {\n Morning = 0,\n Afternoon = 1,\n Evening = 2,\n}\n\ninterface SaveResultAPIRequest {\n numeroReference: string | null;\n prenomBeneficiaire: string | null;\n prenomSouscripteur: string;\n nomSouscripteur: string;\n roleSouscripteur: ChildRole | null;\n telephone: string;\n courriel: string;\n codePostal: string;\n envoyerParCourriel: boolean;\n accepteRecevoirCourrielInformationnel: boolean | null;\n planifierUnAppel: boolean;\n partagerResultat: boolean;\n momentsPrivilegies: AppointmentTimes[];\n calculerProjection: CalculatorAPIRequest | null;\n recaptchaResponse: string | null;\n maximiserSubventions: boolean;\n maximiserProjetEtude: boolean;\n langue: 'fr' | 'en';\n province: Provinces | null;\n}\n\ninterface FutureEducationCostsRequest {\n ageBeneficiaire: number | string | null;\n province: Provinces | null;\n lieuResidence: HousingType | null;\n}\n\nconst calculatorRequestFromState = (\n state: CalculatorState\n): CalculatorAPIRequest => {\n const { basicInfos, educationInfos, financialInfos } = state;\n if (basicInfos === null) {\n throw new Error(\n 'You cannot receive a projection with incomplete basic information'\n );\n }\n\n const request: CalculatorAPIRequest = {\n ageBeneficiaire: basicInfos.childAge,\n province: basicInfos.province,\n contributionInitiale: basicInfos.startingAmount,\n contributionMensuelle: basicInfos.monthlyDeposit,\n objectifEpargne: basicInfos.totalGoal,\n projetEtude: null,\n situationFinanciere: null,\n };\n\n if (educationInfos != null) {\n request.projetEtude = {\n niveauEtudeVise: educationInfos.targetedLevel,\n lieuResidence: educationInfos.housingType,\n };\n }\n\n if (financialInfos != null) {\n request.situationFinanciere = {\n revenuAnnuel: financialInfos.familyIncome,\n };\n }\n\n return request;\n};\n\nfunction sleep() {\n return new Promise(resolve => setTimeout(resolve, 500));\n}\n\nexport class CalculatorAPI {\n forceError: boolean;\n\n constructor() {\n this.forceError = false;\n }\n\n toggleForceError() {\n this.forceError = !this.forceError;\n }\n\n async getPlans(calculatorState: CalculatorState): Promise {\n const request = calculatorRequestFromState(calculatorState);\n\n if (this.forceError) {\n await sleep();\n return Promise.reject('(dev) Call fail simulation');\n }\n\n try {\n const response = await APIService.post>(\n CalculatorAPIServiceRoute.GetResults,\n request\n );\n if (response.objetRetour == null) {\n return [];\n }\n return response.objetRetour.map(Plan.fromAPIPlan);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n async getPlan(age: number, province: Provinces, amount: number): Promise {\n const request = {\n ageBeneficiaire: age,\n province: province,\n contributionMensuelle: amount,\n };\n\n try {\n const response = await APIService.post>(\n CalculatorAPIServiceRoute.GetResults,\n request\n );\n if (response.objetRetour == null) {\n return [];\n }\n response.objetRetour = [response.objetRetour[TypePlan.EvolutifIDEO]]\n return response.objetRetour.map(Plan.fromAPIPlan);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n async getFutureEducationCosts(\n calculatorViewModel: CalculatorViewModel\n ): Promise {\n const request: FutureEducationCostsRequest = {\n ageBeneficiaire: calculatorViewModel.basicInfos?.childAge,\n province: calculatorViewModel.basicInfos?.province,\n lieuResidence: calculatorViewModel.educationInfos?.housingType,\n };\n\n if (this.forceError) {\n await sleep();\n return Promise.reject('(dev) Call fail simulation');\n }\n\n try {\n const response = await APIService.post<\n APIResponse\n >(CalculatorAPIServiceRoute.FutureEducationCosts, request);\n\n if (response === null || response.objetRetour == null) {\n return Promise.reject();\n }\n\n if (!response || !response.objetRetour) {\n return Promise.reject();\n }\n\n return response.objetRetour.map(\n (object: APIFutureEducationCost) => new FutureEducationCost(object)\n );\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n async saveResult(\n viewModel: SaveResultViewModel,\n calculatorState: CalculatorState,\n optimizationState: OptimizationState\n ): Promise {\n const appointmentTimes = [];\n if (viewModel.availableMorning) {\n appointmentTimes.push(AppointmentTimes.Morning);\n }\n\n if (viewModel.availableAfternoon) {\n appointmentTimes.push(AppointmentTimes.Afternoon);\n }\n\n if (viewModel.availableEvening) {\n appointmentTimes.push(AppointmentTimes.Evening);\n }\n\n const request: SaveResultAPIRequest = {\n numeroReference: viewModel.referenceNumber,\n prenomSouscripteur: viewModel.firstName,\n nomSouscripteur: viewModel.lastName,\n prenomBeneficiaire: null,\n roleSouscripteur: null,\n telephone: viewModel.telephoneNumber,\n courriel: viewModel.email,\n codePostal: viewModel.postalCode,\n envoyerParCourriel: viewModel.emailResult,\n accepteRecevoirCourrielInformationnel: viewModel.receiveMarketingEmails,\n planifierUnAppel: viewModel.scheduleAppointment,\n partagerResultat: viewModel.saveResult,\n momentsPrivilegies: viewModel.scheduleAppointment ? appointmentTimes : [],\n calculerProjection: null,\n recaptchaResponse: viewModel.recaptchaResponse,\n maximiserSubventions: optimizationState.grantsOptimized,\n maximiserProjetEtude: optimizationState.educationProjectOptimized,\n langue: (document.documentElement.lang as 'fr' | 'en') || 'fr',\n province: viewModel.province\n };\n\n if (viewModel.saveResult || viewModel.emailResult) {\n request.prenomBeneficiaire = calculatorState.basicInfos?.childName ?? '';\n request.roleSouscripteur =\n calculatorState.basicInfos?.relationshipToChild ?? ChildRole.Parent;\n request.calculerProjection = calculatorRequestFromState(calculatorState);\n }\n\n if (this.forceError) {\n await sleep();\n return Promise.reject('(dev) Call fail simulation');\n }\n\n try {\n const response = await APIService.post>(\n CalculatorAPIServiceRoute.ReceiveYourResult,\n request\n );\n\n if (response === null || response.objetRetour == null) {\n return Promise.reject();\n }\n\n return response?.objetRetour ?? Promise.reject();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n","const overrides = window.calculateur_env || {};\n\nexport default {\n VUE_APP_ENABLE_HOTKEYS: overrides.VUE_APP_ENABLE_HOTKEYS || process.env.VUE_APP_ENABLE_HOTKEYS,\n VUE_APP_RECAPTCHA_KEY: overrides.VUE_APP_RECAPTCHA_KEY || process.env.VUE_APP_RECAPTCHA_KEY,\n VUE_APP_GA_ID: overrides.VUE_APP_GA_ID || process.env.VUE_APP_GA_ID,\n VUE_APP_API_URL: overrides.VUE_APP_API_URL || process.env.VUE_APP_API_URL\n};\n","import axios from 'axios';\nimport env from \"@/env\";\n\nexport const APIService = {\n async post(route: string, request: Object): Promise {\n const call = await axios.post(env.VUE_APP_API_URL + route, request);\n const error = call.data.messageErreur as string;\n if (error !== null && error !== undefined && error !== '') {\n return Promise.reject(call.data.messageErreur);\n }\n return call.data;\n },\n};\n","import IconChevron from '@/components/icons/iconChevron/iconChevron.vue';\nimport Vue from 'vue';\n\nenum Keys {\n Enter = 'Enter',\n Escape = 'Escape',\n Tab = 'Tab',\n Down = 'ArrowDown',\n Up = 'ArrowUp',\n}\n\nconst Select = Vue.extend({\n name: 'Select',\n props: {\n label: {\n type: String,\n },\n required: {\n type: Boolean,\n default: false,\n },\n value: {},\n options: {\n type: Array as () => any[],\n required: true,\n },\n getOptionKey: {\n type: (Function as never) as () => (option: any) => string | number,\n },\n getOptionLabel: {\n type: (Function as never) as () => (option: any) => string | number,\n },\n placeholder: {\n type: String,\n },\n tabindex: {\n type: Number,\n },\n },\n components: {\n IconChevron,\n },\n data() {\n return {\n hidden: true,\n internalValue: this.value,\n };\n },\n computed: {\n inputButton(): HTMLButtonElement {\n return this.$refs.inputButton as HTMLButtonElement;\n },\n expandableItemList(): HTMLUListElement {\n return this.$refs.expandableItemList as HTMLUListElement;\n },\n listElements(): HTMLLIElement[] {\n return Array.from(this.expandableItemList.childNodes) as HTMLLIElement[];\n },\n nextItem(): any | undefined {\n if (\n this.internalValue == null ||\n !this.options.includes(this.internalValue)\n ) {\n return this.options[0];\n }\n\n return this.options.find((_, index) =>\n this.isOptionSelected(this.options[index - 1])\n );\n },\n previousItem(): any | undefined {\n if (\n this.internalValue == null ||\n !this.options.includes(this.internalValue)\n ) {\n return this.options[0];\n }\n\n return this.options.find((_, index) =>\n this.isOptionSelected(this.options[index + 1])\n );\n },\n uniqueId(): string {\n return Date.now().toString();\n },\n buttonId(): string {\n return `select-button-${this.uniqueId}`;\n },\n labelId(): string {\n return `select-label-${this.uniqueId}`;\n },\n },\n methods: {\n emitNativeInputValue(key: string) {\n this.$emit(\n 'input',\n this.options.find(option => this.getKey(option) === key)\n );\n },\n getMatchingElement(item: any): HTMLLIElement | undefined {\n return this.listElements.find(element => element.id === this.getId(item));\n },\n toggle() {\n if (this.hidden) {\n this.show();\n } else {\n this.hide();\n }\n },\n show() {\n this.hidden = false;\n this.expandableItemList.classList.remove('hidden');\n this.expandableItemList.focus();\n\n if (this.internalValue) {\n this.scrollToElement(this.internalValue);\n }\n },\n hide() {\n this.hidden = true;\n this.emitValue();\n this.expandableItemList.classList.add('hidden');\n },\n hideOnClickOutside(event: FocusEvent) {\n const inputButton = this.$refs.inputButton as HTMLButtonElement;\n if (event.relatedTarget !== inputButton) {\n this.hide();\n }\n },\n hardSelect(option: any) {\n this.internalValue = option;\n this.hide();\n },\n softSelect(option: any) {\n this.internalValue = option;\n this.scrollToElement(option);\n },\n emitValue() {\n this.$emit('input', this.internalValue);\n },\n onButtonKeyPress(event: KeyboardEvent) {\n switch (event.key) {\n case Keys.Down:\n case Keys.Up:\n case Keys.Enter:\n event.preventDefault();\n this.show();\n break;\n default: {\n const nextOption = this.searchOptions(event.key);\n if (nextOption != null) {\n this.hardSelect(nextOption);\n }\n }\n }\n },\n onListKeyPress(event: KeyboardEvent) {\n switch (event.key) {\n case Keys.Escape:\n case Keys.Enter:\n event.preventDefault();\n this.hide();\n this.inputButton.focus();\n break;\n case Keys.Tab:\n this.hide();\n break;\n case Keys.Down:\n event.preventDefault();\n if (this.nextItem != null) {\n this.softSelect(this.nextItem);\n }\n break;\n case Keys.Up:\n event.preventDefault();\n if (this.previousItem != null) {\n this.softSelect(this.previousItem);\n }\n break;\n default: {\n const nextOption = this.searchOptions(event.key);\n if (nextOption) {\n this.softSelect(nextOption);\n }\n }\n }\n },\n characterMatchesOption(character: string, option: any): boolean {\n const label = this.getLabel(option)?.toLowerCase() || '';\n return label.startsWith(character.toLowerCase());\n },\n searchOptions(character: string): any | undefined {\n const currentValueIndex = this.internalValue\n ? this.options.findIndex(option => option === this.internalValue)\n : -1;\n if (currentValueIndex === -1) {\n return this.getFirstElementMatching(character);\n }\n\n const goingDown = character.toLowerCase() === character.toLowerCase();\n const matchingOptions = this.options.filter(\n (option, index) =>\n this.characterMatchesOption(character, option) &&\n (goingDown ? index > currentValueIndex : index < currentValueIndex)\n );\n\n if (matchingOptions.length === 0) {\n return this.getFirstElementMatching(character);\n }\n\n return goingDown\n ? matchingOptions[0]\n : matchingOptions[matchingOptions.length - 1];\n },\n getFirstElementMatching(character: string): any | undefined {\n return this.options.find(option =>\n this.characterMatchesOption(character, option)\n );\n },\n scrollToElement(item: any) {\n const element = this.getMatchingElement(item);\n if (element == null) {\n return;\n }\n\n if (!this.isElementVisible(element)) {\n this.expandableItemList.scrollTop = element.offsetTop;\n }\n },\n isOptionSelected(option: any) {\n if (option == null || this.internalValue == null) {\n return false;\n }\n\n return this.internalValue === option;\n },\n isElementVisible(element: HTMLLIElement): boolean {\n const containerTop = this.expandableItemList.scrollTop;\n const containerBottom =\n containerTop + this.expandableItemList.clientHeight;\n\n const elementTop = element.offsetTop;\n const elementBottom = elementTop + element.clientHeight;\n\n return elementTop >= containerTop && elementBottom <= containerBottom;\n },\n getLabel(option: any): string {\n if (option == null) {\n return '';\n }\n\n if (this.getOptionLabel) {\n return this.getOptionLabel(option).toString();\n }\n\n return option.toString();\n },\n getKey(option: any): string {\n if (option == null) {\n return '';\n }\n\n if (this.getOptionKey) {\n return this.getOptionKey(option).toString();\n }\n\n return option.toString();\n },\n getId(option: any): string {\n return `${this.getKey(option)}-${this.uniqueId}}`;\n },\n },\n watch: {\n value() {\n this.internalValue = this.value;\n },\n },\n});\n\nexport default Select;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{ref:\"page\",attrs:{\"headerStyle\":\"marine\",\"hasFloatingLogo\":\"\",\"tracker\":_vm.tracker}},[_c('div',{staticClass:\"basic-information__container\"},[_c('Wizard',{attrs:{\"currentStep\":_vm.currentStep,\"maxStep\":6}},[_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step1.sectionName'),\"title\":_vm.$t('basicInfo.step1.title'),\"currentStep\":_vm.currentStep,\"questionStep\":1,\"maxStep\":6,\"section\":_vm.basicInfos,\"showReturnOnFirstStep\":_vm.calculatorState.basicInfos != null},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('Input',{attrs:{\"maxlength\":\"20\",\"aria-label\":_vm.$t('basicInfo.step1.title')},model:{value:(_vm.basicInfos.childName),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"childName\", $$v)},expression:\"basicInfos.childName\"}})],1),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step1.sectionName'),\"title\":_vm.$t('basicInfo.step2.title', { name: _vm.basicInfos.childName }),\"currentStep\":_vm.currentStep,\"questionStep\":2,\"maxStep\":6,\"section\":_vm.basicInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('Input',{staticClass:\"basic-information__input-with-icon\",attrs:{\"min\":\"0\",\"max\":\"30\",\"maxlength\":\"2\",\"type\":\"number\",\"invalid\":_vm.basicInfos.noReeePossible,\"append\":_vm.$t('basicInfo.step2.yearsOld'),\"aria-label\":_vm.$t('basicInfo.step2.title', { name: _vm.basicInfos.childName })},model:{value:(_vm.basicInfos.childAge),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"childAge\", $$v)},expression:\"basicInfos.childAge\"}}),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step2Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1),_c('div',{staticClass:\"basic-information__input-subtext\"},[(_vm.basicInfos.noGovernmentSubsidiesPossible)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.noSubsidies'))}}):_vm._e(),(_vm.basicInfos.noReeePossible)?_c('div',{staticClass:\"basic-information__no-reee\",domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.noReee'))}}):_vm._e(),(\n _vm.basicInfos.noGovernmentSubsidiesPossible ||\n _vm.basicInfos.noReeePossible\n )?_c('button',{staticClass:\"\\n basic-information__input-sublink\\n button button--icon-with-text\\n \",attrs:{\"type\":\"button\"},on:{\"click\":_vm.showNeedHelp}},[_c('IconActionQuestionCircle'),_c('span',[_vm._v(_vm._s(_vm.$t('basicInfo.step2.contact')))])],1):_vm._e()])]),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step1.sectionName'),\"currentStep\":_vm.currentStep,\"title\":_vm.step3Title,\"questionStep\":3,\"maxStep\":6,\"section\":_vm.basicInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('Select',{staticClass:\"basic-information__input-with-icon\",attrs:{\"options\":_vm.possibleRoles,\"getOptionLabel\":function (role) { return _vm.BasicInformationViewModel.translateRelation(role); },\"placeholder\":_vm.$t('basicInfo.selectPlaceholder')},model:{value:(_vm.basicInfos.relationshipToChild),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"relationshipToChild\", $$v)},expression:\"basicInfos.relationshipToChild\"}}),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step3Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1)]),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step1.sectionName'),\"title\":_vm.$t('basicInfo.step4.title'),\"currentStep\":_vm.currentStep,\"questionStep\":4,\"maxStep\":6,\"section\":_vm.basicInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('fieldset',{staticClass:\"basic-information__radio-inputs\"},_vm._l((_vm.possibleProvinces),function(province){return _c('Radio',{key:province,attrs:{\"checked\":_vm.basicInfos.province === province,\"name\":\"province\",\"label\":_vm.BasicInformationViewModel.translateProvince(province)},on:{\"input\":function($event){_vm.basicInfos.province = province}}})}),1),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step4Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)])]),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step5.sectionName'),\"title\":_vm.$t('basicInfo.step5.title'),\"currentStep\":_vm.currentStep,\"questionStep\":5,\"maxStep\":6,\"section\":_vm.basicInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('Input',{staticClass:\"basic-information__input-with-icon\",attrs:{\"maxlength\":\"6\",\"append\":\"$\",\"type\":\"number\",\"aria-label\":_vm.$t('basicInfo.step5.title')},model:{value:(_vm.basicInfos.startingAmount),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"startingAmount\", $$v)},expression:\"basicInfos.startingAmount\"}}),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step5Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1),_c('div',{staticClass:\"basic-information__input-subtext\"},[_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step5.inputSubtext'))+\" \")])]),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('basicInfo.step6.sectionName'),\"title\":_vm.$t('basicInfo.step6.title'),\"currentStep\":_vm.currentStep,\"questionStep\":6,\"maxStep\":6,\"section\":_vm.basicInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('Select',{staticClass:\"basic-information__input-with-icon\",attrs:{\"options\":_vm.possibleStrategies,\"getOptionLabel\":function (strategy) { return _vm.translateSavingStrategy(strategy); }},model:{value:(_vm.basicInfos.savingStrategy),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"savingStrategy\", $$v)},expression:\"basicInfos.savingStrategy\"}}),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('savingStrategyDrawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1),(_vm.basicInfos.savingStrategy === _vm.SavingStrategy.Monthly)?_c('Input',{staticClass:\"basic-information__input-secondary\",attrs:{\"maxlength\":\"6\",\"append\":_vm.$t('basicInfo.step6.perMonth'),\"type\":\"number\",\"aria-label\":((_vm.$t(\n 'basicInfo.step6.title'\n )) + \". \" + (_vm.translateSavingStrategy(_vm.basicInfos.savingStrategy)))},model:{value:(_vm.basicInfos.monthlyDeposit),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"monthlyDeposit\", $$v)},expression:\"basicInfos.monthlyDeposit\"}}):_vm._e(),(_vm.basicInfos.savingStrategy === _vm.SavingStrategy.TotalGoal)?_c('Input',{staticClass:\"basic-information__input-secondary\",attrs:{\"maxlength\":\"6\",\"type\":\"number\",\"append\":\"$\",\"aria-label\":((_vm.$t(\n 'basicInfo.step6.title'\n )) + \". \" + (_vm.translateSavingStrategy(_vm.basicInfos.savingStrategy)))},model:{value:(_vm.basicInfos.totalGoal),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"totalGoal\", $$v)},expression:\"basicInfos.totalGoal\"}}):_vm._e(),_c('button',{staticClass:\"\\n basic-information__need-help-container\\n button button--icon-with-text\\n \",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('totalAmountDrawer', $event)}}},[_c('IconActionExclamationCircleFull',{staticClass:\"basic-information__need-help-icon\"}),_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step6.needHelp'))+\" \")],1)],1)],1)],1),_c('Drawer',{ref:\"step2Drawer\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('basicInfo.step2.moduleTitle')))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.step2Paragraph)}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.moduleParagraph2'))}}),_c('i18n',{attrs:{\"path\":\"basicInfo.step2.moduleParagraph3\",\"tag\":\"p\"}},[_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step2.tooltip'))+\" \")]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step2.word'))+\" \")])],1)],1),_c('Drawer',{ref:\"step3Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step3.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step3.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step3.moduleParagraph2'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step3.moduleParagraph3'))}})]),_c('Drawer',{ref:\"step4Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleParagraph2'))}})]),_c('Drawer',{ref:\"step5Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step5.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step5.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step5.moduleParagraph2'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step5.moduleParagraph3'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step5.moduleParagraph4'))}})]),_c('Drawer',{ref:\"savingStrategyDrawer\",attrs:{\"bannerSrc\":require('@/assets/image-roulade@3x.jpg')}},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step6.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step6.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step6.moduleParagraph2'))}}),_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.savingStrategy.monthlyHeader'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.savingStrategy.monthlyContent'))}}),_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.savingStrategy.totalHeader'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.savingStrategy.totalContent'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step6.moduleParagraph3'))}})]),_c('Drawer',{ref:\"totalAmountDrawer\",attrs:{\"bannerSrc\":require('@/assets/image-escalier@3x.jpg')}},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.calculationHelp.title'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.calculationHelp.intro'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.calculationHelp.paragraph1'))}}),(_vm.futureEducationCosts.length > 0)?_c('p',[_c('i18n',{attrs:{\"path\":_vm.calculationHelpKey},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.basicInfos.childName)+\" \")]},proxy:true},{key:\"tooltip\",fn:function(){return [_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('basicInfo.calculationHelp.tooltip')))]),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.$t('basicInfo.calculationHelp.link')}},[_vm._v(_vm._s(_vm.$t('basicInfo.calculationHelp.linkLabel')))])]},proxy:true}],null,false,850325244)},[_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.calculationHelp.word'))+\" \")])]},proxy:true}],null,false,4079835199)})],1):_vm._e(),_vm._l((_vm.futureEducationCosts),function(futureEducationCost){return _c('div',{key:futureEducationCost.educationLevel},[_c('h6',[_vm._v(\" \"+_vm._s(_vm.EducationInformationViewModel.translateEducationLevel( futureEducationCost.educationLevel ))+\" \")]),_c('p',[_vm._v(_vm._s(_vm._f(\"currency\")(futureEducationCost.averageAmount)))])])}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.calculationHelp.paragraph7'))}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"input\",class:{ 'input--invalid': this.computedInvalid }},[(!!_vm.label)?_c('span',{staticClass:\"input__label\"},[(_vm.required)?_c('span',{staticClass:\"input__required-indicator\"},[_vm._v(\"*\")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.label))])]):_vm._e(),_c('div',{staticClass:\"input__value-container\"},[_c('input',_vm._b({directives:[{name:\"imask\",rawName:\"v-imask\",value:(_vm.mask),expression:\"mask\"}],ref:\"input\",staticClass:\"input__value\",staticStyle:{\"text-align\":\"left\"},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.emitInput($event.target.value)},\"change\":_vm.checkInternalInvalid,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur}},'input',_vm.inputProps,false)),(!!_vm.append)?_c('span',{ref:\"append\",staticClass:\"input__append\"},[_vm._v(\" \"+_vm._s(_vm.append)+\" \")]):_vm._e()]),(_vm.computedInvalid && _vm.invalidLabel)?_c('div',{staticClass:\"input__invalid-label\"},[_vm._v(\" \"+_vm._s(_vm.invalidLabel)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { IMaskDirective } from 'vue-imask';\n\nconst Input = Vue.extend({\n name: 'Input',\n props: {\n value: {\n type: ([String, Number] as unknown) as () => string | number | null,\n },\n label: {\n type: String,\n },\n append: {\n type: String,\n },\n required: {\n type: Boolean,\n default: false,\n },\n invalid: {\n type: Boolean,\n },\n type: {\n type: String,\n default: 'text',\n },\n validator: {\n type: (Function as unknown) as () =>\n | ((input: string) => boolean)\n | undefined,\n },\n invalidLabel: {\n type: String,\n },\n mask: {\n type: Object,\n },\n },\n data() {\n return {\n internalInvalid: false,\n };\n },\n computed: {\n computedInvalid(): boolean {\n return (\n this.value !== '' &&\n this.value != null &&\n (this.invalid || this.internalInvalid)\n );\n },\n inputProps() {\n const props: Record = {\n ...this.$attrs,\n value: this.value,\n type: this.type,\n required: this.required,\n optional: !this.required,\n maxlength: this.maxLength,\n };\n\n if (\n props.type === 'number' &&\n !('pattern' in props) &&\n !('pattern' in props)\n ) {\n // Why we're doing this:\n // https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/\n props.type = 'text';\n props.pattern = '\\\\d*';\n props.inputmode = 'numeric';\n }\n\n return props;\n },\n maxLength(): string | undefined {\n const attrMaxLength = this.$attrs.maxlength ?? this.$attrs.maxLength;\n if (attrMaxLength) {\n return attrMaxLength;\n }\n\n if (this.mask && typeof this.mask.mask === 'string') {\n return this.mask.mask.length.toString();\n }\n\n return undefined;\n },\n },\n mounted() {\n this.addPaddingOnInput();\n },\n methods: {\n emitInput(value: string): void {\n if (this.type !== 'number' || !value) {\n this.$emit('input', value);\n return;\n }\n\n if (!/^\\d*$/.test(value)) {\n (this.$refs.input as HTMLInputElement).value =\n this.value?.toString() ?? '';\n return;\n }\n\n this.$emit('input', parseInt(value));\n },\n addPaddingOnInput() {\n const inputElement = this.$refs.input as HTMLInputElement;\n const appendElement = this.$refs.append as HTMLSpanElement | null;\n\n let extraPadding = 0;\n\n if (this.append && appendElement) {\n extraPadding = 1 + appendElement.clientWidth / 16;\n }\n\n const paddingRight = 1 + extraPadding;\n inputElement.style.paddingRight = `${paddingRight}rem`;\n },\n focus(): void {\n (this.$refs.input as HTMLInputElement).focus();\n },\n onBlur(): void {\n this.checkInternalInvalid();\n },\n checkInternalInvalid(): void {\n if (document.activeElement === this.$refs.input) {\n this.internalInvalid = false;\n } else if (typeof this.value === 'string' && this.validator) {\n this.internalInvalid = !this.validator(this.value);\n } else {\n this.internalInvalid = false;\n }\n },\n onFocus(): void {\n this.internalInvalid = false;\n },\n },\n watch: {\n append() {\n this.addPaddingOnInput();\n },\n value() {\n this.checkInternalInvalid();\n },\n },\n directives: {\n imask: IMaskDirective,\n },\n});\n\nexport default Input;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./input.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./input.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./input.vue?vue&type=template&id=b371c62e&scoped=true&\"\nimport script from \"./input.ts?vue&type=script&lang=ts&\"\nexport * from \"./input.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./input.scss?vue&type=style&index=0&id=b371c62e&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 \"b371c62e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"radio\"},[_c('input',{staticClass:\"radio__input\",attrs:{\"type\":\"radio\"},domProps:{\"checked\":_vm.checked},on:{\"change\":function($event){return _vm.$emit('input', $event.target.checked)}}}),(_vm.checked)?_c('IconRadioOn',{staticClass:\"radio__indicator\"}):_c('IconRadioOff',{staticClass:\"radio__indicator\"}),_c('span',{staticClass:\"radio__label\"},[_vm._v(_vm._s(_vm.label))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\"}},[_c('circle',{attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"11\",\"stroke\":\"#3D4B60\",\"stroke-width\":\"2\",\"fill\":\"#FFFFFF\"}}),_c('circle',{attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\",\"fill\":\"#0AABC7\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconRadioOn.vue?vue&type=template&id=4921830a&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\"}},[_c('circle',{attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"11\",\"fill\":\"#FFF\",\"fill-rule\":\"evenodd\",\"stroke\":\"#3D4B60\",\"stroke-width\":\"2\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconRadioOff.vue?vue&type=template&id=6d66bbde&\"\nvar script = {}\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\nexport default component.exports","import IconRadioOn from '@/components/icons/iconRadioOn/iconRadioOn.vue';\nimport IconRadioOff from '@/components/icons/iconRadioOff/iconRadioOff.vue';\nimport Vue from 'vue';\n\nconst Radio = Vue.extend({\n name: 'Radio',\n props: {\n checked: {\n type: Boolean,\n default: false,\n },\n label: {\n type: String,\n },\n name: {\n type: String,\n required: true,\n },\n },\n components: {\n IconRadioOn,\n IconRadioOff,\n },\n});\n\nexport default Radio;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./radio.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./radio.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./radio.vue?vue&type=template&id=9a74cc18&scoped=true&\"\nimport script from \"./radio.ts?vue&type=script&lang=ts&\"\nexport * from \"./radio.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./radio.scss?vue&type=style&index=0&id=9a74cc18&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 \"9a74cc18\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select\"},[_c('div',{staticClass:\"select__input-wrapper\"},[_c('select',{staticClass:\"select__input select__input--mobile\",class:{ 'select__input--placeholder': _vm.value == null },attrs:{\"tabindex\":_vm.tabindex},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.emitNativeInputValue($event.target.value)}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\" \"+_vm._s(_vm.placeholder)+\" \")]),_vm._l((_vm.options),function(option){return _c('option',{key:_vm.getKey(option),domProps:{\"value\":_vm.getKey(option)}},[_vm._t(\"option\",[_vm._v(\" \"+_vm._s(_vm.getLabel(option))+\" \")],{\"option\":option})],2)})],2),_c('button',{ref:\"inputButton\",staticClass:\"select__input select__input--desktop\",class:{ 'select__input--focus': !_vm.hidden },attrs:{\"type\":\"button\",\"aria-haspopup\":\"listbox\",\"aria-labelledby\":(_vm.labelId + \" \" + (_vm.getId(_vm.internalValue))),\"id\":_vm.buttonId,\"tabindex\":_vm.tabindex},on:{\"click\":function($event){_vm.hidden ? _vm.show() : _vm.hide()},\"keydown\":_vm.onButtonKeyPress,\"focus\":function($event){_vm.hasBeenOpened = true}}},[_vm._t(\"option\",[_c('span',{staticClass:\"select__value\",class:{ 'select__value--placeholder': _vm.internalValue == null }},[_vm._v(\" \"+_vm._s(_vm.internalValue != null ? _vm.getLabel(_vm.internalValue) : _vm.placeholder)+\" \")])],{\"option\":_vm.internalValue})],2),_c('ul',{ref:\"expandableItemList\",staticClass:\"select__list hidden\",attrs:{\"tabindex\":\"-1\",\"role\":\"listbox\",\"aria-labelledby\":_vm.labelId,\"aria-expanded\":_vm.hidden ? 'false' : 'true',\"aria-activedescendant\":_vm.getId(_vm.internalValue)},on:{\"focusout\":_vm.hideOnClickOutside,\"keydown\":_vm.onListKeyPress}},_vm._l((_vm.options),function(option){return _c('li',{key:_vm.getKey(option),staticClass:\"select__option\",class:{\n 'select__option--selected': _vm.isOptionSelected(option),\n },attrs:{\"role\":\"option\",\"id\":_vm.getId(option),\"aria-selected\":_vm.isOptionSelected(option) ? 'true' : 'false',\"aria-label\":_vm.getLabel(option)},on:{\"click\":function($event){return _vm.hardSelect(option)}}},[_vm._t(\"option\",[_vm._v(\" \"+_vm._s(_vm.getLabel(option))+\" \")],{\"option\":option})],2)}),0),_c('IconChevron',{staticClass:\"select__chevron\",class:{ 'select__chevron--rotated': !_vm.hidden }})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 16 11\",\"focusable\":\"false\"}},[_c('g',{attrs:{\"transform\":\"translate(-4 -7)\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\",\"d\":\"M18.67 8.56a1.33 1.33 0 00-1.88 0L12 13.28 7.28 8.56a1.33 1.33 0 10-1.88 1.9l5.65 5.65a1.33 1.33 0 001.9 0l5.72-5.66a1.33 1.33 0 000-1.89z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst IconChevron = Vue.extend({\n name: 'IconChevron',\n});\n\nexport default IconChevron;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./iconChevron.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./iconChevron.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./iconChevron.vue?vue&type=template&id=df700f44&\"\nimport script from \"./iconChevron.ts?vue&type=script&lang=ts&\"\nexport * from \"./iconChevron.ts?vue&type=script&lang=ts&\"\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\nexport default component.exports","import Vue from 'vue';\nimport IconContact from '../icons/iconContact/iconContact.vue';\nimport LogoKaleidoSmall from '../icons/logoKaleidoSmall/logoKaleidoSmall.vue';\nimport LogoKaleidoLight from '../icons/logoKaleidoLight/logoKaleidoLight.vue';\nimport NeedHelp from '../needHelp/needHelp.vue';\nimport Drawer from '../ui/drawer/drawer.vue';\nimport { Tracker } from '@/models/tracker';\n\nenum HeaderStyle {\n Marine = 'marine',\n Bleu = 'bleu',\n}\n\nenum BackgroundStyle {\n Marine = 'marine',\n White = 'white',\n}\n\nconst Page = Vue.extend({\n name: 'Page',\n components: {\n LogoKaleidoLight,\n LogoKaleidoSmall,\n IconContact,\n Drawer,\n NeedHelp,\n },\n props: {\n headerStyle: {\n type: String as () => HeaderStyle,\n required: true,\n validator: value => Object.values(HeaderStyle).includes(value),\n },\n backgroundColor: {\n type: String as () => BackgroundStyle,\n default: BackgroundStyle.Marine,\n validator: value => Object.values(BackgroundStyle).includes(value),\n },\n footerClass: {\n type: [String, Object],\n },\n hasFloatingLogo: {\n type: Boolean,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n methods: {\n showNeedHelp(event: Event, doNotTrack: boolean = false): void {\n if (!doNotTrack) {\n this.tracker.event('besoin_aide');\n }\n\n (this.$refs.needHelpDrawer as any).show(event);\n },\n hideNeedHelp(): void {\n (this.$refs.needHelpDrawer as any).hide();\n },\n },\n});\n\nexport default Page;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./select.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./select.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./select.vue?vue&type=template&id=3fca977e&\"\nimport script from \"./select.ts?vue&type=script&lang=ts&\"\nexport * from \"./select.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./select.scss?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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('g',{attrs:{\"transform\":\"translate(-63 -410) translate(16 148) translate(47 262)\"}},[_c('circle',{attrs:{\"cx\":\"8.333\",\"cy\":\"8.333\",\"r\":\"8.333\",\"transform\":\"translate(1.667 1.667)\"}}),_c('circle',{attrs:{\"cx\":\"10\",\"cy\":\"13.333\",\"r\":\"1\",\"fill\":\"#FFF\"}}),_c('path',{attrs:{\"fill\":\"#FFF\",\"d\":\"M10 10.833c-.46 0-.833-.373-.833-.833V6.667c0-.46.373-.834.833-.834.46 0 .833.373.833.834V10c0 .46-.373.833-.833.833z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst IconActionExclamationCircleFull = Vue.extend({\n name: 'IconActionExclamationCircleFull',\n});\n\nexport default IconActionExclamationCircleFull;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./IconActionExclamationCircleFull.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./IconActionExclamationCircleFull.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconActionExclamationCircleFull.vue?vue&type=template&id=4f9f828a&\"\nimport script from \"./IconActionExclamationCircleFull.ts?vue&type=script&lang=ts&\"\nexport * from \"./IconActionExclamationCircleFull.ts?vue&type=script&lang=ts&\"\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"30\",\"height\":\"30\",\"viewBox\":\"0 0 30 30\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M12.5 0C19.404 0 25 5.596 25 12.5S19.404 25 12.5 25 0 19.404 0 12.5 5.596 0 12.5 0zm0 16.243c-.333 0-.653.133-.887.37-.054.059-.104.122-.15.187-.048.07-.086.145-.113.225-.036.07-.061.147-.075.225-.006.083-.006.167 0 .25-.004.164.03.327.1.475.114.314.361.561.675.675.303.134.647.134.95 0 .314-.114.561-.361.675-.675.056-.152.081-.313.075-.475.002-.332-.129-.652-.363-.887-.234-.237-.554-.37-.887-.37zm0-9.993c-1.34 0-2.58.714-3.25 1.875-.246.387-.26.879-.037 1.28.224.4.65.647 1.109.64.459-.006.878-.263 1.09-.67.225-.388.64-.627 1.088-.625.69 0 1.25.56 1.25 1.25s-.56 1.25-1.25 1.25-1.25.56-1.25 1.25v1.25c0 .69.56 1.25 1.25 1.25s1.25-.56 1.25-1.25v-.225c1.706-.62 2.724-2.371 2.417-4.16-.308-1.789-1.852-3.1-3.667-3.115z\",\"transform\":\"translate(-341 -286) translate(341 286) translate(2.5 2.5)\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst IconActionQuestionCircle = Vue.extend({\n name: 'IconActionQuestionCircle',\n});\n\nexport default IconActionQuestionCircle;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./IconActionQuestionCircle.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./IconActionQuestionCircle.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconActionQuestionCircle.vue?vue&type=template&id=25e8db27&\"\nimport script from \"./IconActionQuestionCircle.ts?vue&type=script&lang=ts&\"\nexport * from \"./IconActionQuestionCircle.ts?vue&type=script&lang=ts&\"\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\nexport default component.exports","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page\",class:( _obj = {}, _obj[(\"page--\" + _vm.backgroundColor)] = true, _obj ),attrs:{\"id\":\"page\"}},[_c('header',{staticClass:\"page__header\",class:( _obj$1 = {}, _obj$1[(\"page__header--\" + _vm.headerStyle)] = true, _obj$1 )},[_c('div',{staticClass:\"page__header-inner\"},[_c('LogoKaleidoLight',{staticClass:\"page__logo-icon\"}),_c('button',{staticClass:\"page__header-right\",on:{\"click\":_vm.showNeedHelp}},[_c('IconContact',{staticClass:\"page__header-icon\"}),_c('div',{staticClass:\"page__header-cta\"},[_vm._v(_vm._s(_vm.$t('page.header.needHelp')))])],1)],1)]),_c('main',{staticClass:\"page__main\"},[(_vm.hasFloatingLogo)?_c('div',{staticClass:\"page__floating-logo-container\"},[_c('div',{staticClass:\"page__floating-logo\"},[_c('LogoKaleidoSmall')],1)]):_vm._e(),_vm._t(\"default\")],2),_c('Drawer',{ref:\"needHelpDrawer\"},[_c('NeedHelp',{on:{\"close\":_vm.hideNeedHelp}})],1),(!!_vm.$slots['sticky-footer'])?_c('footer',{staticClass:\"page__sticky-footer\",class:_vm.footerClass},[_c('div',{staticClass:\"page__sticky-footer-fixed\"},[_c('div',{staticClass:\"page__sticky-footer-content\"},[_vm._t(\"sticky-footer\")],2)])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M13.534 0H2.408C1.061 0 0 1.098 0 2.426V8.35c0 1.33 1.06 2.398 2.38 2.427v1.473c0 .665.401 1.243 1.004 1.503.2.086.4.115.63.115.43 0 .831-.174 1.147-.491l2.61-2.63h5.82C14.94 10.746 16 9.648 16 8.32l-.001-5.864C15.942 1.097 14.852 0 13.534 0zm.716 8.378c0 .405-.343.752-.745.752L7.369 9.13c-.23 0-.43.087-.603.26l-2.724 2.716V9.938c0-.463-.373-.837-.83-.837h-.775c-.4 0-.746-.347-.746-.752V2.456c0-.404.344-.752.746-.752h11.126c.4 0 .746.347.746.752l-.001 5.923h-.058z\",\"transform\":\"translate(0 1)\"}}),_c('path',{attrs:{\"d\":\"M5.333 5.334c0 1.421-2.133 1.421-2.133 0 0-1.423 2.133-1.423 2.133 0M8.933 5.334c0 1.421-2.133 1.421-2.133 0 0-1.423 2.133-1.423 2.133 0M12.8 5.334c0 1.421-2.133 1.421-2.133 0 0-1.423 2.133-1.423 2.133 0\",\"transform\":\"translate(0 1)\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconContact.vue?vue&type=template&id=616f5fd4&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"179\",\"height\":\"92\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"fill\":\"#F2EECC\",\"d\":\"M169.006 92c-3.9 0-7.603-2.288-9.213-6.093L138.5 35.596l-21.293 50.307c-2.145 5.071-8.01 7.448-13.094 5.308-5.086-2.136-7.47-7.981-5.325-13.05l30.503-72.07A9.995 9.995 0 01138.5 0c4.019 0 7.647 2.4 9.21 6.09l30.502 72.074c2.145 5.07-.24 10.913-5.325 13.05a9.985 9.985 0 01-3.88.786M71.01 92a9.988 9.988 0 01-7.65-3.543L40.5 61.42 17.643 88.455c-3.558 4.207-9.865 4.74-14.086 1.2-4.222-3.546-4.762-9.829-1.204-14.036l30.503-36.076a10.016 10.016 0 0115.289 0l30.504 36.08a9.935 9.935 0 01-1.205 14.033A9.974 9.974 0 0171.009 92\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./logoKaleidoSmall.vue?vue&type=template&id=f7549eb6&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"106\",\"height\":\"16\",\"viewBox\":\"0 0 106 16\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"fill\":\"#ECB99A\",\"d\":\"M29.194 15.876c-.67 0-1.308-.395-1.585-1.051l-3.662-8.682-3.663 8.681c-.369.875-1.377 1.285-2.252.916-.874-.369-1.285-1.377-.916-2.252l5.247-12.437C22.63.414 23.255 0 23.947 0c.691 0 1.315.414 1.584 1.051l5.246 12.438c.37.874-.041 1.883-.916 2.252-.218.092-.445.135-.667.135\"}}),_c('path',{attrs:{\"fill\":\"#F2EDC7\",\"d\":\"M1.72 15.875c-.198 0-.397-.034-.59-.104C.452 15.524 0 14.878 0 14.156V1.726C0 .778.77.009 1.72.009s1.719.77 1.719 1.719v7.72L10.875.619c.611-.726 1.696-.82 2.422-.207.727.611.82 1.696.208 2.422l-10.47 12.43c-.333.395-.818.611-1.315.611M44.456 15.875H36.62c-.95 0-1.719-.77-1.719-1.719V1.726c0-.949.77-1.718 1.72-1.718.948 0 1.718.77 1.718 1.719v10.71h6.116c.95 0 1.719.77 1.719 1.72 0 .949-.77 1.718-1.72 1.718M67.021 15.875c-.95 0-1.72-.77-1.72-1.719V1.726c0-.949.77-1.718 1.72-1.718s1.72.77 1.72 1.719v12.43c0 .949-.77 1.718-1.72 1.718M75.076 15.875c-.455 0-.892-.18-1.215-.502-.322-.323-.504-.76-.504-1.217V1.726c0-.455.181-.893.504-1.215.323-.322.76-.503 1.215-.503h.002l3.918.002c4.743 0 7.93 3.187 7.93 7.93 0 4.744-3.187 7.93-7.93 7.93l-3.918.005h-.002zm1.72-12.428v8.988l2.197-.003c1.353 0 4.494-.437 4.494-4.492 0-2.812-1.679-4.491-4.492-4.491l-2.2-.002z\"}}),_c('path',{attrs:{\"fill\":\"#ECB99A\",\"d\":\"M12.213 15.876c-.49 0-.976-.208-1.316-.612l-3.931-4.667-3.932 4.667c-.612.726-1.697.818-2.422.207-.727-.612-.82-1.696-.207-2.423L5.65 6.821c.326-.387.807-.611 1.315-.611.506 0 .988.224 1.314.611l5.247 6.228c.611.726.518 1.81-.208 2.422-.322.272-.715.405-1.106.405\"}}),_c('path',{attrs:{\"fill\":\"#F2EDC7\",\"d\":\"M58.791 12.437h-6.115V9.659h3.648c.95 0 1.72-.77 1.72-1.719 0-.95-.77-1.719-1.72-1.719h-3.648V3.446h6.115c.95 0 1.72-.77 1.72-1.72 0-.949-.77-1.718-1.72-1.718h-7.834c-.95 0-1.72.77-1.72 1.719v12.43c0 .949.77 1.718 1.72 1.718h7.834c.95 0 1.72-.77 1.72-1.719 0-.95-.77-1.719-1.72-1.719M97.176 15.87c-4.373 0-7.93-3.557-7.93-7.93 0-4.372 3.557-7.93 7.93-7.93 4.373 0 7.93 3.558 7.93 7.93 0 4.373-3.557 7.93-7.93 7.93m0-12.422c-2.477 0-4.492 2.016-4.492 4.492 0 2.477 2.015 4.492 4.492 4.492s4.492-2.015 4.492-4.492c0-2.476-2.015-4.492-4.492-4.492\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./logoKaleidoLight.vue?vue&type=template&id=e5acea4c&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"need-help\"},[_c('h1',{staticClass:\"title need-help__title\"},[_vm._v(_vm._s(_vm.$t('needHelp.title')))]),_c('p',{staticClass:\"text need-help__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('needHelp.titleSub'))+\" \")]),_c('TelephoneContactInfo')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"toggle\",class:( _obj = {}, _obj[(\"toggle--\" + _vm.toggleStyle)] = !!_vm.toggleStyle, _obj['toggle--disabled'] = _vm.disabled, _obj )},[_c('input',{staticClass:\"toggle__hidden-input\",attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event.target.checked)}}}),_vm._m(0),(!!_vm.label)?_c('span',{staticClass:\"toggle__label\",class:{ 'toggle__label--small': _vm.smallLabel }},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toggle__visible-input\"},[_c('span',{staticClass:\"toggle__control\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst Toggle = Vue.extend({\n name: 'Toggle',\n props: {\n value: {\n type: Boolean,\n default: false,\n },\n label: {\n type: String,\n },\n disabled: {\n type: Boolean,\n },\n toggleStyle: {\n type: String as () => 'bleu' | 'vert',\n },\n smallLabel: {\n type: Boolean,\n default: false,\n },\n },\n});\n\nexport default Toggle;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./toggle.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./toggle.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./toggle.vue?vue&type=template&id=001e280a&scoped=true&\"\nimport script from \"./toggle.ts?vue&type=script&lang=ts&\"\nexport * from \"./toggle.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./toggle.scss?vue&type=style&index=0&id=001e280a&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 \"001e280a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10C19.994 4.48 15.52.006 10 0zm5.207 7.613l-6.188 6.188c-.187.187-.441.293-.707.293-.265 0-.52-.106-.707-.293l-2.812-2.813c-.386-.39-.384-1.02.004-1.41.39-.388 1.019-.39 1.41-.004l2.105 2.106 5.481-5.48c.391-.387 1.02-.385 1.41.004.388.388.39 1.018.004 1.41z\",\"transform\":\"translate(-16 -621) translate(16 609) translate(0 12) translate(2 2)\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconActionCheckCircle.vue?vue&type=template&id=2095666e&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.noHeader)?_c('h2',{staticClass:\"telephone-contact-info__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('telephoneContactInfo.subtitle'))+\" \")]):_vm._e(),_c('div',{staticClass:\"telephone-contact-info__telephone-container\"},[_c('a',{staticClass:\"telephone-contact-info__telephone-link\",attrs:{\"href\":'tel:' + _vm.$t('telephoneContactInfo.tollFreeNumber')},on:{\"click\":function($event){return _vm.$emit('call')}}},[_c('b',{staticClass:\"telephone-contact-info__telephone-label\"},[_vm._v(\" \"+_vm._s(_vm.$t('telephoneContactInfo.tollFreeLabel'))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.$t('telephoneContactInfo.tollFreeNumber')))])]),_c('a',{staticClass:\"telephone-contact-info__telephone-link\",attrs:{\"href\":'tel:' + _vm.$t('telephoneContactInfo.telephoneNumber')},on:{\"click\":function($event){return _vm.$emit('call')}}},[_c('b',{staticClass:\"telephone-contact-info__telephone-label\"},[_vm._v(\" \"+_vm._s(_vm.$t('telephoneContactInfo.telephoneLabel'))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.$t('telephoneContactInfo.telephoneNumber')))])])]),_c('div',{staticClass:\"telephone-contact-info__hours-container\"},[_c('div',{staticClass:\"telephone-contact-info__hours-label\"},[_vm._v(\" \"+_vm._s(_vm.$t('telephoneContactInfo.hoursLabel'))+\" \")]),_c('div',[_vm._v(_vm._s(_vm.$t('telephoneContactInfo.hoursValue')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst TelephoneContactInfo = Vue.extend({\n name: 'TelephoneContactInfo',\n props: {\n noHeader: {\n type: Boolean,\n default: false,\n },\n },\n});\n\nexport default TelephoneContactInfo;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./telephoneContactInfo.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./telephoneContactInfo.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./telephoneContactInfo.vue?vue&type=template&id=13cad276&scoped=true&\"\nimport script from \"./telephoneContactInfo.ts?vue&type=script&lang=ts&\"\nexport * from \"./telephoneContactInfo.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./telephoneContactInfo.scss?vue&type=style&index=0&id=13cad276&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 \"13cad276\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Toggle from '../form/toggle/toggle.vue';\nimport IconActionCheckCircle from '../icons/iconActionCheckCircle/iconActionCheckCircle.vue';\nimport TelephoneContactInfo from '../ui/telephoneContactInfo/telephoneContactInfo.vue';\n\nconst NeedHelp = Vue.extend({\n name: 'NeedHelp',\n components: {\n Toggle,\n IconActionCheckCircle,\n TelephoneContactInfo,\n },\n});\n\nexport default NeedHelp;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./needHelp.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./needHelp.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./needHelp.vue?vue&type=template&id=c3598a70&scoped=true&\"\nimport script from \"./needHelp.ts?vue&type=script&lang=ts&\"\nexport * from \"./needHelp.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./needHelp.scss?vue&type=style&index=0&id=c3598a70&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 \"c3598a70\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('portal',{attrs:{\"to\":\"drawers\"}},[_c('div',{key:_vm.contentUniqueKey,ref:\"drawerContainer\",staticClass:\"drawer\",class:{ 'drawer--hidden': _vm.hidden, 'drawer--is-modal': _vm.isModal }},[_c('div',{staticClass:\"drawer__backdrop\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.hide($event)}}}),_c('div',{ref:\"drawer\",staticClass:\"drawer__body\",attrs:{\"role\":\"dialog\",\"aria-modal\":\"true\",\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"drawer__button-row\"},[_c('button',{ref:\"closeButton\",staticClass:\"drawer__close-button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.hide}},[_c('IconClose',{attrs:{\"focusable\":\"false\"}}),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('drawer.footerClose'))+\" \")])],1)]),_c('div',{staticClass:\"drawer__content\",attrs:{\"tabindex\":\"-1\"}},[(_vm.bannerSrc)?_c('div',{staticClass:\"drawer__img\",style:({ backgroundImage: (\"url('\" + _vm.bannerSrc + \"')\") }),attrs:{\"alt\":_vm.bannerAlt}}):_vm._e(),_c('div',{staticClass:\"drawer__content-slot\"},[_vm._t(\"default\")],2),(!_vm.hideFooter)?_c('div',{staticClass:\"drawer__footer\"},[(!_vm.$slots.footer)?_c('button',{staticClass:\"drawer__footer-close-button button button--primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.hide}},[_vm._v(\" \"+_vm._s(_vm.$t('drawer.footerClose'))+\" \")]):_vm._e(),_vm._t(\"footer\")],2):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 32 32\",\"width\":\"32\",\"height\":\"32\",\"fill\":\"currentColor\",\"stroke\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M8.22 25.33a1.56 1.56 0 01-1.1-2.65L22.68 7.12a1.56 1.56 0 012.2 2.2L9.32 24.88c-.29.29-.69.45-1.1.45z\"}}),_c('path',{attrs:{\"d\":\"M23.78 25.33c-.42 0-.81-.16-1.1-.45L7.12 9.32a1.56 1.56 0 012.2-2.2l15.56 15.56a1.55 1.55 0 01-1.1 2.65z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconClose.vue?vue&type=template&id=7aff1aee&\"\nvar script = {}\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\nexport default component.exports","const focusablesCSSQuery = `\n a[href]:not([tabindex='-1']),\n area[href]:not([tabindex='-1']),\n input:not([disabled]):not([tabindex='-1']),\n select:not([disabled]):not([tabindex='-1']),\n textarea:not([disabled]):not([tabindex='-1']),\n button:not([disabled]):not([tabindex='-1']),\n iframe:not([tabindex='-1']),\n [tabindex]:not([tabindex='-1']),\n [contentEditable=true]:not([tabindex='-1']),\n svg:not([tabindex='-1']):not([focusable='false'])\n`;\n\nexport interface RepositioningResult {\n x: number;\n y: number;\n}\n\nconst DomHelper = {\n getFocusables(rootElement?: HTMLElement | Document): HTMLElement[] {\n const root = rootElement ?? document;\n const elements = Array.from(\n root.querySelectorAll(focusablesCSSQuery)\n ) as HTMLElement[];\n return elements.filter(DomHelper.isStyleVisible);\n },\n isStyleVisible(element: HTMLElement): boolean {\n const style = getComputedStyle(element);\n\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n\n if (!element.parentElement) {\n return true;\n }\n\n return DomHelper.isStyleVisible(element.parentElement);\n },\n getFirstOverflowHiddenContainer(element: HTMLElement): HTMLElement {\n const page: HTMLElement =\n (document.querySelector('#page') as HTMLElement) || document.body;\n\n if (!element) {\n return page;\n }\n\n let parent: HTMLElement | null = element.parentElement;\n\n if (parent == null) {\n return page;\n }\n\n while (parent != null) {\n if (parent === page) {\n return page;\n }\n\n const style = getComputedStyle(parent);\n if (\n style.overflow === 'hidden' ||\n style.overflowX === 'hidden' ||\n style.overflowY === 'hidden'\n ) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return parent || page;\n },\n getRepositioning(element: HTMLElement): RepositioningResult {\n const container = DomHelper.getFirstOverflowHiddenContainer(element);\n\n if (\n element.offsetWidth > container.offsetWidth ||\n element.offsetHeight > container.offsetHeight\n ) {\n return { x: 0, y: 0 };\n }\n\n const containerBounds = container.getBoundingClientRect();\n const elementBounds = element.getBoundingClientRect();\n\n let x = 0;\n if (elementBounds.left < containerBounds.left) {\n x += containerBounds.left - elementBounds.left;\n }\n if (elementBounds.right > containerBounds.right) {\n x += containerBounds.right - elementBounds.right;\n }\n\n let y = 0;\n if (elementBounds.top < containerBounds.top) {\n y += containerBounds.top - elementBounds.top;\n }\n if (elementBounds.bottom > containerBounds.bottom) {\n y += containerBounds.bottom - elementBounds.bottom;\n }\n\n return { x, y };\n },\n};\n\nexport { DomHelper };\n","import Vue from 'vue';\n\nconst EventHub = new Vue();\n\nexport default EventHub;\n","import IconClose from '@/components/icons/iconClose/iconClose.vue';\nimport { DomHelper } from '@/utils/domHelper';\nimport Vue from 'vue';\nimport EventHub from '@/eventHub';\n\nconst Drawer = Vue.extend({\n name: 'Drawer',\n components: {\n IconClose,\n },\n props: {\n bannerSrc: {\n type: String,\n },\n bannerAlt: {\n type: String,\n },\n hideFooter: {\n type: Boolean,\n default: false,\n },\n isModal: {\n type: Boolean,\n },\n },\n data() {\n return {\n hidden: true,\n drawerController: null as HTMLButtonElement | null,\n };\n },\n created() {\n EventHub.$on('hideAllDrawers', this.hide);\n },\n beforeDestroy() {\n this.removeEventListeners();\n this.removeBodyClass();\n },\n methods: {\n removeBodyClass() {\n setTimeout(() => {\n document.body.classList.remove(this.bodyClass);\n }, 200);\n },\n isKeyboardEvent(event: MouseEvent) {\n return !event.screenX && !event.screenY;\n },\n show(event?: MouseEvent) {\n event?.preventDefault();\n\n this.drawerController = document.activeElement as HTMLButtonElement | null;\n\n this.hidden = false;\n document.body.classList.add(this.bodyClass);\n\n // Save the current scroll position; wait a frame so that the body has\n // `overflow: hidden`, and restore the body scroll position.\n const { scrollX, scrollY } = window;\n requestAnimationFrame(() => {\n window.scrollTo(scrollX, scrollY);\n });\n\n (this.$refs.drawer as any).focus();\n\n this.addEventListeners();\n },\n hide(event?: MouseEvent) {\n if (this.hidden) {\n return;\n }\n\n this.hidden = true;\n\n this.removeEventListeners();\n\n if (event && this.drawerController && this.isKeyboardEvent(event)) {\n const focusables = DomHelper.getFocusables();\n if (focusables.includes(this.drawerController)) {\n this.drawerController.focus();\n }\n }\n\n this.removeBodyClass();\n },\n addEventListeners() {\n document.addEventListener('keydown', this.closeOnEscape);\n document.addEventListener('keydown', this.trapFocusKey);\n },\n removeEventListeners() {\n document.removeEventListener('keydown', this.closeOnEscape);\n document.removeEventListener('keydown', this.trapFocusKey);\n },\n closeOnEscape(event: KeyboardEvent) {\n if (event.key === 'Escape' || event.keyCode === 27) {\n this.hide();\n }\n },\n trapFocusKey(event: KeyboardEvent) {\n if (!event.target || (event.key !== 'Tab' && event.keyCode !== 9)) {\n return;\n }\n\n if (event.shiftKey) {\n if (event.target === this.firstFocusable) {\n event.preventDefault();\n this.lastFocusable.focus();\n }\n } else {\n if (event.target === this.lastFocusable) {\n event.preventDefault();\n this.firstFocusable.focus();\n }\n }\n },\n getDrawer(): HTMLDivElement {\n return this.$refs.drawer as HTMLDivElement;\n },\n },\n computed: {\n focusables(): HTMLElement[] {\n return DomHelper.getFocusables(this.getDrawer());\n },\n firstFocusable(): HTMLElement {\n return this.focusables[0];\n },\n lastFocusable(): HTMLElement {\n return this.focusables[this.focusables.length - 1];\n },\n bodyClass(): string {\n return `modal-open-${this.contentUniqueKey}`;\n },\n contentUniqueKey(): string {\n // https://github.com/LinusBorg/portal-vue/issues/294\n return (\n 'id-' +\n Math.random()\n .toString(16)\n .slice(2)\n );\n },\n },\n});\n\nexport default Drawer;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./drawer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./drawer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./drawer.vue?vue&type=template&id=38debcb0&scoped=true&\"\nimport script from \"./drawer.ts?vue&type=script&lang=ts&\"\nexport * from \"./drawer.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./drawer.scss?vue&type=style&index=0&id=38debcb0&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 \"38debcb0\",\n null\n \n)\n\nexport default component.exports","import { DomHelper } from '@/utils/domHelper';\nimport Vue from 'vue';\n\nenum Position {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left',\n}\n\nconst PositionOpposites: Record = {\n [Position.Top]: Position.Bottom,\n [Position.Right]: Position.Left,\n [Position.Bottom]: Position.Top,\n [Position.Left]: Position.Right,\n};\n\nconst ArbitraryTooltip = Vue.extend({\n name: 'ArbitraryTooltip',\n props: {\n position: {\n type: String as () => Position,\n default: Position.Top,\n },\n caretColor: {\n type: String as () => 'bleu' | 'white',\n default: 'white',\n },\n buttonClass: {\n type: String,\n },\n },\n data() {\n return {\n open: false,\n internalPosition: this.position,\n isRepositioning: false,\n };\n },\n created() {\n document.addEventListener('focus', this.openTooltipOnFocusInside, true);\n document.addEventListener('blur', this.reset, true);\n window.addEventListener('resize', this.reset);\n },\n beforeDestroy() {\n document.removeEventListener('focus', this.openTooltipOnFocusInside, true);\n document.removeEventListener('blur', this.reset, true);\n window.removeEventListener('resize', this.reset);\n },\n computed: {\n tooltip(): HTMLDivElement {\n return this.$refs.tooltip as HTMLDivElement;\n },\n tooltipContent(): HTMLDivElement {\n return this.$refs.tooltipContent as HTMLDivElement;\n },\n firstOverflowHiddenContainer(): HTMLElement {\n return DomHelper.getFirstOverflowHiddenContainer(this.tooltip);\n },\n uniqueId(): string {\n return Math.random()\n .toString(16)\n .slice(2)\n .toString();\n },\n },\n methods: {\n reset() {\n this.open = false;\n this.internalPosition = this.position;\n this.tooltipContent.style.transform = '';\n },\n openTooltipOnFocusInside(event: FocusEvent) {\n if (!this.tooltip || !event.target) {\n this.open = false;\n return;\n }\n\n if (this.tooltip.contains(event.target as Element)) {\n this.open = true;\n } else {\n this.open = false;\n }\n },\n repositionTooltip() {\n const { x, y } = DomHelper.getRepositioning(this.tooltipContent);\n\n if (\n !this.isRepositioning &&\n (this.internalPosition === Position.Top ||\n this.internalPosition === Position.Bottom) &&\n y !== 0\n ) {\n this.isRepositioning = true;\n this.internalPosition = PositionOpposites[this.internalPosition];\n this.$nextTick(this.repositionTooltip);\n return;\n }\n\n if (\n !this.isRepositioning &&\n (this.internalPosition === Position.Left ||\n this.internalPosition === Position.Right) &&\n x !== 0\n ) {\n this.isRepositioning = true;\n this.internalPosition = PositionOpposites[this.internalPosition];\n this.$nextTick(this.repositionTooltip);\n return;\n }\n\n if (x !== 0) {\n this.tooltipContent.style.transform += `translateX(${\n x > 0 ? x + 16 : x - 16\n }px)`;\n }\n\n if (y !== 0) {\n this.tooltipContent.style.transform += `translateY(${\n y > 0 ? y + 16 : y - 16\n }px)`;\n }\n\n this.isRepositioning = false;\n },\n },\n watch: {\n open() {\n if (!this.open) {\n return;\n }\n\n this.$emit('open');\n this.$nextTick(this.repositionTooltip);\n },\n },\n});\n\nexport default ArbitraryTooltip;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./page.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./page.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./page.vue?vue&type=template&id=79d18d48&scoped=true&\"\nimport script from \"./page.ts?vue&type=script&lang=ts&\"\nexport * from \"./page.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./page.vue?vue&type=style&index=0&id=79d18d48&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 \"79d18d48\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Card',{staticClass:\"question-card\"},[_c('form',{ref:\"focusRoot\",on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('next')}}},[_c('div',{staticClass:\"question-card__header\"},[_c('span',{staticClass:\"question-card__section-name\"},[_vm._v(_vm._s(_vm.sectionName))]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('questionCard.stepProgression', [_vm.currentStep, _vm.maxStep]))+\" \")])]),_c('div',{staticClass:\"question-card__body\"},[_c('div',{staticClass:\"question-card__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_vm._t(\"default\")],2),_c('div',{staticClass:\"question-card__footer\"},[_c('button',{staticClass:\"button button--secondary\",style:({\n visibility:\n _vm.currentStep > 1 || _vm.showReturnOnFirstStep ? 'visible' : 'hidden',\n }),attrs:{\"type\":\"button\",\"tabindex\":_vm.currentStep === _vm.questionStep ? undefined : -1},on:{\"click\":function($event){return _vm.$emit('back')}}},[_vm._v(\" \"+_vm._s(_vm.currentStep > 1 ? _vm.$t('questionCard.back') : _vm.$t('questionCard.return'))+\" \")]),_c('button',{staticClass:\"button question-card__next-button\",class:(\"button--\" + (_vm.section.sectionThemeColor)),attrs:{\"type\":\"submit\",\"disabled\":!_vm.nextEnabled,\"tabindex\":_vm.currentStep === _vm.questionStep ? undefined : -1}},[_vm._v(\" \"+_vm._s(_vm.$t('questionCard.next'))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card__body\"},[_vm._t(\"default\")],2),(_vm.$slots.footer)?_c('div',{staticClass:\"card__footer\"},[_vm._t(\"footer\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst Card = Vue.extend({\n name: 'Card',\n});\n\nexport default Card;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./card.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./card.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./card.vue?vue&type=template&id=0bcc4a6f&scoped=true&\"\nimport script from \"./card.ts?vue&type=script&lang=ts&\"\nexport * from \"./card.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./card.vue?vue&type=style&index=0&id=0bcc4a6f&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 \"0bcc4a6f\",\n null\n \n)\n\nexport default component.exports","import { BasicInformationWizardSteps } from '@/models/basicInformation';\nimport { Section } from '@/models/calculatorState';\nimport { DomHelper } from '@/utils/domHelper';\nimport Vue from 'vue';\nimport Card from '../ui/card/card.vue';\n\nconst QuestionCard = Vue.extend({\n name: 'QuestionCard',\n props: {\n sectionName: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: true,\n },\n currentStep: {\n type: Number as () => BasicInformationWizardSteps,\n required: true,\n },\n questionStep: {\n type: Number,\n required: true,\n },\n maxStep: {\n type: Number,\n required: true,\n },\n section: {\n type: Object as () => Section,\n required: true,\n },\n showReturnOnFirstStep: {\n type: Boolean,\n default: false,\n },\n },\n components: {\n Card,\n },\n data() {\n return {\n focusElements: [] as [HTMLElement, string | null][],\n };\n },\n mounted() {\n this.toggleTabIndexes();\n },\n updated() {\n // If we rerendered any of our saved unfocusable elements, they might have\n // lost the `tabindex=\"-1\"`. We'll reset it just in case.\n this.$nextTick(this.ensureUnfocusable);\n },\n methods: {\n toggleTabIndexes(): void {\n if (this.isShown) {\n // If we are being shown, restore all focusables to their original tabindexes\n for (const [elem, tabindex] of this.focusElements) {\n if (tabindex == null) {\n elem.removeAttribute('tabindex');\n } else {\n elem.setAttribute('tabindex', tabindex);\n }\n\n elem.removeAttribute('focusable');\n }\n\n this.focusElements = [];\n } else {\n const root = this.$refs.focusRoot as HTMLElement;\n const focusables = DomHelper.getFocusables(root);\n\n this.focusElements = focusables.map(elem => [\n elem,\n elem.getAttribute('tabindex'),\n ]);\n\n focusables.forEach(elem => {\n elem.setAttribute('tabindex', '-1');\n\n // IE workaround (https://github.com/angular/material/issues/7250)\n if (elem.tagName.toLowerCase() === 'svg') {\n elem.setAttribute('focusable', 'false');\n }\n });\n }\n },\n ensureUnfocusable(): void {\n this.focusElements.forEach(([elem, _]) => {\n if (elem.getAttribute('tabindex') !== '-1') {\n elem.setAttribute('tabindex', '-1');\n }\n });\n },\n },\n computed: {\n isShown(): boolean {\n return this.currentStep === this.questionStep;\n },\n nextEnabled(): boolean {\n return !!this.section.stepProgression()[this.currentStep];\n },\n },\n watch: {\n isShown() {\n this.toggleTabIndexes();\n },\n },\n});\n\nexport default QuestionCard;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./questionCard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./questionCard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./questionCard.vue?vue&type=template&id=a79c6ab4&scoped=true&\"\nimport script from \"./questionCard.ts?vue&type=script&lang=ts&\"\nexport * from \"./questionCard.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./questionCard.vue?vue&type=style&index=0&id=a79c6ab4&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 \"a79c6ab4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ArbitraryTooltip',{attrs:{\"caretColor\":\"bleu\",\"buttonClass\":\"text-tooltip__button\"},on:{\"open\":_vm.emitOpen},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"text-tooltip__text\"},[_vm._t(\"text\")],2)]},proxy:true}],null,true)},[_c('i',{ref:\"word\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"tooltip\",staticClass:\"arbitrary-tooltip\",on:{\"mouseenter\":function($event){_vm.open = true},\"mouseleave\":function($event){_vm.open = false}}},[_c('div',{staticClass:\"arbitrary-tooltip__content-wrapper\",class:( _obj = {\n 'arbitrary-tooltip__content-wrapper--open': _vm.open\n }, _obj[(\"arbitrary-tooltip__content-wrapper--\" + _vm.internalPosition)] = true, _obj )},[_c('div',{ref:\"tooltipContent\",staticClass:\"arbitrary-tooltip__content\",attrs:{\"id\":(\"tooltip-content-\" + _vm.uniqueId)}},[_vm._t(\"content\")],2),_c('div',{staticClass:\"arbitrary-tooltip__caret\",class:( _obj$1 = {}, _obj$1[(\"arbitrary-tooltip__caret--\" + _vm.caretColor)] = true, _obj$1 )})]),_c('button',{staticClass:\"button button--no-style\",class:_vm.buttonClass,attrs:{\"type\":\"button\",\"id\":(\"tooltip-button-\" + _vm.uniqueId),\"aria-labelledby\":(\"tooltip-button-\" + _vm.uniqueId + \" tooltip-content-\" + _vm.uniqueId)},on:{\"click\":function($event){_vm.open = true}}},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import IconError from '@/components/icons/iconError/iconError.vue';\nimport Vue from 'vue';\n\nexport enum ErrorPageType {\n Error = 'errorPage',\n NotFound = 'notFoundPage',\n}\n\nconst ErrorPage = Vue.extend({\n name: 'ErrorPage',\n props: {\n pageType: {\n type: String as () => ErrorPageType,\n default: ErrorPageType.Error,\n },\n onClick: {\n type: (Function as never) as () => (event: Event) => void,\n },\n },\n components: {\n IconError,\n },\n computed: {\n title(): string {\n return this.$t(`${this.pageType}.title`).toString();\n },\n description(): string {\n return this.$t(`${this.pageType}.description`).toString();\n },\n buttonText(): string {\n return this.$t(`${this.pageType}.button`).toString();\n },\n isButtonLink(): boolean {\n return this.pageType === ErrorPageType.NotFound;\n },\n },\n methods: {\n onButtonClick(event: Event) {\n if (this.onClick) {\n this.onClick(event);\n return;\n }\n\n this.$router.back();\n },\n },\n});\n\nexport default ErrorPage;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./arbitraryTooltip.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./arbitraryTooltip.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./arbitraryTooltip.vue?vue&type=template&id=34238274&scoped=true&\"\nimport script from \"./arbitraryTooltip.ts?vue&type=script&lang=ts&\"\nexport * from \"./arbitraryTooltip.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./arbitraryTooltip.scss?vue&type=style&index=0&id=34238274&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 \"34238274\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport ArbitraryTooltip from '@/components/ui/arbitraryTooltip/arbitraryTooltip.vue';\n\nconst TextTooltip = Vue.extend({\n name: 'TextTooltip',\n components: {\n ArbitraryTooltip,\n },\n methods: {\n emitOpen() {\n const word = (this.$refs.word as HTMLElement)?.innerHTML;\n this.$emit('open', word?.trim() || '');\n },\n },\n});\n\nexport default TextTooltip;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./textTooltip.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./textTooltip.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./textTooltip.vue?vue&type=template&id=b28264c8&scoped=true&\"\nimport script from \"./textTooltip.ts?vue&type=script&lang=ts&\"\nexport * from \"./textTooltip.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./textTooltip.scss?vue&type=style&index=0&id=b28264c8&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 \"b28264c8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wizard\",attrs:{\"tabindex\":\"-1\"}},[_c('div',{ref:\"transition\",staticClass:\"wizard__transition\",style:({ transform: _vm.translateX })},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst CARD_SPACING = 24;\n\nconst Wizard = Vue.extend({\n name: 'Wizard',\n props: {\n currentStep: {\n type: Number,\n required: true,\n },\n maxStep: {\n type: Number,\n required: true,\n },\n },\n computed: {\n translateX(): string {\n const stepDelta = this.currentStep - 1;\n const translate1 = `translateX(${stepDelta * -100}%)`;\n const translate2 = `translateX(${-CARD_SPACING * stepDelta}px)`;\n return `${translate1} ${translate2}`;\n },\n },\n});\n\nexport default Wizard;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./wizard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./wizard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./wizard.vue?vue&type=template&id=2afa168f&scoped=true&\"\nimport script from \"./wizard.ts?vue&type=script&lang=ts&\"\nexport * from \"./wizard.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./wizard.vue?vue&type=style&index=0&id=2afa168f&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 \"2afa168f\",\n null\n \n)\n\nexport default component.exports","import { CalculatorAPI } from '@/api/calculator';\nimport Input from '@/components/form/input/input.vue';\nimport Radio from '@/components/form/radio/radio.vue';\nimport Select from '@/components/form/select/select.vue';\nimport IconActionExclamationCircleFull from '@/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.vue';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport Page from '@/components/page/page.vue';\nimport QuestionCard from '@/components/questionCard/questionCard.vue';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport TextTooltip from '@/components/ui/textTooltip/textTooltip.vue';\nimport Wizard from '@/components/wizard/wizard.vue';\nimport {\n BasicInformationState,\n BasicInformationViewModel,\n BasicInformationWizardSteps,\n ChildRole,\n Provinces,\n SavingStrategy,\n} from '@/models/basicInformation';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport {\n EducationInformationViewModel,\n EducationLevel,\n} from '@/models/educationInformation';\nimport {\n FutureEducationCost,\n FutureEducationCostState,\n} from '@/models/futureEducationCost';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\nimport { RawLocation } from 'vue-router';\n\nconst BasicInformationWizard = Vue.extend({\n name: 'BasicInformationWizard',\n components: {\n Drawer,\n IconActionExclamationCircleFull,\n IconActionQuestionCircle,\n Input,\n Page,\n QuestionCard,\n Radio,\n Select,\n TextTooltip,\n Wizard,\n },\n props: {\n calculatorAPI: {\n type: Object as () => CalculatorAPI,\n required: true,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n calculatorState: {\n type: Object as () => CalculatorState,\n required: true,\n },\n futureEducationCostState: {\n type: Object as () => FutureEducationCostState,\n required: true,\n },\n stepFromUrl: {\n type: String,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n }\n },\n data() {\n return {\n currentStep: this.calculatorViewModel.basicInfos.getStepFromRoute(\n this.stepFromUrl\n ),\n SavingStrategy,\n BasicInformationViewModel,\n EducationInformationViewModel,\n };\n },\n created() {\n if (this.currentStep !== BasicInformationWizardSteps.Name) {\n this.$router.push({\n name: 'basicInformation',\n params: {\n step: this.calculatorViewModel.basicInfos.getRouteFromStep(\n BasicInformationWizardSteps.Name\n ),\n },\n });\n }\n },\n beforeRouteLeave(to, _, next) {\n next();\n\n const basicInfoNames = ['basicInformation', 'basicInformationFinancial'];\n if (basicInfoNames.includes(to.name ?? '')) {\n return;\n }\n\n if (this.calculatorState.basicInfos != null) {\n this.calculatorViewModel.basicInfos = this.calculatorState.basicInfos.asViewModel();\n } else {\n this.calculatorViewModel.basicInfos = new BasicInformationViewModel();\n }\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n },\n computed: {\n basicInfos() {\n return this.calculatorViewModel.basicInfos;\n },\n nextEnabled(): boolean {\n return this.stepIsEnabled();\n },\n step3Title(): string {\n if (!this.basicInfos.childName) {\n return '';\n }\n\n if (/[aehiouy]/.test(this.basicInfos.childName[0].toLowerCase())) {\n return this.$t('basicInfo.step3.titleApostrophe', {\n name: this.basicInfos.childName,\n }).toString();\n }\n\n return this.$t('basicInfo.step3.titleNoApostrophe', {\n name: this.basicInfos.childName,\n }).toString();\n },\n step2Paragraph(): string {\n if (!this.basicInfos.childName) {\n return '';\n }\n\n if (/[aehiouy]/.test(this.basicInfos.childName[0].toLowerCase())) {\n return this.$t('basicInfo.step2.moduleParagraph1Apostrophe', {\n name: this.basicInfos.childName,\n }).toString();\n }\n\n return this.$t('basicInfo.step2.moduleParagraph1NoApostrophe', {\n name: this.basicInfos.childName,\n }).toString();\n },\n calculationHelpKey(): string {\n if (!this.basicInfos.childName) {\n return '';\n }\n\n if (/[aehiouy]/.test(this.basicInfos.childName[0].toLowerCase())) {\n return 'basicInfo.calculationHelp.paragraph2Apostrophe';\n }\n\n return 'basicInfo.calculationHelp.paragraph2NoApostrophe';\n },\n possibleRoles(): ChildRole[] {\n return [ChildRole.Parent, ChildRole.Guardian, ChildRole.FriendOrFamily];\n },\n possibleProvinces(): Provinces[] {\n return [Provinces.Quebec, Provinces.NewBrunswick];\n },\n possibleStrategies(): SavingStrategy[] {\n return [SavingStrategy.Monthly, SavingStrategy.TotalGoal];\n },\n completionLocation(): RawLocation {\n if (typeof this.$route.query.completionLocationName === 'string') {\n return { name: this.$route.query.completionLocationName };\n }\n\n return { name: 'pinpointResult' };\n },\n futureEducationCosts(): FutureEducationCost[] {\n return this.futureEducationCostState.futureEducationCosts;\n },\n },\n methods: {\n showNeedHelp(event: Event) {\n this.tracker.event('contact_age');\n (this.$refs.page as any)?.showNeedHelp(event, true);\n },\n stepIsEnabled(): boolean {\n return !!this.basicInfos.stepProgression()[this.currentStep];\n },\n translateSavingStrategy(strategy: SavingStrategy) {\n if (strategy === SavingStrategy.Monthly) {\n return this.$t('basicInfo.step6.monthlyOption');\n } else {\n return this.$t('basicInfo.step6.totalOption');\n }\n },\n showDrawer(drawerName: string, event: Event): void {\n this.tracker.event('module_aide');\n (this.$refs[drawerName] as any).show(event);\n },\n setState(): void {\n this.calculatorState.basicInfos = BasicInformationState.fromViewModel(\n this.basicInfos\n );\n },\n onBack(): void {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (\n this.basicInfos.isComplete &&\n this.calculatorState.basicInfos != null &&\n this.currentStep === 1\n ) {\n this.setState();\n }\n\n this.$router.back();\n },\n resetEducationLevel() {\n if (\n this.calculatorViewModel.educationInfos.isComplete &&\n !this.calculatorViewModel.possibleEducationLevels.includes(\n this.calculatorViewModel.educationInfos\n .targetedLevel as EducationLevel\n )\n ) {\n this.calculatorViewModel.educationInfos.targetedLevel = null;\n }\n },\n onNextStep(): void {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (this.currentStep === BasicInformationWizardSteps.Province) {\n this.resetEducationLevel();\n }\n\n if (this.currentStep === BasicInformationWizardSteps.SavingStrategy) {\n this.setState();\n\n this.$router.push(this.completionLocation);\n return;\n }\n\n const routeName =\n this.currentStep >= BasicInformationWizardSteps.Province\n ? 'basicInformationFinancial'\n : 'basicInformation';\n\n this.$router.push({\n name: routeName,\n params: {\n step: this.basicInfos.getRouteFromStep(this.currentStep + 1),\n },\n query: this.$route.query,\n });\n\n return;\n },\n trackDefinition(event: string) {\n this.tracker.event('definition', { item_name: event });\n },\n async updateFutureEducationCosts(): Promise {\n this.futureEducationCostState.futureEducationCosts = await this.calculatorAPI.getFutureEducationCosts(\n this.calculatorViewModel\n );\n return;\n },\n },\n watch: {\n stepFromUrl() {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n const stepFromRoute = this.basicInfos.getStepFromRoute(this.stepFromUrl);\n\n const stepDelta = stepFromRoute - this.currentStep;\n const invalidChange =\n // You can only move forward one step at a time\n stepDelta > 1 ||\n // Moving forward is only allowed if the current step is enabled\n (stepDelta === 1 && !this.stepIsEnabled());\n\n if (invalidChange) {\n this.$router.back();\n }\n\n this.currentStep = stepFromRoute;\n\n if (this.currentStep === BasicInformationWizardSteps.StartingAmount) {\n this.updateFutureEducationCosts();\n }\n\n if (\n this.currentStep === BasicInformationWizardSteps.Province &&\n this.basicInfos.province == null\n ) {\n this.basicInfos.province = this.possibleProvinces[0];\n }\n },\n },\n});\n\nexport default BasicInformationWizard;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./basicInformationWizard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./basicInformationWizard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./basicInformationWizard.vue?vue&type=template&id=00e261e9&scoped=true&\"\nimport script from \"./basicInformationWizard.ts?vue&type=script&lang=ts&\"\nexport * from \"./basicInformationWizard.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./basicInformationWizard.vue?vue&type=style&index=0&id=00e261e9&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 \"00e261e9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"marine\",\"hasFloatingLogo\":\"\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){\nvar _obj;\nreturn [_c('router-link',{staticClass:\"education-marketing__button button\",class:( _obj = {}, _obj[(\"button--\" + (_vm.educationInfos.sectionThemeColor))] = true, _obj ),attrs:{\"to\":_vm.nextLocation}},[_vm._v(\" \"+_vm._s(_vm.nextLocation.name == 'pinpointResult' ? _vm.$t('educationMarketing.nextButton') : _vm.$t('educationMarketing.goToResult'))+\" \")])]},proxy:true}])},[_c('section',{staticClass:\"education-marketing\"},[_c('header',{staticClass:\"education-marketing__header\"},[_c('Badge',{staticClass:\"education-marketing__badge\"},[_c('IconHighArrow'),_c('span',[_vm._v(_vm._s(_vm.$t('educationMarketing.includedWithPlan')))])],1),_c('h1',{staticClass:\"education-marketing__title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('educationMarketing.title'))+\" \")]),_c('p',{staticClass:\"education-marketing__text text\"},[_vm._v(\" \"+_vm._s(_vm.$t('educationMarketing.text1'))+\" \")]),_c('br'),_c('p',{staticClass:\"education-marketing__text text\"},[_vm._v(\" \"+_vm._s(_vm.$t('educationMarketing.text2'))+\" \")])],1),_c('div',{staticClass:\"education-marketing__body\"},[_c('MarketingList',{staticClass:\"education-marketing__list\",attrs:{\"items\":_vm.educationInfos.marketingListItems,\"toggleable\":false}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"fill-rule\":\"nonzero\",\"d\":\"M19.67 10.917a1.21 1.21 0 0 0-.258-.406l-6.154-6.154a1.236 1.236 0 1 0-1.747 1.748l4.061 4.049H6.231a1.23 1.23 0 1 0-.001 2.461h9.342l-4.061 4.05a1.227 1.227 0 0 0 0 1.747 1.228 1.228 0 0 0 1.747 0l6.154-6.154c.112-.117.2-.255.259-.406a1.23 1.23 0 0 0 0-.935z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconHighArrow.vue?vue&type=template&id=603a27d4&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"marketing-list\",class:{ 'marketing-list--toggleable': _vm.toggleable }},_vm._l((_vm.items),function(item,index){return _c('li',{key:index},[_c(_vm.toggleable ? 'details' : 'div',{tag:\"component\",staticClass:\"marketing-list__item\",attrs:{\"open\":_vm.toggleable ? item === _vm.selectedItem : undefined,\"data-open\":_vm.toggleable ? item === _vm.selectedItem : undefined}},[_c(_vm.toggleable ? 'summary' : 'div',{tag:\"component\",staticClass:\"marketing-list__item-header-wrapper\",attrs:{\"tabindex\":_vm.toggleable ? 0 : undefined},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();_vm.toggleable ? _vm.select(item) : undefined},\"click\":function($event){$event.preventDefault();_vm.toggleable ? _vm.select(item) : undefined}}},[_c('div',{staticClass:\"marketing-list__item-header\"},[_c(item.icon,{tag:\"component\"}),_c('span',{staticClass:\"marketing-list__item-title\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('IconChevron',{staticClass:\"marketing-list__chevron\"})],1)]),_c('div',{staticClass:\"marketing-list__toggleable-content\"},[_c('p',{staticClass:\"marketing-list__item-text text\",domProps:{\"innerHTML\":_vm._s(item.text)}},[_vm._v(\" \"+_vm._s(item.text)+\" \")])])],1)],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import IconChevron from '@/components/icons/iconChevron/iconChevron.vue';\nimport { IMarketingListItem } from '@/models/section';\nimport Vue from 'vue';\n\nconst MarketingList = Vue.extend({\n name: 'MarketingList',\n components: {\n IconChevron,\n },\n props: {\n items: {\n type: Array as () => IMarketingListItem[],\n },\n toggleable: {\n type: Boolean,\n default: true,\n },\n },\n data() {\n return {\n selectedItem: null as IMarketingListItem | null,\n };\n },\n created() {\n this.selectedItem = this.items[0];\n },\n methods: {\n select(item: IMarketingListItem) {\n if (this.selectedItem === item) {\n this.selectedItem = null;\n return;\n }\n this.selectedItem = item;\n },\n },\n watch: {\n items() {\n this.selectedItem = this.items[0];\n },\n },\n});\n\nexport default MarketingList;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./marketingList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./marketingList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./marketingList.vue?vue&type=template&id=87d90318&scoped=true&\"\nimport script from \"./marketingList.ts?vue&type=script&lang=ts&\"\nexport * from \"./marketingList.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./marketingList.scss?vue&type=style&index=0&id=87d90318&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 \"87d90318\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"badge\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst Badge = Vue.extend({\n name: 'Badge',\n});\n\nexport default Badge;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./badge.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./badge.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./badge.vue?vue&type=template&id=64f63ee3&scoped=true&\"\nimport script from \"./badge.ts?vue&type=script&lang=ts&\"\nexport * from \"./badge.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./badge.scss?vue&type=style&index=0&id=64f63ee3&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 \"64f63ee3\",\n null\n \n)\n\nexport default component.exports","import Page from '@/components/page/page.vue';\nimport IconHighArrow from '@/components/icons/iconHighArrow/iconHighArrow.vue';\nimport MarketingList from '@/components/ui/marketingList/marketingList.vue';\nimport { CalculatorViewModel, CalculatorState } from '@/models/calculatorState';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport Vue from 'vue';\nimport { RawLocation } from 'vue-router';\nimport { Tracker } from '@/models/tracker';\nimport Badge from '@/components/ui/badge/badge.vue';\n\nconst EducationMarketing = Vue.extend({\n name: 'EducationMarketing',\n props: {\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n calculatorState: {\n type: Object as () => CalculatorState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Badge,\n Page,\n MarketingList,\n IconHighArrow,\n },\n computed: {\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n financialInfos(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n nextLocation(): RawLocation {\n if (typeof this.$route.query.completionLocationName === 'string') {\n return {\n name: this.$route.query.completionLocationName,\n };\n }\n\n return this.financialInfos.isComplete\n ? { name: 'results' }\n : { name: 'pinpointResult' };\n },\n },\n});\n\nexport default EducationMarketing;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./educationMarketing.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./educationMarketing.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./educationMarketing.vue?vue&type=template&id=ca044352&scoped=true&\"\nimport script from \"./educationMarketing.ts?vue&type=script&lang=ts&\"\nexport * from \"./educationMarketing.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./educationMarketing.scss?vue&type=style&index=0&id=ca044352&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 \"ca044352\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"marine\",\"hasFloatingLogo\":\"\",\"tracker\":_vm.tracker}},[_c('div',{staticClass:\"education-plan__container\"},[_c('Wizard',{attrs:{\"currentStep\":_vm.currentStep,\"maxStep\":2}},[_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('educationPlan.step1.sectionName'),\"title\":_vm.$t('educationPlan.step1.sectionTitle'),\"currentStep\":_vm.currentStep,\"questionStep\":1,\"maxStep\":2,\"section\":_vm.educationInfos,\"showReturnOnFirstStep\":\"\"},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"education-plan__input-with-icon-container\"},[_c('Select',{staticClass:\"education-plan__input-with-icon\",attrs:{\"placeholder\":_vm.$t('educationPlan.selectPlaceholder'),\"options\":_vm.calculatorViewModel.possibleEducationLevels,\"getOptionLabel\":function (level) { return _vm.EducationInformationViewModel.translateEducationLevel(level); }},model:{value:(_vm.educationInfos.targetedLevel),callback:function ($$v) {_vm.$set(_vm.educationInfos, \"targetedLevel\", $$v)},expression:\"educationInfos.targetedLevel\"}}),_c('button',{staticClass:\"education-plan__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step1Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"education-plan__drawer-help-icon\"})],1)],1)]),_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('educationPlan.step1.sectionName'),\"title\":_vm.$t('educationPlan.step2.sectionTitle'),\"currentStep\":_vm.currentStep,\"questionStep\":2,\"maxStep\":2,\"section\":_vm.educationInfos},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"education-plan__input-with-icon-container\"},[_c('Select',{staticClass:\"education-plan__input-with-icon\",attrs:{\"placeholder\":_vm.$t('educationPlan.selectPlaceholder'),\"options\":_vm.possibleHousingTypes,\"getOptionLabel\":_vm.educationInfos.translateHousingType},model:{value:(_vm.educationInfos.housingType),callback:function ($$v) {_vm.$set(_vm.educationInfos, \"housingType\", $$v)},expression:\"educationInfos.housingType\"}}),_c('button',{staticClass:\"education-plan__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step2Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"education-plan__drawer-help-icon\"})],1)],1)])],1)],1),_c('Drawer',{ref:\"step1Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('educationPlan.step1.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.moduleStep1Paragraph1)}}),(_vm.futureEducationCosts.length > 0)?_c('p',[_c('i18n',{attrs:{\"path\":_vm.moduleStep1Paragraph2Key},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.calculatorState.basicInfos.childName)+\" \")]},proxy:true},{key:\"tooltip\",fn:function(){return [_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('educationPlan.step1.tooltip')))]),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.$t('educationPlan.step1.link')}},[_vm._v(_vm._s(_vm.$t('educationPlan.step1.linkLabel')))])]},proxy:true}],null,false,3183303722)},[_vm._v(\" \"+_vm._s(_vm.$t('educationPlan.step1.word'))+\" \")])]},proxy:true}],null,false,1393076943)})],1):_vm._e(),_vm._l((_vm.futureEducationCosts),function(futureEducationCost){return _c('div',{key:futureEducationCost.educationLevel},[_c('h6',[_vm._v(\" \"+_vm._s(_vm.EducationInformationViewModel.translateEducationLevel( futureEducationCost.educationLevel ))+\" \")]),_c('p',[_vm._v(_vm._s(_vm._f(\"currency\")(futureEducationCost.averageAmount)))])])})],2),_c('Drawer',{ref:\"step2Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('educationPlan.step2.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.moduleStep2Paragraph2)}}),_c('p',{domProps:{\"innerHTML\":_vm._s(\n _vm.$t('educationPlan.step2.moduleParagraph2', {\n name: _vm.calculatorState.basicInfos.childName,\n })\n )}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Input from '@/components/form/input/input.vue';\nimport Select from '@/components/form/select/select.vue';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport Page from '@/components/page/page.vue';\nimport QuestionCard from '@/components/questionCard/questionCard.vue';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport Wizard from '@/components/wizard/wizard.vue';\nimport TextTooltip from '@/components/ui/textTooltip/textTooltip.vue';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport {\n EducationInformationState,\n EducationInformationViewModel,\n EducationLevel,\n EducationPlanSteps,\n HousingType,\n} from '@/models/educationInformation';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\nimport {\n FutureEducationCost,\n FutureEducationCostState,\n} from '@/models/futureEducationCost';\nimport { CalculatorAPI } from '@/api/calculator';\n\nconst EducationPlan = Vue.extend({\n name: 'EducationPlan',\n components: {\n Page,\n Wizard,\n QuestionCard,\n Select,\n IconActionQuestionCircle,\n Drawer,\n Input,\n TextTooltip,\n },\n props: {\n calculatorAPI: {\n type: Object as () => CalculatorAPI,\n required: true,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n calculatorState: {\n type: Object as () => CalculatorState,\n required: true,\n },\n futureEducationCostState: {\n type: Object as () => FutureEducationCostState,\n required: true,\n },\n stepFromUrl: {\n type: String,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n data() {\n return {\n currentStep: this.calculatorViewModel.educationInfos.getStepFromRoute(\n this.stepFromUrl\n ),\n EducationInformationViewModel,\n };\n },\n created() {\n if (this.futureEducationCostState.futureEducationCosts.length === 0) {\n this.updateFutureEducationCosts();\n }\n },\n computed: {\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n nextEnabled(): boolean {\n return this.stepIsEnabled(this.currentStep);\n },\n possibleHousingTypes() {\n return [HousingType.Home, HousingType.Away];\n },\n moduleStep1Paragraph1() {\n if (!this.calculatorViewModel.basicInfos.childName) {\n return '';\n }\n\n if (\n /[aehiouy]/.test(\n this.calculatorViewModel.basicInfos.childName[0].toLowerCase()\n )\n ) {\n return this.$t('educationPlan.step1.moduleParagraph1Apostrophe', {\n name: this.calculatorViewModel.basicInfos.childName,\n }).toString();\n }\n\n return this.$t('educationPlan.step1.moduleParagraph1NoApostrophe', {\n name: this.calculatorViewModel.basicInfos.childName,\n }).toString();\n },\n moduleStep1Paragraph2Key() {\n if (!this.calculatorViewModel.basicInfos.childName) {\n return '';\n }\n\n if (\n /[aehiouy]/.test(\n this.calculatorViewModel.basicInfos.childName[0].toLowerCase()\n )\n ) {\n return 'educationPlan.step1.moduleParagraph2Apostrophe';\n }\n\n return 'educationPlan.step1.moduleParagraph2NoApostrophe';\n },\n moduleStep2Paragraph2() {\n if (!this.calculatorViewModel.basicInfos.childName) {\n return '';\n }\n\n if (\n /[aehiouy]/.test(\n this.calculatorViewModel.basicInfos.childName[0].toLowerCase()\n )\n ) {\n return this.$t('educationPlan.step2.moduleParagraph1Apostrophe', {\n name: this.calculatorViewModel.basicInfos.childName,\n }).toString();\n }\n\n return this.$t('educationPlan.step2.moduleParagraph1NoApostrophe', {\n name: this.calculatorViewModel.basicInfos.childName,\n }).toString();\n },\n futureEducationCosts(): FutureEducationCost[] {\n return this.futureEducationCostState.futureEducationCosts;\n },\n },\n beforeRouteLeave(_, __, next) {\n next();\n\n if (this.calculatorState.educationInfos != null) {\n this.calculatorViewModel.educationInfos = this.calculatorState.educationInfos.asViewModel();\n } else {\n this.calculatorViewModel.educationInfos = new EducationInformationViewModel();\n }\n\n if (this.currentStep === EducationPlanSteps.Housing) {\n this.updateFutureEducationCosts();\n }\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n },\n methods: {\n stepIsEnabled(step: number): boolean {\n return !!this.educationInfos.stepProgression()[step];\n },\n showDrawer(drawerName: string, event: Event): void {\n this.tracker.event('module_aide');\n (this.$refs[drawerName] as any).show(event);\n },\n setState(): void {\n this.calculatorState.educationInfos = EducationInformationState.fromViewModel(\n this.educationInfos\n );\n },\n onBack(): void {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (\n this.educationInfos.isComplete &&\n this.calculatorState.educationInfos != null &&\n this.currentStep === EducationPlanSteps.Level\n ) {\n this.setState();\n }\n\n this.$router.back();\n },\n onNextStep(): void {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (this.currentStep === EducationPlanSteps.Housing) {\n this.tracker.event('completer_etude_envisagees');\n this.setState();\n this.$router.push({\n name: 'educationMarketing',\n query: this.$route.query,\n });\n return;\n }\n\n this.$router.push({\n name: 'educationPlan',\n params: {\n step: this.educationInfos.getRouteFromStep(this.currentStep + 1),\n },\n query: this.$route.query,\n });\n return;\n },\n async updateFutureEducationCosts(): Promise {\n this.futureEducationCostState.futureEducationCosts = await this.calculatorAPI.getFutureEducationCosts(\n this.calculatorViewModel\n );\n return;\n },\n },\n watch: {\n currentStep() {\n if (\n this.currentStep === EducationPlanSteps.Level &&\n this.educationInfos.housingType != null\n ) {\n this.updateFutureEducationCosts();\n }\n },\n stepFromUrl() {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n const stepFromRoute = this.educationInfos.getStepFromRoute(\n this.stepFromUrl\n );\n\n const stepDelta = stepFromRoute - this.currentStep;\n const invalidChange =\n // You can only move forward one step at a time\n stepDelta > 1 ||\n // Moving forward is only allowed if the current step is enabled\n (stepDelta === 1 && !this.stepIsEnabled(this.currentStep));\n\n if (invalidChange) {\n this.$router.back();\n }\n\n this.currentStep = stepFromRoute;\n },\n },\n});\n\nexport default EducationPlan;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./educationPlan.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./educationPlan.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./educationPlan.vue?vue&type=template&id=4ae58a99&scoped=true&\"\nimport script from \"./educationPlan.ts?vue&type=script&lang=ts&\"\nexport * from \"./educationPlan.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./educationPlan.vue?vue&type=style&index=0&id=4ae58a99&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 \"4ae58a99\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"error-page\"},[_c('div',{staticClass:\"error-page__content\"},[_c('IconError',{staticClass:\"error-page__icon\"}),_c('h1',{staticClass:\"error-page__title title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('p',{staticClass:\"error-page__description text\"},[_vm._v(\" \"+_vm._s(_vm.description)+\" \")]),_c(_vm.isButtonLink ? 'a' : 'button',{tag:\"component\",staticClass:\"button button--primary\",attrs:{\"href\":_vm.isButtonLink ? _vm.$t('notFoundPage.homePageLink') : undefined,\"type\":_vm.isButtonLink ? undefined : 'button'},on:{\"click\":function($event){_vm.isButtonLink ? undefined : _vm.onButtonClick($event)}}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 133 73\",\"width\":\"133\",\"height\":\"73\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"fill\":\"#6882A6\",\"d\":\"M84.46.694a2.994 2.994 0 013.964 1.502 3.006 3.006 0 01-1.417 3.934l-.082.038L44.92 25.162a2.993 2.993 0 01-3.963-1.502 3.006 3.006 0 011.417-3.934l.082-.038L84.46.694z\"}}),_c('path',{attrs:{\"fill\":\"#0AABC7\",\"d\":\"M85.69.428a3.001 3.001 0 012.999 2.912l.001.088v61a3 3 0 01-5.999.088l-.001-.088v-61a3 3 0 013-3z\"}}),_c('path',{attrs:{\"fill\":\"#A4D0B9\",\"d\":\"M40.956 44.196a2.992 2.992 0 013.88-1.537l.083.035 42.006 18.994a3.006 3.006 0 011.5 3.972 2.995 2.995 0 01-3.882 1.537l-.082-.035-42.006-18.994a3.006 3.006 0 01-1.5-3.972z\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M23.72 37.428c1.64 0 2.97 1.343 2.97 3 0 1.627-1.283 2.952-2.882 2.999l-.088.001H10.66c-1.64 0-2.97-1.343-2.97-3 0-1.627 1.283-2.952 2.882-2.999l.088-.001h13.06z\"}}),_c('path',{attrs:{\"fill\":\"#0AABC7\",\"d\":\"M23.72 25.428c1.64 0 2.97 1.343 2.97 3 0 1.627-1.283 2.952-2.882 2.999l-.088.001H10.66c-1.64 0-2.97-1.343-2.97-3 0-1.627 1.283-2.952 2.882-2.999l.088-.001h13.06z\"}}),_c('path',{attrs:{\"fill\":\"#6882A6\",\"d\":\"M10.69 25.428a2.999 2.999 0 012.999 2.908l.001.089v12.006a2.999 2.999 0 01-3 2.997 2.999 2.999 0 01-2.999-2.908l-.001-.089V28.425a2.999 2.999 0 013-2.997zm27 19c1.627 0 2.952 1.309 2.999 2.942l.001.089v21.938c0 1.674-1.343 3.031-3 3.031-1.627 0-2.952-1.309-2.999-2.942l-.001-.088V47.459c0-1.674 1.343-3.031 3-3.031z\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M26.86 65.42c.532-1.532 2.149-2.344 3.643-1.846l.083.03 8.168 2.999c1.516.557 2.307 2.273 1.766 3.833-.532 1.532-2.149 2.344-3.643 1.846l-.083-.03-8.168-2.999c-1.516-.557-2.307-2.273-1.766-3.833z\"}}),_c('path',{attrs:{\"fill\":\"#A4D0B9\",\"d\":\"M24.69 19.428a3 3 0 012.999 2.91l.001.09v23a3 3 0 01-5.999.09l-.001-.09v-23a3 3 0 013-3z\"}}),_c('path',{attrs:{\"fill\":\"#EC6D5A\",\"d\":\"M43.724 19.428c1.638 0 2.966 1.343 2.966 3 0 1.627-1.281 2.952-2.879 2.999l-.087.001H24.656c-1.638 0-2.966-1.343-2.966-3 0-1.627 1.281-2.952 2.879-2.999l.087-.001h19.068zm-15.034 25a2.998 2.998 0 012.999 2.906l.001.088v19.012a2.997 2.997 0 01-3 2.994 2.998 2.998 0 01-2.999-2.906l-.001-.088V47.422a2.997 2.997 0 013-2.994z\"}}),_c('path',{attrs:{\"fill\":\"#0AABC7\",\"d\":\"M43.713 42.428c1.644 0 2.977 1.343 2.977 3a2.99 2.99 0 01-2.89 2.999l-.087.001H24.667c-1.644 0-2.977-1.343-2.977-3a2.99 2.99 0 012.89-2.999l.087-.001h19.046z\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M43.69 19.428a3 3 0 012.999 2.91l.001.09v23a3 3 0 01-5.999.09l-.001-.09v-23a3 3 0 013-3z\"}}),_c('path',{attrs:{\"fill\":\"#EC6D5A\",\"d\":\"M99.544 49.283a2.92 2.92 0 014.06-.066l.068.066 10.163 10.161a2.92 2.92 0 01-4.059 4.195l-.068-.066-10.163-10.161a2.92 2.92 0 010-4.129z\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M123.657 31.428c1.675 0 3.033 1.343 3.033 3 0 1.627-1.31 2.952-2.944 2.999l-.09.001h-14.933c-1.675 0-3.033-1.343-3.033-3 0-1.627 1.31-2.952 2.944-2.999l.09-.001h14.933z\"}}),_c('path',{attrs:{\"fill\":\"#6882A6\",\"d\":\"M110.707 4.283a2.919 2.919 0 014.194 4.06l-.066.068-10.162 10.162a2.919 2.919 0 01-4.194-4.06l.066-.068 10.162-10.162z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconError.vue?vue&type=template&id=0d47cf40&\"\nvar script = {}\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\nexport default component.exports","import ButtonCheckbox from '@/components/form/buttonCheckbox/buttonCheckbox.vue';\nimport Checkbox from '@/components/form/checkbox/checkbox.vue';\nimport Toggle from '@/components/form/toggle/toggle.vue';\nimport IconActionCheckCircleFull from '@/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue';\nimport Page from '@/components/page/page.vue';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport ReferenceNumberSection from '@/components/ui/referenceNumberSection/referenceNumberSection.vue';\nimport TabbedContent from '@/components/ui/tabbedContent/tabbedContent.vue';\nimport TelephoneContactInfo from '@/components/ui/telephoneContactInfo/telephoneContactInfo.vue';\nimport { ApiState } from '@/models/apiState';\nimport { ReceiveResultViewModel } from '@/models/receiveResultViewModel';\nimport Validation from '@/models/validation';\nimport Vue from 'vue';\nimport ErrorPage from '@/pages/errorPage/errorPage.vue';\nimport AppointmentDesktop from './appointmentDesktop/appointmentDesktop.vue';\nimport AppointmentInputs from './appointmentInputs/appointmentInputs.vue';\nimport { PageScroll, Tracker } from '@/models/tracker';\n\nenum AppointmentStep {\n Consent,\n Call,\n}\n\nenum AppointmentTab {\n Appointment = 'makeAppointment.appointmentTab',\n Telephone = 'makeAppointment.callTab',\n}\n\nconst MakeAnAppointment = Vue.extend({\n name: 'MakeAnAppointment',\n components: {\n Page,\n ErrorPage,\n Toggle,\n Checkbox,\n Drawer,\n TabbedContent,\n ButtonCheckbox,\n TelephoneContactInfo,\n AppointmentInputs,\n ReferenceNumberSection,\n IconActionCheckCircleFull,\n AppointmentDesktop,\n },\n\n props: {\n saveResult: {\n type: (Function as unknown) as () => (\n vm: ReceiveResultViewModel\n ) => Promise,\n required: true,\n },\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n resubmitReferenceNumber: {\n type: (Function as never) as () => () => Promise,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n async created() {\n await this.$recaptchaLoaded();\n this.$recaptchaInstance.showBadge();\n },\n mounted() {\n document.addEventListener('scroll', this.trackScroll);\n this.tracker.scroll(PageScroll.zero);\n },\n beforeDestroy() {\n this.$recaptchaInstance.hideBadge();\n },\n data() {\n const shareModel = new ReceiveResultViewModel();\n shareModel.firstName = this.apiState.firstName;\n shareModel.lastName = this.apiState.lastName;\n\n const appointmentViewModel = new ReceiveResultViewModel();\n appointmentViewModel.firstName = this.apiState.firstName;\n appointmentViewModel.lastName = this.apiState.lastName;\n\n return {\n maxPageScrolled: PageScroll.zero,\n currentStep:\n this.apiState.referenceNumber == null\n ? AppointmentStep.Consent\n : AppointmentStep.Call,\n initiallyHadReferenceNumber: this.apiState.referenceNumber != null,\n initiallyHadAppointment: this.apiState.hasMadeAppointment,\n openTab: this.apiState.hasMadeAppointment\n ? this.$t(AppointmentTab.Telephone).toString()\n : this.$t(AppointmentTab.Appointment).toString(),\n shareModel,\n appointmentViewModel,\n Validation,\n AppointmentStep,\n AppointmentTab,\n isSending: false,\n };\n },\n methods: {\n trackScroll() {\n const pageScroll = this.tracker.getCurrentPageScroll();\n if (pageScroll > this.maxPageScrolled) {\n this.tracker.scroll(pageScroll);\n this.maxPageScrolled = pageScroll;\n }\n },\n showErrorModal(event: Event) {\n (this.$refs.errorModal as any).show(event);\n },\n hideErrorModal() {\n (this.$refs.errorModal as any).hide();\n },\n async consentNext(event: Event): Promise {\n if (!this.shareModel.canShare() || this.isSending) {\n return;\n }\n\n if (this.shareModel.saveResult) {\n this.isSending = true;\n\n try {\n await this.saveResult(this.shareModel);\n\n this.tracker.event('transmettre_resultat');\n\n if (this.shareModel.emailResult) {\n this.tracker.event('resultat_envoye');\n }\n\n this.apiState.firstName = this.shareModel.firstName;\n this.apiState.lastName = this.shareModel.lastName;\n this.appointmentViewModel.firstName = this.shareModel.firstName;\n this.appointmentViewModel.lastName = this.shareModel.lastName;\n } catch (error) {\n if (error === 'Captcha invalide') {\n this.$router.push({ name: 'error' });\n } else {\n this.showErrorModal(event);\n }\n } finally {\n this.isSending = false;\n }\n }\n\n this.currentStep = AppointmentStep.Call;\n },\n async appointmentNext(event: Event): Promise {\n if (this.isSending) {\n return;\n }\n\n this.isSending = true;\n this.appointmentViewModel.referenceNumber = this.apiState.referenceNumber;\n this.appointmentViewModel.scheduleAppointment = true;\n this.appointmentViewModel.province = this.tracker.provinceRaw;\n\n try {\n await this.saveResult(this.appointmentViewModel);\n\n this.tracker.event('soumettre_rendez_vous');\n\n this.apiState.firstName = this.appointmentViewModel.firstName;\n this.apiState.lastName = this.appointmentViewModel.lastName;\n this.initiallyHadAppointment = true;\n } catch (error) {\n if (error === 'Captcha invalide') {\n this.$router.push({ name: 'error' });\n } else {\n this.showErrorModal(event);\n }\n } finally {\n this.isSending = false;\n }\n },\n trackCall() {\n this.tracker.event('appel');\n },\n },\n computed: {\n canConsent(): boolean {\n return this.apiState.referenceNumber == null;\n },\n displayBackToConsentButton(): boolean {\n return this.currentStep === AppointmentStep.Call && this.canConsent;\n },\n },\n watch: {\n 'shareModel.emailResult'() {\n if (this.shareModel.emailResult) {\n this.tracker.event('recevoir_mes_resultats');\n }\n },\n 'shareModel.firstName'() {\n this.appointmentViewModel.firstName = this.shareModel.firstName;\n },\n 'appointmentViewModel.firstName'() {\n this.shareModel.firstName = this.appointmentViewModel.firstName;\n },\n 'shareModel.lastName'() {\n this.appointmentViewModel.lastName = this.shareModel.lastName;\n },\n 'appointmentViewModel.lastName'() {\n this.shareModel.lastName = this.appointmentViewModel.lastName;\n }\n },\n});\n\nexport default MakeAnAppointment;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./errorPage.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./errorPage.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./errorPage.vue?vue&type=template&id=56a1cba4&scoped=true&\"\nimport script from \"./errorPage.ts?vue&type=script&lang=ts&\"\nexport * from \"./errorPage.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./errorPage.scss?vue&type=style&index=0&id=56a1cba4&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 \"56a1cba4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"marine\",\"hasFloatingLogo\":\"\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){\nvar _obj;\nreturn [_c('router-link',{staticClass:\"financial-marketing__button button\",class:( _obj = {}, _obj[(\"button--\" + (_vm.financialInfos.sectionThemeColor))] = true, _obj ),attrs:{\"to\":_vm.nextLocation}},[_vm._v(\" \"+_vm._s(_vm.nextLocation.name == 'pinpointResult' ? _vm.$t('financialMarketing.nextButton') : _vm.$t('financialMarketing.goToResult'))+\" \")])]},proxy:true}])},[_c('section',{staticClass:\"financial-marketing\"},[_c('header',{staticClass:\"financial-marketing__header\"},[_c('Badge',{staticClass:\"financial-marketing__badge\"},[_c('IconHighArrow'),_c('span',[_vm._v(_vm._s(_vm.$t('financialMarketing.includedWithPlan')))])],1),_c('h1',{staticClass:\"financial-marketing__title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('financialMarketing.title'))+\" \")]),_c('p',{staticClass:\"financial-marketing__text text\"},[_vm._v(\" \"+_vm._s(_vm.$t('financialMarketing.text'))+\" \")])],1),_c('div',{staticClass:\"financial-marketing__body\"},[_c('MarketingList',{staticClass:\"financial-marketing__list\",attrs:{\"items\":_vm.financialInfos.marketingListItems,\"toggleable\":false}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import IconHighArrow from '@/components/icons/iconHighArrow/iconHighArrow.vue';\nimport Page from '@/components/page/page.vue';\nimport Badge from '@/components/ui/badge/badge.vue';\nimport MarketingList from '@/components/ui/marketingList/marketingList.vue';\nimport { CalculatorViewModel } from '@/models/calculatorState';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\nimport { RawLocation } from 'vue-router';\n\nconst FinancialMarketing = Vue.extend({\n name: 'FinancialMarketing',\n props: {\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Badge,\n MarketingList,\n Page,\n IconHighArrow,\n },\n computed: {\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n financialInfos(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n nextLocation(): RawLocation {\n if (typeof this.$route.query.completionLocationName === 'string') {\n return {\n name: this.$route.query.completionLocationName,\n };\n }\n\n return this.educationInfos.isComplete\n ? { name: 'results' }\n : { name: 'pinpointResult' };\n },\n },\n});\n\nexport default FinancialMarketing;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./financialMarketing.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./financialMarketing.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./financialMarketing.vue?vue&type=template&id=26bd3399&scoped=true&\"\nimport script from \"./financialMarketing.ts?vue&type=script&lang=ts&\"\nexport * from \"./financialMarketing.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./financialMarketing.scss?vue&type=style&index=0&id=26bd3399&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 \"26bd3399\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"marine\",\"hasFloatingLogo\":\"\",\"tracker\":_vm.tracker}},[_c('div',{staticClass:\"financial-situation__container\"},[_c('Wizard',{attrs:{\"currentStep\":1,\"maxStep\":1}},[_c('QuestionCard',{attrs:{\"sectionName\":_vm.$t('financialSituation.step1.sectionName'),\"title\":_vm.$t('financialSituation.step1.sectionTitle'),\"currentStep\":1,\"questionStep\":1,\"maxStep\":1,\"section\":_vm.calculatorViewModel.financialInfos,\"showReturnOnFirstStep\":\"\"},on:{\"next\":_vm.onNextStep,\"back\":_vm.onBack}},[_c('div',{staticClass:\"financial-situation__input-with-icon-container\"},[_c('Input',{staticClass:\"financial-situation__input-with-icon\",attrs:{\"min\":\"0\",\"maxlength\":\"8\",\"type\":\"number\",\"append\":\"$\"},model:{value:(_vm.calculatorViewModel.financialInfos.familyIncome),callback:function ($$v) {_vm.$set(_vm.calculatorViewModel.financialInfos, \"familyIncome\", $$v)},expression:\"calculatorViewModel.financialInfos.familyIncome\"}}),_c('button',{staticClass:\"financial-situation__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step1Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"financial-situation__drawer-help-icon\"})],1)],1)])],1)],1),_c('Drawer',{ref:\"step1Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('financialSituation.step1.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('financialSituation.step1.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('financialSituation.step1.moduleParagraph2'))}}),_c('p',[_c('i18n',{attrs:{\"path\":\"financialSituation.step1.moduleParagraph3\"}},[_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('financialSituation.step1.tooltip')))]),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.$t('financialSituation.step1.link')}},[_vm._v(_vm._s(_vm.$t('financialSituation.step1.linkLabel')))])]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.$t('financialSituation.step1.word'))+\" \")])],1)],1),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('financialSituation.step1.moduleParagraph4'))}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Input from '@/components/form/input/input.vue';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport Page from '@/components/page/page.vue';\nimport QuestionCard from '@/components/questionCard/questionCard.vue';\nimport Wizard from '@/components/wizard/wizard.vue';\nimport TextTooltip from '@/components/ui/textTooltip/textTooltip.vue';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport {\n FinancialInformationState,\n FinancialInformationViewModel,\n} from '@/models/financialInformation';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\n\nconst FinancialSituation = Vue.extend({\n name: 'FinancialSituation',\n components: {\n Input,\n QuestionCard,\n Page,\n Wizard,\n IconActionQuestionCircle,\n TextTooltip,\n },\n data() {\n return {\n currentStep: 1,\n };\n },\n props: {\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n calculatorState: {\n type: Object as () => CalculatorState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n beforeRouteLeave(_, __, next) {\n next();\n\n if (this.calculatorState.financialInfos != null) {\n this.calculatorViewModel.financialInfos = this.calculatorState.financialInfos.asViewModel();\n } else {\n this.calculatorViewModel.financialInfos = new FinancialInformationViewModel();\n }\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n },\n methods: {\n setState(): void {\n this.calculatorState.financialInfos = FinancialInformationState.fromViewModel(\n this.calculatorViewModel.financialInfos\n );\n },\n onBack(): void {\n if (\n this.calculatorViewModel.financialInfos.isComplete &&\n this.calculatorState.financialInfos != null &&\n this.currentStep === 1\n ) {\n this.setState();\n }\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n this.$router.back();\n },\n onNextStep(): void {\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n this.tracker.event('completer_situation_financiere');\n this.setState();\n this.$router.push({\n name: 'financialMarketing',\n query: this.$route.query,\n });\n },\n showDrawer(drawerName: string, event: Event): void {\n this.tracker.event('module_aide');\n (this.$refs[drawerName] as any).show(event);\n },\n },\n});\n\nexport default FinancialSituation;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./financialSituation.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./financialSituation.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./financialSituation.vue?vue&type=template&id=8b184a9a&scoped=true&\"\nimport script from \"./financialSituation.ts?vue&type=script&lang=ts&\"\nexport * from \"./financialSituation.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./financialSituation.vue?vue&type=style&index=0&id=8b184a9a&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 \"8b184a9a\",\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"bleu\",\"backgroundColor\":\"white\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){return [_c('button',{staticClass:\"optimization__return-button button button--primary\",attrs:{\"type\":\"button\",\"role\":\"link\"},on:{\"click\":_vm.onSaveOptimizations}},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.returnButton'))+\" \")])]},proxy:true}])},[_c('section',{staticClass:\"optimization\"},[_c('header',{staticClass:\"optimization__header\"},[_c('Banner',{ref:\"optimizationResetBanner\",attrs:{\"text\":_vm.$t('results.optimization.banner.textMobile'),\"subtext\":\"\",\"textDesktop\":_vm.$t('results.optimization.banner.text'),\"subtextDesktop\":_vm.$t('results.optimization.banner.subtext')}}),_c('div',{staticClass:\"optimization__header-content\"},[_c('h1',{staticClass:\"optimization__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.title'))+\" \")]),_c('h2',{staticClass:\"optimization__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.subtitle'))+\" \")])])],1),_c('div',{staticClass:\"optimization__content-wrapper\"},[_c('div',{staticClass:\"optimization__content\"},[_c('div',{staticClass:\"optimization__toggle-wrapper optimization__toggle-wrapper--vertical\"},[_c('Toggle',{attrs:{\"label\":_vm.$t('optimization.grants.label'),\"toggleStyle\":\"vert\",\"disabled\":_vm.isLoading},model:{value:(_vm.optimizationState.grantsOptimized),callback:function ($$v) {_vm.$set(_vm.optimizationState, \"grantsOptimized\", $$v)},expression:\"optimizationState.grantsOptimized\"}}),(!_vm.financialInformation.isComplete)?_c('i18n',{staticClass:\"optimization__pinpoint-text text\",attrs:{\"path\":\"optimization.pinpointFinancialSituation.label\",\"tag\":\"p\"}},[_c('button',{staticClass:\"button button--no-style optimization__pinpoint-link\",attrs:{\"role\":\"link\",\"type\":\"button\"},on:{\"click\":_vm.onOptimizeFinancialSituation}},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.pinpointFinancialSituation.link'))+\" \")])]):_vm._e()],1),_c('div',{staticClass:\"optimization__toggle-wrapper optimization__toggle-wrapper--horizontal\"},[_c('Toggle',{attrs:{\"label\":_vm.$t('optimization.educationProject.label'),\"toggleStyle\":\"vert\",\"disabled\":_vm.isLoading || !_vm.educationInformation.isComplete},model:{value:(_vm.optimizationState.educationProjectOptimized),callback:function ($$v) {_vm.$set(_vm.optimizationState, \"educationProjectOptimized\", $$v)},expression:\"optimizationState.educationProjectOptimized\"}}),(!_vm.educationInformation.isComplete)?_c('button',{staticClass:\"optimization__complete-education-project button button--small\",class:( _obj = {}, _obj[(\"button--\" + (_vm.educationInformation.sectionThemeColor))] = true, _obj ),attrs:{\"type\":\"button\",\"role\":\"link\"},on:{\"click\":_vm.onCompleteEducationInformation}},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.educationProject.complete'))+\" \")]):_vm._e()],1)])]),_c('OptimizationTable',{staticClass:\"optimization__table-section\",attrs:{\"optimizationState\":_vm.optimizationState,\"vertical\":\"\",\"isLoading\":_vm.isLoading}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.displayTable)?_c('section',{staticClass:\"optimization-table\",class:{ 'optimization-table--vertical': _vm.vertical }},[_c('header',{staticClass:\"optimization-table__header\"},[_c('h3',{staticClass:\"optimization-table__title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.table.title'))+\" \")]),_c('p',{staticClass:\"optimization-table__subtitle text\"},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.table.subtitle'))+\" \")])]),_c('div',{staticClass:\"optimization-table__table-wrapper\"},[_c('div',{staticClass:\"optimization-table__header-background\"}),_c('table',{staticClass:\"optimization-table__table\"},[_c('thead',[_c('tr',_vm._l((_vm.headerItems),function(item){return _c('th',{key:item},[_vm._v(_vm._s(item))])}),0)]),_c('tbody',_vm._l((_vm.rows),function(row,index){return _c('tr',{key:index},[_vm._l((row.columns),function(column,index){return _c('td',{key:column.value + index,staticClass:\"optimization-table__column\",class:{\n 'optimization-table__column--bold': column.bold,\n 'optimization-table__column--strike-through':\n column.strikeThrough,\n 'optimization-table__column--accent': column.accent,\n }},[_vm._v(\" \"+_vm._s(!column.isStatic && _vm.isLoading ? '' : column.value)+\" \")])}),_c('td',{staticClass:\"optimization-table__ghost-cell\"})],2)}),0)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { OptimizationState } from '@/models/optimizationState';\nimport { Projection } from '@/models/plan';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport Vue from 'vue';\n\ninterface TableRowItem {\n value: string;\n accent?: boolean;\n bold?: boolean;\n strikeThrough?: boolean;\n isStatic?: boolean;\n}\n\ninterface TableRow {\n columns: TableRowItem[];\n}\n\nconst OptimizationTable = Vue.extend({\n name: 'OptimizationTable',\n props: {\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n vertical: {\n type: Boolean,\n default: false,\n },\n isLoading: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n NumberFormatter,\n };\n },\n methods: {\n getFormattedMonthlyContributions(projection: Projection): string {\n return this.$t('optimization.table.monthlyContributions', {\n amount: NumberFormatter.formatCurrency(\n projection.monthlyDirectContributions\n ),\n }).toString();\n },\n },\n computed: {\n baseProjection(): Projection | undefined {\n return this.optimizationState.baseProjections[1];\n },\n grantsOptimizedProjection(): Projection | undefined {\n return this.optimizationState.grantsOptimizedProjections[1];\n },\n educationProjectProjection(): Projection | undefined {\n return this.optimizationState.educationProjectProjections[1];\n },\n displayedProjection(): Projection | undefined {\n return this.optimizationState.displayedProjections[1];\n },\n displayTable(): boolean {\n return (\n this.optimizationState.grantsOptimized ||\n this.optimizationState.educationProjectOptimized\n );\n },\n baseProjectionContributions(): string {\n if (!this.baseProjection) {\n return '';\n }\n\n return this.getFormattedMonthlyContributions(this.baseProjection);\n },\n grantsOptimizedProjectionContributions(): string {\n if (!this.grantsOptimizedProjection) {\n return '';\n }\n\n return this.getFormattedMonthlyContributions(\n this.grantsOptimizedProjection\n );\n },\n educationProjectProjectionContributions(): string {\n if (!this.educationProjectProjection) {\n return '';\n }\n\n return this.getFormattedMonthlyContributions(\n this.educationProjectProjection\n );\n },\n headerItems(): string[] {\n if (this.vertical) {\n return [\n this.$t('optimization.table.optimizations').toString(),\n this.$t('optimization.table.monthlyContributionsLabel').toString(),\n ];\n }\n\n const items = [\n '',\n this.$t('optimization.table.baseProjectionContributions').toString(),\n ];\n\n if (this.optimizationState.grantsOptimized) {\n items.push(\n this.$t('optimization.table.grantsOptimizedContributions').toString()\n );\n }\n\n if (this.optimizationState.educationProjectOptimized) {\n items.push(\n this.$t(\n 'optimization.table.educationProjectOptimizedContributions'\n ).toString()\n );\n }\n\n return items;\n },\n verticalRows(): TableRow[] {\n const rows: TableRow[] = [\n {\n columns: [\n {\n value: this.$t(\n 'optimization.table.baseProjectionContributions'\n ).toString(),\n bold: true,\n isStatic: true,\n },\n {\n value: this.baseProjectionContributions,\n strikeThrough: true,\n },\n ],\n },\n ];\n\n if (this.optimizationState.grantsOptimized) {\n rows.push({\n columns: [\n {\n value: this.$t(\n 'optimization.table.grantsOptimizedContributions'\n ).toString(),\n bold: true,\n isStatic: true,\n },\n {\n value: this.grantsOptimizedProjectionContributions,\n accent: true,\n },\n ],\n });\n }\n\n if (this.optimizationState.educationProjectOptimized) {\n rows.push({\n columns: [\n {\n value: this.$t(\n 'optimization.table.educationProjectOptimizedContributions'\n ).toString(),\n bold: true,\n isStatic: true,\n },\n {\n value: this.educationProjectProjectionContributions,\n accent: true,\n },\n ],\n });\n }\n\n return rows;\n },\n rows(): TableRow[] {\n if (this.vertical) {\n return this.verticalRows;\n }\n\n const firstRow: TableRow = {\n columns: [\n {\n value: this.$t(\n 'optimization.table.monthlyContributionsLabel'\n ).toString(),\n bold: true,\n isStatic: true,\n },\n {\n value: this.baseProjectionContributions,\n strikeThrough: true,\n },\n ],\n };\n\n if (this.optimizationState.grantsOptimized) {\n firstRow.columns.push({\n value: this.grantsOptimizedProjectionContributions,\n accent: true,\n });\n }\n\n if (this.optimizationState.educationProjectOptimized) {\n firstRow.columns.push({\n value: this.educationProjectProjectionContributions,\n accent: true,\n });\n }\n\n return [firstRow];\n },\n },\n});\n\nexport default OptimizationTable;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationTable.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationTable.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./optimizationTable.vue?vue&type=template&id=4d9909d5&scoped=true&\"\nimport script from \"./optimizationTable.ts?vue&type=script&lang=ts&\"\nexport * from \"./optimizationTable.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./optimizationTable.scss?vue&type=style&index=0&id=4d9909d5&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 \"4d9909d5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.hidden)?_c('div',{ref:\"banner\",staticClass:\"banner\"},[_c('div',{staticClass:\"banner__content\"},[_c('IconActionInformation',{staticClass:\"banner__icon\"}),_c('div',{staticClass:\"banner__texts\"},[_c('p',{staticClass:\"banner__text\",class:{ 'banner__text--mobile': !!_vm.textDesktop }},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]),(_vm.textDesktop)?_c('p',{staticClass:\"banner__text banner__text--desktop\"},[_vm._v(\" \"+_vm._s(_vm.textDesktop)+\" \")]):_vm._e(),(_vm.subtext)?_c('p',{staticClass:\"banner__subtext\",class:{ 'banner__subtext--mobile': !!_vm.subtextDesktop }},[_vm._v(\" \"+_vm._s(_vm.subtext)+\" \")]):_vm._e(),(_vm.subtextDesktop)?_c('p',{staticClass:\"banner__subtext banner__subtext--desktop\"},[_vm._v(\" \"+_vm._s(_vm.subtextDesktop)+\" \")]):_vm._e()]),_c('button',{staticClass:\"banner__button\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.hide}},[_c('IconClose')],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"32\",\"height\":\"31\",\"viewBox\":\"0 0 32 31\",\"focusable\":\"false\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M16 2.507c7.364 0 13.334 5.611 13.334 12.533 0 6.822-5.798 12.37-13.014 12.53l-.32.004H4c-.539 0-1.025-.306-1.231-.774-.188-.426-.11-.91.191-1.264l.098-.102 2.618-2.461c-3.26-3.75-3.93-8.927-1.723-13.302S10.85 2.507 16 2.507zm0 11.28c-.736 0-1.333.561-1.333 1.253v5.014c0 .692.597 1.253 1.333 1.253.737 0 1.334-.561 1.334-1.253V15.04c0-.692-.597-1.253-1.334-1.253zm0-5.013c-.736 0-1.333.56-1.333 1.253 0 .692.597 1.253 1.333 1.253.737 0 1.334-.56 1.334-1.253 0-.692-.597-1.253-1.334-1.253z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconActionInformation.vue?vue&type=template&id=4c5c55d0&\"\nvar script = {}\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\nexport default component.exports","import IconActionInformation from '@/components/icons/iconActionInformation/iconActionInformation.vue';\nimport IconClose from '@/components/icons/iconClose/iconClose.vue';\nimport Vue from 'vue';\n\nconst Banner = Vue.extend({\n name: 'Banner',\n props: {\n text: {\n type: String,\n required: true,\n },\n subtext: {\n type: String,\n },\n textDesktop: {\n type: String,\n },\n subtextDesktop: {\n type: String,\n },\n },\n components: {\n IconActionInformation,\n IconClose,\n },\n data() {\n return {\n hidden: true,\n };\n },\n methods: {\n show() {\n this.hidden = false;\n },\n hide() {\n this.hidden = true;\n },\n },\n});\n\nexport default Banner;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./banner.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./banner.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./banner.vue?vue&type=template&id=0c16db4e&scoped=true&\"\nimport script from \"./banner.ts?vue&type=script&lang=ts&\"\nexport * from \"./banner.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./banner.scss?vue&type=style&index=0&id=0c16db4e&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 \"0c16db4e\",\n null\n \n)\n\nexport default component.exports","import { CalculatorAPI } from '@/api/calculator';\nimport Toggle from '@/components/form/toggle/toggle.vue';\nimport OptimizationTable from '@/components/optimizationTable/optimizationTable.vue';\nimport Page from '@/components/page/page.vue';\nimport Banner from '@/components/ui/banner/banner.vue';\nimport { BasicInformationViewModel } from '@/models/basicInformation';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport { OptimizationState } from '@/models/optimizationState';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\n\nconst Optimization = Vue.extend({\n name: 'Optimization',\n props: {\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n calculatorAPI: {\n type: Object as () => CalculatorAPI,\n required: true,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n calculatorState: {\n type: Object as () => CalculatorState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Banner,\n OptimizationTable,\n Page,\n Toggle,\n },\n data() {\n return {\n isLoading: false,\n };\n },\n async mounted() {\n this.isLoading = true;\n\n if (this.optimizationState.needsReset(this.calculatorViewModel)) {\n this.showOptimizationResetBanner();\n this.optimizationState.resetOptimizations();\n }\n\n this.optimizationState.lastCalculatorViewModel = this.calculatorViewModel.clone();\n\n await this.calculatorAPI\n .getPlans(this.calculatorState)\n .then(plans => {\n this.optimizationState.setProjections(plans);\n })\n .catch(() => {\n this.$router.push({ name: 'error' });\n })\n .finally(() => {\n this.isLoading = false;\n });\n },\n computed: {\n basicInformation(): BasicInformationViewModel {\n return this.calculatorViewModel.basicInfos;\n },\n educationInformation(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n financialInformation(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n },\n methods: {\n showOptimizationResetBanner() {\n (this.$refs.optimizationResetBanner as any).show();\n },\n hideOptimizationResetBanner() {\n (this.$refs.optimizationResetBanner as any).hide();\n },\n trackSaveOptimizations() {\n this.tracker.event('enregistrer_optimisations');\n },\n onOptimizeFinancialSituation() {\n this.tracker.event('optimisation_situation_financiere');\n this.$router.push(\n this.financialInformation.sectionFormLocation('optimization')\n );\n },\n onSaveOptimizations() {\n this.tracker.event('enregistrer_optimisations');\n this.$router.push({ name: 'results' });\n },\n onCompleteEducationInformation() {\n this.tracker.event(this.educationInformation.startSectionEventName);\n this.$router.push(\n this.educationInformation.sectionFormLocation('optimization')\n );\n },\n },\n watch: {\n ['optimizationState.isOptimized']() {\n if (this.optimizationState.isOptimized) {\n this.hideOptimizationResetBanner();\n }\n\n this.tracker.updateDimensions({\n optimizationState: this.optimizationState,\n });\n },\n ['optimizationState.grantsOptimized']() {\n if (this.optimizationState.grantsOptimized) {\n this.tracker.event('optimiser_subventions');\n }\n },\n ['optimizationState.educationProjectOptimized']() {\n if (this.optimizationState.educationProjectOptimized) {\n this.tracker.event('optimiser_etude_envisagees');\n }\n },\n },\n});\n\nexport default Optimization;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimization.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimization.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./optimization.vue?vue&type=template&id=2b121baa&scoped=true&\"\nimport script from \"./optimization.ts?vue&type=script&lang=ts&\"\nexport * from \"./optimization.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./optimization.scss?vue&type=style&index=0&id=2b121baa&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 \"2b121baa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"bleu\",\"backgroundColor\":\"white\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){return [_c('div',{staticClass:\"make-appointment__footer\"},[_c('ReferenceNumberSection',{attrs:{\"apiState\":_vm.apiState,\"isFooter\":\"\",\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"make-appointment__footer-buttons\"},[(_vm.displayBackToConsentButton)?[_c('button',{staticClass:\"make-appointment__mobile-only-button make-appointment__footer-button button button--outline\",attrs:{\"disabled\":_vm.isSending},on:{\"click\":function($event){_vm.currentStep = _vm.AppointmentStep.Consent}}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.back'))+\" \")]),_c('router-link',{staticClass:\"make-appointment__desktop-only-button make-appointment__footer-button button button--outline\",attrs:{\"to\":{ name: 'results' },\"disabled\":_vm.isSending}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.back'))+\" \")])]:_c('router-link',{staticClass:\"make-appointment__footer-button button button--outline\",attrs:{\"to\":{ name: 'results' },\"disabled\":_vm.isSending}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.back'))+\" \")]),(!_vm.initiallyHadAppointment)?_c('button',{staticClass:\"make-appointment__footer-button make-appointment__mobile-only-button button button--primary\",attrs:{\"disabled\":_vm.isSending || !_vm.appointmentViewModel.canAppointment()},on:{\"click\":_vm.appointmentNext}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.submit'))+\" \")]):_vm._e(),(!_vm.initiallyHadAppointment)?_c('button',{staticClass:\"make-appointment__footer-button make-appointment__desktop-only-button button button--primary\",attrs:{\"disabled\":_vm.isSending || !_vm.appointmentViewModel.canAppointment()},on:{\"click\":_vm.appointmentNext}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.submit'))+\" \")]):_vm._e(),(\n _vm.currentStep === _vm.AppointmentStep.Call &&\n _vm.openTab === _vm.$t(_vm.AppointmentTab.Telephone)\n )?_c('a',{staticClass:\"make-appointment__footer-button button button--primary\",attrs:{\"href\":(\"tel:\" + (_vm.$t('telephoneContactInfo.tollFreeNumber')))},on:{\"click\":function($event){return _vm.trackCall()}}},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.call'))+\" \")]):_vm._e()],2)],1)]},proxy:true}])},[_c('div',{staticClass:\"make-appointment__header\"},[_c('div',{staticClass:\"make-appointment__header-content\"},[_c('div',[_c('h1',{staticClass:\"make-appointment__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.pageTitle'))+\" \")]),_c('p',{staticClass:\"make-appointment__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.twoOptions'))+\" \")])]),(\n _vm.currentStep === _vm.AppointmentStep.Call &&\n _vm.apiState.referenceNumber != null\n )?_c('div',{staticClass:\"make-appointment__reference-container make-appointment__mobile-only\"},[_c('ReferenceNumberSection',{attrs:{\"apiState\":_vm.apiState,\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"make-appointment__reference-note\"},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.referencePleaseNote'))+\" \")])],1):_vm._e()])]),_c('AppointmentDesktop',_vm._b({on:{\"submit\":function($event){_vm.appointmentViewModel.canAppointment()\n ? _vm.appointmentNext($event)\n : undefined}}},'AppointmentDesktop',{\n shareModel: _vm.shareModel,\n appointmentViewModel: _vm.appointmentViewModel,\n apiState: _vm.apiState,\n initiallyHadReferenceNumber: _vm.initiallyHadReferenceNumber,\n initiallyHadAppointment: _vm.initiallyHadAppointment,\n consentNext: _vm.consentNext,\n tracker: _vm.tracker,\n disabled: _vm.isSending,\n },false)),_c('Drawer',{ref:\"errorModal\",attrs:{\"isModal\":\"\",\"hideFooter\":\"\"}},[_c('ErrorPage',{attrs:{\"onClick\":_vm.hideErrorModal}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"button-checkbox\",class:{ 'button-checkbox--disabled': _vm.disabled }},[_c('input',{staticClass:\"button-checkbox__input\",attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event.target.checked)}}}),_c('div',{staticClass:\"button-checkbox__content\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\n\nconst ButtonCheckbox = Vue.extend({\n name: 'ButtonCheckbox',\n props: {\n value: {\n type: Boolean,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n});\n\nexport default ButtonCheckbox;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./buttonCheckbox.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./buttonCheckbox.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./buttonCheckbox.vue?vue&type=template&id=f2be3bae&scoped=true&\"\nimport script from \"./buttonCheckbox.ts?vue&type=script&lang=ts&\"\nexport * from \"./buttonCheckbox.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./buttonCheckbox.vue?vue&type=style&index=0&id=f2be3bae&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 \"f2be3bae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"checkbox\",class:{\n 'checkbox--disabled': _vm.disabled,\n 'checkbox--centered': _vm.centerLabel,\n }},[_c('input',{staticClass:\"checkbox__hidden-input\",attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event.target.checked)}}}),_c('div',{staticClass:\"checkbox__visible-wrapper\"},[_c('div',{staticClass:\"checkbox__visible-input\"},[_c('IconCheckmark',{staticClass:\"checkbox__checkmark\"})],1)]),(!!_vm.label)?_c('span',{staticClass:\"checkbox__label\",domProps:{\"innerHTML\":_vm._s(_vm.label)}}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"24\",\"height\":\"24\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M19.55 6.36a1.13 1.13 0 00-1.6 0l-8.38 8.4-3.52-3.54a1.15 1.15 0 10-1.6 1.65l4.32 4.33a1.13 1.13 0 001.6 0l9.18-9.18a1.12 1.12 0 000-1.66z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCheckmark.vue?vue&type=template&id=6953d5b5&\"\nvar script = {}\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\nexport default component.exports","import IconCheckmark from '@/components/icons/iconCheckmark/iconCheckmark.vue';\nimport Vue from 'vue';\n\nconst Checkbox = Vue.extend({\n name: 'Checkbox',\n props: {\n value: {\n type: Boolean,\n default: false,\n },\n label: {\n type: String,\n },\n centerLabel: {\n type: Boolean,\n default: false,\n },\n disabled: {\n type: Boolean,\n },\n },\n components: {\n IconCheckmark,\n },\n});\n\nexport default Checkbox;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./checkbox.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./checkbox.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./checkbox.vue?vue&type=template&id=1d529829&scoped=true&\"\nimport script from \"./checkbox.ts?vue&type=script&lang=ts&\"\nexport * from \"./checkbox.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./checkbox.scss?vue&type=style&index=0&id=1d529829&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 \"1d529829\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10C19.994 4.48 15.52.006 10 0z\",\"transform\":\"translate(2 2)\"}}),_c('path',{attrs:{\"fill\":\"#FFF\",\"d\":\"M15.207 7.613l-6.188 6.188c-.187.187-.441.293-.707.293-.265 0-.52-.106-.707-.293l-2.812-2.813c-.386-.39-.384-1.02.004-1.41.39-.388 1.019-.39 1.41-.004l2.105 2.106 5.481-5.48c.391-.387 1.02-.385 1.41.004.388.388.39 1.018.004 1.41z\",\"transform\":\"translate(2 2)\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconActionCheckCircleFull.vue?vue&type=template&id=c9b71a6e&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.apiState.referenceNumber != null)?_c(_vm.isFooter ? 'div' : 'Badge',{tag:\"component\",staticClass:\"reference-number-section\",class:{\n 'reference-number-section--badge': !_vm.isFooter,\n 'reference-number-section--footer': _vm.isFooter,\n 'reference-number-section--has-border': _vm.apiState.isOutdated,\n }},[_c('div',{staticClass:\"reference-number-section__number-line\"},[_c('div',{staticClass:\"reference-number-section__number\"},[(_vm.apiState.isOutdated)?_c('span',[_vm._v(_vm._s(_vm.$t('referenceNumberSection.invalidLabel')))]):_c('span',[_vm._v(_vm._s(_vm.$t('referenceNumberSection.label')))]),_c('span',[_vm._v(\"#\"+_vm._s(_vm.apiState.referenceNumber))])]),(_vm.apiState.isOutdated)?[_c('button',{staticClass:\"reference-number-section__resubmit button button--small button--orange-s-1\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resubmit}},[_vm._v(\" \"+_vm._s(_vm.$t('referenceNumberSection.resubmit'))+\" \")]),(_vm.isFooter)?_c('Tooltip',{staticClass:\"reference-number-section__tooltip\",scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"reference-number-section__tooltip-content\"},[_c('IconActionQuestionCircle'),_c('span',[_vm._v(_vm._s(_vm.$t('referenceNumberSection.helpTextLong')))])],1)]},proxy:true}],null,false,1621095973)},[_c('IconActionQuestionCircle')],1):_vm._e()]:_vm._e(),(_vm.apiState.recentlyResubmitted)?_c('div',{staticClass:\"reference-number-section__resent\"},[_c('IconActionCheckCircleFull',{staticClass:\"reference-number-section__resent-icon\"}),_vm._v(\" \"+_vm._s(_vm.$t('referenceNumberSection.resent'))+\" \")],1):_vm._e()],2),(!_vm.isFooter && _vm.apiState.isOutdated)?_c('p',{staticClass:\"reference-number-section__help-text\"},[_vm._v(\" \"+_vm._s(_vm.$t('referenceNumberSection.helpText'))+\" \")]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ArbitraryTooltip',{attrs:{\"buttonClass\":\"tooltip__button\"},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"tooltip__content\"},[_vm._t(\"content\")],2)]},proxy:true}],null,true)},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport ArbitraryTooltip from '@/components/ui/arbitraryTooltip/arbitraryTooltip.vue';\n\nconst Tooltip = Vue.extend({\n name: 'Tooltip',\n components: {\n ArbitraryTooltip,\n },\n});\n\nexport default Tooltip;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./tooltip.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./tooltip.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./tooltip.vue?vue&type=template&id=0fd0e714&scoped=true&\"\nimport script from \"./tooltip.ts?vue&type=script&lang=ts&\"\nexport * from \"./tooltip.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./tooltip.scss?vue&type=style&index=0&id=0fd0e714&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 \"0fd0e714\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Badge from '@/components/ui/badge/badge.vue';\nimport Tooltip from '@/components/ui/tooltip/tooltip.vue';\nimport { ApiState } from '@/models/apiState';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport IconActionCheckCircleFull from '@/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue';\n\nconst ReferenceNumberSection = Vue.extend({\n name: 'ReferenceNumberSection',\n props: {\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n isFooter: {\n type: Boolean,\n default: false,\n },\n resubmit: {\n type: (Function as never) as () => () => Promise,\n required: true,\n },\n },\n components: {\n Badge,\n IconActionQuestionCircle,\n IconActionCheckCircleFull,\n Tooltip,\n },\n});\n\nexport default ReferenceNumberSection;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./referenceNumberSection.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./referenceNumberSection.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./referenceNumberSection.vue?vue&type=template&id=f7f5a422&scoped=true&\"\nimport script from \"./referenceNumberSection.ts?vue&type=script&lang=ts&\"\nexport * from \"./referenceNumberSection.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./referenceNumberSection.scss?vue&type=style&index=0&id=f7f5a422&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 \"f7f5a422\",\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"tabbed-content\",class:( _obj = {}, _obj[(\"tabbed-content--\" + _vm.tabStyle)] = true, _obj )},[_c('header',{staticClass:\"tabbed-content__tab-list\"},_vm._l((_vm.tabs),function(tab,index){return _c('button',{key:tab + index,staticClass:\"tabbed-content__tab\",class:{\n 'tabbed-content__tab--active':\n _vm.currentTab == '' ? index === 0 : tab === _vm.currentTab,\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setTab(tab)}}},[_c('span',[_vm._v(_vm._s(tab))]),_c('div',{staticClass:\"tabbed-content__active-indicator\"}),(!!_vm.icons[index])?_c(_vm.icons[index],{tag:\"component\",staticClass:\"tabbed-content__icon\"}):_vm._e()],1)}),0),_c('div',{staticClass:\"tabbed-content__body\",class:_vm.bodyClass},[_vm._t(\"tab\",[_vm._v(_vm._s(_vm.currentTab))],{\"tab\":_vm.currentTab})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"viewBox\":\"0 0 24 27\"}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M0 0h24v26.13H0z\"}})]),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('mask',{attrs:{\"id\":\"b\",\"fill\":\"#fff\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\"}})]),_c('path',{attrs:{\"fill\":\"#A4D0B9\",\"d\":\"M23.966.996c.099.375-.023.767-.327 1.055-2.746 2.586-3.203 5.295-3.687 8.164-.383 2.274-.78 4.624-2.303 6.975-1.706 2.635-4 4.437-6.633 5.211-1.984.583-4.017.523-5.865-.152l.012.003a37.027 37.027 0 0 0-.557 3.015.982.982 0 0 1-.574.793.87.87 0 0 1-.922-.153 1.032 1.032 0 0 1-.326-.942c.172-1.224.403-2.437.691-3.635l-.02.089C1.769 20.341.589 18.465.17 16.202l-.053-.311A10.698 10.698 0 0 1 0 14.292c0-2.839 1.109-5.696 3.112-7.884C4.664 4.714 7.823 2.391 14.068.934 17.954.028 21.636-.18 22.95.143c.561.137.901.425 1.016.853\",\"mask\":\"url(#b)\"}}),_c('path',{attrs:{\"fill\":\"#74B291\",\"d\":\"M12.134 7.195a.93.93 0 0 1 .952.895.921.921 0 0 1-.251.66c-3.998 4.231-6.427 8.508-7.671 13.502 0 0-1.027-.396-1.5-.694a6.06 6.06 0 0 1-.212-.142v.002c1.345-5.152 3.9-9.554 8.036-13.934a.925.925 0 0 1 .646-.289\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconLeaf.vue?vue&type=template&id=a8ec71de&\"\nvar script = {}\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\nexport default component.exports","import IconLeaf from '@/components/icons/iconLeaf/iconLeaf.vue';\nimport Vue from 'vue';\n\nconst TabbedContent = Vue.extend({\n name: 'TabbedContent',\n props: {\n value: {\n type: String,\n },\n tabs: {\n type: Array as () => string[],\n required: true,\n },\n icons: {\n type: Array as () => string[],\n default: [],\n },\n bodyClass: {\n type: [String, Object],\n },\n tabStyle: {\n type: String as () => 'business' | 'party',\n default: 'party',\n },\n },\n components: {\n IconLeaf,\n },\n data() {\n return {\n currentTab: this.value,\n };\n },\n created() {\n this.currentTab = this.currentTab ?? this.tabs[0];\n },\n methods: {\n setTab(tab: string): void {\n this.currentTab = tab;\n this.$emit('input', tab);\n },\n },\n watch: {\n tabs() {\n if (this.currentTab === '') {\n this.currentTab = this.tabs[0];\n }\n },\n value() {\n this.currentTab = this.value;\n },\n },\n});\n\nexport default TabbedContent;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./tabbedContent.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./tabbedContent.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./tabbedContent.vue?vue&type=template&id=3a8ebd44&scoped=true&\"\nimport script from \"./tabbedContent.ts?vue&type=script&lang=ts&\"\nexport * from \"./tabbedContent.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./tabbedContent.scss?vue&type=style&index=0&id=3a8ebd44&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 \"3a8ebd44\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"appointment-desktop\"},[_c('div',{staticClass:\"appointment-desktop__subtitle appointment-desktop__split-subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.planACall'))+\" \")]),(_vm.initiallyHadAppointment)?_c('div',{staticClass:\"appointment-desktop__call-is-planned-section\"},[_c('h3',{staticClass:\"title\"},[_c('IconActionCheckCircleFull'),_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.callIsPlanned.title'))+\" \")],1),_c('p',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t('makeAppointment.callIsPlanned.text')))])]):[_c('p',{staticClass:\"appointment-desktop__split-body\"},[_vm._v(\" \"+_vm._s(_vm.$t('makeAppointment.desktopAppointmentBody'))+\" \")]),_c('AppointmentInputs',{attrs:{\"viewModel\":_vm.appointmentViewModel,\"apiState\":_vm.apiState,\"disabled\":_vm.disabled},on:{\"submit\":function($event){return _vm.$emit('submit')}}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"appointment-inputs__input-container\",on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('submit')}}},[_c('button',{staticClass:\"appointment-inputs__submit-button\",attrs:{\"type\":\"submit\",\"tabindex\":\"-1\",\"disabled\":_vm.disabled}}),_c('span',{staticClass:\"appointment-inputs__mandatory-label\"},[_c('i',[_vm._v(_vm._s(_vm.$t('makeAppointment.mandatoryLabels')))])]),_c('div',{staticClass:\"appointment-inputs__text-inputs\"},[_c('Input',{attrs:{\"required\":\"\",\"label\":_vm.$t('makeAppointment.firstNameLabel'),\"autocomplete\":\"given-name\",\"disabled\":_vm.disabled || !!_vm.apiState.firstName},model:{value:(_vm.viewModel.firstName),callback:function ($$v) {_vm.$set(_vm.viewModel, \"firstName\", $$v)},expression:\"viewModel.firstName\"}}),_c('Input',{attrs:{\"required\":\"\",\"label\":_vm.$t('makeAppointment.lastNameLabel'),\"autocomplete\":\"family-name\",\"disabled\":_vm.disabled || !!_vm.apiState.lastName},model:{value:(_vm.viewModel.lastName),callback:function ($$v) {_vm.$set(_vm.viewModel, \"lastName\", $$v)},expression:\"viewModel.lastName\"}}),_c('Input',{attrs:{\"label\":_vm.$t('receiveYourResult.telephoneLabel'),\"required\":\"\",\"autocomplete\":\"tel\",\"type\":\"tel\",\"validator\":_vm.Validation.telephone,\"mask\":_vm.Validation.telephoneMask,\"placeholder\":_vm.$t('input.telephonePlaceholder'),\"invalidLabel\":_vm.$t('input.invalidTelephoneNumber'),\"disabled\":_vm.disabled},model:{value:(_vm.viewModel.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.viewModel, \"telephoneNumber\", $$v)},expression:\"viewModel.telephoneNumber\"}}),_c('Input',{attrs:{\"label\":_vm.$t('makeAppointment.emailLabel'),\"validator\":_vm.Validation.email,\"type\":\"email\",\"autocomplete\":\"email\",\"placeholder\":_vm.$t('input.emailPlaceholder'),\"invalidLabel\":_vm.$t('input.invalidEmail'),\"required\":\"\",\"disabled\":_vm.disabled},model:{value:(_vm.viewModel.email),callback:function ($$v) {_vm.$set(_vm.viewModel, \"email\", $$v)},expression:\"viewModel.email\"}}),_c('Checkbox',{staticClass:\"appointment-checkbox-input\",attrs:{\"label\":_vm.$t('receiveYourResult.canMarket'),\"disabled\":_vm.disabled},model:{value:(_vm.viewModel.receiveMarketingEmails),callback:function ($$v) {_vm.$set(_vm.viewModel, \"receiveMarketingEmails\", $$v)},expression:\"viewModel.receiveMarketingEmails\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ButtonCheckbox from '@/components/form/buttonCheckbox/buttonCheckbox.vue';\nimport Checkbox from '@/components/form/checkbox/checkbox.vue';\nimport { ApiState } from '@/models/apiState';\nimport { ReceiveResultViewModel } from '@/models/receiveResultViewModel';\nimport Validation from '@/models/validation';\nimport Vue from 'vue';\n\nconst AppointmentInputs = Vue.extend({\n name: 'AppointmentInputs',\n components: {\n ButtonCheckbox,\n Checkbox\n },\n props: {\n viewModel: {\n type: Object as () => ReceiveResultViewModel,\n required: true,\n },\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return { Validation };\n },\n});\n\nexport default AppointmentInputs;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./appointmentInputs.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./appointmentInputs.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./appointmentInputs.vue?vue&type=template&id=2d36c07a&scoped=true&\"\nimport script from \"./appointmentInputs.ts?vue&type=script&lang=ts&\"\nexport * from \"./appointmentInputs.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./appointmentInputs.scss?vue&type=style&index=0&id=2d36c07a&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 \"2d36c07a\",\n null\n \n)\n\nexport default component.exports","import Checkbox from '@/components/form/checkbox/checkbox.vue';\nimport Toggle from '@/components/form/toggle/toggle.vue';\nimport IconActionCheckCircleFull from '@/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue';\nimport TelephoneContactInfo from '@/components/ui/telephoneContactInfo/telephoneContactInfo.vue';\nimport { ApiState } from '@/models/apiState';\nimport { ReceiveResultViewModel } from '@/models/receiveResultViewModel';\nimport { Tracker } from '@/models/tracker';\nimport Validation from '@/models/validation';\nimport Vue from 'vue';\nimport AppointmentInputs from '../appointmentInputs/appointmentInputs.vue';\n\nconst AppointmentDesktop = Vue.extend({\n name: 'AppointmentDesktop',\n components: {\n TelephoneContactInfo,\n Toggle,\n AppointmentInputs,\n Checkbox,\n IconActionCheckCircleFull,\n },\n props: {\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n shareModel: {\n type: Object as () => ReceiveResultViewModel,\n required: true,\n },\n appointmentViewModel: {\n type: Object as () => ReceiveResultViewModel,\n required: true,\n },\n initiallyHadReferenceNumber: {\n type: Boolean,\n required: true,\n },\n initiallyHadAppointment: {\n type: Boolean,\n required: true,\n },\n consentNext: {\n type: (Function as never) as () => (event: Event) => void,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n Validation,\n };\n },\n methods: {\n trackCall() {\n this.tracker.event('appel');\n },\n },\n});\n\nexport default AppointmentDesktop;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./appointmentDesktop.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./appointmentDesktop.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./appointmentDesktop.vue?vue&type=template&id=5b0bd9dc&scoped=true&\"\nimport script from \"./appointmentDesktop.ts?vue&type=script&lang=ts&\"\nexport * from \"./appointmentDesktop.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./appointmentDesktop.scss?vue&type=style&index=0&id=5b0bd9dc&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 \"5b0bd9dc\",\n null\n \n)\n\nexport default component.exports","import IconError from '@/components/icons/iconError/iconError.vue';\nimport Vue from 'vue';\n\nexport enum ErrorPageType {\n Error = 'errorPage',\n NotFound = 'notFoundPage',\n}\n\nconst ErrorPage = Vue.extend({\n name: 'ErrorPage',\n props: {\n pageType: {\n type: String as () => ErrorPageType,\n default: ErrorPageType.Error,\n },\n onClick: {\n type: (Function as never) as () => (event: Event) => void,\n },\n },\n components: {\n IconError,\n },\n computed: {\n title(): string {\n return this.$t(`${this.pageType}.title`).toString();\n },\n description(): string {\n return this.$t(`${this.pageType}.description`).toString();\n },\n buttonText(): string {\n return this.$t(`${this.pageType}.button`).toString();\n },\n isButtonLink(): boolean {\n return this.pageType === ErrorPageType.NotFound;\n },\n },\n methods: {\n onButtonClick(event: Event) {\n if (this.onClick) {\n this.onClick(event);\n return;\n }\n\n this.$router.back();\n },\n },\n});\n\nexport default ErrorPage;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./makeAnAppointment.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./makeAnAppointment.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./makeAnAppointment.vue?vue&type=template&id=5479db6b&scoped=true&\"\nimport script from \"./makeAnAppointment.ts?vue&type=script&lang=ts&\"\nexport * from \"./makeAnAppointment.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./makeAnAppointment.scss?vue&type=style&index=0&id=5479db6b&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 \"5479db6b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"bleu\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){return [_c('button',{staticClass:\"button button--primary\",attrs:{\"role\":\"link\",\"type\":\"button\"},on:{\"click\":_vm.onNext}},[_vm._v(\" \"+_vm._s(_vm.$t('pinpointResult.skipButton'))+\" \")])]},proxy:true}])},[_c('section',{staticClass:\"pinpoint-result\"},[_c('header',{staticClass:\"pinpoint-result__header\"},[_c('div',{staticClass:\"pinpoint-result__header-content\"},[_c('Badge',{staticClass:\"pinpoint-result__optional-tag\"},[_vm._v(\" \"+_vm._s(_vm.$t('pinpointResult.optionalTag'))+\" \")]),_c('h1',{staticClass:\"pinpoint-result__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('pinpointResult.title'))+\" \")]),_c('h2',{staticClass:\"pinpoint-result__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('pinpointResult.subtitle'))+\" \")])],1)]),_c('div',{staticClass:\"pinpoint-result__cards-section\"},[_c('div',{staticClass:\"pinpoint-result__cards-list\"},[_c('SectionOverview',{attrs:{\"section\":_vm.educationInfos,\"basicInfos\":_vm.calculatorViewModel.basicInfos,\"onClick\":function () { return _vm.trackSectionClick(_vm.educationInfos); },\"small\":\"\"}}),_c('SectionOverview',{attrs:{\"section\":_vm.financialInfos,\"basicInfos\":_vm.calculatorViewModel.basicInfos,\"onClick\":function () { return _vm.trackSectionClick(_vm.financialInfos); },\"small\":\"\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Card',{staticClass:\"section-overview\",class:{ 'section-overview--small': !!_vm.small },scopedSlots:_vm._u([{key:\"footer\",fn:function(){\nvar _obj;\nreturn [_c('div',{staticClass:\"section-overview__footer\"},[(!_vm.section.isComplete)?_c('div',{staticClass:\"section-overview__badge\"},[_c('IconClock'),_c('span',[_vm._v(_vm._s(_vm.$tc('sectionOverview.timeBadge', _vm.section.timeToFinish)))])],1):_c('div',{staticClass:\"section-overview__badge\"},[_c('IconComplete'),_c('span',[_vm._v(_vm._s(_vm.$t('sectionOverview.complete')))])],1),_c('button',{staticClass:\"section-overview__button button button--secondary button--small\",class:( _obj = {}, _obj[(\"button--\" + (_vm.section.sectionThemeColor))] = true, _obj ),attrs:{\"type\":\"button\",\"role\":\"link\",\"aria-label\":_vm.buttonAriaLabel},on:{\"click\":_vm.onLinkClick}},[_vm._v(\" \"+_vm._s(_vm.buttonLabel)+\" \")])])]},proxy:true}])},[_c('div',{staticClass:\"section-overview__body\"},[_c('h3',{staticClass:\"section-overview__title\"},[_vm._v(\" \"+_vm._s(_vm.$t(((_vm.section.sectionName) + \".overview.title\")))+\" \")]),(!_vm.section.isComplete && _vm.basicInfos != undefined)?_c('p',{staticClass:\"section-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.overviewText)+\" \")]):(!_vm.section.isComplete)?_c('p',{staticClass:\"section-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.$t(((_vm.section.sectionName) + \".overview.text\")))+\" \")]):_c('div',{staticClass:\"section-overview__field-grid\"},_vm._l((_vm.section.sectionOverviewFields),function(field){return _c('div',{key:field.label,staticClass:\"section-overview__field\"},[_c('span',{staticClass:\"section-overview__field-label\"},[_vm._v(\" \"+_vm._s(field.label)+\" \")]),_c('span',{staticClass:\"section-overview__field-value\"},[_vm._v(\" \"+_vm._s(field.value)+\" \")])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"24\",\"height\":\"24\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M12 2a10 10 0 100 20 10 10 0 000-20zm0 18a8 8 0 110-16 8 8 0 010 16zm0-14a1 1 0 00-1 1v3.27l-1.1-.64a1 1 0 00-1 1.74l2.6 1.5h.16c.1.06.22.1.34.13.12 0 .23-.03.34-.07h.08a.9.9 0 00.43-.38v-.06l.06-.18V7A1 1 0 0012 6z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconClock.vue?vue&type=template&id=f083ec6a&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 25 24\",\"width\":\"25\",\"height\":\"24\",\"fill\":\"#74B291\"}},[_c('path',{attrs:{\"d\":\"M12.1 2a10 10 0 100 20 10 10 0 000-20zm5.2 7.61l-6.18 6.2a1 1 0 01-1.41 0l-2.82-2.82a1 1 0 011.42-1.42l2.1 2.11L15.9 8.2a1 1 0 011.42 1.41z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconComplete.vue?vue&type=template&id=0637b7e8&\"\nvar script = {}\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\nexport default component.exports","import Vue from 'vue';\nimport IconClock from '@/components/icons/iconClock/iconClock.vue';\nimport IconComplete from '@/components/icons/iconComplete/iconComplete.vue';\nimport Card from '@/components/ui/card/card.vue';\nimport { Section } from '@/models/calculatorState';\nimport { BasicInformationState } from '@/models/basicInformation';\nimport { Tracker } from '@/models/tracker';\n\nconst SectionOverview = Vue.extend({\n name: 'SectionOverview',\n components: {\n Card,\n IconClock,\n IconComplete,\n },\n props: {\n section: {\n type: Object as () => Section,\n required: true,\n },\n completionLocationName: {\n type: String,\n },\n small: {\n type: Boolean,\n },\n basicInfos: {\n type: Object as () => BasicInformationState,\n },\n onClick: {\n type: (Function as never) as () => () => void,\n required: true,\n },\n },\n computed: {\n buttonLabel(): string {\n return this.section.isComplete\n ? this.$t('sectionOverview.editButton').toString()\n : this.$t('sectionOverview.startButton').toString();\n },\n buttonAriaLabel(): string {\n return `${this.buttonLabel} ${this.$t(\n `${this.section.sectionName}.overview.title`\n )}`;\n },\n overviewText(): string {\n if (this.section.sectionName == 'educationInfos') {\n if (/[aehiouy]/.test(this.basicInfos.childName[0].toLowerCase())) {\n return this.$t(\n `${this.section.sectionName}.overview.textApostrophe`,\n { name: this.basicInfos.childName }\n ).toString();\n }\n\n return this.$t(\n `${this.section.sectionName}.overview.textNoApostrophe`,\n { name: this.basicInfos.childName }\n ).toString();\n } else {\n return this.$t(`${this.section.sectionName}.overview.text`).toString();\n }\n },\n },\n methods: {\n onLinkClick() {\n this.onClick();\n this.$router.push(\n this.section.sectionFormLocation(this.completionLocationName)\n );\n },\n },\n});\n\nexport default SectionOverview;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./sectionOverview.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./sectionOverview.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./sectionOverview.vue?vue&type=template&id=b13d04a2&scoped=true&\"\nimport script from \"./sectionOverview.ts?vue&type=script&lang=ts&\"\nexport * from \"./sectionOverview.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./sectionOverview.scss?vue&type=style&index=0&id=b13d04a2&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 \"b13d04a2\",\n null\n \n)\n\nexport default component.exports","import Page from '@/components/page/page.vue';\nimport SectionOverview from '@/components/sectionOverview/sectionOverview.vue';\nimport Badge from '@/components/ui/badge/badge.vue';\nimport { CalculatorViewModel, Section } from '@/models/calculatorState';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport { Tracker } from '@/models/tracker';\nimport Vue from 'vue';\n\nconst PinpointResult = Vue.extend({\n name: 'PinpointResult',\n props: {\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Badge,\n Page,\n SectionOverview,\n },\n computed: {\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n financialInfos(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n },\n methods: {\n onNext() {\n if (!this.educationInfos.isComplete && !this.financialInfos.isComplete) {\n this.tracker.event('sauter_preciser_resultat');\n }\n\n this.$router.push({ name: 'results' });\n },\n trackSectionClick(section: Section) {\n if (section.isComplete) {\n const sectionName = this.$t(\n `${section.sectionName}.overview.title`,\n 'fr'\n );\n this.tracker.event('modifier_renseignement', { section: sectionName });\n } else {\n this.tracker.event(section.startSectionEventName);\n }\n },\n },\n});\n\nexport default PinpointResult;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./pinpointResult.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./pinpointResult.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pinpointResult.vue?vue&type=template&id=70d18f58&scoped=true&\"\nimport script from \"./pinpointResult.ts?vue&type=script&lang=ts&\"\nexport * from \"./pinpointResult.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./pinpointResult.scss?vue&type=style&index=0&id=70d18f58&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 \"70d18f58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{attrs:{\"headerStyle\":\"bleu\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){return [_c('div',{staticClass:\"results__footer\"},[_c('ReferenceNumberSection',{attrs:{\"apiState\":_vm.apiState,\"isFooter\":\"\",\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"results__footer-buttons\"},[_c('button',{staticClass:\"results__footer-button button button--primary\",attrs:{\"type\":\"button\",\"role\":\"link\"},on:{\"click\":_vm.onNextStep}},[_vm._v(\" \"+_vm._s(_vm.$t('results.nextStepButton'))+\" \")])])],1)]},proxy:true}])},[_c('section',{staticClass:\"results\"},[_c('Banner',{ref:\"optimizationResetBanner\",attrs:{\"text\":_vm.$t('results.optimization.banner.textMobile'),\"subtext\":\"\",\"textDesktop\":_vm.$t('results.optimization.banner.text'),\"subtextDesktop\":_vm.$t('results.optimization.banner.subtext')}}),_c('div',{staticClass:\"results__curved-background\"}),_c('div',{staticClass:\"results__links-background\"}),_c('header',{staticClass:\"results__header\"},[_c('ReferenceNumberSection',{staticClass:\"results__reference-number-badge\",attrs:{\"apiState\":_vm.apiState,\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"results__header-content\"},[_c('h1',{staticClass:\"results__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.title'))+\" \")]),_c('h2',{staticClass:\"results__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.subtitle'))+\" \")])])],1),_c('div',{staticClass:\"results__body\"},[_c('section',{staticClass:\"results__cards-tabs\"},[_c('TabbedContent',{attrs:{\"tabs\":_vm.displayedProjections.map(function (p) { return p.planName || ''; }),\"icons\":_vm.displayedProjections.map(function (p) { return p.icon; }),\"bodyClass\":\"results__cards-tabs-body\"},scopedSlots:_vm._u([{key:\"tab\",fn:function(ref){\nvar tab = ref.tab;\nreturn [_c('ProjectionCard',{staticClass:\"results__card\",attrs:{\"projection\":_vm.getProjectionFromPlanName(tab),\"calculatorViewModel\":_vm.calculatorViewModel,\"maxProjectionTotal\":_vm.maxSavings,\"isOptimized\":_vm.optimizationState.isOptimized,\"isContributionCapped\":_vm.showMaxContributionNotice &&\n _vm.isContributionCapped(_vm.getProjectionFromPlanName(tab))}}),_c('div',{staticClass:\"results__optimization-mobile-section\"},[_c('div',{staticClass:\"results__optimization-indicators\"},[_c('OptimizationIndicator',{attrs:{\"value\":_vm.optimizationState.grantsOptimized,\"name\":\"grants\",\"basicInformation\":_vm.basicInfos,\"optimizationState\":_vm.optimizationState}}),_c('OptimizationIndicator',{attrs:{\"valueMissing\":!_vm.educationInfos.isComplete,\"value\":_vm.optimizationState.educationProjectOptimized,\"name\":\"educationProject\",\"basicInformation\":_vm.basicInfos,\"optimizationState\":_vm.optimizationState}})],1),_c('button',{staticClass:\"button button--primary\",class:{\n 'button--disabled': _vm.disableOptimizationSection,\n },attrs:{\"type\":\"button\",\"role\":\"link\",\"disabled\":_vm.disableOptimizationSection,\"event\":!_vm.disableOptimizationSection ? 'click' : '',\"tabindex\":_vm.disableOptimizationSection ? '-1' : undefined},on:{\"click\":_vm.onOptimizeResult}},[_vm._v(\" \"+_vm._s(_vm.$t( _vm.optimizationState.grantsOptimized && _vm.optimizationState.educationProjectOptimized ? 'results.optimization.cta.complete' : 'results.optimization.cta.normal' ))+\" \")]),(!_vm.educationInfos.isComplete)?_c('button',{staticClass:\"results__pinpoint-result-link button button--no-style\",attrs:{\"role\":\"link\",\"type\":\"button\"},on:{\"click\":_vm.onPinpointEducationProject}},[_c('IconEdit'),_c('span',[_vm._v(_vm._s(_vm.$t('results.optimization.pinpointResult')))])],1):_vm._e()])]}}])})],1),_c('section',{staticClass:\"results__cards-list\"},_vm._l((_vm.displayedProjections),function(projection,index){return _c('div',{key:projection.planName + index,staticClass:\"results__card-container\"},[_c('div',{staticClass:\"results__section-title-wrapper\"},[_c('h3',{staticClass:\"results__section-title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.cardTitle', { planName: projection.planName }))+\" \")]),(!!projection.icon)?_c(projection.icon,{tag:\"component\",staticClass:\"results__section-title-icon\"}):_vm._e()],1),_c('ProjectionCard',{staticClass:\"results__card\",attrs:{\"projection\":projection,\"calculatorViewModel\":_vm.calculatorViewModel,\"maxProjectionTotal\":_vm.maxSavings,\"isOptimized\":_vm.optimizationState.isOptimized,\"isContributionCapped\":_vm.showMaxContributionNotice && _vm.isContributionCapped(projection)}})],1)}),0),(_vm.showMaxContributionNotice)?_c('div',{staticClass:\"results__max-contribution-notice\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t('results.maxContributionNotice', {\n amount: _vm.NumberFormatter.formatCurrency(_vm.maxCappedProjectionTotal),\n })\n )}}):_vm._e(),_c('section',{staticClass:\"results__optimization-section\"},[_c('header',{staticClass:\"results__section-header\"},[_c('h3',{staticClass:\"results__section-title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.optimization.title'))+\" \")])]),_c('OptimizationSection',{attrs:{\"calculatorViewModel\":_vm.calculatorViewModel,\"optimizationState\":_vm.optimizationState,\"isLoading\":_vm.isLoading,\"tracker\":_vm.tracker}})],1),_c('section',{staticClass:\"results__my-infos-wrapper\"},[_c('header',{staticClass:\"results__section-header results__section-header--desktop\"},[_c('h3',{staticClass:\"results__section-title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.myInfos.title'))+\" \")])]),_c('section',{staticClass:\"results__my-infos\"},[_c('section',{staticClass:\"results__section-overviews\"},[_c('header',{staticClass:\"results__section-header results__section-header--mobile\"},[_c('h3',{staticClass:\"results__section-title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.myInfos.title'))+\" \")])]),_c('SectionOverview',{attrs:{\"section\":_vm.basicInfos,\"completionLocationName\":\"results\",\"onClick\":function () { return _vm.trackSectionClick(_vm.basicInfos); }}}),_c('SectionOverview',{attrs:{\"section\":_vm.educationInfos,\"basicInfos\":_vm.calculatorViewModel.basicInfos,\"completionLocationName\":\"results\",\"onClick\":function () { return _vm.trackSectionClick(_vm.educationInfos); }}}),_c('SectionOverview',{attrs:{\"section\":_vm.financialInfos,\"completionLocationName\":\"results\",\"onClick\":function () { return _vm.trackSectionClick(_vm.financialInfos); }}}),_c('div',{staticClass:\"results__links\"},[_c('button',{staticClass:\"results__calculation-details-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('calculationDetailsDrawer', $event)}}},[_c('span',{staticClass:\"results__calculation-details-label\"},[_c('IconInformation'),_c('span',[_vm._v(_vm._s(_vm.$t('results.links.calculationDetails')))])],1),_c('IconChevron',{staticClass:\"results__calculation-details-chevron\"})],1),_c('button',{staticClass:\"results__link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('newVisualisationModal', $event)}}},[_vm._v(\" \"+_vm._s(_vm.$t('results.links.startANewVisualisation'))+\" \")])])],1),_c('section',{staticClass:\"results__marketing-list\"},[_c('header',{staticClass:\"results__section-header\"},[_c('h3',{staticClass:\"results__section-title title\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.marketing.title'))+\" \")]),_c('p',{staticClass:\"results__section-description text\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.marketing.description1'))+\" \")]),_c('br'),_c('p',{staticClass:\"results__section-description text\"},[_vm._v(\" \"+_vm._s(_vm.$t('results.marketing.description2'))+\" \")])]),_c('MarketingList',{staticClass:\"results__marketing-list-items\",attrs:{\"items\":_vm.healthMarketing.concat( _vm.educationInfos.marketingListItems,\n _vm.financialInfos.marketingListItems )}})],1)])])])],1),_c('Drawer',{ref:\"calculationDetailsDrawer\",attrs:{\"bannerSrc\":require('@/assets/image-trotinette@2x.jpg')}},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.calculatorDrawer.title'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.calculatorDrawer.paragraph1'))}})]),_c('Drawer',{ref:\"newVisualisationModal\",attrs:{\"isModal\":\"\",\"hideFooter\":\"\",\"useMinimumSpace\":\"\"}},[_c('div',{staticClass:\"results__new-visualisation-modal\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.newVisualisationModal.title'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.newVisualisationModal.text'))}}),_c('button',{staticClass:\"button button--secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetCalculatorState}},[_vm._v(\" \"+_vm._s(_vm.$t('results.newVisualisationModal.confirm'))+\" \")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M16.747 10.397a.793.793 0 00-.794.794v4.762a.794.794 0 01-.794.793H4.048a.794.794 0 01-.794-.793V4.842c0-.439.356-.794.794-.794H8.81a.794.794 0 000-1.587H4.047a2.38 2.38 0 00-2.38 2.38v11.112a2.38 2.38 0 002.381 2.38h11.111a2.38 2.38 0 002.381-2.38v-4.762a.793.793 0 00-.794-.794zM4.842 11v3.365c0 .439.355.794.793.794H9a.798.798 0 00.564-.23l5.492-5.5 2.254-2.206a.797.797 0 000-1.127l-3.365-3.405a.797.797 0 00-1.127 0L10.58 4.937l-5.508 5.5a.788.788 0 00-.23.563zm8.54-6.627l2.245 2.246L14.5 7.746 12.254 5.5l1.127-1.127zm-6.954 6.954l4.706-4.707 2.246 2.246-4.706 4.707H6.429v-2.247z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconEdit.vue?vue&type=template&id=1c9625df&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"focusable\":\"false\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M12.017 10.8c-.662 0-1.198.537-1.198 1.2v3.6a1.199 1.199 0 102.396 0V12c0-.663-.536-1.2-1.198-1.2zm0-3.6c-.662 0-1.198.537-1.198 1.2a1.199 1.199 0 102.396 0c0-.663-.536-1.2-1.198-1.2zm0-7.2C5.399 0 .034 5.373.034 12a11.879 11.879 0 002.708 7.596l-2.397 2.4a1.2 1.2 0 00-.251 1.308c.203.442.653.716 1.138.696h10.785C18.635 24 24 18.627 24 12S18.635 0 12.017 0zm0 21.6H4.12l1.114-1.116c.23-.224.359-.531.36-.852a1.202 1.202 0 00-.36-.84 9.612 9.612 0 01-1.199-12.12 9.58 9.58 0 0111.637-3.544 9.604 9.604 0 015.741 10.738 9.59 9.59 0 01-9.396 7.734z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconInformation.vue?vue&type=template&id=8290f24c&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"optimization-indicator\",class:{\n 'optimization-indicator--missing': _vm.valueMissing,\n 'optimization-indicator--disabled': !_vm.value,\n }},[(_vm.valueMissing)?_c('IconActionInformation'):(_vm.value)?_c('IconActionCheckCircle'):_c('IconActionExclamationCircleFull'),_c('span',[_vm._v(\" \"+_vm._s(_vm.label)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport IconActionCheckCircle from '@/components/icons/iconActionCheckCircle/iconActionCheckCircle.vue';\nimport IconActionExclamationCircleFull from '@/components/icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.vue';\nimport { BasicInformationViewModel } from '@/models/basicInformation';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport IconActionInformation from '@/components/icons/iconActionInformation/iconActionInformation.vue';\nimport { OptimizationState } from '@/models/optimizationState';\n\ntype Name = 'grants' | 'educationProject';\n\nconst OptimizationIndicator = Vue.extend({\n name: 'OptimizationIndicator',\n props: {\n value: {\n type: Boolean,\n required: true,\n },\n valueMissing: {\n type: Boolean,\n default: false,\n },\n name: {\n type: String as () => Name,\n required: true,\n },\n basicInformation: {\n type: Object as () => BasicInformationViewModel,\n required: true,\n },\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n },\n components: {\n IconActionInformation,\n IconActionCheckCircle,\n IconActionExclamationCircleFull,\n },\n data() {\n return {\n NumberFormatter,\n };\n },\n computed: {\n educationProjectObjective(): number {\n return this.optimizationState.educationProjectProjections[1]?.total || 0;\n },\n baseTotal(): number {\n return this.optimizationState.baseProjections[1]?.total || 0;\n },\n amountForEducationProjectObjective(): number {\n if (!this.optimizationState.educationProjectProjections?.length) {\n return 0;\n }\n\n return this.educationProjectObjective - this.baseTotal;\n },\n isEducationProject(): boolean {\n return this.name === 'educationProject';\n },\n addApostropheToLabel(): boolean {\n return /[aehiouy]/.test(this.basicInformation.childName[0].toLowerCase());\n },\n addLabelVariants(): boolean {\n return this.isEducationProject && !this.valueMissing;\n },\n label(): string {\n let key = `optimization.indicator.${this.name}.header`;\n\n if (this.isEducationProject && this.valueMissing) {\n key += '.missing';\n } else if (this.value) {\n key += '.enabled';\n } else {\n key += '.disabled';\n }\n\n if (\n this.addLabelVariants &&\n !this.value &&\n this.amountForEducationProjectObjective < 0\n ) {\n key += '.negative';\n }\n\n if (this.addLabelVariants && this.addApostropheToLabel) {\n key += '.apostrophe';\n }\n\n return this.$t(key, {\n name: this.basicInformation.childName,\n amount: NumberFormatter.formatCurrency(\n this.amountForEducationProjectObjective\n ),\n }).toString();\n },\n },\n});\n\nexport default OptimizationIndicator;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationIndicator.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationIndicator.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./optimizationIndicator.vue?vue&type=template&id=0815c0f2&scoped=true&\"\nimport script from \"./optimizationIndicator.ts?vue&type=script&lang=ts&\"\nexport * from \"./optimizationIndicator.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./optimizationIndicator.scss?vue&type=style&index=0&id=0815c0f2&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 \"0815c0f2\",\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Card',{staticClass:\"optimization-section\"},[_c('div',{staticClass:\"optimization-section__toggles\"},[_c('div',{staticClass:\"optimization-section__toggle-wrapper\"},[_c('div',{staticClass:\"optimization-section__toggle-header\"},[_c('OptimizationIndicator',{attrs:{\"value\":_vm.optimizationState.grantsOptimized,\"name\":\"grants\",\"basicInformation\":_vm.basicInfos,\"optimizationState\":_vm.optimizationState}})],1),_c('div',{staticClass:\"optimization-section__toggle\"},[_c('Toggle',{attrs:{\"label\":_vm.$t('optimization.grants.label'),\"toggleStyle\":\"vert\",\"disabled\":_vm.isLoading},model:{value:(_vm.optimizationState.grantsOptimized),callback:function ($$v) {_vm.$set(_vm.optimizationState, \"grantsOptimized\", $$v)},expression:\"optimizationState.grantsOptimized\"}})],1)]),_c('div',{staticClass:\"optimization-section__toggle-wrapper\"},[_c('div',{staticClass:\"optimization-section__toggle-header\"},[_c('OptimizationIndicator',{attrs:{\"value\":_vm.optimizationState.educationProjectOptimized,\"name\":\"educationProject\",\"basicInformation\":_vm.basicInfos,\"valueMissing\":!_vm.educationInfos.isComplete,\"optimizationState\":_vm.optimizationState}})],1),_c('div',{staticClass:\"optimization-section__toggle\"},[_c('Toggle',{attrs:{\"label\":_vm.$t('optimization.educationProject.label'),\"toggleStyle\":\"vert\",\"disabled\":_vm.isLoading || !_vm.educationInfos.isComplete},model:{value:(_vm.optimizationState.educationProjectOptimized),callback:function ($$v) {_vm.$set(_vm.optimizationState, \"educationProjectOptimized\", $$v)},expression:\"optimizationState.educationProjectOptimized\"}}),(!_vm.educationInfos.isComplete)?_c('button',{staticClass:\"optimization-section__complete-education-project button button--small\",class:( _obj = {}, _obj[(\"button--\" + (_vm.educationInfos.sectionThemeColor))] = true, _obj ),attrs:{\"type\":\"button\",\"role\":\"link\"},on:{\"click\":_vm.onCompleteEducationInformation}},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.educationProject.complete'))+\" \")]):_vm._e()],1)])]),_c('OptimizationTable',{staticClass:\"optimization-section__table-section\",attrs:{\"optimizationState\":_vm.optimizationState,\"isLoading\":_vm.isLoading}}),(!_vm.financialInfos.isComplete)?_c('i18n',{staticClass:\"optimization-section__pinpoint-text text\",attrs:{\"path\":\"optimization.pinpointFinancialSituation.label\",\"tag\":\"p\"}},[_c('button',{staticClass:\"button button--no-style optimization-section__pinpoint-link\",attrs:{\"type\":\"button\",\"role\":\"link\",\"to\":_vm.financialInfos.sectionFormLocation('results')},on:{\"click\":_vm.onOptimizeFinancialSituation}},[_vm._v(\" \"+_vm._s(_vm.$t('optimization.pinpointFinancialSituation.link'))+\" \")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport Card from '@/components/ui/card/card.vue';\nimport Toggle from '@/components/form/toggle/toggle.vue';\nimport { CalculatorViewModel } from '@/models/calculatorState';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport IconActionCheckCircle from '../icons/iconActionCheckCircle/iconActionCheckCircle.vue';\nimport IconActionExclamationCircleFull from '../icons/IconActionExclamationCircleFull/IconActionExclamationCircleFull.vue';\nimport { BasicInformationViewModel } from '@/models/basicInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { OptimizationState } from '@/models/optimizationState';\nimport OptimizationIndicator from '@/components/optimizationIndicator/optimizationIndicator.vue';\nimport OptimizationTable from '@/components/optimizationTable/optimizationTable.vue';\nimport { Tracker } from '@/models/tracker';\n\nconst OptimizationSection = Vue.extend({\n name: 'OptimizationSection',\n props: {\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n isLoading: {\n type: Boolean,\n default: false,\n },\n },\n components: {\n Card,\n Toggle,\n IconActionCheckCircle,\n IconActionExclamationCircleFull,\n OptimizationIndicator,\n OptimizationTable,\n },\n data() {\n return {\n NumberFormatter,\n };\n },\n computed: {\n basicInfos(): BasicInformationViewModel {\n return this.calculatorViewModel.basicInfos;\n },\n financialInfos(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n },\n methods: {\n onCompleteEducationInformation() {\n this.tracker.event(this.educationInfos.startSectionEventName, {\n bloc_optimisation: true,\n });\n\n this.$router.push(this.educationInfos.sectionFormLocation('results'));\n },\n onOptimizeFinancialSituation() {\n this.tracker.event('optimisation_situation_financiere');\n this.$router.push(this.financialInfos.sectionFormLocation('results'));\n },\n },\n});\n\nexport default OptimizationSection;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationSection.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./optimizationSection.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./optimizationSection.vue?vue&type=template&id=4f4366dc&scoped=true&\"\nimport script from \"./optimizationSection.ts?vue&type=script&lang=ts&\"\nexport * from \"./optimizationSection.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./optimizationSection.scss?vue&type=style&index=0&id=4f4366dc&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 \"4f4366dc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.projection)?_c('Card',{staticClass:\"projection-card\"},[(_vm.isContributionCapped)?_c('p',{staticClass:\"projection-card__header projection-card__header--total-goal\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.titleLine1)}}),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.$t('projectionCard.totalGoal.titleAmount', {\n amount: _vm.NumberFormatter.formatCurrency(\n _vm.projection.monthlyDirectContributions\n ),\n })\n )}})]):(\n _vm.calculatorViewModel.basicInfos.savingStrategy === _vm.SavingStrategy.Monthly\n )?_c('p',{staticClass:\"projection-card__header projection-card__header--monthly\"},[_c('span',[_vm._v(_vm._s(_vm.titleLine1))]),_c('span',[_vm._v(_vm._s(_vm.$t('projectionCard.monthly.titleLine2')))]),_c('span',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.projection.total)))])]):_c('p',{staticClass:\"projection-card__header projection-card__header--total-goal\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.titleLine1)}}),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.$t('projectionCard.totalGoal.titleAmount', {\n amount: _vm.NumberFormatter.formatCurrency(\n _vm.projection.monthlyDirectContributions\n ),\n })\n )}})]),_c('div',{staticClass:\"projection-card__graph\"},[(_vm.maxProjectionTotal)?_c('StackedThreeDBarGraph',{attrs:{\"items\":_vm.barGraphItems,\"topColor\":\"#a4d0b9\",\"scaleY\":_vm.projection.total / _vm.maxProjectionTotal}}):_vm._e()],1),(_vm.isContributionCapped)?_c('div',{staticClass:\"projection-card__max-contribution-notice\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t('results.maxContributionNotice', {\n amount: _vm.NumberFormatter.formatCurrency(_vm.projection.total),\n })\n )}}):_vm._e(),(!_vm.hideSeeMore)?_c('button',{staticClass:\"projection-card__plan-button button\",attrs:{\"type\":\"button\",\"disabled\":!_vm.projection.plan},on:{\"click\":_vm.openProgramInfoDrawer}},[_c('div',{staticClass:\"projection-card__plan-name\"},[_c('IconIdeo'),_c('span',[_vm._v(_vm._s(_vm.projection.planName))])],1),_c('span',{staticClass:\"projection-card__see-more\"},[_c('span',[_vm._v(_vm._s(_vm.$t('projectionCard.seeMoreButton')))]),_c('IconArrow',{staticClass:\"projection-card__plan-button-arrow\"})],1)]):_vm._e(),_c('ul',{staticClass:\"projection-card__projection-list\"},_vm._l((_vm.projection.graphValues),function(graphValue){return _c('li',{key:graphValue.label,staticClass:\"projection-card__projection-row\"},[_c('div',{staticClass:\"projection-card__projection-infos\"},[_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(graphValue.tooltip)+\" \")]},proxy:true}],null,true)},[_c('span',{staticClass:\"projection-card__projection-info\"},[_vm._v(\" \"+_vm._s(graphValue.label)+\" \")])]),_c('div',{staticClass:\"projection-card__projection-separator\"}),_c('span',{staticClass:\"projection-card__projection-value\"},[_vm._v(_vm._s(_vm._f(\"currency\")(graphValue.value,2)))])],1),_c('div',{staticClass:\"projection-card__projection-tag\",style:({ backgroundColor: graphValue.color })})])}),0),_c('p',{staticClass:\"projection-card__legal-note\",domProps:{\"innerHTML\":_vm._s(_vm.$t('resultsSimple.legalNote'))}}),_c('Drawer',{ref:\"planInfoDrawer\"},[_c('div',{staticClass:\"projection-card__plan-name\"},[_c('IconIdeo'),_c('span',[_vm._v(_vm._s(_vm.projection.planName))])],1),(_vm.projection.plan)?[(_vm.projection.plan.planNameFr == 'Prudent')?_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.protege.description'))}})]):(_vm.projection.plan.planNameFr == 'Évolutif')?_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.equilibre.description'))}})]):_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.responsable.description'))}})])]:_vm._e()],2)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 16 7\",\"width\":\"16\",\"height\":\"7\",\"fill\":\"currentColor\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M11 2.333L0 2.333 0 4.667 10.963 4.667 11 7 16 3.5 11 0z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconArrow.vue?vue&type=template&id=4e096c2b&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 61 14\",\"width\":\"61\",\"height\":\"14\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"fill\":\"#2B2522\",\"d\":\"M0 13.772h3.408V.696H0zM13.93 10.206c.514-.66.772-1.651.772-2.972 0-1.32-.258-2.311-.773-2.973-.515-.66-1.32-.99-2.417-.99H9.71v7.926h1.803c1.096 0 1.902-.33 2.417-.991m2.625-7.816c1.09 1.129 1.635 2.744 1.635 4.844s-.545 3.715-1.635 4.844c-1.09 1.129-2.658 1.694-4.706 1.694H6.301V.695h5.547c2.048 0 3.616.564 4.706 1.694M20.526.696H30.71V3.33h-6.776v2.655h5.39v2.476h-5.39v2.675h7.033v2.635h-10.44zM36.595 4.202c-.502.687-.753 1.697-.753 3.031s.25 2.345.753 3.032c.502.687 1.228 1.03 2.179 1.03.95 0 1.675-.343 2.17-1.03.495-.687.743-1.698.743-3.032s-.248-2.344-.743-3.03c-.495-.687-1.22-1.03-2.17-1.03-.951 0-1.677.343-2.18 1.03M42.193 1.3c.958.534 1.694 1.307 2.209 2.318.515 1.01.773 2.216.773 3.615 0 1.4-.258 2.606-.773 3.616-.515 1.011-1.251 1.784-2.21 2.318-.957.535-2.096.803-3.417.803-1.321 0-2.463-.268-3.427-.803-.965-.534-1.704-1.307-2.22-2.318-.514-1.01-.772-2.216-.772-3.616 0-1.399.258-2.605.773-3.615.515-1.01 1.254-1.784 2.219-2.318.964-.536 2.106-.803 3.427-.803 1.32 0 2.46.267 3.418.803\"}}),_c('path',{attrs:{\"d\":\"M60.011 7.61H54.5a1.193 1.193 0 01-1.193-1.193V.905a1.193 1.193 0 012.385 0v4.32h4.32a1.193 1.193 0 110 2.385\",\"fill\":\"#1DB7D7\"}}),_c('path',{attrs:{\"d\":\"M54.498 13.123a1.193 1.193 0 01-1.192-1.193V7.61h-4.32a1.193 1.193 0 110-2.385H54.5c.658 0 1.192.535 1.192 1.193v5.512c0 .659-.534 1.193-1.193 1.193\",\"fill\":\"#ED6953\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconIdeo.vue?vue&type=template&id=7f565fca&\"\nvar script = {}\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",style:(_vm.containerStyle)},[_c('div',{staticClass:\"cube\"},[_c('div',{staticClass:\"cube__face cube__face--left\"},_vm._l((_vm.sideSections),function(item){return _c('div',{key:item.leftColor,staticClass:\"cube__side-section\",style:({\n transform: (\"translateY(\" + (-1 *\n item.bottom) + \"%) scaleY(\" + (item.proportion / 100) + \")\"),\n backgroundColor: item.leftColor,\n })})}),0),_c('div',{staticClass:\"cube__face cube__face--top\",style:({ 'background-color': _vm.topColor })}),_c('div',{staticClass:\"cube__face cube__face--right\"},_vm._l((_vm.sideSections),function(item){return _c('div',{key:item.rightColor,staticClass:\"cube__side-section\",style:({\n transform: (\"translateY(\" + (-1 *\n item.bottom) + \"%) scaleY(\" + (item.proportion / 100) + \")\"),\n backgroundColor: item.rightColor,\n })})}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { FauxDash } from '@/utils/fauxDash';\nimport Vue from 'vue';\n\nexport interface BarGraphItem {\n value: number;\n leftColor: string;\n rightColor: string;\n}\n\ninterface SideSectionItem {\n proportion: number;\n leftColor: string;\n rightColor: string;\n bottom: number;\n}\n\nconst StackedThreeDBarGraph = Vue.extend({\n name: 'StackedThreeDBarGraph',\n props: {\n items: {\n type: Array as () => BarGraphItem[],\n required: true,\n },\n topColor: {\n type: String,\n required: true,\n },\n scaleY: {\n type: Number,\n required: true,\n },\n },\n data() {\n return {\n entranceAnimating: false,\n };\n },\n mounted() {\n setTimeout(() => {\n this.entranceAnimating = true;\n }, 500);\n },\n computed: {\n adjustedScaleY(): number {\n if (this.scaleY === 0 || !this.entranceAnimating) {\n return 0;\n }\n\n return (this.scaleY * 3) / 4 + 0.25;\n },\n opacity(): number {\n return this.adjustedScaleY > 0 ? 1 : 0;\n },\n containerStyle(): Record {\n return {\n transform: `scaleY(${this.adjustedScaleY})`,\n opacity: this.opacity,\n };\n },\n sideSections(): SideSectionItem[] {\n const overallTotal = FauxDash.sumBy(this.items, item => item.value);\n\n let runningTotal = 0;\n\n const cumItems = [] as SideSectionItem[];\n\n for (const item of this.items) {\n const proportion = item.value / (overallTotal / 100);\n\n cumItems.push({\n ...item,\n proportion,\n bottom: (runningTotal / overallTotal) * 100,\n });\n\n runningTotal += item.value;\n }\n\n return cumItems;\n },\n },\n});\n\nexport default StackedThreeDBarGraph;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./stackedThreeDBarGraph.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./stackedThreeDBarGraph.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./stackedThreeDBarGraph.vue?vue&type=template&id=565066be&scoped=true&\"\nimport script from \"./stackedThreeDBarGraph.ts?vue&type=script&lang=ts&\"\nexport * from \"./stackedThreeDBarGraph.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./stackedThreeDBarGraph.vue?vue&type=style&index=0&id=565066be&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 \"565066be\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Card from '@/components/ui/card/card.vue';\nimport { Projection } from '@/models/plan';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport { CalculatorViewModel } from '@/models/calculatorState';\nimport {\n BasicInformationViewModel,\n SavingStrategy,\n} from '@/models/basicInformation';\nimport IconArrow from '@/components/icons/iconArrow/iconArrow.vue';\nimport IconIdeo from '@/components/icons/iconIdeo/iconIdeo.vue';\nimport StackedThreeDBarGraph from '../stackedThreeDBarGraph/stackedThreeDBarGraph.vue';\nimport { BarGraphItem } from '../stackedThreeDBarGraph/stackedThreeDBarGraph';\nimport TextTooltip from '@/components/ui/textTooltip/textTooltip.vue';\nimport NumberFormatter from '@/utils/numberFormatter';\n\nconst ProjectionCard = Vue.extend({\n name: 'ProjectionCard',\n props: {\n projection: {\n type: Object as () => Projection,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n maxProjectionTotal: {\n type: Number,\n },\n isOptimized: {\n type: Boolean,\n default: false,\n },\n isContributionCapped: {\n type: Boolean,\n default: false,\n },\n hideSeeMore: {\n type: Boolean,\n default: false,\n },\n },\n components: {\n Card,\n Drawer,\n IconArrow,\n IconIdeo,\n StackedThreeDBarGraph,\n TextTooltip,\n },\n data() {\n return {\n NumberFormatter,\n SavingStrategy,\n };\n },\n methods: {\n openProgramInfoDrawer(event: Event) {\n (this.$refs.planInfoDrawer as any).show(event);\n },\n },\n computed: {\n isPlaceholder(): boolean {\n return this.projection == null;\n },\n basicInfos(): BasicInformationViewModel {\n return this.calculatorViewModel.basicInfos;\n },\n titleLine1(): string {\n const childName = this.basicInfos.childName;\n\n let key = 'projectionCard.';\n\n if (\n this.basicInfos.savingStrategy === SavingStrategy.Monthly &&\n !this.isContributionCapped\n ) {\n key += 'monthly.';\n } else {\n key += 'totalGoal.';\n }\n\n if (childName[0]) {\n if (/[aehiouy]/.test(childName[0].toLowerCase())) {\n key += 'titleLine1Apostrophe';\n } else {\n key += 'titleLine1NoApostrophe';\n }\n } \n else {\n key += 'titleLine1';\n }\n\n const params: Record = {\n name: childName,\n };\n\n if (\n this.basicInfos.savingStrategy === SavingStrategy.TotalGoal ||\n this.isContributionCapped\n ) {\n if (this.isOptimized) {\n params.amount = NumberFormatter.formatCurrency(this.projection.total);\n } else {\n const amount = this.isContributionCapped\n ? this.projection.total\n : this.basicInfos.totalGoal;\n params.amount = NumberFormatter.formatCurrency(amount as number);\n }\n }\n\n if (this.isContributionCapped) {\n key += '.capped';\n }\n\n return this.$t(key, params).toString();\n },\n barGraphItems(): BarGraphItem[] {\n return [\n {\n value: this.projection.directContributions,\n leftColor: '#0aabc7',\n rightColor: '#055361',\n },\n {\n value: this.projection.grants,\n leftColor: '#294772',\n rightColor: '#1b2f4b',\n },\n {\n value: this.projection.totalIncome,\n leftColor: '#74b291',\n rightColor: '#48946b',\n },\n ];\n },\n },\n});\n\nexport default ProjectionCard;\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./projectionCard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/eslint-loader/index.js??ref--13-0!./projectionCard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./projectionCard.vue?vue&type=template&id=cefc26b0&scoped=true&\"\nimport script from \"./projectionCard.ts?vue&type=script&lang=ts&\"\nexport * from \"./projectionCard.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./projectionCard.scss?vue&type=style&index=0&id=cefc26b0&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 \"cefc26b0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"42\",\"height\":\"42\",\"viewbox\":\"0 0 42 42\",\"focusable\":\"false\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"fill\":\"#A4D0B9\",\"d\":\"M30.519 25.801a.967.967 0 01-.967-.966V4.61a.678.678 0 00-.678-.677H13.591A.967.967 0 0113.59 2h15.283a2.614 2.614 0 012.611 2.611v20.224a.967.967 0 01-.966.966\"}}),_c('path',{attrs:{\"fill\":\"#6882A6\",\"d\":\"M25.024 23.32c-.044.383-.254.733-.485.827-.396.152-.705.102-1.034-.17-.408-.337-.756-.932-1.018-1.669 1.373-.347 1.982-.057 2.173.077.394.276.386.746.364.935m.746-2.518c-.685-.48-1.84-.841-3.722-.374a10.282 10.282 0 010-2.754c3.082-1.186 4.303-3.88 4.4-5.904.099-2.028-.799-3.747-2.286-4.38a.965.965 0 10-.758 1.778c.724.308 1.171 1.316 1.113 2.508-.073 1.523-.981 3.404-3.28 4.235-2.3-.831-3.208-2.712-3.282-4.235-.058-1.192.39-2.2 1.113-2.508a.967.967 0 00-.758-1.778c-1.487.633-2.384 2.352-2.286 4.38a6.706 6.706 0 004.09 5.777 12.545 12.545 0 00.081 3.525c-.25.11-.509.23-.778.363-3.813 1.895-7.173 2.34-9.46 1.255-1.262-.6-2.093-1.637-2.403-3.001a.968.968 0 00-1.886.428c.44 1.936 1.669 3.47 3.46 4.32 2.835 1.345 6.795.894 11.15-1.27.137-.068.27-.132.4-.193.37 1.032.901 1.92 1.597 2.495.556.459 1.19.693 1.853.693.367 0 .743-.071 1.12-.217.906-.366 1.572-1.31 1.697-2.406.127-1.109-.312-2.132-1.175-2.737\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M5.65 16.059a1.451 1.451 0 000 2.9 1.451 1.451 0 000-2.9m0 4.1A2.652 2.652 0 013 17.51a2.653 2.653 0 012.65-2.65 2.653 2.653 0 012.65 2.65 2.652 2.652 0 01-2.65 2.65m13.244-9.564a1.048 1.048 0 01-1.048-1.047V7.318a1.048 1.048 0 012.095 0v2.23c0 .579-.469 1.048-1.047 1.048m4.192 0a1.047 1.047 0 01-1.047-1.047V7.318a1.047 1.047 0 012.095 0v2.23c0 .579-.47 1.048-1.048 1.048\"}}),_c('path',{attrs:{\"fill\":\"#F3BEA1\",\"d\":\"M5.65 16.059a1.451 1.451 0 000 2.9 1.451 1.451 0 000-2.9m0 4.1A2.652 2.652 0 013 17.51a2.653 2.653 0 012.65-2.65 2.653 2.653 0 012.65 2.65 2.652 2.652 0 01-2.65 2.65m13.244-9.564a1.048 1.048 0 01-1.048-1.047V7.318a1.048 1.048 0 012.095 0v2.23c0 .579-.469 1.048-1.047 1.048m4.192 0a1.047 1.047 0 01-1.047-1.047V7.318a1.047 1.047 0 012.095 0v2.23c0 .579-.47 1.048-1.048 1.048\"}}),_c('path',{attrs:{\"fill\":\"#0AABC7\",\"d\":\"M27.892 37.615a5.634 5.634 0 01-1.642-1.42H13.59a.686.686 0 01-.677-.678v-2.39c3.837-.032 7.439-.031 11.282.004l.019-2.095c-3.85-.035-7.458-.036-11.301-.004V4.612c0-.375.304-.679.678-.679a.966.966 0 000-1.933 2.613 2.613 0 00-2.611 2.611v30.906c0 1.44 1.17 2.611 2.61 2.611h15.284c.097 0 .192-.006.287-.016a4.709 4.709 0 01-1.269-.497\"}}),_c('g',{attrs:{\"transform\":\"translate(23.205 22.238)\"}},[_c('path',{attrs:{\"fill\":\"#EC6D5A\",\"d\":\"M14.4 10.53c-.195 3.02-2.088 4.395-2.893 4.848-1.112.624-2.346.758-3.142.341a.453.453 0 00-.211-.054H8.04a.44.44 0 00-.21.054c-.81.423-2.015.293-3.144-.341-.804-.453-2.698-1.829-2.895-4.847-.157-2.415.42-4.01 1.712-4.74.557-.315 1.192-.432 1.81-.432 1.168 0 2.283.421 2.72.725l.032.019h.067l.025-.02c.668-.462 2.916-1.204 4.53-.293 1.155.654 1.737 1.992 1.737 3.99 0 .242-.008.49-.025.75m-1.167-6.17c-.685-.39-1.48-.603-2.367-.635a6.863 6.863 0 00-1.545.128 5.86 5.86 0 00-1.092.308c-.048-.11-.1-.218-.157-.327-.014-.025-.03-.052-.044-.082.47.074.913.088 1.324.04.425-.05.809-.165 1.137-.343.151-.08.3-.176.438-.29 1.025-.812 1.444-2.2 1.548-2.607a.194.194 0 00-.123-.229A5.986 5.986 0 0010.87.007c-.053-.004-.104-.005-.155-.007l-.082.011h-.005c-.872.13-1.758.23-2.449.83-.027.023-.054.04-.081.058l-.02.03a.548.548 0 01-.101.118v.007c-.457.512-.748 1.123-.913 1.557a4.113 4.113 0 00-1.383-.746.924.924 0 00-.593 0c-.27.105-.423.318-.408.572.017.268.21.507.459.57.136.031.276.077.423.132.012.006.02.01.031.012l.025.013c.017.008.032.014.053.027.063.027.123.059.182.092l.023.015c.111.065.226.13.318.207l.042.05h.021l.06.053c.053.044.101.09.152.142.042.04.081.082.121.124-.986-.205-2.593-.335-4.03.486C.82 5.35-.041 7.332 0 10.25l.003.048c.06.859.37 2.235 1.062 3.582H1.05c.318.505.632.977 1.01 1.446.11.136.214.276.313.419.273.289.563.542.86.753a5.168 5.168 0 003.048.968c.52 0 1.058-.069 1.615-.211 1.743.44 3.333.184 4.665-.757 2.153-1.52 3.11-4.54 3.23-6.202l.002-.048.002-.193c0-2.81-.86-4.725-2.562-5.695\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./iconCategoryHealth.vue?vue&type=template&id=195f8ecc&\"\nvar script = {}\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\nexport default component.exports","import { CalculatorAPI } from '@/api/calculator';\nimport IconActionCheckCircleFull from '@/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport IconChevron from '@/components/icons/iconChevron/iconChevron.vue';\nimport IconEdit from '@/components/icons/iconEdit/iconEdit.vue';\nimport IconInformation from '@/components/icons/iconInformation/iconInformation.vue';\nimport OptimizationIndicator from '@/components/optimizationIndicator/optimizationIndicator.vue';\nimport OptimizationSection from '@/components/optimizationSection/optimizationSection.vue';\nimport Page from '@/components/page/page.vue';\nimport SectionOverview from '@/components/sectionOverview/sectionOverview.vue';\nimport Badge from '@/components/ui/badge/badge.vue';\nimport Banner from '@/components/ui/banner/banner.vue';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport MarketingList from '@/components/ui/marketingList/marketingList.vue';\nimport ProjectionCard from '@/components/ui/projectionCard/projectionCard.vue';\nimport ReferenceNumberSection from '@/components/ui/referenceNumberSection/referenceNumberSection.vue';\nimport TabbedContent from '@/components/ui/tabbedContent/tabbedContent.vue';\nimport { ApiState } from '@/models/apiState';\nimport {\n BasicInformationViewModel,\n SavingStrategy,\n} from '@/models/basicInformation';\nimport {\n CalculatorState,\n CalculatorViewModel,\n Section,\n} from '@/models/calculatorState';\nimport { EducationInformationViewModel } from '@/models/educationInformation';\nimport { FinancialInformationViewModel } from '@/models/financialInformation';\nimport { OptimizationState } from '@/models/optimizationState';\nimport { Plan, Projection } from '@/models/plan';\nimport { PageScroll, Tracker } from '@/models/tracker';\nimport Vue from 'vue';\nimport i18n from '@/i18n';\nimport IconCategoryHealth from '@/components/icons/iconCategoryHealth/iconCategoryHealth.vue';\nimport { IMarketingListItem } from '@/models/section';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport IconLeaf from '@/components/icons/iconLeaf/iconLeaf.vue';\n\nconst Results = Vue.extend({\n name: 'Results',\n props: {\n calculatorAPI: {\n type: Object as () => CalculatorAPI,\n required: true,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n resetCalculatorState: {\n type: (Function as never) as () => () => void,\n required: true,\n },\n resubmitReferenceNumber: {\n type: (Function as never) as () => () => Promise,\n required: true,\n },\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Badge,\n Banner,\n Page,\n ProjectionCard,\n TabbedContent,\n MarketingList,\n SectionOverview,\n IconActionQuestionCircle,\n IconActionCheckCircleFull,\n IconChevron,\n IconInformation,\n IconEdit,\n IconLeaf,\n ReferenceNumberSection,\n Drawer,\n OptimizationSection,\n OptimizationIndicator,\n },\n data() {\n return {\n plans: [] as Plan[],\n isLoading: false,\n maxPageScrolled: PageScroll.zero,\n NumberFormatter,\n };\n },\n async mounted() {\n this.isLoading = true;\n\n if (this.apiState.isOutdated) {\n await this.$recaptchaLoaded();\n this.$recaptchaInstance.showBadge();\n document\n .querySelector('.grecaptcha-badge')\n ?.classList.add('results__grecaptcha-badge');\n }\n\n document.addEventListener('scroll', this.trackScroll);\n this.tracker.scroll(PageScroll.zero);\n\n this.optimizationState.resetProjections();\n\n if (this.optimizationState.needsReset(this.calculatorViewModel)) {\n this.showOptimizationResetBanner();\n this.optimizationState.resetOptimizations();\n }\n\n this.optimizationState.lastCalculatorViewModel = this.calculatorViewModel.clone();\n\n try {\n this.plans = await this.calculatorAPI.getPlans(this.calculatorState);\n this.optimizationState.setProjections(this.plans);\n } catch {\n this.$router.push({ name: 'error' });\n } finally {\n this.isLoading = false;\n }\n },\n async beforeDestroy() {\n this.hideRecaptchaBadge();\n document.removeEventListener('scroll', this.trackScroll);\n },\n computed: {\n showMaxContributionNotice(): boolean {\n if (this.plans.length === 0 || this.optimizationState.isOptimized) {\n return false;\n }\n\n return this.plans.some(plan =>\n this.isContributionCapped(plan.baseProjection)\n );\n },\n healthMarketing(): IMarketingListItem[] {\n return [\n {\n icon: IconCategoryHealth,\n title: i18n.t('results.marketing.health.title').toString(),\n text: i18n.t('results.marketing.health.text').toString(),\n },\n ];\n },\n maxSavings(): number {\n const allProjections = this.plans.flatMap(p => [\n p.baseProjection,\n p.educationProjectProjection,\n p.grantsOptimizedProjection,\n ]);\n\n return Math.max(...allProjections.map(p => p?.total ?? 0));\n },\n calculatorState(): CalculatorState {\n return CalculatorState.fromViewModel(this.calculatorViewModel);\n },\n basicInfos(): BasicInformationViewModel {\n return this.calculatorViewModel.basicInfos;\n },\n educationInfos(): EducationInformationViewModel {\n return this.calculatorViewModel.educationInfos;\n },\n financialInfos(): FinancialInformationViewModel {\n return this.calculatorViewModel.financialInfos;\n },\n displayedProjections(): Projection[] {\n if (!this.plans?.length) {\n return [new Projection(), new Projection(), new Projection()];\n }\n\n return this.optimizationState.displayedProjections;\n },\n disableOptimizationSection(): boolean {\n return (\n !this.optimizationState.baseProjections?.length ||\n !this.optimizationState.grantsOptimizedProjections?.length\n );\n },\n maxCappedProjectionTotal(): number {\n return this.displayedProjections.reduce(\n (max: number, projection: Projection) =>\n projection.total > max && this.isContributionCapped(projection)\n ? projection.total\n : max,\n 0\n );\n },\n maxProjectionTotal(): number {\n return this.displayedProjections.reduce(\n (max: number, projection: Projection) =>\n projection.total > max ? projection.total : max,\n 0\n );\n },\n },\n methods: {\n isContributionCapped(projection: Projection): boolean {\n if (this.basicInfos.savingStrategy === SavingStrategy.Monthly) {\n return (\n projection.monthlyDirectContributions < this.basicInfos.monthlyDeposit\n );\n }\n\n return projection.total < this.basicInfos.totalGoal;\n },\n trackScroll() {\n const pageScroll = this.tracker.getCurrentPageScroll();\n if (pageScroll > this.maxPageScrolled) {\n this.tracker.scroll(pageScroll);\n this.maxPageScrolled = pageScroll;\n }\n },\n trackSectionClick(section: Section) {\n if (section.isComplete) {\n const sectionName = this.$t(\n `${section.sectionName}.overview.title`,\n 'fr'\n );\n this.tracker.event('modifier_renseignement', { section: sectionName });\n } else {\n this.tracker.event(section.startSectionEventName);\n }\n },\n onPinpointEducationProject() {\n this.tracker.event(this.educationInfos.startSectionEventName, {\n bloc_optimisation: true,\n });\n this.$router.push(this.educationInfos.sectionFormLocation('results'));\n },\n getProjectionFromPlanName(planName: string): Projection {\n if (planName === '') {\n return new Projection();\n }\n\n return (\n this.displayedProjections.find(p => p.planName === planName) ??\n new Projection()\n );\n },\n showDrawer(drawerName: string, event?: Event) {\n (this.$refs[drawerName] as any).show(event);\n },\n hideDrawer(drawerName: string, event?: Event) {\n (this.$refs[drawerName] as any).hide(event);\n },\n showOptimizationResetBanner() {\n (this.$refs.optimizationResetBanner as any).show();\n },\n hideOptimizationResetBanner() {\n (this.$refs.optimizationResetBanner as any).hide();\n },\n hideRecaptchaBadge() {\n this.$recaptchaInstance.hideBadge();\n document\n .querySelector('.grecaptcha-badge')\n ?.classList.remove('results__grecaptcha-badge');\n },\n onNextStep() {\n this.tracker.event('prochaine_etape');\n this.$router.push({ name: 'makeAnAppointment' });\n },\n onOptimizeResult() {\n this.tracker.event('optimiser_mes_resultats');\n this.$router.push({ name: 'optimization' });\n },\n },\n watch: {\n ['apiState.isOutdated']() {\n if (!this.apiState.isOutdated) {\n this.hideRecaptchaBadge();\n }\n },\n ['optimizationState.isOptimized']() {\n if (this.optimizationState.isOptimized) {\n this.hideOptimizationResetBanner();\n }\n\n this.tracker.updateDimensions({\n optimizationState: this.optimizationState,\n });\n },\n ['optimizationState.grantsOptimized']() {\n if (this.optimizationState.grantsOptimized) {\n this.tracker.event('optimiser_subventions');\n }\n },\n ['optimizationState.educationProjectOptimized']() {\n if (this.optimizationState.educationProjectOptimized) {\n this.tracker.event('optimiser_etude_envisagees');\n }\n },\n },\n});\n\nexport default Results;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./results.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./results.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./results.vue?vue&type=template&id=63079aeb&scoped=true&\"\nimport script from \"./results.ts?vue&type=script&lang=ts&\"\nexport * from \"./results.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./results.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./results.scss?vue&type=style&index=1&id=63079aeb&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 \"63079aeb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',{ref:\"page\",attrs:{\"headerStyle\":\"bleu\",\"tracker\":_vm.tracker},scopedSlots:_vm._u([{key:\"sticky-footer\",fn:function(){return [_c('div',{staticClass:\"results__footer\"},[_c('ReferenceNumberSection',{attrs:{\"apiState\":_vm.apiState,\"isFooter\":\"\",\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"results__footer-buttons\"},[_c('button',{staticClass:\"results__footer-button button button--orange\",attrs:{\"type\":\"button\",\"role\":\"link\"},on:{\"click\":_vm.onNextStep}},[_vm._v(\" \"+_vm._s(_vm.$t('resultsSimple.nextStepButton'))+\" \")])])],1)]},proxy:true}])},[_c('section',{staticClass:\"results\"},[_c('div',{staticClass:\"results__curved-background\"}),_c('div',{staticClass:\"results__links-background\"}),_c('header',{staticClass:\"results__header\"},[_c('ReferenceNumberSection',{staticClass:\"results__reference-number-badge\",attrs:{\"apiState\":_vm.apiState,\"resubmit\":_vm.resubmitReferenceNumber}}),_c('div',{staticClass:\"results__header-content\"},[_c('h1',{staticClass:\"results__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('resultsSimple.title'))+\" \")]),_c('h2',{staticClass:\"results__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('resultsSimple.subtitle'))+\" \")])])],1),_c('div',{staticClass:\"results__body\"},[_c('section',[_c('div',{staticClass:\"results__card-container\"},[_c('Card',[_c('div',{staticClass:\"question-card__body\"},[_c('div',{staticClass:\"question-card__title result-simple-question-1\"},[_vm._v(_vm._s(_vm.$t(\"basicInfo.step2.title.noname\")))])]),_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('Input',{staticClass:\"basic-information__input-with-icon\",attrs:{\"min\":\"0\",\"max\":\"30\",\"maxlength\":\"2\",\"type\":\"number\",\"invalid\":_vm.basicInfos.noReeePossible,\"append\":_vm.$t('basicInfo.step2.yearsOld')},on:{\"input\":_vm.valueInput},model:{value:(_vm.basicInfos.childAge),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"childAge\", $$v)},expression:\"basicInfos.childAge\"}}),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step2Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1),_c('div',{staticClass:\"basic-information__input-subtext\"},[(_vm.basicInfos.noGovernmentSubsidiesPossible)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.noSubsidies'))}}):_vm._e(),(_vm.basicInfos.noReeePossible)?_c('div',{staticClass:\"basic-information__no-reee\",domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.noReee'))}}):_vm._e()]),_c('div',{staticClass:\"question-card__body\"},[_c('div',{staticClass:\"question-card__title result-simple-question-2\"},[_vm._v(_vm._s(_vm.$t(\"basicInfo.step4.title\")))])]),_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[_c('fieldset',{staticClass:\"basic-information__radio-inputs\"},_vm._l((_vm.possibleProvinces),function(province){return _c('Radio',{key:province,attrs:{\"checked\":_vm.basicInfos.province === province,\"name\":\"province\",\"label\":_vm.BasicInformationViewModel.translateProvince(province)},on:{\"input\":function($event){return _vm.provinceInput(province)}}})}),1),_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('step4Drawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)]),_c('div',{staticClass:\"question-card__body\"},[_c('div',{staticClass:\"question-card__title result-simple-question-3\"},[_vm._v(_vm._s(_vm.$t(\"basicInfo.step6.title.simple\")))])]),_c('div',{staticClass:\"basic-information__input-with-icon-container\"},[(_vm.optimizationState.grantsOptimized)?_c('Input',{staticClass:\"basic-information__input-with-icon\",attrs:{\"append\":_vm.$t('basicInfo.step6.perMonth'),\"type\":\"number\",\"disabled\":\"\"},model:{value:(_vm.optimizedMonthlyContribution),callback:function ($$v) {_vm.optimizedMonthlyContribution=$$v},expression:\"optimizedMonthlyContribution\"}}):_c('Input',{staticClass:\"basic-information__input-with-icon\",attrs:{\"maxlength\":\"6\",\"append\":_vm.$t('basicInfo.step6.perMonth'),\"type\":\"number\",\"disabled\":_vm.optimizationState.grantsOptimized && _vm.optimizedMonthlyContribution},on:{\"input\":_vm.valueInput},model:{value:(_vm.basicInfos.monthlyDeposit),callback:function ($$v) {_vm.$set(_vm.basicInfos, \"monthlyDeposit\", $$v)},expression:\"basicInfos.monthlyDeposit\"}}),(_vm.grantsOptimizationEnabled)?_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('savingStrategyDrawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1):_c('button',{staticClass:\"basic-information__drawer-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('contributionLimitsDrawer', $event)}}},[_c('IconActionQuestionCircle',{staticClass:\"basic-information__drawer-help-icon\"})],1)],1),(_vm.calculated)?_c('div',{staticClass:\"optimization-section__toggle\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"optimization.grants.note\")))]),_c('Toggle',{attrs:{\"label\":_vm.$t('optimization.grants.label.simple'),\"disabled\":!_vm.grantsOptimizationEnabled},model:{value:(_vm.optimizationState.grantsOptimized),callback:function ($$v) {_vm.$set(_vm.optimizationState, \"grantsOptimized\", $$v)},expression:\"optimizationState.grantsOptimized\"}})],1):_vm._e(),_c('div',{staticClass:\"div-calculate\"},[_c('button',{staticClass:\"button button--bleu\",attrs:{\"type\":\"button\",\"disabled\":!_vm.valuesValid || !_vm.valuesChanged},on:{\"click\":_vm.calculate}},[_vm._v(\" \"+_vm._s(_vm.$t('resultsSimple.calculate'))+\" \")])])]),_c('Transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.displayedProjections[0].plan)?_c('ProjectionCard',{staticClass:\"results__card\",attrs:{\"projection\":_vm.displayedProjections[0],\"calculatorViewModel\":_vm.calculatorViewModel,\"maxProjectionTotal\":_vm.maxSavings,\"isOptimized\":_vm.optimizationState.isOptimized,\"isContributionCapped\":_vm.showMaxContributionNotice && _vm.isContributionCapped(_vm.displayedProjections[0]),\"hideSeeMore\":true}}):_vm._e()],1)],1),(_vm.showMaxContributionNotice)?_c('div',{staticClass:\"results__max-contribution-notice\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t('results.maxContributionNotice', {\n amount: _vm.NumberFormatter.formatCurrency(_vm.maxCappedProjectionTotal),\n })\n )}}):_vm._e(),_c('button',{staticClass:\"results__calculation-details-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.showDrawer('calculationDetailsDrawer', $event)}}},[_c('span',{staticClass:\"results__calculation-details-label\"},[_c('IconInformation'),_c('span',[_vm._v(_vm._s(_vm.$t('results.links.calculationDetails')))])],1),_c('IconChevron',{staticClass:\"results__calculation-details-chevron\"})],1)])])]),_c('Drawer',{ref:\"calculationDetailsDrawer\",attrs:{\"bannerSrc\":require('@/assets/image-trotinette@2x.jpg')}},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.calculatorDrawer.title'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.calculatorDrawer.paragraph1'))}})]),_c('Drawer',{ref:\"newVisualisationModal\",attrs:{\"isModal\":\"\",\"hideFooter\":\"\",\"useMinimumSpace\":\"\"}},[_c('div',{staticClass:\"results__new-visualisation-modal\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.newVisualisationModal.title'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('results.newVisualisationModal.text'))}}),_c('button',{staticClass:\"button button--secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetCalculatorState}},[_vm._v(\" \"+_vm._s(_vm.$t('results.newVisualisationModal.confirm'))+\" \")])])]),_c('Drawer',{ref:\"step2Drawer\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('basicInfo.step2.moduleTitle')))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.moduleParagraph1.noname'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step2.moduleParagraph2'))}}),_c('i18n',{attrs:{\"path\":\"basicInfo.step2.moduleParagraph3\",\"tag\":\"p\"}},[_c('TextTooltip',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step2.tooltip'))+\" \")]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.$t('basicInfo.step2.word'))+\" \")])],1)],1),_c('Drawer',{ref:\"step4Drawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleTitle'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleParagraph1'))}}),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('basicInfo.step4.moduleParagraph2'))}})]),_c('Drawer',{ref:\"contributionLimitsDrawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contribution-limits-title'))}}),_c('ul',[_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contribution-limits-bullet-1'))}}),_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contribution-limits-bullet-2'))}}),_c('li',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contribution-limits-bullet-3'))}})])]),_c('Drawer',{ref:\"savingStrategyDrawer\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.$t('saving-goal-tooltip-title'))}}),_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(\"saving-goal-tooltip-1\"))+\" \")]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('saving-goal-tooltip-2'))}}),_c('p',{staticClass:\"pt-2 color-marine-s3 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"saving-goal-tooltip-table-title\"))+\" \")]),_c('table',{staticClass:\"saving-goal-table\"},[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"saving-goal-tooltip-col-2\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"saving-goal-tooltip-col-3\")))])]),_vm._l((_vm.coutsProgrammes),function(item){return [_c('tr',{key:'niv1-' + item.niveauEtude},[_c('td',{attrs:{\"colspan\":\"2\"}},[_vm._v(_vm._s(_vm.$t(_vm.formatNiveauEtude(item.niveauEtude))))])]),_c('tr',{key:'niv2-' + item.niveauEtude},[_c('td',[_vm._v(_vm._s(_vm.NumberFormatter.formatCurrency(item.coutMoyenMaison)))]),_c('td',[_vm._v(_vm._s(_vm.NumberFormatter.formatCurrency(item.coutMoyenAppart)))])])]})],2),_c('p',{staticClass:\"pt-4 body2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"saving-goal-tooltip-note-1\"))+\" \")]),_c('p',{staticClass:\"body2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"saving-goal-tooltip-note-2\"))+\" \")]),_c('p',{staticClass:\"mb-0 body2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"saving-goal-tooltip-note-3\"))+\" \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CalculatorAPI } from '@/api/calculator';\nimport IconActionCheckCircleFull from '@/components/icons/iconActionCheckCircleFull/iconActionCheckCircleFull.vue';\nimport IconActionQuestionCircle from '@/components/icons/IconActionQuestionCircle/IconActionQuestionCircle.vue';\nimport IconChevron from '@/components/icons/iconChevron/iconChevron.vue';\nimport IconEdit from '@/components/icons/iconEdit/iconEdit.vue';\nimport IconInformation from '@/components/icons/iconInformation/iconInformation.vue';\nimport OptimizationIndicator from '@/components/optimizationIndicator/optimizationIndicator.vue';\nimport OptimizationSection from '@/components/optimizationSection/optimizationSection.vue';\nimport Page from '@/components/page/page.vue';\nimport SectionOverview from '@/components/sectionOverview/sectionOverview.vue';\nimport Badge from '@/components/ui/badge/badge.vue';\nimport Banner from '@/components/ui/banner/banner.vue';\nimport Drawer from '@/components/ui/drawer/drawer.vue';\nimport MarketingList from '@/components/ui/marketingList/marketingList.vue';\nimport ProjectionCard from '@/components/ui/projectionCard/projectionCard.vue';\nimport Card from '@/components/ui/card/card.vue';\nimport Toggle from '@/components/form/toggle/toggle.vue';\nimport Radio from '@/components/form/radio/radio.vue';\nimport TextTooltip from '@/components/ui/textTooltip/textTooltip.vue';\nimport ReferenceNumberSection from '@/components/ui/referenceNumberSection/referenceNumberSection.vue';\nimport { ApiState } from '@/models/apiState';\nimport {\n BasicInformationViewModel,\n Provinces\n} from '@/models/basicInformation';\nimport {\n CalculatorState,\n CalculatorViewModel,\n Section,\n} from '@/models/calculatorState';\nimport { OptimizationState } from '@/models/optimizationState';\nimport { Plan, Projection } from '@/models/plan';\nimport { PageScroll, Tracker } from '@/models/tracker';\nimport Vue from 'vue';\nimport NumberFormatter from '@/utils/numberFormatter';\nimport Validation from '@/models/validation';\nimport { HousingType } from '@/models/educationInformation';\n\nconst Results = Vue.extend({\n name: 'Results',\n props: {\n calculatorAPI: {\n type: Object as () => CalculatorAPI,\n required: true,\n },\n calculatorViewModel: {\n type: Object as () => CalculatorViewModel,\n required: true,\n },\n apiState: {\n type: Object as () => ApiState,\n required: true,\n },\n resetCalculatorState: {\n type: (Function as never) as () => () => void,\n required: true,\n },\n resubmitReferenceNumber: {\n type: (Function as never) as () => () => Promise,\n required: true,\n },\n optimizationState: {\n type: Object as () => OptimizationState,\n required: true,\n },\n tracker: {\n type: Object as () => Tracker,\n required: true,\n },\n },\n components: {\n Badge,\n Banner,\n Page,\n ProjectionCard,\n Card,\n Radio,\n Toggle,\n TextTooltip,\n MarketingList,\n SectionOverview,\n IconActionQuestionCircle,\n IconActionCheckCircleFull,\n IconChevron,\n IconInformation,\n IconEdit,\n ReferenceNumberSection,\n Drawer,\n OptimizationSection,\n OptimizationIndicator,\n },\n data() {\n return {\n plans: [] as Plan[],\n maxPageScrolled: PageScroll.zero,\n NumberFormatter,\n BasicInformationViewModel,\n submittedAmount: 0,\n valuesChanged: false,\n calculated: false,\n coutsProgrammes: [] as any\n };\n },\n async mounted() { \n if (this.apiState.isOutdated) {\n await this.$recaptchaLoaded();\n this.$recaptchaInstance.showBadge();\n document\n .querySelector('.grecaptcha-badge')\n ?.classList.add('results__grecaptcha-badge');\n } \n\n document.addEventListener('scroll', this.trackScroll);\n this.tracker.scroll(PageScroll.zero);\n\n if (this.valuesValid) {\n this.calculate();\n }\n },\n async beforeDestroy() {\n this.hideRecaptchaBadge();\n document.removeEventListener('scroll', this.trackScroll);\n },\n computed: {\n grantsOptimizationEnabled(): boolean {\n return !this.valuesChanged && this.calculated;\n },\n valuesValid(): boolean {\n return Validation.numberInRangeExclusive(\n this.basicInfos.childAge,\n 0,\n 18\n ) &&\n this.basicInfos.province != null &&\n Validation.numberInRangeExclusive(\n this.basicInfos.monthlyDeposit,\n 0,\n 1_000_000\n );\n },\n possibleProvinces(): Provinces[] {\n return [Provinces.Quebec, Provinces.NewBrunswick];\n },\n showMaxContributionNotice(): boolean {\n if (this.plans.length === 0 || this.optimizationState.isOptimized) {\n return false;\n }\n\n return this.plans.some(plan =>\n this.isContributionCapped(plan.baseProjection)\n );\n },\n maxSavings(): number {\n const allProjections = this.plans.flatMap(p => [\n p.baseProjection,\n p.educationProjectProjection,\n p.grantsOptimizedProjection,\n ]);\n\n return Math.max(...allProjections.map(p => p?.total ?? 0));\n },\n calculatorState(): CalculatorState {\n return CalculatorState.fromViewModel(this.calculatorViewModel);\n },\n basicInfos(): BasicInformationViewModel {\n return this.calculatorViewModel.basicInfos;\n },\n displayedProjections(): Projection[] {\n if (!this.plans?.length) {\n return [new Projection()];\n }\n\n return this.optimizationState.displayedProjections;\n },\n maxCappedProjectionTotal(): number {\n return this.displayedProjections.reduce(\n (max: number, projection: Projection) =>\n projection.total > max && this.isContributionCapped(projection)\n ? projection.total\n : max,\n 0\n );\n },\n maxProjectionTotal(): number {\n return this.displayedProjections.reduce(\n (max: number, projection: Projection) =>\n projection.total > max ? projection.total : max,\n 0\n );\n },\n optimizedMonthlyContribution(): string {\n if (this.optimizationState.grantsOptimizedProjections.length) {\n return this.optimizationState.grantsOptimizedProjections[0].monthlyDirectContributions.toFixed();\n }\n return \"\";\n }\n },\n methods: {\n async calculate() {\n try {\n this.tracker.event('calculer_calculateur');\n this.plans = await this.calculatorAPI.getPlan(Number(this.basicInfos.childAge), this.basicInfos.province as Provinces, Number(this.basicInfos.monthlyDeposit));\n \n const home = new CalculatorViewModel();\n home.basicInfos.childAge = this.basicInfos.childAge;\n home.basicInfos.province = this.basicInfos.province;\n home.educationInfos.housingType = HousingType.Home;\n const away = new CalculatorViewModel();\n away.basicInfos.childAge = this.basicInfos.childAge;\n away.basicInfos.province = this.basicInfos.province;\n away.educationInfos.housingType = HousingType.Away;\n\n Promise.all([\n this.calculatorAPI.getFutureEducationCosts(home),\n this.calculatorAPI.getFutureEducationCosts(away)\n ]).then((returnedArrays) => {\n const coutsProgrammesMaison = returnedArrays[0];\n const coutsProgrammesAppart = returnedArrays[1];\n this.coutsProgrammes = [];\n\n for (const cout of coutsProgrammesMaison.sort((a, b) => a.averageAmount - b.averageAmount)) {\n this.coutsProgrammes.push({ niveauEtude: cout.educationLevel, coutMoyenMaison: cout.averageAmount });\n const coutAppart = coutsProgrammesAppart.find((x) => x.educationLevel == cout.educationLevel);\n if (coutAppart) {\n this.coutsProgrammes[this.coutsProgrammes.length - 1].coutMoyenAppart = coutAppart.averageAmount;\n }\n }\n });\n\n this.submittedAmount = Number(this.basicInfos.monthlyDeposit);\n this.valuesChanged = false;\n this.calculated = true;\n this.optimizationState.setProjections(this.plans); \n\n // 992 est le breakpoint mobile défini dans _breakpoints.scss\n if (window.innerWidth < 992) {\n // En mobile on veut scroller pour que l'usager voit le résultat du calcul\n const elmnt = document.getElementsByClassName(\"result-simple-question-3\")[0];\n setTimeout(() => {\n elmnt.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n }, 100); \n } \n } catch {\n this.$router.push({ name: 'error' });\n }\n },\n valueInput() {\n this.optimizationState.resetOptimizations();\n this.valuesChanged = true;\n },\n provinceInput(province: Provinces) {\n this.basicInfos.province = province;\n this.valueInput();\n },\n isContributionCapped(projection: Projection): boolean {\n return projection.monthlyDirectContributions < this.submittedAmount; \n },\n trackScroll() {\n const pageScroll = this.tracker.getCurrentPageScroll();\n if (pageScroll > this.maxPageScrolled) {\n this.tracker.scroll(pageScroll);\n this.maxPageScrolled = pageScroll;\n }\n },\n trackSectionClick(section: Section) {\n if (section.isComplete) {\n const sectionName = this.$t(\n `${section.sectionName}.overview.title`,\n 'fr'\n );\n this.tracker.event('modifier_renseignement', { section: sectionName });\n } else {\n this.tracker.event(section.startSectionEventName);\n }\n },\n showDrawer(drawerName: string, event?: Event) {\n (this.$refs[drawerName] as any).show(event);\n },\n hideDrawer(drawerName: string, event?: Event) {\n (this.$refs[drawerName] as any).hide(event);\n }, \n hideRecaptchaBadge() {\n this.$recaptchaInstance.hideBadge();\n document\n .querySelector('.grecaptcha-badge')\n ?.classList.remove('results__grecaptcha-badge');\n },\n onNextStep() {\n this.tracker.event('prochaine_etape');\n this.$router.push({ name: 'makeAnAppointment' });\n }, \n formatNiveauEtude(niveauEtude: any) {\n if (niveauEtude == -1) {\n return \"no-diploma\";\n } else if (niveauEtude == 0) {\n return this.basicInfos.province == Provinces.Quebec ? \"DEP\" : \"DEP-outside-qc\";\n } else if (niveauEtude == 1) {\n return \"DECTechnique\";\n } else if (niveauEtude == 2) {\n return \"DEC\";\n } else if (niveauEtude == 3) {\n return this.basicInfos.province == Provinces.Quebec ? \"BAC\" : \"BAC-outside-qc\";\n } else if (niveauEtude == 4) {\n return \"CCNB\";\n }\n }\n },\n watch: {\n ['apiState.isOutdated']() {\n if (!this.apiState.isOutdated) {\n this.hideRecaptchaBadge();\n }\n },\n ['optimizationState.isOptimized']() {\n this.tracker.updateDimensions({\n optimizationState: this.optimizationState,\n });\n },\n ['optimizationState.grantsOptimized']() {\n if (this.optimizationState.grantsOptimized) {\n this.tracker.event('optimiser_subventions');\n }\n }\n },\n});\n\nexport default Results;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./resultsSimple.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/eslint-loader/index.js??ref--13-0!./resultsSimple.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./resultsSimple.vue?vue&type=template&id=5909139e&scoped=true&\"\nimport script from \"./resultsSimple.ts?vue&type=script&lang=ts&\"\nexport * from \"./resultsSimple.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./resultsSimple.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./resultsSimple.scss?vue&type=style&index=1&id=5909139e&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 \"5909139e\",\n null\n \n)\n\nexport default component.exports","import i18n from '@/i18n';\nimport BasicInformationWizard from '@/pages/basicInformationWizard/basicInformationWizard.vue';\nimport EducationMarketing from '@/pages/educationMarketing/educationMarketing.vue';\nimport EducationPlan from '@/pages/educationPlan/educationPlan.vue';\nimport ErrorPage from '@/pages/errorPage/errorPage.vue';\nimport FinancialMarketing from '@/pages/financialMarketing/financialMarketing.vue';\nimport FinancialSituation from '@/pages/financialSituation/financialSituation.vue';\nimport Optimization from '@/pages/optimization/optimization.vue';\nimport MakeAnAppointment from '@/pages/makeAnAppointment/makeAnAppointment.vue';\nimport PinpointResult from '@/pages/pinpointResult/pinpointResult.vue';\nimport Results from '@/pages/results/results.vue';\nimport ResultsSimple from '@/pages/resultsSimple/resultsSimple.vue';\nimport { Route, RouteConfig } from 'vue-router/types/router';\nimport { ErrorPageType } from '@/pages/errorPage/errorPage';\n\nconst routes: RouteConfig[] = [\n {\n path: i18n.t('routes.home').toString(),\n name: 'home',\n component: BasicInformationWizard,\n meta: {\n title: i18n.t('routes.home.title').toString(),\n gtm: i18n.t('routes.home.title').toString(),\n },\n },\n {\n path: i18n.t('routes.basicInformation').toString(),\n name: 'basicInformation',\n component: BasicInformationWizard,\n props: route => ({\n stepFromUrl: route.params.step,\n }),\n meta: {\n title: i18n.t('routes.basicInformation.title').toString(),\n gtm: i18n.t('routes.basicInformation.title').toString(),\n },\n },\n {\n path: i18n.t('routes.basicInformation.financial').toString(),\n name: 'basicInformationFinancial',\n component: BasicInformationWizard,\n props: route => ({\n stepFromUrl: route.params.step,\n }),\n meta: {\n title: i18n.t('routes.basicInformation.financial.title').toString(),\n gtm: i18n.t('routes.basicInformation.financial.title').toString(),\n },\n },\n {\n path: i18n.t('routes.pinpointResult').toString(),\n name: 'pinpointResult',\n component: PinpointResult,\n meta: {\n title: i18n.t('routes.pinpointResult.title').toString(),\n gtm: i18n.t('routes.pinpointResult.title').toString(),\n },\n },\n {\n path: i18n.t('routes.results').toString(),\n name: 'results',\n component: Results,\n meta: {\n title: i18n.t('routes.results.title').toString(),\n gtm: i18n.t('routes.results.title').toString(),\n },\n },\n {\n path: i18n.t('routes.resultsSimple').toString(),\n name: 'resultsSimple',\n component: ResultsSimple\n },\n {\n path: i18n.t('routes.educationPlan').toString(),\n name: 'educationPlan',\n component: EducationPlan,\n props: route => ({\n stepFromUrl: route.params.step,\n }),\n meta: {\n title: i18n.t('routes.educationPlan.title').toString(),\n gtm: i18n.t('routes.educationPlan.title').toString(),\n },\n },\n {\n path: i18n.t('routes.educationMarketing').toString(),\n name: 'educationMarketing',\n component: EducationMarketing,\n meta: {\n title: i18n.t('routes.educationMarketing.title').toString(),\n gtm: i18n.t('routes.educationMarketing.title').toString(),\n },\n },\n {\n path: i18n.t('routes.financialSituation').toString(),\n name: 'financialInformation',\n component: FinancialSituation,\n meta: {\n title: i18n.t('routes.financialSituation.title').toString(),\n gtm: i18n.t('routes.financialSituation.title').toString(),\n },\n },\n {\n path: i18n.t('routes.financialMarketing').toString(),\n name: 'financialMarketing',\n component: FinancialMarketing,\n meta: {\n title: i18n.t('routes.financialMarketing.title').toString(),\n gtm: i18n.t('routes.financialMarketing.title').toString(),\n },\n },\n {\n path: i18n.t('routes.makeAnAppointment').toString(),\n name: 'makeAnAppointment',\n component: MakeAnAppointment,\n meta: {\n title: i18n.t('routes.makeAnAppointment.title').toString(),\n gtm: i18n.t('routes.makeAnAppointment.title').toString(),\n },\n },\n {\n path: i18n.t('routes.optimization').toString(),\n name: 'optimization',\n component: Optimization,\n meta: {\n title: i18n.t('routes.optimization.title').toString(),\n gtm: i18n.t('routes.optimization.title').toString(),\n },\n },\n {\n path: i18n.t('routes.error').toString(),\n name: 'error',\n component: ErrorPage,\n meta: {\n title: i18n.t('routes.error.title').toString(),\n gtm: i18n.t('routes.error.title').toString(),\n },\n },\n {\n path: '*',\n name: 'notFound',\n component: ErrorPage,\n props: () => ({\n pageType: ErrorPageType.NotFound,\n }),\n meta: {\n title: i18n.t('routes.error.title').toString(),\n gtm: i18n.t('routes.error.title').toString(),\n },\n },\n];\n\nexport const RouterHelper = {\n isFormRoute(route: Route): boolean {\n const routeName = route.name ?? '';\n return [\n 'home',\n 'basicInformation',\n 'basicInformationFinancial',\n 'educationPlan',\n 'financialInformation',\n ].includes(routeName);\n },\n};\n\nexport default routes;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { CalculatorState, CalculatorViewModel } from '@/models/calculatorState';\nimport { OptimizationState } from '@/models/optimizationState';\nimport { Tracker } from '@/models/tracker';\nimport {\n BasicInformationState,\n BasicInformationViewModel,\n BasicInformationWizardSteps,\n} from './models/basicInformation';\nimport {\n EducationInformationState,\n EducationInformationViewModel,\n} from './models/educationInformation';\nimport {\n FinancialInformationState,\n FinancialInformationViewModel,\n} from './models/financialInformation';\nimport { FutureEducationCostState } from './models/futureEducationCost';\nimport { ReceiveResultViewModel } from './models/receiveResultViewModel';\nimport { ApiState } from './models/apiState';\nimport { CalculatorAPI } from './api/calculator';\nimport { RouterHelper } from './router/routes';\nimport EventHub from './eventHub';\n\nimport 'typeface-work-sans';\nimport 'typeface-lato';\n\nexport default Vue.extend({\n name: 'App',\n data() {\n const calculatorViewModel = new CalculatorViewModel();\n\n return {\n visualizationCount: 1,\n calculatorAPI: new CalculatorAPI(),\n calculatorViewModel,\n calculatorState: new CalculatorState(),\n apiState: new ApiState(),\n optimizationState: new OptimizationState(),\n futureEducationCostState: new FutureEducationCostState(\n calculatorViewModel\n ),\n tracker: new Tracker(this.$gtag, this.$router),\n };\n },\n created() {\n if (process.env.VUE_APP_ENABLE_HOTKEYS === 'true') {\n document.addEventListener('keydown', this.fillSections);\n }\n\n const startingRoutes = ['notFound', 'basicInformation'];\n\n if (!startingRoutes.includes(this.$route.name || '')) {\n this.replaceToFirstStep();\n }\n },\n beforeDestroy() {\n if (process.env.VUE_APP_ENABLE_HOTKEYS === 'true') {\n document.removeEventListener('keydown', this.fillSections);\n }\n },\n methods: {\n resetCalculatorState() {\n this.visualizationCount++;\n this.tracker.event('nouvelle_visualisation', {\n nombre_de_visualisations: this.visualizationCount,\n });\n\n this.apiState = new ApiState(this.apiState);\n this.calculatorViewModel = new CalculatorViewModel();\n this.calculatorState = new CalculatorState();\n this.optimizationState = new OptimizationState();\n\n this.$router.push({\n name: 'basicInformation',\n params: {\n step: this.calculatorViewModel.basicInfos.getRouteFromStep(\n BasicInformationWizardSteps.Name\n ),\n },\n });\n },\n replaceToFirstStep(): void {\n // this.$router.replace({\n // name: 'basicInformation',\n // params: {\n // step: this.calculatorViewModel.basicInfos.getRouteFromStep(\n // BasicInformationWizardSteps.Name\n // ),\n // },\n // });\n },\n sendThemHome(): void {\n // this.$router.push({\n // name: 'basicInformation',\n // params: {\n // step: this.calculatorViewModel.basicInfos.getRouteFromStep(\n // BasicInformationWizardSteps.Name\n // ),\n // },\n // });\n },\n async fillSections(event: KeyboardEvent) {\n if (!event.ctrlKey) {\n return;\n }\n\n if (event.key === '1' || event.keyCode === 49) {\n this.calculatorViewModel.basicInfos = BasicInformationViewModel.getTestData();\n this.calculatorState.basicInfos = BasicInformationState.fromViewModel(\n this.calculatorViewModel.basicInfos\n );\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n this.$router.push({ name: 'pinpointResult' });\n return;\n }\n\n if (event.key === '2' || event.keyCode === 50) {\n const educationVm = EducationInformationViewModel.getTestData();\n this.calculatorViewModel.educationInfos = educationVm;\n this.calculatorState.educationInfos = EducationInformationState.fromViewModel(\n educationVm\n );\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (\n this.calculatorViewModel.financialInfos.isComplete &&\n this.$route.name !== 'results'\n ) {\n this.$router.push({ name: 'results' });\n } else if (this.$route.name !== 'pinpointResult') {\n this.$router.push({ name: 'pinpointResult' });\n }\n return;\n }\n\n if (event.key === '3' || event.keyCode === 51) {\n const financialVm = FinancialInformationViewModel.getTestData();\n this.calculatorViewModel.financialInfos = financialVm;\n this.calculatorState.financialInfos = FinancialInformationState.fromViewModel(\n financialVm\n );\n\n this.tracker.updateDimensions({\n calculatorViewModel: this.calculatorViewModel,\n });\n\n if (\n this.calculatorViewModel.educationInfos.isComplete &&\n this.$route.name !== 'results'\n ) {\n this.$router.push({ name: 'results' });\n } else if (this.$route.name !== 'pinpointResult') {\n this.$router.push({ name: 'pinpointResult' });\n }\n return;\n }\n\n if (event.key === '4' || event.keyCode === 52) {\n if (this.apiState.referenceNumber == null) {\n await this.saveResult(ReceiveResultViewModel.testData());\n } else {\n const vm = this.calculatorViewModel.clone();\n vm.basicInfos.childName = 'Robin';\n vm.basicInfos.startingAmount = 10000;\n this.apiState.onViewModelUpdate(vm);\n }\n return;\n }\n\n if (event.key === '5' || event.keyCode === 53) {\n this.calculatorViewModel.basicInfos = BasicInformationViewModel.getTestData();\n this.calculatorState.basicInfos = BasicInformationState.fromViewModel(\n this.calculatorViewModel.basicInfos\n );\n this.$router.push({ name: 'makeAnAppointment' });\n return;\n }\n\n if (event.key === '6' || event.keyCode === 54) {\n this.calculatorAPI.toggleForceError();\n console.log('force error:', this.calculatorAPI.forceError);\n return;\n }\n },\n async saveResult(viewModel: ReceiveResultViewModel): Promise {\n await this.$recaptchaLoaded();\n viewModel.recaptchaResponse = await this.$recaptchaInstance.execute();\n\n const referenceNumber = (\n await this.calculatorAPI.saveResult(\n viewModel,\n this.calculatorState,\n this.optimizationState\n )\n ).toString();\n\n if (viewModel.saveResult) {\n this.apiState.updateReferenceNumber({\n referenceNumber,\n referenceNumberData: this.calculatorViewModel,\n submissionData: viewModel,\n });\n } else if (viewModel.scheduleAppointment) {\n this.apiState.makeAppointment();\n }\n\n this.tracker.updateDimensions({ apiState: this.apiState });\n\n return referenceNumber;\n },\n async resubmitReferenceNumber(): Promise {\n try {\n if (this.apiState.submissionData) {\n this.tracker.event('maj_numero_reference');\n await this.saveResult(this.apiState.submissionData);\n }\n } catch {\n this.$router.push({ name: 'error' });\n }\n },\n },\n watch: {\n $route(newRoute, old) {\n this.tracker.pageview(newRoute);\n\n const routeName = this.$route.name ?? '';\n const startingRoutes = [\n 'basicInformation',\n 'basicInformationFinancial',\n 'notFound',\n ];\n\n this.apiState.onRouteChange();\n\n if (this.$route.name === 'home') {\n this.replaceToFirstStep();\n } else if (\n !this.calculatorViewModel.basicInfos.isComplete &&\n this.calculatorState.basicInfos == null &&\n !startingRoutes.includes(routeName)\n ) {\n this.sendThemHome();\n }\n\n if (\n RouterHelper.isFormRoute(old) &&\n !RouterHelper.isFormRoute(this.$route)\n ) {\n this.apiState.onViewModelUpdate(this.calculatorViewModel);\n }\n\n EventHub.$emit('hideAllDrawers');\n },\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=3414a67f&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.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\nexport default component.exports","import Router from 'vue-router';\nimport Vue from 'vue';\nimport i18n from '@/i18n';\nimport routes from './routes';\n\nVue.use(Router);\n\nconst router = new Router({\n base: window.location.pathname,\n routes,\n});\n\nrouter.beforeEach((to, _, next) => {\n\n if (to.name != \"resultsSimple\" && to.name != \"makeAnAppointment\" && to.name != \"error\") {\n return next({ name: \"resultsSimple\" }); \n }\n\n document.body.setAttribute('tabindex', '-1');\n document.body.focus();\n document.body.removeAttribute('tabindex');\n\n const nearestTitle = to.matched\n .slice()\n .reverse()\n .find(r => r.meta && r.meta.title)?.meta.title;\n\n if (nearestTitle) {\n document.title = `${nearestTitle} | ${i18n.t('routes.titleSuffix')}`;\n } else {\n document.title = i18n.t('routes.titleSuffix').toString();\n }\n\n next();\n});\n\nexport default router;\n","import App from './App.vue';\nimport Input from './components/form/input/input.vue';\nimport PortalVue from 'portal-vue';\nimport Select from './components/form/select/select.vue';\nimport Vue from 'vue';\nimport router from './router';\nimport i18n from './i18n';\nimport NumberFormatter from './utils/numberFormatter';\nimport Drawer from './components/ui/drawer/drawer.vue';\nimport { VueReCaptcha } from 'vue-recaptcha-v3';\nimport VueGtag from 'vue-gtag';\n\nVue.use(VueGtag, {\n config: {\n id: process.env.VUE_APP_GA_ID,\n params: {\n send_page_view: false,\n },\n }\n});\n\nVue.config.productionTip = false;\n\nVue.component('Input', Input);\nVue.component('Select', Select);\nVue.component('Drawer', Drawer);\n\nVue.use(PortalVue);\n\nVue.filter('currency', NumberFormatter.formatCurrency);\n\nVue.use(VueReCaptcha, {\n siteKey: process.env.VUE_APP_RECAPTCHA_KEY,\n loaderOptions: {\n autoHideBadge: true,\n renderParameters: {\n hl: document.documentElement.lang === 'fr' ? 'fr-CA' : 'en',\n },\n },\n});\n\nwindow.onload = function() {\n // IE maintains form state between page refreshes, which messes with Vue's\n // lifecycle events. We manually reset all form elements values to an empty\n // string to mimic other browsers.\n const inputs = Array.from(\n document.querySelectorAll('input, select, textarea')\n );\n inputs.forEach(elem => ((elem as HTMLInputElement).value = ''));\n};\n\nwindow.onbeforeunload = function() {\n // IE maintains form focus between page refreshes, which breaks our multi-step\n // forms. Here, we reset the focus before leaving the page to work around that\n // behavior.\n document.body.setAttribute('tabindex', '-1');\n document.body.focus();\n document.body.removeAttribute('tabindex');\n};\n\nnew Vue({\n el: '#app',\n render: h => h(App),\n i18n,\n router,\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./arbitraryTooltip.scss?vue&type=style&index=0&id=34238274&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./educationMarketing.scss?vue&type=style&index=0&id=ca044352&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/image-escalier@3x.955033a0.jpg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./tooltip.scss?vue&type=style&index=0&id=0fd0e714&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/image-roulade@3x.3ec5f66b.jpg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resultsSimple.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./optimization.scss?vue&type=style&index=0&id=2b121baa&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./basicInformationWizard.vue?vue&type=style&index=0&id=00e261e9&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./needHelp.scss?vue&type=style&index=0&id=c3598a70&lang=scss&scoped=true&\""],"sourceRoot":""}