{"version":3,"file":"js/app.678e1685.js","mappings":"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3B,MAAO,MAET,CACE63B,MAAO,iBACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,aACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,cACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,uBACP73B,MAAO,MAET,CACE63B,MAAO,iCACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,OACP73B,MAAO,MAET,CACE63B,MAAO,SACP73B,MAAO,MAET,CACE63B,MAAO,QACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,OACP73B,MAAO,MAET,CACE63B,MAAO,SACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,YACP73B,MAAO,MAET,CACE63B,MAAO,QACP73B,MAAO,MAET,CACE63B,MAAO,mBACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,gBACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,YACP73B,MAAO,MAET,CACE63B,MAAO,cACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,SACP73B,MAAO,MAET,CACE63B,MAAO,gBACP73B,MAAO,MAET,CACE63B,MAAO,aACP73B,MAAO,MAET,CACE63B,MAAO,aACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,iBACP73B,MAAO,MAET,CACE63B,MAAO,eACP73B,MAAO,MAET,CACE63B,MAAO,2BACP73B,MAAO,MAET,CACE63B,MAAO,OACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,SACP73B,MAAO,MAET,CACE63B,MAAO,QACP73B,MAAO,MAET,CACE63B,MAAO,eACP73B,MAAO,MAET,CACE63B,MAAO,cACP73B,MAAO,MAET,CACE63B,MAAO,eACP73B,MAAO,MAET,CACE63B,MAAO,iBACP73B,MAAO,MAET,CACE63B,MAAO,eACP73B,MAAO,MAET,CACE63B,MAAO,YACP73B,MAAO,MAET,CACE63B,MAAO,QACP73B,MAAO,MAET,CACE63B,MAAO,OACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAET,CACE63B,MAAO,iBACP73B,MAAO,MAET,CACE63B,MAAO,WACP73B,MAAO,MAET,CACE63B,MAAO,aACP73B,MAAO,MAET,CACE63B,MAAO,gBACP73B,MAAO,MAET,CACE63B,MAAO,YACP73B,MAAO,MAET,CACE63B,MAAO,UACP73B,MAAO,MAGb,CAEA,SAAS2rC,IACP,MAAO,CACL,CACE9T,MAAO,QACP73B,MAAO,IAET,CACE63B,MAAO,WACP73B,MAAO,IAGb,CAEA,SAAS4rC,IACP,MAAO,CACL,CACE/T,MAAO,aACP73B,OAAO,GAET,CACE63B,MAAO,MACP73B,OAAO,GAGb,CAEA,SAAS6rC,IACP,MAAO,CACL,CACEhU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAAS8rC,IACP,MAAO,CACL,CACEjU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAAS+rC,IACP,MAAO,CACL,CACElU,MAAO,YACP73B,OAAO,GAET,CACE63B,MAAO,YACP73B,OAAO,GAGb,CAEA,SAASgsC,IACP,MAAO,CACL,CACEnU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,qCACP73B,OAAO,GAGb,CAEA,SAASisC,IACP,MAAO,CACL,CACEpU,MAAO,OACP73B,MAAO,IAET,CACE63B,MAAO,WACP73B,MAAO,IAET,CACE63B,MAAO,UACP73B,MAAO,IAET,CACE63B,MAAO,UACP73B,MAAO,IAGb,CAEA,SAASksC,IACP,MAAO,CACL,CACErU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAASmsC,IACP,MAAO,CACL,CACEtU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAASosC,EAAej3B,GACtB,MAAsB,sBAAlBA,EACK,CACL,CACE0iB,MAAO,gCACP73B,MAAO,KAET,CACE63B,MAAO,OACP73B,MAAO,KAET,CACE63B,MAAO,sBACP73B,MAAO,KAET,CACE63B,MAAO,yBACP73B,MAAO,MAIJ,CACL,CACE63B,MAAO,sBACP73B,MAAO,KAET,CACE63B,MAAO,yBACP73B,MAAO,KAET,CACE63B,MAAO,OACP73B,MAAO,KAET,CACE63B,MAAO,QACP73B,MAAO,KAIf,CAEA,SAASqsC,IACP,MAAO,CACL,CACExU,MAAO,SACP73B,OAAO,GAET,CACE63B,MAAO,UACP73B,OAAO,GAGb,CAEA,SAASssC,IACP,MAAO,CACL,CACEzU,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAASusC,IACP,MAAO,CACL,CACE1U,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEA,SAASwsC,IACP,MAAO,CACL,CACE3U,MAAO,MACP73B,OAAO,GAET,CACE63B,MAAO,KACP73B,OAAO,GAGb,CAEAoH,eAAeqlC,IACb,IAAIC,EAAoB,GACpBC,EAAqB,GACrBC,EAAgB,GAEpB,MAAMhrB,QAAgBzf,EAAAA,EAAKyf,QAAQjG,yBACnC,GAAIiG,EAAQirB,aAAc,CACxBH,EAAoB9qB,EAAQirB,aAC5B,MAAMA,EAAejrB,EAAQirB,aAAap+B,KAAKq+B,IACtC,CACLjV,MAAOiV,EAAYjvC,KACnBmC,MAAO8sC,EAAY3tC,OAGvBwtC,EAAqBE,C,CAGvB,GAAIjrB,E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","sources":["webpack://borrower-application/./src/components/modals/SupportModal.vue?e9af","webpack://borrower-application/./src/components/modals/SupportModal.vue?f892","webpack://borrower-application/./src/components/modals/SupportModal.vue","webpack://borrower-application/./src/components/shared/ApplicationSteps.vue?884a","webpack://borrower-application/./src/components/shared/ApplicationSteps.vue","webpack://borrower-application/./src/components/shared/CircleLoader.vue?8e1c","webpack://borrower-application/./src/components/shared/CircleLoader.vue","webpack://borrower-application/./src/components/shared/Loader.vue?c8ee","webpack://borrower-application/./src/components/shared/Loader.vue","webpack://borrower-application/./src/components/shared/ModalSmallRefi.vue?9daa","webpack://borrower-application/./src/components/shared/ModalSmallRefi.vue?00ac","webpack://borrower-application/./src/components/shared/ModalSmallRefi.vue","webpack://borrower-application/./src/components/shared/feedback/Star.vue?f53f","webpack://borrower-application/./src/components/shared/feedback/Star.vue","webpack://borrower-application/./src/components/shared/feedback/StarRating.vue?8b09","webpack://borrower-application/./src/components/shared/feedback/StarRating.vue","webpack://borrower-application/./src/components/shared/feedback/Feedback.vue?6449","webpack://borrower-application/./src/components/shared/feedback/Feedback.vue","webpack://borrower-application/./src/components/shared/layout/FooterRefi.vue?21ca","webpack://borrower-application/./src/components/shared/layout/FooterRefi.vue","webpack://borrower-application/./src/components/shared/layout/Header.vue?e228","webpack://borrower-application/./src/components/shared/layout/Header.vue","webpack://borrower-application/./src/views/ApplicationRefi.vue?58de","webpack://borrower-application/./src/components/modals/SupportModalRefi.vue?30ba","webpack://borrower-application/./src/components/modals/SupportModalRefi.vue?316f","webpack://borrower-application/./src/components/modals/SupportModalRefi.vue","webpack://borrower-application/./src/components/shared/ApplicationPageRefi.vue?443e","webpack://borrower-application/./src/components/shared/ApplicationPageRefi.vue","webpack://borrower-application/./src/components/shared/ApplicationStepRefi.vue?2112","webpack://borrower-application/./src/components/shared/ApplicationStepRefi.vue","webpack://borrower-application/./src/views/ApplicationRefi.vue?f01e","webpack://borrower-application/./src/views/ApplicationRefi.vue","webpack://borrower-application/./src/config/constants.ts","webpack://borrower-application/./src/config/enums.ts","webpack://borrower-application/./src/App.vue?f3c9","webpack://borrower-application/./src/App.vue?4547","webpack://borrower-application/./src/App.vue","webpack://borrower-application/./src/views/Application.vue?4948","webpack://borrower-application/./src/components/shared/ApplicationPage.vue?1aa4","webpack://borrower-application/./src/components/shared/ApplicationPage.vue","webpack://borrower-application/./src/components/shared/ApplicationStep.vue?1147","webpack://borrower-application/./src/components/shared/ApplicationStep.vue","webpack://borrower-application/./src/views/Application.vue?41b7","webpack://borrower-application/./src/views/Application.vue","webpack://borrower-application/./src/router/index.ts","webpack://borrower-application/./src/config/environment.ts","webpack://borrower-application/./src/main.ts","webpack://borrower-application/./src/services/api.ts","webpack://borrower-application/./src/store/loanConfigurationModule.ts","webpack://borrower-application/./src/store/candidateRefiLoansModule.ts","webpack://borrower-application/./src/use/arrayHelpers.ts","webpack://borrower-application/./src/store/showMyRatesModule.ts","webpack://borrower-application/./src/store/refiLoanConfigurationModule.ts","webpack://borrower-application/./src/store/refiRatesSelfSelectModule.ts","webpack://borrower-application/./src/store/pelRatesSelfSelectModule.ts","webpack://borrower-application/./src/store/applicantPersonalInformationModule.ts","webpack://borrower-application/./src/store/applicationDecisionModule.ts","webpack://borrower-application/./src/store/documentsModule.ts","webpack://borrower-application/./src/store/consentsModule.ts","webpack://borrower-application/./src/store/index.ts","webpack://borrower-application/./src/use/application.ts","webpack://borrower-application/./src/use/formHelpers.ts","webpack://borrower-application/./src/use/formatter.ts","webpack://borrower-application/./src/use/leftPanelText.ts","webpack://borrower-application/webpack/bootstrap","webpack://borrower-application/webpack/runtime/chunk loaded","webpack://borrower-application/webpack/runtime/compat get default export","webpack://borrower-application/webpack/runtime/create fake namespace object","webpack://borrower-application/webpack/runtime/define property getters","webpack://borrower-application/webpack/runtime/ensure chunk","webpack://borrower-application/webpack/runtime/get javascript chunk filename","webpack://borrower-application/webpack/runtime/get mini-css chunk filename","webpack://borrower-application/webpack/runtime/global","webpack://borrower-application/webpack/runtime/hasOwnProperty shorthand","webpack://borrower-application/webpack/runtime/load script","webpack://borrower-application/webpack/runtime/make namespace object","webpack://borrower-application/webpack/runtime/node module decorator","webpack://borrower-application/webpack/runtime/publicPath","webpack://borrower-application/webpack/runtime/css loading","webpack://borrower-application/webpack/runtime/jsonp chunk loading","webpack://borrower-application/webpack/startup"],"sourcesContent":["import { createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e041c2f8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\"Contact Us\")\nconst _hoisted_2 = { class: \"content-container\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"If you need to contact our concierge team, they are available by:\", -1))\nconst _hoisted_4 = { class: \"email-wrapper\" }\nconst _hoisted_5 = { class: \"left\" }\nconst _hoisted_6 = {\n title: \"Email\",\n class: \"fa-layers fa-fw\"\n}\nconst _hoisted_7 = { class: \"right\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"row subheader\" }, \"Email\", -1))\nconst _hoisted_9 = { class: \"row\" }\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = { class: \"phone-wrapper\" }\nconst _hoisted_12 = { class: \"left\" }\nconst _hoisted_13 = {\n title: \"Phone\",\n class: \"fa-layers fa-fw\"\n}\nconst _hoisted_14 = { class: \"right\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"row subheader\" }, \"Phone\", -1))\nconst _hoisted_16 = { class: \"content\" }\nconst _hoisted_17 = { class: \"row\" }\nconst _hoisted_18 = [\"href\"]\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"row\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Agents are available by phone 24 hours a day, 7 days a week.\")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_font_awesome_layers = _resolveComponent(\"font-awesome-layers\")!\n const _component_modal_small_refi = _resolveComponent(\"modal-small-refi\")!\n\n return (_openBlock(), _createBlock(_component_modal_small_refi, {\n class: \"support-modal\",\n closeBtn: true,\n onClose: _ctx.close\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"section\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-regular fa-circle\",\n class: \"circle\",\n size: \"10x\"\n }),\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-envelope\",\n class: \"icon\",\n transform: \"shrink-7\"\n })\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"a\", {\n class: \"email-link\",\n href: `mailto:${_ctx.emailAddress}`\n }, _toDisplayString(_ctx.emailAddress), 9, _hoisted_10)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"section\", null, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-regular fa-circle\",\n class: \"circle\",\n size: \"10x\"\n }),\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-phone\",\n class: \"icon\",\n transform: \"shrink-7\"\n })\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"a\", {\n class: \"phone-link\",\n href: `tel:+${_ctx.tollFreeNumber}`\n }, _toDisplayString(_ctx.tollFreeNumber ? _ctx.tollFreeNumber : \"1-800-734-4540\"), 9, _hoisted_18)\n ]),\n _hoisted_19\n ])\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"onClose\"]))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapState } from \"vuex\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport ModalSmallRefi from \"../shared/ModalSmallRefi.vue\";\r\n\r\nexport default defineComponent({\r\n components: { ModalSmallRefi, FontAwesomeIcon },\r\n computed: {\r\n ...mapState([\"lenderData\"]),\r\n emailAddress(): string {\r\n return this.lenderData && this.lenderData.supportEmailAddress\r\n ? this.lenderData.supportEmailAddress\r\n : \"member_support@studentchoice.org\";\r\n },\r\n tollFreeNumber(): string {\r\n return this.lenderData && this.lenderData.tollFreeNumber ? this.lenderData.tollFreeNumber : undefined;\r\n },\r\n },\r\n methods: {\r\n close(event: any) {\r\n this.$emit(\"close\", event);\r\n },\r\n },\r\n});\r\n","import { render } from \"./SupportModal.vue?vue&type=template&id=e041c2f8&scoped=true&ts=true\"\nimport script from \"./SupportModal.vue?vue&type=script&lang=ts\"\nexport * from \"./SupportModal.vue?vue&type=script&lang=ts\"\n\nimport \"./SupportModal.vue?vue&type=style&index=0&id=e041c2f8&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e041c2f8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4bc40dd1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"application-steps-wrapper\" }\n\nimport { withDefaults } from \"vue\";\r\n\r\ninterface Props {\r\n stepScroll: string;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApplicationSteps',\n props: {\n stepScroll: { default: \"1\" }\n },\n setup(__props: any) {\n\nconst props = __props as { stepScroll: string }\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"application-steps\",\n style: _normalizeStyle({ bottom: __props.stepScroll })\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 4)\n ]))\n}\n}\n\n})","import script from \"./ApplicationSteps.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApplicationSteps.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ApplicationSteps.vue?vue&type=style&index=0&id=4bc40dd1&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4bc40dd1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47e61ea4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"loader\" }, null, -1))\nconst _hoisted_2 = [\n _hoisted_1\n]\n\n\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CircleLoader',\n props: {\r\n stretch: Boolean,\r\n inverse: Boolean\r\n},\n setup(__props) {\n\nconst props = __props\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"loader-wrapper\", {\r\n stretched: __props.stretch,\r\n inverse: __props.inverse,\r\n }])\n }, _hoisted_2, 2))\n}\n}\n\n})","import script from \"./CircleLoader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CircleLoader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CircleLoader.vue?vue&type=style&index=0&id=47e61ea4&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47e61ea4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ac92d4da\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"dot-floating\" }, null, -1))\n\nimport { withDefaults } from \"vue\";\r\n\r\nexport interface Props {\r\n msg?: string\r\n stretch?: boolean\r\n inverse?: boolean\r\n}\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Loader',\n props: {\n msg: { default: '' },\n stretch: { type: Boolean },\n inverse: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as { msg: string, stretch?: boolean, inverse?: boolean }\n\r\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"loader-wrapper\", {\r\n stretched: __props.stretch,\r\n inverse: __props.inverse,\r\n }])\n }, [\n _renderSlot(_ctx.$slots, \"default\"),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./Loader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Loader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=ac92d4da&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ac92d4da\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, mergeProps as _mergeProps, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/modal-close.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e4fa79e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"modal-wrapper\" }\nconst _hoisted_2 = { class: \"modal-container\" }\nconst _hoisted_3 = { class: \"modal-header\" }\nconst _hoisted_4 = { class: \"modal-title\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"subheader\"\n}\nconst _hoisted_6 = {\n key: 1,\n class: \"header\"\n}\nconst _hoisted_7 = {\n key: 2,\n class: \"postheader\"\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Close modal button\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"modal-body\" }\nconst _hoisted_11 = { class: \"modal-footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_Transition, { name: \"modal\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _mergeProps({ class: \"modal-mask\" }, _ctx.$attrs), [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_ctx.$slots.subheader)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"subheader\", {}, undefined, true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$slots.header)\n ? (_openBlock(), _createElementBlock(\"h1\", _hoisted_6, [\n _renderSlot(_ctx.$slots, \"header\", {}, undefined, true)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.$slots.postheader)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, [\n _renderSlot(_ctx.$slots, \"postheader\", {}, undefined, true)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.closeBtn)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"\",\n class: \"close-btn\",\n \"aria-label\": \"Close\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$emit('close')), [\"prevent\"]))\n }, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _renderSlot(_ctx.$slots, \"footer\", {}, undefined, true)\n ])\n ])\n ])\n ], 16)\n ]),\n _: 3\n }))\n}","\r\nimport { defineComponent } from \"@vue/runtime-core\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n closeBtn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n name: \"Modal\",\r\n beforeMount() {\r\n // When displaying a modal we tell the body that we don't\r\n // want the background to scroll\r\n const body = document.querySelector(\"body\");\r\n if (body) {\r\n body.style.overflow = \"hidden\";\r\n }\r\n },\r\n beforeUnmount() {\r\n // Right before we exit the modal we tell the body to perform as it did before\r\n const body = document.querySelector(\"body\");\r\n if (body) {\r\n body.style.overflow = \"visible\";\r\n }\r\n },\r\n});\r\n","import { render } from \"./ModalSmallRefi.vue?vue&type=template&id=e4fa79e6&scoped=true&ts=true\"\nimport script from \"./ModalSmallRefi.vue?vue&type=script&lang=ts\"\nexport * from \"./ModalSmallRefi.vue?vue&type=script&lang=ts\"\n\nimport \"./ModalSmallRefi.vue?vue&type=style&index=0&id=e4fa79e6&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e4fa79e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"fill\", \"data-test\"]\n\nimport {\r\n defineProps,\r\n computed,\r\n defineEmits,\r\n withDefaults,\r\n} from \"@vue/runtime-core\";\r\n\r\ninterface Props {\r\n index: number;\r\n hoverRating: number;\r\n rating: number;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Star',\n props: {\n index: null,\n hoverRating: null,\n rating: null\n },\n emits: [\"setHoverRating\"],\n setup(__props: any, { emit }) {\n\nconst props = __props as { index: number, hoverRating: number, rating: number }\n\r\n\r\n\r\n\r\n\r\nconst isActive = computed(() => {\r\n return (\r\n props.index <= props.hoverRating ||\r\n (props.hoverRating === 0 && props.index <= props.rating)\r\n );\r\n});\r\n\r\nfunction setHoverRating() {\r\n emit(\"setHoverRating\", { index: props.index });\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"svg\", {\n id: \"svgelem\",\n width: 50,\n height: 50,\n xmlns: \"http://www.w3.org/2000/svg\",\n onMouseover: setHoverRating\n }, [\n _createElementVNode(\"polygon\", {\n points: \"19.8, 2.2, 6.6, 43.56, 39.6, 17.16, 0, 17.16, 33, 43.56\",\n fill: _unref(isActive) ? '#ffd055' : '#d8d8d8',\n \"data-test\": _unref(isActive)\n }, null, 8, _hoisted_1)\n ], 32))\n}\n}\n\n})","import script from \"./Star.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Star.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b7aa88de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"star-rating\" }\n\nimport { defineProps, ref, defineEmits, withDefaults } from \"@vue/runtime-core\";\r\nimport Star from \"./Star.vue\";\r\n\r\ninterface Props {\r\n hoverRating: number;\r\n rating: number;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StarRating',\n props: {\n hoverRating: null,\n rating: null\n },\n emits: [\"rating\", \"hover-rating\"],\n setup(__props: any, { emit }) {\n\nconst props = __props as { hoverRating: number, rating: number }\n\r\n\r\n\r\n\r\nconst stars = ref(5);\r\n\r\nfunction setHoverRating(event: any, index: number) {\r\n emit(\"hover-rating\", {\r\n event: event,\r\n hoverRating: index,\r\n });\r\n}\r\n\r\nfunction setRating(index: number) {\r\n emit(\"rating\", {\r\n rating: index,\r\n });\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(stars.value, (index) => {\n return (_openBlock(), _createBlock(Star, {\n key: index,\n index: index,\n hoverRating: __props.hoverRating,\n rating: __props.rating,\n onSetHoverRating: ($event: any) => (setHoverRating($event, index)),\n onClick: ($event: any) => (setRating(index))\n }, null, 8, [\"index\", \"hoverRating\", \"rating\", \"onSetHoverRating\", \"onClick\"]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./StarRating.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StarRating.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StarRating.vue?vue&type=style&index=0&id=b7aa88de&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b7aa88de\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, vModelRadio as _vModelRadio, withDirectives as _withDirectives, vModelText as _vModelText, vShow as _vShow, withModifiers as _withModifiers, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4a87d6ad\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Feedback\", -1))\nconst _hoisted_2 = [\n _hoisted_1\n]\nconst _hoisted_3 = { class: \"title\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { class: \"reason-for-contact\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"Have additional feedback?\", -1))\nconst _hoisted_7 = [\"id\", \"name\", \"value\"]\nconst _hoisted_8 = [\"for\"]\nconst _hoisted_9 = { class: \"form-group contact-reason\" }\nconst _hoisted_10 = [\"disabled\", \"onClick\"]\nconst _hoisted_11 = { class: \"disclosure\" }\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" Thank you for your feedback! If you require a response, please click \")\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\" for support options. \")\n\nimport { inject, ref, computed, onMounted } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport StarRating from \"@/components/shared/feedback/StarRating.vue\";\r\nimport { PostFeedbackRequest, FeedbackRequestOption } from \"@/models/feedback\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Feedback',\n emits: [\"showSupportModal\"],\n setup(__props, { emit }) {\n\r\nconst store = useStore();\r\nconst gtag = inject(\"gtag\");\r\nconst title = ref(\"How would you rate your experience?\");\r\nconst displayFeedbackForm = ref(false);\r\nconst rating = ref(0);\r\nconst hoverRating = ref(0);\r\nconst categoryId = ref(0);\r\nconst message = ref(\"\");\r\nconst errorMessage = ref(\"\");\r\nconst sending = ref(false);\r\nconst submitted = ref(false);\r\nconst options = computed(() => store.getters[\"feedbackFormOptions\"]);\r\nconst lenderId = computed(() => store.state?.appData?.application?.lenderId);\r\nconst applicationId = computed(() => store.state?.appData?.application?.id);\r\nconst applicantId = computed(() => {\r\n if (store.state?.appData?.applicants && store.state?.appData?.applicants?.length > 0) {\r\n return store.state?.appData?.applicants[store.state?.appData?.applicants?.length - 1]?.id;\r\n } else {\r\n return null;\r\n }\r\n});\r\nconst defaultOptionId = computed(\r\n () => options.value?.find((o: FeedbackRequestOption) => o?.category === \"General\")?.id,\r\n);\r\n\r\n\r\nfunction reset() {\r\n title.value = \"How would you rate your experience?\";\r\n submitted.value = false;\r\n rating.value = 0;\r\n hoverRating.value = 0;\r\n categoryId.value = 0;\r\n message.value = \"\";\r\n errorMessage.value = \"\";\r\n}\r\n\r\nfunction closeFeedback() {\r\n displayFeedbackForm.value = false;\r\n setTimeout(() => {\r\n reset();\r\n }, 500);\r\n}\r\n\r\nfunction setHoverRating(event: any) {\r\n hoverRating.value = event.hoverRating;\r\n}\r\n\r\nfunction setRating(event: any) {\r\n rating.value = event.rating;\r\n}\r\n\r\nfunction handleError() {\r\n sending.value = false;\r\n errorMessage.value = \"Feedback could not be submitted.\";\r\n}\r\n\r\nfunction displayFeedback() {\r\n displayFeedbackForm.value = true;\r\n gtag.event(\"feedback_opened\", {\r\n event_category: \"engagement\",\r\n event_label: \"Feedback Opened\",\r\n });\r\n}\r\n\r\nfunction submitFeedback() {\r\n sending.value = true;\r\n errorMessage.value = \"\";\r\n\r\n $api.feedback\r\n .sendFeedback({\r\n formId: 2, // Borrower App Initiated\r\n lenderId: lenderId.value,\r\n categoryId: categoryId.value <= 0 ? defaultOptionId.value : categoryId.value, // default to general if they don't select\r\n rating: rating.value,\r\n message: message.value,\r\n metadata: {\r\n applicationId: applicationId.value,\r\n applicantId: applicantId.value,\r\n },\r\n } as PostFeedbackRequest)\r\n .then((result: any) => {\r\n if (result.error) {\r\n handleError();\r\n } else {\r\n title.value = \"Thank you for sharing your feedback with us!\";\r\n sending.value = false;\r\n submitted.value = true;\r\n }\r\n })\r\n .catch((error: any) => {\r\n console.log(\"ERROR\", error);\r\n handleError();\r\n });\r\n}\r\n\r\nonMounted(() => {\r\n store.dispatch(\"getFeedbackFormOptions\");\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: \"feedback-tab\",\n onClick: displayFeedback\n }, _hoisted_2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"feedback-form\", { active: displayFeedbackForm.value, submitted: submitted.value }])\n }, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"close-btn\",\n onClick: closeFeedback\n }, \"X\"),\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(title.value), 1),\n (submitted.value)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, \" We appreciate your input about your experience on our site. This information will be used to help us improve. \"))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createVNode(StarRating, {\n rating: rating.value,\n hoverRating: hoverRating.value,\n onRating: setRating,\n onHoverRating: setHoverRating,\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (hoverRating.value = 0))\n }, null, 8, [\"rating\", \"hoverRating\"]),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(options), (option, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"custom-control custom-radio custom-control-inline\"\n }, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"radio\",\n id: option?.category?.toLowerCase(),\n name: option?.category?.toLowerCase(),\n value: option?.id,\n class: \"custom-control-input\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((categoryId).value = $event))\n }, null, 8, _hoisted_7), [\n [_vModelRadio, categoryId.value]\n ]),\n _createElementVNode(\"label\", {\n class: \"custom-control-label\",\n for: option?.category?.toLowerCase()\n }, _toDisplayString(option?.category), 9, _hoisted_8)\n ]))\n }), 128)),\n _withDirectives(_createElementVNode(\"div\", _hoisted_9, [\n _withDirectives(_createElementVNode(\"textarea\", {\n class: \"form-control\",\n id: \"contactReason\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((message).value = $event)),\n placeholder: \"Share your experience but refrain from including any sensitive personal information such as account numbers or usernames.\",\n rows: \"4\",\n maxlength: \"800\"\n }, null, 512), [\n [_vModelText, message.value]\n ])\n ], 512), [\n [_vShow, categoryId.value > 0]\n ])\n ]),\n _withDirectives(_createElementVNode(\"div\", { class: \"error-message\" }, _toDisplayString(errorMessage.value), 513), [\n [_vShow, errorMessage.value !== '']\n ]),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"btn feedback-btn\",\n disabled: rating.value <= 0 || sending.value,\n onClick: _withModifiers(submitFeedback, [\"prevent\"])\n }, _toDisplayString(sending.value ? \"Sending...\" : \"Send Feedback\"), 9, _hoisted_10),\n _createElementVNode(\"p\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"span\", {\n class: \"underline\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('showSupportModal')))\n }, \"here\"),\n _hoisted_13\n ])\n ], 64))\n ], 2)\n ], 64))\n}\n}\n\n})","import script from \"./Feedback.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Feedback.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Feedback.vue?vue&type=style&index=0&id=4a87d6ad&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4a87d6ad\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7ebca5fc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\" By using this site, you accept our \")\nconst _hoisted_3 = [\"href\"]\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\" and \")\nconst _hoisted_5 = {\n key: 0,\n href: \"https://www.bcu.org/Legal/Privacy-Policy\",\n target: \"_blank\"\n}\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\" Privacy Policy \")\n\nimport { withDefaults, computed, ref } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\r\ninterface Props {\r\n externalLinks: boolean;\r\n lenderId: number;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FooterRefi',\n props: {\n externalLinks: { type: Boolean, default: false },\n lenderId: { default: 0 }\n },\n setup(__props: any) {\n\nconst props = __props as { externalLinks: boolean, lenderId: number }\n\r\n\r\n\r\nconst year = computed(() => {\r\n return new Date().getFullYear();\r\n});\r\nconst store = useStore();\r\nconst identityUrl = computed(() => store.state.lenderData?.identityUrl);\r\nconst getCdnImagesUrl = computed(() => store.getters.cuLogoUrl);\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _createElementVNode(\"p\", null, [\n _hoisted_2,\n _createElementVNode(\"a\", {\n href: `${_unref(identityUrl)}/Home/Terms`,\n target: \"_blank\"\n }, \"Terms of Use\", 8, _hoisted_3),\n _hoisted_4,\n (__props.lenderId === 1023)\n ? (_openBlock(), _createElementBlock(\"a\", _hoisted_5, \"Privacy Policy\"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n to: { name: 'privacyPolicy', query: { lid: __props.lenderId } },\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"to\"]))\n ]),\n _createElementVNode(\"p\", null, \"© \" + _toDisplayString(_unref(year)) + \" Student Choice. All rights reserved.\", 1)\n ]))\n}\n}\n\n})","import script from \"./FooterRefi.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FooterRefi.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FooterRefi.vue?vue&type=style&index=0&id=7ebca5fc&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7ebca5fc\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"application-page-header\" }\nconst _hoisted_2 = { class: \"cu-logo-wrapper\" }\nconst _hoisted_3 = [\"src\"]\n\nimport { computed } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Header',\n setup(__props) {\n\r\nconst store = useStore();\r\nconst cuLogoUrl = computed(() => store.getters[\"cuLogoUrl\"]);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n src: _unref(cuLogoUrl),\n alt: \"Logo\",\n class: \"cu-logo\"\n }, null, 8, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./Header.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Header.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=233198f2&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, withCtx as _withCtx, createSlots as _createSlots } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"previous-loader\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_circle_loader = _resolveComponent(\"circle-loader\")!\n const _component_application_step_refi = _resolveComponent(\"application-step-refi\")!\n const _component_application_steps = _resolveComponent(\"application-steps\")!\n const _component_application_page_refi = _resolveComponent(\"application-page-refi\")!\n\n return (_openBlock(), _createBlock(_component_application_page_refi, null, _createSlots({\n default: _withCtx(() => [\n (_ctx.previousLoading || _ctx.currentStep > _ctx.statesPath.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_circle_loader)\n ]))\n : (_openBlock(), _createBlock(_component_application_steps, {\n key: 1,\n \"step-scroll\": _ctx.stepScroll\n }, {\n default: _withCtx(() => [\n (_ctx.appData)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.statesPath, (state, index) => {\n return (_openBlock(), _createBlock(_component_application_step_refi, {\n key: index,\n route: state.route,\n application: _ctx.appData,\n path: _ctx.path,\n loading: _ctx.loading,\n \"previous-loading\": _ctx.previousLoading,\n \"is-current\": _ctx.isCurrent(state),\n onPrevious: _ctx.previous,\n onComplete: _ctx.stepComplete\n }, {\n default: _withCtx(() => [\n (_ctx.loading)\n ? (_openBlock(), _createBlock(_component_circle_loader, {\n key: 0,\n inverse: true\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"route\", \"application\", \"path\", \"loading\", \"previous-loading\", \"is-current\", \"onPrevious\", \"onComplete\"]))\n }), 128))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"step-scroll\"]))\n ]),\n _: 2\n }, [\n (_ctx.appData)\n ? {\n name: \"ad\",\n fn: _withCtx(() => [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.leftPanelText), 1)\n ])\n }\n : undefined\n ]), 1024))\n}","import { createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5881d4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\"Contact Us\")\nconst _hoisted_2 = { class: \"content-container\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"If you need to contact our concierge team, they are available by:\", -1))\nconst _hoisted_4 = { class: \"email-wrapper\" }\nconst _hoisted_5 = { class: \"left\" }\nconst _hoisted_6 = {\n title: \"Email\",\n class: \"fa-layers fa-fw\"\n}\nconst _hoisted_7 = { class: \"right\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"row subheader\" }, \"Email\", -1))\nconst _hoisted_9 = { class: \"row\" }\nconst _hoisted_10 = [\"href\"]\nconst _hoisted_11 = { class: \"phone-wrapper\" }\nconst _hoisted_12 = { class: \"left\" }\nconst _hoisted_13 = {\n title: \"Phone\",\n class: \"fa-layers fa-fw\"\n}\nconst _hoisted_14 = { class: \"right\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"row subheader\" }, \"Phone\", -1))\nconst _hoisted_16 = { class: \"content\" }\nconst _hoisted_17 = { class: \"row\" }\nconst _hoisted_18 = [\"href\"]\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"row\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, \"Agents are available by phone 24 hours a day, 7 days a week.\")\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_font_awesome_layers = _resolveComponent(\"font-awesome-layers\")!\n const _component_modal_small_refi = _resolveComponent(\"modal-small-refi\")!\n\n return (_openBlock(), _createBlock(_component_modal_small_refi, {\n class: \"support-modal\",\n closeBtn: true,\n onClose: _ctx.close\n }, {\n header: _withCtx(() => [\n _hoisted_1\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"section\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-regular fa-circle\",\n class: \"circle\",\n size: \"10x\"\n }),\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-envelope\",\n class: \"icon\",\n transform: \"shrink-7\"\n })\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"a\", {\n class: \"email-link\",\n href: `mailto:${_ctx.emailAddress}`\n }, _toDisplayString(_ctx.emailAddress), 9, _hoisted_10)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"section\", null, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-regular fa-circle\",\n class: \"circle\",\n size: \"10x\"\n }),\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-phone\",\n class: \"icon\",\n transform: \"shrink-7\"\n })\n ]),\n _: 1\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"a\", {\n class: \"phone-link\",\n href: `tel:+${_ctx.tollFreeNumber}`\n }, _toDisplayString(_ctx.tollFreeNumber ? _ctx.tollFreeNumber : \"1-800-734-4540\"), 9, _hoisted_18)\n ]),\n _hoisted_19\n ])\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"onClose\"]))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapState } from \"vuex\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport ModalSmallRefi from \"../shared/ModalSmallRefi.vue\";\r\n\r\nexport default defineComponent({\r\n components: { ModalSmallRefi, FontAwesomeIcon },\r\n computed: {\r\n ...mapState([\"lenderData\"]),\r\n emailAddress(): string {\r\n return this.lenderData && this.lenderData.supportEmailAddress\r\n ? this.lenderData.supportEmailAddress\r\n : \"member_support@studentchoice.org\";\r\n },\r\n tollFreeNumber(): string {\r\n return this.lenderData && this.lenderData.tollFreeNumber ? this.lenderData.tollFreeNumber : undefined;\r\n },\r\n },\r\n methods: {\r\n close(event: any) {\r\n this.$emit(\"close\", event);\r\n },\r\n },\r\n});\r\n","import { render } from \"./SupportModalRefi.vue?vue&type=template&id=5881d4c8&scoped=true&ts=true\"\nimport script from \"./SupportModalRefi.vue?vue&type=script&lang=ts\"\nexport * from \"./SupportModalRefi.vue?vue&type=script&lang=ts\"\n\nimport \"./SupportModalRefi.vue?vue&type=style&index=0&id=5881d4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5881d4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = [\"value\"]\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = { class: \"application-ad\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = {\n key: 0,\n class: \"error-message\"\n}\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"p\", null, \" We apologize, but we are not able to process your request at this time. If you continue to receive this message please contact support. \", -1)\nconst _hoisted_10 = [\n _hoisted_9\n]\n\nimport { computed, ref, onMounted } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useApplication from \"@/use/application\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { $api } from \"@/services/api\";\r\nimport Loader from \"@/components/shared/Loader.vue\";\r\nimport Footer from \"@/components/shared/layout/FooterRefi.vue\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport SupportModal from \"@/components/modals/SupportModalRefi.vue\";\r\nimport { AppData } from \"@/models/application\";\r\nimport Header from \"@/components/shared/layout/Header.vue\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApplicationPageRefi',\n props: {\r\n externalLinks: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n},\n setup(__props) {\n\nconst props = __props\n\r\n\r\n\r\nconst store = useStore();\r\nconst route = useRoute();\r\nconst router = useRouter();\r\nconst { formatHexToRgb } = useFormatter();\r\nconst { getLenderConfigurationByAppId } = useApplication();\r\n\r\nconst showSupportModal = ref(false);\r\nconst error = ref(false);\r\nconst loading = ref(true);\r\n\r\nconst lid = computed(() => store.state?.lenderData?.lid || route.query?.lid || 0);\r\n\r\nconst productTypeId = computed(\r\n () => store.state.appData?.application?.productTypeId || route.query?.productTypeId || 0,\r\n);\r\n\r\nconst programTypeId = computed(\r\n () => store.state.appData?.application?.programTypeId || route.query?.programTypeId || 0,\r\n);\r\n\r\nconst leadSourceId = computed(() => localStorage.getItem(\"leadSourceId\") || route.query?.leadSourceId || 1);\r\nconst applicationTypeId = computed(() => {\r\n if (store?.state?.appData?.application?.metadata?.withCoApplicants !== undefined) {\r\n return store?.state?.appData?.application?.metadata?.withCoApplicants === true ? 2 : 1;\r\n } else {\r\n return 0;\r\n }\r\n});\r\n\r\nconst lenderData = computed(() => store.state.lenderData);\r\nconst themeStyle = computed(() => {\r\n // SA color: #f7941e\r\n // Default Green: #01675a\r\n const themeRgb = formatHexToRgb(lenderData?.value?.primaryColor);\r\n const secondaryRgb = formatHexToRgb(lenderData?.value?.secondaryColor);\r\n const primaryColor = lenderData?.value?.primaryColor;\r\n const secondaryColor = lenderData?.value?.secondaryColor;\r\n\r\n return {\r\n \"--theme-color\": primaryColor,\r\n \"--theme-color-rgb\": `${themeRgb.r}, ${themeRgb.g}, ${themeRgb.b}`,\r\n \"--secondary-color\": secondaryColor,\r\n \"--secondary-color-rgb\": `${secondaryRgb.r}, ${secondaryRgb.g}, ${secondaryRgb.b}`,\r\n };\r\n});\r\n\r\nasync function getLenderDataByQuery() {\r\n const host = window.location.hostname;\r\n const param = route.params as any;\r\n let lenderConfig = {} as any;\r\n\r\n const query = route.query as any;\r\n if (!query.programTypeId) {\r\n lenderConfig = await $api.configuration.getLenderConfigurationByLenderId(query?.lid ?? 0);\r\n } else {\r\n lenderConfig = await $api.configuration.getLenderConfiguration(\r\n query?.lid ?? 0,\r\n query.programTypeId ?? 0,\r\n query.productTypeId ?? 0,\r\n );\r\n }\r\n\r\n await store.dispatch(\"updateLenderData\", lenderConfig);\r\n}\r\n\r\nasync function handleAppData(appData: any, query: any) {\r\n if (appData && !appData?.errors) {\r\n // Handle redirect urls\r\n if (appData?.redirectUrl) {\r\n window.location.href = `${appData?.redirectUrl}`;\r\n } else {\r\n // handle storing lead in localStorage until ready to submit to DB\r\n window.localStorage.setItem(\"appInProgress\", JSON.stringify(appData));\r\n await store.dispatch(\"setAppData\", appData);\r\n // Clear out the query parameters\r\n query.appId = undefined;\r\n console.log(\"vuex state this.appData\", store.state?.appData);\r\n const lenderConfig = await getLenderConfigurationByAppId(store.state?.appData?.application?.id);\r\n await store.dispatch(\"updateLenderData\", lenderConfig);\r\n router.replace({ query });\r\n }\r\n }\r\n}\r\n\r\nasync function startNewApplication(): Promise {\r\n // only performs check on lower environments\r\n const host = window.location.hostname;\r\n const query = route.query as any;\r\n const param = route.params as any;\r\n let appData: AppData | undefined;\r\n console.log(\"Inside startNewApplication()\");\r\n\r\n // Assumed if we get to this point they are starting a new application,\r\n // so we process any data passed in as a lead\r\n // Validate that query parameters exist in query\r\n await getLenderDataByQuery();\r\n\r\n appData = await $api.leads.processLead(query);\r\n\r\n if (appData?.redirectUrl) {\r\n window.location.href = `${appData?.redirectUrl}`;\r\n }\r\n\r\n localStorage.setItem(\"leadSourceId\", query.leadSourceId ? query.leadSourceId : 0);\r\n localStorage.setItem(\"productTypeId\", param.productTypeId ? param.productTypeId : query.productTypeId);\r\n\r\n return appData;\r\n}\r\n\r\nonMounted(async () => {\r\n loading.value = true;\r\n // TODO: Figure out how we are going to get lender information\r\n const query = route.query as any;\r\n const appInProgress = window.localStorage.getItem(\"appInProgress\");\r\n let appData: AppData | undefined;\r\n\r\n if (query.appId) {\r\n console.log(\"Retrieving application\", query.appId);\r\n // See if the user is trying to pull up existing application\r\n appData = await $api.applications.getApplication(query.appId);\r\n } else if (appInProgress) {\r\n console.log(\"Inside localStorage\");\r\n // User may have an application still saved in local storage we can access\r\n appData = JSON.parse(appInProgress);\r\n console.log(\"lenderid matches query?.lid\", query?.lid !== appData?.application?.lenderId);\r\n // compare query?.lid to appData.application.lenderId (for invite flow)\r\n // start new application when incoming query?.lid does not match appInProgress lenderId at any point in application\r\n if (query?.lid !== undefined && query?.lid !== appData?.application?.lenderId) {\r\n console.log(\"clearing localstorage\");\r\n window.localStorage.clear();\r\n appData = await startNewApplication();\r\n }\r\n } else {\r\n appData = await startNewApplication();\r\n }\r\n\r\n await handleAppData(appData, query);\r\n loading.value = false;\r\n});\r\n\r\n//#TODO add watcher on programTypeId property for application to always have latest program info\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_layers = _resolveComponent(\"font-awesome-layers\")!\n\n return (loading.value)\n ? (_openBlock(), _createBlock(Loader, {\n key: 0,\n stretch: true,\n inverse: true\n }))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createVNode(Header, {\n style: _normalizeStyle(_unref(themeStyle))\n }, null, 8, [\"style\"]),\n _createElementVNode(\"div\", {\n class: \"application-page\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"lid\",\n name: \"lid\",\n value: _unref(lid)\n }, null, 8, _hoisted_1),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"productTypeId\",\n name: \"productTypeId\",\n value: _unref(productTypeId)\n }, null, 8, _hoisted_2),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"programTypeId\",\n name: \"programTypeId\",\n value: _unref(programTypeId)\n }, null, 8, _hoisted_3),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"leadSourceId\",\n name: \"leadSourceId\",\n value: _unref(leadSourceId)\n }, null, 8, _hoisted_4),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"applicationTypeId\",\n name: \"applicationTypeId\",\n value: _unref(applicationTypeId)\n }, null, 8, _hoisted_5),\n _createElementVNode(\"div\", _hoisted_6, [\n (error.value)\n ? (_openBlock(), _createElementBlock(\"h1\", _hoisted_7, \"Something has gone wrong.\"))\n : _renderSlot(_ctx.$slots, \"ad\", { key: 1 })\n ]),\n (error.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _hoisted_10))\n : _renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 4),\n (_unref(lid) > 0)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"support-wrapper\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createElementVNode(\"a\", {\n title: \"Support\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (showSupportModal.value = true)),\n href: \"#\",\n class: \"support\"\n }, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_unref(FontAwesomeIcon), {\n icon: \"fa-solid fa-circle\",\n class: \"circle\"\n }),\n _createVNode(_unref(FontAwesomeIcon), {\n icon: \"fa-solid fa-headset\",\n transform: \"shrink-6\",\n class: \"icon\",\n style: { color: 'white' }\n })\n ]),\n _: 1\n })\n ])\n ], 4))\n : _createCommentVNode(\"\", true),\n (showSupportModal.value)\n ? (_openBlock(), _createBlock(SupportModal, {\n key: 1,\n style: _normalizeStyle(_unref(themeStyle)),\n id: \"supportModal\",\n onClose: _cache[1] || (_cache[1] = ($event: any) => (showSupportModal.value = false))\n }, null, 8, [\"style\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"application-page-footer\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createVNode(Footer, {\n \"external-links\": __props.externalLinks,\n \"lender-id\": _unref(lenderData)?.lid\n }, null, 8, [\"external-links\", \"lender-id\"])\n ], 4)\n ], 64))\n}\n}\n\n})","import script from \"./ApplicationPageRefi.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApplicationPageRefi.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ApplicationPageRefi.vue?vue&type=style&index=0&id=4e16b92b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { defineAsyncComponent, ref, computed } from \"vue\";\r\nimport Feedback from \"@/components/shared/feedback/Feedback.vue\";\r\nimport SupportModal from \"@/components/modals/SupportModal.vue\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApplicationStepRefi',\n props: {\r\n route: { type: String, required: true },\r\n application: { type: Object, required: true },\r\n path: { type: String, required: true },\r\n loading: { type: Boolean, required: true },\r\n previousLoading: { type: Boolean, required: true },\r\n isCurrent: { type: Boolean, required: true },\r\n},\n emits: [\"previous\", \"complete\"],\n setup(__props, { emit }) {\n\nconst props = __props\n\r\nconst RefiChoosePath = defineAsyncComponent(() => import(\"../application/RefiChoosePath.vue\"));\r\nconst RefiSchoolInfo = defineAsyncComponent(() => import(\"../application/RefiSchoolInfo.vue\"));\r\nconst RefiPersonalInfoPartOne = defineAsyncComponent(() => import(\"../application/RefiPersonalInfoPartOne.vue\"));\r\nconst RefiPersonalInfoPartTwo = defineAsyncComponent(() => import(\"../application/RefiPersonalInfoPartTwo.vue\"));\r\nconst RefiIsPresentInfoPartOne = defineAsyncComponent(() => import(\"../application/RefiIsPresentInfoPartOne.vue\"));\r\nconst RefiIsPresentInfoPartTwo = defineAsyncComponent(() => import(\"../application/RefiIsPresentInfoPartTwo.vue\"));\r\nconst RefiConsent = defineAsyncComponent(() => import(\"../application/RefiConsent.vue\"));\r\nconst RefiRegistration = defineAsyncComponent(() => import(\"../application/RefiRegistration.vue\"));\r\nconst RefiSpouseInfo = defineAsyncComponent(() => import(\"../application/RefiSpouseInfo.vue\"));\r\nconst RefiApproval = defineAsyncComponent(() => import(\"../application/Approval.vue\"));\r\nconst RefiAdditionalInfo = defineAsyncComponent(() => import(\"../application/RefiAdditionalInfo.vue\"));\r\nconst RefiInvitedApplicant = defineAsyncComponent(() => import(\"../application/RefiInvitedApplicant.vue\"));\r\nconst RefiInvitedApplicantInfoPartOne = defineAsyncComponent(\r\n () => import(\"../application/RefiInvitedApplicantInfoPartOne.vue\"),\r\n);\r\nconst RefiInvitedApplicantInfoPartTwo = defineAsyncComponent(\r\n () => import(\"../application/RefiInvitedApplicantInfoPartTwo.vue\"),\r\n);\r\nconst RefiAddCosigner = defineAsyncComponent(() => import(\"../application/RefiAddCosigner.vue\"));\r\nconst RefiLoanConfiguration = defineAsyncComponent(() => import(\"../application/RefiLoanConfiguration.vue\"));\r\nconst RefiShowMyRates = defineAsyncComponent(() => import(\"../application/RefiShowMyRates.vue\"));\r\nconst RefiShowMyRatesExit = defineAsyncComponent(() => import(\"../application/RefiShowMyRatesExit.vue\"));\r\nconst RefiUnderlyingLoansToRefinance = defineAsyncComponent(\r\n () => import(\"../show-my-rates/RefiUnderlyingLoansToRefinance.vue\"),\r\n);\r\nconst RefiAddNewCosigner = defineAsyncComponent(() => import(\"../application/RefiAddNewCosigner.vue\"));\r\n\r\n\r\n\r\n\r\nconst showSupportModal = ref(false);\r\nconst coApplicant = ref(\"Co-Applicant\");\r\nconst primaryApplicant = ref(\"Primary Applicant\");\r\nconst primaryApplicantDisplayName = ref(\"Borrower\");\r\nconst coApplicantDisplayName = ref(\"Cosigner\");\r\n\r\nfunction className(route: string) {\r\n const coApplicantRoutes = [\r\n \"coborrowerPersonalInfo\",\r\n \"coborrowerPersonalInfoContinued\",\r\n \"coborrowerRegistration\",\r\n \"coborrowerAdditionalInfo\",\r\n \"coborrowerHardPullConsent\",\r\n \"coborrowerInfo\",\r\n \"coborrowerInfoContinued\",\r\n \"coborrowerMaritalStatus\",\r\n \"coborrowerInvited\",\r\n \"coborrowerInvitedApplicantInfo\",\r\n \"coborrowerInvitedApplicantInfoContinued\",\r\n \"refiCosignerPersonalInfo\",\r\n \"refiCosignerPersonalInfoContinued\",\r\n \"refiCosignerInfo\",\r\n \"refiCosignerInfoContinued\",\r\n \"refiCosignerInvited\",\r\n \"refiCosignerInvitedApplicantInfo\",\r\n \"refiCosignerInvitedApplicantInfoContinued\",\r\n \"refiCosignerRegistration\",\r\n \"refiCosignerMaritalStatus\",\r\n \"refiCosignerUnderlyingLoansToRefinance\",\r\n \"refiCosignerAdditionalInfo\",\r\n \"refiCosignerHardPullConsent\",\r\n ];\r\n\r\n return coApplicantRoutes.includes(props.route) === true ? `${route} co-borrower` : `${route}`;\r\n}\r\n// functions that mutate state and trigger updates\r\nfunction previous(event: any) {\r\n emit(\"previous\", event);\r\n}\r\nfunction complete(event: any) {\r\n emit(\"complete\", event);\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"application-step\", className])\n }, [\n (__props.route === 'refiChooseBorrowerCoSigner')\n ? (_openBlock(), _createBlock(_unref(RefiChoosePath), {\n key: 0,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\"]))\n : (__props.route === 'refiSchoolInformation')\n ? (_openBlock(), _createBlock(_unref(RefiSchoolInfo), {\n key: 1,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\"]))\n : (__props.route === 'refiBorrowerPersonalInfo')\n ? (_openBlock(), _createBlock(_unref(RefiPersonalInfoPartOne), {\n key: 2,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerPersonalInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiPersonalInfoPartTwo), {\n key: 3,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerPersonalInfo')\n ? (_openBlock(), _createBlock(_unref(RefiPersonalInfoPartOne), {\n key: 4,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerPersonalInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiPersonalInfoPartTwo), {\n key: 5,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiShowMyRates')\n ? (_openBlock(), _createBlock(_unref(RefiShowMyRates), {\n key: 6,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\"]))\n : (__props.route === 'refiShowMyRatesExit')\n ? (_openBlock(), _createBlock(_unref(RefiShowMyRatesExit), { key: 7 }))\n : (__props.route === 'refiCosignerRegistration')\n ? (_openBlock(), _createBlock(_unref(RefiRegistration), {\n key: 8,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerAdditionalInfo')\n ? (_openBlock(), _createBlock(_unref(RefiAdditionalInfo), {\n key: 9,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n path: __props.path,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\", \"path\"]))\n : (__props.route === 'refiCosignerAdditionalInfo')\n ? (_openBlock(), _createBlock(_unref(RefiAdditionalInfo), {\n key: 10,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n path: __props.path,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\", \"path\"]))\n : (__props.route === 'refiCosignerHardPullConsent')\n ? (_openBlock(), _createBlock(_unref(RefiConsent), {\n key: 11,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerInfo')\n ? (_openBlock(), _createBlock(_unref(RefiIsPresentInfoPartOne), {\n key: 12,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiIsPresentInfoPartTwo), {\n key: 13,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiAddCosigner')\n ? (_openBlock(), _createBlock(_unref(RefiAddCosigner), {\n key: 14,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\"]))\n : (__props.route === 'refiAddNewCosigner')\n ? (_openBlock(), _createBlock(_unref(RefiAddNewCosigner), {\n key: 15,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\"]))\n : (__props.route === 'refiCosignerInfo')\n ? (_openBlock(), _createBlock(_unref(RefiIsPresentInfoPartOne), {\n key: 16,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiIsPresentInfoPartTwo), {\n key: 17,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerRegistration')\n ? (_openBlock(), _createBlock(_unref(RefiRegistration), {\n key: 18,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerHardPullConsent')\n ? (_openBlock(), _createBlock(_unref(RefiConsent), {\n key: 19,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiApproval')\n ? (_openBlock(), _createBlock(_unref(RefiApproval), {\n key: 20,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\"]))\n : (__props.route === 'refiLoanConfiguration')\n ? (_openBlock(), _createBlock(_unref(RefiLoanConfiguration), {\n key: 21,\n loading: __props.loading,\n \"previous-loading\": __props.previousLoading,\n \"is-current\": __props.isCurrent,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"previous-loading\", \"is-current\"]))\n : (__props.route === 'refiCosignerMaritalStatus')\n ? (_openBlock(), _createBlock(_unref(RefiSpouseInfo), {\n key: 22,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerMaritalStatus')\n ? (_openBlock(), _createBlock(_unref(RefiSpouseInfo), {\n key: 23,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerInvited')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicant), {\n key: 24,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerInvited')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicant), {\n key: 25,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerInvitedApplicantInfo')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicantInfoPartOne), {\n key: 26,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerInvitedApplicantInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicantInfoPartTwo), {\n key: 27,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerInvitedApplicantInfo')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicantInfoPartOne), {\n key: 28,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerInvitedApplicantInfoContinued')\n ? (_openBlock(), _createBlock(_unref(RefiInvitedApplicantInfoPartTwo), {\n key: 29,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiBorrowerUnderlyingLoansToRefinance')\n ? (_openBlock(), _createBlock(_unref(RefiUnderlyingLoansToRefinance), {\n key: 30,\n \"previous-loading\": __props.previousLoading,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": primaryApplicant.value,\n \"applicant-type-display-name\": primaryApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"previous-loading\", \"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : (__props.route === 'refiCosignerUnderlyingLoansToRefinance')\n ? (_openBlock(), _createBlock(_unref(RefiUnderlyingLoansToRefinance), {\n key: 31,\n loading: __props.loading,\n \"is-current\": __props.isCurrent,\n \"applicant-type\": coApplicant.value,\n \"applicant-type-display-name\": coApplicantDisplayName.value,\n onPrevious: previous,\n onComplete: complete\n }, null, 8, [\"loading\", \"is-current\", \"applicant-type\", \"applicant-type-display-name\"]))\n : _renderSlot(_ctx.$slots, \"default\", { key: 32 }),\n _createVNode(Feedback, {\n onShowSupportModal: _cache[0] || (_cache[0] = ($event: any) => (showSupportModal.value = true))\n }),\n (showSupportModal.value)\n ? (_openBlock(), _createBlock(SupportModal, {\n key: 33,\n id: \"supportModal\",\n onClose: _cache[1] || (_cache[1] = ($event: any) => (showSupportModal.value = false))\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./ApplicationStepRefi.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApplicationStepRefi.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ApplicationStepRefi.vue?vue&type=style&index=0&id=d59a81b6&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-d59a81b6\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapState } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport * as jsonPatch from \"fast-json-patch\";\r\nimport useLeftPanelText from \"@/use/leftPanelText\";\r\nimport ApplicationPageRefi from \"@/components/shared/ApplicationPageRefi.vue\";\r\nimport ApplicationSteps from \"@/components/shared/ApplicationSteps.vue\";\r\nimport ApplicationStepRefi from \"@/components/shared/ApplicationStepRefi.vue\";\r\nimport CircleLoader from \"@/components/shared/CircleLoader.vue\";\r\nimport {\r\n AppData,\r\n Applicant,\r\n ApplicantObserver,\r\n Application,\r\n ComparatorFunction,\r\n State,\r\n Transition,\r\n Validation,\r\n} from \"@/models/application\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const { getCurrentText } = useLeftPanelText();\r\n return { getCurrentText };\r\n },\r\n components: {\r\n ApplicationPageRefi,\r\n ApplicationSteps,\r\n ApplicationStepRefi,\r\n CircleLoader,\r\n },\r\n data: () => ({\r\n currentStep: 1,\r\n path: \"\",\r\n loading: false,\r\n previousLoading: false,\r\n statesPath: [] as State[],\r\n compareAppData: {} as AppData,\r\n appObserver: {} as jsonPatch.Observer,\r\n applicantObservers: [] as ApplicantObserver[],\r\n updatedApplicant: undefined as any,\r\n }),\r\n computed: {\r\n ...mapState([\"appData\", \"leftPanelText\"]),\r\n states(): any[] {\r\n return this.appData.statesSeen || [];\r\n },\r\n stepScroll(): string {\r\n return `${(this.currentStep - 1) * 100}%`;\r\n },\r\n },\r\n methods: {\r\n ...mapActions([\"setAppData\", \"setLeftPanelText\"]),\r\n async previous(event: any) {\r\n this.previousLoading = true;\r\n this.appData.currentState = this.appData.previousState;\r\n this.appData.statesSeen.push(this.appData.currentState);\r\n\r\n // Update currentStep index first update statesPath\r\n const newStates = this.statesPath;\r\n\r\n // Push the current state to the stack if we are at 0\r\n // If the length is greater than 1 we already have what we need\r\n if (newStates.length <= 1) {\r\n newStates.unshift(this.appData.currentState);\r\n this.currentStep--;\r\n }\r\n\r\n this.statesPath = newStates;\r\n\r\n // Set the current state order\r\n this.appData.currentState.order = this.appData.statesSeen.length - 1;\r\n await this.updateAppData();\r\n\r\n this.updateLeftPanel();\r\n this.currentStep--;\r\n this.statesPath.pop();\r\n this.previousLoading = false;\r\n // Automatically refresh component to get around the Uncaught TypeError\r\n location.reload();\r\n console.log(\"PREVIOUS COMPLETE\", this.currentStep, this.statesPath);\r\n },\r\n async stepComplete(data: any) {\r\n this.loading = true;\r\n console.log(\"stepComplete() event data\", data);\r\n\r\n // 1. Verify what the current state is, and compare it to the last item in statesSeen\r\n // 2. If last state seen, grab the right transition and move it into statesSeen\r\n if ((this.appData.transitions || []).length > 0) {\r\n let state: any;\r\n\r\n if (this.appData.transitions.length > 1) {\r\n let stateSet = false;\r\n this.appData.transitions = this.appData.transitions.sort((a: any, b: any) => {\r\n if (a.comparatorFunction === null) {\r\n return 1;\r\n }\r\n if (b.comparatorFunction === null) {\r\n return -1;\r\n }\r\n if (b.comparatorFunction) {\r\n return 0;\r\n }\r\n });\r\n\r\n this.appData.transitions.forEach((transition: Transition, index: number) => {\r\n if (stateSet) {\r\n return;\r\n }\r\n\r\n if (transition.comparatorFunction && transition.comparatorFunction.trim() !== \"\") {\r\n try {\r\n const comparison: ComparatorFunction = JSON.parse(transition.comparatorFunction);\r\n if (comparison.validation && comparison.validation.length > 0) {\r\n let valid = comparison.type === \"AND\";\r\n comparison.validation.forEach((validation: Validation) => {\r\n let compareData = data[validation.property];\r\n\r\n if (compareData && typeof compareData === \"string\") {\r\n compareData = compareData.trim();\r\n }\r\n\r\n // Verify which type of comparison we need to perform\r\n const compareValue =\r\n validation.operator === \"ne\"\r\n ? compareData !== validation.value\r\n : compareData === validation.value;\r\n\r\n // Take comapreValue and append it to current valid state\r\n valid = comparison.type === \"AND\" ? valid && compareValue : valid || compareValue;\r\n });\r\n\r\n if (valid) {\r\n state = transition;\r\n stateSet = true;\r\n }\r\n }\r\n } catch (ex) {\r\n // not proper JSON stored. Just skipping\r\n console.error(\"Could not parse comparator function\", ex);\r\n }\r\n }\r\n\r\n // Make sure a transition gets added no matter what\r\n if (state === undefined && index === this.appData.transitions.length - 1) {\r\n state = transition;\r\n stateSet = true;\r\n }\r\n });\r\n } else {\r\n state = this.appData.transitions[0];\r\n }\r\n\r\n if (state !== undefined) {\r\n this.appData.statesSeen.push({\r\n name: state.name,\r\n route: state.route,\r\n fsStateID: state.fsStateID,\r\n // Get current length since order starts at 0\r\n order: this.appData.statesSeen.length,\r\n programTypeId: state.programTypeId,\r\n });\r\n this.appData.previousState = this.appData.currentState;\r\n }\r\n }\r\n\r\n if (data?.updatedPerson) {\r\n this.updatedApplicant = data.updatedPerson;\r\n }\r\n\r\n // 4. Update the Application data\r\n await this.updateAppData();\r\n\r\n // Add step first in an attempt to provide cleaner transition\r\n this.statesPath.push(this.appData.currentState);\r\n this.currentStep++;\r\n\r\n console.log(\"STEP COMPLETE\", this.currentStep, this.statesPath);\r\n\r\n // Clear query after first step / after starting a new application\r\n let query = Object.assign({}, this.$route.query);\r\n if (query?.lid && query?.productTypeId && query?.leadSourceId) {\r\n localStorage.setItem(\"product\", `${query?.productTypeId}`);\r\n\r\n delete query?.leadSourceId;\r\n delete query?.productTypeId;\r\n delete query?.programTypeId;\r\n delete query?.lid;\r\n\r\n this.$router.replace({ query });\r\n }\r\n\r\n this.loading = false;\r\n },\r\n isCurrent(state: State) {\r\n const current = this.appData.currentState;\r\n return current.fsStateID === state.fsStateID && current.order === state.order;\r\n },\r\n updateLeftPanel() {\r\n this.setLeftPanelText(this.getCurrentText(this.appData.currentState?.route || \"\"));\r\n },\r\n setAppDataDisplay() {\r\n //Pull application out of state\r\n if (this.appData) {\r\n this.refreshObservers();\r\n\r\n if (this.appData.currentState && this.statesPath.length <= 0) {\r\n this.statesPath = [this.appData.currentState];\r\n }\r\n\r\n this.updateLeftPanel();\r\n }\r\n },\r\n refreshObservers() {\r\n if (this.appData) {\r\n if (this.appData.application) {\r\n if (this.appData.application.schoolConfiguration === null) {\r\n this.appData.application.schoolConfiguration = undefined;\r\n }\r\n\r\n this.appObserver = jsonPatch.observe(this.appData.application);\r\n }\r\n\r\n if (this.appData.applicants && this.appData.applicants.length > 0) {\r\n // Loop over array and create observers for each\r\n this.applicantObservers = this.appData.applicants.map((applicant: Applicant) => {\r\n if (applicant.contactInfo === null) {\r\n applicant.contactInfo = undefined;\r\n }\r\n if (applicant.spouse === null) {\r\n applicant.spouse = undefined;\r\n }\r\n if (applicant.concierge === null) {\r\n applicant.concierge = undefined;\r\n }\r\n\r\n return {\r\n applicantId: applicant.id,\r\n observer: jsonPatch.observe(applicant),\r\n };\r\n });\r\n }\r\n }\r\n },\r\n // person is an optional param\r\n async updateAppData(person: any = undefined) {\r\n //precaution for CoreDataApi\r\n if (this.appData.applicationId === undefined && this.appData.appId) {\r\n this.appData.applicationId = this.appData.appId;\r\n console.log(\"SETTING APP ID FOR COREDATAAPI\", this.appData.applicationId);\r\n }\r\n\r\n // 1. Gather the Application Patch object\r\n console.log(\"Gather the Application Patch object\", this.appData.application);\r\n const applicationPatch = jsonPatch.generate(this.appObserver);\r\n console.log(\"APPLICATION PATCH\", applicationPatch);\r\n\r\n const applicantPatches: any[] = [];\r\n\r\n // 2. Gather any Applicant patches\r\n if (this.updatedApplicant) {\r\n console.log(\"UPDATED APPLICANT PATCH FUNCTIONALITY\");\r\n console.log(\"this.updatedApplicant\", this.updatedApplicant);\r\n let applicant = { id: this.updatedApplicant.id } as any;\r\n const currentApplicantObserver = jsonPatch.observe(applicant);\r\n\r\n applicant.firstName = this.updatedApplicant?.firstName;\r\n applicant.middleName = this.updatedApplicant?.middleName;\r\n applicant.lastName = this.updatedApplicant?.lastName;\r\n applicant.nationalIdNumber = this.updatedApplicant?.nationalIdNumber;\r\n applicant.nationalIdNumberTypeId = this.updatedApplicant?.nationalIdNumberTypeId;\r\n applicant.citizenshipStatusId = this.updatedApplicant?.citizenship;\r\n applicant.dateOfBirth = this.updatedApplicant?.dateOfBirth;\r\n applicant.contactInfo = this.updatedApplicant?.contactInfo;\r\n applicant.concierge = this.updatedApplicant?.concierge;\r\n\r\n // Spouse step\r\n if (applicant.spouse) {\r\n applicant.spouse = this.updatedApplicant?.spouse;\r\n }\r\n\r\n // For future iterations\r\n // applicant =Object.entries(this.updatedApplicant);\r\n // for (const [key, value] of Object.entries(this.updatedApplicant)) {\r\n // applicant[key] = value;\r\n // }\r\n const patch = jsonPatch.generate(currentApplicantObserver);\r\n\r\n applicantPatches.push({\r\n applicantId: applicant.id,\r\n patch,\r\n });\r\n this.updatedApplicant = undefined;\r\n }\r\n // catches other patches the other one does not get\r\n this.applicantObservers.forEach((ob: ApplicantObserver) => {\r\n const patch = jsonPatch.generate(ob.observer);\r\n\r\n if (patch.length > 0) {\r\n applicantPatches.push({\r\n applicantId: ob.applicantId,\r\n patch,\r\n });\r\n }\r\n });\r\n\r\n console.log(\"Applicant Patches\", applicantPatches);\r\n\r\n const updatedAppData = await $api.applications.updateApplication({\r\n applicationId: this.appData.id,\r\n applicationPatch,\r\n applicantPatches,\r\n currentState: this.appData.currentState,\r\n previousState: this.appData.previousState,\r\n statesSeen: this.appData.statesSeen,\r\n transitions: this.appData.transitions,\r\n });\r\n\r\n console.log(\"updateAppData() UPDATED APP\", updatedAppData);\r\n\r\n if (!updatedAppData?.error || !updatedAppData.id) {\r\n await this.setAppData(updatedAppData);\r\n } else {\r\n alert(\"Something has gone wrong\");\r\n }\r\n },\r\n },\r\n watch: {\r\n appData() {\r\n console.log(\"Application Update\");\r\n this.setAppDataDisplay();\r\n },\r\n },\r\n unmounted() {\r\n if (localStorage.getItem(\"cache.path\")) {\r\n localStorage.removeItem(\"cache.path\");\r\n }\r\n if (localStorage.get(\"leadSourceId\")) {\r\n localStorage.removeItem(\"leadSourceId\");\r\n }\r\n\r\n if (localStorage.getItem(\"product\")) {\r\n localStorage.removeItem(\"product\");\r\n }\r\n },\r\n});\r\n","import { render } from \"./ApplicationRefi.vue?vue&type=template&id=ca037816&ts=true\"\nimport script from \"./ApplicationRefi.vue?vue&type=script&lang=ts\"\nexport * from \"./ApplicationRefi.vue?vue&type=script&lang=ts\"\n\nimport \"./ApplicationRefi.vue?vue&type=style&index=0&id=ca037816&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\r\n Products,\r\n ApplicationStatuses,\r\n ApplicantTypes,\r\n RateTypes,\r\n ConsentTypes,\r\n Programs,\r\n SurveyQuestionTypes,\r\n} from \"@/config/enums\";\r\n\r\nexport class ProductIds {\r\n public static get LOC(): number {\r\n return Products.LOC;\r\n }\r\n public static get REFI(): number {\r\n return Products.REFI;\r\n }\r\n public static get PEL(): number {\r\n return Products.PEL;\r\n }\r\n}\r\n\r\nexport class ProgramIds {\r\n public static get UG(): number {\r\n return Programs.UG;\r\n }\r\n public static get DG(): number {\r\n return Programs.DG;\r\n }\r\n}\r\n\r\nexport class ApplicationStatusTypeIds {\r\n public static get NOT_SUBMITTED(): number {\r\n return ApplicationStatuses.NOT_SUBMITTED;\r\n }\r\n public static get EVALUATION(): number {\r\n return ApplicationStatuses.EVALUATION;\r\n }\r\n public static get SUBMITTED_AND_PROCESSING(): number {\r\n return ApplicationStatuses.SUBMITTED_AND_PROCESSING;\r\n }\r\n public static get COMPLETE(): number {\r\n return ApplicationStatuses.COMPLETE;\r\n }\r\n public static get DECLINED(): number {\r\n return ApplicationStatuses.DECLINED;\r\n }\r\n public static get CANCELLED(): number {\r\n return ApplicationStatuses.CANCELLED;\r\n }\r\n public static get SMR_DECLINED(): number {\r\n return ApplicationStatuses.SMR_DECLINED;\r\n }\r\n public static get RIGHT_TO_CANCEL(): number {\r\n return ApplicationStatuses.RIGHT_TO_CANCEL;\r\n }\r\n}\r\n\r\nexport class ApplicantTypeIds {\r\n public static get PRIMARY_APPLICANT(): number {\r\n return ApplicantTypes.PRIMARY_APPLICANT;\r\n }\r\n\r\n public static get CO_APPLICANT(): number {\r\n return ApplicantTypes.CO_APPLICANT;\r\n }\r\n}\r\n\r\nexport class RateTypeIds {\r\n public static get Fixed(): number {\r\n return RateTypes.Fixed;\r\n }\r\n\r\n public static get Variable(): number {\r\n return RateTypes.Variable;\r\n }\r\n}\r\n\r\nexport class ConsentTypeIds {\r\n public static get CREDIT(): number {\r\n return ConsentTypes.CREDIT;\r\n }\r\n\r\n public static get ECOMMUNICATION(): number {\r\n return ConsentTypes.ECOMMUNICATION;\r\n }\r\n\r\n public static get MOBILE(): number {\r\n return ConsentTypes.MOBILE;\r\n }\r\n\r\n public static get TERMS_AND_CONDITIONS(): number {\r\n return ConsentTypes.TERMS_AND_CONDITIONS;\r\n }\r\n\r\n public static get EMAIL_VALIDATION(): number {\r\n return ConsentTypes.EMAIL_VALIDATION;\r\n }\r\n\r\n public static get SOFT_PULL(): number {\r\n return ConsentTypes.SOFT_PULL;\r\n }\r\n public static get REFI_UNDERPAYMENT(): number {\r\n return ConsentTypes.REFI_UNDERPAYMENT;\r\n }\r\n}\r\n\r\nexport class SurveyQuestionTypeIds {\r\n public static get TwoYearsIncome(): number {\r\n return SurveyQuestionTypes.TwoYearsIncome;\r\n }\r\n public static get SelectedCreditRange(): number {\r\n return SurveyQuestionTypes.SelectedCreditRange;\r\n }\r\n public static get MaritalStatus(): number {\r\n return SurveyQuestionTypes.MaritalStatus;\r\n }\r\n public static get SMREstimateLoanAmount(): number {\r\n return SurveyQuestionTypes.SMREstimateLoanAmount;\r\n }\r\n public static get EmploymentStatus(): number {\r\n return SurveyQuestionTypes.EmploymentStatus;\r\n }\r\n public static get EmployerName(): number {\r\n return SurveyQuestionTypes.EmployerName;\r\n }\r\n}\r\n","export enum Products {\r\n LOC = 1,\r\n REFI = 2,\r\n PEL = 3,\r\n}\r\n\r\nexport enum Programs {\r\n UG = 1,\r\n DG = 2,\r\n}\r\n\r\nexport enum ApplicationStatuses {\r\n NOT_SUBMITTED = 1,\r\n EVALUATION = 2,\r\n SUBMITTED_AND_PROCESSING = 3,\r\n COMPLETE = 4,\r\n DECLINED = 5,\r\n CANCELLED = 6,\r\n SMR_DECLINED = 7,\r\n RIGHT_TO_CANCEL = 8,\r\n}\r\n\r\nexport enum ApplicantTypes {\r\n PRIMARY_APPLICANT = 1,\r\n CO_APPLICANT = 2,\r\n}\r\n\r\nexport enum RateTypes {\r\n Fixed = 1,\r\n Variable = 2,\r\n}\r\n\r\nexport enum ConsentTypes {\r\n CREDIT = 1,\r\n ECOMMUNICATION = 2,\r\n MOBILE = 3,\r\n TERMS_AND_CONDITIONS = 4,\r\n EMAIL_VALIDATION = 5,\r\n SOFT_PULL = 6,\r\n REFI_UNDERPAYMENT = 7,\r\n}\r\n\r\nexport enum SurveyQuestionTypes {\r\n TwoYearsIncome = 1,\r\n SelectedCreditRange = 2,\r\n MaritalStatus = 3,\r\n SMREstimateLoanAmount = 4,\r\n EmploymentStatus = 5,\r\n EmployerName = 6,\r\n}\r\n","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createBlock(_component_router_view))\n}","\r\nimport { defineComponent } from \"vue\";\r\nexport default defineComponent({\r\n watch: {\r\n $route: {\r\n immediate: true,\r\n handler(to) {\r\n document.title = to.meta.title || \"Borrower Application\";\r\n },\r\n },\r\n },\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=f875c0c2&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=f875c0c2&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, withCtx as _withCtx, createSlots as _createSlots } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"previous-loader\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_circle_loader = _resolveComponent(\"circle-loader\")!\n const _component_application_step = _resolveComponent(\"application-step\")!\n const _component_application_steps = _resolveComponent(\"application-steps\")!\n const _component_application_page = _resolveComponent(\"application-page\")!\n\n return (_openBlock(), _createBlock(_component_application_page, null, _createSlots({\n default: _withCtx(() => [\n (_ctx.previousLoading || _ctx.currentStep > _ctx.statesPath.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_circle_loader)\n ]))\n : (_openBlock(), _createBlock(_component_application_steps, {\n key: 1,\n \"step-scroll\": _ctx.stepScroll\n }, {\n default: _withCtx(() => [\n (_ctx.appData)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(_ctx.statesPath, (state, index) => {\n return (_openBlock(), _createBlock(_component_application_step, {\n key: index,\n route: state.route,\n application: _ctx.appData,\n path: _ctx.path,\n loading: _ctx.loading,\n \"previous-loading\": _ctx.previousLoading,\n \"is-current\": _ctx.isCurrent(state),\n onPrevious: _ctx.previous,\n onComplete: _ctx.stepComplete\n }, {\n default: _withCtx(() => [\n (_ctx.loading)\n ? (_openBlock(), _createBlock(_component_circle_loader, {\n key: 0,\n inverse: true\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"route\", \"application\", \"path\", \"loading\", \"previous-loading\", \"is-current\", \"onPrevious\", \"onComplete\"]))\n }), 128))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"step-scroll\"]))\n ]),\n _: 2\n }, [\n (_ctx.appData)\n ? {\n name: \"ad\",\n fn: _withCtx(() => [\n _createElementVNode(\"h1\", null, _toDisplayString(_ctx.leftPanelText), 1)\n ])\n }\n : undefined\n ]), 1024))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = [\"value\"]\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = { class: \"application-ad\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = {\n key: 0,\n class: \"error-message\"\n}\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"p\", null, \" We apologize, but we are not able to process your request at this time. If you continue to receive this message please contact support. \", -1)\nconst _hoisted_10 = [\n _hoisted_9\n]\n\nimport { computed, ref, onMounted } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useApplication from \"@/use/application\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { $api } from \"@/services/api\";\r\nimport Loader from \"@/components/shared/Loader.vue\";\r\nimport Footer from \"@/components/shared/layout/FooterRefi.vue\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport SupportModal from \"@/components/modals/SupportModal.vue\";\r\nimport { AppData } from \"@/models/application\";\r\nimport Header from \"@/components/shared/layout/Header.vue\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApplicationPage',\n props: {\r\n externalLinks: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n},\n setup(__props) {\n\nconst props = __props\n\r\n\r\n\r\nconst store = useStore();\r\nconst route = useRoute();\r\nconst router = useRouter();\r\nconst { formatHexToRgb } = useFormatter();\r\nconst { getLenderConfigurationByAppId } = useApplication();\r\n\r\nconst showSupportModal = ref(false);\r\nconst error = ref(false);\r\nconst loading = ref(true);\r\n\r\nconst lid = computed(() => store.state?.lenderData?.lid || route.query?.lid || 0);\r\n\r\nconst productTypeId = computed(\r\n () => store.state.appData?.application?.productTypeId || route.query?.productTypeId || 0,\r\n);\r\n\r\nconst programTypeId = computed(\r\n () => store.state.appData?.application?.programTypeId || route.query?.programTypeId || 0,\r\n);\r\n\r\nconst leadSourceId = computed(() => localStorage.getItem(\"leadSourceId\") || route.query?.leadSourceId || 1);\r\nconst applicationTypeId = computed(() => {\r\n if (store?.state?.appData?.application?.metadata?.withCoApplicants !== undefined) {\r\n return store?.state?.appData?.application?.metadata?.withCoApplicants === true ? 2 : 1;\r\n } else {\r\n return 0;\r\n }\r\n});\r\nconst lenderData = computed(() => store.state.lenderData);\r\nconst themeStyle = computed(() => {\r\n // SA color: #f7941e\r\n // Default Green: #01675a\r\n const themeRgb = formatHexToRgb(lenderData?.value?.primaryColor);\r\n const secondaryRgb = formatHexToRgb(lenderData?.value?.secondaryColor);\r\n const primaryColor = lenderData?.value?.primaryColor;\r\n const secondaryColor = lenderData?.value?.secondaryColor;\r\n\r\n return {\r\n \"--theme-color\": primaryColor,\r\n \"--theme-color-rgb\": `${themeRgb.r}, ${themeRgb.g}, ${themeRgb.b}`,\r\n \"--secondary-color\": secondaryColor,\r\n \"--secondary-color-rgb\": `${secondaryRgb.r}, ${secondaryRgb.g}, ${secondaryRgb.b}`,\r\n };\r\n});\r\n\r\nasync function getLenderDataByQuery() {\r\n const host = window.location.hostname;\r\n const param = route.params as any;\r\n\r\n const query = route.query as any;\r\n const lenderConfig = await $api.configuration.getLenderConfiguration(\r\n query?.lid ?? 0,\r\n query.programTypeId ?? 0,\r\n query.productTypeId ?? 0,\r\n );\r\n\r\n await store.dispatch(\"updateLenderData\", lenderConfig);\r\n}\r\n\r\nasync function handleAppData(appData: any, query: any) {\r\n if (appData && !appData?.errors) {\r\n if (appData?.redirectUrl) {\r\n window.location.href = `${appData?.redirectUrl}`;\r\n } else {\r\n // handle storing lead in localStorage until ready to submit to DB\r\n window.localStorage.setItem(\"appInProgress\", JSON.stringify(appData));\r\n await store.dispatch(\"setAppData\", appData);\r\n // Clear out the query parameters\r\n query.appId = undefined;\r\n console.log(\"vuex state this.appData\", store.state?.appData);\r\n const lenderConfig = await getLenderConfigurationByAppId(store.state?.appData?.application?.id);\r\n await store.dispatch(\"updateLenderData\", lenderConfig);\r\n router.replace({ query });\r\n }\r\n }\r\n}\r\n\r\nasync function startNewApplication(): Promise {\r\n // only performs check on lower environments\r\n const host = window.location.hostname;\r\n const query = route.query as any;\r\n const param = route.params as any;\r\n let appData: AppData | undefined;\r\n console.log(\"Inside startNewApplication()\");\r\n\r\n // Assumed if we get to this point they are starting a new application,\r\n // so we process any data passed in as a lead\r\n // Validate that query parameters exist in query\r\n await getLenderDataByQuery();\r\n\r\n appData = await $api.leads.processLead(query);\r\n\r\n if (appData?.redirectUrl) {\r\n window.location.href = `${appData?.redirectUrl}`;\r\n }\r\n\r\n localStorage.setItem(\"leadSourceId\", query.leadSourceId ? query.leadSourceId : 0);\r\n localStorage.setItem(\"productTypeId\", param.productTypeId ? param.productTypeId : query.productTypeId);\r\n\r\n return appData;\r\n}\r\n\r\nonMounted(async () => {\r\n loading.value = true;\r\n // TODO: Figure out how we are going to get lender information\r\n const query = route.query as any;\r\n const appInProgress = window.localStorage.getItem(\"appInProgress\");\r\n let appData: AppData | undefined;\r\n\r\n if (query.appId) {\r\n console.log(\"Retrieving application\", query.appId);\r\n // See if the user is trying to pull up existing application\r\n appData = await $api.applications.getApplication(query.appId);\r\n } else if (appInProgress) {\r\n console.log(\"Inside localStorage\");\r\n // User may have an application still saved in local storage we can access\r\n appData = JSON.parse(appInProgress);\r\n console.log(\"lenderid matches query?.lid\", query?.lid !== appData?.application?.lenderId);\r\n // compare query?.lid to appData.application.lenderId (for invite flow)\r\n // start new application when incoming query?.lid does not match appInProgress lenderId at any point in application\r\n if (query?.lid !== undefined && query?.lid !== appData?.application?.lenderId) {\r\n console.log(\"clearing localstorage\");\r\n window.localStorage.clear();\r\n appData = await startNewApplication();\r\n }\r\n } else {\r\n appData = await startNewApplication();\r\n }\r\n\r\n await handleAppData(appData, query);\r\n loading.value = false;\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_layers = _resolveComponent(\"font-awesome-layers\")!\n\n return (loading.value)\n ? (_openBlock(), _createBlock(Loader, {\n key: 0,\n stretch: true,\n inverse: true\n }))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createVNode(Header, {\n style: _normalizeStyle(_unref(themeStyle))\n }, null, 8, [\"style\"]),\n _createElementVNode(\"div\", {\n class: \"application-page\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"lid\",\n name: \"lid\",\n value: _unref(lid)\n }, null, 8, _hoisted_1),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"productTypeId\",\n name: \"productTypeId\",\n value: _unref(productTypeId)\n }, null, 8, _hoisted_2),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"programTypeId\",\n name: \"programTypeId\",\n value: _unref(programTypeId)\n }, null, 8, _hoisted_3),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"leadSourceId\",\n name: \"leadSourceId\",\n value: _unref(leadSourceId)\n }, null, 8, _hoisted_4),\n _createElementVNode(\"input\", {\n type: \"hidden\",\n id: \"applicationTypeId\",\n name: \"applicationTypeId\",\n value: _unref(applicationTypeId)\n }, null, 8, _hoisted_5),\n _createElementVNode(\"div\", _hoisted_6, [\n (error.value)\n ? (_openBlock(), _createElementBlock(\"h1\", _hoisted_7, \"Something has gone wrong.\"))\n : _renderSlot(_ctx.$slots, \"ad\", { key: 1 })\n ]),\n (error.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _hoisted_10))\n : _renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 4),\n (_unref(lid) > 0)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"support-wrapper\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createElementVNode(\"a\", {\n title: \"Support\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (showSupportModal.value = true)),\n href: \"#\",\n class: \"support\"\n }, [\n _createVNode(_component_font_awesome_layers, null, {\n default: _withCtx(() => [\n _createVNode(_unref(FontAwesomeIcon), {\n icon: \"fa-solid fa-circle\",\n class: \"circle\"\n }),\n _createVNode(_unref(FontAwesomeIcon), {\n icon: \"fa-solid fa-headset\",\n transform: \"shrink-6\",\n class: \"icon\",\n style: { color: 'white' }\n })\n ]),\n _: 1\n })\n ])\n ], 4))\n : _createCommentVNode(\"\", true),\n (showSupportModal.value)\n ? (_openBlock(), _createBlock(SupportModal, {\n key: 1,\n style: _normalizeStyle(_unref(themeStyle)),\n id: \"supportModal\",\n onClose: _cache[1] || (_cache[1] = ($event: any) => (showSupportModal.value = false))\n }, null, 8, [\"style\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"application-page-footer\",\n style: _normalizeStyle(_unref(themeStyle))\n }, [\n _createVNode(Footer, {\n \"external-links\": __props.externalLinks,\n \"lender-id\": _unref(lenderData)?.lid\n }, null, 8, [\"external-links\", \"lender-id\"])\n ], 4)\n ], 64))\n}\n}\n\n})","import script from \"./ApplicationPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApplicationPage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ApplicationPage.vue?vue&type=style&index=0&id=377f9eba&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveDynamicComponent as _resolveDynamicComponent, toHandlers as _toHandlers, mergeProps as _mergeProps, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { defineAsyncComponent, ref, computed, onMounted, watch } from \"vue\";\r\nimport { ProductIds } from \"@/config/constants\";\r\nimport Feedback from \"@/components/shared/feedback/Feedback.vue\";\r\nimport SupportModal from \"@/components/modals/SupportModal.vue\";\r\nimport { useStore } from \"vuex\";\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApplicationStep',\n props: {\r\n route: { type: String, required: true },\r\n application: { type: Object, required: true },\r\n path: { type: String, required: true },\r\n loading: { type: Boolean, required: true },\r\n previousLoading: { type: Boolean, required: true },\r\n isCurrent: { type: Boolean, required: true },\r\n},\n emits: [\"previous\", \"complete\"],\n setup(__props, { emit }) {\n\nconst props = __props\n\r\nconst ChoosePath = defineAsyncComponent(() => import(\"../application/ChoosePath.vue\"));\r\nconst DgChoosePath = defineAsyncComponent(() => import(\"../application/DgChoosePath.vue\"));\r\nconst SchoolInfo = defineAsyncComponent(() => import(\"../application/SchoolInfo.vue\"));\r\nconst DgSchoolInfo = defineAsyncComponent(() => import(\"../application/DgSchoolInfo.vue\"));\r\nconst PersonalInfoPartOne = defineAsyncComponent(() => import(\"../application/PersonalInfoPartOne.vue\"));\r\nconst PersonalInfoPartTwo = defineAsyncComponent(() => import(\"../application/PersonalInfoPartTwo.vue\"));\r\nconst ShowMyRates = defineAsyncComponent(() => import(\"../application/ShowMyRates.vue\"));\r\nconst PelShowMyRates = defineAsyncComponent(() => import(\"../application/PelShowMyRates.vue\"));\r\nconst Registration = defineAsyncComponent(() => import(\"../application/Registration.vue\"));\r\nconst AdditionalInfo = defineAsyncComponent(() => import(\"../application/AdditionalInfo.vue\"));\r\nconst DgAdditionalInfo = defineAsyncComponent(() => import(\"../application/DgAdditionalInfo.vue\"));\r\nconst RefiAdditionalInfo = defineAsyncComponent(() => import(\"../application/RefiAdditionalInfo.vue\"));\r\nconst RefiConsent = defineAsyncComponent(() => import(\"../application/RefiConsent.vue\"));\r\nconst Consent = defineAsyncComponent(() => import(\"../shared/Consent.vue\"));\r\nconst IsPresentInfoPartOne = defineAsyncComponent(() => import(\"../application/IsPresentInfoPartOne.vue\"));\r\nconst IsPresentInfoPartTwo = defineAsyncComponent(() => import(\"../application/IsPresentInfoPartTwo.vue\"));\r\nconst AddCoApplicant = defineAsyncComponent(() => import(\"../application/AddCoApplicant.vue\"));\r\nconst AddCoborrower = defineAsyncComponent(() => import(\"../application/AddCoborrower.vue\"));\r\nconst DgAddCoborrower = defineAsyncComponent(() => import(\"../application/DgAddCoborrower.vue\"));\r\nconst Approval = defineAsyncComponent(() => import(\"../application/Approval.vue\"));\r\nconst LoanConfiguration = defineAsyncComponent(() => import(\"../application/LoanConfiguration.vue\"));\r\nconst DgLoanConfiguration = defineAsyncComponent(() => import(\"../application/DgLoanConfiguration.vue\"));\r\nconst PelLoanConfiguration = defineAsyncComponent(() => import(\"../application/PelLoanConfiguration.vue\"));\r\nconst MaritalStatus = defineAsyncComponent(() => import(\"../application/MaritalStatus.vue\"));\r\nconst InvitedApplicant = defineAsyncComponent(() => import(\"../application/InvitedApplicant.vue\"));\r\nconst InvitedApplicantInfoPartOne = defineAsyncComponent(\r\n () => import(\"../application/InvitedApplicantInfoPartOne.vue\"),\r\n);\r\nconst InvitedApplicantInfoPartTwo = defineAsyncComponent(\r\n () => import(\"../application/InvitedApplicantInfoPartTwo.vue\"),\r\n);\r\n\r\n\r\n\r\n\r\n\r\nconst store = useStore();\r\nconst showSupportModal = ref(false);\r\nconst coApplicant = ref(\"Co-Applicant\");\r\nconst primaryApplicant = ref(\"Primary Applicant\");\r\nconst primaryApplicantDisplayName = ref(\"Borrower\");\r\nconst coApplicantDisplayName = computed(() => store.getters[\"coApplicantTypeDisplayName\"]);\r\n\r\nconst coApplicantRoutes = [\r\n \"coborrowerPersonalInfo\",\r\n \"coborrowerPersonalInfoContinued\",\r\n \"coborrowerRegistration\",\r\n \"coborrowerAdditionalInfo\",\r\n \"dgCoborrowerAdditionalInfo\",\r\n \"coborrowerHardPullConsent\",\r\n \"coborrowerInfo\",\r\n \"coborrowerInfoContinued\",\r\n \"coborrowerMaritalStatus\",\r\n \"coborrowerInvited\",\r\n \"coborrowerInvitedApplicantInfo\",\r\n \"coborrowerInvitedApplicantInfoContinued\",\r\n];\r\n\r\nconst productTypeId = computed(() => props.application.application.productTypeId);\r\n\r\nconst programTypeId = computed(() => props.application.application.programTypeId);\r\n\r\nconst currentRoute = computed(() => props.route);\r\n\r\nconst componentName = computed(() => {\r\n return getRouteComponent();\r\n});\r\n\r\nconst currentProperties = computed(() => {\r\n switch (currentRoute.value) {\r\n case \"chooseBorrowerCoborrower\":\r\n case \"dgChooseBorrowerCoborrower\":\r\n case \"approval\":\r\n case \"dgApproval\":\r\n case \"loanConfiguration\":\r\n case \"dgLoanConfiguration\":\r\n return {\r\n loading: props.loading,\r\n isCurrent: props.isCurrent,\r\n };\r\n case \"schoolInformation\":\r\n case \"dgSchoolInformation\":\r\n case \"showMyRates\":\r\n case \"addCoborrower\":\r\n case \"dgAddCoborrower\":\r\n return {\r\n loading: props.loading,\r\n previousLoading: props.previousLoading,\r\n isCurrent: props.isCurrent,\r\n };\r\n case \"coborrowerPersonalInfo\":\r\n case \"coborrowerPersonalInfoContinued\":\r\n case \"coborrowerRegistration\":\r\n case \"coborrowerHardPullConsent\":\r\n case \"coborrowerInfo\":\r\n case \"coborrowerInfoContinued\":\r\n return {\r\n loading: props.loading,\r\n previousLoading: props.previousLoading,\r\n isCurrent: props.isCurrent,\r\n applicantType: coApplicant.value,\r\n applicantTypeDisplayName: coApplicantDisplayName.value,\r\n };\r\n case \"borrowerPersonalInfo\":\r\n case \"borrowerPersonalInfoContinued\":\r\n case \"borrowerInfo\":\r\n case \"borrowerInfoContinued\":\r\n case \"borrowerRegistration\":\r\n case \"borrowerHardPullConsent\":\r\n return {\r\n loading: props.loading,\r\n previousLoading: props.previousLoading,\r\n isCurrent: props.isCurrent,\r\n applicantType: primaryApplicant.value,\r\n applicantTypeDisplayName: primaryApplicantDisplayName.value,\r\n };\r\n case \"borrowerAdditionalInfo\":\r\n case \"dgBorrowerAdditionalInfo\":\r\n return {\r\n loading: props.loading,\r\n previousLoading: props.previousLoading,\r\n isCurrent: props.isCurrent,\r\n applicantType: primaryApplicant.value,\r\n applicantTypeDisplayName: primaryApplicantDisplayName.value,\r\n path: props.path,\r\n };\r\n case \"coborrowerAdditionalInfo\":\r\n case \"dgCoborrowerAdditionalInfo\":\r\n return {\r\n loading: props.loading,\r\n previousLoading: props.previousLoading,\r\n isCurrent: props.isCurrent,\r\n applicantType: coApplicant.value,\r\n applicantTypeDisplayName: coApplicantDisplayName.value,\r\n path: props.path,\r\n };\r\n case \"borrowerMaritalStatus\":\r\n case \"borrowerInvited\":\r\n case \"borrowerInvitedApplicantInfo\":\r\n case \"borrowerInvitedApplicantInfoContinued\":\r\n return {\r\n loading: props.loading,\r\n isCurrent: props.isCurrent,\r\n applicantType: primaryApplicant.value,\r\n applicantTypeDisplayName: primaryApplicantDisplayName.value,\r\n };\r\n case \"coborrowerMaritalStatus\":\r\n case \"coborrowerInvited\":\r\n case \"coborrowerInvitedApplicantInfo\":\r\n case \"coborrowerInvitedApplicantInfoContinued\":\r\n return {\r\n loading: props.loading,\r\n isCurrent: props.isCurrent,\r\n applicantType: coApplicant.value,\r\n applicantTypeDisplayName: coApplicantDisplayName.value,\r\n };\r\n\r\n default:\r\n return {};\r\n }\r\n});\r\n\r\nconst currentListeners = computed(() => {\r\n switch (componentName.value) {\r\n default:\r\n return {\r\n previous: previous,\r\n complete: complete,\r\n };\r\n }\r\n});\r\n\r\nfunction getRouteComponent() {\r\n switch (currentRoute.value) {\r\n case \"chooseBorrowerCoborrower\":\r\n return ChoosePath;\r\n case \"dgChooseBorrowerCoborrower\":\r\n return DgChoosePath;\r\n case \"schoolInformation\":\r\n return SchoolInfo;\r\n case \"dgSchoolInformation\":\r\n return DgSchoolInfo;\r\n case \"coborrowerPersonalInfo\":\r\n case \"borrowerPersonalInfo\":\r\n return PersonalInfoPartOne;\r\n case \"coborrowerPersonalInfoContinued\":\r\n case \"borrowerPersonalInfoContinued\":\r\n return PersonalInfoPartTwo;\r\n case \"showMyRates\":\r\n if (productTypeId.value === ProductIds.PEL) {\r\n return PelShowMyRates;\r\n } else {\r\n return ShowMyRates;\r\n }\r\n case \"coborrowerRegistration\":\r\n case \"borrowerRegistration\":\r\n return Registration;\r\n case \"borrowerAdditionalInfo\":\r\n case \"coborrowerAdditionalInfo\":\r\n if (productTypeId.value === ProductIds.PEL || productTypeId.value === ProductIds.REFI) {\r\n return RefiAdditionalInfo;\r\n } else {\r\n return AdditionalInfo;\r\n }\r\n case \"dgBorrowerAdditionalInfo\":\r\n case \"dgCoborrowerAdditionalInfo\":\r\n if (productTypeId.value === ProductIds.PEL || productTypeId.value === ProductIds.REFI) {\r\n return RefiAdditionalInfo;\r\n } else {\r\n return DgAdditionalInfo;\r\n }\r\n case \"coborrowerHardPullConsent\":\r\n case \"borrowerHardPullConsent\":\r\n if (productTypeId.value === ProductIds.PEL || productTypeId.value === ProductIds.REFI) {\r\n return RefiConsent;\r\n } else {\r\n return Consent;\r\n }\r\n case \"borrowerInfo\":\r\n case \"coborrowerInfo\":\r\n return IsPresentInfoPartOne;\r\n case \"borrowerInfoContinued\":\r\n case \"coborrowerInfoContinued\":\r\n return IsPresentInfoPartTwo;\r\n case \"addCoborrower\":\r\n if (productTypeId.value === ProductIds.PEL) {\r\n return AddCoApplicant;\r\n } else {\r\n return AddCoborrower;\r\n }\r\n case \"dgAddCoborrower\":\r\n if (productTypeId.value === ProductIds.PEL) {\r\n return AddCoApplicant;\r\n } else {\r\n return DgAddCoborrower;\r\n }\r\n case \"approval\":\r\n case \"dgApproval\":\r\n return Approval;\r\n case \"loanConfiguration\":\r\n if (productTypeId.value === ProductIds.PEL) {\r\n return PelLoanConfiguration;\r\n } else {\r\n return LoanConfiguration;\r\n }\r\n case \"dgLoanConfiguration\":\r\n if (productTypeId.value === ProductIds.PEL) {\r\n return PelLoanConfiguration;\r\n } else {\r\n return DgLoanConfiguration;\r\n }\r\n case \"coborrowerMaritalStatus\":\r\n case \"borrowerMaritalStatus\":\r\n return MaritalStatus;\r\n case \"borrowerInvited\":\r\n case \"coborrowerInvited\":\r\n return InvitedApplicant;\r\n case \"borrowerInvitedApplicantInfo\":\r\n case \"coborrowerInvitedApplicantInfo\":\r\n return InvitedApplicantInfoPartOne;\r\n case \"borrowerInvitedApplicantInfoContinued\":\r\n case \"coborrowerInvitedApplicantInfoContinued\":\r\n return InvitedApplicantInfoPartTwo;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction previous(event: any) {\r\n emit(\"previous\", event);\r\n}\r\n\r\nfunction complete(event: any) {\r\n emit(\"complete\", event);\r\n}\r\n\r\nfunction className(route: string) {\r\n return coApplicantRoutes.includes(props.route) === true ? `${route} co-borrower` : `${route}`;\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"application-step\", className])\n }, [\n (_unref(componentName))\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_unref(componentName)), _mergeProps({ key: 0 }, _unref(currentProperties), _toHandlers(_unref(currentListeners))), null, 16))\n : _renderSlot(_ctx.$slots, \"default\", { key: 1 }),\n _createVNode(Feedback, {\n onShowSupportModal: _cache[0] || (_cache[0] = ($event: any) => (showSupportModal.value = true))\n }),\n (showSupportModal.value)\n ? (_openBlock(), _createBlock(SupportModal, {\n key: 2,\n id: \"supportModal\",\n onClose: _cache[1] || (_cache[1] = ($event: any) => (showSupportModal.value = false))\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./ApplicationStep.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApplicationStep.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ApplicationStep.vue?vue&type=style&index=0&id=6bd086be&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6bd086be\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapState } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport * as jsonPatch from \"fast-json-patch\";\r\nimport useLeftPanelText from \"@/use/leftPanelText\";\r\nimport ApplicationPage from \"@/components/shared/ApplicationPage.vue\";\r\nimport ApplicationSteps from \"@/components/shared/ApplicationSteps.vue\";\r\nimport ApplicationStep from \"@/components/shared/ApplicationStep.vue\";\r\nimport CircleLoader from \"@/components/shared/CircleLoader.vue\";\r\nimport {\r\n AppData,\r\n Applicant,\r\n ApplicantObserver,\r\n Application,\r\n ComparatorFunction,\r\n State,\r\n Transition,\r\n Validation,\r\n} from \"@/models/application\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const { getCurrentText } = useLeftPanelText();\r\n return { getCurrentText };\r\n },\r\n components: {\r\n ApplicationPage,\r\n ApplicationSteps,\r\n ApplicationStep,\r\n CircleLoader,\r\n },\r\n data: () => ({\r\n currentStep: 1,\r\n path: \"\",\r\n loading: false,\r\n previousLoading: false,\r\n statesPath: [] as State[],\r\n compareAppData: {} as AppData,\r\n appObserver: {} as jsonPatch.Observer,\r\n applicantObservers: [] as ApplicantObserver[],\r\n updatedApplicant: undefined as any,\r\n }),\r\n computed: {\r\n ...mapState([\"appData\", \"leftPanelText\"]),\r\n states(): any[] {\r\n return this.appData.statesSeen || [];\r\n },\r\n stepScroll(): string {\r\n return `${(this.currentStep - 1) * 100}%`;\r\n },\r\n currentApplicantTypeName(): string {\r\n if (this.appData.currentState?.name.startsWith(\"Coborrower - Borrower\", 0)) {\r\n return \"Primary Applicant\";\r\n } else if (this.appData.currentState?.name.startsWith(\"Coborrower -\", 0)) {\r\n return \"Co-Applicant\";\r\n } else if (this.appData.currentState?.name.startsWith(\"Borrower - Coborrower\", 0)) {\r\n return \"Co-Applicant\";\r\n } else if (this.appData.currentState?.name.startsWith(\"Borrower -\", 0)) {\r\n return \"Primary Applicant\";\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n },\r\n methods: {\r\n ...mapActions([\"setAppData\", \"setLeftPanelText\"]),\r\n async previous(event: any) {\r\n this.previousLoading = true;\r\n this.appData.currentState = this.appData.previousState;\r\n this.appData.statesSeen.push(this.appData.currentState);\r\n\r\n // Update currentStep index first update statesPath\r\n const newStates = this.statesPath;\r\n\r\n // Push the current state to the stack if we are at 0\r\n // If the length is greater than 1 we already have what we need\r\n if (newStates.length <= 1) {\r\n newStates.unshift(this.appData.currentState);\r\n this.currentStep--;\r\n }\r\n\r\n this.statesPath = newStates;\r\n\r\n // Set the current state order\r\n this.appData.currentState.order = this.appData.statesSeen.length - 1;\r\n await this.updateAppData();\r\n this.previousLoading = false;\r\n\r\n this.updateLeftPanel();\r\n this.currentStep--;\r\n this.statesPath.pop();\r\n\r\n // Automatically refresh component to get around the Uncaught TypeError\r\n location.reload();\r\n console.log(\"PREVIOUS COMPLETE\", this.currentStep, this.statesPath);\r\n },\r\n async stepComplete(data: any) {\r\n this.loading = true;\r\n console.log(\"stepComplete() event data\", data);\r\n\r\n // 1. Verify what the current state is, and compare it to the last item in statesSeen\r\n // 2. If last state seen, grab the right transition and move it into statesSeen\r\n if ((this.appData.transitions || []).length > 0) {\r\n let state: any;\r\n\r\n if (this.appData.transitions.length > 1) {\r\n let stateSet = false;\r\n this.appData.transitions = this.appData.transitions.sort((a: any, b: any) => {\r\n if (a.comparatorFunction === null) {\r\n return 1;\r\n }\r\n if (b.comparatorFunction === null) {\r\n return -1;\r\n }\r\n if (b.comparatorFunction) {\r\n return 0;\r\n }\r\n });\r\n\r\n this.appData.transitions.forEach((transition: Transition, index: number) => {\r\n if (stateSet) {\r\n return;\r\n }\r\n\r\n if (transition.comparatorFunction && transition.comparatorFunction.trim() !== \"\") {\r\n try {\r\n const comparison: ComparatorFunction = JSON.parse(transition.comparatorFunction);\r\n if (comparison.validation && comparison.validation.length > 0) {\r\n let valid = comparison.type === \"AND\";\r\n comparison.validation.forEach((validation: Validation) => {\r\n let compareData = data[validation.property];\r\n\r\n if (compareData && typeof compareData === \"string\") {\r\n compareData = compareData.trim();\r\n }\r\n\r\n // Verify which type of comparison we need to perform\r\n const compareValue =\r\n validation.operator === \"ne\"\r\n ? compareData !== validation.value\r\n : compareData === validation.value;\r\n\r\n // Take comapreValue and append it to current valid state\r\n valid = comparison.type === \"AND\" ? valid && compareValue : valid || compareValue;\r\n });\r\n\r\n if (valid) {\r\n state = transition;\r\n stateSet = true;\r\n }\r\n }\r\n } catch (ex) {\r\n // not proper JSON stored. Just skipping\r\n console.error(\"Could not parse comparator function\", ex);\r\n }\r\n }\r\n\r\n // Make sure a transition gets added no matter what\r\n if (state === undefined && index === this.appData.transitions.length - 1) {\r\n state = transition;\r\n stateSet = true;\r\n }\r\n });\r\n } else {\r\n state = this.appData.transitions[0];\r\n }\r\n\r\n if (state !== undefined) {\r\n this.appData.statesSeen.push({\r\n name: state.name,\r\n route: state.route,\r\n fsStateID: state.fsStateID,\r\n // Get current length since order starts at 0\r\n order: this.appData.statesSeen.length,\r\n programTypeId: state.programTypeId,\r\n });\r\n this.appData.previousState = this.appData.currentState;\r\n }\r\n }\r\n\r\n if (data?.updatedPerson) {\r\n this.updatedApplicant = data.updatedPerson;\r\n }\r\n\r\n // 4. Update the Application data\r\n await this.updateAppData();\r\n\r\n // Add step first in an attempt to provide cleaner transition\r\n this.statesPath.push(this.appData.currentState);\r\n this.currentStep++;\r\n\r\n console.log(\"STEP COMPLETE\", this.currentStep, this.statesPath);\r\n\r\n // Clear query after first step / after starting a new application\r\n let query = Object.assign({}, this.$route.query);\r\n if (query?.lid && query?.productTypeId && query?.leadSourceId && query?.programTypeId) {\r\n localStorage.setItem(\"product\", `${query?.productTypeId}`);\r\n\r\n delete query?.leadSourceId;\r\n delete query?.productTypeId;\r\n delete query?.programTypeId;\r\n delete query?.lid;\r\n\r\n this.$router.replace({ query });\r\n }\r\n\r\n this.loading = false;\r\n },\r\n isCurrent(state: State) {\r\n const current = this.appData.currentState;\r\n return current.fsStateID === state.fsStateID && current.order === state.order;\r\n },\r\n updateLeftPanel() {\r\n this.setLeftPanelText(this.getCurrentText(this.appData.currentState?.route || \"\"));\r\n },\r\n setAppDataDisplay() {\r\n //Pull application out of state\r\n if (this.appData) {\r\n this.refreshObservers();\r\n\r\n if (this.appData.currentState && this.statesPath.length <= 0) {\r\n this.statesPath = [this.appData.currentState];\r\n }\r\n\r\n this.updateLeftPanel();\r\n }\r\n },\r\n refreshObservers() {\r\n if (this.appData) {\r\n if (this.appData.application) {\r\n if (this.appData.application.schoolConfiguration === null) {\r\n this.appData.application.schoolConfiguration = undefined;\r\n }\r\n\r\n this.appObserver = jsonPatch.observe(this.appData.application);\r\n }\r\n\r\n if (this.appData.applicants && this.appData.applicants.length > 0) {\r\n // Loop over array and create observers for each\r\n this.applicantObservers = this.appData.applicants.map((applicant: Applicant) => {\r\n if (applicant.contactInfo === null) {\r\n applicant.contactInfo = undefined;\r\n }\r\n if (applicant.spouse === null) {\r\n applicant.spouse = undefined;\r\n }\r\n if (applicant.concierge === null) {\r\n applicant.concierge = undefined;\r\n }\r\n\r\n return {\r\n applicantId: applicant.id,\r\n observer: jsonPatch.observe(applicant),\r\n };\r\n });\r\n }\r\n }\r\n },\r\n // person is an optional param\r\n async updateAppData(person: any = undefined) {\r\n //precaution for CoreDataApi\r\n if (this.appData.applicationId === undefined && this.appData.appId) {\r\n this.appData.applicationId = this.appData.appId;\r\n console.log(\"SETTING APP ID FOR COREDATAAPI\", this.appData.applicationId);\r\n }\r\n\r\n // 1. Gather the Application Patch object\r\n console.log(\"Gather the Application Patch object\", this.appData.application);\r\n const applicationPatch = jsonPatch.generate(this.appObserver);\r\n console.log(\"APPLICATION PATCH\", applicationPatch);\r\n\r\n const applicantPatches: any[] = [];\r\n\r\n // 2. Gather any Applicant patches\r\n if (this.updatedApplicant) {\r\n console.log(\"UPDATED APPLICANT PATCH FUNCTIONALITY\");\r\n console.log(\"this.updatedApplicant\", this.updatedApplicant);\r\n let applicant = { id: this.updatedApplicant.id } as any;\r\n const currentApplicantObserver = jsonPatch.observe(applicant);\r\n\r\n applicant.firstName = this.updatedApplicant?.firstName;\r\n applicant.middleName = this.updatedApplicant?.middleName;\r\n applicant.lastName = this.updatedApplicant?.lastName;\r\n applicant.nationalIdNumber = this.updatedApplicant?.nationalIdNumber;\r\n applicant.nationalIdNumberTypeId = this.updatedApplicant?.nationalIdNumberTypeId;\r\n applicant.citizenshipStatusId = this.updatedApplicant?.citizenship;\r\n applicant.dateOfBirth = this.updatedApplicant?.dateOfBirth;\r\n applicant.contactInfo = this.updatedApplicant?.contactInfo;\r\n applicant.concierge = this.updatedApplicant?.concierge;\r\n\r\n // Spouse step\r\n if (applicant.spouse) {\r\n applicant.spouse = this.updatedApplicant?.spouse;\r\n }\r\n\r\n // For future iterations\r\n // applicant =Object.entries(this.updatedApplicant);\r\n // for (const [key, value] of Object.entries(this.updatedApplicant)) {\r\n // applicant[key] = value;\r\n // }\r\n const patch = jsonPatch.generate(currentApplicantObserver);\r\n\r\n applicantPatches.push({\r\n applicantId: applicant.id,\r\n patch,\r\n });\r\n this.updatedApplicant = undefined;\r\n }\r\n // catches other patches the other one does not get\r\n this.applicantObservers.forEach((ob: ApplicantObserver) => {\r\n const patch = jsonPatch.generate(ob.observer);\r\n\r\n if (patch.length > 0) {\r\n applicantPatches.push({\r\n applicantId: ob.applicantId,\r\n patch,\r\n });\r\n }\r\n });\r\n\r\n console.log(\"Applicant Patches\", applicantPatches);\r\n\r\n const updatedAppData = await $api.applications.updateApplication({\r\n applicationId: this.appData.id,\r\n applicationPatch,\r\n applicantPatches,\r\n currentState: this.appData.currentState,\r\n previousState: this.appData.previousState,\r\n statesSeen: this.appData.statesSeen,\r\n transitions: this.appData.transitions,\r\n });\r\n\r\n console.log(\"updateAppData() UPDATED APP\", updatedAppData);\r\n\r\n if (!updatedAppData?.error || !updatedAppData.id) {\r\n await this.setAppData(updatedAppData);\r\n } else {\r\n alert(\"Something has gone wrong\");\r\n }\r\n },\r\n },\r\n watch: {\r\n appData() {\r\n console.log(\"Application Update\");\r\n this.setAppDataDisplay();\r\n },\r\n },\r\n unmounted() {\r\n\t\tlocalStorage.clear();\r\n },\r\n});\r\n","import { render } from \"./Application.vue?vue&type=template&id=b642ce32&ts=true\"\nimport script from \"./Application.vue?vue&type=script&lang=ts\"\nexport * from \"./Application.vue?vue&type=script&lang=ts\"\n\nimport \"./Application.vue?vue&type=style&index=0&id=b642ce32&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\src\\\\BorrowerApplication.Web\\\\clientapp\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteParams, RouteRecordRaw } from \"vue-router\";\r\nimport store from \"@/store\";\r\nimport Application from \"@/views/Application.vue\";\r\nimport ApplicationRefi from \"@/views/ApplicationRefi.vue\";\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/\",\r\n redirect: \"/application\",\r\n },\r\n {\r\n path: \"/application\",\r\n name: \"Application\",\r\n component: Application,\r\n beforeEnter: (to, from, next) => {\r\n const product = localStorage.getItem(\"product\");\r\n const productTypeId = to.query.productTypeId;\r\n\r\n if (productTypeId === \"1\" || (!productTypeId && product === \"1\")) {\r\n to.matched[0].components = { default: Application };\r\n next();\r\n } else if (productTypeId === \"2\" || (!productTypeId && product === \"2\")) {\r\n to.matched[0].components = { default: ApplicationRefi };\r\n next();\r\n } else if (productTypeId === \"3\" || (!productTypeId && product === \"3\")) {\r\n to.matched[0].components = { default: Application };\r\n next();\r\n }\r\n else {\r\n next(false);\r\n }\r\n },\r\n },\r\n {\r\n path: \"/application/:productTypeId\",\r\n name: \"ApplicationRefi\",\r\n component: () => import(/* webpackChunkName: \"about\" */ \"../views/ApplicationRefi.vue\"),\r\n },\r\n {\r\n path: \"/invite/accept\",\r\n name: \"Invite\",\r\n component: () => import(/* webpackChunkName: \"about\" */ \"../views/Invite.vue\"),\r\n },\r\n {\r\n path: \"/return\",\r\n name: \"Return\",\r\n component: () => import(/* webpackChunkName: \"about\" */ \"../views/Return.vue\"),\r\n },\r\n {\r\n path: \"/ecommunications\",\r\n name: \"ecommunications\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/ECommunications.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"ECommunications\",\r\n },\r\n },\r\n {\r\n path: \"/terms\",\r\n name: \"terms\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/TermsAndConditions.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"Terms & Conditions\",\r\n },\r\n },\r\n {\r\n path: \"/mobileCommunications\",\r\n name: \"mobileCommunications\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/MobileCommunications.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"Mobile Communications\",\r\n },\r\n },\r\n {\r\n path: \"/privacyPolicy\",\r\n name: \"privacyPolicy\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/PrivacyPolicy.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"Privacy Policy\",\r\n },\r\n },\r\n {\r\n path: \"/accessibility\",\r\n name: \"accessibility\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/Accessibility.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"Accessibility\",\r\n },\r\n },\r\n {\r\n path: \"/federalLoanDisclosure\",\r\n name: \"federalLoanDisclosure\",\r\n component: () => import(/* webpackChunkName: \"protected\" */ \"../views/FederalLoanDisclosure.vue\"),\r\n meta: {\r\n isPublic: true,\r\n title: \"Federal Loan Disclosure\",\r\n },\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes,\r\n});\r\n\r\nrouter.beforeEach((to, from) => {\r\n console.log(\"router beforeEach\", { to, from, store });\r\n // #TODO figure out how we will prevent users from changing productTypeIds\r\n});\r\n\r\nexport default router;\r\n","export enum EnvType {\r\n local = \"LOCAL\",\r\n dev = \"DEV\",\r\n ci = \"CI\",\r\n qa = \"QA\",\r\n uat = \"UAT\",\r\n prod = \"PROD\",\r\n}\r\nexport const environments = {\r\n local: {\r\n env: EnvType.local,\r\n name: \"local\",\r\n apiUrl: \"https://localhost:44362\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_DEV,\r\n },\r\n dev: {\r\n env: EnvType.dev,\r\n name: \"dev\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_DEV,\r\n },\r\n ci: {\r\n env: EnvType.ci,\r\n name: \"ci\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_DEV,\r\n },\r\n qa: {\r\n env: EnvType.qa,\r\n name: \"qa\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_PROD,\r\n },\r\n uat: {\r\n env: EnvType.uat,\r\n name: \"uat\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_DEV,\r\n },\r\n prod: {\r\n env: EnvType.prod,\r\n name: \"production\",\r\n googleAnalyticsId: process.env.VUE_APP_GOOGLE_ANALYTICS_ID_PROD,\r\n },\r\n};\r\n\r\nexport function getEnvironment(): any {\r\n // Default to PROD\r\n let environment = environments.prod;\r\n const host = window.location.hostname;\r\n\r\n if (host.includes(\"localhost\")) {\r\n environment = environments.local;\r\n } else if (host.includes(\"-dev\")) {\r\n environment = environments.dev;\r\n } else if (host.includes(\"-ci\")) {\r\n environment = environments.ci;\r\n } else if (host.includes(\"-qa\")) {\r\n environment = environments.qa;\r\n } else if (host.includes(\"-uat\")) {\r\n environment = environments.uat;\r\n } else {\r\n // default to PROD\r\n environment = environments.prod;\r\n }\r\n\r\n // disable logging for UAT and PROD environments\r\n if (environment.env === EnvType.uat || environment.env === EnvType.prod) {\r\n console.log = () => {};\r\n console.warn = () => {};\r\n console.debug = () => {};\r\n console.info = () => {};\r\n }\r\n return environment;\r\n}\r\n","import { createApp, DefineComponent } from \"vue\";\r\n// Only needed when authentication is added\r\n// import axios from \"axios\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport Maska from \"maska\";\r\nimport {\r\n FontAwesomeIcon,\r\n FontAwesomeIconProps,\r\n FontAwesomeLayers,\r\n FontAwesomeLayersText,\r\n} from \"@fortawesome/vue-fontawesome\";\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { faCircle as farCircle, faCircleCheck as farCircleCheck } from \"@fortawesome/free-regular-svg-icons\";\r\nimport {\r\n faEye,\r\n faEyeSlash,\r\n faSave,\r\n faHeadset,\r\n faPhone,\r\n faComment,\r\n faCircle as fasCircle,\r\n faEnvelope as fasEnvelope,\r\n faCircleInfo,\r\n faXmark,\r\n faChevronDown,\r\n faChevronUp,\r\n faChevronLeft,\r\n faChevronRight,\r\n faCircleExclamation,\r\n faFloppyDisk,\r\n faTrash,\r\n faPenToSquare,\r\n faPencil,\r\n faX,\r\n faTriangleExclamation,\r\n faDownload,\r\n faAngleUp,\r\n faAngleDown,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { getEnvironment } from \"./config/environment\";\r\nimport VueGtag from \"vue-gtag\";\r\nlibrary.add(\r\n faEye,\r\n faEyeSlash,\r\n faSave,\r\n faHeadset,\r\n faPhone,\r\n faComment,\r\n farCircle,\r\n fasCircle,\r\n fasEnvelope,\r\n faCircleInfo,\r\n faXmark,\r\n faChevronLeft,\r\n faChevronRight,\r\n faChevronDown,\r\n faChevronUp,\r\n faCircleExclamation,\r\n faFloppyDisk,\r\n faTrash,\r\n faPenToSquare,\r\n faPencil,\r\n farCircleCheck,\r\n faX,\r\n faTriangleExclamation,\r\n faDownload,\r\n faPencil,\r\n faAngleUp,\r\n faAngleDown,\r\n);\r\n// TODO: Refactor to only add token to certain endpoints that require it\r\n// axios.interceptors.request.use(\r\n// (config: any) => {\r\n// return {\r\n// ...config,\r\n// headers: {\r\n// ...config.headers,\r\n// Authorization: `Bearer ${store.getters[\"oidcStore/oidcAccessToken\"]}`\r\n// }\r\n// };\r\n// },\r\n// (error: any) => Promise.reject(error)\r\n// );\r\n\r\n// Required for google analytics\r\nconst environment = getEnvironment();\r\n\r\nconst app = createApp(App);\r\n\r\napp\r\n .use(store)\r\n .use(router)\r\n .use(Maska)\r\n .use(VueGtag, {\r\n config: { id: environment.googleAnalyticsId },\r\n router,\r\n enabled: true,\r\n params: {\r\n send_page_view: false,\r\n },\r\n });\r\n\r\napp\r\n .component(\"font-awesome-icon\", FontAwesomeIcon)\r\n .component(\"font-awesome-layers\", FontAwesomeLayers)\r\n .component(\"font-awesome-layer-text\", FontAwesomeLayersText);\r\n\r\napp.provide(\"gtag\", app.config.globalProperties.$gtag);\r\napp.mount(\"#app\");\r\n","import axios from \"axios\";\r\nimport {\r\n PostFeedbackRequest,\r\n SendVerificationCodeRequest,\r\n VerifyCodeRequest,\r\n UpdateEmailRequest,\r\n CreateCandidateRefiLoanRequest,\r\n UpdateCandidateRefiLoanRequest,\r\n\tApplicantLeadRequest,\r\n} from \"@/models/api\";\r\n\r\nclass BaseApiService {\r\n // Since .NET is handling the routing, we don't need to include baseUrl\r\n // All API calls in controllers will start with {api}\r\n baseUrl = \"api\";\r\n resource: string;\r\n\r\n constructor(resource: string) {\r\n if (!resource) throw new Error(\"Resource is not provided\");\r\n this.resource = resource;\r\n }\r\n\r\n getUrl(id = \"\") {\r\n return `${window.location.origin}/${this.baseUrl}/${this.resource}/${id}`;\r\n }\r\n\r\n handleErrors(err: any): Promise {\r\n // Note: here you may want to add your errors handling\r\n console.log(\"ERROR\", { err });\r\n // add error:true at the end in case message is used elsewhere\r\n if (err.response?.data && typeof err.response.data === \"object\") {\r\n return { ...err.response.data, error: true };\r\n } else {\r\n return { ...err, error: true };\r\n }\r\n }\r\n\r\n async get() {\r\n try {\r\n const response = await axios(this.getUrl());\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass LookupsApiService extends BaseApiService {\r\n constructor() {\r\n super(\"lookups\");\r\n }\r\n\r\n async getSchoolInfoLookups(programTypeId?: number) {\r\n try {\r\n const response = await axios(this.getUrl(`school-info?programTypeId=${programTypeId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getRefiSchoolInfoLookups(programTypeId?: number, degreeLevelTypeId?: number) {\r\n try {\r\n const url = this.getUrl(`school-info`);\r\n\r\n const params = degreeLevelTypeId\r\n ? {\r\n programTypeId,\r\n degreeLevelId: degreeLevelTypeId,\r\n }\r\n : {\r\n programTypeId,\r\n };\r\n\r\n const response = await axios.get(url, {\r\n params: params,\r\n });\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n async getPersonalInfoLookups() {\r\n try {\r\n const response = await axios(this.getUrl(\"personal-info\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getRegistrationLookups() {\r\n try {\r\n const response = await axios(this.getUrl(\"registration\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getAdditionalInfoLookups(applicantType: string, productTypeId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`additional-info/${applicantType}/${productTypeId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getLoanConfigLookups() {\r\n try {\r\n const response = await axios(this.getUrl(\"loan-config\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApprovalLookUps() {\r\n try {\r\n const response = await axios(this.getUrl(\"approval\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getEnrollmentTermsLookups() {\r\n try {\r\n const response = await axios(this.getUrl(`school-confirmation`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getAppLenderConfiguration(lid: number) {\r\n try {\r\n const response = await axios(this.getUrl(`lender?${lid}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getConsentTypes() {\r\n try {\r\n const response = await axios(this.getUrl(`consent-types`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getSurveyQuestionTypes() {\r\n try {\r\n const response = await axios(this.getUrl(`survey-question-types`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getDocumentTypes(type: string) {\r\n try {\r\n const response = await axios(this.getUrl(`document-types/${type}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass LeadService extends BaseApiService {\r\n constructor() {\r\n super(\"lead\");\r\n }\r\n\r\n async processLead(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"process\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass ApplicationService extends BaseApiService {\r\n constructor() {\r\n super(\"application\");\r\n }\r\n\r\n async getApplication(appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(), {\r\n params: { appId },\r\n });\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateApplication(body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationInviteForType(appId: number, applicantType?: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/invites`), {\r\n params: { applicantType },\r\n });\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationInvites(appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/invites`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addOrUpdateInitialDraw(appId: number, body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(`${appId}/initialdraw`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getInitialDraw(appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/initialdraw`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addOrUpdateAppLoanConfig(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"LoanConfigs\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getAppLoanConfig(appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/LoanConfigs`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addOrUpdateRatePlanOverride(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"RatePlanOverrides\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationRatePlanOverride(appId: number, ratePlanId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/RatePlans/${ratePlanId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationRatePlanByRatePlanId(appId: number, ratePlanId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/RatePlans/${ratePlanId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationRatePlansByApplicationId(appId: number, lid: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${appId}/RatePlans?LID=${lid}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getMockApplicationRatePlansByApplicationId(appId: number, lid: number) {\r\n try {\r\n const response = await axios(this.getUrl(`mock?LID=${lid}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n async getApplicationDecision(appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`decision/${appId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async createApplicantLead(appId: number, body: ApplicantLeadRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(`${appId}/Lead`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass ConfigurationService extends BaseApiService {\r\n constructor() {\r\n super(\"configuration\");\r\n }\r\n\r\n async getLenderConfiguration(lid: number, programTypeId: number, productTypeId: number) {\r\n try {\r\n const response = await axios(\r\n this.getUrl(`lender/${lid}/programType/${programTypeId}/productType/${productTypeId}`),\r\n );\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getRates(lid: number, programTypeId: number, productTypeId: number) {\r\n try {\r\n const response = await axios(\r\n this.getUrl(`rates/${lid}/programType/${programTypeId}/productType/${productTypeId}`),\r\n );\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getLenderConfigurationByLenderId(lid: number) {\r\n try {\r\n const response = await axios(this.getUrl(`lender/${lid}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass DocumentsService extends BaseApiService {\r\n constructor() {\r\n super(\"documents\");\r\n }\r\n\r\n async getApplicationDocumentViewLinks(applicationId: number) {\r\n try {\r\n const response = await axios.get(this.getUrl(`application/${applicationId}/view-links`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicationDocumentViewLinksByDocumentType(applicationId: number, documentTypeId: number) {\r\n try {\r\n const response = await axios.get(\r\n this.getUrl(`application/${applicationId}/documentType/${documentTypeId}/view-links`),\r\n );\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass PersonService extends BaseApiService {\r\n constructor() {\r\n super(\"person\");\r\n }\r\n\r\n async getUnifiUser(personId: number, appId: number) {\r\n try {\r\n const response = await axios(this.getUrl(\"unifi\"), {\r\n params: { personId, appId },\r\n });\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async checkUsername(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(`check`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async registerUser(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"register\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async submitApplication(personId: number) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/submit/${personId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addApplicant(applicationId: number, applicantTypeId: number) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"applicant/add\"), {\r\n applicationId,\r\n applicantTypeId,\r\n });\r\n\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicant(personId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`applicant/${personId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateCitizenship(personId: number, body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(`applicant/${personId}/citizenship`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addAnnualIncome(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/salary`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateAnnualIncome(body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(`applicant/salary`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addIncome(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/Income`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateIncome(personId: number, incomeId: number, body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(`applicant/${personId}/Income/${incomeId}`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addAddress(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/Address`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateAddress(personId: number, addressId: number, body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(`applicant/${personId}/Address/${addressId}`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addSurveyResponse(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"applicant/surveyresponses\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async acceptInvite(token: string) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/Invites/${token}/accept`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async inviteApplicant(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"applicant/invites\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addOrUpdateHousingOption(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"applicant/housing\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getHousing(personId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`applicant/${personId}/housing`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addOrUpdateLiability(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"applicant/liabilities\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getApplicantLiabilities(personId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`applicant/${personId}/liabilities`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async verifyApplicantNationalIdNumberRequest(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"verify\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async sendVerificationCodeByEmail(body: SendVerificationCodeRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"sendVerificationCodeByEmail\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async verifyCode(body: VerifyCodeRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"verifyCode\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateEmailAddress(body: UpdateEmailRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"updateEmail\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async calculateApplicantAge(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"calculateAge\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass SchoolService extends BaseApiService {\r\n constructor() {\r\n super(\"schools\");\r\n }\r\n\r\n async getSchools() {\r\n try {\r\n const response = await axios(this.getUrl(\"\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getSchoolsByProgram(programTypeId: number, productTypeId: number, lenderId: number) {\r\n try {\r\n const url = this.getUrl(`program/${encodeURIComponent(programTypeId)}`);\r\n const response = await axios.get(url, {\r\n params: {\r\n productTypeId: productTypeId,\r\n lenderId: lenderId,\r\n },\r\n });\r\n\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getSchool(schoolId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`${schoolId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass InvitesService extends BaseApiService {\r\n constructor() {\r\n super(\"invites\");\r\n }\r\n async getInvite(token: string) {\r\n try {\r\n const response = await axios(this.getUrl(`${token}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async acceptInvite(token: string) {\r\n try {\r\n const response = await axios.post(this.getUrl(`${token}/accept`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass ConsentsService extends BaseApiService {\r\n constructor() {\r\n super(\"consents\");\r\n }\r\n async addConsent(body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n async updateConsent(body: any) {\r\n try {\r\n const response = await axios.put(this.getUrl(\"\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n async getAllConsents(applicantId: number) {\r\n try {\r\n const response = await axios(this.getUrl(`applicants/${applicantId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n async getRegistrationConsents() {\r\n try {\r\n const response = await axios(this.getUrl(\"registration\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getCreditPullConsent() {\r\n try {\r\n const response = await axios(this.getUrl(\"credit\"));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass ReturnService extends BaseApiService {\r\n constructor() {\r\n super(\"return\");\r\n }\r\n\r\n async acceptReturnLink(token: string): Promise {\r\n try {\r\n const response = await axios.post(this.getUrl(`accept?token=${token}`));\r\n\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass FeedbackService extends BaseApiService {\r\n constructor() {\r\n super(\"feedback\");\r\n }\r\n\r\n async sendFeedback(body: PostFeedbackRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(\"\"), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getFeedbackFormOptions(formId: number) {\r\n try {\r\n const response = await axios.get(this.getUrl(`${formId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nclass RefiService extends BaseApiService {\r\n constructor() {\r\n super(\"refi\");\r\n }\r\n\r\n async getDegreeLevels() {\r\n try {\r\n const response = await axios.get(this.getUrl(`DegreeLevels`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getProgramsByDegreeLevelTypeId(lenderId: number, productTypeId: number, degreeLevelTypeId: number) {\r\n try {\r\n const response = await axios.get(\r\n this.getUrl(`ProgramPlans/lender/${lenderId}/product/${productTypeId}/degreeLevel/${degreeLevelTypeId}`),\r\n );\r\n return response;\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getServicers() {\r\n try {\r\n const response = await axios.get(this.getUrl(`Servicers`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getCandidateRefiLoans(applicationId: number) {\r\n try {\r\n const response = await axios.get(this.getUrl(`${applicationId}/CandidateRefiLoans`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async addCandidateRefiLoan(body: CreateCandidateRefiLoanRequest) {\r\n try {\r\n const response = await axios.post(this.getUrl(`CandidateRefiLoan`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async deleteCandidateRefiLoan(applicationId: number, candidateRefiLoanId: number) {\r\n try {\r\n const response = await axios.delete(this.getUrl(`${applicationId}/candidateRefiLoans/${candidateRefiLoanId}`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateCandidateRefiLoan(body: UpdateCandidateRefiLoanRequest) {\r\n try {\r\n const response = await axios.patch(this.getUrl(`CandidateRefiLoan`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async updateCandidateRefiLoans(body: UpdateCandidateRefiLoanRequest[]) {\r\n try {\r\n const response = await axios.patch(this.getUrl(`CandidateRefiLoans`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async calculatePayments(applicantId: number, body: any) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicants/${applicantId}/CalculatePayments`), body);\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async softPullSubmit(applicantId: number) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/${applicantId}/SoftPull`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getRefiRatePlans(applicationId: number) {\r\n try {\r\n const response = await axios.get(this.getUrl(`application/${applicationId}/RatePlans`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async getSoftPullRatePlans(applicantId: number) {\r\n try {\r\n const response = await axios.get(this.getUrl(`applicants/${applicantId}/SoftPullRatePlans`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async generateASDDocument(applicantId: number) {\r\n try {\r\n const response = await axios.post(this.getUrl(`applicant/${applicantId}/ASDDocument`));\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n\r\n async reApplyWithNewCoApplicant(applicationId: number, applicantId: number) {\r\n try {\r\n const response = await axios.post(\r\n this.getUrl(`application/${applicationId}/applicant/${applicantId}/ReApplyWithCoapplicant`),\r\n );\r\n return response.data || [];\r\n } catch (err) {\r\n return this.handleErrors(err);\r\n }\r\n }\r\n}\r\n\r\nexport const $api = {\r\n lookups: new LookupsApiService(),\r\n leads: new LeadService(),\r\n applications: new ApplicationService(),\r\n configuration: new ConfigurationService(),\r\n documents: new DocumentsService(),\r\n person: new PersonService(),\r\n school: new SchoolService(),\r\n consents: new ConsentsService(),\r\n invites: new InvitesService(),\r\n returns: new ReturnService(),\r\n feedback: new FeedbackService(),\r\n refi: new RefiService(),\r\n};\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport { InitialDraw, SchoolConfig, EnrollmentTerm, LoanConfig } from \"@/models/application\";\r\nimport { School } from \"@/models/school\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport { LoanConfirmationDetails, RatePlanVM, RatePlanRepaymentVM } from \"@/models/loanConfiguration\";\r\n\r\nconst { formatMoney } = useFormatter();\r\n\r\nconst loanConfigurationModule: Module = {\r\n namespaced: true,\r\n state: {\r\n currentSubStep: 1,\r\n redirectToPortal: undefined as undefined | boolean,\r\n isEditing: false as boolean,\r\n initialDrawRequest: undefined as undefined | InitialDraw,\r\n selectedRatePlan: undefined as undefined | RatePlanVM,\r\n selectedRepaymentOption: {} as RatePlanRepaymentVM,\r\n selectedEnrollmentTerm: {} as EnrollmentTerm,\r\n selectedGraduationDate: \"\" as string,\r\n selectedSchool: {} as School,\r\n enrollmentTerms: [] as EnrollmentTerm[],\r\n schoolConfiguration: {} as SchoolConfig,\r\n loanConfiguration: {} as LoanConfig,\r\n availableRatePlans: [] as RatePlanVM[],\r\n loanConfirmationDetails: undefined as undefined | LoanConfirmationDetails,\r\n },\r\n actions: {\r\n isCurrentSubStep({ state, commit }, payload) {\r\n return state.currentSubStep === payload;\r\n },\r\n setCurrentSubStep({ commit }, payload) {\r\n commit(\"SET_CURRENT_SUBSTEP\", payload);\r\n },\r\n setInitialDrawRequest({ commit }, payload) {\r\n commit(\"SET_INITIAL_DRAW_REQUEST\", payload);\r\n },\r\n setSelectedRatePlan({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_PLAN\", payload);\r\n },\r\n setSchoolConfiguration({ commit }, payload: SchoolConfig) {\r\n commit(\"SET_SCHOOL_CONFIGURATION\", payload);\r\n },\r\n setSelectedSchool({ commit }, school: School) {\r\n commit(\"SET_SELECTED_SCHOOL\", school);\r\n },\r\n setSelectedEnrollmentTerm({ commit }, enrollmentTerm: EnrollmentTerm) {\r\n commit(\"SET_SELECTED_ENROLLMENT_TERM\", enrollmentTerm);\r\n },\r\n setSelectedGraduationDate({ commit }, graduationDate: string) {\r\n commit(\"SET_SELECTED_GRADUATION_DATE\", graduationDate);\r\n },\r\n setAvailableRatePlans({ commit }, ratePlans: any) {\r\n commit(\"SET_AVAILABLE_RATE_PLANS\", ratePlans);\r\n },\r\n setLoanConfiguration({ commit }, ratePlans: any) {\r\n commit(\"SET_LOAN_CONFIGURATION\", ratePlans);\r\n },\r\n setSelectedRepaymentOption({ commit }, repaymentOption: any) {\r\n commit(\"SET_SELECTED_REPAYMENT_OPTION\", repaymentOption);\r\n },\r\n setLoanConfirmationDetails({ commit }, loanDetails: any) {\r\n commit(\"SET_LOAN_CONFIRMATION_DETAILS\", loanDetails);\r\n },\r\n async getInitialDraw({ commit, state }, applicationId: number) {\r\n const response = await $api.applications.getInitialDraw(applicationId);\r\n\r\n if (response.applicationId) {\r\n commit(\"SET_INITIAL_DRAW_REQUEST\", response);\r\n }\r\n },\r\n async addOrUpdateInitialDraw({ commit, state }, amount: number | string) {\r\n await store.dispatch(\"getEnrollmentTerms\");\r\n\r\n if (state.schoolConfiguration?.schoolId) {\r\n const schoolId = state.schoolConfiguration?.schoolId;\r\n const enrollmentTerm = store.state.enrollmentTerms?.find(\r\n (p: EnrollmentTerm) =>\r\n p.description === store?.state?.appData?.application?.schoolConfiguration?.academicTerm,\r\n );\r\n\r\n const school = await $api.school.getSchool(schoolId);\r\n const index = store?.state?.appData?.applicants?.length - 1;\r\n\r\n const initialFundsRequest = {\r\n userId: store?.state?.appData?.applicants[index]?.userId, // last user added\r\n schoolDOEId: school.schoolDOEId,\r\n schoolBranchDOEId: school.schoolBranchDOEId,\r\n enrollmentTermId: enrollmentTerm?.id,\r\n amount: amount,\r\n };\r\n\r\n const response = await $api.applications.addOrUpdateInitialDraw(\r\n store?.state?.appData.application.id,\r\n initialFundsRequest,\r\n );\r\n\r\n if (response.applicationId) {\r\n store.dispatch(\"setInitialDrawRequest\", response);\r\n }\r\n\r\n return response;\r\n } else {\r\n return {\r\n errors: [\"No School Selected\"],\r\n };\r\n }\r\n },\r\n },\r\n mutations: {\r\n SET_CURRENT_SUBSTEP(state: any, substep: number) {\r\n state.currentSubStep = substep;\r\n },\r\n SET_INITIAL_DRAW_REQUEST(state: any, initialDrawRequest: any) {\r\n state.initialDrawRequest = initialDrawRequest;\r\n },\r\n SET_SELECTED_RATE_PLAN(state: any, selectedRatePlan: any) {\r\n state.selectedRatePlan = selectedRatePlan;\r\n },\r\n SET_SCHOOL_CONFIGURATION(state: any, schoolConfiguration: SchoolConfig) {\r\n state.schoolConfiguration = schoolConfiguration;\r\n },\r\n SET_SELECTED_SCHOOL(state: any, school: School) {\r\n state.selectedSchool = school;\r\n },\r\n SET_SELECTED_ENROLLMENT_TERM(state: any, enrollmentTerm: EnrollmentTerm) {\r\n state.selectedEnrollmentTerm = enrollmentTerm;\r\n },\r\n SET_SELECTED_GRADUATION_DATE(state: any, graduationDate: string) {\r\n state.selectedGraduationDate = graduationDate;\r\n },\r\n SET_LOAN_CONFIGURATION(state: any, loanConfiguration: LoanConfig) {\r\n state.loanConfiguration = loanConfiguration;\r\n },\r\n SET_AVAILABLE_RATE_PLANS(state: any, ratePlans: any) {\r\n state.availableRatePlans = ratePlans;\r\n },\r\n SET_SELECTED_REPAYMENT_OPTION(state: any, selectedRepaymentOption: any) {\r\n state.selectedRepaymentOption = selectedRepaymentOption;\r\n },\r\n SET_LOAN_CONFIRMATION_DETAILS(state: any, loanDetails: any) {\r\n state.loanConfirmationDetails = loanDetails;\r\n },\r\n },\r\n getters: {\r\n stepScroll: (state: any): string => {\r\n return `${(state.currentSubStep - 1) * 100}%`;\r\n },\r\n },\r\n};\r\n\r\nexport default loanConfigurationModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport { CandidateRefiLoan } from \"@/models/application\";\r\n\r\nexport interface Notification {\r\n error: boolean;\r\n message: string;\r\n}\r\n\r\nconst candidateLoansRefiModule: Module = {\r\n namespaced: true,\r\n state: {\r\n applicationId: 0 as number,\r\n currentlyEditingIds: [] as number[],\r\n originalCandidateRefiLoans: {} as any,\r\n addingLoan: false,\r\n servicers: [],\r\n candidateRefiLoans: [] as CandidateRefiLoan[],\r\n notifications: [] as Notification[],\r\n mockLoansData1: [\r\n {\r\n applicationId: 0,\r\n id: 1,\r\n accountNumber: 36002195,\r\n creditorName: \"A\",\r\n servicerId: 2,\r\n balance: 3135,\r\n include: false,\r\n tradeLineId: 1,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 2,\r\n accountNumber: 21313213,\r\n creditorName: \"B\",\r\n balance: 5066,\r\n include: false,\r\n tradeLineId: 2,\r\n servicerId: 2,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 3,\r\n accountNumber: 11122233,\r\n creditorName: \"C\",\r\n balance: 11122,\r\n include: false,\r\n tradeLineId: 3,\r\n servicerId: 3,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 4,\r\n accountNumber: 11122235,\r\n creditorName: \"C\",\r\n balance: 11129,\r\n include: false,\r\n tradeLineId: 4,\r\n servicerId: 3,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 5,\r\n accountNumber: 2222222,\r\n creditorName: \"C\",\r\n balance: 5000,\r\n include: true,\r\n tradeLineId: null,\r\n servicerId: 3,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 6,\r\n accountNumber: 5555555,\r\n creditorName: \"C\",\r\n balance: 5000,\r\n include: true,\r\n tradeLineId: null,\r\n servicerId: 3,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 7,\r\n accountNumber: 7777771,\r\n creditorName: \"C\",\r\n balance: 5000,\r\n include: true,\r\n tradeLineId: null,\r\n servicerId: 3,\r\n },\r\n {\r\n applicationId: 0,\r\n id: 8,\r\n accountNumber: 22225555,\r\n creditorName: \"My lender / servicer isn't listed\",\r\n balance: 5000,\r\n include: true,\r\n tradeLineId: null,\r\n servicerId: 1,\r\n },\r\n // {\r\n //applicationId: 0,\r\n // id: 6,\r\n // accountNumber: 8888810,\r\n // creditorName: \"My lender / servicer isn't listed\",\r\n // balance: 5000,\r\n // include: false,\r\n // servicerId: 1,\r\n // },\r\n ],\r\n mockLoansData: [],\r\n candidateRefiLoanToAdd: {} as any,\r\n },\r\n mutations: {\r\n ADD_NOTIFICATION(state: any, notification: Notification) {\r\n state.notifications.push(notification);\r\n },\r\n DELETE_NOTIFICATION(state: any, index: number) {\r\n state.notifications.splice(index, 1);\r\n },\r\n SET_APPLICATION_ID(state: any, applicationId: number) {\r\n state.applicationId = applicationId;\r\n },\r\n SET_SERVICERS(state: any, servicers: any) {\r\n state.servicers = servicers;\r\n },\r\n SET_CANDIDATE_REFI_LOANS(state: any, loans: Array) {\r\n state.candidateRefiLoans = loans;\r\n },\r\n SET_CANDIDATE_REFI_LOAN(state: any, candidateRefiLoan: CandidateRefiLoan) {\r\n const index = state.candidateRefiLoans.findIndex((loan: any) => loan.id === candidateRefiLoan.id);\r\n if (index > -1) {\r\n state.candidateRefiLoans[index] = candidateRefiLoan;\r\n }\r\n },\r\n SET_ORIGINAL_CANDIDATE_REFI_LOANS(state: any, loans: any) {\r\n state.originalCandidateRefiLoans = loans;\r\n },\r\n SET_ORIGINAL_CANDIDATE_REFI_LOAN(state: any, candidateRefiLoan: CandidateRefiLoan) {\r\n state.originalCandidateRefiLoans[candidateRefiLoan.id] = Object.assign({}, candidateRefiLoan);\r\n },\r\n SET_MOCK_CANDIDATE_REFI_LOANS(state: any, loans: any) {\r\n state.mockLoansData = loans;\r\n },\r\n SET_MOCK_CANDIDATE_REFI_LOAN(state: any, updatedLoan: any) {\r\n const index = state.mockLoansData.findIndex((loan: any) => loan.id === updatedLoan.id);\r\n\r\n if (index > -1) {\r\n state.mockLoansData[index] = updatedLoan;\r\n }\r\n },\r\n ADD_MOCK_CANDIDATE_REFI_LOAN(state: any, loan: any) {\r\n state.mockLoansData.push(loan);\r\n },\r\n DELETE_MOCK_CANDIDATE_REFI_LOAN(state: any, id: number) {\r\n const index = state.mockLoansData.findIndex((l: any) => l.id === id);\r\n if (index > -1) {\r\n state.mockLoansData.splice(index, 1);\r\n }\r\n },\r\n DISCARD_CHANGES(state: any, candidateRefiLoanId: number) {\r\n const originalCandidateRefiLoan = state.originalCandidateRefiLoans[candidateRefiLoanId];\r\n const index = state.candidateRefiLoans.findIndex((loan: any) => loan.id === candidateRefiLoanId);\r\n if (index > -1) {\r\n state.candidateRefiLoans[index] = originalCandidateRefiLoan;\r\n }\r\n\r\n if (Object.keys(state.originalCandidateRefiLoans)?.includes(`${candidateRefiLoanId}`)) {\r\n delete state.originalCandidateRefiLoans[candidateRefiLoanId];\r\n }\r\n },\r\n TOGGLE_EDIT(state: any, candidateRefiLoanId: number) {\r\n const index = state.currentlyEditingIds.findIndex((id: number) => id === candidateRefiLoanId);\r\n\r\n if (index === -1) {\r\n state.currentlyEditingIds.push(candidateRefiLoanId);\r\n }\r\n },\r\n UNTOGGLE_EDIT(state: any, candidateRefiLoanId: number) {\r\n const index = state.currentlyEditingIds.findIndex((id: number) => id === candidateRefiLoanId);\r\n\r\n if (index > -1) {\r\n state.currentlyEditingIds.splice(index, 1);\r\n }\r\n },\r\n SET_ADDING_LOAN(state: any, flag: boolean) {\r\n state.addingLoan = flag;\r\n },\r\n RESET_NOTIFICATIONS(state: any, flag: boolean) {\r\n state.notifications = [];\r\n },\r\n },\r\n actions: {\r\n async getServicers({ state, commit }) {\r\n if (state.servicers?.length <= 0) {\r\n const response = await $api.refi.getServicers();\r\n if (response?.length > 0) {\r\n commit(\"SET_SERVICERS\", response);\r\n }\r\n }\r\n },\r\n async getCandidateRefiLoans({ commit }, applicationId: number) {\r\n const response = await $api.refi.getCandidateRefiLoans(applicationId);\r\n if (response?.length > 0) {\r\n commit(\"SET_CANDIDATE_REFI_LOANS\", response);\r\n }\r\n },\r\n setCandidateRefiLoans({ commit }, candidateRefiLoans: any) {\r\n commit(\"SET_CANDIDATE_REFI_LOANS\", candidateRefiLoans);\r\n\t\t\tstore.dispatch(\"setCandidateRefiLoans\", candidateRefiLoans);\r\n },\r\n setOriginalCandidateRefiLoans({ commit }, candidateRefiLoans: any) {\r\n commit(\"SET_ORIGINAL_CANDIDATE_REFI_LOANS\", candidateRefiLoans);\r\n },\r\n setCandidateRefiLoan({ commit }, candidateRefiLoan: CandidateRefiLoan) {\r\n commit(\"SET_CANDIDATE_REFI_LOAN\", candidateRefiLoan);\r\n },\r\n closeNotification({ commit }, index: number) {\r\n commit(\"DELETE_NOTIFICATION\", index);\r\n },\r\n addNotification({ commit }, notification: Notification) {\r\n commit(\"ADD_NOTIFICATION\", notification);\r\n },\r\n\t\tresetNotifications({ commit }) {\r\n\t\t\tcommit(\"RESET_NOTIFICATIONS\");\r\n\t\t},\r\n setApplicationId({ commit }, applicationId: number) {\r\n commit(\"SET_APPLICATION_ID\", applicationId);\r\n },\r\n addMockCandidateRefiLoan({ commit }, payload: any) {\r\n commit(\"ADD_MOCK_CANDIDATE_REFI_LOAN\", payload);\r\n },\r\n deleteMockCandidateRefiLoan({ commit }, payload: any) {\r\n commit(\"DELETE_MOCK_CANDIDATE_REFI_LOAN\", payload);\r\n },\r\n setMockCandidateRefiLoans({ commit }, payload) {\r\n commit(\"SET_MOCK_CANDIDATE_REFI_LOANS\", payload);\r\n },\r\n setMockCandidateRefiLoan({ commit }, payload) {\r\n commit(\"SET_MOCK_CANDIDATE_REFI_LOAN\", payload);\r\n },\r\n toggleEdit({ commit }, candidateRefiLoanId: number) {\r\n commit(\"TOGGLE_EDIT\", candidateRefiLoanId);\r\n },\r\n untoggleEdit({ commit }, candidateRefiLoanId: number) {\r\n commit(\"UNTOGGLE_EDIT\", candidateRefiLoanId);\r\n },\r\n isEditing({ state }, candidateRefiLoanId: number) {\r\n return state.currentlyEditingIds?.includes(candidateRefiLoanId) || false;\r\n },\r\n setAddingLoan({ commit }, flag: boolean) {\r\n commit(\"SET_ADDING_LOAN\", flag);\r\n },\r\n discardChanges({ commit }, candidateRefiLoanId: number) {\r\n commit(\"DISCARD_CHANGES\", candidateRefiLoanId);\r\n },\r\n getSucccessNotificationMessage({ commit }, action: string) {\r\n switch (action) {\r\n case \"ADD\":\r\n return \"The information has been added.\";\r\n case \"EDIT\":\r\n case \"UPDATE\":\r\n return \"The information has been updated.\";\r\n case \"DELETE\":\r\n return \"The information has been removed.\";\r\n default:\r\n return \"\";\r\n }\r\n },\r\n getErrorNotificationMessage({ commit }, action: string) {\r\n switch (action) {\r\n case \"ADD\":\r\n case \"EDIT\":\r\n case \"UPDATE\":\r\n return \"Unable to update. Please try again.\";\r\n case \"DELETE\":\r\n return \"Unable to remove. Please try again.\";\r\n default:\r\n return \"\";\r\n }\r\n },\r\n async handleNotification({ commit, dispatch }, payload: any) {\r\n const notification = {\r\n error: payload.error,\r\n message: payload.error\r\n ? await dispatch(\"getErrorNotificationMessage\", payload.action)\r\n : await dispatch(\"getSucccessNotificationMessage\", payload.action),\r\n };\r\n\r\n dispatch(\"addNotification\", notification);\r\n },\r\n calculateEstimatedTotalToRefinance({ state }) {\r\n if (state?.candidateRefiLoans?.length > 0) {\r\n return state?.candidateRefiLoans?.reduce(function (acc: any, obj: any) {\r\n const bal = typeof obj.balance === \"string\" ? parseFloat(obj.balance) : obj.balance;\r\n\r\n return obj.include ? acc + bal : acc;\r\n }, 0);\r\n } else {\r\n return 0;\r\n }\r\n },\r\n },\r\n getters: {},\r\n};\r\n\r\nexport default candidateLoansRefiModule;\r\n","export default function useArrayHelpers(): any {\r\n function groupBy(arr: any, property: any) {\r\n return arr.reduce(function (memo: any, x: any) {\r\n if (!memo[x[property]]) {\r\n memo[x[property]] = [];\r\n }\r\n memo[x[property]].push(x);\r\n return memo;\r\n }, {});\r\n }\r\n\r\n return {\r\n groupBy,\r\n };\r\n}\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport { PaymentCalculationViewModel, SoftPullResultViewModel } from \"@/models/viewModels\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useArrayHelpers from \"@/use/arrayHelpers\";\r\n\r\nconst { formatNumber, formatMoney } = useFormatter();\r\nconst { groupBy } = useArrayHelpers();\r\n\r\nconst showMyRatesModule: Module = {\r\n namespaced: true,\r\n state: {\r\n gettingEstimatedPayments: false as boolean,\r\n calculatingEstimatedPayments: false as boolean,\r\n estimatedLoanAmount: 0 as number,\r\n estimatedLoanAmountInput: 0 as number,\r\n calculatedPaymentOptions: [] as PaymentCalculationViewModel[],\r\n sampleCalculatedPaymentOptions: [] as PaymentCalculationViewModel[],\r\n mockRateTermsAvailable: {\r\n 5: [\r\n { interestRate: 0.0285, rateTypeName: \"Fixed\" },\r\n { interestRate: 0.0221, rateTypeName: \"Variable\" },\r\n ],\r\n 10: [\r\n { interestRate: 0.0785, rateTypeName: \"Fixed\" },\r\n { interestRate: 0.121, rateTypeName: \"Variable\" },\r\n ],\r\n 15: [\r\n { interestRate: 0.0785, rateTypeName: \"Fixed\" },\r\n { interestRate: 0.121, rateTypeName: \"Variable\" },\r\n ],\r\n } as any,\r\n mockEstimatedLoanAmountCalculationRates: [\r\n {\r\n ratePlanId: 1,\r\n year: 5,\r\n month: 5 * 12,\r\n fixedRate: 2.96,\r\n variableRate: 3.26,\r\n },\r\n {\r\n ratePlanId: 2,\r\n year: 10,\r\n month: 10 * 12,\r\n fixedRate: 3.26,\r\n variableRate: 3.26,\r\n },\r\n {\r\n ratePlanId: 3,\r\n year: 15,\r\n month: 15 * 12,\r\n fixedRate: 5.26,\r\n variableRate: 3.26,\r\n },\r\n ],\r\n mockEstimatedMonthlyPaymentOptions: [\r\n {\r\n ratePlanId: 1,\r\n year: 5,\r\n month: 5 * 12,\r\n fixedMonthlyPayment: 346.87,\r\n variableMonthlyPayment: 349.45,\r\n fixedRate: 2.96,\r\n variableRate: 3.26,\r\n },\r\n {\r\n ratePlanId: 2,\r\n year: 10,\r\n month: 10 * 12,\r\n fixedMonthlyPayment: 188.91,\r\n variableMonthlyPayment: 188.91,\r\n fixedRate: 3.26,\r\n variableRate: 3.26,\r\n },\r\n {\r\n ratePlanId: 3,\r\n year: 15,\r\n month: 15 * 12,\r\n fixedMonthlyPayment: 155.43,\r\n variableMonthlyPayment: 135.87,\r\n fixedRate: 5.26,\r\n variableRate: 3.26,\r\n },\r\n ],\r\n mockAvailablePricingTiers: [\r\n {\r\n id: 109,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 15,\r\n rateTypeId: 2,\r\n margin: 1.7,\r\n floor: 0.0,\r\n ceiling: 18.0,\r\n indexType: {\r\n id: 2,\r\n name: \"Prime\",\r\n rate: 8.5,\r\n },\r\n rateType: {\r\n id: 2,\r\n name: \"Variable\",\r\n },\r\n },\r\n term: {\r\n id: 1,\r\n years: 5.0,\r\n months: 60,\r\n },\r\n },\r\n {\r\n id: 110,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 18,\r\n rateTypeId: 2,\r\n margin: 4.65,\r\n floor: 0.0,\r\n ceiling: 18.0,\r\n indexType: {\r\n id: 1,\r\n name: \"None\",\r\n rate: 0.0,\r\n },\r\n rateType: {\r\n id: 1,\r\n name: \"Fixed\",\r\n },\r\n },\r\n term: {\r\n id: 1,\r\n years: 5.0,\r\n months: 60,\r\n },\r\n },\r\n {\r\n id: 103,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 15,\r\n rateTypeId: 2,\r\n margin: 1.7,\r\n floor: 0.0,\r\n ceiling: 18.0,\r\n indexType: {\r\n id: 2,\r\n name: \"Prime\",\r\n rate: 8.5,\r\n },\r\n rateType: {\r\n id: 2,\r\n name: \"Variable\",\r\n },\r\n },\r\n term: {\r\n id: 4,\r\n years: 15.0,\r\n months: 180,\r\n },\r\n },\r\n {\r\n id: 106,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 18,\r\n rateTypeId: 2,\r\n margin: 4.65,\r\n floor: 0.0,\r\n ceiling: 18.0,\r\n indexType: {\r\n id: 1,\r\n name: \"None\",\r\n rate: 0.0,\r\n },\r\n rateType: {\r\n id: 1,\r\n name: \"Fixed\",\r\n },\r\n },\r\n term: {\r\n id: 4,\r\n years: 15.0,\r\n months: 180,\r\n },\r\n },\r\n {\r\n id: 107,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 25,\r\n rateTypeId: 1,\r\n margin: 5.85,\r\n floor: 5.85,\r\n ceiling: 5.85,\r\n indexType: {\r\n id: 1,\r\n name: \"None\",\r\n rate: 0.0,\r\n },\r\n rateType: {\r\n id: 1,\r\n name: \"Fixed\",\r\n },\r\n },\r\n term: {\r\n id: 3,\r\n years: 10.0,\r\n months: 120,\r\n },\r\n },\r\n {\r\n id: 108,\r\n programId: 12,\r\n termId: 0,\r\n ficoMin: 800,\r\n ficoMax: 824,\r\n rateId: 0,\r\n dtiMax: 999.9999,\r\n effectiveDate: \"2022-10-27T00:00:00\",\r\n expirationDate: null,\r\n applicantType: {\r\n id: 1,\r\n name: \"Primary Applicant\",\r\n },\r\n rate: {\r\n id: 26,\r\n rateTypeId: 1,\r\n margin: 6.6,\r\n floor: 6.6,\r\n ceiling: 6.6,\r\n indexType: {\r\n id: 1,\r\n name: \"None\",\r\n rate: 0.0,\r\n },\r\n rateType: {\r\n id: 1,\r\n name: \"Fixed\",\r\n },\r\n },\r\n term: {\r\n id: 3,\r\n years: 10.0,\r\n months: 120,\r\n },\r\n },\r\n ],\r\n currentApplicantTypeId: 0 as number,\r\n currentApplicantTypeName: \"\" as string,\r\n primaryApplicantSelectedCreditScoreRange: {},\r\n coApplicantSelectedCreditScoreRange: {},\r\n selectedCreditScoreRange: {},\r\n availablePricingTiers: [],\r\n softPullRatePlans: {} as any,\r\n primaryApplicantSoftPullRatePlans: [] as any[],\r\n coApplicantSoftPullRatePlans: [] as any[],\r\n currentSubpageId: \"\" as string,\r\n softPullResult: {} as SoftPullResultViewModel,\r\n },\r\n mutations: {\r\n SET_AVAILABLE_PRICING_TIERS(state: any, pricingTiers: any) {\r\n state.availablePricingTiers = pricingTiers;\r\n },\r\n SET_SOFT_PULL_RATE_PLANS(state: any, ratePlans: any) {\r\n state.softPullRatePlans = ratePlans;\r\n },\r\n SET_PRIMARY_APPLICANT_SOFT_PULL_RATE_PLANS(state: any, ratePlans: any) {\r\n state.primaryApplicantSoftPullRatePlans = ratePlans;\r\n },\r\n SET_CO_APPLICANT_SOFT_PULL_RATE_PLANS(state: any, ratePlans: any) {\r\n state.coApplicantSoftPullRatePlans = ratePlans;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_ID(state: any, currentApplicantTypeId: number) {\r\n state.currentApplicantTypeId = currentApplicantTypeId;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_NAME(state: any, currentApplicantTypeName: string) {\r\n state.currentApplicantTypeName = currentApplicantTypeName;\r\n },\r\n SET_GETTING_ESTIMATED_PAYMENTS(state: any, flag: boolean) {\r\n state.gettingEstimatedPayments = flag;\r\n },\r\n SET_CALCULATING_ESTIMATED_PAYMENTS(state: any, flag: boolean) {\r\n state.calculatingEstimatedPayments = flag;\r\n },\r\n SET_ESTIMATED_LOAN_AMOUNT(state: any, amount: number) {\r\n state.estimatedLoanAmount = amount;\r\n },\r\n SET_ESTIMATED_LOAN_AMOUNT_INPUT(state: any, amount: number) {\r\n const number = typeof amount === \"string\" ? parseInt(amount) : amount;\r\n state.estimatedLoanAmountInput = number;\r\n },\r\n SET_CALCULATED_PAYMENT_OPTIONS(state: any, calculatedPaymentOptions: PaymentCalculationViewModel[]) {\r\n state.calculatedPaymentOptions = calculatedPaymentOptions;\r\n },\r\n SET_SAMPLE_CALCULATED_PAYMENT_OPTIONS(state: any, calculatedPaymentOptions: PaymentCalculationViewModel[]) {\r\n state.sampleCalculatedPaymentOptions = calculatedPaymentOptions;\r\n },\r\n SET_CURRENT_SUBPAGE_ID(state: any, subpageId: string) {\r\n state.currentSubpageId = subpageId;\r\n },\r\n SET_SOFT_PULL_RESULT(state: any, softPullResult: SoftPullResultViewModel) {\r\n state.softPullResult = softPullResult;\r\n },\r\n },\r\n actions: {\r\n setCalculatingEstimatedPayments({ commit }, payload) {\r\n commit(\"SET_CALCULATING_ESTIMATED_PAYMENTS\", payload);\r\n },\r\n setGettingEstimatedPayments({ commit }, payload) {\r\n commit(\"SET_GETTING_ESTIMATED_PAYMENTS\", payload);\r\n },\r\n setCalculatedPaymentOptions({ commit }, payload) {\r\n commit(\"SET_CALCULATED_PAYMENT_OPTIONS\", payload);\r\n },\r\n setSampleCalculatedPaymentOptions({ commit }, payload) {\r\n commit(\"SET_SAMPLE_CALCULATED_PAYMENT_OPTIONS\", payload);\r\n },\r\n setEstimatedLoanAmount({ commit }, payload) {\r\n commit(\"SET_ESTIMATED_LOAN_AMOUNT\", payload);\r\n },\r\n setCurrentApplicantTypeId({ commit }, payload) {\r\n commit(\"SET_CURRENT_APPLICANT_TYPE_ID\", payload);\r\n },\r\n setCurrentSubpageId({ commit }, payload) {\r\n commit(\"SET_CURRENT_SUBPAGE_ID\", payload);\r\n },\r\n setSoftPullResult({ commit }, payload) {\r\n commit(\"SET_SOFT_PULL_RESULT\", payload);\r\n },\r\n async calculateSamplePayments({ state, commit, dispatch }, payload: any) {\r\n dispatch(\"setCalculatingEstimatedPayments\", true);\r\n\r\n const request = {\r\n applicantId: payload?.applicantId,\r\n estimatedLoanAmount: payload?.asdAmtFinanced,\r\n };\r\n\r\n const payments = await $api.refi.calculatePayments(payload?.applicantId, request);\r\n\r\n if (payments?.length > 0 && !payments?.error) {\r\n const sortedPaymentsAsc = payments?.sort(\r\n (a: PaymentCalculationViewModel, b: PaymentCalculationViewModel) =>\r\n parseInt(a?.termYears) - parseInt(b?.termYears),\r\n );\r\n commit(\"SET_SAMPLE_CALCULATED_PAYMENT_OPTIONS\", sortedPaymentsAsc);\r\n } else {\r\n commit(\"SET_SAMPLE_CALCULATED_PAYMENT_OPTIONS\", []);\r\n }\r\n\r\n dispatch(\"setCalculatingEstimatedPayments\", false);\r\n },\r\n async calculatePayments({ state, commit, dispatch }, applicantId: number) {\r\n dispatch(\"setCalculatingEstimatedPayments\", true);\r\n\r\n const request = {\r\n applicantId: applicantId,\r\n estimatedLoanAmount: state.estimatedLoanAmount,\r\n };\r\n\r\n const payments = await $api.refi.calculatePayments(applicantId, request);\r\n\r\n if (payments?.length > 0 && !payments?.error) {\r\n const sortedPaymentsAsc = payments?.sort(\r\n (a: PaymentCalculationViewModel, b: PaymentCalculationViewModel) =>\r\n parseInt(a?.termYears) - parseInt(b?.termYears),\r\n );\r\n commit(\"SET_CALCULATED_PAYMENT_OPTIONS\", sortedPaymentsAsc);\r\n } else {\r\n commit(\"SET_CALCULATED_PAYMENT_OPTIONS\", []);\r\n }\r\n\r\n dispatch(\"setCalculatingEstimatedPayments\", false);\r\n },\r\n async getSoftPullRatePlans({ state, commit, dispatch }, applicantId: number) {\r\n const ratePlansResponse = await $api.refi.getSoftPullRatePlans(applicantId);\r\n\r\n if (ratePlansResponse?.ratePlans && ratePlansResponse?.ratePlans?.length > 0) {\r\n if (state.currentApplicantTypeId === 1) {\r\n commit(\"SET_PRIMARY_APPLICANT_SOFT_PULL_RATE_PLANS\", ratePlansResponse?.ratePlans);\r\n }\r\n if (state.currentApplicantTypeId === 2) {\r\n commit(\"SET_CO_APPLICANT_SOFT_PULL_RATE_PLANS\", ratePlansResponse?.ratePlans);\r\n }\r\n }\r\n },\r\n },\r\n getters: {\r\n loanMinNotMetError: (state: any): boolean => {\r\n const minimumLoanAmount = store.getters[\"PROGRAM_MINIMUM_LOAN_AMOUNT\"];\r\n return state.estimatedLoanAmount >= 0 && state.estimatedLoanAmount < minimumLoanAmount;\r\n },\r\n ShowSamplePaymentCalculations: (state: any): any => {\r\n return (\r\n store.state.appData.currentState?.route === \"refiShowMyRates\" &&\r\n ((state.currentSubpageId === \"VeryWellCreditQualified\" && state.currentApplicantTypeId === 1) ||\r\n (state.currentSubpageId === \"CreditQualified\" && state.currentApplicantTypeId === 1) ||\r\n state.currentSubpageId === \"SoftDeclineBorrowerLedSolo\" ||\r\n state.currentSubpageId === \"SoftDeclineBorrowerLedJoint\") &&\r\n store.state.candidateRefiLoansModule?.candidateRefiLoans?.length === 0\r\n );\r\n },\r\n AvailableRatePlanOptions: (state: any): any => {\r\n const softPullRatePlans =\r\n state.currentApplicantTypeName === \"Co-Applicant\"\r\n ? state.coApplicantSoftPullRatePlans\r\n : state.primaryApplicantSoftPullRatePlans;\r\n if (softPullRatePlans && softPullRatePlans?.length > 0) {\r\n return softPullRatePlans.map((p: any) => {\r\n return {\r\n interestRate: p.rate,\r\n termInMonths: p.year * 12,\r\n termInYears: p.year,\r\n rateTypeName: p.rateTypeName ? p.rateTypeName : \"\",\r\n year: p.year,\r\n rate: p.rate,\r\n };\r\n });\r\n } else {\r\n return [];\r\n }\r\n },\r\n SortedAvailableRateOptions: (state: any): any => {\r\n const softPullRatePlans =\r\n state.currentApplicantTypeName === \"Co-Applicant\"\r\n ? state.coApplicantSoftPullRatePlans\r\n : state.primaryApplicantSoftPullRatePlans;\r\n if (softPullRatePlans && softPullRatePlans?.length > 0) {\r\n const availableRates = softPullRatePlans.map((p: any) => {\r\n return {\r\n interestRate: `${formatNumber(p.rate * 100)}%`,\r\n termInMonths: p.repaymentTerm,\r\n termInYears: p.repaymentTerm / 12,\r\n rateTypeName: p.rateTypeName,\r\n };\r\n });\r\n return groupBy(availableRates, \"termInYears\");\r\n } else {\r\n return [];\r\n }\r\n },\r\n SoftPullRatePlanOptions: (state: any): any => {\r\n const softPullRatePlans =\r\n state.currentApplicantTypeName === \"Co-Applicant\"\r\n ? state.coApplicantSoftPullRatePlans\r\n : state.primaryApplicantSoftPullRatePlans;\r\n return softPullRatePlans;\r\n },\r\n SoftPullAvailableTerms: (state: any): any => {\r\n const softPullRatePlans =\r\n state.currentApplicantTypeName === \"Co-Applicant\"\r\n ? state.coApplicantSoftPullRatePlans\r\n : state.primaryApplicantSoftPullRatePlans;\r\n\r\n return softPullRatePlans.map((rp: any) => rp.year);\r\n },\r\n },\r\n};\r\n\r\nexport default showMyRatesModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport { RefiRatePlanViewModel, RefiRateViewModel } from \"@/models/viewModels\";\r\n\r\nconst refiLoanConfigurationModule: Module = {\r\n namespaced: true,\r\n state: {\r\n refiRatePlans: [] as any[],\r\n refiLoanConfiguration: {\r\n applicationId: 0,\r\n selectedRatePlanId: undefined,\r\n selectedByApplicantId: undefined,\r\n repaymentTypeId: undefined,\r\n } as any,\r\n selectedRateTerm: 0 as any,\r\n selectedRateType: \"\" as string,\r\n selectedRatePlanId: 0 as any,\r\n selectedRatePlan: {} as any,\r\n selectedRateOption: {} as any,\r\n availableTerms: [] as number[],\r\n selectedRepaymentTypeId: 0 as number,\r\n gettingRatePlans: false as boolean,\r\n programPromoDisclaimerText: \"\" as string,\r\n },\r\n mutations: {\r\n SET_GETTING_RATE_PLANS(state: any, flag: boolean) {\r\n state.gettingRatePlans = flag;\r\n },\r\n SET_SELECTED_REPAYMENT_TYPE_ID(state: any, repaymentTypeId: number) {\r\n state.selectedRepaymentTypeId = repaymentTypeId;\r\n },\r\n SET_SELECTED_RATE_TYPE(state: any, rateType: string) {\r\n state.selectedRateType = rateType;\r\n },\r\n SET_AVAILABLE_TERMS(state: any, terms: any[]) {\r\n state.availableTerms = terms;\r\n },\r\n SET_REFI_RATE_PLANS(state: any, ratePlans: RefiRatePlanViewModel[]) {\r\n state.refiRatePlans = ratePlans;\r\n },\r\n SET_SELECTED_RATE_TERM(state: any, rateTerm: number) {\r\n state.selectedRateTerm = rateTerm;\r\n },\r\n SET_SELECTED_RATE_PLAN(state: any, selectedRatePlan: RefiRatePlanViewModel) {\r\n state.selectedRatePlan = selectedRatePlan;\r\n },\r\n SET_SELECTED_RATE_PLAN_ID(state: any, selectedRatePlanId: number) {\r\n state.selectedRatePlanId = selectedRatePlanId;\r\n },\r\n SET_SELECTED_RATE_OPTION(state: any, selectedRateOption: RefiRateViewModel) {\r\n state.selectedRateOption = selectedRateOption;\r\n },\r\n SET_REFI_LOAN_CONFIGURATION(state: any, loanConfiguration: any) {\r\n state.refiLoanConfiguration = loanConfiguration;\r\n },\r\n SET_PROGRAM_PROMO_DISCLAIMER_TEXT(state: any, disclaimer?: string) {\r\n state.programPromoDisclaimerText = disclaimer;\r\n },\r\n },\r\n actions: {\r\n setSelectedRatePlan({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_PLAN\", payload);\r\n },\r\n setSelectedRateOption({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_OPTION\", payload);\r\n },\r\n setSelectedRatePlanId({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_PLAN_ID\", payload);\r\n },\r\n setSelectedRateTerm({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_TERM\", payload);\r\n },\r\n setRefiLoanConfiguration({ commit }, payload) {\r\n commit(\"SET_REFI_LOAN_CONFIGURATION\", payload);\r\n },\r\n setSelectedRateType({ commit }, payload) {\r\n commit(\"SET_SELECTED_RATE_TYPE\", payload);\r\n },\r\n async getRefiRatePlans({ commit }) {\r\n commit(\"SET_GETTING_RATE_PLANS\", true);\r\n try {\r\n const refiRatePlansResponse = await $api.refi.getRefiRatePlans(store?.state?.appData?.application?.id);\r\n if (refiRatePlansResponse && refiRatePlansResponse?.ratePlans?.length > 0) {\r\n commit(\"SET_PROGRAM_PROMO_DISCLAIMER_TEXT\", refiRatePlansResponse?.promoDisclaimerText);\r\n commit(\"SET_REFI_RATE_PLANS\", refiRatePlansResponse?.ratePlans);\r\n commit(\"SET_SELECTED_REPAYMENT_TYPE_ID\", refiRatePlansResponse?.repaymentTypeId);\r\n } else {\r\n commit(\"SET_REFI_RATE_PLANS\", []);\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getRefiRatePlans()\", error);\r\n }\r\n\r\n commit(\"SET_GETTING_RATE_PLANS\", false);\r\n },\r\n async getLoanConfiguration({ commit }) {\r\n try {\r\n const loanConfigurationResponse = await $api.applications.getAppLoanConfig(\r\n store?.state?.appData?.application?.id,\r\n );\r\n commit(\"SET_REFI_LOAN_CONFIGURATION\", loanConfigurationResponse);\r\n } catch (error) {\r\n console.log(\"Error: getRefiRatePlans()\", error);\r\n }\r\n },\r\n async updateLoanConfiguration({ state, commit, getters }) {\r\n const appLoanConfigRequest = {\r\n applicationId: store.state.appData.application.id,\r\n selectedRatePlanId: state?.selectedRatePlanId,\r\n selectedByApplicantId: store?.state?.appData?.applicants[store?.state?.appData?.applicants?.length - 1]?.id,\r\n repaymentTypeId: state?.selectedRepaymentTypeId,\r\n };\r\n\r\n const response = await $api.applications.addOrUpdateAppLoanConfig(appLoanConfigRequest);\r\n if (response && response?.applicationId) {\r\n commit(\"SET_REFI_LOAN_CONFIGURATION\", appLoanConfigRequest);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n },\r\n getters: {\r\n SelectedLoanConfiguration: (state: any): any => {\r\n return {\r\n selectedLoanTerm: `${state.selectedRateTerm} Year Term`,\r\n selectedInterestRate: state?.selectedRateOption?.rate || \"Not Yet Selected\",\r\n selectedRateTypeName: state?.selectedRateType,\r\n estimatedMonthlyLoanPayment: state.selectedRateOption?.estimatedPayment,\r\n };\r\n },\r\n AvailableRatePlans: (state: any): any => {\r\n return state.refiRatePlans;\r\n },\r\n StyleOption: (state: any): number => {\r\n const fixedAndVariable = [];\r\n const singleRateTypeOffered = [];\r\n const availableRatePlans = state.refiRatePlans;\r\n availableRatePlans?.forEach(function (ratePlan: any) {\r\n // Single rate type offered\r\n if (\r\n (ratePlan.hasFixedRate && !ratePlan.hasVariableRate) ||\r\n (!ratePlan.hasFixedRate && ratePlan.hasVariableRate)\r\n ) {\r\n singleRateTypeOffered.push(ratePlan.year);\r\n }\r\n // check if each plan offers BOTH fixed and variable\r\n if (ratePlan.hasFixedRate && ratePlan.hasVariableRate) {\r\n fixedAndVariable.push(ratePlan.year);\r\n }\r\n });\r\n\r\n return fixedAndVariable?.length > 0 && singleRateTypeOffered?.length > 0 ? 1 : 2;\r\n },\r\n FormattedTerms: (state: any): string => {\r\n return state.availableTerms?.map((n: any, index: any) => {\r\n return index === state.availableTerms?.length - 1 ? `or ${n}-year` : `${n}- ,`;\r\n });\r\n },\r\n },\r\n};\r\n\r\nexport default refiLoanConfigurationModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useArrayHelpers from \"@/use/arrayHelpers\";\r\nimport _ from \"lodash\";\r\nimport { PaymentCalculationViewModel } from \"@/models/viewModels\";\r\n\r\nconst { formatNumber } = useFormatter();\r\nconst { groupBy } = useArrayHelpers();\r\n\r\nconst refiRatesSelfSelectModule: Module = {\r\n namespaced: true,\r\n state: {\r\n primaryApplicantSelectedCreditScoreRange: {},\r\n coApplicantSelectedCreditScoreRange: {},\r\n selectedCreditScoreRange: {},\r\n currentApplicantTypeId: 0 as number,\r\n currentApplicantTypeName: \"\" as string,\r\n sortedAvailableRateOptions: {} as any,\r\n sortedAvailableTerms: [] as any[],\r\n availableRateOptions: [] as any[],\r\n creditScoreRanges: [] as any[],\r\n fixedRateCreditScoreRanges: [] as any[],\r\n variableRateCreditScoreRanges: [] as any[],\r\n calculatedPaymentOptions: [] as PaymentCalculationViewModel[],\r\n calculatingEstimatedPayments: false as boolean,\r\n estimatedLoanAmount: 0 as number,\r\n },\r\n mutations: {\r\n SET_SELECTED_CREDIT_SCORE_RANGE(state: any, selectedCreditScoreRange: any) {\r\n state.selectedCreditScoreRange = selectedCreditScoreRange;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_ID(state: any, currentApplicantTypeId: number) {\r\n state.currentApplicantTypeId = currentApplicantTypeId;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_NAME(state: any, currentApplicantTypeName: string) {\r\n state.currentApplicantTypeName = currentApplicantTypeName;\r\n },\r\n SET_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.creditScoreRanges = creditScoreRanges;\r\n },\r\n SET_FIXED_RATE_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.fixedRateCreditScoreRanges = creditScoreRanges;\r\n },\r\n SET_VARIABLE_RATE_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.variableRateCreditScoreRanges = creditScoreRanges;\r\n },\r\n SET_CALCULATED_PAYMENT_OPTIONS(state: any, calculatedPaymentOptions: PaymentCalculationViewModel[]) {\r\n state.calculatedPaymentOptions = calculatedPaymentOptions;\r\n },\r\n SET_CALCULATING_ESTIMATED_PAYMENTS(state: any, flag: boolean) {\r\n state.calculatingEstimatedPayments = flag;\r\n },\r\n SET_ESTIMATED_LOAN_AMOUNT(state: any, amount: number) {\r\n state.estimatedLoanAmount = amount;\r\n },\r\n RESET_ALL_STATES(state: any) {\r\n state.primaryApplicantSelectedCreditScoreRange = {};\r\n state.coApplicantSelectedCreditScoreRange = {};\r\n state.selectedCreditScoreRange = {};\r\n state.currentApplicantTypeId = 0;\r\n state.currentApplicantTypeName = \"\";\r\n state.sortedAvailableRateOptions = {};\r\n state.sortedAvailableTerms = [];\r\n state.availableRateOptions = [];\r\n state.creditScoreRanges = [];\r\n state.fixedRateCreditScoreRanges = [];\r\n state.variableRateCreditScoreRanges = [];\r\n state.calculatedPaymentOptions = [];\r\n state.calculatingEstimatedPayments = false;\r\n state.estimatedLoanAmount = 0;\r\n },\r\n },\r\n actions: {\r\n setCreditScoreRanges({ commit }, payload) {\r\n commit(\"SET_CREDIT_SCORE_RANGES\", payload);\r\n },\r\n setCalculatingEstimatedPayments({ commit }, payload) {\r\n commit(\"SET_CALCULATING_ESTIMATED_PAYMENTS\", payload);\r\n },\r\n async calculatePayments({ state, commit, dispatch }, payload: any) {\r\n dispatch(\"setCalculatingEstimatedPayments\", true);\r\n\r\n const request = {\r\n applicantId: payload?.applicantId,\r\n estimatedLoanAmount: payload?.estimatedLoanAmount,\r\n\t\t\t\tficoMin: payload?.ficoMin,\r\n };\r\n\r\n const payments = await $api.refi.calculatePayments(payload?.applicantId, request);\r\n\r\n if (payments?.length > 0 && !payments?.error) {\r\n const sortedPaymentsAsc = payments?.sort(\r\n (a: PaymentCalculationViewModel, b: PaymentCalculationViewModel) =>\r\n parseInt(a?.termYears) - parseInt(b?.termYears),\r\n );\r\n commit(\"SET_CALCULATED_PAYMENT_OPTIONS\", sortedPaymentsAsc);\r\n } else {\r\n commit(\"SET_CALCULATED_PAYMENT_OPTIONS\", []);\r\n }\r\n\r\n dispatch(\"setCalculatingEstimatedPayments\", false);\r\n },\r\n },\r\n getters: {\r\n SortedAvailableRateOptions: (state: any): any => {\r\n if (store?.state?.program?.pricingTiers?.length > 0) {\r\n const availableRates = store?.state?.program?.pricingTiers\r\n .filter((i: any) => i.applicantType.id === state.currentApplicantTypeId)\r\n .filter((k: any) => k.ficoMin === state.selectedCreditScoreRange?.min)\r\n .map((option: any) => {\r\n // Fixed Rate\r\n if (option.rate.rateType.name === \"Fixed\") {\r\n const fixedInterestRate = option.rate.margin / 100;\r\n\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: fixedInterestRate,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber(fixedInterestRate * 100)}%`,\r\n };\r\n } else if (option.rate.rateType.name === \"Variable\") {\r\n const indexRate = option.rate.indexType.rate;\r\n const variableRate = option.rate.margin + indexRate;\r\n\r\n let interestRate = 0 as number;\r\n if (variableRate < option.rate.floor) {\r\n interestRate = option.rate.floor;\r\n } else if (variableRate > option.rate.ceiling) {\r\n interestRate = option.rate.ceiling;\r\n } else {\r\n interestRate = variableRate;\r\n }\r\n\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: interestRate / 100,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber((interestRate / 100) * 100)}%`,\r\n };\r\n } else\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: option.rate.margin / 100,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber((option.rate.margin / 100 / 100) * 100)}%`,\r\n };\r\n })\r\n .sort((a: any, b: any) => (a.rateTypeName > b.rateTypeName ? 1 : b.rateTypeName > a.rateTypeName ? -1 : 0));\r\n return groupBy(availableRates, \"termInYears\");\r\n } else {\r\n return [];\r\n }\r\n },\r\n AvailableRateTermOptions: (state: any): any => {},\r\n AvailableRateOptions: (state: any): any => {\r\n if (store?.state?.program?.pricingTiers?.length > 0) {\r\n return store?.state?.program?.pricingTiers\r\n .filter((i: any) => i.applicantType.id === state.currentApplicantTypeId)\r\n .filter((k: any) => k.ficoMin === state.selectedCreditScoreRange?.min)\r\n .map((option: any) => {\r\n // Fixed Rate\r\n if (option.rate.rateType.name === \"Fixed\") {\r\n const fixedInterestRate = option.rate.margin / 100;\r\n\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: fixedInterestRate,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber(fixedInterestRate * 100)}%`,\r\n };\r\n } else if (option.rate.rateType.name === \"Variable\") {\r\n const indexRate = option.rate.indexType.rate;\r\n const variableRate = option.rate.margin + indexRate;\r\n\r\n let interestRate = 0 as number;\r\n if (variableRate < option.rate.floor) {\r\n interestRate = option.rate.floor;\r\n } else if (variableRate > option.rate.ceiling) {\r\n interestRate = option.rate.ceiling;\r\n } else {\r\n interestRate = variableRate;\r\n }\r\n\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: interestRate / 100,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber((interestRate / 100) * 100)}%`,\r\n };\r\n } else\r\n return {\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: option.rate.margin / 100,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: `${formatNumber((option.rate.margin / 100 / 100) * 100)}%`,\r\n };\r\n })\r\n .sort((a: any, b: any) => (a.rateTypeName > b.rateTypeName ? 1 : b.rateTypeName > a.rateTypeName ? -1 : 0));\r\n }\r\n return [];\r\n },\r\n AvailableRatePaymentOptionsByCreditScoreRange: (state: any): any => {\r\n if (\r\n state.calculatedPaymentOptions?.length > 0 &&\r\n state.selectedCreditScoreRange?.min > 0 &&\r\n state.selectedCreditScoreRange?.max > 0\r\n ) {\r\n return state.calculatedPaymentOptions?.filter(\r\n (payment: any) =>\r\n payment.ficoMin === state.selectedCreditScoreRange?.min &&\r\n payment.ficoMax === state.selectedCreditScoreRange?.max,\r\n );\r\n } else {\r\n return [];\r\n }\r\n },\r\n },\r\n};\r\nexport default refiRatesSelfSelectModule;\r\n","import { Module } from \"vuex\";\r\nimport store from \"@/store\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport { PaymentCalculationViewModel } from \"@/models/viewModels\";\r\n\r\nconst { formatNumber } = useFormatter();\r\n\r\nconst refiRatesSelfSelectModule: Module = {\r\n namespaced: true,\r\n state: {\r\n primaryApplicantSelectedCreditScoreRange: {},\r\n coApplicantSelectedCreditScoreRange: {},\r\n selectedCreditScoreRange: {},\r\n selectedRate: {} as any,\r\n currentApplicantTypeId: 0 as number,\r\n currentApplicantTypeName: \"\" as string,\r\n creditScoreRanges: [] as any[],\r\n fixedRateCreditScoreRanges: [] as any[],\r\n variableRateCreditScoreRanges: [] as any[],\r\n calculatedPaymentOptions: [] as PaymentCalculationViewModel[],\r\n calculatingEstimatedPayments: false as boolean,\r\n estimatedLoanAmount: 0 as number,\r\n },\r\n mutations: {\r\n SET_SELECTED_CREDIT_SCORE_RANGE(state: any, selectedCreditScoreRange: any) {\r\n state.selectedCreditScoreRange = selectedCreditScoreRange;\r\n },\r\n SET_SELECTED_RATE(state: any, selectedRate: any) {\r\n state.selectedRate = selectedRate;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_ID(state: any, currentApplicantTypeId: number) {\r\n state.currentApplicantTypeId = currentApplicantTypeId;\r\n },\r\n SET_CURRENT_APPLICANT_TYPE_NAME(state: any, currentApplicantTypeName: string) {\r\n state.currentApplicantTypeName = currentApplicantTypeName;\r\n },\r\n SET_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.creditScoreRanges = creditScoreRanges;\r\n },\r\n SET_FIXED_RATE_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.fixedRateCreditScoreRanges = creditScoreRanges;\r\n },\r\n SET_VARIABLE_RATE_CREDIT_SCORE_RANGES(state: any, creditScoreRanges: any) {\r\n state.variableRateCreditScoreRanges = creditScoreRanges;\r\n },\r\n RESET_ALL_STATES(state: any) {\r\n state.primaryApplicantSelectedCreditScoreRange = {};\r\n state.coApplicantSelectedCreditScoreRange = {};\r\n state.selectedCreditScoreRange = {};\r\n state.currentApplicantTypeId = 0;\r\n state.currentApplicantTypeName = \"\";\r\n state.creditScoreRanges = [];\r\n state.fixedRateCreditScoreRanges = [];\r\n state.variableRateCreditScoreRanges = [];\r\n },\r\n },\r\n actions: {\r\n setCreditScoreRanges({ commit }, payload) {\r\n commit(\"SET_CREDIT_SCORE_RANGES\", payload);\r\n },\r\n },\r\n getters: {\r\n AvailableRateOptions: (state: any): any => {\r\n if (store?.state?.program?.pricingTiers?.length > 0) {\r\n return store?.state?.program?.pricingTiers\r\n .filter((i: any) => i.applicantType.id === state.currentApplicantTypeId)\r\n .filter((k: any) => k.ficoMin === state.selectedCreditScoreRange?.min)\r\n .map((option: any) => {\r\n // Fixed Rate\r\n if (option.rate.rateType.name === \"Fixed\") {\r\n const fixedInterestRate = option.rate.margin / 100;\r\n\r\n return {\r\n pricingTierId: option.id,\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: fixedInterestRate,\r\n rate: fixedInterestRate * 100,\r\n rateDisplay: `${formatNumber(fixedInterestRate * 100)}%`,\r\n rateTypeName: option.rate.rateType.name,\r\n };\r\n } else if (option.rate.rateType.name === \"Variable\") {\r\n const indexRate = option.rate.indexType.rate;\r\n const variableRate = option.rate.margin + indexRate;\r\n\r\n let interestRate = 0 as number;\r\n if (variableRate < option.rate.floor) {\r\n interestRate = option.rate.floor;\r\n } else if (variableRate > option.rate.ceiling) {\r\n interestRate = option.rate.ceiling;\r\n } else {\r\n interestRate = variableRate;\r\n }\r\n\r\n return {\r\n pricingTierId: option.id,\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: interestRate / 100,\r\n rate: interestRate,\r\n rateDisplay: `${formatNumber(interestRate)}%`,\r\n rateTypeName: option.rate.rateType.name,\r\n };\r\n } else\r\n return {\r\n pricingTierId: option.id,\r\n max: option.ficoMax,\r\n min: option.ficoMin,\r\n term: option.term.months,\r\n termInYears: option.term.years,\r\n interestRate: option.rate.margin / 100,\r\n rateTypeName: option.rate.rateType.name,\r\n rate: option.rate.margin / 100,\r\n rateDisplay: `${formatNumber(option.rate.margin / 100)}%`,\r\n };\r\n })\r\n .sort((a: any, b: any) => (a.termInYears > b.termInYears ? 1 : b.termInYears > a.termInYears ? -1 : 0))\r\n .sort((a: any, b: any) => (a.rateTypeName > b.rateTypeName ? 1 : b.rateTypeName > a.rateTypeName ? -1 : 0));\r\n }\r\n return [];\r\n },\r\n },\r\n};\r\nexport default refiRatesSelfSelectModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useFormHelpers from \"@/use/formHelpers\";\r\n\r\nconst { formatDateOfBirth } = useFormatter();\r\nconst { compareTwoDates } = useFormHelpers();\r\n\r\nconst applicantPersonalInformationModule: Module = {\r\n namespaced: true,\r\n state: {\r\n currentPersonalInfo: {} as any,\r\n sameDOB: undefined as undefined | boolean,\r\n sameSSN: undefined as undefined | boolean,\r\n meetsAOM: undefined as undefined | boolean,\r\n applicantState: undefined as any,\r\n applicantAge: undefined as undefined | number,\r\n applicantDateOfBirth: undefined as undefined | Date | string,\r\n },\r\n mutations: {\r\n SET_APPLICANT_STATE(state: any, applicantState: any) {\r\n state.applicantState = applicantState;\r\n },\r\n SET_CURRENT_PERSONAL_INFO(state: any, personalInfo: any) {\r\n state.currentPersonalInfo = personalInfo;\r\n },\r\n SET_SAME_DOB(state: any, flag: boolean) {\r\n state.sameDOB = flag;\r\n },\r\n SET_SAME_SSN(state: any, flag: boolean) {\r\n state.sameSSN = flag;\r\n },\r\n SET_APPLICANT_AGE(state: any, age: boolean) {\r\n state.applicantAge = age;\r\n },\r\n SET_APPLICANT_DATE_OF_BIRTH(state: any, dob: string) {\r\n state.applicantDateOfBirth = dob;\r\n },\r\n RESET_ALL_STATES(state: any) {\r\n state.currentPersonalInfo = {};\r\n state.sameDOB = undefined;\r\n state.sameSSN = undefined;\r\n state.meetsAOM = undefined;\r\n state.applicantState = undefined;\r\n state.applicantAge = undefined;\r\n state.applicantDateOfBirth = undefined;\r\n },\r\n },\r\n actions: {\r\n async compareDateOfBirths({ state, commit }) {\r\n const dob1 = new Date(formatDateOfBirth(store?.state?.appData?.applicants[0]?.dateOfBirth));\r\n const dob2 = new Date(state.applicantDateOfBirth);\r\n\r\n const compare = compareTwoDates(dob1, dob2);\r\n commit(\"SET_SAME_DOB\", compare);\r\n },\r\n },\r\n getters: {\r\n ValidApplicantAge(state: any) {\r\n return state.applicantAge && state.applicantAge > 0 && state.applicantAge <= 150;\r\n },\r\n SameDOB(state: any) {\r\n return state.sameDOB;\r\n },\r\n SameSSN(state: any) {\r\n return state.sameSSN;\r\n },\r\n ApplicantAge(state: any) {\r\n return state.applicantAge;\r\n },\r\n ApplicantDateOfBirth(state: any) {\r\n return state.applicantDateOfBirth;\r\n },\r\n AgeOfMajority(state: any) {\r\n let ageOfMajority = 18;\r\n switch (state.applicantState) {\r\n case \"1\":\r\n case \"AL\":\r\n case 1:\r\n return (ageOfMajority = 19);\r\n case \"46\":\r\n case \"PR\":\r\n case 46:\r\n return (ageOfMajority = 21);\r\n default:\r\n return (ageOfMajority = 18);\r\n }\r\n },\r\n AgeOfMajorityError(state: any, getters: any) {\r\n return getters.AgeOfMajority > getters.ApplicantAge && getters.ApplicantAge > 0 && getters.ApplicantAge <= 150;\r\n },\r\n AgeOfMajorityErrorMessage(state: any, getters: any) {\r\n const coApplicantTypeDisplayName = store.getters[\"coApplicantTypeDisplayName\"]?.toLowerCase();\r\n const currentRoute = store.state?.appData?.currentState?.route;\r\n\r\n switch (currentRoute) {\r\n case \"borrowerPersonalInfo\":\r\n case \"refiBorrowerPersonalInfo\":\r\n return `Borrowers who do not meet the Age of Majority should add a ${coApplicantTypeDisplayName} to qualify.`;\r\n case \"borrowerInfo\":\r\n case \"refiBorrowerInfo\":\r\n return \"\";\r\n case \"coborrowerInfo\":\r\n case \"coborrowerPersonalInfo\":\r\n case \"coborrowerInvitedApplicantInfo\":\r\n case \"refiCosignerInfo\":\r\n case \"refiCosignerPersonalInfo\":\r\n case \"refiCosignerInvitedApplicantInfo\":\r\n return `The ${coApplicantTypeDisplayName} must meet the Age of Majority to qualify.`;\r\n default:\r\n return \"\";\r\n }\r\n },\r\n },\r\n};\r\n\r\nexport default applicantPersonalInformationModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport store from \"@/store\";\r\nimport useFormatter from \"@/use/formatter\";\r\nimport useLeftPanelText from \"@/use/leftPanelText\";\r\n\r\nconst { formatNumber } = useFormatter();\r\nconst { getApprovalStepText } = useLeftPanelText();\r\n\r\nconst applicationDecisionModule: Module = {\r\n namespaced: true,\r\n state: {\r\n underReview: undefined as undefined | boolean,\r\n approved: false as boolean,\r\n approval: undefined as undefined | boolean,\r\n applicationStatus: 0 as number | string,\r\n gettingApplicationDecision: true as boolean,\r\n conciergeRadioButtonOptions: [\r\n {\r\n label: \"No, thanks\",\r\n value: false,\r\n },\r\n {\r\n label: \"Yes\",\r\n value: true,\r\n },\r\n ],\r\n preferredContactMethodTypes: [],\r\n preferredContactMethodOptions: [],\r\n },\r\n mutations: {\r\n SET_APPLICATION_STATUS(state: any, applicationStatus: number) {\r\n state.applicationStatusId = applicationStatus;\r\n },\r\n SET_PREFERRED_CONTACT_METHOD_TYPES(state: any, contactMethodTypes: any) {\r\n state.preferredContactMethodTypes = contactMethodTypes;\r\n },\r\n SET_PREFERRED_CONTACT_METHOD_OPTIONS(state: any, contactMethodOptions: any) {\r\n state.preferredContactMethodOptions = contactMethodOptions;\r\n },\r\n SET_GETTING_APPLICATION_DECISION(state: any, flag: boolean) {\r\n state.getApplicationDecision = flag;\r\n },\r\n SET_PREQUALIFIED_HEADER_MESSAGE(state: any, loanAmount: any) {\r\n state.headerMessage = `You're pre-qualified for up to $${formatNumber(loanAmount, 0)}.`;\r\n },\r\n SET_STEP_VALUES(state: any, applicationStatus: any) {\r\n switch (applicationStatus) {\r\n case 2:\r\n state.approval = false;\r\n state.approved = false;\r\n state.underReview = true;\r\n state.headerMessage = \"Your application is currently under review.\";\r\n state.bodyMessage =\r\n \"We'll be in touch soon - keep an eye on your email! The most recent updates for your application can also be found in your applicant portal - sign in with the username and password you just created. Thank you for the opportunity to meet your education funding needs!\";\r\n break;\r\n case 3:\r\n state.approved = true;\r\n state.approval = true;\r\n state.underReview = false;\r\n state.bodyMessage = \"\";\r\n state.headerMessage = ``;\r\n\r\n break;\r\n case 5:\r\n state.approval = false;\r\n state.approved = false;\r\n state.underReview = false;\r\n state.headerMessage = \"Unfortunately, we were unable to approve your application.\";\r\n state.bodyMessage =\r\n \"Thank you for giving us the opportunity to meet your education finance needs. For full details on your application decision, please refer to your Adverse Action Notice which may be accessed in the My Documents section of your applicant portal soon.\";\r\n\r\n break;\r\n case \"Unknown\":\r\n state.approved = false;\r\n state.approval = false;\r\n state.underReview = false;\r\n state.bodyMessage =\r\n \"We will send your application decision to the email address(es) provided. You may close this browser tab.\";\r\n break;\r\n default:\r\n }\r\n },\r\n },\r\n actions: {\r\n async getApprovalLookups({ commit, state }) {\r\n const lookups = await $api.lookups.getApprovalLookUps();\r\n if (lookups?.contactTypes) {\r\n commit(\"SET_PREFERRED_CONTACT_METHOD_TYPES\", lookups.contactTypes);\r\n\r\n const options = state?.preferredContactMethodTypes?.map((option: any) => {\r\n return {\r\n label: option.name,\r\n value: option.id,\r\n };\r\n });\r\n\r\n commit(\"SET_PREFERRED_CONTACT_METHOD_OPTIONS\", options);\r\n }\r\n },\r\n async prepareStep({ commit }, appStatus: any) {\r\n commit(\"SET_STEP_VALUES\", appStatus);\r\n },\r\n },\r\n getters: {\r\n ApplicationStatusId(state) {\r\n return state.applicationStatus;\r\n },\r\n Approved(state: any) {\r\n return state.applicationStatus === 3;\r\n },\r\n UnderReview(state: any) {\r\n return state.applicationStatus === 2;\r\n },\r\n Approval(state) {\r\n return state.approval;\r\n },\r\n HeaderMessageText: (state: any): any => {\r\n switch (state.applicationStatus) {\r\n case 2:\r\n return \"Your application is currently under review.\";\r\n case 3:\r\n return `You're pre-qualified for up to $${formatNumber(store?.state?.appData?.application?.loanAmount, 0)}.`;\r\n case 5:\r\n return \"Unfortunately, we were unable to approve your application.\";\r\n case 1:\r\n case \"Unknown\":\r\n return \"\";\r\n default:\r\n return;\r\n }\r\n },\r\n BodyMessageText: (state: any): any => {\r\n switch (state.applicationStatus) {\r\n case 2:\r\n return \"No action is required at this time. We'll be in touch shortly with an update. Continue to your applicant portal for the most up-to-date status of your application. Thank you for giving us the opportunity to meet your education funding needs!\";\r\n case 1:\r\n case 3:\r\n return \"\";\r\n case 5:\r\n return \"Thank you for giving us the opportunity to meet your education finance needs. For full details on your application decision, please refer to your Adverse Action Notice which may be accessed in the My Documents section of your applicant portal soon.\";\r\n case \"Unknown\":\r\n return \"We will send your application decision to the email address(es) provided. You may close this browser tab.\";\r\n default:\r\n return;\r\n }\r\n },\r\n LeftPanelText: (state: any): any => {\r\n getApprovalStepText(state?.applicationStatus);\r\n },\r\n },\r\n};\r\n\r\nexport default applicationDecisionModule;\r\n","import { Module } from \"vuex\";\r\nimport { DocumentResponseViewModel } from \"@/models/viewModels\";\r\n\r\nconst documentsModule: Module = {\r\n namespaced: true,\r\n state: {\r\n ASDDocuments: [] as DocumentResponseViewModel[],\r\n ASDDocumentId: 0,\r\n },\r\n mutations: {\r\n SET_ASD_DOCUMENTS(state: any, documents: any) {\r\n state.ASDDocuments = documents;\r\n },\r\n SET_ASD_DOCUMENT_ID(state: any, documentId: number) {\r\n state.ASDDocumentId = documentId;\r\n },\r\n },\r\n actions: {\r\n setASDDocuments({ commit }, payload) {\r\n commit(\"SET_ASD_DOCUMENTS\", payload);\r\n },\r\n setASDDocumentId({ commit }, payload) {\r\n commit(\"SET_ASD_DOCUMENT_ID\", payload);\r\n },\r\n },\r\n getters: {},\r\n};\r\n\r\nexport default documentsModule;\r\n","import { Module } from \"vuex\";\r\nimport { $api } from \"@/services/api\";\r\nimport { Applicant } from \"@/models/application\";\r\nimport { ConsentTypeIds, ApplicantTypeIds } from \"@/config/constants\";\r\nimport { ConsentFormRequest } from \"@/models/api\";\r\n\r\nconst consentsModule: Module = {\r\n namespaced: true,\r\n state: {\r\n consentTypes: [] as any[],\r\n currentApplicant: {} as Applicant,\r\n primaryApplicantConsents: [],\r\n coApplicantConsents: [],\r\n softPullConsent: undefined as undefined | boolean,\r\n softPullConsentId: null as null | number,\r\n ecommConsentId: null as null | number,\r\n ecommConsent: undefined as undefined | boolean,\r\n },\r\n mutations: {\r\n RESET_STATE(state: any) {\r\n state = {\r\n consentTypes: [] as any[],\r\n currentApplicant: {} as Applicant,\r\n primaryApplicantConsents: [],\r\n coApplicantConsents: [],\r\n softPullConsent: undefined as undefined | boolean,\r\n softPullConsentId: null as null | number,\r\n ecommConsentId: null as null | number,\r\n ecommConsent: undefined as undefined | boolean,\r\n };\r\n },\r\n SET_CURRENT_APPLICANT(state: any, applicant: Applicant) {\r\n state.currentApplicant = applicant;\r\n },\r\n SET_CONSENT_TYPES(state: any, consentTypes: any) {\r\n state.consentTypes = consentTypes;\r\n },\r\n SET_PRIMARY_APPLICANT_CONSENTS(state: any, consents: any) {\r\n state.primaryApplicantConsents = consents;\r\n },\r\n SET_CONSENTS(state: any, consents: any) {\r\n if (state?.currentApplicant?.applicantTypeId === ApplicantTypeIds.PRIMARY_APPLICANT) {\r\n state.primaryApplicantConsents = consents;\r\n } else if (state?.currentApplicant?.applicantTypeId === ApplicantTypeIds.CO_APPLICANT) {\r\n state.coApplicantConsents = consents;\r\n } else {\r\n state.primaryApplicantConsents = [];\r\n state.coApplicantConsents = [];\r\n }\r\n },\r\n SET_CO_APPLICANT_CONSENTS(state: any, consents: any) {\r\n state.coApplicantConsents = consents;\r\n },\r\n SET_ECOMM_CONSENT_ID(state: any, id?: number) {\r\n state.ecommConsentId = id;\r\n },\r\n SET_ECOMM_CONSENT(state: any, consent: boolean) {\r\n state.ecommConsent = consent;\r\n },\r\n SET_SOFT_PULL_CONSENT_ID(state: any, id?: number) {\r\n state.softPullConsentId = id;\r\n },\r\n SET_SOFT_PULL_CONSENT(state: any, consent: boolean) {\r\n state.softPullConsent = consent;\r\n },\r\n },\r\n actions: {\r\n setCurrentApplicantId({ commit }, payload) {\r\n commit(\"SET_CURRENT_APPLICANT_ID\", payload);\r\n },\r\n setCurrentApplicant({ commit }, payload) {\r\n commit(\"SET_CURRENT_APPLICANT\", payload);\r\n },\r\n async saveConsentForm({ state, commit }, payload) {\r\n let consents = [];\r\n if (payload?.id && payload?.id > 0) {\r\n consents = await $api.consents.updateConsent(payload);\r\n } else {\r\n consents = await $api.consents.addConsent(payload);\r\n }\r\n\r\n if (consents && consents?.length > 0) {\r\n commit(\"SET_CONSENTS\", consents);\r\n }\r\n },\r\n async saveEcommConsent({ state, commit, getters, dispatch }, payload) {\r\n const ecommunicationsConsentForm = {\r\n id: state.ecommConsentId,\r\n consentTypeId: getters[\"EcommunicationConsentTypeId\"],\r\n consentGiven: payload,\r\n applicantId: state.currentApplicant?.id || 0,\r\n applicationId: state.currentApplicant?.applicationId || 0,\r\n userId: undefined,\r\n } as ConsentFormRequest;\r\n\r\n await dispatch(\"saveConsentForm\", ecommunicationsConsentForm);\r\n },\r\n async saveSoftPullConsent({ state, commit, getters, dispatch }, payload) {\r\n const softPullConsentForm = {\r\n id: state.softPullConsentId,\r\n consentTypeId: getters[\"SoftPullConsentTypeId\"],\r\n consentGiven: payload,\r\n applicantId: state.currentApplicant?.id || 0,\r\n applicationId: state.currentApplicant?.applicationId || 0,\r\n userId: undefined,\r\n } as ConsentFormRequest;\r\n\r\n await dispatch(\"saveConsentForm\", softPullConsentForm);\r\n },\r\n async getSoftPullConsent({ state, commit, dispatch, getters }, payload) {\r\n if (state.consentTypes?.length <= 0) {\r\n await dispatch(\"getConsentTypes\");\r\n }\r\n\r\n if (getters.Consents?.length === 0) {\r\n await dispatch(\"getConsentsByApplicantId\");\r\n }\r\n\r\n const softPullConsent = (getters.Consents || [])?.find((q: any) => q.consentTypeId === ConsentTypeIds.SOFT_PULL);\r\n commit(\"SET_SOFT_PULL_CONSENT_ID\", softPullConsent?.id);\r\n commit(\"SET_SOFT_PULL_CONSENT\", softPullConsent?.consentGiven);\r\n },\r\n async getEcommConsent({ state, commit, dispatch, getters }, payload) {\r\n if (state.consentTypes?.length <= 0) {\r\n await dispatch(\"getConsentTypes\");\r\n }\r\n\r\n if (getters.Consents?.length === 0) {\r\n await dispatch(\"getConsentsByApplicantId\");\r\n }\r\n\r\n const ecomm = (getters.Consents || [])?.find((q: any) => q.consentTypeId === ConsentTypeIds.ECOMMUNICATION);\r\n commit(\"SET_ECOMM_CONSENT_ID\", ecomm?.id);\r\n commit(\"SET_ECOMM_CONSENT\", ecomm?.consentGiven);\r\n },\r\n async getConsentsByApplicantId({ state, commit }, payload) {\r\n const applicantId = state.currentApplicant?.id || 0;\r\n const consents = await $api.consents.getAllConsents(applicantId);\r\n if (consents && consents?.length > 0) {\r\n commit(\"SET_CONSENTS\", consents);\r\n }\r\n },\r\n async getConsentTypes({ state, commit }) {\r\n try {\r\n if (state.consentTypes?.length <= 0) {\r\n const lookups = await $api.lookups.getConsentTypes();\r\n if (lookups?.length > 0) {\r\n commit(\"SET_CONSENT_TYPES\", lookups);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getConsentTypes()\", error);\r\n }\r\n },\r\n },\r\n getters: {\r\n Consents: (state: any): any => {\r\n if (state?.currentApplicant?.applicantTypeId === ApplicantTypeIds.PRIMARY_APPLICANT) {\r\n return state.primaryApplicantConsents;\r\n } else if (state?.currentApplicant?.applicantTypeId === ApplicantTypeIds.CO_APPLICANT) {\r\n return state.coApplicantConsents;\r\n } else {\r\n return [];\r\n }\r\n },\r\n EcommunicationConsentTypeId: (state: any): number => {\r\n return state?.consentTypes?.find((ct: any) => ct.id === ConsentTypeIds.ECOMMUNICATION)?.id;\r\n },\r\n SoftPullConsentTypeId: (state: any): number => {\r\n return state?.consentTypes?.find((ct: any) => ct.id === ConsentTypeIds.SOFT_PULL)?.id;\r\n },\r\n },\r\n};\r\n\r\nexport default consentsModule;\r\n","import { AppData, Applicant } from \"@/models/application\";\r\nimport { Option } from \"@/models/form\";\r\nimport { School } from \"@/models/school\";\r\nimport { LOSType } from \"@/models/opal\";\r\nimport { createStore } from \"vuex\";\r\nimport { EnrollmentTerm, ApplicationRatePlan, InitialDraw, CandidateRefiLoan } from \"@/models/application\";\r\nimport { $api } from \"@/services/api\";\r\nimport { FeedbackRequestOption } from \"@/models/feedback\";\r\nimport loanConfigurationModule from \"./loanConfigurationModule\";\r\nimport candidateRefiLoansModule from \"@/store/candidateRefiLoansModule\";\r\nimport showMyRatesModule from \"@/store/showMyRatesModule\";\r\nimport refiLoanConfigurationModule from \"@/store/refiLoanConfigurationModule\";\r\nimport refiRatesSelfSelectModule from \"@/store/refiRatesSelfSelectModule\";\r\nimport pelRatesSelfSelectModule from \"@/store/pelRatesSelfSelectModule\";\r\nimport applicantPersonalInformationModule from \"@/store/applicantPersonalInformationModule\";\r\nimport applicationDecisionModule from \"@/store/applicationDecisionModule\";\r\nimport documentsModule from \"@/store/documentsModule\";\r\nimport consentsModule from \"@/store/consentsModule\";\r\nimport store from \"@/store\";\r\nimport useApplication from \"@/use/application\";\r\nimport { ProductIds } from \"@/config/constants\";\r\n\r\nconst { getLenderConfigurationByAppId } = useApplication();\r\n\r\nexport default createStore({\r\n state: {\r\n configuration: {\r\n cdnUrl: \"https://cusc-lz01-nonprod-cdn.azureedge.net\",\r\n },\r\n appData: {} as AppData,\r\n lenderData: undefined,\r\n program: {\r\n pricingTiers: [],\r\n programDetails: {},\r\n },\r\n registrationLookups: {\r\n phoneTypes: [],\r\n membershipTypes: [],\r\n },\r\n initialDrawRequest: {} as InitialDraw,\r\n appRatePlans: [] as ApplicationRatePlan[],\r\n consentTypes: [] as any[],\r\n membershipTypeOptions: [] as any[],\r\n phoneTypeOptions: [] as Option[],\r\n programLimits: [],\r\n schools: [] as School[],\r\n leftPanelText: \"\",\r\n enrollmentTerms: [] as EnrollmentTerm[],\r\n enrollmentTermOptions: [] as Option[],\r\n school: {} as School,\r\n enrollmentTerm: {} as EnrollmentTerm,\r\n coursesOfStudy: [] as any[],\r\n coursesOfStudyOptions: [] as Option[],\r\n coursesOfStudyLOCOptions: [] as Option[],\r\n coursesOfStudyREFIOptions: [] as Option[],\r\n schoolLevels: [] as any[],\r\n schoolLevelOptions: [] as Option[],\r\n feedbackFormOptions: [] as FeedbackRequestOption[],\r\n addressUnitTypes: [] as any[],\r\n addressUnitTypeOptions: [] as Option[],\r\n addressUnitTypePrefixes: [] as string[],\r\n citizenshipTypes: [] as LOSType[],\r\n citizenshipTypeOptions: [] as Option[],\r\n states: [] as LOSType[],\r\n stateOptions: [] as Option[],\r\n nationalIdNumberTypes: [] as LOSType[],\r\n personalInfoFormLookups: {} as any,\r\n itinTooltipText:\r\n \"If you have been issued an ITIN (Individual Taxpayer Identification Number) in lieu of a Social Security Number, enter the 9-digit ITIN into the SSN fields. To verify your identity, a representative will contact you and request a copy of your ITIN letter and/or current passport. We may also contact you for documentation of how long you have been living in the United States.\",\r\n showItinIndicator: false,\r\n updateEmailModalActive: false,\r\n refiStyling: true,\r\n softPullEnabled: false,\r\n loanConfigurationInfo: {} as any,\r\n schoolInfoLookupsLoaded: false,\r\n surveyQuestionTypes: [] as LOSType[],\r\n housingTypeOptions: [] as Option[],\r\n degreeLevels: [] as Option[],\r\n refiProgramTypes: [],\r\n programTypesByDegreeLevel: [],\r\n selectedDegreeLevelTypeId: undefined as undefined | number,\r\n selectedProgramTypeId: undefined as undefined | number,\r\n selectedPricingTier: {} as any,\r\n programTypeIdMissing: false as boolean,\r\n degreeLevelOptions: [\r\n { label: \"High School Diploma\", value: 1 },\r\n { label: \"Associate's Degree\", value: 2 },\r\n { label: \"Bachelor's Degree\", value: 3 },\r\n { label: \"Master's Degree\", value: 4 },\r\n { label: \"Doctoral Degree\", value: 5 },\r\n { label: \"Medical Degree\", value: 6 },\r\n ] as Option[],\r\n refiProgramTypeOptionsMock: [\r\n {\r\n id: 3,\r\n name: \"Standard\",\r\n description: \"Standard\",\r\n loanProgramId: 3,\r\n loanProgramTitle: \"\",\r\n loanProgramLimit: 0,\r\n repaymentTerms: \"\",\r\n },\r\n {\r\n id: 4,\r\n name: \"Advanced\",\r\n description: \"Advanced\",\r\n loanProgramId: 4,\r\n loanProgramTitle: \"\",\r\n loanProgramLimit: 0,\r\n repaymentTerms: \"\",\r\n },\r\n {\r\n id: 5,\r\n name: \"Medical\",\r\n description: \"Medical\",\r\n loanProgramId: 5,\r\n loanProgramTitle: \"\",\r\n loanProgramLimit: 0,\r\n repaymentTerms: \"\",\r\n },\r\n ] as any[],\r\n refinanceOptionsMock: [\r\n {\r\n degreeLevelTypeName: \"High School Diploma\",\r\n degreeLevelTypeId: 1,\r\n options: [\r\n { label: \"Standard\", value: false },\r\n { label: \"Advanced\", value: false },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n {\r\n degreeLevelTypeName: \"Associate's Degree\",\r\n degreeLevelTypeId: 2,\r\n options: [\r\n { label: \"Standard\", value: false },\r\n { label: \"Advanced\", value: false },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n {\r\n degreeLevelTypeName: \"Bachelor's Degree\",\r\n degreeLevelTypeId: 3,\r\n options: [\r\n { label: \"Standard\", value: true },\r\n { label: \"Advanced\", value: false },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n {\r\n degreeLevelTypeName: \"Master's Degree\",\r\n degreeLevelTypeId: 4,\r\n options: [\r\n { label: \"Standard\", value: true },\r\n { label: \"Advanced\", value: true },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n {\r\n degreeLevelTypeName: \"Doctoral Degree\",\r\n degreeLevelTypeId: 5,\r\n options: [\r\n { label: \"Standard\", value: true },\r\n { label: \"Advanced\", value: true },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n {\r\n degreeLevelTypeName: \"Medical Degree\",\r\n degreeLevelTypeId: 6,\r\n options: [\r\n { label: \"Standard\", value: true },\r\n { label: \"Advanced\", value: true },\r\n { label: \"Medical\", value: false },\r\n ],\r\n },\r\n ],\r\n mockProgramTypesByDegreeLevel: [\r\n {\r\n name: \"Advanced Degree\",\r\n loanProgramId: 132,\r\n loanProgramTitle: \"YOUR CREDIT UNION - DGREFI\",\r\n loanProgramLimit: \"$150,000\",\r\n selected: false,\r\n programTypeId: 5,\r\n rateTerm: {\r\n fixedRates: [\r\n {\r\n pricingTierId: 1854,\r\n month: 60,\r\n year: 5,\r\n rate: \"5.750%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n variableRates: [\r\n {\r\n pricingTierId: 2487,\r\n month: 60,\r\n year: 5,\r\n rate: \"9.250%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n },\r\n },\r\n ],\r\n mockProgramTypesByDegreeLevel02: [\r\n {\r\n name: \"Standard\",\r\n loanProgramId: 131,\r\n loanProgramTitle: \"YOUR CREDIT UNION - DGREFI\",\r\n loanProgramLimit: \"$150,000\",\r\n selected: true,\r\n programTypeId: 4,\r\n rateTerm: {\r\n fixedRates: [\r\n {\r\n pricingTierId: 1854,\r\n month: 60,\r\n year: 5,\r\n rate: \"5.750%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n variableRates: [\r\n {\r\n pricingTierId: 2487,\r\n month: 60,\r\n year: 5,\r\n rate: \"9.250%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n },\r\n },\r\n {\r\n name: \"Advanced Degree\",\r\n loanProgramId: 132,\r\n loanProgramTitle: \"YOUR CREDIT UNION - DGREFI\",\r\n loanProgramLimit: \"$150,000\",\r\n selected: false,\r\n programTypeId: 5,\r\n rateTerm: {\r\n fixedRates: [\r\n {\r\n pricingTierId: 1854,\r\n month: 60,\r\n year: 5,\r\n rate: \"5.750%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n variableRates: [\r\n {\r\n pricingTierId: 2487,\r\n month: 60,\r\n year: 5,\r\n rate: \"9.250%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n },\r\n },\r\n ],\r\n mockProgramTypesByDegreeLevel03: [\r\n {\r\n name: \"Standard\",\r\n loanProgramId: 131,\r\n loanProgramTitle: \"YOUR CREDIT UNION - DGREFI\",\r\n loanProgramLimit: \"$150,000\",\r\n selected: true,\r\n programTypeId: 4,\r\n rateTerm: {\r\n fixedRates: [\r\n {\r\n pricingTierId: 1854,\r\n month: 60,\r\n year: 5,\r\n rate: \"5.750%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n variableRates: [],\r\n },\r\n },\r\n {\r\n name: \"Advanced Degree\",\r\n loanProgramId: 132,\r\n loanProgramTitle: \"YOUR CREDIT UNION - DGREFI\",\r\n loanProgramLimit: \"$150,000\",\r\n selected: false,\r\n programTypeId: 5,\r\n rateTerm: {\r\n fixedRates: [\r\n {\r\n pricingTierId: 1854,\r\n month: 60,\r\n year: 5,\r\n rate: \"5.750%\",\r\n selected: false,\r\n },\r\n { pricingTierId: 10, month: 12 * 7, year: 7, rate: \"6.300%\", selected: false },\r\n { pricingTierId: 11, month: 12 * 10, year: 10, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 12, month: 12 * 15, year: 15, rate: \"8.350%\", selected: false },\r\n { pricingTierId: 13, month: 12 * 20, year: 20, rate: \"9.100%\", selected: false },\r\n ],\r\n variableRates: [],\r\n },\r\n },\r\n ],\r\n mockRatePlansResponse: [\r\n {\r\n id: 1,\r\n applicationId: 0,\r\n loanProgramId: 0,\r\n pricingTierId: 0,\r\n rateTypeId: 1,\r\n rateTypeName: \"Fixed\",\r\n repaymentTerm: 120,\r\n rate: 8.35,\r\n rateOverridden: null,\r\n RateOverridenAt: null,\r\n apr: null,\r\n repayments: [\r\n {\r\n id: 0,\r\n rateTypeId: 1,\r\n repaymentTypeId: 0,\r\n repaymentTypeName: \"\",\r\n repaymentTerm: 0,\r\n repaymentTermId: 0,\r\n monthlyInSchoolPayment: null,\r\n monthlyPostSchoolPayment: 123.0,\r\n },\r\n ],\r\n },\r\n ],\r\n enrollmentStatuses: [\r\n { label: \"Full-Time\", value: 1 },\r\n { label: \"Half-Time\", value: 2 },\r\n { label: \"Less Than Half-Time\", value: 3 },\r\n ] as Option[],\r\n documentTypes: [] as any[],\r\n retrievingSchools: false as boolean,\r\n },\r\n mutations: {\r\n SET_RETRIEVING_SCHOOLS(state: any, flag: boolean) {\r\n state.retrievingSchools = flag;\r\n },\r\n SET_SURVEY_QUESTION_TYPES(state: any, surveyQuestionTypes: any) {\r\n state.surveyQuestionTypes = surveyQuestionTypes;\r\n },\r\n SET_HOUSING_TYPE_OPTIONS(state: any, housingTypeOptions: any) {\r\n state.housingTypeOptions = housingTypeOptions;\r\n },\r\n SET_INITIAL_DRAW_REQUEST(state: any, initialDrawRequest: InitialDraw) {\r\n state.initialDrawRequest = initialDrawRequest;\r\n },\r\n SET_APP_RATE_PLANS(state: any, appRatePlans: any) {\r\n state.appRatePlans = appRatePlans;\r\n },\r\n SET_CONSENT_TYPES(state: any, consentTypes: any) {\r\n state.consentTypes = consentTypes;\r\n },\r\n SET_LOAN_CONFIGURATION_INFO(state: any, loanConfigInfo: any) {\r\n state.loanConfigurationInfo = loanConfigInfo;\r\n },\r\n SET_APPLICATION_METADATA(state: any, metadata: any) {\r\n state.appData.application.metadata = metadata;\r\n },\r\n ADD_APPLICANT(state: any, applicant: Applicant) {\r\n state.appData.applicants.push(applicant);\r\n },\r\n SET_ADDRESS_UNIT_TYPES(state: any, types: LOSType[]) {\r\n state.addressUnitTypes = types;\r\n },\r\n SET_ADDRESS_UNIT_TYPE_OPTIONS(state: any, options: Option[]) {\r\n state.addressUnitTypeOptions = options;\r\n },\r\n SET_ADDRESS_UNIT_TYPE_PREFIXES(state: any, prefixes: string[]) {\r\n state.addressUnitTypePrefixes = prefixes;\r\n },\r\n SET_CITIZENSHIP_TYPES(state: any, types: LOSType[]) {\r\n state.citizenshipTypes = types;\r\n },\r\n SET_CITIZENSHIP_TYPE_OPTIONS(state: any, options: Option[]) {\r\n state.citizenshipTypeOptions = options;\r\n },\r\n SET_SHOW_ITIN_INDICATOR(state: any, flag: boolean) {\r\n state.showItinIndicator = flag;\r\n },\r\n SET_NATIONAL_ID_NUMBER_TYPES(state: any, types: LOSType[]) {\r\n state.nationalIdNumberTypes = types;\r\n },\r\n SET_STATES(state: any, states: LOSType[]) {\r\n state.states = states;\r\n },\r\n SET_STATE_OPTIONS(state: any, options: Option[]) {\r\n state.stateOptions = options;\r\n },\r\n SET_PERSONAL_INFORMATION_FORM_LOOKUPS(state: any, lookups: any) {\r\n state.personalInfoFormLookups = lookups;\r\n },\r\n SET_APP_DATA(state: any, appData: AppData) {\r\n window.localStorage.setItem(\"appInProgress\", JSON.stringify(appData));\r\n window.localStorage.setItem(\"product\", appData?.application?.productTypeId?.toString());\r\n\r\n state.appData = appData;\r\n },\r\n SET_APPLICANTS(state: any, applicants: Array) {\r\n state.appData.applicants = applicants;\r\n },\r\n SET_SCHOOLS(state: any, schools: School[]) {\r\n state.schools = schools;\r\n },\r\n SET_LENDER_DATA(state: any, lenderData: any) {\r\n // Determine if page should follow light or dark theme\r\n if (lenderData?.primaryColor) {\r\n const parsedHex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(lenderData.primaryColor);\r\n const rgb = parsedHex\r\n ? {\r\n r: parseInt(parsedHex[1], 16),\r\n g: parseInt(parsedHex[2], 16),\r\n b: parseInt(parsedHex[3], 16),\r\n }\r\n : null;\r\n\r\n if (rgb !== null) {\r\n // determine if light or dark theme is needed\r\n const luminance = Math.round((rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000);\r\n\r\n // Adding else statement just in case client changes. Mainly for testing...\r\n if (luminance > 118) {\r\n document.body.classList.add(\"cuscd-dark\");\r\n } else {\r\n document.body.classList.remove(\"cuscd-dark\");\r\n }\r\n }\r\n }\r\n\r\n state.lenderData = lenderData;\r\n },\r\n SET_LEFT_PANEL_TEXT(state: any, leftPanelText: string) {\r\n state.leftPanelText = leftPanelText;\r\n },\r\n SET_ENROLLMENT_TERMS(state: any, enrollmentTerms: any[]) {\r\n state.enrollmentTerms = enrollmentTerms;\r\n },\r\n SET_ENROLLMENT_TERM_OPTIONS(state: any, options: Option[]) {\r\n state.enrollmentTermOptions = options;\r\n },\r\n SET_SCHOOL_CONFIG(state: any, schoolInfo: any) {\r\n state.school = schoolInfo.school;\r\n state.appData.application.schoolConfiguration.schoolUndecided = schoolInfo.schoolUndecided;\r\n state.appData.application.schoolConfiguration.schoolName = schoolInfo.school.schoolName;\r\n state.appData.application.schoolConfiguration.schoolId = schoolInfo.school.id;\r\n state.appData.application.schoolConfiguration.graduationDate = schoolInfo.graduationDate;\r\n state.appData.application.schoolConfiguration.academicTerm =\r\n schoolInfo.academicTerm.label || schoolInfo.selectedTerm;\r\n\r\n if (schoolInfo?.enrollmentStatusId) {\r\n const enrollmentStatusId =\r\n typeof schoolInfo?.enrollmentStatusId === \"string\"\r\n ? parseInt(schoolInfo?.enrollmentStatusId)\r\n : schoolInfo?.enrollmentStatusId;\r\n state.appData.application.schoolConfiguration.enrollmentStatus = enrollmentStatusId;\r\n }\r\n\r\n if (schoolInfo?.degreeProgramId || schoolInfo?.degreeProgram) {\r\n state.appData.application.schoolConfiguration.degreeProgram =\r\n schoolInfo?.degreeProgramId || schoolInfo?.degreeProgram;\r\n }\r\n },\r\n SET_ENROLLMENT_TERM(state: any, enrollmentTerm: EnrollmentTerm) {\r\n state.enrollmentTerm = enrollmentTerm;\r\n },\r\n SET_PROGRAM(state: any, program: any) {\r\n state.program = program;\r\n },\r\n SET_PROGRAM_LIMITS(state: any, programLimits: any) {\r\n state.programLimits = programLimits;\r\n },\r\n SET_ANNUAL_INCOME_LIMIT(state: any, annualIncomeLimit: any) {\r\n state.annualIncomeLimit = annualIncomeLimit;\r\n },\r\n SET_COURSES_OF_STUDY(state: any, coursesOfStudy: any) {\r\n state.coursesOfStudy = coursesOfStudy;\r\n },\r\n SET_COURSES_OF_STUDY_OPTIONS(state: any, coursesOfStudyOptions: any) {\r\n state.coursesOfStudyOptions = coursesOfStudyOptions;\r\n },\r\n SET_COURSES_OF_STUDY_OPTIONS_LOC(state: any, coursesOfStudyOptions: any) {\r\n state.coursesOfStudyLOCOptions = coursesOfStudyOptions;\r\n },\r\n SET_COURSES_OF_STUDY_OPTIONS_REFI(state: any, coursesOfStudyOptions: any) {\r\n state.coursesOfStudyREFIOptions = coursesOfStudyOptions;\r\n },\r\n SET_SCHOOL_LEVELS(state: any, schoolLevels: any) {\r\n state.schoolLevels = schoolLevels;\r\n },\r\n SET_SCHOOL_LEVEL_OPTIONS(state: any, schoolLevelOptions: any) {\r\n state.schoolLevelOptions = schoolLevelOptions;\r\n },\r\n SET_DEGREE_LEVELS(state: any, degreeLevels: any) {\r\n state.degreeLevels = degreeLevels;\r\n },\r\n SET_SELECTED_DEGREE_LEVEL_TYPE_ID(state: any, degreeLevelTypeId: number) {\r\n state.selectedDegreeLevelTypeId = degreeLevelTypeId;\r\n },\r\n SET_SELECTED_PROGRAM_TYPE_ID(state: any, programTypeId: number) {\r\n state.selectedProgramTypeId = programTypeId;\r\n },\r\n SET_PROGRAM_TYPES_BY_DEGREE_LEVEL(state: any, programs: any) {\r\n // reset the field\r\n state.programTypesByDegreeLevel = [];\r\n\r\n state.programTypesByDegreeLevel = programs;\r\n },\r\n SET_FEEDBACK_FORM_OPTIONS(state: any, options: any) {\r\n state.feedbackFormOptions = options;\r\n },\r\n OPEN_UPDATE_EMAIL_MODAL(state: any) {\r\n state.updateEmailModalActive = true;\r\n },\r\n CLOSE_UPDATE_EMAIL_MODAL(state: any) {\r\n state.updateEmailModalActive = false;\r\n },\r\n SET_REGISTRATION_LOOKUPS(state: any, lookups: any) {\r\n state.registrationLookups = lookups;\r\n },\r\n SET_MEMBERSHIP_TYPE_OPTIONS(state: any, options: any) {\r\n state.membershipTypeOptions = options;\r\n },\r\n SET_PHONE_TYPE_OPTIONS(state: any, options: any) {\r\n state.phoneTypeOptions = options;\r\n },\r\n SET_LOAN_CONFIGURATION(state: any, loanConfiguration: any) {\r\n state.appData.application.loanConfiguration = loanConfiguration;\r\n },\r\n DG_SUBMIT_SCHOOL_INFO(state: any, schoolInfo: any) {\r\n if (!state.appData.application.schoolConfiguration) {\r\n state.appData.application.schoolConfiguration = {\r\n fullTime: undefined,\r\n schoolId: undefined,\r\n schoolName: undefined,\r\n schoolLevelTypeId: undefined,\r\n degreeProgram: undefined,\r\n };\r\n }\r\n state.appData.application.schoolConfiguration.fullTime = schoolInfo?.enrollment;\r\n state.appData.application.schoolConfiguration.schoolId = schoolInfo?.school?.id;\r\n state.appData.application.schoolConfiguration.schoolName = schoolInfo?.school?.schoolName;\r\n state.appData.application.schoolConfiguration.schoolLevelTypeId =\r\n typeof schoolInfo.gradeLevel === \"string\" ? parseInt(schoolInfo.gradeLevel) : schoolInfo.gradeLevel;\r\n state.appData.application.schoolConfiguration.degreeProgram =\r\n schoolInfo?.degreeProgram || schoolInfo?.degreeProgramId;\r\n },\r\n SUBMIT_SCHOOL_INFO(state: any, schoolInfo: any) {\r\n if (!state.appData.application.schoolConfiguration) {\r\n state.appData.application.schoolConfiguration = {\r\n schoolUndecided: undefined,\r\n fullTime: undefined,\r\n schoolId: undefined,\r\n schoolName: undefined,\r\n schoolLevelTypeId: undefined,\r\n major: undefined,\r\n };\r\n }\r\n state.appData.application.schoolConfiguration.schoolUndecided = schoolInfo?.schoolUndecided;\r\n state.appData.application.schoolConfiguration.fullTime = schoolInfo?.enrollment;\r\n state.appData.application.schoolConfiguration.schoolId = schoolInfo?.school?.id;\r\n state.appData.application.schoolConfiguration.schoolName = schoolInfo?.school?.schoolName;\r\n state.appData.application.schoolConfiguration.schoolLevelTypeId =\r\n typeof schoolInfo.gradeLevel === \"string\" ? parseInt(schoolInfo.gradeLevel) : schoolInfo.gradeLevel;\r\n state.appData.application.schoolConfiguration.major = schoolInfo?.major;\r\n },\r\n REFI_SUBMIT_SCHOOL_INFO(state: any, schoolInfo: any) {\r\n if (!state.appData.application?.applicationRefiSchool) {\r\n state.appData.application.applicationRefiSchool = {};\r\n }\r\n\r\n state.appData.application.programTypeId = state.selectedProgramTypeId;\r\n state.appData.application.applicationRefiSchool.schoolId = schoolInfo.school.id;\r\n state.appData.application.applicationRefiSchool.schoolName = schoolInfo.school.schoolName;\r\n state.appData.application.applicationRefiSchool.degreeProgram = schoolInfo.degreeProgram;\r\n state.appData.application.applicationRefiSchool.degreeLevelTypeId = schoolInfo.degreeLevelTypeId;\r\n },\r\n SET_SELECTED_PRICING_TIER(state: any, pricingTier: any) {\r\n state.selectedPricingTier = pricingTier;\r\n },\r\n SET_PROGRAM_TYPE_ID_MISSING_FLAG(state: any, flag: boolean) {\r\n state.programTypeIdMissing = flag;\r\n },\r\n SET_DOCUMENT_TYPES(state: any, types: any) {\r\n state.documentTypes = types;\r\n },\r\n SET_APP_DATA_CANDIDATE_REFI_LOANS(state: any, candidateRefiLoans: CandidateRefiLoan[]) {\r\n state.appData.application.candidateRefiLoans = candidateRefiLoans;\r\n },\r\n },\r\n actions: {\r\n setRetrievingSchools({ commit }, payload) {\r\n commit(\"SET_RETRIEVING_SCHOOLS\", payload);\r\n },\r\n setAppRatePlans({ commit }, payload) {\r\n commit(\"SET_APP_RATE_PLANS\", payload);\r\n },\r\n setInitialDrawRequest({ commit }, payload) {\r\n commit(\"SET_INITIAL_DRAW_REQUEST\", payload);\r\n },\r\n setSelectedDegreeLevelTypeId({ commit }, payload) {\r\n commit(\"SET_SELECTED_DEGREE_LEVEL_TYPE_ID\", payload);\r\n },\r\n setSelectedProgramTypeId({ commit }, payload) {\r\n commit(\"SET_SELECTED_PROGRAM_TYPE_ID\", payload);\r\n },\r\n setProgramTypesByDegreeLevel({ commit }, payload) {\r\n commit(\"SET_PROGRAM_TYPES_BY_DEGREE_LEVEL\", payload);\r\n },\r\n submitSchoolInfo({ commit }, payload) {\r\n commit(\"SUBMIT_SCHOOL_INFO\", payload);\r\n },\r\n dgSubmitSchoolInfo({ commit }, payload) {\r\n commit(\"DG_SUBMIT_SCHOOL_INFO\", payload);\r\n },\r\n async refiSubmitSchoolInfo({ state, commit, dispatch }, payload) {\r\n commit(\"REFI_SUBMIT_SCHOOL_INFO\", payload);\r\n\r\n const lenderId = state?.appData?.application?.lenderId;\r\n const productTypeId = state?.appData?.application?.productTypeId;\r\n const programTypeId = state?.appData?.application?.programTypeId;\r\n\r\n const lenderConfig = await getLenderConfigurationByAppId(\r\n state?.appData?.application?.id,\r\n lenderId,\r\n productTypeId,\r\n programTypeId,\r\n );\r\n\r\n await dispatch(\"updateLenderData\", lenderConfig);\r\n },\r\n setLoanConfigurationInfo({ commit }, payload) {\r\n commit(\"SET_LOAN_CONFIGURATION_INFO\", payload);\r\n },\r\n addApplicant({ commit }, paylod) {\r\n commit(\"ADD_APPLICANT\", paylod);\r\n },\r\n openUpdateEmailModal({ commit }) {\r\n commit(\"OPEN_UPDATE_EMAIL_MODAL\");\r\n },\r\n closeUpdateEmailModal({ commit }) {\r\n commit(\"CLOSE_UPDATE_EMAIL_MODAL\");\r\n },\r\n setApplicants({ commit }, payload) {\r\n commit(\"SET_APPLICANTS\", payload);\r\n },\r\n setAppData({ commit }, payload) {\r\n commit(\"SET_APP_DATA\", payload);\r\n },\r\n setLenderData({ commit }, payload) {\r\n commit(\"SET_LENDER_DATA\", payload);\r\n },\r\n setDefaultLender({ commit }) {\r\n commit(\"SET_LENDER_DATA\", {\r\n primaryColor: \"#f7941e\",\r\n secondaryColor: \"#096fb1\",\r\n program: {\r\n annualIncomeLimit: 36000,\r\n },\r\n });\r\n },\r\n setLeftPanelText({ commit }, payload) {\r\n commit(\"SET_LEFT_PANEL_TEXT\", payload);\r\n },\r\n setAddressUnitTypes({ commit }, payload) {\r\n commit(\"SET_ADDRESS_UNIT_TYPES\", payload);\r\n },\r\n setAddressUnitTypeOptions({ commit }, payload) {\r\n commit(\"SET_ADDRESS_UNIT_TYPE_OPTIONS\", payload);\r\n },\r\n setAddressUnitTypePrefixes({ commit }, payload) {\r\n commit(\"SET_ADDRESS_UNIT_TYPE_PREFIXES\", payload);\r\n },\r\n setCitizenshipTypes({ commit }, payload) {\r\n commit(\"SET_CITIZENSHIP_TYPES\", payload);\r\n },\r\n setCitizenshipTypeOptions({ commit }, payload) {\r\n commit(\"SET_CITIZENSHIP_TYPE_OPTIONS\", payload);\r\n },\r\n setNationalIdNumberTypes({ commit }, payload) {\r\n commit(\"SET_NATIONAL_ID_NUMBER_TYPES\", payload);\r\n },\r\n setPersonalInfoFormLookups({ commit }, payload) {\r\n commit(\"SET_PERSONAL_INFORMATION_FORM_LOOKUPS\", payload);\r\n },\r\n setStates({ commit }, payload) {\r\n commit(\"SET_STATES\", payload);\r\n },\r\n setStateOptions({ commit }, payload) {\r\n commit(\"SET_STATE_OPTIONS\", payload);\r\n },\r\n setSchools({ commit }, payload) {\r\n commit(\"SET_SCHOOLS\", payload);\r\n },\r\n setEnrollmentTerms({ commit }, payload) {\r\n commit(\"SET_ENROLLMENT_TERMS\", payload);\r\n },\r\n setEnrollmentTermOptions({ commit }, payload) {\r\n commit(\"SET_ENROLLMENT_TERM_OPTIONS\", payload);\r\n },\r\n setDgSchoolConfig({ commit }, payload) {\r\n commit(\"SET_DG_SCHOOL_CONFIG\", payload);\r\n },\r\n setSchoolConfig({ commit }, payload) {\r\n commit(\"SET_SCHOOL_CONFIG\", payload);\r\n },\r\n setEnrollmentTerm({ commit }, payload) {\r\n commit(\"SET_ENROLLMENT_TERM\", payload);\r\n },\r\n setProgram({ commit }, payload) {\r\n commit(\"SET_PROGRAM\", payload);\r\n },\r\n setProgramLimits({ commit }, payload) {\r\n commit(\"SET_PROGRAM_LIMITS\", payload);\r\n },\r\n setCoursesOfStudy({ commit }, payload) {\r\n commit(\"SET_COURSES_OF_STUDY\", payload);\r\n },\r\n setSchoolLevels({ commit }, payload) {\r\n commit(\"SET_SCHOOL_LEVELS\", payload);\r\n },\r\n setShowItinIndicator({ commit }, payload) {\r\n commit(\"SET_SHOW_ITIN_INDICATOR\", payload);\r\n },\r\n setApplicationMetadata({ commit }, payload) {\r\n commit(\"SET_APPLICATION_METADATA\", payload);\r\n },\r\n setLoanConfiguration({ commit }, payload) {\r\n commit(\"SET_LOAN_CONFIGURATION\", payload);\r\n },\r\n setHousingTypeOptions({ state, commit }, payload) {\r\n commit(\"SET_HOUSING_TYPE_OPTIONS\", payload);\r\n },\r\n setCandidateRefiLoans({ state, commit }, payload) {\r\n commit(\"SET_APP_DATA_CANDIDATE_REFI_LOANS\", payload);\r\n },\r\n findAndReplaceApplicant({ state, commit }, payload) {\r\n const applicants = store.state.appData.applicants;\r\n\r\n const index = applicants?.findIndex((applicant: Applicant) => applicant.id === payload.applicantId);\r\n\r\n if (index !== -1) {\r\n applicants[index] = payload.updatedApplicant;\r\n }\r\n\r\n commit(\"SET_APPLICANTS\", applicants);\r\n },\r\n async getProgram({ state, commit, dispatch }) {\r\n if (!state.program || state.program?.pricingTiers?.length === 0 || state.programLimits?.length === 0) {\r\n if (state?.appData?.application?.programTypeId) {\r\n commit(\"SET_PROGRAM_TYPE_ID_MISSING_FLAG\", false);\r\n\r\n const rates = await $api.configuration.getRates(\r\n state?.appData?.application?.lenderId,\r\n state?.appData?.application?.programTypeId,\r\n state?.appData?.application?.productTypeId,\r\n );\r\n if (rates.pricingTiers && rates.programDetails) {\r\n dispatch(\"setProgram\", rates);\r\n dispatch(\"setProgramLimits\", rates.programDetails?.programLimits);\r\n }\r\n } else {\r\n commit(\"SET_PROGRAM_TYPE_ID_MISSING_FLAG\", true);\r\n }\r\n }\r\n },\r\n async getFeedbackFormOptions({ state, commit }) {\r\n try {\r\n if (state.feedbackFormOptions?.length <= 0) {\r\n const options = await $api.feedback.getFeedbackFormOptions(2);\r\n commit(\"SET_FEEDBACK_FORM_OPTIONS\", options);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n async getEnrollmentTerms({ state, commit }) {\r\n try {\r\n if (state.enrollmentTerms?.length <= 0 || state.enrollmentTermOptions?.length <= 0) {\r\n const lookups = await $api.lookups.getEnrollmentTermsLookups();\r\n if (lookups.length > 0) {\r\n commit(\"SET_ENROLLMENT_TERMS\", lookups);\r\n\r\n const enrollmentTermOptions = lookups.map((o: any) => {\r\n return {\r\n label: o.description,\r\n value: JSON.stringify({\r\n label: `${o.description}`,\r\n id: `${o.id}`,\r\n }),\r\n };\r\n });\r\n\r\n commit(\"SET_ENROLLMENT_TERM_OPTIONS\", enrollmentTermOptions);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getEnrollmentTerms()\", error);\r\n }\r\n },\r\n async getRegistrationLookups({ state, commit }) {\r\n try {\r\n if (\r\n state.registrationLookups?.phoneTypes?.length <= 0 ||\r\n state.registrationLookups?.membershipTypes?.length <= 0\r\n ) {\r\n const lookups = await $api.lookups.getRegistrationLookups();\r\n if (lookups.phoneTypes && lookups.membershipTypes) {\r\n commit(\"SET_REGISTRATION_LOOKUPS\", lookups);\r\n }\r\n if (lookups.membershipTypes.length > 0) {\r\n const membershipTypeOptions = lookups.membershipTypes;\r\n commit(\"SET_MEMBERSHIP_TYPE_OPTIONS\", membershipTypeOptions);\r\n }\r\n\r\n if (lookups.phoneTypes.length > 0) {\r\n const phoneTypeOptions = lookups.phoneTypes.map((type: any) => {\r\n return {\r\n label: type.name,\r\n value: type.id,\r\n };\r\n });\r\n\r\n commit(\"SET_PHONE_TYPE_OPTIONS\", phoneTypeOptions);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getRegistrationLookups()\", error);\r\n }\r\n },\r\n async getSchoolInfoLookupsRefi({ state, commit }, programTypeId: number) {\r\n commit(\"SET_RETRIEVING_SCHOOLS\", true);\r\n\r\n const lookups = await $api.lookups.getRefiSchoolInfoLookups(programTypeId, state.selectedDegreeLevelTypeId);\r\n if (lookups.coursesOfStudy?.length > 0) {\r\n commit(\"SET_COURSES_OF_STUDY\", lookups.coursesOfStudy);\r\n const coursesOfStudy = (lookups.coursesOfStudy || []).map((o: any) => {\r\n return {\r\n label: o.description,\r\n value: o.id,\r\n };\r\n });\r\n\r\n const coursesOfStudyREFI = (lookups.coursesOfStudy || []).map((o: any) => {\r\n return {\r\n label: o.description,\r\n value: o.id,\r\n };\r\n });\r\n\r\n commit(\"SET_COURSES_OF_STUDY_OPTIONS\", coursesOfStudy);\r\n commit(\"SET_COURSES_OF_STUDY_OPTIONS_REFI\", coursesOfStudyREFI);\r\n }\r\n\r\n const res = await $api.school.getSchoolsByProgram(\r\n programTypeId,\r\n state.appData?.application?.productTypeId,\r\n state?.appData?.application?.lenderId,\r\n );\r\n\r\n if (res?.schools?.length > 0) {\r\n commit(\"SET_SCHOOLS\", res.schools);\r\n }\r\n\r\n commit(\"SET_RETRIEVING_SCHOOLS\", false);\r\n },\r\n async getSchoolInfoLookups({ state, commit }) {\r\n try {\r\n if (state.coursesOfStudy?.length <= 0 || state.schoolLevels?.length <= 0) {\r\n const lookups = await $api.lookups.getSchoolInfoLookups(state?.appData?.application?.programTypeId);\r\n\r\n if (lookups.coursesOfStudy?.length > 0) {\r\n commit(\"SET_COURSES_OF_STUDY\", lookups.coursesOfStudy);\r\n const coursesOfStudy = (lookups.coursesOfStudy || []).map((o: any) => {\r\n return {\r\n label: o.description,\r\n value: o.id,\r\n };\r\n });\r\n\r\n console.log(lookups.coursesOfStudy);\r\n const coursesOfStudyLOC = (lookups.coursesOfStudy || []).map((o: any) => {\r\n return {\r\n label: o.description,\r\n value: o.majorName,\r\n };\r\n });\r\n\r\n console.log(coursesOfStudyLOC);\r\n\r\n commit(\"SET_COURSES_OF_STUDY_OPTIONS\", coursesOfStudy);\r\n commit(\"SET_COURSES_OF_STUDY_OPTIONS_LOC\", coursesOfStudyLOC);\r\n }\r\n\r\n if (lookups.schoolLevels?.length > 0) {\r\n commit(\"SET_SCHOOL_LEVELS\", lookups.schoolLevels);\r\n\r\n const schoolLevels = (lookups.schoolLevels || []).map((o: any) => {\r\n return {\r\n label: o.name,\r\n value: o.id || \"\",\r\n };\r\n });\r\n\r\n commit(\"SET_SCHOOL_LEVEL_OPTIONS\", schoolLevels);\r\n }\r\n }\r\n\r\n if (state.schools?.length <= 0) {\r\n const res = await $api.school.getSchoolsByProgram(\r\n state.appData?.application?.programTypeId,\r\n state.appData?.application?.productTypeId,\r\n state?.appData?.application?.lenderId,\r\n );\r\n if (res?.schools?.length > 0) {\r\n commit(\"SET_SCHOOLS\", res.schools);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getSchoolInfoLookups()\", error);\r\n }\r\n },\r\n async getAdditionalInfoLookups({ commit, state }, applicantType: string) {\r\n try {\r\n const lookups = await $api.lookups.getAdditionalInfoLookups(\r\n applicantType,\r\n state?.appData?.application?.productTypeId,\r\n );\r\n if (lookups.error) {\r\n return { error: true };\r\n } else {\r\n if (lookups.housingTypes && lookups?.housingTypes?.length > 0) {\r\n const options = lookups.housingTypes.map((o: any) => {\r\n return {\r\n label: o.description || o.label,\r\n value: o.id || o.value,\r\n };\r\n });\r\n\r\n commit(\"SET_HOUSING_TYPE_OPTIONS\", options);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getAdditionalInfoLookups()\", error);\r\n }\r\n },\r\n async getConsentTypes({ state, commit }) {\r\n try {\r\n if (state.consentTypes?.length <= 0) {\r\n const lookups = await $api.lookups.getConsentTypes();\r\n if (lookups?.length > 0) {\r\n commit(\"SET_CONSENT_TYPES\", lookups);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getConsentTypes()\", error);\r\n }\r\n },\r\n async getSurveyQuestionTypes({ state, commit }) {\r\n try {\r\n if (state.surveyQuestionTypes?.length <= 0) {\r\n const lookups = await $api.lookups.getSurveyQuestionTypes();\r\n if (lookups.success) {\r\n commit(\"SET_SURVEY_QUESTION_TYPES\", lookups.results);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getSurveyQuestionTypes()\", error);\r\n }\r\n },\r\n async getAppRatePlans({ state, commit }) {\r\n const appRatePlans = await $api.applications.getApplicationRatePlansByApplicationId(\r\n state?.appData?.application?.id,\r\n state?.appData?.application?.lenderId,\r\n );\r\n if (appRatePlans && appRatePlans?.length > 0) {\r\n const sortedRatePlans = appRatePlans.sort((a: any, b: any) => a.rateTypeId - b.rateTypeId);\r\n commit(\"SET_APP_RATE_PLANS\", sortedRatePlans);\r\n }\r\n },\r\n async getDegreeLevels({ state, commit }) {\r\n try {\r\n if (state.degreeLevels?.length <= 0) {\r\n const response = await $api.refi.getDegreeLevels();\r\n\r\n if (response?.length > 0) {\r\n commit(\"SET_DEGREE_LEVELS\", response);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getDegreeLevels()\", error);\r\n }\r\n },\r\n async getProgramsByDegreeLevelTypeId({ state, commit }, degreeLevelTypeId: number) {\r\n try {\r\n const response = await $api.refi.getProgramsByDegreeLevelTypeId(\r\n state.appData?.application?.lenderId,\r\n state.appData?.application?.productTypeId,\r\n degreeLevelTypeId,\r\n );\r\n\r\n if (response?.data && response?.data?.length > 0) {\r\n commit(\"SET_PROGRAM_TYPES_BY_DEGREE_LEVEL\", response.data);\r\n } else {\r\n commit(\"SET_PROGRAM_TYPES_BY_DEGREE_LEVEL\", []);\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getProgramsByDegreeLevelTypeId()\", error);\r\n }\r\n },\r\n async updateLenderData({ dispatch }, lenderConfig: any) {\r\n if (lenderConfig?.lid || !lenderConfig?.error) {\r\n window.localStorage.setItem(\"lenderData\", JSON.stringify(lenderConfig));\r\n await dispatch(\"setLenderData\", lenderConfig);\r\n } else {\r\n if (lenderConfig?.redirectUrl) {\r\n window.location.href = `${lenderConfig?.redirectUrl}`;\r\n }\r\n }\r\n },\r\n async saveSelectedCreditScoreRange({ dispatch, state, commit }, payload) {\r\n await dispatch(\"getSurveyQuestionTypes\");\r\n\r\n const questionId = store.state.surveyQuestionTypes?.find(\r\n (s: any) => s.name?.trim() === \"SelectedCreditRange\",\r\n )?.id;\r\n\r\n const applicant = payload.applicant;\r\n const selectedVariableRate = payload?.rates?.find((o: any) => o.type === \"Variable\");\r\n const selectedFixedRate = payload?.rates?.find((o: any) => o.type === \"Fixed\");\r\n const request = {\r\n min: payload?.selectedRange?.min,\r\n max: payload?.selectedRange?.max,\r\n variableRate: selectedVariableRate?.interestRate?.toFixed(3) || \"NULL\",\r\n fixedRate: selectedFixedRate?.interestRate?.toFixed(3) || \"NULL\",\r\n };\r\n\r\n const jsonRequest = JSON.stringify(request);\r\n const surveyResponseRequest = {\r\n applicantId: applicant?.id,\r\n questionId: questionId,\r\n response: jsonRequest,\r\n } as any;\r\n\r\n const response = await $api.person.addSurveyResponse(surveyResponseRequest);\r\n return response;\r\n },\r\n async getDocumentTypes({ commit }, payload) {\r\n try {\r\n const response = await $api.lookups.getDocumentTypes(payload);\r\n\r\n if (response?.results && response?.results?.length > 0) {\r\n commit(\"SET_DOCUMENT_TYPES\", response.results);\r\n }\r\n } catch (error) {\r\n console.log(\"Error: getDocumentTypes()\", error);\r\n }\r\n },\r\n },\r\n getters: {\r\n SOFT_PULL_ENABLED_FLAG: (state): boolean => {\r\n return state.lenderData?.program?.softPullEnabled ? state.lenderData?.program?.softPullEnabled : false;\r\n },\r\n membershipTypeOptions: (state): Array