{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/services/cookiesConsenseService.ts","webpack:///./src/assets/sefe-logo-white.png","webpack:///./src/assets/money_icon_gazprom_blue.svg","webpack:///./src/store/modules/auth.module.ts","webpack:///./src/services/panelService.ts","webpack:///./src/store/modules/panel.module.ts","webpack:///./src/services/productsService.ts","webpack:///./src/store/modules/products.module.ts","webpack:///./src/services/gasAccountsService.ts","webpack:///./src/store/modules/gasAccounts.module.ts","webpack:///./src/interfaces/mpanTypes.ts","webpack:///./src/services/powerAccountsService.ts","webpack:///./src/store/modules/powerAccounts.module.ts","webpack:///./src/services/termsService.ts","webpack:///./src/store/modules/terms.module.ts","webpack:///./src/utilities/JourneyNode.ts","webpack:///./src/store/modules/invoicingWizard.module.ts","webpack:///./src/store/modules/meteringWizard.module.ts","webpack:///./src/store/modules/billingWizard.module.ts","webpack:///./src/store/modules/consumptionWizard.module.ts","webpack:///./src/services/invoicesAxiosService.ts","webpack:///./src/helpers/fileNameHelper.ts","webpack:///./src/services/invoicesService.ts","webpack:///./src/store/modules/invoices.module.ts","webpack:///./src/services/meteringGasService.ts","webpack:///./src/store/modules/metering.module.ts","webpack:///./src/services/invoicesPowerService.ts","webpack:///./src/services/invoicesPowerFlexService.ts","webpack:///./src/store/modules/powerInvoices.module.ts","webpack:///./src/services/powerGroupInvoicesService.ts","webpack:///./src/store/modules/powerGroupInvoices.module.ts","webpack:///./src/services/meteringPowerService.ts","webpack:///./src/store/modules/powerMetering.module.ts","webpack:///./src/services/billingService.ts","webpack:///./src/store/modules/billing.module.ts","webpack:///./src/services/consumptionReportsService.ts","webpack:///./src/store/modules/consumptionReports.module.ts","webpack:///./src/services/energyCostReportsService.ts","webpack:///./src/store/modules/energyCostReports.module.ts","webpack:///./src/services/costOfGasReportsService.ts","webpack:///./src/store/modules/costOfGasReports.module.ts","webpack:///./src/services/amrSmartMeteringReportsService.ts","webpack:///./src/store/modules/amrSmartMeteringReports.module.ts","webpack:///./src/services/dmConsumptionReportsService.ts","webpack:///./src/store/modules/dmConsumptionReports.module.ts","webpack:///./src/services/reportsAxiosService.ts","webpack:///./src/services/dailyConsumptionReportsService.ts","webpack:///./src/store/modules/dailyConsumptionReports.module.ts","webpack:///./src/services/consumptionPowerReportsService.ts","webpack:///./src/store/modules/consumptionPowerReports.module.ts","webpack:///./src/services/balanceService.ts","webpack:///./src/store/modules/balance.module.ts","webpack:///./src/services/manageService.ts","webpack:///./src/store/modules/manage.module.ts","webpack:///./src/services/featureToggleService.ts","webpack:///./src/store/modules/featureToggle.module.ts","webpack:///./src/services/bannerContentService.ts","webpack:///./src/store/modules/bannerContent.module.ts","webpack:///./src/services/adminService.ts","webpack:///./src/store/modules/admin.module.ts","webpack:///./src/store/index.ts","webpack:///./src/components/pages/BasePage.vue?73d2","webpack:///./src/components/layouts/FlexFillLayout.vue?de88","webpack:///./src/components/layouts/FlexFillLayout.vue","webpack:///./src/components/layouts/FlexFillLayout.vue?b33d","webpack:///./src/components/layouts/FlexFillLayout.vue?3570","webpack:///./src/components/HeaderSection.vue?6131","webpack:///./src/components/HeaderSection.vue","webpack:///./src/components/HeaderSection.vue?9f4d","webpack:///./src/components/HeaderSection.vue?4469","webpack:///./src/components/NavMenu.vue?92b2","webpack:///./src/components/DropdownHover.vue?83da","webpack:///./src/components/DropdownHover.vue","webpack:///./src/components/DropdownHover.vue?738d","webpack:///./src/components/DropdownHover.vue?beef","webpack:///./src/components/NavMenu.vue","webpack:///./src/components/NavMenu.vue?b010","webpack:///./src/components/NavMenu.vue?8fe2","webpack:///./src/components/AccountSelector.vue?e2e5","webpack:///./src/components/GasAccountSelector.vue?d2e4","webpack:///./src/components/GasAccountSelector.vue","webpack:///./src/components/GasAccountSelector.vue?f150","webpack:///./src/components/GasAccountSelector.vue?76db","webpack:///./src/components/PowerAccountSelector.vue?f488","webpack:///./src/components/PowerAccountSelector.vue","webpack:///./src/components/PowerAccountSelector.vue?f487","webpack:///./src/components/PowerAccountSelector.vue?dbd2","webpack:///./src/components/AccountSelector.vue","webpack:///./src/components/AccountSelector.vue?6f88","webpack:///./src/components/AccountSelector.vue?1567","webpack:///./src/components/FooterSection.vue?c36f","webpack:///./src/components/FooterSection.vue","webpack:///./src/components/FooterSection.vue?8a8a","webpack:///./src/components/FooterSection.vue?3f38","webpack:///./src/components/pages/BasePage.vue","webpack:///./src/components/pages/BasePage.vue?471b","webpack:///./src/components/pages/BasePage.vue?f428","webpack:///./src/services/toastService.ts","webpack:///./src/plugins/bootstrap-vue.js","webpack:///./src/plugins/vue-select.js","webpack:///./src/components/wizard/WizardBaseStep.vue?f706","webpack:///./src/plugins/vee-validate.js","webpack:///./src/views/CookiePolicy.vue?c265","webpack:///./src/components/CookiePopup.vue?f39e","webpack:///./src/plugins/vue-moment.js","webpack:///./src/components/PowerAccountSelector.vue?9199","webpack:///./src/plugins/browser-update.js","webpack:///./src/App.vue?4a9a","webpack:///./src/components/CookiePopup.vue?0c5f","webpack:///./src/components/CookiePopup.vue","webpack:///./src/components/CookiePopup.vue?2914","webpack:///./src/components/CookiePopup.vue?e850","webpack:///./src/utilities/VeeValidate_Custom.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?198c","webpack:///./src/App.vue?315a","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/RegisterTab.vue?f438","webpack:///./src/App.vue?db16","webpack:///./src/plugins/pretty-checkbox.js","webpack:///./src/utilities/GtagHelper.ts","webpack:///./src/assets/consumption_icon_gazprom_blue.svg","webpack:///./src/services/axiosService.ts","webpack:///./src/components/GasAccountSelector.vue?4581","webpack:///./src/components/pages/BasePage.vue?0bff","webpack:///./src/assets/sefe-logo.png","webpack:///./src/plugins/vue-cookies.js","webpack:///./src/components/wizard/WizardBaseStep.vue?54cc","webpack:///./src/components/wizard/WizardBaseStep.vue","webpack:///./src/components/wizard/WizardBaseStep.vue?35c1","webpack:///./src/components/wizard/WizardBaseStep.vue?e7f4","webpack:///./src/components/panels/MyBalancePanel.vue?19f8","webpack:///./src/assets/power_icon_gazprom_blue.svg","webpack:///./src/components/AlertBanner.vue?1309","webpack:///./src/components/AlertBanner.vue","webpack:///./src/components/AlertBanner.vue?0d6e","webpack:///./src/components/AlertBanner.vue?ccc2","webpack:///./src/components/layouts/CenteredLayout.vue?a463","webpack:///./src/components/layouts/CenteredLayout.vue","webpack:///./src/components/layouts/CenteredLayout.vue?c801","webpack:///./src/components/layouts/CenteredLayout.vue?eb41","webpack:///./src/components/NavMenu.vue?9d96","webpack:///./src/utilities/Enums/UserTypes.ts","webpack:///./src/components/elements/MainItemLabel.vue?a2f3","webpack:///./src/views/Index.vue?ba27","webpack:///./src/components/LoginTab.vue?5ef8","webpack:///./src/components/elements/TermsOfUseModal.vue?3e38","webpack:///./src/components/elements/TermsOfUseModal.vue","webpack:///./src/components/elements/TermsOfUseModal.vue?9380","webpack:///./src/components/elements/TermsOfUseModal.vue?c70b","webpack:///./src/components/LoginTab.vue","webpack:///./src/components/LoginTab.vue?9fdf","webpack:///./src/components/LoginTab.vue?9cb4","webpack:///./src/components/RegisterTab.vue?6629","webpack:///./src/components/RegisterTab.vue","webpack:///./src/components/RegisterTab.vue?bc14","webpack:///./src/components/RegisterTab.vue?28c3","webpack:///./src/components/ForgottenTab.vue?8652","webpack:///./src/components/ForgottenTab.vue","webpack:///./src/components/ForgottenTab.vue?84d8","webpack:///./src/components/ForgottenTab.vue?bc22","webpack:///./src/views/Index.vue","webpack:///./src/views/Index.vue?4dbc","webpack:///./src/views/Index.vue?e8c7","webpack:///./src/views/ResetPassword.vue?c8c6","webpack:///./src/components/ResetPasswordTab.vue?f3f5","webpack:///./src/components/ResetPasswordTab.vue","webpack:///./src/components/ResetPasswordTab.vue?cc7a","webpack:///./src/components/ResetPasswordTab.vue?3979","webpack:///./src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?0ead","webpack:///./src/views/ResetPassword.vue?6c59","webpack:///./src/views/Dashboard.vue?ba2a","webpack:///./src/components/panels/MyBalancePanel.vue?8cc3","webpack:///./src/components/panels/BasePanel.vue?1319","webpack:///./src/components/panels/BasePanel.vue","webpack:///./src/components/panels/BasePanel.vue?0829","webpack:///./src/components/panels/BasePanel.vue?451a","webpack:///./src/components/elements/ItemLabel.vue?c10d","webpack:///./src/components/elements/ItemLabel.vue","webpack:///./src/components/elements/ItemLabel.vue?fabf","webpack:///./src/components/elements/ItemLabel.vue?d9d1","webpack:///./src/components/elements/MainItemLabel.vue?f392","webpack:///./src/components/elements/MainItemLabel.vue","webpack:///./src/components/elements/MainItemLabel.vue?e87a","webpack:///./src/components/elements/MainItemLabel.vue?9f0f","webpack:///./src/components/elements/CtaButton.vue?73d3","webpack:///./src/components/elements/CtaButton.vue","webpack:///./src/components/elements/CtaButton.vue?87ee","webpack:///./src/components/elements/CtaButton.vue?e4ed","webpack:///./src/components/panels/MyBalancePanel.vue","webpack:///./src/components/panels/MyBalancePanel.vue?1918","webpack:///./src/components/panels/MyBalancePanel.vue?9dc9","webpack:///./src/components/panels/LatestInvoicePanel.vue?69cf","webpack:///./src/components/panels/LatestInvoicePanel.vue","webpack:///./src/components/panels/LatestInvoicePanel.vue?d119","webpack:///./src/components/panels/LatestInvoicePanel.vue?5fa4","webpack:///./src/components/panels/LatestGasReadPanel.vue?b35e","webpack:///./src/components/panels/LatestGasReadPanel.vue","webpack:///./src/components/panels/LatestGasReadPanel.vue?3ba7","webpack:///./src/components/panels/LatestGasReadPanel.vue?a598","webpack:///./src/components/panels/ContractDetailPanel.vue?1345","webpack:///./src/components/panels/ContractDetailPanel.vue","webpack:///./src/components/panels/ContractDetailPanel.vue?7fa9","webpack:///./src/components/panels/ContractDetailPanel.vue?9366","webpack:///./src/components/panels/SimplePanel.vue?ec2a","webpack:///./src/components/panels/SimplePanel.vue","webpack:///./src/components/panels/SimplePanel.vue?2292","webpack:///./src/components/panels/SimplePanel.vue?0ce1","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?c38e","webpack:///./src/views/Dashboard.vue?0dc5","webpack:///./src/views/CookiePolicy.vue?f432","webpack:///./src/views/CookiePolicy.vue","webpack:///./src/views/CookiePolicy.vue?e48a","webpack:///./src/views/CookiePolicy.vue?4003","webpack:///./src/views/TermsOfUse.vue?36e7","webpack:///./src/views/TermsOfUse.vue","webpack:///./src/views/TermsOfUse.vue?e46f","webpack:///./src/views/TermsOfUse.vue?2155","webpack:///./src/views/FaqsPage.vue?ac4c","webpack:///./src/views/FaqsPage.vue","webpack:///./src/views/FaqsPage.vue?ead6","webpack:///./src/views/FaqsPage.vue?fa79","webpack:///./src/views/ContentManager.vue?76c8","webpack:///./src/components/wizard/contentmanager/WizardStepContentSelector.vue?3515","webpack:///./src/components/wizard/contentmanager/WizardStepContentSelector.vue","webpack:///./src/components/wizard/contentmanager/WizardStepContentSelector.vue?7d42","webpack:///./src/components/wizard/contentmanager/WizardStepContentSelector.vue?db6c","webpack:///./src/components/BannerManager.vue?a35e","webpack:///./src/components/BannerManager.vue","webpack:///./src/components/BannerManager.vue?b72d","webpack:///./src/components/BannerManager.vue?f691","webpack:///./src/views/ContentManager.vue","webpack:///./src/views/ContentManager.vue?c870","webpack:///./src/views/ContentManager.vue?e6d8","webpack:///./src/router/index.ts","webpack:///./src/components/HeaderSection.vue?c0c5","webpack:///./src/components/elements/ClipLoader.vue?e764","webpack:///./src/components/elements/ClipLoader.vue","webpack:///./src/components/elements/ClipLoader.vue?f6f1","webpack:///./src/components/elements/ClipLoader.vue?ea41","webpack:///./src/components/AccountSelector.vue?1c78","webpack:///./src/utilities/Claims.ts","webpack:///./src/registerServiceWorker.ts","webpack:///./src/components/elements/ItemLabel.vue?fa14","webpack:///./src/main.ts","webpack:///./src/assets/pdf_icon.svg","webpack:///./src/plugins/filters.ts","webpack:///./src/views/TermsOfUse.vue?6a91","webpack:///./src/components/elements/ClipLoader.vue?f827","webpack:///./src/services/authService.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","CookiesConsenseService","cookies","this","set","hostname","location","toString","domainname","substring","indexOf","cookie","status","Account","authService","AuthService","Vue","$cookies","userAccount","impersonatedUserAccount","rememberMeAccountEmail","loggedIn","portalAuthTokenUrl","impersonatedUserEmail","impersonatedUserId","isNavDisabled","isInImpersonationMode","identityUser","Id","Email","claim","getUserAccount","Claims","filter","Type","canAccessAnyRecord","Value","canManageInternalUser","canManageExternalUser","canManageStandardUser","canViewAdminMenu","canAccessAllBaskets","canDownloadCogReports","isGazpromAdmin","account","remove","disabled","context","commit","login","JSON","parse","content","RememberMe","response","userId","getUserId","logout","email","sendPasswordResetLink","params","getPortalAuthTokenUrl","authTokenUrl","getImpersonatedUserId","getImpersonatedUserEmail","resetPasswordDetails","resetPassword","changePassword","requestDetails","requestTpiAccess","registrationDetails","RegistrationTypeTpi","registerTpiAccount","registerAccount","VuexModule","__decorate","Mutation","Action","rawError","Module","namespaced","CONTROLLER","PanelService","axios","Axios","UserId","accountNumber","AccountNumber","siteRefNum","SiteRefNumber","contractId","ContractId","isLargeUser","Panel","panelService","accountsBalanceInformation","accountDetails","invoices","meterReadings","contractDetails","balanceInfo","isPendingAgreement","userData","getBalanceInformation","getAccountDetails","getInvoices","getMeterReadings","getContractDetails","AccountsService","Products","productsService","ProductsService","cookieKey","userProducts","Array","userProductSelection","SelectedProduct","isProductSelectionDisabled","userSelection","userIdInCookies","product","getUserProducts","selectedProduct","UserProducts","API_URL","GasAccountsService","size","accountNumberQuery","query","page","agreements","Agreements","selectedAgreementId","SelectedAgreementId","distinctMPRNS","DistinctMPRNS","selectedMPRN","SelectedMPRN","post","agreement","mprn","GasAccounts","gasAccountsService","pageSize","userAccountsCount","accountsCountForCurrentSearch","userAccounts","userDeliveryAgreements","userDeliveryAgreementsLinkedToMPRN","userAccountsLoaded","isMprnSelectionDisabled","isAgreementSelectionDisabled","isAccountSelectionDisabled","userGasSelections","SelectedGasAccount","SelectedGasDeliveryAgreement","SelectedGasSiteRefNumber","SelectedGasMprn","SelectedGasContractId","MeterPointReferenceNumber","every","isSingleSite","find","x","DeliveryAgreementId","getSelectedDeliveryAgreementId","accountsCount","returnedAccounts","match","deliveryAgreements","MPRNS","userSelections","DeliveryAgreements","agreementId","UmaxSiteRefNum","SiteRefNum","MPRN","deliveryAgreementsWithLabels","fetchUserAccountsCount","fetchUserAccounts","userAccountsData","selectedAccountNumber","SelectedAccount","UserAccounts","item","addCategoryLabelsToAgreements","TotalAccounts","dispatch","searchUserAccounts","appendResult","fetchDeliveryAgreementsForAccount","getAgreementIdToSelect","deliveryAgreementsLinkedToMPRN","deliveryAgreementsWithLabelsLinkedToMPRN","EnumMeterType","PowerAccountsService","groupAccountNumberQuery","groupAccountNumber","powerSites","PowerSites","selectedPowerSite","SelectedSite","distinctMpans","DistinctMPANS","selectedMpan","SelectedMpan","MpanTypes","NHH","S","HH","IHH","PowerAccounts","powerAccountsService","userPowerSites","userPowerDistinctMpans","userPowerSitesLinkedToMpan","isMpanSelectionDisabled","isGroupAccountSelectionDisabled","userPowerSelections","SelectedGroupAccount","SelectedMeterType","getSelectedAccount","HalfHourlyMeterTypes","includes","mpans","powerSite","MeterType","Mpan","PowerSitesLinkedToMpan","groupAccount","selectedGroupAccountNumber","fetchPowerSitesForAccount","TermsService","Terms","termsOfUseService","hasAcceptedTerms","termsOfUseDto","hasAccepted","termsOfUse","hasUserAcceptedTerms","AcceptsTerms","JourneyNode","Next","InvoicingWizard","rootJourney","currentJourney","option","MeteringWizard","BillingWizard","ConsumptionWizard","vm","newAxios","interceptors","use","config","$bvToast","errorHandler","title","variant","solid","autoHideDelay","appendToast","toast","errorMessage","pathname","isLoggedIn","store","getters","Blob","text","errorData","errorDetail","GetErrorDetail","Message1","format","LatestInvoiceDate","Message2","moment","StartRange","EndRange","args","replace","number","errorName","getFileName","contentDisposition","filenameRegex","matches","exec","InvoicesService","accountNum","invoiceNo","responseType","fileName","headers","file","fromMonth","toMonth","fromDate","toDate","Invoices","invoicesService","InvoiceService","downloadFileData","fetchInvoices","downloadLatestMonthInvoicesForAccount","downloadLatestYearInvoicesForAccount","downloadCustomRangeInvoicesForAccount","invoiceDownload","downloadInvoicesForAllAccounts","downloadCustomRangeInvoicesForAllAccounts","BULK_CONTROLLER","MeteringGasService","responseFileName","Metering","meteringService","MeteringService","selectedMeterSerialNumber","meterPointAq","showDmReads","availableMeters","totalMeterReadings","meterReads","dmMeterSelected","fileDownload","multipleMeterReadsTemplateDownload","completedMultipleMeterReadsTemplateDownload","previousMeterRead","SerialNumber","Energy","Reading","SourceDescription","InvoiceDate","ReadDate","EarliestMeterReadingDate","submitMeterReadResponse","submitMultipleMeterReadsResponse","submitAndSendMultipleMeterReadsResponse","SelectedMeterSerialNumber","MeterPointAq","ShowDmReads","AvailableMeters","TotalMeterReadings","Reads","meterSerialNumber","meterRead","meterReadSubmitResponse","multipleMeterReadsSubmitResponse","multipleMeterReadsSubmitAndSendResponse","getMeterReads","downloadReport","report","downloadMultipleMeterReadsTemplate","template","downloadCompletedMultipleMeterReadsTemplate","getPreviousMeterRead","submitMeterRead","submitMultipleMeterReads","submitAndSendMultipleMeterReads","InvoicesPowerService","InvoicesPowerFlexService","PowerInvoices","InvoicePowerService","invoicesFlexService","InvoicePowerFlexService","downloadFileResponse","PowerGroupInvoicesService","groupInvoiceNumber","PowerGroupInvoices","powerGroupInvoicesService","powerGroupInvoices","groupInvoices","getGroupInvoiceSummary","downloadGroupInvoice","groupInvoice","model","downloadGroupSummary","downloadGroupStatement","MeteringPowerService","powerMeterReads","powerMeterReadAddData","PowerMetering","meteringPowerService","meterReadStatementAdd","MeterSerialNumber","getPowerMeterReads","getPowerMeterReadStamentsAdd","mpan","AccountNum","PreviousMeterReadDate","prevMeterReadDate","CurrentMeterReadDate","currentMeterReadDate","PowerMeterReadList","stringify","log","addPowerMeterRead","meterReadStatementAddResult","meterReadCurrentMeterReadArray","GroupAccountNum","groupAccountNum","currentMeterReadArray","BillingService","previousReportId","invoiceStartDate","invoiceEndDate","selectedBillingReportOptionValues","id","Billing","billingService","billingReportRequestResponse","billingReports","getGeneratedBillingReports","generateBillingReport","generateBillingReportForAllAccounts","removeGeneratedBillingReport","ConsumptionReportsService","siteRef","startDate","endDate","includeAllSites","ConsumptionReports","consumptionReportsService","generateConsumptionReports","generateConsumptionReportsAllAccounts","EnergyCostReportsService","EnergyCostReports","generateEnergyCostReports","CostOfGasReportsService","basketId","filePath","CostOfGasReports","costOfGasReportsService","baskets","cogReports","getBaskets","getCogReports","downloadCogReport","downloadCogReports","AmrSmartMeteringReportsService","ChartData","mprns","mprnDtos","map","SiteReferenceNumber","StartDate","payload","Date","EndDate","MprnDetail","userAccountDetails","forEach","accountDtos","UserAccountDetails","AmrSmartMeteringReports","amrSmartMeteringReportsService","amrChartData","yearlyAmrChartData","latestAmrChartDataDate","contractStartDate","contractEndDate","downloadReport_gas","downloadReport_power","downloadBulkReport_gas","downloadBulkReport_power","downloadBulkReportsAllAccounts_gas","getAmrChartData_gas","parsedData","y","getAmrChartData_power","AmrChartData","earliestDataDateAllowed","setFullYear","getFullYear","latestDataDateAllowed","firstDataTime","lastDataTime","months","getMonth","newEarlyDate","setMonth","datestring","newLateDate","setDate","yearAggregatedData","values","reduce","aggregated","substr","sort","a","b","getContractDates_gas","resultDates","keys","DMConsumptionReportsService","IsActiveDM","meterPointReferenceNumber","DMConsumptionReports","dmConsumptionReportsService","DMConsumptionPrepopulateDataResponse","DMConsumptionGraphDataResponse","getIsActiveDM","DmFlag","getPrepopulatedData","downloadDMConsumptionGraph","getDMConsumptionGraphData","DailyConsumptionReportsService","DailyConsumptionReports","dailyConsumptionReportsService","DailyConsumptionReportService","downloadDailyConsumptionReport","ConsumptionPowerReportsService","GraphData","AdditionalGraphData","commaSeperatedDates","dates","ConsumptionReportsPower","consumptionPowerReportsService","getGraphData","getAdditionalGraphData","getDownloadDailyConsumptionReport","getDownloadHalfHourlyCsvMultiDate","BalanceService","Balance","balanceService","accountBalanceDetails","getAccountBalanceDetails","BalanceDetails","DownloadDDMandate","submitDownloadBalanceXlsx","submitDownloadBalancePDF","ManageService","emailSent","Manage","manageService","emailSentStatus","manageBillingAddressPrepopulated","manageSiteAddressPrepopulated","sendEmergencyContactDetails","sendBillingAddressDetails","sendSiteAddressDetails","getSiteAddress","FeatureToggleService","featureToggleName","FeatureToggle","featureToggleService","getInvoiceMeterReadPanelFeatureToggleStatus","getStatus","BannerContentService","bannerText","bannerContent","url","BannerContent","bannerContentService","getLatest","banner","add","AdminService","addUserRequestParams","userAdded","FirstName","Surname","Telephone","ConfirmEmail","SelectedUserTypeId","SelectedUserTypeName","SelectedGasAccounts","SelectedPowerAccounts","SelectedBasketIds","userExists","preload","users","searchString","updateUserRequestParams","userUpdated","UserIdEdit","IsLocked","targetUserId","userIdEdit","PreloadData","requestingUserId","Admin","adminService","manageUserTypes","userPowerAccounts","powerAccountsCount","userAddedEmailSent","selectedUserIdForManage","UserList","selectedUsers","_","user","UserTypeId","UserTypes","Standard","ExternalAdmin","TPI","getManageUserTypes","addUser","getUsers","searchUsers","uppercaseSearch","toUpperCase","EmailAddress","LastName","updateUser","removeAccountGas_Update","updateAccountGas_Update","addAccountGas_Update","removeAccountPower_Update","updateAccountPower_Update","addBaskets_Update","removeBaskets_Update","addAccountPower_Update","UpdateUserPreload","UpdateUserPreloadBaskets","Vuex","Store","state","mutations","actions","clearAllStates","Auth","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","staticStyle","_e","InvoiceAndMeterPanelOn","$route","_v","domProps","_s","isStaticPage","_t","staticRenderFns","FlexFillLayout","Component","component","showImpersonatedBanner","on","$event","preventDefault","handleImpersonateUser","arguments","handleCancelImpersonationModeClick","callback","$$v","expression","scopedSlots","_u","fn","ref","expanded","handleImpersonateModeClick","cleanName","handleLogout","namespace","HeaderSection","username","signOut","$router","$store","loadImpersonatedUser","success","reload","catch","reason","cancelImpersonationMode","getUserEmail","checkForImpersonatedUser","loadImpersonatedUserViaUserId","Getter","getIsNavDisabled","class","locationHref","onOver","onLeave","elementId","componentText","slot","DropdownHover","$refs","dropdown","visible","Prop","NavMenu","helpHref","processing","fetchPortalAuthTokenUrl","setAdminLinks","submitIsActiveDM","getSelectedSiteRefNumber","watchGasAgreementSelection","watch","newValue","oldValue","portalUrl","ele","querySelector","classList","components","loading","shadedOut","getIsProductSelectionDisabled","getSelectedProduct","setSelectedProduct","disableTooltips","enableTooltips","getIsAccountSelectionDisabled","getUserAccounts","isFilterable","onSearch","onSetSelectedAccount","onOpen","onClose","proxy","copyToClipboard","getIsMprnSelectionDisabled","getSelectedMprn","getMprns","onSetSelectedMPRN","getIsAgreementSelectionDisabled","getUserDeliveryAgreementsLinkedToMPRN","AgreementCategory","setSelectedDeliveryAgreementAndMprn","GasAccountSelector","disableTooltip","observer","unsecuredCopyToClipboard","textArea","body","focus","select","execCommand","$root","$emit","setDeliveryAgreementsByAccountNumber","getUserDeliveryAgreements","getDistinctMPRNS","fetchAgreementIdToSelect","fetchDeliveryAgreementsWithLabelsAfterMPRNSelection","fetchAgreementIdToSelectAfterMPRNSelection","getUserAccountsCount","$nextTick","load","observe","disconnect","search","resetPageNumber","fetchUserAccountsAfterSearch","trim","IntersectionObserver","entry","isIntersecting","ul","offsetParent","scrollTop","nextPage","loadUserGasSelections","watchAccountSelection","resetJourneyNode","copyType","TextToCopy","getSelectedDeliveryAgreementNumber","isSecureContext","navigator","clipboard","writeText","notifyTextCopied","ToastService","ErrorMessageDefaults","SuccessMessageDefaults","bodyClass","headerClass","noCloseButton","getSelectedGroupAccount","onSetSelectedGroupAccount","getIsMpanSelectionDisabled","getUserPowerDistinctMpans","getSelectedMpan","onSetSelectedMpan","getUserPowerSitesLinkedToMpan","setSelectedPowerSite","PowerAccountSelector","setSelectedGroupAccount","fetchPowerSitesForGroupAccount","onMpanSelection","loadUserPowerSelections","alert","AccountSelector","loadUserProductSelections","loadUserProducts","ClipLoader","FooterSection","BasePage","fetchLatestBannerContent","existingBannerContent","getLatestBannerContent","getInvoiceAndMeterReadPanelFeatureToggleStatusAction","getInvoiceAndMeterReadPanelFeatureToggleStatus","stickybits","AlertBanner","toastErrorParams","BootstrapVue","BootstrapVueIcons","vSelect","VeeValidate","inject","fieldsBagName","errorBagName","VueMoment","VueBrowserUpdate","options","container","bannershow","handleAcceptAllCookies","handleDeclineAnalyticCookies","transitionName","handleCustomiseCookies","cancel","ok","acceptedAnalytics","showCookieSettings","CookiePopup","essentialCookies","bvModalEvent","VeeValidate_Custom","DMConsumptionValdiationMessages","custom","dmConsumptionReportDateFrom","required","dmConsumptionReportDateTo","AMRConsumptionValidationMessages","amrConsumptionReportDateFrom","amrConsumptionReportDateTo","BulkInvoicesValidationMessages","customInvoiceReportDateFrom","customInvoiceReportDateTo","$validator","localize","App","dismissed","cookiesConsenseService","VeeValidateCustom","getConsentStatus","$bvModal","show","setConsentStatus","setAnalytics","loadMenuItems","extend","getMessage","field","val","validate","otherValue","isAfter","hasTarget","currentDate","dayDifference","diff","foundFilename","ext","toLowerCase","confirmEmail","endsWith","selectedDate","setupValidationMessages","handleCookiesConsense","router","addRoute","path","meta","requiresAuth","webpackContext","req","webpackContextResolve","PrettyCheckbox","GtagHelper","eventName","$gtag","NProgress","start","done","VueCookies","httpsProtocal","protocol","WizardBaseStep","switchStatus","visibilityStatus","$on","collapseId","isJustShown","String","default","Boolean","CenteredLayout","step","handleLogin","directives","rawName","$set","veeErrors","has","handleAcceptTermOfUse","handleDeclineTermOfUse","acceptBtnDisabled","TermsOfUseModal","scrollMaxHeightPosition","srcElement","scrollHeight","offsetHeight","currentScrollPosition","tolerance","bvEvent","modalId","element","getElementById","addEventListener","onScroll","passive","LoginTab","Password","getRememberMeAccountEmail","validateAll","isValid","Event","$ga","handleOnTabClicked","handleRegistration","isCustomerSelected","toggleIfCustomerSelected","isTpiSelected","toggleIfTpiSelected","isInMultipleRequestMode","html","modifiers","active","isSFActive","loadSefeFile","sefeFile","removeSefeFile","isActive","loadFile","loaFile","removeSelectedFile","minimumAccessibleUntilDate","onVerify","onExpired","readTermOfUse","composing","loadingRegister","loadingAddRequest","handleAddNewRequestClicked","savedRegistrations","savedRegistrationsFields","AccountNumberFinanceReference","formatAccountNumber","row","handleDeleteClicked","Actions","handleRegisterAllTpis","handleConfirmOk","handleConfirmCancel","RegisterTab","showEmailSentMessage","Firstname","Lastname","CompanyName","LOAFile","LetterOfAgreementFileName","AccessibleUntil","CaptchaToken","RegistrationTypeCustomer","RegistrationType","SessionGuid","LOA","SefeFileData","SefeFileName","arg","resetForm","validExt","reader","FileReader","loaContent","readAsDataURL","sefeContent","registrationId","registration","TpiRegistrationDetailId","tpiResponse","newRegistrationDetails","reset","Recaptcha","handleSubmit","ForgottenTab","Index","showResetPasswordTab","handleReset","min","regex","showPassword","toggleShowPassword","showConfirmPassword","confirmPassword","toggleShowConfirmPassword","ResetPasswordTab","passwordChanged","Token","token","showInputForm","ResetPassword","beforeRouteEnter","to","from","next","encodeURI","verifyResetToken","showPanelIfHH","noCloseOnEsc","noCloseOnBackdrop","componentLabels","isUnavailable","AccountBalanceInformation","totalBalanceLabel","_f","accountBalance","overdueBalanceLabel","overdueBalance","ctaButtonHref","ctaButtonLabel","componentTitle","BasePanel","defaultBodyClass","innerBodyClass","itemLabel","style","itemValue","ItemLabel","indentationValue","Number","responsiveClass","MainItemLabel","CtaButton","MyBalancePanel","DueDateLabel","unwatch","siteRefNumber","getSelectedContractId","immediate","filters","formatAmount","formattedAmount","setBalanceStatus","setBadgeStatus","invoiceAmountLabel","consolidatedInvoiceTotal","onDownloadClick","dueDateLabel","invoiceDate","getSelectedDeliveryAgreement","ContractCurrentlyPending","LatestInvoicePanel","showDownloadProgressBar","latestInvoiceLinkHref","latestInvoiceLinkTitle","fileProcess","getDownloadFileData","msSaveBlob","fileURL","URL","createObjectURL","fileLink","click","MeterReadings","meterReading","readingLabel","meterReadingSource","meterReadingDate","earliestMeterReadingDate","allowMeterReadings","addMeterReadingUrl","LatestGasReadPanel","ContractDetails","contractTypeLabel","productType","isOutOfContract","outOfContractTooltip","isFlexProduct","baseRateLabel","baseRate","baseRateTooltip","UnitRateLabel","unitRate","standingChargeLabel","standingCharge","contractStartDateLabel","ContractValueIfStartOfContract","contractEndDateLabel","ContractValueIfEndOfContract","contractedAqLabel","contractedAq","contractedAqTooltip","rollingAqLabel","rollingAq","rollingAqTooltip","ContractDetailPanel","isEndOfContract","contractDate","formatStandingCharge","componentHeaderLabel","componentHrefLink","componentHrefLinkLabel","SimplePanel","Dashboard","terms","DateAccepted","now","AcceptsTermsOfUse","getUserAccountsLoaded","hasAcceptedTermsOfUse","getHasAcceptedTermsOfUse","watchIsHalfHourly","CookiePolicy","TermsOfUse","FaqsPage","maxProgress","counter","next_step_id","onSelectedContentOption","findJourney","isExactActive","setVariant","onSelectedOptionChanged","selectedOption","WizardStepContentSelector","isAdmin","_m","Save","BannerManager","savedSuccessfully","sameContent","saveBannerContent","setLatestContent","ContentManager","initJourneyNode","root","getRootJourney","rv","canViewContentMenu","origin","Watch","deep","VueRouter","routes","base","process","beforeResolve","beforeEach","matched","some","record","afterEach","height","width","borderWidth","borderStyle","borderColor","color","borderRadius","radius","background","register","ready","registered","cached","updatefound","updated","offline","global","jQuery","library","faTachographDigital","faBook","faFileContract","faQuestionCircle","faTools","faFileAlt","faArrowUpRightFromSquare","faChevronDown","FontAwesomeIcon","contains","Element","node","productionTip","h","$mount","getAnalyticsCookie","getAnalytics","gaEnabled","getGA","removeAnalytics","VueGtag","anonymize_ip","useDebugger","enabled","VueGtm","defer","compatibility","nonce","debug","loadScript","vueRouter","trackOnNextTick","num","exponent","numArray","split","numberWithCommas","parts","join","precision","Math","round","toFixed","decimalPlaces","loginDetails","password","EmailRequestSent","oldPortalDomain","OldPortalDomain","rand","floor","random","oldPortalLogoutUrl","logoutSpan","innerHTML","currentUserId","IdentityUser","AuthTokenUrl","ResettedPassword"],"mappings":"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","file":"js/app.11bf627f.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-04711e91\":\"16d4aaa6\",\"chunk-07c73829\":\"fd7f14c5\",\"chunk-0acaa2c5\":\"4ebc2b99\",\"chunk-1057a2c6\":\"e749b756\",\"chunk-51fa1abe\":\"21c18f95\",\"chunk-0a18ccc9\":\"e2a89970\",\"chunk-2d0bdd5a\":\"906f01a7\",\"chunk-2d0c0e72\":\"f68efd4c\",\"chunk-2d0e5e97\":\"f7850885\",\"chunk-2d207f75\":\"904827db\",\"chunk-2d21eea8\":\"467cd1cd\",\"chunk-364bde25\":\"09e53c06\",\"chunk-8c352438\":\"dea4e3cb\",\"chunk-9c10d616\":\"88ed8b4d\",\"chunk-a951f4b0\":\"1739dafa\",\"chunk-b68b9412\":\"a251bb9a\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-04711e91\":1,\"chunk-07c73829\":1,\"chunk-0acaa2c5\":1,\"chunk-1057a2c6\":1,\"chunk-51fa1abe\":1,\"chunk-0a18ccc9\":1,\"chunk-364bde25\":1,\"chunk-8c352438\":1,\"chunk-9c10d616\":1,\"chunk-b68b9412\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-04711e91\":\"84c83886\",\"chunk-07c73829\":\"a4e0d323\",\"chunk-0acaa2c5\":\"d02ebada\",\"chunk-1057a2c6\":\"e7f818d4\",\"chunk-51fa1abe\":\"2b15e637\",\"chunk-0a18ccc9\":\"0dc0aec5\",\"chunk-2d0bdd5a\":\"31d6cfe0\",\"chunk-2d0c0e72\":\"31d6cfe0\",\"chunk-2d0e5e97\":\"31d6cfe0\",\"chunk-2d207f75\":\"31d6cfe0\",\"chunk-2d21eea8\":\"31d6cfe0\",\"chunk-364bde25\":\"02d17c53\",\"chunk-8c352438\":\"736a6f28\",\"chunk-9c10d616\":\"828f143a\",\"chunk-a951f4b0\":\"31d6cfe0\",\"chunk-b68b9412\":\"31ae1999\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","\r\n\r\nexport default class CookiesConsenseService {\r\n\r\n public cookies: any;\r\n\r\n constructor(cookies: any) {\r\n this.cookies = cookies;\r\n }\r\n\r\n public setConsentStatus(): void { \r\n\r\n this.cookies.set(\"cookiesconsent_status\", true, \"365d\");\r\n }\r\n public setAnalytics(): void { \r\n\r\n this.cookies.set(\"cookiesAnalytics\", true, \"365d\");\r\n }\r\n\r\n public removeAnalytics(): void {\r\n //PR .sefe-energy.co.uk from my.sefe-energy.co.uk\r\n //PP .gazpromuk.intra from myportalgazprompp.gazpromuk.intra\r\n const hostname = window.location.hostname.toString();\r\n const domainname = hostname.substring(hostname.indexOf(\".\"));\r\n document.cookie = \"_ga_VE9WS73ERP=; domain=\" + domainname + \"; expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n }\r\n\r\n public getConsentStatus(): boolean {\r\n const status = this.cookies.get(\"cookiesconsent_status\");\r\n\r\n if (status != null || status != undefined) {\r\n return status as boolean;\r\n }\r\n return false;\r\n }\r\n\r\n public getAnalytics(): boolean {\r\n const status = this.cookies.get(\"cookiesAnalytics\");\r\n\r\n if (status != null || status != undefined) {\r\n return status as boolean;\r\n }\r\n return false;\r\n }\r\n\r\n public getGA(): string {\r\n const status = this.cookies.get(\"_ga_VE9WS73ERP\");\r\n\r\n if (status != null || status != undefined) {\r\n return status as string;\r\n }\r\n return \"\";\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/sefe-logo-white.870bb48b.png\";","module.exports = __webpack_public_path__ + \"img/money_icon_gazprom_blue.b097007c.svg\";","import Vue from 'vue';\r\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport AuthService from '@/services/authService'\r\nimport { ILoginDetails } from \"@/interfaces/loginDetails\"\r\nimport { IResetPasswordDetails } from \"@/interfaces/resetPasswordDetails\"\r\nimport { IRegistrationDetails } from '@/interfaces/registrationDetails';\r\nimport { ILoginRequestResponse } from '@/interfaces/loginRequestResponse';\r\nimport { IChangePassword } from '@/interfaces/changePassword';\r\nimport { Claims } from '@/utilities/Claims';\r\n\r\n@Module({ namespaced: true })\r\nexport default class Account extends VuexModule {\r\n\r\n public authService: AuthService | null = new AuthService(Vue.$cookies);\r\n public userAccount: ILoginRequestResponse | null = Vue.$cookies.get(\"account\") as ILoginRequestResponse;\r\n public impersonatedUserAccount: ILoginRequestResponse | null = Vue.$cookies.get(\"impersonatedAccount\") as ILoginRequestResponse;\r\n public rememberMeAccountEmail = Vue.$cookies.get(\"accountEmail\");\r\n\r\n public status = this.userAccount ? { loggedIn: true } : { loggedIn: false };\r\n\r\n private portalAuthTokenUrl: string | null = null;\r\n\r\n private impersonatedUserEmail: string | null = null;\r\n private impersonatedUserId: string | null = null;\r\n private isNavDisabled = false;\r\n\r\n get getUserAccount(): ILoginRequestResponse | null {\r\n\r\n if (this.isInImpersonationMode) {\r\n return this.impersonatedUserAccount;\r\n } else {\r\n return this.userAccount;\r\n }\r\n }\r\n\r\n get getUserId(): string {\r\n\r\n if (this.impersonatedUserAccount != null)\r\n {\r\n return this.impersonatedUserAccount.identityUser.Id;\r\n }\r\n\r\n return (this.userAccount as ILoginRequestResponse).identityUser.Id;\r\n }\r\n\r\n get isInImpersonationMode(): boolean {\r\n\r\n if (this.impersonatedUserAccount != null)\r\n {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get getUserEmail(): string {\r\n return (this.userAccount as ILoginRequestResponse).identityUser.Email;\r\n }\r\n\r\n get getImpersonatedUserEmail(): string | null {\r\n return this.impersonatedUserEmail;\r\n }\r\n\r\n get getRememberMeAccountEmail(): string {\r\n return this.rememberMeAccountEmail ? this.rememberMeAccountEmail : \"\";\r\n }\r\n\r\n get isGazpromAdmin(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canAccessAnyRecord);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get canCreateUser(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == 'CanCreateUser');\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get canManageInternalUser(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canManageInternalUser);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get canManageExternalUser(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canManageExternalUser);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get canManageStandardUser(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canManageStandardUser);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get getPortalAuthTokenUrl(): string | null {\r\n\r\n return this.portalAuthTokenUrl;\r\n }\r\n\r\n get canViewAdminMenu(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canViewAdminMenu);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n get canViewContentMenu(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == 'CanViewContentMenu');\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n // this is the claim for can manage COG users\r\n get canAccessAllBaskets(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canAccessAllBaskets);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n get canDownloadCogReports(): boolean {\r\n\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == Claims.canDownloadCogReports);\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n\r\n if (this.isGazpromAdmin) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get isLoggedIn(): boolean {\r\n return this.status.loggedIn;\r\n }\r\n\r\n get getIsNavDisabled(): boolean {\r\n return this.isNavDisabled;\r\n }\r\n\r\n get canViewTPIRequestMenu(): boolean {\r\n const claim = (this.getUserAccount as ILoginRequestResponse).identityUser.Claims.filter(claim => claim.Type == 'CanRequestAccessToAdditionalAccounts');\r\n if (claim.length > 0) {\r\n return (claim[0].Value.toString() == \"true\");\r\n }\r\n return false;\r\n }\r\n\r\n @Mutation\r\n public loginSuccess(account: any): void {\r\n this.status.loggedIn = true;\r\n this.userAccount = account;\r\n }\r\n\r\n @Mutation\r\n public rememberMe(): void {\r\n this.rememberMeAccountEmail = (this.userAccount as ILoginRequestResponse).identityUser.Email;\r\n Vue.$cookies.set(\"accountEmail\", (this.userAccount as ILoginRequestResponse).identityUser.Email);\r\n }\r\n\r\n @Mutation\r\n public dontRememberMe(): void {\r\n this.rememberMeAccountEmail = \"\";\r\n Vue.$cookies.remove(\"accountEmail\");\r\n }\r\n\r\n @Mutation\r\n public loginFailure(): void {\r\n this.status.loggedIn = false;\r\n this.userAccount = null as any;\r\n this.impersonatedUserAccount = null as any;\r\n }\r\n\r\n @Mutation\r\n public logout(): void {\r\n this.status.loggedIn = false;\r\n this.userAccount = null as any;\r\n this.impersonatedUserAccount = null as any;\r\n }\r\n\r\n @Mutation\r\n public clearState(): void {\r\n this.userAccount = null;\r\n this.impersonatedUserAccount = null;\r\n this.rememberMeAccountEmail = null;\r\n }\r\n\r\n @Mutation\r\n private setPortalAuthTokenUrl(data: string) {\r\n this.portalAuthTokenUrl = data;\r\n }\r\n\r\n @Mutation\r\n private setImpersonatedUserId(data: string | null) {\r\n this.impersonatedUserId = data;\r\n }\r\n\r\n @Mutation\r\n private setImpersonatedUserEmail(data: string | null) {\r\n this.impersonatedUserEmail = data;\r\n }\r\n\r\n @Mutation\r\n private setNavDisabled(disabled: boolean) {\r\n this.isNavDisabled = disabled;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async cancelImpersonationMode(): Promise {\r\n Vue.$cookies.remove(\"impersonatedAccount\");\r\n this.context.commit('setImpersonatedUserEmail', null);\r\n this.context.commit('setImpersonatedUserId', null);\r\n }\r\n\r\n @Action({ rawError: true })\r\n login(data: ILoginDetails): Promise {\r\n return (this.authService as AuthService).login(data)\r\n .then(account => {\r\n const result: ILoginRequestResponse = JSON.parse((account as any).content);\r\n this.context.commit('loginSuccess', result);\r\n if (data.RememberMe) {\r\n this.context.commit('rememberMe')\r\n } else {\r\n this.context.commit('dontRememberMe');\r\n }\r\n return Promise.resolve(result);\r\n },\r\n error => {\r\n this.context.commit('loginFailure');\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return Promise.reject(message);\r\n\r\n });\r\n }\r\n\r\n @Action\r\n signOut(): void {\r\n\r\n const userId = this.getUserId;\r\n\r\n (this.authService as AuthService).logout(userId);\r\n this.context.commit('logout');\r\n }\r\n\r\n @Action({ rawError: true })\r\n sendPasswordResetLink(email: string): any {\r\n return (this.authService as AuthService).sendPasswordResetLink(email)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchPortalAuthTokenUrl(params: { userId: string }): Promise {\r\n const authTokenUrl = await this.authService?.getPortalAuthTokenUrl(params.userId);\r\n this.context.commit('setPortalAuthTokenUrl', authTokenUrl);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async loadImpersonatedUser(params: { userId, impersonatedUserEmail: string }): Promise {\r\n const impersonatedUserId = await this.authService?.getImpersonatedUserId(params.userId, params.impersonatedUserEmail);\r\n\r\n if (impersonatedUserId == null) {\r\n return false;\r\n }\r\n\r\n this.context.commit('setImpersonatedUserId', impersonatedUserId);\r\n this.context.commit('setImpersonatedUserEmail', params.impersonatedUserEmail);\r\n\r\n return true;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async loadImpersonatedUserViaUserId(params: { userId, impersonatedUserId: string }): Promise {\r\n const impersonatedUserEmail = await this.authService?.getImpersonatedUserEmail(params.userId, params.impersonatedUserId);\r\n\r\n this.context.commit('setImpersonatedUserEmail', impersonatedUserEmail);\r\n this.context.commit('setImpersonatedUserId', params.impersonatedUserId);\r\n }\r\n\r\n @Action({ rawError: true })\r\n resetPassword(resetPasswordDetails: IResetPasswordDetails): Promise {\r\n return (this.authService as AuthService).resetPassword(resetPasswordDetails)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n }\r\n\r\n @Action({ rawError: true })\r\n changePassword(changePassword: IChangePassword): Promise {\r\n return (this.authService as AuthService).changePassword(changePassword)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n }\r\n\r\n @Action({ rawError: true })\r\n requestAccess(requestDetails: IRegistrationDetails): Promise {\r\n return (this.authService as AuthService).requestTpiAccess(requestDetails)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n }\r\n\r\n @Action({ rawError: true })\r\n registerAccount(registrationDetails: IRegistrationDetails): Promise {\r\n if (registrationDetails.RegistrationTypeTpi) {\r\n return (this.authService as AuthService).registerTpiAccount(registrationDetails)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n\r\n } else {\r\n return (this.authService as AuthService).registerAccount(registrationDetails)\r\n .then(response => {\r\n return response;\r\n },\r\n error => {\r\n const message =\r\n (error.response && error.response.data && error.response.data.message) ?\r\n error.message :\r\n error.toString();\r\n return message;\r\n });\r\n }\r\n }\r\n}","import Axios from \"@/services/axiosService\";\r\n\r\nconst CONTROLLER = \"/panel/\";\r\n\r\nexport default class PanelService {\r\n\r\n public async getBalanceInformation(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}BalanceInformation`, { params: { userId: data.UserId, accountNumber: data.AccountNumber, siteRefNum: data.SiteRefNumber, contractId: data.ContractId, isLargeUser: data.isLargeUser } });\r\n return response.data;\r\n }\r\n\r\n public async getAccountDetails(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}accountDetails`, { params: { userId: data.UserId, accountNumber: data.AccountNumber, siteRefNum: data.SiteRefNumber, contractId: data.ContractId } });\r\n return response.data;\r\n }\r\n\r\n public async getInvoices(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}invoices`, { params: { userId: data.UserId, accountNumber: data.AccountNumber, siteRefNum: data.SiteRefNumber, contractId: data.ContractId, isLargeUser: data.isLargeUser } });\r\n return response.data;\r\n }\r\n\r\n public async getMeterReadings(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}meterReadings`, { params: { userId: data.UserId, accountNumber: data.AccountNumber, siteRefNum: data.SiteRefNumber, contractId: data.ContractId, isLargeUser: data.isLargeUser } });\r\n return response.data;\r\n }\r\n\r\n public async getContractDetails(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}contractDetails`, { params: { userId: data.UserId, accountNumber: data.AccountNumber, siteRefNum: data.SiteRefNumber, contractId: data.ContractId, isLargeUser: data.isLargeUser } });\r\n \r\n return response.data;\r\n }\r\n\r\n}","import { VuexModule, Module, Action, Mutation } from 'vuex-module-decorators';\r\nimport PanelService from '@/services/panelService';\r\nimport { IAccountBalanceInformation } from '../../interfaces/accountBalanceInformation';\r\nimport { IInvoice } from '../../interfaces/invoice';\r\nimport { IMeterReading } from '../../interfaces/meterReading';\r\nimport { IContractDetails } from '../../interfaces/contractDetails';\r\n\r\n@Module({ namespaced: true })\r\nexport default class Panel extends VuexModule {\r\n private panelService = new PanelService();\r\n\r\n private accountsBalanceInformation: IAccountBalanceInformation | null = null;\r\n private accountDetails = null;\r\n private invoices: IInvoice | null = null;\r\n private meterReadings: IMeterReading | null = null;\r\n private contractDetails: IContractDetails | null = null;\r\n\r\n // Getters\r\n get AccountBalanceInformation(): IAccountBalanceInformation | null {\r\n return this.accountsBalanceInformation;\r\n }\r\n\r\n get AccountDetails(): any {\r\n return this.accountDetails;\r\n }\r\n\r\n get Invoices(): IInvoice | null {\r\n return this.invoices;\r\n }\r\n\r\n get MeterReadings(): IMeterReading | null {\r\n return this.meterReadings;\r\n }\r\n\r\n get ContractDetails(): IContractDetails | null {\r\n return this.contractDetails;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n private setAccountBalanceInformation(balanceInfo: any) {\r\n \r\n this.accountsBalanceInformation = balanceInfo;\r\n\r\n if (this.accountsBalanceInformation != null && balanceInfo?.isPendingAgreement === undefined) {\r\n this.accountsBalanceInformation.isPendingAgreement = false;\r\n }\r\n }\r\n\r\n @Mutation\r\n private setAccountDetails(accountDetails: any) {\r\n this.accountDetails = accountDetails;\r\n }\r\n\r\n @Mutation\r\n private setInvoices(invoices: any) {\r\n this.invoices = invoices;\r\n }\r\n\r\n @Mutation\r\n private setMeterReadings(meterReadings: any) {\r\n this.meterReadings = meterReadings;\r\n }\r\n\r\n @Mutation\r\n private setContractDetails(contractDetails: any) {\r\n this.contractDetails = contractDetails;\r\n }\r\n\r\n @Mutation\r\n public clearState(): void {\r\n this.accountsBalanceInformation = null;\r\n this.accountDetails = null;\r\n this.invoices = null;\r\n this.meterReadings = null;\r\n this.contractDetails = null;\r\n }\r\n\r\n //Actions\r\n @Action({ rawError: true })\r\n public async getBalanceInformation(userData: any): Promise {\r\n const result = await this.panelService.getBalanceInformation(userData);\r\n this.context.commit('setAccountBalanceInformation', result);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getAccountDetails(userData: any): Promise {\r\n const result = await this.panelService.getAccountDetails(userData);\r\n this.context.commit('setAccountDetails', result);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getInvoices(userData: any): Promise {\r\n const result = await this.panelService.getInvoices(userData);\r\n this.context.commit('setInvoices', result);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getMeterReadings(userData: any): Promise {\r\n const result = await this.panelService.getMeterReadings(userData);\r\n this.context.commit('setMeterReadings', result);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getContractDetails(userData: any): Promise {\r\n const result = await this.panelService.getContractDetails(userData);\r\n this.context.commit('setContractDetails', result);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport { IUserProductsViewModel } from \"@/interfaces/userProductsViewModel\"\r\n\r\nconst CONTROLLER = \"/products/\";\r\n\r\nexport default class AccountsService {\r\n public async getUserProducts(userId: string): Promise {\r\n const response = await axios.get(`${CONTROLLER}getUserProducts`, { params: { userId: userId } });\r\n const result = JSON.parse((response as any).content) as IUserProductsViewModel;\r\n\r\n return result;\r\n }\r\n}","import Vue from 'vue';\r\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport ProductsService from '@/services/productsService';\r\n\r\nimport { IUserProductSelections } from \"@/interfaces/userProductSelections\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class Products extends VuexModule {\r\n private productsService = new ProductsService();\r\n private readonly cookieKey = \"userProductSelections\";\r\n\r\n // State\r\n private userProducts = Array();\r\n private userProductSelection = {\r\n UserId: null,\r\n SelectedProduct: null\r\n } as IUserProductSelections;\r\n private isProductSelectionDisabled = false;\r\n\r\n // Getters\r\n get getUserProducts(): Array {\r\n return this.userProducts;\r\n }\r\n\r\n get getSelectedProduct(): (string | null) {\r\n return this.userProductSelection.SelectedProduct;\r\n }\r\n\r\n get getIsProductSelectionDisabled(): boolean {\r\n return this.isProductSelectionDisabled;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private setUserProducts(userProducts: Array) {\r\n this.userProducts = userProducts;\r\n }\r\n\r\n @Mutation\r\n private loadUserProductSelectionFromCookies(userId: string) {\r\n const userSelection = Vue.$cookies.get(this.cookieKey) as IUserProductSelections;\r\n const userIdInCookies = userSelection?.UserId;\r\n\r\n if (userId === userIdInCookies) {\r\n this.userProductSelection = userSelection;\r\n }\r\n\r\n this.userProductSelection.UserId = userId;\r\n Vue.$cookies.set(this.cookieKey, this.userProductSelection);\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n this.userProducts = Array();\r\n this.userProductSelection = {\r\n UserId: null,\r\n SelectedProduct: null\r\n }\r\n }\r\n\r\n @Mutation\r\n public setSelectedProduct(product: string) {\r\n this.userProductSelection.SelectedProduct = product;\r\n Vue.$cookies.set(this.cookieKey, this.userProductSelection);\r\n }\r\n\r\n @Mutation\r\n public setProductSelectionDisabled(disabled: boolean) {\r\n this.isProductSelectionDisabled = disabled;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async loadUserProducts(userId: string): Promise {\r\n const userProducts = await this.productsService.getUserProducts(userId);\r\n\r\n const selectedProduct = this.userProductSelection.SelectedProduct ?? userProducts.SelectedProduct;\r\n\r\n this.context.commit('setUserProducts', userProducts.UserProducts);\r\n this.context.commit('setSelectedProduct', selectedProduct);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public loadUserProductSelections(userId: string): void {\r\n this.context.commit('loadUserProductSelectionFromCookies', userId);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport { IGasAccountsViewModel } from \"@/interfaces/gasAccountsViewModel\"\r\nimport { IDeliveryAgreement } from \"@/interfaces/deliveryAgreement\";\r\n\r\nconst API_URL = \"/GasAccounts/\";\r\nexport default class GasAccountsService {\r\n public async fetchUserAccountsCount(userId: string): Promise {\r\n const response = await axios.get(`${API_URL}GetUserAccountsCount`, { params: { userId: userId } });\r\n const result = JSON.parse((response as any).content) as Promise;\r\n\r\n return result;\r\n }\r\n\r\n public async fetchUserAccounts(userId: string, size: number, accountNumberQuery: (string | null), isLargeUser: boolean): Promise {\r\n const response = await axios.get(`${API_URL}GetUserAccounts`, { params: { userId: userId, size: size, accountNumberQuery: accountNumberQuery, isLargeUser: isLargeUser } });\r\n const result = JSON.parse((response as any).content) as IGasAccountsViewModel;\r\n return result;\r\n }\r\n\r\n public async searchUserAccounts(userId: string, query: string, page: number, size: number, isLargeUser: boolean): Promise {\r\n const response = await axios.get(`${API_URL}SearchUserAccounts`, { params: { userId: userId, query: query, page: page, size: size, isLargeUser: isLargeUser } });\r\n const result = JSON.parse((response as any).content) as IGasAccountsViewModel;\r\n\r\n return result;\r\n }\r\n\r\n public async fetchDeliveryAgreementsForAccount(userId: string, accountNumber: string, isLargeUser: boolean): Promise<[IDeliveryAgreement[], string, Array, string] | null> {\r\n const response = await axios.get(`${API_URL}GetDeliveryAgreementsForAccount`, { params: { userId: userId, accountNumber: accountNumber, isLargeUser: isLargeUser } });\r\n\r\n if (!response) {\r\n return null;\r\n }\r\n\r\n const result = JSON.parse((response as any).content);\r\n\r\n const agreements = result.Agreements as IDeliveryAgreement[];\r\n const selectedAgreementId = result.SelectedAgreementId as string;\r\n const distinctMPRNS = result.DistinctMPRNS as Array;\r\n const selectedMPRN = result.SelectedMPRN as string;\r\n\r\n return [agreements, selectedAgreementId, distinctMPRNS, selectedMPRN];\r\n }\r\n\r\n public async addCategoryLabelsToAgreements(agreements: Array,userId :string ): Promise {\r\n const response = await axios.post(`${API_URL}GetAgreementsWithCategoryLabels`, { agreements, userId: userId } );\r\n\r\n const result = JSON.parse((response as any).content) as IDeliveryAgreement[];\r\n\r\n return result;\r\n }\r\n\r\n public async getAgreementIdToSelect(agreements: Array,userId:string): Promise<[string, string]> {\r\n const response = await axios.post(`${API_URL}GetAgreementIdToSelect`, { agreements, userId: userId });\r\n\r\n const result = JSON.parse((response as any).content);\r\n\r\n const agreement = result.agreement as string;\r\n const mprn = result.mprn as string;\r\n\r\n return [agreement, mprn];\r\n }\r\n}","import Vue from 'vue';\r\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport GasAccountsService from '@/services/gasAccountsService';\r\n\r\nimport { IUserAccount } from \"@/interfaces/userAccount\";\r\nimport { IDeliveryAgreement } from \"@/interfaces/deliveryAgreement\";\r\nimport { IUserGasSelections } from \"@/interfaces/userGasSelections\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class GasAccounts extends VuexModule {\r\n private gasAccountsService = new GasAccountsService();\r\n private readonly cookieKey = \"userGasSelections\";\r\n\r\n // State\r\n private page = 1;\r\n private pageSize = 200;\r\n private userAccountsCount = -1;\r\n private accountsCountForCurrentSearch = -1;\r\n private userAccounts = Array();\r\n private userDeliveryAgreements = Array();\r\n private userDeliveryAgreementsLinkedToMPRN = Array();\r\n private distinctMPRNS = Array();\r\n private userAccountsLoaded = false;\r\n\r\n private isMprnSelectionDisabled = false;\r\n private isAgreementSelectionDisabled = false;\r\n private isAccountSelectionDisabled = false;\r\n\r\n private userGasSelections = {\r\n UserId: null,\r\n SelectedGasAccount: null,\r\n SelectedAgreementId: null,\r\n SelectedGasDeliveryAgreement: null,\r\n SelectedGasSiteRefNumber: null,\r\n SelectedGasMprn: null,\r\n SelectedGasContractId: null\r\n } as IUserGasSelections;\r\n\r\n //Getters\r\n get isSingleSite(): boolean {\r\n const result = this.userDeliveryAgreements.filter((i) => i.ContractId > 0);\r\n if (result == null || result == undefined || result.length == 0 ) {\r\n return false;\r\n }\r\n const mprn = (result[0] as IDeliveryAgreement).MeterPointReferenceNumber;\r\n return result.every((i) => i.MeterPointReferenceNumber == mprn);\r\n }\r\n\r\n get isSass(): boolean {\r\n return this.userAccountsCount == 1 && this.isSingleSite;\r\n }\r\n\r\n get isSams(): boolean {\r\n return this.userAccountsCount == 1 && !this.isSingleSite;\r\n }\r\n\r\n get getIsMorePages(): boolean {\r\n return (this.page * this.pageSize) < this.accountsCountForCurrentSearch;\r\n }\r\n \r\n get getUserAccountsCount(): number {\r\n\r\n // Not sure why this was added\r\n // Commenting out as it slows down getting count of accounts for users which have less than 50 accounts\r\n //if (!this.isLargeUser) { // use getUserAccounts as is more accurate\r\n // return this.getUserAccounts.length ?? 0;\r\n //}\r\n\r\n return this.userAccountsCount;\r\n }\r\n\r\n get getUserAccounts(): Array {\r\n return this.userAccounts;\r\n }\r\n\r\n get getUserAccountsLoaded(): boolean {\r\n return this.userAccountsLoaded;\r\n }\r\n\r\n get getUserDeliveryAgreements(): Array {\r\n return this.userDeliveryAgreements;\r\n }\r\n\r\n get getUserDeliveryAgreementsLinkedToMPRN(): Array {\r\n return this.userDeliveryAgreementsLinkedToMPRN;\r\n }\r\n\r\n get getDistinctMPRNS(): Array {\r\n return this.distinctMPRNS;\r\n }\r\n\r\n get getSelectedAccount(): string | null {\r\n return this.userGasSelections.SelectedGasAccount;\r\n }\r\n\r\n get getSelectedDeliveryAgreement(): IDeliveryAgreement | null {\r\n return this.userDeliveryAgreements.find(x => x.DeliveryAgreementId === this.getSelectedDeliveryAgreementId) ?? null;\r\n }\r\n\r\n get getSelectedDeliveryAgreementId(): string | null {\r\n return this.userGasSelections.SelectedAgreementId;\r\n }\r\n\r\n get getSelectedDeliveryAgreementNumber(): string | null {\r\n return this.userGasSelections.SelectedGasDeliveryAgreement;\r\n }\r\n\r\n get getSelectedSiteRefNumber(): string | null {\r\n return this.userGasSelections.SelectedGasSiteRefNumber;\r\n }\r\n\r\n get getSelectedMprn(): string | null {\r\n return this.userGasSelections.SelectedGasMprn;\r\n }\r\n\r\n get getSelectedContractId(): number | null {\r\n return this.userGasSelections.SelectedGasContractId;\r\n }\r\n\r\n get isLargeUser(): boolean {\r\n return this.userAccountsCount > 50;\r\n }\r\n\r\n get getIsMprnSelectionDisabled(): boolean {\r\n return this.isMprnSelectionDisabled;\r\n }\r\n\r\n get getIsAgreementSelectionDisabled(): boolean {\r\n return this.isAgreementSelectionDisabled;\r\n }\r\n\r\n get getIsAccountSelectionDisabled(): boolean {\r\n return this.isAccountSelectionDisabled;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private resetPageNumber() {\r\n this.page = 1;\r\n }\r\n\r\n @Mutation\r\n private nextPage() {\r\n if ((this.page * this.pageSize) < this.accountsCountForCurrentSearch)\r\n this.page += 1;\r\n }\r\n\r\n @Mutation\r\n private setUserAccountsCount(accountsCount: number) {\r\n this.userAccountsCount = accountsCount;\r\n }\r\n\r\n @Mutation\r\n private setAccountsCountForCurrentSearch(accountsCount: number) {\r\n this.accountsCountForCurrentSearch = accountsCount;\r\n }\r\n\r\n @Mutation\r\n private setUserAccounts(userAccounts: Array) {\r\n this.userAccounts = userAccounts;\r\n this.userAccountsLoaded = true;\r\n }\r\n\r\n @Mutation\r\n private setUserAccounts_Append(returnedAccounts: Array) {\r\n \r\n for (let i = 0; i < returnedAccounts.length; i++) {\r\n\r\n const match = this.userAccounts.filter(x => x.AccountNumber === returnedAccounts[i].AccountNumber);\r\n\r\n if (match) {\r\n returnedAccounts.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n this.userAccounts = [...this.userAccounts, ...returnedAccounts];\r\n }\r\n\r\n @Mutation\r\n private setUserDeliveryAgreements(deliveryAgreements: Array) {\r\n this.userDeliveryAgreements = deliveryAgreements;\r\n }\r\n\r\n @Mutation\r\n private setDistinctMPRNS(MPRNS: Array) {\r\n this.distinctMPRNS = MPRNS;\r\n }\r\n\r\n @Mutation\r\n private loadUserGasSelectionsFromCookie(userId: string) {\r\n const userSelections = Vue.$cookies.get(this.cookieKey) as IUserGasSelections;\r\n const userIdInCookies = userSelections?.UserId;\r\n\r\n if (userId === userIdInCookies) {\r\n this.userGasSelections = userSelections;\r\n }\r\n\r\n this.userGasSelections.UserId = userId;\r\n Vue.$cookies.set(this.cookieKey, this.userGasSelections);\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n this.userGasSelections = {\r\n UserId: null,\r\n SelectedGasAccount: null,\r\n SelectedAgreementId: null,\r\n SelectedGasDeliveryAgreement: null,\r\n SelectedGasSiteRefNumber: null,\r\n SelectedGasMprn: null,\r\n SelectedGasContractId: null\r\n };\r\n this.userAccountsCount = -1;\r\n this.accountsCountForCurrentSearch = -1;\r\n this.userAccounts = Array();\r\n this.userDeliveryAgreements = Array();\r\n this.page = 1;\r\n this.userAccountsLoaded = false;\r\n }\r\n\r\n @Mutation\r\n public setDeliveryAgreementsByAccountNumber(accountNumber: string) {\r\n const deliveryAgreements = this.userAccounts.find(x => x.AccountNumber === accountNumber)?.DeliveryAgreements;\r\n const distinctMPRNS = this.userAccounts.find(x => x.AccountNumber === accountNumber)?.DistinctMPRNS;\r\n this.userDeliveryAgreements = deliveryAgreements ?? new Array();\r\n this.distinctMPRNS = distinctMPRNS ?? new Array();\r\n }\r\n\r\n @Mutation\r\n public setSelectedDeliveryAgreementAndMprn(agreementId: string) {\r\n const agreement = this.userDeliveryAgreements.find(x => x.DeliveryAgreementId === agreementId);\r\n this.userGasSelections.SelectedAgreementId = agreement?.DeliveryAgreementId ?? null;\r\n this.userGasSelections.SelectedGasDeliveryAgreement = agreement?.UmaxSiteRefNum ?? agreement?.SiteRefNum ?? null;\r\n this.userGasSelections.SelectedGasSiteRefNumber = agreement?.SiteRefNum ?? null;\r\n this.userGasSelections.SelectedGasContractId = agreement?.ContractId ?? null;\r\n Vue.$cookies.set(this.cookieKey, this.userGasSelections);\r\n }\r\n\r\n @Mutation\r\n public setSelectedMeterPointReferenceNumber(MPRN: string) {\r\n const agreement = this.userDeliveryAgreements.find(x => x.MeterPointReferenceNumber === MPRN);\r\n this.userGasSelections.SelectedGasMprn = agreement?.MeterPointReferenceNumber ?? null;\r\n Vue.$cookies.set(this.cookieKey, this.userGasSelections);\r\n }\r\n\r\n @Mutation\r\n public setUserDeliveryAgreementsLinkedToMPRN(deliveryAgreementsWithLabels: IDeliveryAgreement[]) {\r\n this.userDeliveryAgreementsLinkedToMPRN = deliveryAgreementsWithLabels;\r\n }\r\n\r\n @Mutation\r\n public setSelectedAccount(accountNumber: string) {\r\n const account = this.userAccounts.find(x => x.AccountNumber === accountNumber);\r\n this.userGasSelections.SelectedGasAccount = account?.AccountNumber ?? null;\r\n Vue.$cookies.set(this.cookieKey, this.userGasSelections);\r\n }\r\n\r\n @Mutation\r\n public setMprnSelectionDisabled(disabled: boolean) {\r\n this.isMprnSelectionDisabled = disabled;\r\n }\r\n\r\n @Mutation\r\n public setAgreementSelectionDisabled(disabled: boolean) {\r\n this.isAgreementSelectionDisabled = disabled;\r\n }\r\n\r\n @Mutation\r\n public setAccountSelectionDisabled(disabled: boolean) {\r\n this.isAccountSelectionDisabled = disabled;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async fetchUserAccountsCount(userId: string): Promise {\r\n const userAccountsCount = await this.gasAccountsService.fetchUserAccountsCount(userId);\r\n this.context.commit('setUserAccountsCount', userAccountsCount);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchUserAccounts(params: { userId: string, accountNumberQuery: string | null }): Promise {\r\n const pageSize = this.userAccountsCount > 200 ? 200 : 0;\r\n\r\n const userAccountsData = await this.gasAccountsService.fetchUserAccounts(params.userId, pageSize, params.accountNumberQuery, this.isLargeUser);\r\n const selectedAccountNumber = this.userGasSelections.SelectedGasAccount ?? userAccountsData.SelectedAccount;\r\n const selectedAgreementId = this.userGasSelections.SelectedAgreementId ?? userAccountsData.SelectedAgreementId;\r\n const selectedMPRN = this.userGasSelections.SelectedGasMprn ?? userAccountsData.SelectedMPRN;\r\n\r\n for (let i = 0; i < userAccountsData.UserAccounts.length; i++) {\r\n const item = userAccountsData.UserAccounts[i];\r\n\r\n if (item.DeliveryAgreements.length === 0) {\r\n continue;\r\n }\r\n\r\n item.DeliveryAgreements = await this.gasAccountsService.addCategoryLabelsToAgreements(item.DeliveryAgreements,params.userId);\r\n }\r\n\r\n this.context.commit('setAccountsCountForCurrentSearch', userAccountsData.TotalAccounts);\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n this.context.commit('setDeliveryAgreementsByAccountNumber', selectedAccountNumber);\r\n this.context.commit('setSelectedDeliveryAgreementAndMprn', selectedAgreementId);\r\n this.context.commit('setSelectedAccount', selectedAccountNumber);\r\n\r\n this.context.dispatch('fetchDeliveryAgreementsWithLabelsAfterMPRNSelection', ({ userId: params.userId, MPRN: selectedMPRN }));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchUserAccountsAfterSearch(params: { userId: string, accountNumberQuery: string | null }): Promise {\r\n const pageSize = this.userAccountsCount > 200 ? 200 : 0;\r\n\r\n const userAccountsData = await this.gasAccountsService.fetchUserAccounts(params.userId, pageSize, params.accountNumberQuery, this.isLargeUser);\r\n\r\n this.context.commit('setAccountsCountForCurrentSearch', userAccountsData.TotalAccounts);\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async searchUserAccounts(params: { userId: string, query: string, appendResult: (boolean | null) }): Promise {\r\n const pageSize = this.userAccountsCount > 200 ? 200 : 0;\r\n const userAccountsData = await this.gasAccountsService.searchUserAccounts(params.userId, params.query, this.page, pageSize, this.isLargeUser);\r\n\r\n this.context.commit('setAccountsCountForCurrentSearch', userAccountsData.TotalAccounts);\r\n\r\n if (params.appendResult) {\r\n this.context.commit('setUserAccounts_Append', userAccountsData.UserAccounts);\r\n return;\r\n }\r\n\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n \r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchDeliveryAgreementsForAccount(params: { userId: string, accountNumber: string }): Promise {\r\n\r\n const data = await this.gasAccountsService.fetchDeliveryAgreementsForAccount(params.userId, params.accountNumber, this.isLargeUser);\r\n\r\n if (!data) {\r\n return;\r\n }\r\n\r\n this.context.commit('setUserDeliveryAgreements', data[0]);\r\n this.context.commit('setSelectedDeliveryAgreementAndMprn', data[1]);\r\n this.context.commit('setDistinctMPRNS', data[2]);\r\n this.context.commit('setSelectedAccount', params.accountNumber);\r\n\r\n this.context.dispatch('fetchDeliveryAgreementsWithLabelsAfterMPRNSelection', ({ userId: params.userId, MPRN: data[3] }));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchDeliveryAgreementsForAllAccounts(params: { userId: string }): Promise {\r\n const userAccounts = this.userAccounts;\r\n const userAccountsCount = userAccounts.length;\r\n\r\n for (let i = 0; i < userAccountsCount; i++) {\r\n const accountNumber = userAccounts[i].AccountNumber;\r\n const data = await this.gasAccountsService.fetchDeliveryAgreementsForAccount(params.userId, accountNumber, this.isLargeUser);\r\n if (!data) {\r\n continue;\r\n }\r\n\r\n userAccounts[i].DeliveryAgreements = data[0];\r\n }\r\n\r\n this.context.commit('setUserAccounts', userAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchAgreementIdToSelect(params: { userId: string, accountNumber: string }): Promise {\r\n const data = await this.gasAccountsService.getAgreementIdToSelect(this.userDeliveryAgreements, params.userId);\r\n\r\n this.context.commit('setSelectedDeliveryAgreementAndMprn', data[0]);\r\n this.context.commit('setSelectedAccount', params.accountNumber);\r\n this.context.dispatch('fetchDeliveryAgreementsWithLabelsAfterMPRNSelection', ({ userId: params.userId, MPRN: data[1] }));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchDeliveryAgreementsWithLabelsAfterMPRNSelection(params: { userId: string, MPRN: string }): Promise {\r\n const deliveryAgreementsLinkedToMPRN = this.userDeliveryAgreements.filter(x => x.MeterPointReferenceNumber === params.MPRN);\r\n const deliveryAgreementsWithLabelsLinkedToMPRN = await this.gasAccountsService.addCategoryLabelsToAgreements(deliveryAgreementsLinkedToMPRN, params.userId);\r\n this.context.commit('setUserDeliveryAgreementsLinkedToMPRN', deliveryAgreementsWithLabelsLinkedToMPRN);\r\n this.context.commit('setSelectedMeterPointReferenceNumber', params.MPRN);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchAgreementIdToSelectAfterMPRNSelection(params: { userId: string, accountNumber: string, MPRN: string }): Promise {\r\n const deliveryAgreementsLinkedToMPRN = this.userDeliveryAgreements.filter(x => x.MeterPointReferenceNumber === params.MPRN);\r\n const data = await this.gasAccountsService.getAgreementIdToSelect(deliveryAgreementsLinkedToMPRN, params.userId);\r\n\r\n this.context.commit('setSelectedDeliveryAgreementAndMprn', data[0]);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public loadUserGasSelections(userId: string): void {\r\n this.context.commit('loadUserGasSelectionsFromCookie', userId);\r\n }\r\n}","export class MpanTypes {\r\n\r\n public static NonHalfHourlyMeterTypes(): Array {\r\n return [EnumMeterType[EnumMeterType.NHH], EnumMeterType[EnumMeterType.S]];\r\n }\r\n\r\n public static HalfHourlyMeterTypes(): Array {\r\n return [EnumMeterType[EnumMeterType.HH], EnumMeterType[EnumMeterType.IHH]];\r\n }\r\n\r\n public static AllMeterTypes(): Array {\r\n return [EnumMeterType[EnumMeterType.NHH], EnumMeterType[EnumMeterType.S], EnumMeterType[EnumMeterType.HH], EnumMeterType[EnumMeterType.IHH]];\r\n }\r\n}\r\n\r\nexport enum EnumMeterType {\r\n IHH,\r\n NHH,\r\n HH ,\r\n S\r\n}","import axios from '@/services/axiosService';\r\nimport { IPowerAccountsViewModel } from \"@/interfaces/powerAccountsViewModel\"\r\nimport { IPowerSite } from \"@/interfaces/powerSite\"\r\n\r\n\r\nconst CONTROLLER = \"/PowerAccounts/\";\r\n\r\nexport default class PowerAccountsService {\r\n public async fetchUserAccountsCount(userId: string): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetUserGroupAccountsCount`, { params: { userId: userId } });\r\n const result = JSON.parse((response as any).content) as Promise;\r\n\r\n return result;\r\n }\r\n\r\n public async fetchUserAccounts(userId: string, size: number, groupAccountNumberQuery: (string | null)): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetUserAccounts`, { params: { userId: userId, size: size, groupAccountNumberQuery: groupAccountNumberQuery } });\r\n const result = JSON.parse((response as any).content) as IPowerAccountsViewModel;\r\n\r\n return result;\r\n }\r\n\r\n public async searchUserAccounts(userId: string, groupAccountNumberQuery: string, page: number, size: number): Promise {\r\n const response = await axios.get(`${CONTROLLER}SearchUserAccounts`, { params: { userId: userId, groupAccountNumberQuery: groupAccountNumberQuery, page: page, size: size } });\r\n const result = JSON.parse((response as any).content) as IPowerAccountsViewModel;\r\n\r\n return result;\r\n }\r\n\r\n public async fetchPowerSitesForAccount(userId: string, groupAccountNumber: string): Promise<[IPowerSite[], string, Array, string]> {\r\n const response = await axios.get(`${CONTROLLER}GetPowerSites`, { params: { userId : userId, groupAccountNumber: groupAccountNumber } });\r\n\r\n const result = JSON.parse((response as any).content);\r\n\r\n const powerSites = result.PowerSites as IPowerSite[];\r\n const selectedPowerSite = result.SelectedSite as string;\r\n const distinctMpans = result.DistinctMPANS as Array;\r\n const selectedMpan = result.SelectedMpan as string;\r\n\r\n return [powerSites, selectedPowerSite, distinctMpans, selectedMpan];\r\n }\r\n}","import Vue from 'vue';\r\nimport { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport PowerAccountsService from '@/services/powerAccountsService';\r\n\r\nimport { IUserAccount } from \"@/interfaces/userAccount\";\r\nimport { IPowerSite } from \"@/interfaces/powerSite\";\r\nimport { IUserPowerSelections } from \"@/interfaces/userPowerSelections\";\r\nimport { MpanTypes } from '@/interfaces/mpanTypes';\r\n\r\n@Module({ namespaced: true })\r\nexport default class PowerAccounts extends VuexModule {\r\n private powerAccountsService = new PowerAccountsService();\r\n private cookieKey = \"userPowerSelections\";\r\n\r\n // State\r\n private page = 1;\r\n private pageSize = 200;\r\n private userAccountsCount = -1;\r\n private accountsCountForCurrentSearch = -1;\r\n private userAccounts = Array();\r\n private userPowerSites = Array();\r\n private userPowerDistinctMpans = Array();\r\n private userPowerSitesLinkedToMpan = Array();\r\n\r\n private isMpanSelectionDisabled = false;\r\n private isGroupAccountSelectionDisabled = false;\r\n private isAccountSelectionDisabled = false;\r\n\r\n private userPowerSelections = {\r\n UserId: null,\r\n SelectedGroupAccount: null,\r\n SelectedAccount: null,\r\n SelectedMpan: null,\r\n SelectedMeterType: null\r\n } as IUserPowerSelections;\r\n\r\n //Getters\r\n get getIsMorePages(): boolean {\r\n return (this.page * this.pageSize) < this.accountsCountForCurrentSearch;\r\n }\r\n\r\n get getUserAccountsCount(): number {\r\n return this.userAccountsCount;\r\n }\r\n\r\n get getPowerUserAccountsCount(): number {\r\n return this.userAccountsCount;\r\n }\r\n\r\n get getUserAccounts(): Array {\r\n return this.userAccounts;\r\n }\r\n\r\n get getUserPowerSites(): Array {\r\n return this.userPowerSites;\r\n }\r\n\r\n get getUserPowerSitesLinkedToMpan(): Array {\r\n return this.userPowerSitesLinkedToMpan;\r\n }\r\n\r\n get getUserPowerDistinctMpans(): Array {\r\n return this.userPowerDistinctMpans;\r\n }\r\n\r\n get getSelectedGroupAccount(): string | null {\r\n return this.userPowerSelections.SelectedGroupAccount;\r\n }\r\n\r\n get getSelectedAccount(): string | null {\r\n return this.userPowerSelections.SelectedAccount;\r\n }\r\n\r\n // Is a duplicate of the above getter, needed because gasAccounts also has a method called getSelectedAccount and this causes a name conflict if you have both modules on a component\r\n get getSelectedAccount_Power(): string | null {\r\n return this.getSelectedAccount;\r\n }\r\n\r\n get getSelectedMpan(): string | null {\r\n return this.userPowerSelections.SelectedMpan;\r\n }\r\n\r\n get getSelectedMeterType(): string | null {\r\n return this.userPowerSelections.SelectedMeterType;\r\n }\r\n\r\n get isHalfHourly(): boolean {\r\n if (this.userPowerSelections.SelectedMeterType!= null)\r\n return MpanTypes.HalfHourlyMeterTypes().includes(this.userPowerSelections.SelectedMeterType as string);\r\n return false;\r\n }\r\n\r\n get getIsMpanSelectionDisabled(): boolean {\r\n return this.isMpanSelectionDisabled;\r\n }\r\n\r\n get getIsAccountSelectionDisabled(): boolean {\r\n return this.isAccountSelectionDisabled;\r\n }\r\n\r\n get getIsGroupAccountSelectionDisabled(): boolean {\r\n return this.isGroupAccountSelectionDisabled;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private resetPageNumber() {\r\n this.page = 1;\r\n }\r\n\r\n @Mutation\r\n private nextPage() {\r\n if ((this.page * this.pageSize) < this.accountsCountForCurrentSearch)\r\n this.page += 1;\r\n }\r\n\r\n @Mutation\r\n private setUserAccountsCount(accountsCount: number) {\r\n this.userAccountsCount = accountsCount;\r\n }\r\n\r\n @Mutation\r\n private setAccountsCountForCurrentSearch(accountsCount: number) {\r\n this.accountsCountForCurrentSearch = accountsCount;\r\n }\r\n\r\n @Mutation\r\n private setUserAccounts(userAccounts: Array) {\r\n this.userAccounts = userAccounts;\r\n }\r\n\r\n @Mutation\r\n private setUserAccounts_Append(returnedAccounts: Array) {\r\n \r\n for (let i = 0; i < returnedAccounts.length; i++) {\r\n\r\n const match = this.userAccounts.filter(x => x.AccountNumber === returnedAccounts[i].AccountNumber);\r\n\r\n if (match) {\r\n returnedAccounts.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n\r\n this.userAccounts = [...this.userAccounts, ...returnedAccounts];\r\n }\r\n\r\n @Mutation\r\n private setUserPowerSites(powerSites: Array) {\r\n this.userPowerSites = powerSites;\r\n }\r\n\r\n @Mutation\r\n private setUserPowerMpans(mpans: Array) {\r\n this.userPowerDistinctMpans = mpans;\r\n }\r\n\r\n @Mutation\r\n private loadUserPowerSelectionsFromCookie(userId: string) {\r\n const userSelections = Vue.$cookies.get(this.cookieKey) as IUserPowerSelections;\r\n const userIdInCookies = userSelections?.UserId;\r\n\r\n if (userId === userIdInCookies) {\r\n this.userPowerSelections = userSelections;\r\n }\r\n\r\n this.userPowerSelections.UserId = userId;\r\n Vue.$cookies.set(this.cookieKey, this.userPowerSelections);\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n this.userPowerSelections = {\r\n UserId: null,\r\n SelectedGroupAccount: null,\r\n SelectedAccount: null,\r\n SelectedMpan: null,\r\n SelectedMeterType: null\r\n };\r\n this.userAccountsCount = -1;\r\n this.accountsCountForCurrentSearch = -1;\r\n this.userAccounts = Array();\r\n this.userPowerSites = Array();\r\n this.page = 1;\r\n }\r\n\r\n @Mutation\r\n public setSelectedPowerSite(accountNumber: string) {\r\n const powerSite = this.userPowerSites.find(x => x.AccountNumber === accountNumber);\r\n this.userPowerSelections.SelectedAccount = powerSite?.AccountNumber ?? null;\r\n this.userPowerSelections.SelectedMeterType = powerSite?.MeterType ?? null;\r\n Vue.$cookies.set(this.cookieKey, this.userPowerSelections);\r\n }\r\n\r\n @Mutation\r\n public setSelectedPowerMpan(Mpan: string) {\r\n this.userPowerSelections.SelectedMpan = Mpan;\r\n Vue.$cookies.set(this.cookieKey, this.userPowerSelections);\r\n }\r\n\r\n @Mutation\r\n public setUserPowerSitesLinkedToMPAN(Mpan: string) {\r\n const PowerSitesLinkedToMpan = this.userPowerSites.filter(x => x.Mpan == Mpan);\r\n this.userPowerSitesLinkedToMpan = PowerSitesLinkedToMpan;\r\n }\r\n\r\n @Mutation\r\n public setSelectedGroupAccount(groupAccountNumber: string) {\r\n const groupAccount = this.userAccounts.find(x => x.AccountNumber === groupAccountNumber);\r\n this.userPowerSelections.SelectedGroupAccount = groupAccount?.AccountNumber ?? null;\r\n this.userPowerSelections.SelectedAccount = null;\r\n this.userPowerSelections.SelectedMpan = null;\r\n this.userPowerSelections.SelectedMeterType = null;\r\n Vue.$cookies.set(this.cookieKey, this.userPowerSelections);\r\n }\r\n\r\n @Mutation\r\n public setMpanSelectionDisabled(disabled: boolean) {\r\n this.isMpanSelectionDisabled = disabled;\r\n }\r\n\r\n @Mutation\r\n public setAccountSelectionDisabled(disabled: boolean) {\r\n this.isAccountSelectionDisabled = disabled;\r\n }\r\n\r\n @Mutation\r\n public setGroupAccountSelectionDisabled(disabled: boolean) {\r\n this.isGroupAccountSelectionDisabled = disabled;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async fetchUserAccountsCount(userId: string): Promise {\r\n const userAccountsCount = await this.powerAccountsService.fetchUserAccountsCount(userId);\r\n this.context.commit('setUserAccountsCount', userAccountsCount);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchUserAccounts(params: { userId: string, groupAccountNumberQuery: string | null }): Promise {\r\n const pageSize = this.userAccountsCount > 200 ? 200 : 0;\r\n const accountNumber = this.userAccountsCount > 200 ? params.groupAccountNumberQuery : null;\r\n\r\n const userAccountsData = await this.powerAccountsService.fetchUserAccounts(params.userId, pageSize, accountNumber);\r\n const selectedGroupAccountNumber = this.userPowerSelections.SelectedGroupAccount ?? userAccountsData.SelectedGroupAccount;\r\n\r\n const powerSites = await this.powerAccountsService.fetchPowerSitesForAccount(params.userId,selectedGroupAccountNumber);\r\n\r\n const selectedAccountNumber = this.userPowerSelections.SelectedAccount ?? powerSites[1];\r\n const selectedMpan = this.userPowerSelections.SelectedMpan ?? powerSites[3];\r\n\r\n this.context.commit('setAccountsCountForCurrentSearch', userAccountsData.TotalAccounts);\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n this.context.commit('setUserPowerSites', powerSites[0]);\r\n this.context.commit('setSelectedGroupAccount', selectedGroupAccountNumber);\r\n this.context.commit('setSelectedPowerSite', selectedAccountNumber);\r\n\r\n this.context.commit('setUserPowerMpans', powerSites[2]);\r\n this.context.commit('setSelectedPowerMpan', selectedMpan);\r\n this.context.commit('setUserPowerSitesLinkedToMPAN', selectedMpan);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async searchUserAccounts(params: { userId: string, groupAccountNumberQuery: string, appendResult: boolean }): Promise {\r\n const pageSize = this.userAccountsCount > 200 ? 200 : 0;\r\n\r\n const userAccountsData = await this.powerAccountsService.searchUserAccounts(params.userId, params.groupAccountNumberQuery, this.page, pageSize);\r\n\r\n this.context.commit('setAccountsCountForCurrentSearch', userAccountsData.TotalAccounts);\r\n\r\n if (params.appendResult) {\r\n this.context.commit('setUserAccounts_Append', userAccountsData.UserAccounts);\r\n return;\r\n }\r\n\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchPowerSitesForGroupAccount(params: { userId: string, groupAccountNumber: string }): Promise {\r\n const data = await this.powerAccountsService.fetchPowerSitesForAccount(params.userId ,params.groupAccountNumber);\r\n\r\n if (!data) {\r\n return;\r\n }\r\n\r\n const selectedMpan = data[3];\r\n\r\n this.context.commit('setUserPowerSites', data[0]);\r\n this.context.commit('setSelectedPowerSite', data[1]);\r\n this.context.commit('setUserPowerMpans', data[2]);\r\n this.context.commit('setSelectedPowerMpan', selectedMpan);\r\n this.context.commit('setUserPowerSitesLinkedToMPAN', selectedMpan);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public loadUserPowerSelections(userId: string): void {\r\n this.context.commit('loadUserPowerSelectionsFromCookie', userId);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public onMpanSelection(Mpan: string): void {\r\n this.context.commit('setSelectedPowerMpan', Mpan);\r\n this.context.commit('setUserPowerSitesLinkedToMPAN', Mpan);\r\n const selectedPowerSite = this.userPowerSitesLinkedToMpan.filter(x => x.Mpan === Mpan)[0];\r\n this.context.commit('setSelectedPowerSite', selectedPowerSite.AccountNumber);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport { ITermsOfUse } from \"@/interfaces/termsOfUse\"\r\n\r\nconst CONTROLLER = \"/termsofuse/\";\r\n\r\nexport default class TermsService {\r\n\r\n public async hasUserAcceptedTerms(userId: string): Promise {\r\n const response = await axios.get(`${CONTROLLER}accepted/${userId}`);\r\n const result = (response as any) as boolean;\r\n\r\n return result;\r\n }\r\n\r\n public async AcceptsTerms(data: ITermsOfUse): Promise {\r\n const response = await axios.post(`${CONTROLLER}accepts`, data);\r\n \r\n const result = (response as any) as ITermsOfUse;\r\n return result;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport TermsService from '@/services/termsService';\r\nimport { ITermsOfUse } from '../../interfaces/termsOfUse';\r\n\r\n\r\n@Module({ namespaced: true })\r\nexport default class Terms extends VuexModule {\r\n private termsOfUseService = new TermsService();\r\n\r\n // State\r\n private hasAcceptedTerms = false;\r\n private termsOfUseDto: ITermsOfUse | null = null;\r\n\r\n // Getters\r\n get getHasAcceptedTermsOfUse(): boolean {\r\n return this.hasAcceptedTerms;\r\n }\r\n\r\n get getTermsOfUseDto(): (ITermsOfUse | null) {\r\n return this.termsOfUseDto;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private setHasAcceptedTerms(hasAccepted: boolean) {\r\n this.hasAcceptedTerms = hasAccepted;\r\n }\r\n\r\n @Mutation\r\n private setTermsOfUseDto(termsOfUse: ITermsOfUse) {\r\n this.termsOfUseDto = termsOfUse;\r\n }\r\n\r\n @Mutation\r\n public clearState(): void {\r\n this.hasAcceptedTerms = false;\r\n this.termsOfUseDto = null;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async hasAcceptedTermsOfUse(userId: string): Promise {\r\n const result = await this.termsOfUseService.hasUserAcceptedTerms(userId);\r\n this.context.commit('setHasAcceptedTerms', result);\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async AcceptsTermsOfUse(data: ITermsOfUse): Promise {\r\n const result = await this.termsOfUseService.AcceptsTerms(data);\r\n this.context.commit('setTermsOfUseDto', result);\r\n }\r\n}","export class JourneyNode {\r\n public Value: (number|null);\r\n public Next: (JourneyNode | null);\r\n\r\n constructor(value?: number) {\r\n if (value) {\r\n this.Value = value;\r\n this.Next = null;\r\n } else {\r\n this.Value = null;\r\n this.Next = null;\r\n }\r\n }\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport { JourneyNode } from '@/utilities/JourneyNode';\r\n\r\n@Module({ namespaced: true })\r\nexport default class InvoicingWizard extends VuexModule {\r\n private rootJourney: (JourneyNode | null) = null;\r\n private currentJourney: (JourneyNode | null) = null;\r\n\r\n //Getters\r\n get getRootJourney() {\r\n return this.rootJourney;\r\n }\r\n\r\n get getCurrentJourney() {\r\n return this.currentJourney;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n public addJourneyNode(option: number) {\r\n (this.currentJourney as JourneyNode).Next = new JourneyNode(option);\r\n }\r\n\r\n @Mutation\r\n public initJourney(option: number) {\r\n this.rootJourney = new JourneyNode(option);\r\n this.currentJourney = this.rootJourney;\r\n }\r\n\r\n @Mutation\r\n public resetJourney() {\r\n this.rootJourney = null;\r\n this.currentJourney = null;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async appendJourneyToJourneyNode(option: number): Promise { \r\n this.context.commit('addJourneyNode', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async initJourneyNode(option: number): Promise {\r\n this.context.commit('initJourney', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async resetJourneyNode(): Promise {\r\n this.context.commit('resetJourney');\r\n }\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport { JourneyNode } from '@/utilities/JourneyNode';\r\n\r\n@Module({ namespaced: true })\r\nexport default class MeteringWizard extends VuexModule {\r\n private rootJourney: (JourneyNode | null) = null;\r\n private currentJourney: (JourneyNode | null) = null;\r\n\r\n //Getters\r\n get getRootJourney() {\r\n return this.rootJourney;\r\n }\r\n\r\n get getCurrentJourney() {\r\n return this.currentJourney;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n public addJourneyNode(option: number) {\r\n (this.currentJourney as JourneyNode).Next = new JourneyNode(option);\r\n }\r\n\r\n @Mutation\r\n public initJourney(option: number) {\r\n this.rootJourney = new JourneyNode(option);\r\n this.currentJourney = this.rootJourney;\r\n }\r\n\r\n @Mutation\r\n public resetJourney() {\r\n this.rootJourney = null;\r\n this.currentJourney = null;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async appendJourneyToJourneyNode(option: number): Promise { \r\n this.context.commit('addJourneyNode', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async initJourneyNode(option: number): Promise {\r\n this.context.commit('initJourney', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async resetJourneyNode(): Promise {\r\n this.context.commit('resetJourney');\r\n }\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport { JourneyNode } from '@/utilities/JourneyNode';\r\n\r\n@Module({ namespaced: true })\r\nexport default class BillingWizard extends VuexModule {\r\n private rootJourney: (JourneyNode | null) = null;\r\n private currentJourney: (JourneyNode | null) = null;\r\n\r\n //Getters\r\n get getRootJourney() {\r\n return this.rootJourney;\r\n }\r\n\r\n get getCurrentJourney() {\r\n return this.currentJourney;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n public addJourneyNode(option: number) {\r\n (this.currentJourney as JourneyNode).Next = new JourneyNode(option);\r\n }\r\n\r\n @Mutation\r\n public initJourney(option: number) {\r\n this.rootJourney = new JourneyNode(option);\r\n this.currentJourney = this.rootJourney;\r\n }\r\n\r\n @Mutation\r\n public resetJourney() {\r\n this.rootJourney = null;\r\n this.currentJourney = null;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async appendJourneyToJourneyNode(option: number): Promise { \r\n this.context.commit('addJourneyNode', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async initJourneyNode(option: number): Promise {\r\n this.context.commit('initJourney', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async resetJourneyNode(): Promise {\r\n this.context.commit('resetJourney');\r\n }\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport { JourneyNode } from '@/utilities/JourneyNode';\r\n\r\n@Module({ namespaced: true })\r\nexport default class ConsumptionWizard extends VuexModule {\r\n private rootJourney: (JourneyNode | null) = null;\r\n private currentJourney: (JourneyNode | null) = null;\r\n\r\n //Getters\r\n get getRootJourney() {\r\n return this.rootJourney;\r\n }\r\n\r\n get getCurrentJourney() {\r\n return this.currentJourney;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n public addJourneyNode(option: number) {\r\n (this.currentJourney as JourneyNode).Next = new JourneyNode(option);\r\n }\r\n\r\n @Mutation\r\n public initJourney(option: number) {\r\n this.rootJourney = new JourneyNode(option);\r\n this.currentJourney = this.rootJourney;\r\n }\r\n\r\n @Mutation\r\n public resetJourney() {\r\n this.rootJourney = null;\r\n this.currentJourney = null;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async appendJourneyToJourneyNode(option: number): Promise { \r\n this.context.commit('addJourneyNode', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async initJourneyNode(option: number): Promise {\r\n this.context.commit('initJourney', option);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async resetJourneyNode(): Promise {\r\n this.context.commit('resetJourney');\r\n }\r\n\r\n}","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport store from '../store'\r\nimport moment from 'moment';\r\nimport { IErrorDetail} from \"@/interfaces/errorDetail\";\r\n\r\nconst vm = new Vue({});\r\nconst newAxios = axios.create();\r\n\r\nnewAxios.interceptors.request.use(\r\n config => {\r\n return config;\r\n },\r\n error => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nnewAxios.interceptors.response.use(\r\n response => {\r\n return response;\r\n },\r\n async error => {\r\n vm.$bvToast.toast(await errorHandler(error), {\r\n title: `Error Message`,\r\n variant: \"danger\",\r\n solid: true,\r\n autoHideDelay: 30000,\r\n appendToast: true\r\n });\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n\r\nconst errorHandler = async (error: any) => {\r\n let errorMessage = '';\r\n let content = '';\r\n let errorDetail: IErrorDetail ;\r\n let data: any;\r\n switch (error.response.status) {\r\n case 404:\r\n return error.response.data.message !== \"\" ? error.response.data.message : \"Service not reachable. Try again later.\";\r\n case 401:\r\n if (document.location.pathname != \"/\") {\r\n\r\n const isLoggedIn = store.getters[\"Auth/isLoggedIn\"];\r\n\r\n if (isLoggedIn) {\r\n store.dispatch('Auth/signOut');\r\n }\r\n\r\n document.location.href = \"/\";\r\n }\r\n // no break - fall through to the 400 code to display the error.\r\n case 400: \r\n if (error.response.data instanceof Blob) {\r\n\r\n const errorData = JSON.parse(await error.response.data.text());\r\n\r\n errorMessage = errorData.message;\r\n content = errorData.content;\r\n\r\n } else {\r\n\r\n errorMessage = error?.response?.data?.message;\r\n content = error?.response?.data?.content;\r\n\r\n }\r\n\r\n errorDetail = GetErrorDetail(errorMessage); \r\n\r\n if (content == null) {\r\n return errorDetail.Message1;\r\n }\r\n\r\n data = JSON.parse(content);\r\n return format(data.LatestInvoiceDate == null ? errorDetail.Message1 : errorDetail.Message2, moment(data.StartRange).format('MMM YYYY'), moment(data.EndRange).format('MMM YYYY'), moment(data.LatestInvoiceDate).format('MMM YYYY'));\r\n default:\r\n return \"Unknown error. Please contact the administrator.\";\r\n }\r\n};\r\n\r\nconst format = function (value, ...params): string {\r\n const args = params;\r\n return value.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n};\r\n\r\nconst GetErrorDetail = function (errorName: string): IErrorDetail {\r\n\r\n switch (errorName) {\r\n case \"NoInvoicesFoundForRequestedMonth\":\r\n return { Message1 : \"Invoices are not available for months {0} to {1}.\", Message2 : \"Invoices are not available for months {0} to {1}. Your last available invoices are for {2}.\" } as IErrorDetail\r\n case \"NoInvoicesWithNonNullInvoicesFoundForThisMonth\": \r\n case \"NoInvoiceRequests\":\r\n case \"NoInvoiceRequestsThatContainsInvoiceNumbers\":\r\n return { Message1: \"Your invoices are still being generated. Please check back again soon.\" } as IErrorDetail\r\n case \"FailedToGetInvoicesException\":\r\n return { Message1: \"Something went wrong while downloading invoices! Please try again later.\" } as IErrorDetail\r\n case \"TooManyInvoicesForOneRequest\":\r\n return { Message1: \"We found too many invoice PDFs to download for the requested period, please try a shorter date range. We're working on offering this option soon.\" } as IErrorDetail\r\n case \"PowerInvoiceFileNotFound\":\r\n return { Message1: \"Unfortunately this download is unavailable at this time, please try again later.\" } as IErrorDetail\r\n case \"GasInvoiceFileNotFound\":\r\n return { Message1: \"This invoice will be available shortly, please try again later. If you cannot access this after 48 hours please call customer services.\" } as IErrorDetail\r\n case \"ReportNotGenerated\":\r\n return { Message1: \"Unfortunately this download is unavailable at this time, please try again later.\" } as IErrorDetail\r\n }\r\n\r\n return { Message1:errorName } as IErrorDetail\r\n\r\n};\r\n\r\nexport default newAxios;","export default function getFileName(contentDisposition: string): string | null {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n const matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n return matches[1].replace(/['\"]/g, '');\r\n }\r\n return null;\r\n}","import newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IInvoiceDetails } from \"../interfaces/invoiceDetails\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\n\r\nconst CONTROLLER = \"/invoicegas/\";\r\nexport default class InvoicesService {\r\n\r\n public async fetchInvoices(accountNum: string, siteRefNum: string, userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices`, { params: { accountNum: accountNum, siteRefNum: siteRefNum, userId: userId } });\r\n const result = JSON.parse((response as any).data.content) as IInvoiceDetails[];\r\n return result;\r\n }\r\n\r\n public async invoiceDownload(accountNum: string, invoiceNo: string, userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices/download`, { params: { invoiceNo, userId }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadLatestMonthInvoicesForAccount(accountNum: string, userId: string) {\r\n\r\n const response = await newAxios.get(`${CONTROLLER}latest-month-account-invoices`, { params: { accountNum: accountNum, userId: userId }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadLatestYearInvoicesForAccount(accountNum: string, userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}latest-year-account-invoices`, { params: { accountNum: accountNum, userId: userId }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadCustomRangeInvoicesForAccount(accountNum: string, userId: string, fromMonth: string, toMonth: string) {\r\n const response = await newAxios.get(`${CONTROLLER}custom-range-account-invoices`, { params: { accountNum: accountNum, userId: userId, fromMonth: fromMonth, toMonth: toMonth }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadInvoicesForAllAccounts(userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}latest-month-all-accounts-invoices`, { params: { userId: userId }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadCustomRangeInvoicesForAllAccounts(userId: string, fromDate: string, toDate: string) {\r\n const response = await newAxios.get(`${CONTROLLER}custom-range-all-accounts-invoices`, { params: { userId: userId, fromDate: fromDate, toDate: toDate }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport InvoiceService from '@/services/invoicesService';\r\nimport { IInvoiceDetails } from '@/interfaces/invoiceDetails';\r\n\r\n@Module({ namespaced: true })\r\nexport default class Invoices extends VuexModule {\r\n private invoicesService = new InvoiceService();\r\n private invoices: IInvoiceDetails[] = [];\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n private data: Blob | null = null;\r\n\r\n get Invoices() {\r\n return this.invoices;\r\n }\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n private setInvoices(invoices: any): void {\r\n this.invoices = invoices;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Mutation\r\n private setData(data: Blob) {\r\n this.data = data;\r\n }\r\n\r\n //Actions\r\n @Action({ rawError: true })\r\n private async getInvoices(params: { accountNum: string, siteRefNum: string, userId: string }): Promise {\r\n const invoices = await this.invoicesService.fetchInvoices(params.accountNum, params.siteRefNum, params.userId);\r\n this.context.commit('setInvoices', invoices);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getLatestMonthInvoicesForAccount(params: { accountNum: string, userId: string }): Promise {\r\n const downloadFileData = await this.invoicesService.downloadLatestMonthInvoicesForAccount(params.accountNum, params.userId);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getLatestYearInvoicesForAccount(params: { accountNum: string, userId: string }): Promise {\r\n const downloadFileData = await this.invoicesService.downloadLatestYearInvoicesForAccount(params.accountNum, params.userId);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getCustomRangeInvoicesForAccount(params: { accountNum: string, userId: string, fromMonth: string, toMonth: string }): Promise {\r\n const downloadFileData = await this.invoicesService.downloadCustomRangeInvoicesForAccount(params.accountNum, params.userId, params.fromMonth, params.toMonth);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async invoiceDownload(params: { accountNum: string, invoiceNo: string, userId: string }): Promise {\r\n const downloadFileData = await this.invoicesService.invoiceDownload(params.accountNum, params.invoiceNo, params.userId);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getInvoicesDownloadForAllAccounts(params: { userId: string }) {\r\n const downloadFileData = await this.invoicesService.downloadInvoicesForAllAccounts(params.userId);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getCustomRangeInvoicesForAllAccounts(params: { userId: string, fromDate: string, toDate: string }): Promise {\r\n const downloadFileData = await this.invoicesService.downloadCustomRangeInvoicesForAllAccounts(params.userId, params.fromDate, params.toDate);\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IMeterReadsViewModel } from \"@/interfaces/meterReadsViewModel\";\r\nimport { IMeterReadsParams } from \"@/interfaces/meterReadsParams\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IMeterReadSubmitParams } from \"@/interfaces/meterReadSubmitParams\";\r\nimport { IMeterReadingDetail } from '@/interfaces/meterReadingDetail';\r\nimport { IMeterReadSubmitResponse} from '@/interfaces/meterReadSubmitResponse';\r\nimport { IMultipleMeterReadSubmitParams } from '../interfaces/multipleMeterReadSubmitParams';\r\nimport { IMultipleMeterReadSubmitAndSendParams } from '../interfaces/multipleMeterReadSubmitAndSendParams';\r\nimport { IMultipleMeterReadSubmitResponse } from '../interfaces/multipleMeterReadSubmitResponse';\r\nimport { IMultipleMeterReadSubmitAndSendResponse } from '../interfaces/multipleMeterReadSubmitAndSendResponse';\r\n\r\nconst CONTROLLER = \"/MeterReadsGas/\";\r\nconst BULK_CONTROLLER = \"/BulkMeterReadsUpload/\";\r\n\r\nexport default class MeteringGasService {\r\n public async getMeterReads(params: IMeterReadsParams): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetMeterReads`, { params: params });\r\n const result = JSON.parse((response as any).content) as IMeterReadsViewModel;\r\n return result;\r\n }\r\n\r\n public async downloadReport(params: IMeterReadsParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReport`, { params: params, responseType: \"blob\" });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadMultipleMeterReadsTemplate(userId: string): Promise {\r\n const response = await newAxios.get(`${BULK_CONTROLLER}DownloadMultipleMeterReadsTemplate`, { params: { userId: userId }, responseType: \"blob\" });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Multiple meter readings template could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n\r\n public async downloadCompletedMultipleMeterReadsTemplate(userId: string, fileName: string): Promise {\r\n const response = await newAxios.get(`${BULK_CONTROLLER}DownloadCompletedMultipleMeterReadsTemplate`, { params: { userId: userId, fileName: fileName }, responseType: \"blob\" });\r\n\r\n const responseFileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!responseFileName) {\r\n throw new Error(\"Completed Multiple meter readings template could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: responseFileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n\r\n public async getPreviousMeterRead(params: IMeterReadsParams): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetPreviousMeterRead`, { params: params });\r\n const result = JSON.parse((response as any).content) as IMeterReadingDetail;\r\n\r\n return result;\r\n }\r\n\r\n public async submitMeterRead(data: IMeterReadSubmitParams): Promise {\r\n const response = await axios.post(`${CONTROLLER}SubmitMeterRead`, data);\r\n const result = JSON.parse((response as any).content) as IMeterReadSubmitResponse;\r\n\r\n return result;\r\n }\r\n\r\n public async submitMultipleMeterReads(data: IMultipleMeterReadSubmitParams): Promise {\r\n const response = await axios.post(`${BULK_CONTROLLER}UploadMultipleMeterReads`, data);\r\n const result = JSON.parse((response as any).content) as IMultipleMeterReadSubmitResponse;\r\n\r\n return result;\r\n }\r\n\r\n public async submitAndSendMultipleMeterReads(data: IMultipleMeterReadSubmitAndSendParams): Promise {\r\n const response = await axios.post(`${BULK_CONTROLLER}SendMultipleMeterReads`, data);\r\n const result = JSON.parse((response as any).content) as IMultipleMeterReadSubmitAndSendResponse;\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport MeteringService from '@/services/meteringGasService';\r\nimport { IMeterReadsViewModel } from \"@/interfaces/meterReadsViewModel\";\r\nimport { IMeterDetail } from \"@/interfaces/meterDetail\";\r\nimport { IMeterReadingDetail } from \"@/interfaces/meterReadingDetail\";\r\nimport { IMeterReadsParams } from \"@/interfaces/meterReadsParams\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport { IMeterReadSubmitParams } from \"@/interfaces/meterReadSubmitParams\";\r\nimport { IMeterReadSubmitResponse } from \"@/interfaces/meterReadSubmitResponse\";\r\nimport { IMultipleMeterReadSubmitParams } from '../../interfaces/multipleMeterReadSubmitParams';\r\nimport { IMultipleMeterReadSubmitAndSendParams } from '../../interfaces/multipleMeterReadSubmitAndSendParams';\r\nimport { IMultipleMeterReadSubmitResponse } from '../../interfaces/multipleMeterReadSubmitResponse';\r\nimport { IMultipleMeterReadSubmitAndSendResponse } from '../../interfaces/multipleMeterReadSubmitAndSendResponse';\r\n\r\n@Module({ namespaced: true })\r\nexport default class Metering extends VuexModule {\r\n private meteringService = new MeteringService();\r\n\r\n // State\r\n private selectedMeterSerialNumber: (string | null) = null;\r\n private meterPointAq: (string | null) = null;\r\n private showDmReads = false;\r\n private availableMeters = Array();\r\n private totalMeterReadings = 0;\r\n private meterReads = Array();\r\n private dmMeterSelected = false; \r\n private fileDownload = {} as IFileDownload;\r\n private multipleMeterReadsTemplateDownload = {} as IFileDownload;\r\n private completedMultipleMeterReadsTemplateDownload = {} as IFileDownload;\r\n private previousMeterRead: (IMeterReadingDetail | null) = { SerialNumber : '',Energy:0,Reading:'',SourceDescription:'',InvoiceDate:'',ReadDate:undefined,EarliestMeterReadingDate:undefined }; \r\n private submitMeterReadResponse: (IMeterReadSubmitResponse | null) = null;\r\n private submitMultipleMeterReadsResponse: (IMultipleMeterReadSubmitResponse | null) = null;\r\n private submitAndSendMultipleMeterReadsResponse: (IMultipleMeterReadSubmitAndSendResponse | null) = null;\r\n\r\n // Getters\r\n get getSelectedMeterSerialNumber(): string | null {\r\n return this.selectedMeterSerialNumber;\r\n }\r\n\r\n get getMeterPointAq(): string | null {\r\n return this.meterPointAq;\r\n }\r\n\r\n get getShowDmReads(): boolean {\r\n return this.showDmReads;\r\n }\r\n\r\n get getAvailableMeters(): Array {\r\n return this.availableMeters;\r\n }\r\n\r\n get getTotalMeterReadings(): number {\r\n return this.totalMeterReadings;\r\n }\r\n\r\n get getMeterReads(): Array {\r\n return this.meterReads;\r\n }\r\n\r\n get getDmMeterSelected(): boolean {\r\n return this.dmMeterSelected;\r\n }\r\n \r\n get fileToDownload(): IFileDownload {\r\n return this.fileDownload;\r\n }\r\n\r\n \r\n get multipleMeterReadsTemplateToDownload(): IFileDownload {\r\n return this.multipleMeterReadsTemplateDownload;\r\n }\r\n\r\n get completedMultipleMeterReadsTemplateToDownload(): IFileDownload {\r\n return this.completedMultipleMeterReadsTemplateDownload;\r\n }\r\n\r\n get getPreviousMeterRead(): IMeterReadingDetail | null {\r\n return this.previousMeterRead;\r\n }\r\n\r\n get getMeterReadSubmitResponse(): IMeterReadSubmitResponse | null {\r\n return this.submitMeterReadResponse;\r\n }\r\n\r\n get getMultipleMeterReadSubmitResponse(): IMultipleMeterReadSubmitResponse | null {\r\n return this.submitMultipleMeterReadsResponse;\r\n }\r\n\r\n get getMultipleMeterReadSubmitAndSendResponse(): IMultipleMeterReadSubmitAndSendResponse | null {\r\n return this.submitAndSendMultipleMeterReadsResponse;\r\n }\r\n\r\n\r\n // Mutations\r\n @Mutation\r\n private setMeterReads(meterReads: IMeterReadsViewModel) {\r\n this.selectedMeterSerialNumber = meterReads.SelectedMeterSerialNumber;\r\n this.meterPointAq = meterReads.MeterPointAq;\r\n this.showDmReads = meterReads.ShowDmReads;\r\n this.availableMeters = meterReads.AvailableMeters;\r\n this.totalMeterReadings = meterReads.TotalMeterReadings;\r\n this.meterReads = meterReads.Reads;\r\n }\r\n\r\n @Mutation\r\n private setFileForDownload(file: IFileDownload) {\r\n this.fileDownload = file;\r\n }\r\n\r\n @Mutation\r\n private setMultipleMeterReadsTemplateForDownload(file: IFileDownload) {\r\n this.multipleMeterReadsTemplateDownload = file;\r\n }\r\n\r\n @Mutation\r\n private setCompletedMultipleMeterReadsTemplateForDownload(file: IFileDownload) {\r\n this.completedMultipleMeterReadsTemplateDownload = file;\r\n }\r\n\r\n @Mutation\r\n public setSelectedMeterSerialNumber(meterSerialNumber: string | null) {\r\n this.selectedMeterSerialNumber = meterSerialNumber;\r\n }\r\n\r\n @Mutation\r\n public setDmMeterSelection(value: boolean) {\r\n this.dmMeterSelected = value;\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n this.selectedMeterSerialNumber = '';\r\n this.meterPointAq = null;\r\n this.showDmReads = false;\r\n this.availableMeters = Array();\r\n this.totalMeterReadings = 0;\r\n this.meterReads = Array();\r\n this.dmMeterSelected = false;\r\n this.fileDownload = {} as IFileDownload;\r\n this.previousMeterRead = { SerialNumber: '', Energy: 0, Reading: '', SourceDescription: '', InvoiceDate: '', ReadDate: undefined,EarliestMeterReadingDate: undefined };\r\n }\r\n\r\n @Mutation\r\n private setPreviousMeterRead(meterRead: IMeterReadingDetail) {\r\n this.previousMeterRead = meterRead;\r\n }\r\n\r\n @Mutation\r\n private setMeterReadSubmitResponse(meterReadSubmitResponse: IMeterReadSubmitResponse) {\r\n this.submitMeterReadResponse = meterReadSubmitResponse;\r\n }\r\n\r\n @Mutation\r\n private setMultipleMeterReadsSubmitResponse(multipleMeterReadsSubmitResponse: IMultipleMeterReadSubmitResponse) {\r\n this.submitMultipleMeterReadsResponse = multipleMeterReadsSubmitResponse;\r\n }\r\n\r\n @Mutation\r\n private setMultipleMeterReadsSubmitAndSendResponse(multipleMeterReadsSubmitAndSendResponse: IMultipleMeterReadSubmitAndSendResponse) {\r\n this.submitAndSendMultipleMeterReadsResponse = multipleMeterReadsSubmitAndSendResponse;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async fetchMeterReads(params: IMeterReadsParams): Promise {\r\n const meterReads = await this.meteringService.getMeterReads(params);\r\n\r\n this.context.commit('setMeterReads', meterReads);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadReport(params: IMeterReadsParams): Promise {\r\n const report = await this.meteringService.downloadReport(params);\r\n\r\n this.context.commit('setFileForDownload', report);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadMultipleMeterReadsTemplate(userId: string): Promise {\r\n const template = await this.meteringService.downloadMultipleMeterReadsTemplate(userId); \r\n\r\n this.context.commit('setMultipleMeterReadsTemplateForDownload', template);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadCompletedMultipleMeterReadsTemplate(params: { userId: string, fileName: string }): Promise {\r\n const template = await this.meteringService.downloadCompletedMultipleMeterReadsTemplate(params.userId, params.fileName);\r\n\r\n this.context.commit('setCompletedMultipleMeterReadsTemplateForDownload', template);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchPreviousMeterRead(params: IMeterReadsParams): Promise {\r\n const previousMeterRead = await this.meteringService.getPreviousMeterRead(params);\r\n\r\n this.context.commit('setPreviousMeterRead', previousMeterRead);\r\n } \r\n\r\n @Action({ rawError: true })\r\n public async submitMeterRead(params: IMeterReadSubmitParams): Promise {\r\n const submitMeterReadResponse = await this.meteringService.submitMeterRead(params);\r\n\r\n this.context.commit('setMeterReadSubmitResponse', submitMeterReadResponse);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitMultipleMeterReads(params: IMultipleMeterReadSubmitParams): Promise {\r\n const submitMultipleMeterReadsResponse = (await this.meteringService.submitMultipleMeterReads(params)) as IMultipleMeterReadSubmitResponse; \r\n\r\n this.context.commit('setMultipleMeterReadsSubmitResponse', submitMultipleMeterReadsResponse);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitAndSendMultipleMeterReads(params: IMultipleMeterReadSubmitAndSendParams): Promise {\r\n const submitAndSendMultipleMeterReadsResponse = (await this.meteringService.submitAndSendMultipleMeterReads(params)) as IMultipleMeterReadSubmitAndSendResponse;\r\n\r\n this.context.commit('setMultipleMeterReadsSubmitAndSendResponse', submitAndSendMultipleMeterReadsResponse);\r\n }\r\n}","import newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IInvoiceDetailsPower } from \"../interfaces/invoiceDetailsPower\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\n\r\nconst CONTROLLER = \"/invoicepower/\";\r\nexport default class InvoicesPowerService {\r\n\r\n public async fetchInvoices(accountNum: string, userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices`, { params: { accountNum: accountNum, userId: userId } });\r\n const result = JSON.parse((response as any).data.content) as IInvoiceDetailsPower[];\r\n return result;\r\n }\r\n\r\n public async invoiceDownload(accountNum, invoiceNo, userId) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices/download`, { params: { invoiceNo, userId, accountNum }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n\r\n }\r\n}","import newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IInvoiceDetailsPower } from \"../interfaces/invoiceDetailsPower\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\n\r\nconst CONTROLLER = \"/invoicepowerflex/\";\r\nexport default class InvoicesPowerFlexService {\r\n\r\n public async fetchInvoices(accountNum: string, userId: string) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices`, { params: { accountNum: accountNum, userId: userId } });\r\n const result = JSON.parse((response as any).data.content) as IInvoiceDetailsPower[];\r\n return result;\r\n }\r\n\r\n public async invoiceDownload(accountNum, invoiceNo, userId) {\r\n const response = await newAxios.get(`${CONTROLLER}siteInvoices/download`, { params: { invoiceNo, userId, accountNum }, responseType: \"blob\" });\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Invoices could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport InvoicePowerService from '@/services/invoicesPowerService';\r\nimport InvoicePowerFlexService from '@/services/invoicesPowerFlexService';\r\nimport { IInvoiceDetailsPower } from '@/interfaces/invoiceDetailsPower';\r\nimport { IFileDownload } from '@/interfaces/fileDownload';\r\n\r\n@Module({ namespaced: true })\r\nexport default class PowerInvoices extends VuexModule {\r\n private invoicesService = new InvoicePowerService();\r\n private invoicesFlexService = new InvoicePowerFlexService();\r\n private invoices: IInvoiceDetailsPower[] = [];\r\n private downloadFileData: IFileDownload | null = null;\r\n\r\n get Invoices() {\r\n return this.invoices;\r\n }\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n private setInvoices(invoices: any): void {\r\n this.invoices = invoices;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(downloadFileData: any): void {\r\n this.downloadFileData = downloadFileData;\r\n }\r\n\r\n //Actions\r\n @Action({ rawError: true })\r\n private async getInvoices(params: { accountNum: string, siteRefNum: string, userId: string }): Promise {\r\n const invoices = await this.invoicesService.fetchInvoices(params.accountNum, params.userId);\r\n this.context.commit('setInvoices', invoices);\r\n }\r\n\r\n @Action({ rawError: true })\r\n private async getFlexInvoices(params: { accountNum: string, siteRefNum: string, userId: string }): Promise {\r\n const invoices = await this.invoicesFlexService.fetchInvoices(params.accountNum, params.userId);\r\n this.context.commit('setInvoices', invoices);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async invoiceDownload(params: { accountNum, invoiceNo, userId }): Promise {\r\n const downloadFileResponse = await this.invoicesService.invoiceDownload(params.accountNum, params.invoiceNo, params.userId);\r\n this.context.commit('setDownloadFile', downloadFileResponse);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async flexInvoiceDownload(params: { accountNum, invoiceNo, userId }): Promise {\r\n const downloadFileResponse = await this.invoicesFlexService.invoiceDownload(params.accountNum, params.invoiceNo, params.userId);\r\n this.context.commit('setDownloadFile', downloadFileResponse);\r\n }\r\n}","import axios from '@/services/invoicesAxiosService';\r\nimport { IPowerGroupInvoiceSummary } from \"@/interfaces/powerGroupInvoiceSummary\";\r\n\r\nconst CONTROLLER = \"/PowerGroupInvoices/\";\r\n\r\nexport default class PowerGroupInvoicesService {\r\n public async getGroupInvoiceSummary(userId: string, groupAccountNumber: string): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetGroupInvoiceSummary`, { params: { userId: userId, groupAccountNumber: groupAccountNumber } });\r\n const result = JSON.parse((response as any).data.content) as Promise;\r\n\r\n return result;\r\n }\r\n\r\n public async downloadGroupInvoice(userId: string, groupAccountNumber: string, groupInvoiceNumber: string) {\r\n const response = await axios.get(`${CONTROLLER}DownloadGroupInvoice`, { params: { userId: userId, groupAccountNumber: groupAccountNumber, groupInvoiceNumber: groupInvoiceNumber }, responseType: \"blob\" });\r\n\r\n return response;\r\n }\r\n\r\n public async downloadGroupSummary(userId: string, groupAccountNumber: string, groupInvoiceNumber: string) {\r\n const response = await axios.get(`${CONTROLLER}DownloadGroupSummary`, { params: { userId: userId, groupAccountNumber: groupAccountNumber, groupInvoiceNumber: groupInvoiceNumber }, responseType: \"blob\" });\r\n\r\n return response;\r\n }\r\n\r\n public async downloadGroupStatement(userId: string, groupAccountNumber: string, groupInvoiceNumber: string) {\r\n const response = await axios.get(`${CONTROLLER}DownloadGroupStatement`, { params: { userId: userId, groupAccountNumber: groupAccountNumber, groupInvoiceNumber: groupInvoiceNumber }, responseType: \"blob\" });\r\n\r\n return response;\r\n }\r\n\r\n public getFileName(contentDisposition: string): string {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n const matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n return matches[1].replace(/['\"]/g, '');\r\n }\r\n return \"file.zip\";\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport PowerGroupInvoicesService from '@/services/powerGroupInvoicesService';\r\n\r\nimport { IPowerGroupInvoiceSummary } from \"@/interfaces/powerGroupInvoiceSummary\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class PowerGroupInvoices extends VuexModule {\r\n private powerGroupInvoicesService = new PowerGroupInvoicesService();\r\n\r\n // State\r\n private powerGroupInvoices = new Array();\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n // Getters\r\n get groupInvoices() {\r\n return this.powerGroupInvoices;\r\n }\r\n\r\n get getFileForDownload() {\r\n return this.downloadFileData;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private setPowerGroupInvoices(groupInvoices: Array) {\r\n this.powerGroupInvoices = groupInvoices;\r\n }\r\n\r\n @Mutation\r\n private setFileForDownload(downloadFileData: any): void {\r\n this.downloadFileData = downloadFileData;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async getGroupInvoiceSummary(params: { userId: string, groupAccountNumber: string }): Promise {\r\n const powerGroupInvoices = await this.powerGroupInvoicesService.getGroupInvoiceSummary(params.userId, params.groupAccountNumber);\r\n\r\n this.context.commit('setPowerGroupInvoices', powerGroupInvoices);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadGroupInvoice(params: { userId: string, groupAccountNumber: string, groupInvoiceNumber: string }): Promise {\r\n const groupInvoice = await this.powerGroupInvoicesService.downloadGroupInvoice(params.userId, params.groupAccountNumber, params.groupInvoiceNumber);\r\n\r\n const fileName = this.powerGroupInvoicesService.getFileName(groupInvoice.headers['content-disposition']);\r\n const model = { data: groupInvoice.data as Blob, fileName: fileName };\r\n\r\n this.context.commit('setFileForDownload', model);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadGroupSummary(params: { userId: string, groupAccountNumber: string, groupInvoiceNumber: string }): Promise {\r\n const groupInvoice = await this.powerGroupInvoicesService.downloadGroupSummary(params.userId, params.groupAccountNumber, params.groupInvoiceNumber);\r\n\r\n const fileName = this.powerGroupInvoicesService.getFileName(groupInvoice.headers['content-disposition']);\r\n const model = { data: groupInvoice.data as Blob, fileName: fileName };\r\n\r\n this.context.commit('setFileForDownload', model);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadGroupStatement(params: { userId: string, groupAccountNumber: string, groupInvoiceNumber: string }): Promise {\r\n const groupInvoice = await this.powerGroupInvoicesService.downloadGroupStatement(params.userId, params.groupAccountNumber, params.groupInvoiceNumber);\r\n\r\n const fileName = this.powerGroupInvoicesService.getFileName(groupInvoice.headers['content-disposition']);\r\n const model = { data: groupInvoice.data as Blob, fileName: fileName };\r\n\r\n this.context.commit('setFileForDownload', model);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport { IPowerMeterReadData } from '../interfaces/powerMeterReadData';\r\n\r\nconst CONTROLLER = \"/MeterReadsPower/\";\r\n\r\nexport default class MeteringPowerService {\r\n\r\n public async getPowerMeterReads(params: { mpan: string, accountNum: string, userId: string }): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetMeterReads`, { params: params });\r\n const result = JSON.parse((response as any).content);\r\n const powerMeterReads = result as IPowerMeterReadData;\r\n return powerMeterReads;\r\n }\r\n\r\n public async getPowerMeterReadStamentsAdd(params: { mpan: string, accountNum: string, meterid: string, userId: string }): Promise {\r\n const response = await axios.get(`${CONTROLLER}GetPowerMeterReadStamentsAdd`, { params: params });\r\n const result = JSON.parse((response as any).content);\r\n return result;\r\n }\r\n\r\n public async addPowerMeterRead(powerMeterReadAddData: any): Promise {\r\n const response = await axios.post(`${CONTROLLER}PowerMeterReadAdd`, powerMeterReadAddData);\r\n const result = JSON.parse((response as any));\r\n return result;\r\n }\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport MeteringPowerService from '@/services/meteringPowerService';\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport { IPowerMeterReadData } from \"@/interfaces/powerMeterReadData\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class PowerMetering extends VuexModule {\r\n private meteringPowerService = new MeteringPowerService();\r\n\r\n // State\r\n private selectedMeterSerialNumber: (string | null) = null;\r\n private meterPointAq: (string | null) = null;\r\n private showDmReads = false;\r\n private availableMeters = Array();\r\n private totalMeterReadings = 0;\r\n private meterReads = Array();\r\n private meterReadStatementAdd = Array();\r\n private dmMeterSelected = false;\r\n private fileDownload = {} as IFileDownload;\r\n\r\n // Getters\r\n get getSelectedMeterSerialNumber(): string | null {\r\n return this.selectedMeterSerialNumber;\r\n }\r\n\r\n get getMeterPointAq(): string | null {\r\n return this.meterPointAq;\r\n }\r\n\r\n get getShowDmReads(): boolean {\r\n return this.showDmReads;\r\n }\r\n\r\n get getAvailableMeters(): Array {\r\n return this.availableMeters;\r\n }\r\n\r\n get getTotalMeterReadings(): number {\r\n return this.totalMeterReadings;\r\n }\r\n\r\n get getMeterReads(): Array {\r\n return this.meterReads;\r\n }\r\n\r\n get getMeterReadStatementAdd(): Array {\r\n return this.meterReadStatementAdd;\r\n }\r\n\r\n get getDmMeterSelected(): boolean {\r\n return this.dmMeterSelected;\r\n }\r\n\r\n get fileToDownload(): IFileDownload {\r\n return this.fileDownload;\r\n }\r\n\r\n // Mutations\r\n @Mutation\r\n private setMeterReads(meterReads: any) {\r\n if (meterReads.length > 0) {\r\n this.selectedMeterSerialNumber = meterReads[0].MeterSerialNumber;\r\n }\r\n else {\r\n this.selectedMeterSerialNumber = null;\r\n }\r\n this.totalMeterReadings = meterReads.length;\r\n this.meterReads = meterReads;\r\n }\r\n\r\n @Mutation\r\n private setFileForDownload(file: IFileDownload) {\r\n this.fileDownload = file;\r\n }\r\n\r\n @Mutation\r\n public setSelectedMeterSerialNumber(meterSerialNumber: string | null) {\r\n this.selectedMeterSerialNumber = meterSerialNumber;\r\n }\r\n\r\n @Mutation\r\n public setDmMeterSelection(value: boolean) {\r\n this.dmMeterSelected = value;\r\n }\r\n\r\n @Mutation\r\n public setMeterReadStatementAdd(meterReadStatementAdd: any) {\r\n this.meterReadStatementAdd = meterReadStatementAdd;\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n this.selectedMeterSerialNumber = null;\r\n this.meterPointAq = null;\r\n this.showDmReads = false;\r\n this.availableMeters = Array();\r\n this.totalMeterReadings = 0;\r\n this.meterReads = Array();\r\n this.dmMeterSelected = false;\r\n this.fileDownload = {} as IFileDownload;\r\n }\r\n\r\n // Actions\r\n @Action({ rawError: true })\r\n public async fetchMeterReads(params: { userId: string, accountNum: string, mpan: string }): Promise {\r\n const meterReads = await this.meteringPowerService.getPowerMeterReads(params);\r\n this.context.commit('setMeterReads', meterReads);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchMeterReadStamentsAdd(params: {userId: string, mpan: string, accountNum:string, meterid: string }): Promise {\r\n const meterReadStatementAdd = await this.meteringPowerService.getPowerMeterReadStamentsAdd(params);\r\n this.context.commit('setMeterReadStatementAdd', meterReadStatementAdd);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async addPowerMeterRead(params: { userId: string, mpan: string, accountNum:string, prevMeterReadDate: string, currentMeterReadDate: string }): Promise {\r\n const model = { UserId: params.userId, Mpan: params.mpan, AccountNum: params.accountNum, PreviousMeterReadDate: params.prevMeterReadDate, CurrentMeterReadDate: params.currentMeterReadDate, PowerMeterReadList: JSON.stringify(this.meterReads) };\r\n console.log(\"Model \",model);\r\n const meterReadStatementAddResult = await this.meteringPowerService.addPowerMeterRead(model);\r\n console.log(meterReadStatementAddResult);\r\n return meterReadStatementAddResult;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateCurrentMeterReads(meterReadCurrentMeterReadArray: any): Promise {\r\n this.context.commit('setCurrentMeterRead', meterReadCurrentMeterReadArray);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async sendCurrentMeterReadsToServer(params: { userId: string, mpan: string, accountNum: string, groupAccountNum: string, currentMeterReadDate: string, currentMeterReadArray: any }): Promise {\r\n const model = { UserId: params.userId, Mpan: params.mpan, AccountNum: params.accountNum, GroupAccountNum: params.groupAccountNum, CurrentMeterReadDate: params.currentMeterReadDate, PowerMeterReadList: JSON.stringify(params.currentMeterReadArray) };\r\n const result = await this.meteringPowerService.addPowerMeterRead(model);\r\n return result;\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IBillingReportRequestParams } from \"@/interfaces/billingReportRequestParams\";\r\nimport { IBillingReportRequestResponse } from '@/interfaces/billingReportRequestResponse';\r\n\r\nconst CONTROLLER = \"/Billing/\";\r\n\r\nexport default class BillingService { \r\n\r\n public async generateBillingReport(data: IBillingReportRequestParams): Promise { \r\n const response = await newAxios.get(`${CONTROLLER}GenerateBillingReport`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n previousReportId: data.previousReportId,\r\n invoiceStartDate: data.invoiceStartDate,\r\n invoiceEndDate: data.invoiceEndDate,\r\n selectedBillingReportOptionValues : data.selectedBillingReportOptionValues \r\n }, responseType: \"blob\"\r\n });\r\n \r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async generateBillingReportForAllAccounts(data: IBillingReportRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}GenerateBillingReportsForAllAccounts`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n invoiceStartDate: data.invoiceStartDate,\r\n invoiceEndDate: data.invoiceEndDate,\r\n selectedBillingReportOptionValues: data.selectedBillingReportOptionValues\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async getGeneratedBillingReports(userId: string, accountNumber: string): Promise {\r\n \r\n const response = await axios.get(`${CONTROLLER}GetGeneratedBillingReports?accountNumber=${accountNumber}&userId=${userId}`);\r\n const result = JSON.parse((response as any).content) as IBillingReportRequestResponse[];\r\n\r\n return result;\r\n }\r\n\r\n public async removeGeneratedBillingReport(userId: string, accountNumber:string, id: string): Promise {\r\n\r\n const response = await axios.post(`${CONTROLLER}RemoveGeneratedBillingReport?accountNumber=${accountNumber}&id=${id}&userId=${userId}`);\r\n\r\n return true; // failures will automatically get picked up by the error handler\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport BillingService from '@/services/billingService';\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport { IBillingReportRequestParams } from \"@/interfaces/billingReportRequestParams\";\r\nimport { IBillingReportRequestResponse } from \"@/interfaces/billingReportRequestResponse\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class Billing extends VuexModule {\r\n\r\n private billingService = new BillingService();\r\n\r\n\r\n private billingReportRequestResponse: (IBillingReportRequestResponse | null) = null;\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private billingReports: IBillingReportRequestResponse[] = [];\r\n \r\n\r\n // Getters\r\n get getBillingReportRequestResponse(): IBillingReportRequestResponse | null {\r\n return this.billingReportRequestResponse;\r\n }\r\n\r\n get getBillingReports(): IBillingReportRequestResponse[] {\r\n return this.billingReports;\r\n }\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n\r\n @Action({ rawError: true })\r\n public async fetchBillingReports(params: { userId: string, accountNumber: string }): Promise {\r\n \r\n const billingReports = await this.billingService.getGeneratedBillingReports(params.userId,params.accountNumber);\r\n\r\n this.context.commit('setBillingReports', billingReports);\r\n }\r\n\r\n @Mutation\r\n private setBillingReports(billingReports: IBillingReportRequestResponse[]) {\r\n this.billingReports = billingReports;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n } \r\n\r\n @Action({ rawError: true })\r\n public async submitBillingReportRequest(params: IBillingReportRequestParams): Promise {\r\n const downloadFileData = await this.billingService.generateBillingReport(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n\r\n @Action({ rawError: true })\r\n public async submitBillingReportForAllAccountsRequest(params: IBillingReportRequestParams): Promise {\r\n const downloadFileData = await this.billingService.generateBillingReportForAllAccounts(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async removeGeneratedBillingReport(params: { userId: string, accountNumber: string, id: string }): Promise {\r\n const result = await this.billingService.removeGeneratedBillingReport(params.userId, params.accountNumber, params.id);\r\n \r\n return result;\r\n } \r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IConsumptionReportsRequestParams } from \"@/interfaces/consumptionReportsRequestParams\";\r\nimport { IConsumptionReportsAllAccountsRequestParams } from \"@/interfaces/consumptionReportsAllAccountsRequestParams\";\r\n\r\n\r\nconst CONTROLLER = \"/ConsumptionReports/\";\r\n\r\nexport default class ConsumptionReportsService { \r\n\r\n public async generateConsumptionReports(data: IConsumptionReportsRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}ConsumptionReport`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n siteRef: data.siteRef,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n includeAllSites: data.includeAllSites\r\n }, responseType: \"blob\"\r\n });\r\n \r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async generateConsumptionReportsAllAccounts(data: IConsumptionReportsAllAccountsRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}ConsumptionReportForAllAccounts`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport ConsumptionReportsService from '@/services/consumptionReportsService';\r\nimport { IConsumptionReportsRequestParams } from \"@/interfaces/consumptionReportsRequestParams\";\r\nimport { IConsumptionReportsAllAccountsRequestParams } from \"@/interfaces/consumptionReportsAllAccountsRequestParams\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class ConsumptionReports extends VuexModule {\r\n\r\n private consumptionReportsService = new ConsumptionReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n } \r\n\r\n @Action({ rawError: true })\r\n public async submitConsumptionReportsRequest(params: IConsumptionReportsRequestParams): Promise {\r\n const downloadFileData = await this.consumptionReportsService.generateConsumptionReports(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitConsumptionReportsAllAccountsRequest(params: IConsumptionReportsAllAccountsRequestParams): Promise {\r\n const downloadFileData = await this.consumptionReportsService.generateConsumptionReportsAllAccounts(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IConsumptionReportsRequestParams } from \"@/interfaces/consumptionReportsRequestParams\";\r\n\r\n\r\nconst CONTROLLER = \"/EnergyCostReports/\";\r\n\r\nexport default class EnergyCostReportsService { \r\n\r\n public async generateEnergyCostReports(data: IConsumptionReportsRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}EnergyCostReport`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n siteRef: data.siteRef,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n includeAllSites: data.includeAllSites\r\n }, responseType: \"blob\"\r\n });\r\n \r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport EnergyCostReportsService from '@/services/energyCostReportsService';\r\nimport { IConsumptionReportsRequestParams } from \"@/interfaces/consumptionReportsRequestParams\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class EnergyCostReports extends VuexModule {\r\n\r\n private EnergyCostReportsService = new EnergyCostReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n } \r\n\r\n @Action({ rawError: true })\r\n public async submitEnergyCostReportsRequest(params: IConsumptionReportsRequestParams): Promise {\r\n const downloadFileData = await this.EnergyCostReportsService.generateEnergyCostReports(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { ICogBasket } from \"@/interfaces/cogBasket\";\r\nimport { ICogReport } from \"@/interfaces/cogREport\";\r\n\r\n\r\nconst CONTROLLER = \"/CostOfGas/\";\r\n\r\nexport default class CostOfGasReportsService { \r\n \r\n public async getBaskets(userId: string): Promise {\r\n\r\n const response = await axios.get(`${CONTROLLER}GetBaskets?userId=${userId}`);\r\n const result = JSON.parse((response as any).content) as ICogBasket[];\r\n\r\n return result;\r\n }\r\n\r\n public async getCogReports(userId: string, basketId : number): Promise {\r\n\r\n const response = await axios.get(`${CONTROLLER}GetCogReports?userId=${userId}&basketId=${basketId}`);\r\n const result = JSON.parse((response as any).content) as ICogReport[];\r\n\r\n return result;\r\n }\r\n\r\n // if basketId is null, the latest reports for the userId are donwloaded\r\n public async downloadCogReports(userId: string, basketId: number | null): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReports`, {\r\n params:\r\n {\r\n userId: userId,\r\n basketId: basketId,\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadCogReport(userId: string, filePath: string ): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReport`, {\r\n params:\r\n {\r\n userId: userId,\r\n filePath: filePath, \r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport CostOfGasReportsService from '@/services/costOfGasReportsService';\r\nimport { ICogBasket } from '../../interfaces/cogBasket';\r\nimport { ICogReport } from '../../interfaces/cogReport';\r\n\r\n@Module({ namespaced: true })\r\nexport default class CostOfGasReports extends VuexModule {\r\n\r\n private costOfGasReportsService = new CostOfGasReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private baskets: ICogBasket[] = [];\r\n\r\n private cogReports: ICogReport[] = [];\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n get getBaskets(): ICogBasket[] {\r\n return this.baskets;\r\n }\r\n\r\n get getCogReports(): ICogReport[] {\r\n return this.cogReports;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Mutation\r\n private setBaskets(baskets: ICogBasket[]) {\r\n this.baskets = baskets;\r\n }\r\n\r\n @Mutation\r\n private setCogReports(cogReports: ICogReport[]) {\r\n this.cogReports = cogReports;\r\n }\r\n\r\n @Mutation\r\n public clearState() {\r\n\r\n this.cogReports = [];\r\n this.baskets = [];\r\n this.downloadFileData = null;\r\n }\r\n\r\n \r\n @Action({ rawError: true })\r\n public async fetchBaskets(params: { userId: string }): Promise {\r\n\r\n const baskets = await this.costOfGasReportsService.getBaskets(params.userId);\r\n\r\n this.context.commit('setBaskets', baskets);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchCogReports(params: { userId: string, basketId :number }): Promise {\r\n\r\n const cogReports = await this.costOfGasReportsService.getCogReports(params.userId,params.basketId);\r\n\r\n this.context.commit('setCogReports', cogReports);\r\n }\r\n \r\n @Action({ rawError: true })\r\n public async downloadCogReport(params: {userId:string, filePath: string}): Promise {\r\n const downloadFileData = await this.costOfGasReportsService.downloadCogReport(params.userId,params.filePath);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadCogReports(params: { userId: string, basketId: number | null }): Promise {\r\n\r\n const downloadFileData = await this.costOfGasReportsService.downloadCogReports(params.userId,params.basketId);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n } \r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\";\r\nimport { IAmrSmartMeteringConsumptionDetails } from \"../interfaces/amrSmartMeteringConsumption\";\r\nimport { IAmrSmartMeterChartDetails } from \"@/interfaces/amrSmartMeterChart\";\r\nimport { IDeliveryAgreement } from \"@/interfaces/deliveryAgreement\";\r\nimport { IAmrSmartMeterReportMprns } from \"@/interfaces/amrSmartMeterReportMprn\"\r\nimport { IUserAccount } from '../interfaces/userAccount';\r\nimport { IAmrSmartMeterReportBulkRequest } from \"@/interfaces/amrSmartMeterReportMprnBulkRequest\";\r\n\r\n\r\nconst CONTROLLER = \"/AmrSmartMeteringReports/\";\r\n\r\nexport default class AmrSmartMeteringReportsService { \r\n \r\n public async downloadReport_gas(userId: string, mprn: string, siteRefNum: string, accountNum: string, startDate: string, endDate: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReport_Gas`, {\r\n params:\r\n {\r\n userId: userId,\r\n mprn: mprn,\r\n siteRefNum: siteRefNum,\r\n accountNum: accountNum,\r\n startDate: startDate,\r\n endDate: endDate\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadReport_power(userId: string, mpan: string, account: string, startDate: string, endDate: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReport_Power`, {\r\n params:\r\n {\r\n userId: userId,\r\n mpan: mpan,\r\n accountNumber: account,\r\n startDate: startDate,\r\n endDate: endDate\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async getAmrChartData_gas(userId: string, mprn: string, siteRefNum: string, accountNum: string): Promise {\r\n\r\n const response = await newAxios.get(`${CONTROLLER}AmrChart_Gas`, {\r\n params: {\r\n userId: userId,\r\n mprn: mprn,\r\n siteRefNum: siteRefNum,\r\n accountNum: accountNum\r\n }, responseType: \"json\"\r\n });\r\n\r\n const ChartData = response.data.content as IAmrSmartMeterChartDetails[];\r\n\r\n return ChartData;\r\n }\r\n\r\n public async getAmrChartData_power(userId: string, mpan: string, account: string): Promise {\r\n\r\n const response = await newAxios.get(`${CONTROLLER}AmrChart_Power`, {\r\n params: {\r\n userId: userId,\r\n mpan: mpan,\r\n accountNumber: account\r\n }, responseType: \"json\"\r\n });\r\n\r\n const ChartData = response.data.content as IAmrSmartMeterChartDetails[];\r\n\r\n return ChartData;\r\n }\r\n\r\n public async downloadBulkReport_gas(userId: string, accountNum: string, startDate: string, endDate: string, mprns: Array): Promise {\r\n\r\n const mprnDtos: Array = mprns.map(mprn => ({\r\n MeterPointReferenceNumber: mprn.MeterPointReferenceNumber,\r\n SiteReferenceNumber: mprn.SiteRefNum,\r\n StartDate: mprn.StartDate\r\n }));\r\n\r\n const payload = {\r\n UserId: userId,\r\n AccountNum: accountNum,\r\n StartDate: new Date(startDate),\r\n EndDate: new Date(endDate),\r\n MprnDetail: mprnDtos\r\n }\r\n const response = await newAxios.post(`${CONTROLLER}DownloadBulkReport_Gas`,\r\n payload,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadBulkReportsAllAccounts_gas(userId: string, startDate: string, endDate: string, userAccounts: Array): Promise {\r\n\r\n const userAccountDetails = new Array();\r\n\r\n userAccounts.forEach(account => {\r\n\r\n const mprnDtos: Array = account.DeliveryAgreements.map(mprn => ({\r\n MeterPointReferenceNumber: mprn.MeterPointReferenceNumber,\r\n SiteReferenceNumber: mprn.SiteRefNum,\r\n StartDate: mprn.StartDate\r\n }));\r\n\r\n const accountDtos: IAmrSmartMeterReportBulkRequest = ({\r\n UserId: userId,\r\n AccountNum: account.AccountNumber,\r\n StartDate: new Date(startDate),\r\n EndDate: new Date(endDate),\r\n MprnDetail: mprnDtos\r\n });\r\n\r\n userAccountDetails.push(accountDtos);\r\n });\r\n\r\n \r\n const payload = { UserAccountDetails: userAccountDetails };\r\n const response = await newAxios.post(`${CONTROLLER}DownloadBulkReportsAllAccounts_Gas`,\r\n payload,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async downloadBulkReport_power(userId: string, account: string, startDate: string, endDate: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadReport_Power`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNumber: account,\r\n startDate: startDate,\r\n endDate: endDate\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async getContractDates_gas(userId: string, mprn: string, siteRefNum: string, accountNum: string): Promise {\r\n\r\n const response = await newAxios.get(`${CONTROLLER}AmrChart_ContractDates`, {\r\n params: {\r\n userId: userId,\r\n mprn: mprn,\r\n siteRefNum: siteRefNum,\r\n accountNum: accountNum\r\n }, responseType: \"json\"\r\n });\r\n\r\n return response.data;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport AmrSmartMeteringReportsService from '@/services/amrSmartMeteringReportsService';\r\nimport { IAmrSmartMeterReportDetails } from '@/interfaces/amrSmartMeterReport';\r\nimport { IAmrSmartMeterChartDetails } from '@/interfaces/amrSmartMeterChart';\r\nimport { IDeliveryAgreement } from '../../interfaces/deliveryAgreement';\r\nimport { IUserAccount } from \"@/interfaces/userAccount\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class AmrSmartMeteringReports extends VuexModule {\r\n\r\n private amrSmartMeteringReportsService = new AmrSmartMeteringReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private amrChartData = Array();\r\n private yearlyAmrChartData = Array();\r\n\r\n private latestAmrChartDataDate: string | null = null;\r\n\r\n private contractStartDate: string | null = null;\r\n private contractEndDate: string | null = null;\r\n \r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n } \r\n\r\n get AmrChartData() {\r\n return this.amrChartData;\r\n }\r\n\r\n get LatestAmrChartDataDate() {\r\n return this.latestAmrChartDataDate;\r\n }\r\n\r\n get YearlyAmrChartData() {\r\n return this.yearlyAmrChartData;\r\n }\r\n\r\n get ContractStartDate() {\r\n return this.contractStartDate;\r\n }\r\n get ContractEndDate() {\r\n return this.contractEndDate;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Mutation\r\n private setAmrChartData(amrChartData: IAmrSmartMeterChartDetails[]): void {\r\n this.amrChartData = amrChartData;\r\n }\r\n\r\n @Mutation\r\n private setLatestAmrChartDataDate(latestAmrChartDataDate: string): void {\r\n this.latestAmrChartDataDate = latestAmrChartDataDate;\r\n }\r\n\r\n @Mutation\r\n private setYearlyAmrChartData(yearlyAmrChartData: IAmrSmartMeterChartDetails[]): void {\r\n this.yearlyAmrChartData = yearlyAmrChartData;\r\n }\r\n\r\n @Mutation\r\n private setContractStartDate(contractStartDate: string): void {\r\n this.contractStartDate = contractStartDate;\r\n }\r\n\r\n @Mutation\r\n private setContractEndDate(contractEndDate: string): void {\r\n this.contractEndDate = contractEndDate;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadReport_gas(params: { userId: string, mprn: string, siteRefNum: string, accountNum: string, startDate: string, endDate: string }): Promise {\r\n const downloadFileData = await this.amrSmartMeteringReportsService.downloadReport_gas(params.userId, params.mprn, params.siteRefNum, params.accountNum, params.startDate, params.endDate);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadReport_power(params: { userId: string, mpan: string, account: string, startDate: string, endDate: string }): Promise {\r\n const downloadFileData = await this.amrSmartMeteringReportsService.downloadReport_power(params.userId, params.mpan, params.account, params.startDate, params.endDate);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadBulkReport_gas(params: { userId: string, accountNum: string, startDate: string, endDate: string, mprns: Array }): Promise {\r\n const downloadFileData = await this.amrSmartMeteringReportsService.downloadBulkReport_gas(params.userId, params.accountNum, params.startDate, params.endDate, params.mprns);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadBulkReport_power(params: { userId: string, account: string, startDate: string, endDate: string, mpans: Array }): Promise {\r\n const downloadFileData = await this.amrSmartMeteringReportsService.downloadBulkReport_power(params.userId, params.account, params.startDate, params.endDate);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async downloadBulkReportsAllAccounts_gas(params: { userId: string, startDate: string, endDate: string, userAccounts: Array }): Promise < void> {\r\n const downloadFileData = await this.amrSmartMeteringReportsService.downloadBulkReportsAllAccounts_gas(params.userId, params.startDate, params.endDate, params.userAccounts);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getAmrChartData_gas(params: { userId: string, mprn: string, siteRefNum: string, accountNum: string }): Promise {\r\n\r\n //Clear existing data\r\n this.context.commit('setAmrChartData', []);\r\n this.context.commit('setLatestAmrChartDataDate', null);\r\n this.context.commit('setContractStartDate', '');\r\n this.context.commit('setContractEndDate', '');\r\n this.context.commit('setYearlyAmrChartData', []);\r\n\r\n const amrChartData = await this.amrSmartMeteringReportsService.getAmrChartData_gas(params.userId, params.mprn, params.siteRefNum, params.accountNum);\r\n\r\n if (!amrChartData) {\r\n return;\r\n }\r\n\r\n const parsedData = JSON.parse(amrChartData.toString()); \r\n\r\n const latestAmrChartDataDate = parsedData.filter(x => x.y != null).slice(-1)[0].x;\r\n\r\n this.context.commit('setAmrChartData', amrChartData); \r\n this.context.commit('setLatestAmrChartDataDate', latestAmrChartDataDate);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getAmrChartData_power(params: { userId: string, mpan: string, account: string }): Promise {\r\n\r\n //Clear existing data\r\n this.context.commit('setAmrChartData', []);\r\n this.context.commit('setLatestAmrChartDataDate', null);\r\n this.context.commit('setContractStartDate', '');\r\n this.context.commit('setContractEndDate', '');\r\n this.context.commit('setYearlyAmrChartData', []);\r\n\r\n const amrChartData = await this.amrSmartMeteringReportsService.getAmrChartData_power(params.userId, params.mpan, params.account);\r\n if (!amrChartData) {\r\n return;\r\n }\r\n\r\n const parsedData = JSON.parse(amrChartData.toString());\r\n\r\n const latestAmrChartDataDate = parsedData.filter(x => x.y != null).slice(-1)[0].x;\r\n\r\n this.context.commit('setAmrChartData', amrChartData);\r\n this.context.commit('setLatestAmrChartDataDate', latestAmrChartDataDate);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async aggregateAmrChartData_gas(): Promise {\r\n\r\n this.context.commit('setYearlyAmrChartData', []);\r\n\r\n if (!this.amrChartData) {\r\n return;\r\n }\r\n\r\n const yearlyAmrChartData: (IAmrSmartMeterChartDetails)[] = JSON.parse(this.AmrChartData.toString());\r\n\r\n const earliestDataDateAllowed = new Date();\r\n earliestDataDateAllowed.setFullYear(earliestDataDateAllowed.getFullYear() - 1);\r\n\r\n const latestDataDateAllowed = new Date();\r\n\r\n const firstDataTime = new Date(yearlyAmrChartData[0].x);\r\n const lastDataTime = new Date(yearlyAmrChartData[yearlyAmrChartData.length - 1].x);\r\n\r\n\r\n if (earliestDataDateAllowed < firstDataTime) {\r\n let months;\r\n months = (firstDataTime.getFullYear() - earliestDataDateAllowed.getFullYear()) * 12;\r\n months = months - earliestDataDateAllowed.getMonth() + firstDataTime.getMonth();\r\n\r\n const newEarlyDate = earliestDataDateAllowed;\r\n newEarlyDate.setMonth(newEarlyDate.getMonth() - 1);\r\n\r\n for (let i = 0; i < months; i++) {\r\n newEarlyDate.setMonth(newEarlyDate.getMonth() + 1);\r\n const datestring = newEarlyDate.getFullYear() + \"-\" + (\"0\" + (newEarlyDate.getMonth() + 1)).slice(-2) + \"-01\";\r\n yearlyAmrChartData.push({ x: datestring, y: null });\r\n }\r\n }\r\n\r\n if (latestDataDateAllowed > lastDataTime) {\r\n let months;\r\n months = (latestDataDateAllowed.getFullYear() - lastDataTime.getFullYear()) * 12;\r\n months = months - lastDataTime.getMonth() + latestDataDateAllowed.getMonth() - 1;\r\n\r\n const newLateDate = lastDataTime;\r\n newLateDate.setDate(1);\r\n\r\n for (let i = 0; i <= months; i++) { \r\n newLateDate.setMonth(newLateDate.getMonth() + 1);\r\n const datestring = newLateDate.getFullYear() + \"-\" + (\"0\" + (newLateDate.getMonth()+1)).slice(-2) + \"-01\"\r\n yearlyAmrChartData.push({ x: datestring, y: null });\r\n }\r\n }\r\n\r\n const yearAggregatedData: (IAmrSmartMeterChartDetails)[] = Object.values(yearlyAmrChartData.reduce((aggregated, item) => {\r\n const x = item.x.substr(0, 7);\r\n const key = `${x}`;\r\n const y = (aggregated[key]?.y + item.y) || item.y;\r\n\r\n aggregated[key] = { x, y };\r\n return aggregated;\r\n }, {}));\r\n\r\n //sort extra days added\r\n yearAggregatedData.sort((a, b) => (a.x > b.x ? 1 : -1));\r\n\r\n this.context.commit('setYearlyAmrChartData', JSON.stringify(yearAggregatedData));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getContractDates(params: { userId: string, mprn: string, siteRefNum: string, accountNum: string }): Promise {\r\n\r\n this.context.commit('setContractStartDate', '');\r\n this.context.commit('setContractEndDate', '');\r\n\r\n const result = await this.amrSmartMeteringReportsService.getContractDates_gas(params.userId, params.mprn, params.siteRefNum, params.accountNum);\r\n\r\n const resultDates = Object.keys(result).map(key => result[key]);\r\n if (resultDates[1]) {\r\n const startDate = resultDates[1].substr(6, 4) + \"-\" + resultDates[1].substr(3, 2) + \"-\" + resultDates[1].substr(0, 2);\r\n this.context.commit('setContractStartDate', startDate);\r\n if (resultDates[0]) {\r\n const endDate = resultDates[0].substr(6, 4) + \"-\" + resultDates[0].substr(3, 2) + \"-\" + resultDates[0].substr(0, 2);\r\n if (startDate != endDate) { this.context.commit('setContractEndDate', endDate); }\r\n }\r\n }\r\n \r\n }\r\n\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IDMConsumptionPrepopulatedDataResponse } from \"@/interfaces/dmConsumptionPrepopulatedDataResponse\";\r\nimport { IDMDownloadConsumptionGraphRequestParams } from \"@/interfaces/dmDownloadConsumptionGraphRequestParams\";\r\nimport { IDMConsumptionGraphDataResponse } from \"@/interfaces/dmConsumptionGraphDataResponse\";\r\n\r\nconst CONTROLLER = \"/DMConsumptionReports/\";\r\n\r\nexport default class DMConsumptionReportsService { \r\n\r\n public async getIsActiveDM(userId: string, accountNum : string, siteRef: string): Promise {\r\n let IsActiveDM = false;\r\n\r\n const response = await newAxios.get(`${CONTROLLER}GetAgreementIsActiveDM`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNum: accountNum,\r\n siteRef: siteRef\r\n }, responseType:\"json\"\r\n }).then(result => {\r\n IsActiveDM = JSON.parse(result.data);\r\n });\r\n\r\n return IsActiveDM;\r\n }\r\n\r\n public async getPrepopulatedData(userId: string, accountNum: string, siteRef: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}getPrepopulatedData?siteRef=${siteRef}&accountNum=${accountNum}&userId=${userId}`);\r\n const result = JSON.parse(response.data.content) as IDMConsumptionPrepopulatedDataResponse;\r\n\r\n return result;\r\n }\r\n\r\n public async getDMConsumptionGraphData(data: IDMDownloadConsumptionGraphRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DMConsumptionGraph`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNum: data.accountNumber,\r\n siteRef: data.siteRef,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n meterPointReferenceNumber: data.meterPointReferenceNumber\r\n }\r\n });\r\n\r\n const result = JSON.parse(response.data.content) as IDMConsumptionGraphDataResponse;\r\n\r\n return result;\r\n }\r\n\r\n public async downloadDMConsumptionGraph(data: IDMDownloadConsumptionGraphRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadDMConsumptionGraph`, {\r\n params:\r\n {\r\n userId:data.userId,\r\n accountNumber: data.accountNumber,\r\n siteRef: data.siteRef,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n meterPointReferenceNumber: data.meterPointReferenceNumber\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport DMConsumptionReportsService from '@/services/dmConsumptionReportsService';\r\nimport { IDMConsumptionPrepopulatedDataResponse } from \"@/interfaces/dmConsumptionPrepopulatedDataResponse\";\r\nimport { IDMDownloadConsumptionGraphRequestParams } from \"@/interfaces/dmDownloadConsumptionGraphRequestParams\";\r\nimport { IDMConsumptionGraphDataResponse } from \"@/interfaces/dmConsumptionGraphDataResponse\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class DMConsumptionReports extends VuexModule {\r\n\r\n private dmConsumptionReportsService = new DMConsumptionReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private IsActiveDM: boolean | false = false;\r\n\r\n private DMConsumptionPrepopulateDataResponse: IDMConsumptionPrepopulatedDataResponse | null = null;\r\n\r\n private DMConsumptionGraphDataResponse: IDMConsumptionGraphDataResponse | null = null;\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n get getIsActiveDM() {\r\n return this.IsActiveDM;\r\n }\r\n\r\n get getPrepopulatedData() {\r\n return this.DMConsumptionPrepopulateDataResponse;\r\n }\r\n\r\n get getDMConsumptionGraphData() {\r\n return this.DMConsumptionGraphDataResponse;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Mutation\r\n private setDmMeterFlag(value: boolean) {\r\n this.IsActiveDM = value;\r\n }\r\n\r\n @Mutation\r\n private setConsumptionGraphData(data: IDMConsumptionGraphDataResponse) {\r\n this.DMConsumptionGraphDataResponse = data;\r\n }\r\n\r\n @Mutation\r\n private setPrepopulatedData(data: IDMConsumptionPrepopulatedDataResponse) {\r\n this.DMConsumptionPrepopulateDataResponse = data;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitIsActiveDM(params: { userId: string, accountNum: string, siteRef: string }): Promise {\r\n const DmFlag = await this.dmConsumptionReportsService.getIsActiveDM(params.userId,params.accountNum,params.siteRef);\r\n\r\n this.context.commit('setDmMeterFlag', DmFlag);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitGetPrepopulatedValues(params: { userId: string, accountNum: string, siteRef: string }): Promise {\r\n const result = await this.dmConsumptionReportsService.getPrepopulatedData(params.userId, params.accountNum, params.siteRef);\r\n\r\n this.context.commit('setPrepopulatedData', result);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDMDownloadConsumptionGraph(params: IDMDownloadConsumptionGraphRequestParams): Promise {\r\n const downloadFileData = await this.dmConsumptionReportsService.downloadDMConsumptionGraph(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitGetDMConsumptionGraph(params: IDMDownloadConsumptionGraphRequestParams): Promise {\r\n const result = await this.dmConsumptionReportsService.getDMConsumptionGraphData(params);\r\n\r\n this.context.commit('setConsumptionGraphData', result);\r\n }\r\n\r\n}","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport store from '../store'\r\nimport moment from 'moment';\r\nimport { IErrorDetail} from \"@/interfaces/errorDetail\";\r\n\r\nconst vm = new Vue({});\r\nconst newAxios = axios.create();\r\n\r\nnewAxios.interceptors.request.use(\r\n config => {\r\n return config;\r\n },\r\n error => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nnewAxios.interceptors.response.use(\r\n response => {\r\n return response;\r\n },\r\n async error => {\r\n await errorHandler(error);\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n\r\nconst errorHandler = async (error: any) => {\r\n let errorMessage = '';\r\n let content = '';\r\n let errorDetail: IErrorDetail ;\r\n let data: any;\r\n switch (error.response.status) {\r\n case 404:\r\n return error.response.data.message !== \"\" ? error.response.data.message : \"Service not reachable. Try again later.\";\r\n case 401:\r\n if (document.location.pathname != \"/\") {\r\n\r\n const isLoggedIn = store.getters[\"Auth/isLoggedIn\"];\r\n\r\n if (isLoggedIn) {\r\n store.dispatch('Auth/signOut');\r\n }\r\n\r\n document.location.href = \"/\";\r\n }\r\n // no break - fall through to the 400 code to display the error.\r\n case 400:\r\n if (error.response.data instanceof Blob) {\r\n\r\n const errorData = JSON.parse(await error.response.data.text());\r\n\r\n errorMessage = errorData.message;\r\n content = errorData.content;\r\n\r\n } else {\r\n\r\n errorMessage = error?.response?.data?.message;\r\n content = error?.response?.data?.content;\r\n\r\n }\r\n\r\n errorDetail = GetErrorDetail(errorMessage);\r\n\r\n if (content == null) {\r\n return errorDetail.Message1;\r\n }\r\n\r\n data = JSON.parse(content);\r\n return format(data.LatestInvoiceDate == null ? errorDetail.Message1 : errorDetail.Message2, moment(data.StartRange).format('MMM YYYY'), moment(data.EndRange).format('MMM YYYY'), moment(data.LatestInvoiceDate).format('MMM YYYY'));\r\n default:\r\n return \"Unknown error. Please contact the administrator.\";\r\n }\r\n};\r\n\r\nconst format = function (value, ...params): string {\r\n const args = params;\r\n return value.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n};\r\n\r\nconst GetErrorDetail = function (errorName: string): IErrorDetail {\r\n\r\n switch (errorName) {\r\n case \"ReportNotGenerated\":\r\n return { Message1: \"Unfortunately this download is unavailable at this time, please try again later.\" } as IErrorDetail\r\n }\r\n\r\n return { Message1:errorName } as IErrorDetail\r\n\r\n};\r\n\r\nexport default newAxios;","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/reportsAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IDailyDownloadConsumptionReportRequestParams } from \"@/interfaces/dailyDownloadConsumptionReportRequestParams\";\r\n\r\nconst CONTROLLER = \"/DailyConsumptionReports/\";\r\n\r\nexport default class DailyConsumptionReportsService { \r\n\r\n public async getIsActiveDM(userId: string, accountNum : string, siteRef: string): Promise {\r\n let IsActiveDM = false;\r\n\r\n const response = await newAxios.get(`${CONTROLLER}GetAgreementIsActiveDM`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNum: accountNum,\r\n siteRef: siteRef\r\n }, responseType:\"json\"\r\n }).then(result => {\r\n IsActiveDM = JSON.parse(result.data);\r\n });\r\n\r\n return IsActiveDM;\r\n }\r\n\r\n public async downloadDailyConsumptionReport(userId: string, mprn: string, siteRefNum: string, accountNum: string, startDate: string, endDate: string): Promise {\r\n\r\n try {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadDailyConsumptionReport`, {\r\n params:\r\n {\r\n userId: userId,\r\n mprn: mprn,\r\n siteRefNum: siteRefNum,\r\n accountNum: accountNum,\r\n startDate: startDate,\r\n endDate: endDate\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n } catch (e) {\r\n console.log(e);\r\n throw e;\r\n }\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport DailyConsumptionReportService from '@/services/dailyConsumptionReportsService';\r\nimport { IDailyDownloadConsumptionReportRequestParams } from \"@/interfaces/dailyDownloadConsumptionReportRequestParams\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class DailyConsumptionReports extends VuexModule {\r\n\r\n private dailyConsumptionReportsService = new DailyConsumptionReportService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private IsActiveDM: boolean | false = false;\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n get getIsActiveDM() {\r\n return this.IsActiveDM;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitIsActiveDM(params: { userId: string, accountNum: string, siteRef: string }): Promise {\r\n const DmFlag = await this.dailyConsumptionReportsService.getIsActiveDM(params.userId,params.accountNum,params.siteRef);\r\n\r\n this.context.commit('setDmMeterFlag', DmFlag);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDailyDownloadConsumptionReports(params: { userId: string, mprn: string, siteRefNum: string, accountNum: string, startDate: string, endDate: string }): Promise {\r\n\r\n const downloadFileData = await this.dailyConsumptionReportsService.downloadDailyConsumptionReport(params.userId, params.mprn, params.siteRefNum, params.accountNum, params.startDate, params.endDate);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\n\r\nimport { IPowerConsumptionReportsRequestParams } from '@/interfaces/powerConsumptionReportsRequestParams';\r\nimport { IPowerConsumptionReportsRequestMultiDateParams } from '@/interfaces/powerConsumptionReportsRequestMultiDateParams';\r\n\r\nconst CONTROLLER = \"/ConsumptionReportsPower/\";\r\n\r\nexport default class ConsumptionPowerReportsService { \r\n\r\n public async getGraphData(data: IPowerConsumptionReportsRequestParams): Promise {\r\n let GraphData = '';\r\n\r\n const response = await newAxios.get(`${CONTROLLER}GetGraphData`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n mpan: data.mpan,\r\n fromDate: data.fromDate,\r\n toDate: data.toDate\r\n }, responseType: \"json\"\r\n }).then(result => {\r\n GraphData = result.data.content;\r\n });\r\n\r\n return GraphData;\r\n }\r\n\r\n public async getAdditionalGraphData(data: IPowerConsumptionReportsRequestParams): Promise {\r\n let AdditionalGraphData = '';\r\n\r\n const response = await newAxios.get(`${CONTROLLER}HalfHourlyData`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n mpan: data.mpan,\r\n startDate: data.fromDate,\r\n endDate: data.toDate\r\n }, responseType: \"json\"\r\n }).then(result => {\r\n AdditionalGraphData = result.data.content;\r\n });\r\n\r\n return AdditionalGraphData;\r\n }\r\n\r\n public async getDownloadDailyConsumptionReport(data: IPowerConsumptionReportsRequestParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}HalfHourlyCsv`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n mpan: data.mpan,\r\n fromDate: data.fromDate,\r\n toDate: data.toDate\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async getDownloadHalfHourlyCsvMultiDate(data: IPowerConsumptionReportsRequestMultiDateParams): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}HalfHourlyCsvMultiDate`, {\r\n params:\r\n {\r\n userId: data.userId,\r\n accountNumber: data.accountNumber,\r\n mpan: data.mpan,\r\n commaSeperatedDates: data.dates\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport ConsumptionPowerReportsService from '@/services/consumptionPowerReportsService';\r\n\r\nimport { IPowerConsumptionReportsRequestParams } from '@/interfaces/powerConsumptionReportsRequestParams';\r\nimport { IPowerConsumptionReportsRequestMultiDateParams } from '@/interfaces/powerConsumptionReportsRequestMultiDateParams';\r\n\r\n@Module({ namespaced: true })\r\nexport default class ConsumptionReportsPower extends VuexModule {\r\n\r\n private consumptionPowerReportsService = new ConsumptionPowerReportsService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null; \r\n\r\n private GraphData: string | '' = '';\r\n\r\n private AdditionalGraphData: string | '' = '';\r\n\r\n get getDownloadFileData() {\r\n return this.downloadFileData;\r\n }\r\n \r\n get getGraphData() {\r\n return this.GraphData;\r\n }\r\n\r\n get getAdditionalGraphData() {\r\n return this.AdditionalGraphData;\r\n } \r\n\r\n @Mutation\r\n private setGraphData(value: string) {\r\n this.GraphData = value;\r\n }\r\n\r\n @Mutation\r\n private setAdditionalGraphData(value: string) {\r\n this.AdditionalGraphData = value;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n } \r\n\r\n @Action({ rawError: true })\r\n public async submitGetGraphData(params: IPowerConsumptionReportsRequestParams): Promise {\r\n const GraphData = await this.consumptionPowerReportsService.getGraphData(params);\r\n\r\n this.context.commit('setGraphData', GraphData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitGetAdditionalGetGraphData(params: IPowerConsumptionReportsRequestParams): Promise {\r\n const AdditionalGraphData = await this.consumptionPowerReportsService.getAdditionalGraphData(params);\r\n\r\n this.context.commit('setAdditionalGraphData', AdditionalGraphData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDownlaodDailyConsumptionReport(params: IPowerConsumptionReportsRequestParams): Promise {\r\n const downloadFileData = await this.consumptionPowerReportsService.getDownloadDailyConsumptionReport(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDownlaodHalfHourlyMultiDate(params: IPowerConsumptionReportsRequestMultiDateParams): Promise {\r\n const downloadFileData = await this.consumptionPowerReportsService.getDownloadHalfHourlyCsvMultiDate(params);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport getFileName from \"@/helpers/fileNameHelper\"\r\nimport { IAccountBalanceDetails } from \"@/interfaces/accountBalanceDetails\";\r\n\r\nconst CONTROLLER = \"/BALANCE/\";\r\n\r\nexport default class BalanceService { \r\n\r\n public async getAccountBalanceDetails(userId: string, accountNumber: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}GetBalanceDetails`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNumber: accountNumber\r\n }, responseType: \"json\"\r\n });\r\n\r\n const result = JSON.parse((response.data.content as any)) as IAccountBalanceDetails;\r\n\r\n return result;\r\n }\r\n\r\n public async DownloadDDMandate(userId: string, accountNumber: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadMandate`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNumber: accountNumber\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async submitDownloadBalanceXlsx(userId: string, accountNumber: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadXlsx`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNumber: accountNumber\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n\r\n public async submitDownloadBalancePDF(userId: string, accountNumber: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}DownloadPDF`, {\r\n params:\r\n {\r\n userId: userId,\r\n accountNumber: accountNumber\r\n }, responseType: \"blob\"\r\n });\r\n\r\n const fileName = getFileName(response.headers['content-disposition']);\r\n\r\n if (!fileName) {\r\n throw new Error(\"Report could not be downloaded\");\r\n }\r\n\r\n const file = {\r\n fileName: fileName,\r\n data: response.data as Blob\r\n } as IFileDownload;\r\n\r\n return file;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport BalanceService from '@/services/balanceService';\r\nimport { IFileDownload } from \"@/interfaces/fileDownload\";\r\nimport { IAccountBalanceDetails } from \"@/interfaces/accountBalanceDetails\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class Balance extends VuexModule {\r\n\r\n private balanceService = new BalanceService();\r\n\r\n private downloadFileData: { data: Blob | null, fileName: string | null } | null = null;\r\n\r\n private accountBalanceDetails: IAccountBalanceDetails | null = null;\r\n \r\n // Getters\r\n get getBalanceDetails(): IAccountBalanceDetails | null {\r\n return this.accountBalanceDetails;\r\n }\r\n\r\n get getDownloadBalanceFileData() {\r\n return this.downloadFileData;\r\n }\r\n\r\n @Mutation\r\n private setBalanceDetails(accountBalanceDetails: IAccountBalanceDetails) {\r\n this.accountBalanceDetails = accountBalanceDetails;\r\n }\r\n\r\n @Mutation\r\n private setDownloadFile(data: any) {\r\n this.downloadFileData = data;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitGetBalanceDetails(params: { userId: string, accountNumber: string }): Promise {\r\n const BalanceDetails = await this.balanceService.getAccountBalanceDetails(params.userId, params.accountNumber);\r\n\r\n this.context.commit('setBalanceDetails', BalanceDetails);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDownloadDDManadate(params: { userId: string, accountNumber: string }): Promise {\r\n const downloadFileData = await this.balanceService.DownloadDDMandate(params.userId, params.accountNumber);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDownloadBalanceXlsx(params: { userId: string, accountNumber: string }): Promise {\r\n const downloadFileData = await this.balanceService.submitDownloadBalanceXlsx(params.userId, params.accountNumber);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async submitDownloadBalancePDF(params: { userId: string, accountNumber: string }): Promise {\r\n const downloadFileData = await this.balanceService.submitDownloadBalancePDF(params.userId, params.accountNumber);\r\n\r\n this.context.commit('setDownloadFile', downloadFileData);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IManageChangeEmergencyContactRequestParams } from \"@/interfaces/manageChangeEmergencyContactRequestParams\";\r\nimport { IManageChangeBillingAddressRequestParams } from \"@/interfaces/manageChangeBillingAddressRequestParams\";\r\nimport { IManageChangeSiteAddressRequestParams } from \"@/interfaces/manageChangeSiteAddressRequestParams\";\r\n\r\nimport { IManageBillingAddressPrepopulated } from \"@/interfaces/manageBillingAddressPrepopulated\";\r\nimport { IManageSiteAddressPrepopulated } from \"@/interfaces/manageSiteAddressPrepopulated\";\r\n\r\nconst CONTROLLER = \"/Manage/\";\r\n\r\nexport default class ManageService { \r\n\r\n public async sendEmergencyContactDetails(data: IManageChangeEmergencyContactRequestParams): Promise {\r\n let emailSent = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}EmergencyContactForm`, { params: data })\r\n .then(result => {\r\n emailSent = JSON.parse(result.data.content)\r\n });\r\n\r\n return emailSent;\r\n }\r\n\r\n public async sendBillingAddressDetails(data: IManageChangeBillingAddressRequestParams): Promise {\r\n let emailSent = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}ChangeBillingAddress`, { params: data })\r\n .then(result => {\r\n emailSent = JSON.parse(result.data.content)\r\n });\r\n\r\n return emailSent;\r\n }\r\n\r\n public async sendSiteAddressDetails(data: IManageChangeSiteAddressRequestParams): Promise {\r\n let emailSent = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}ChangeSiteAddress`, { params: data })\r\n .then(result => {\r\n emailSent = JSON.parse(result.data.content)\r\n });\r\n\r\n return emailSent;\r\n }\r\n\r\n public async getPrepopulatedData(userId: string, accountNumber: string, siteRef: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}GetCurrentBillingAddress?userId=${userId}&accountNumber=${accountNumber}&siteRef=${siteRef}`);\r\n const result = JSON.parse(response.data.content) as IManageBillingAddressPrepopulated;\r\n\r\n return result;\r\n }\r\n\r\n public async getSiteAddress(userId: string, accountNumber: string, siteRef: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}GetCurrentSiteAddress?userId=${userId}&accountNumber=${accountNumber}&siteRef=${siteRef}`);\r\n const result = JSON.parse(response.data.content) as IManageSiteAddressPrepopulated;\r\n\r\n return result;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport ManageService from '@/services/manageService';\r\nimport { IManageChangeEmergencyContactRequestParams } from \"@/interfaces/manageChangeEmergencyContactRequestParams\";\r\nimport { IManageChangeBillingAddressRequestParams } from \"@/interfaces/manageChangeBillingAddressRequestParams\";\r\nimport { IManageChangeSiteAddressRequestParams } from \"@/interfaces/manageChangeSiteAddressRequestParams\";\r\n\r\nimport { IManageBillingAddressPrepopulated } from \"@/interfaces/manageBillingAddressPrepopulated\";\r\nimport { IManageSiteAddressPrepopulated } from \"@/interfaces/manageSiteAddressPrepopulated\";\r\n\r\n@Module({ namespaced: true })\r\nexport default class Manage extends VuexModule {\r\n\r\n private manageService = new ManageService();\r\n\r\n private emailSentStatus: boolean | false = false;\r\n\r\n private manageBillingAddressPrepopulated: IManageBillingAddressPrepopulated | null = null;\r\n\r\n private manageSiteAddressPrepopulated: IManageSiteAddressPrepopulated | null = null;\r\n\r\n\r\n get getEmailSentStatus() {\r\n return this.emailSentStatus;\r\n }\r\n\r\n get getPrepopulatedBillingAddress() {\r\n return this.manageBillingAddressPrepopulated;\r\n }\r\n\r\n get getPrepopulatedSiteAddress() {\r\n return this.manageSiteAddressPrepopulated;\r\n }\r\n\r\n @Mutation\r\n private setEmailSentStatus(data: any) {\r\n this.emailSentStatus = data;\r\n }\r\n\r\n @Mutation\r\n private setPrepopulatedBillingAddress(data: any) {\r\n this.manageBillingAddressPrepopulated = data;\r\n }\r\n\r\n @Mutation\r\n private setPrepopulatedSiteAddress(data: any) {\r\n this.manageSiteAddressPrepopulated = data;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async sendEmergencyContactDetails(params: IManageChangeEmergencyContactRequestParams): Promise {\r\n const emailSent = await this.manageService.sendEmergencyContactDetails(params);\r\n\r\n this.context.commit('setEmailSentStatus', emailSent);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async sendBillingAddressDetails(params: IManageChangeBillingAddressRequestParams): Promise {\r\n const emailSent = await this.manageService.sendBillingAddressDetails(params);\r\n\r\n this.context.commit('setEmailSentStatus', emailSent);\r\n }\r\n\r\n\r\n @Action({ rawError: true })\r\n public async sendSiteAddressDetails(params: IManageChangeSiteAddressRequestParams): Promise {\r\n const emailSent = await this.manageService.sendSiteAddressDetails(params);\r\n\r\n this.context.commit('setEmailSentStatus', emailSent);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getBillingAddressPrepopulated(params: { userId: string, accountNumber, siteRef: string }): Promise {\r\n const data = await this.manageService.getPrepopulatedData(params.userId, params.accountNumber, params.siteRef);\r\n\r\n this.context.commit('setPrepopulatedBillingAddress', data);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getSiteAddressPrepopulated(params: { userId: string, accountNumber: string, siteRef: string }): Promise {\r\n const data = await this.manageService.getSiteAddress(params.userId, params.accountNumber, params.siteRef);\r\n\r\n this.context.commit('setPrepopulatedSiteAddress', data);\r\n }\r\n}","import Axios from \"@/services/axiosService\";\r\n\r\nconst CONTROLLER = \"/featuretoggle/\";\r\n\r\nexport default class FeatureToggleService {\r\n\r\n public async getStatus(data: any) {\r\n const axios = Axios.create();\r\n const response = await axios.get(`${CONTROLLER}GetStatus`, { params: { userId: data.userId, featureToggleName: data.featureToggleName } });\r\n return response.data;\r\n }\r\n}","import { VuexModule, Module, Action, Mutation } from 'vuex-module-decorators';\r\nimport FeatureToggleService from '@/services/featureToggleService';\r\n\r\n@Module({ namespaced: true })\r\nexport default class FeatureToggle extends VuexModule {\r\n private featureToggleService = new FeatureToggleService();\r\n\r\n private getInvoiceMeterReadPanelFeatureToggleStatus: boolean | false = false;\r\n\r\n // Getters\r\n get getInvoiceAndMeterReadPanelFeatureToggleStatus() {\r\n return this.getInvoiceMeterReadPanelFeatureToggleStatus;\r\n }\r\n\r\n //Mutations\r\n @Mutation\r\n private setMeterReadPanelFeatureToggleStatus(status: any) {\r\n this.getInvoiceMeterReadPanelFeatureToggleStatus = status;\r\n }\r\n\r\n //Actions\r\n @Action({ rawError: true })\r\n public async getInvoiceAndMeterReadPanelFeatureToggleStatusAction(userId: any): Promise {\r\n const result = await this.featureToggleService.getStatus({ userId: userId, featureToggleName: 'Invoice and Meter read dashboard panels'});\r\n this.context.commit('setMeterReadPanelFeatureToggleStatus', result);\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport { IBanner } from \"../interfaces/banner\";\r\n\r\nconst CONTROLLER = \"/bannermanager/\";\r\n\r\nexport default class BannerContentService {\r\n\r\n public async add(userId: string, bannerText: string): Promise {\r\n const response = await axios.post(`${CONTROLLER}Add`, { userId: userId, bannerContent: bannerText });\r\n return response.data;\r\n }\r\n\r\n public async getLatest(userId: string): Promise {\r\n const url = `${CONTROLLER}latest?userId=${userId}`;\r\n const response = await axios.get(url);\r\n return (response as any) as IBanner;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport BannerContentService from '@/services/bannerContentService';\r\nimport { IBanner } from \"@/interfaces/banner\";\r\n\r\n\r\n@Module({ namespaced: true })\r\nexport default class BannerContent extends VuexModule {\r\n\r\n private bannerContentService = new BannerContentService();\r\n private bannerContent: (IBanner | null) = null;\r\n\r\n // Getters\r\n get getLatestBannerContent(): IBanner | null {\r\n return this.bannerContent;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchLatestBannerContent(params: { userId: string }): Promise {\r\n const banner = await this.bannerContentService.getLatest(params.userId);\r\n this.context.commit('setBannerContent', banner);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async saveBannerContent(params: { userId: string, bannerText: string }): Promise {\r\n const banner = await this.bannerContentService.add(params.userId, params.bannerText);\r\n this.context.commit('setBannerContent', banner);\r\n }\r\n\r\n @Mutation\r\n public clearState(): void {\r\n this.bannerContent = null;\r\n }\r\n\r\n @Mutation\r\n private setBannerContent(content: IBanner) {\r\n this.bannerContent = content;\r\n }\r\n}","import axios from '@/services/axiosService';\r\nimport newAxios from \"@/services/invoicesAxiosService\";\r\nimport { IUserType } from \"@/interfaces/userType\";\r\nimport { IAddUserRequestParams } from \"@/interfaces/addUserRequestParams\";\r\nimport { IUpdateUserRequestParams } from \"@/interfaces/updateUserRequestParams\";\r\n\r\nconst CONTROLLER = \"/Admin/\";\r\n\r\nexport default class AdminService { \r\n\r\n public async getManageUserTypes(userId: string): Promise {\r\n const response = await newAxios.get(`${CONTROLLER}GetManageUserTypes?userId=${userId}`);\r\n const result = JSON.parse(response.data.content) as IUserType[];\r\n\r\n return result;\r\n }\r\n \r\n public async addUser(addUserRequestParams: IAddUserRequestParams): Promise {\r\n let userAdded = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}CreateUser`, {\r\n FirstName: addUserRequestParams.FirstName,\r\n Surname: addUserRequestParams.Surname,\r\n Telephone: addUserRequestParams.Telephone,\r\n Email: addUserRequestParams.Email,\r\n ConfirmEmail: addUserRequestParams.ConfirmEmail,\r\n SelectedUserTypeId: addUserRequestParams.SelectedUserTypeId,\r\n SelectedUserTypeName: addUserRequestParams.SelectedUserTypeName,\r\n SelectedGasAccounts: addUserRequestParams.SelectedGasAccounts,\r\n SelectedPowerAccounts: addUserRequestParams.SelectedPowerAccounts,\r\n SelectedBasketIds: addUserRequestParams.SelectedBasketIds,\r\n UserId: addUserRequestParams.UserId\r\n })\r\n .then(result => {\r\n userAdded = JSON.parse(result.data.content)\r\n });\r\n\r\n return userAdded;\r\n }\r\n \r\n public async userExists(userId: string, email: string): Promise {\r\n let userExists = false;\r\n const response = await newAxios.get(`${CONTROLLER}UserExists?userId=${userId}&email=${email}`)\r\n .then(result => {\r\n userExists = JSON.parse(result.data.content)\r\n });\r\n\r\n return userExists;\r\n }\r\n\r\n public async getUsers(userId: string, page: number, size: number, preload: boolean): Promise {\r\n let users = false;\r\n const response = await newAxios.get(`${CONTROLLER}ManageUsers?userId=${userId}&page=${page}&size=${size}&preload=${preload}`)\r\n .then(result => {\r\n users = JSON.parse(result.data.content)\r\n });\r\n\r\n return users;\r\n }\r\n\r\n public async searchUsers(searchString: string, userId: string, page: number, size: number): Promise {\r\n let users = false;\r\n const response = await newAxios.get(`${CONTROLLER}SearchUsers?searchString=${searchString}&userId=${userId}&page=${page}&size=${size}`)\r\n .then(result => {\r\n users = JSON.parse(result.data.content)\r\n });\r\n\r\n return users;\r\n }\r\n\r\n public async updateUser(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}UpdateUser`, {\r\n FirstName: updateUserRequestParams.FirstName,\r\n Surname: updateUserRequestParams.Surname,\r\n Telephone: updateUserRequestParams.Telephone,\r\n Email: updateUserRequestParams.Email,\r\n ConfirmEmail: updateUserRequestParams.ConfirmEmail,\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n IsLocked: updateUserRequestParams.IsLocked,\r\n SelectedUserTypeId: updateUserRequestParams.SelectedUserTypeId,\r\n SelectedUserTypeName: updateUserRequestParams.SelectedUserTypeName,\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async removeAccountGas_Update(userId: string, targetUserId: string, accountNumber: string): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}RemoveAccountGas_Update?userId=${userId}&targetUserId=${targetUserId}&accountNumber=${accountNumber}`)\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async updateAccountGas_Update(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}UpdateAccountGas_Update`, {\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n SelectedGasAccounts: updateUserRequestParams.SelectedGasAccounts\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async addAccountGas_Update(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}AddAccountGas_Update`, {\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n SelectedGasAccounts: updateUserRequestParams.SelectedGasAccounts\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async removeAccountPower_Update(userId: string, targetUserId: string, accountNumber: string): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}RemoveAccountPower_Update?userId=${userId}&targetUserId=${targetUserId}&accountNumber=${accountNumber}`)\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async updateAccountPower_Update(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}UpdateAccountPower_Update`, {\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n SelectedPowerAccounts: updateUserRequestParams.SelectedPowerAccounts\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async addAccountPower_Update(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}AddAccountPower_Update`, {\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n SelectedPowerAccounts: updateUserRequestParams.SelectedPowerAccounts\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async addBaskets_Update(updateUserRequestParams: IUpdateUserRequestParams): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .post(`${CONTROLLER}AddBasket_Update`, {\r\n UserId: updateUserRequestParams.UserId,\r\n UserIdEdit: updateUserRequestParams.UserIdEdit,\r\n SelectedBasketIds: updateUserRequestParams.SelectedBasketIds\r\n })\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async removeBaskets_Update(userId: string, targetUserId: string, basketId: number): Promise {\r\n let userUpdated = false;\r\n\r\n const response = await newAxios\r\n .get(`${CONTROLLER}RemoveBasket_Update?userId=${userId}&targetUserId=${targetUserId}&basketId=${basketId}`)\r\n .then(result => {\r\n userUpdated = JSON.parse(result.data.content)\r\n });\r\n\r\n return userUpdated;\r\n }\r\n\r\n public async UpdateUserPreload(userId: string, userIdEdit: string): Promise {\r\n let PreloadData: any;\r\n const response = await newAxios.get(`${CONTROLLER}UpdateUserPreload?userId=${userId}&userIdEdit=${userIdEdit}`)\r\n .then(result => {\r\n PreloadData = JSON.parse(result.data.content)\r\n });\r\n\r\n return PreloadData;\r\n }\r\n\r\n public async UpdateUserPreloadBaskets(userId: string, requestingUserId: string): Promise {\r\n let PreloadData: any;\r\n const response = await newAxios.get(`${CONTROLLER}UpdateUserPreloadBaskets?userId=${userId}&requestingUserId=${requestingUserId}`)\r\n .then(result => {\r\n PreloadData = JSON.parse(result.data.content)\r\n });\r\n\r\n return PreloadData;\r\n }\r\n}","import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators';\r\nimport AdminService from '@/services/adminService';\r\nimport GasAccountsService from '@/services/gasAccountsService';\r\nimport { IUserType } from \"@/interfaces/userType\";\r\nimport { IAddUserRequestParams } from \"@/interfaces/addUserRequestParams\";\r\nimport { IUpdateUserRequestParams } from \"@/interfaces/updateUserRequestParams\";\r\nimport { IUserAccount } from \"@/interfaces/userAccount\";\r\nimport { IUsers } from \"@/interfaces/users\";\r\nimport { IUser } from \"@/interfaces/user\";\r\nimport PowerAccountsService from '@/services/powerAccountsService';\r\nimport { UserTypes } from '../../utilities/Enums/UserTypes';\r\n\r\n@Module({ namespaced: true })\r\nexport default class Admin extends VuexModule {\r\n\r\n private adminService = new AdminService();\r\n private gasAccountsService = new GasAccountsService();\r\n private powerAccountsService = new PowerAccountsService();\r\n\r\n private manageUserTypes: IUserType[] | null = null;\r\n private userAccounts = Array();\r\n private userPowerAccounts = Array();\r\n private powerAccountsCount = 0;\r\n private page = 1;\r\n\r\n private users: IUsers | null = null;\r\n private userAddedEmailSent: boolean | null = null;\r\n private selectedUserIdForManage: string | null = null;\r\n\r\n get getSelectedUserIdForManage() {\r\n return this.selectedUserIdForManage;\r\n }\r\n\r\n get getSelectedUserForManage() : IUser | null {\r\n if (this.users != null && this.users.UserList != null) {\r\n const selectedUsers = this.users.UserList.filter(_ => _.Id == this.selectedUserIdForManage);\r\n if (selectedUsers.length > 0) {\r\n return selectedUsers[0];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n \r\n\r\n get getManageUserTypes() {\r\n return this.manageUserTypes;\r\n }\r\n\r\n get getUserAccounts(): Array {\r\n return this.userAccounts;\r\n }\r\n\r\n get getPowerUserAccounts(): Array {\r\n return this.userPowerAccounts;\r\n }\r\n\r\n get getPowerAccountsCount(): number {\r\n return this.powerAccountsCount;\r\n }\r\n\r\n get getUsers() {\r\n return this.users;\r\n }\r\n\r\n @Mutation\r\n private setSelectedUserIdForManage(data: string) {\r\n this.selectedUserIdForManage = data;\r\n }\r\n\r\n @Mutation\r\n private setUsers(data: any) {\r\n this.users = data;\r\n }\r\n\r\n @Mutation\r\n private setManageUserTypes(data: any) {\r\n this.manageUserTypes = data;\r\n }\r\n\r\n\r\n @Mutation\r\n private setUserAccounts(userAccounts: Array) {\r\n this.userAccounts = userAccounts;\r\n //this.userAccountsLoaded = true;\r\n }\r\n\r\n @Mutation\r\n private setPowerUserAccounts(userPowerAccounts: Array) {\r\n this.userPowerAccounts = userPowerAccounts;\r\n //this.userAccountsLoaded = true;\r\n }\r\n\r\n @Mutation\r\n private setPowerAccountsCount(powerAccountsCount: number) {\r\n this.powerAccountsCount = powerAccountsCount;\r\n }\r\n\r\n @Mutation\r\n private resetAccountsSearch(accountNumber: string) {\r\n this.userAccounts = Array();\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async doesClaimExistForUser(params: { id: string, claim: string }): Promise {\r\n if (this.users != null && this.users.UserList != null) {\r\n const selectedUsers = this.users.UserList.filter(_ => _.Id == params.id);\r\n if (selectedUsers.length > 0) {\r\n const user = selectedUsers[0];\r\n const matches = user.Claims.filter(_ => _.Type == params.claim)\r\n return matches.length > 0;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async isEditingExternalTpiOrStandardUser(params: { id: string }): Promise {\r\n if (this.users != null && this.users.UserList != null) {\r\n const selectedUsers = this.users.UserList.filter(_ => _.Id === params.id && (_.UserTypeId === UserTypes.Standard || _.UserTypeId === UserTypes.ExternalAdmin || _.UserTypeId === UserTypes.TPI));\r\n\r\n return selectedUsers.length > 0;\r\n }\r\n return false;\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async saveSelectedUserIdForManageAction(params: { userId: string }): Promise {\r\n\r\n this.context.commit('setSelectedUserIdForManage', params.userId);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getManageUserTypesAction(params: { userId: string }): Promise {\r\n const manageUserTypes = await this.adminService.getManageUserTypes(params.userId);\r\n\r\n this.context.commit('setManageUserTypes', manageUserTypes);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async addUser(addUserRequestParams: IAddUserRequestParams): Promise {\r\n return (await this.adminService.addUser(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async userExists(params: { userId: string, email: string }) {\r\n return (await this.adminService.userExists(params.userId, params.email));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async searchUserAccounts(params: { userId: string, query: string, appendResult: (boolean | null) }): Promise {\r\n const pageSize = 200;\r\n const userAccountsData = await this.gasAccountsService.searchUserAccounts(params.userId,\r\n params.query,\r\n this.page,\r\n pageSize,\r\n //this.isLargeUser\r\n false);\r\n\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async fetchUserAccounts(params: { userId: string, accountNumberQuery: string | null }): Promise {\r\n const pageSize = 200;\r\n\r\n const userAccountsData = await this.gasAccountsService.fetchUserAccounts(params.userId, pageSize, params.accountNumberQuery, //this.isLargeUser\r\n false);\r\n\r\n this.context.commit('setUserAccounts', userAccountsData.UserAccounts);\r\n }\r\n\r\n\r\n @Action({ rawError: true })\r\n public async fetchPowerUserAccounts(params: { userId: string, groupAccountNumberQuery: string | null }): Promise {\r\n const pageSize = 200;\r\n const userAccountsData = await this.powerAccountsService.fetchUserAccounts(params.userId, pageSize, null//accountNumber\r\n );\r\n\r\n this.context.commit('setPowerUserAccounts', userAccountsData.UserAccounts);\r\n this.context.commit('setPowerAccountsCount', userAccountsData.TotalAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async searchPowerUserAccounts(params: { userId: string, groupAccountNumberQuery: string, appendResult: boolean }): Promise {\r\n const pageSize = 200;\r\n const userAccountsData = await this.powerAccountsService.searchUserAccounts(params.userId, params.groupAccountNumberQuery, this.page, pageSize);\r\n this.context.commit('setPowerUserAccounts', userAccountsData.UserAccounts);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async getUsersAction(params: { userId: string, page: number, size: number, preload: boolean }): Promise {\r\n const pageSize = 200;\r\n\r\n const users = await this.adminService.getUsers(params.userId, params.page, params.size, params.preload);\r\n\r\n this.context.commit('setUsers', users);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async searchUsersAction(params: { searchString: string, userId: string, page: number, size: number }): Promise {\r\n const pageSize = 200;\r\n const users = await this.adminService.searchUsers(params.searchString, params.userId, params.page, params.size);\r\n\r\n this.context.commit('setUsers', users);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async filterUsersAction(params: { searchString: string }): Promise {\r\n\r\n const users = this.users;\r\n const uppercaseSearch = params.searchString.toUpperCase();\r\n\r\n if (users != null) {\r\n users.UserList = this.users?.UserList.filter(_ =>\r\n _.EmailAddress.toUpperCase().includes(uppercaseSearch)\r\n || _.LastName.toUpperCase().includes(uppercaseSearch)\r\n || _.FirstName.toUpperCase().includes(uppercaseSearch)\r\n ) as Array;\r\n }\r\n\r\n this.context.commit('setUsers', users);\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateUser(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.updateUser(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async removeAccountGas_Update(params: { userId: string, targetUserId: string, accountNumber: string }): Promise {\r\n return (await this.adminService.removeAccountGas_Update(params.userId, params.targetUserId, params.accountNumber));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateAccountGas_Update(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.updateAccountGas_Update(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async addAccountGas_Update(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.addAccountGas_Update(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async removeAccountPower_Update(params: { userId: string, targetUserId: string, accountNumber: string }): Promise {\r\n return (await this.adminService.removeAccountPower_Update(params.userId, params.targetUserId, params.accountNumber));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateAccountPower_Update(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.updateAccountPower_Update(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async addBaskets_Update(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.addBaskets_Update(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async removeBaskets_Update(params: { userId: string, targetUserId: string, basketId: number }): Promise {\r\n return (await this.adminService.removeBaskets_Update(params.userId, params.targetUserId, params.basketId));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async addAccountPower_Update(addUserRequestParams: IUpdateUserRequestParams): Promise {\r\n return (await this.adminService.addAccountPower_Update(addUserRequestParams));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateUserPreload(params: { userId: string, userIdEdit }): Promise {\r\n return (await this.adminService.UpdateUserPreload(params.userId, params.userIdEdit));\r\n }\r\n\r\n @Action({ rawError: true })\r\n public async updateUserPreloadBaskets(params: { userId: string, requestingUserId }): Promise {\r\n return (await this.adminService.UpdateUserPreloadBaskets(params.userId, params.requestingUserId));\r\n }\r\n}","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport Auth from \"./modules/auth.module\";\r\nimport Panel from \"./modules/panel.module\";\r\nimport Products from \"./modules/products.module\";\r\nimport GasAccounts from \"./modules/gasAccounts.module\";\r\nimport PowerAccounts from \"./modules/powerAccounts.module\";\r\nimport Terms from \"./modules/terms.module\";\r\nimport InvoicingWizard from \"./modules/invoicingWizard.module\";\r\nimport MeteringWizard from \"./modules/meteringWizard.module\";\r\nimport BillingWizard from \"./modules/billingWizard.module\";\r\nimport ConsumptionWizard from \"./modules/consumptionWizard.module\";\r\nimport Invoices from \"./modules/invoices.module\";\r\nimport Metering from \"./modules/metering.module\";\r\nimport PowerInvoices from \"./modules/powerInvoices.module\";\r\nimport PowerGroupInvoices from \"./modules/powerGroupInvoices.module\";\r\nimport PowerMetering from \"./modules/powerMetering.module\";\r\nimport Billing from \"./modules/billing.module\";\r\nimport ConsumptionReports from \"./modules/consumptionReports.module\";\r\nimport EnergyCostReports from \"./modules/energyCostReports.module\";\r\nimport CostOfGasReports from \"./modules/costOfGasReports.module\";\r\nimport AmrSmartMeteringReports from \"./modules/amrSmartMeteringReports.module\";\r\nimport DMConsumptionReports from \"./modules/dmConsumptionReports.module\";\r\nimport DailyConsumptionReports from \"./modules/dailyConsumptionReports.module\";\r\nimport ConsumptionReportsPower from \"./modules/consumptionPowerReports.module\";\r\nimport Balance from \"./modules/balance.module\";\r\nimport Manage from \"./modules/manage.module\";\r\nimport FeatureToggle from \"./modules/featureToggle.module\";\r\nimport BannerContent from \"./modules/bannerContent.module\";\r\nimport Admin from \"./modules/admin.module\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n state: {},\r\n mutations: {},\r\n actions: {\r\n clearAllStates({ commit }) {\r\n commit(\"Auth/clearState\");\r\n commit(\"Panel/clearState\"); \r\n commit(\"Terms/clearState\");\r\n commit(\"Products/clearState\");\r\n commit(\"GasAccounts/clearState\");\r\n commit(\"PowerAccounts/clearState\");\r\n commit(\"Metering/clearState\");\r\n commit(\"InvoicingWizard/resetJourney\");\r\n commit(\"MeteringWizard/resetJourney\");\r\n commit(\"BillingWizard/resetJourney\");\r\n commit(\"ConsumptionWizard/resetJourney\");\r\n commit(\"BannerContent/clearState\");\r\n }\r\n },\r\n modules: {\r\n Auth, \r\n Panel,\r\n Products,\r\n GasAccounts,\r\n PowerAccounts,\r\n Terms,\r\n InvoicingWizard,\r\n MeteringWizard,\r\n BillingWizard,\r\n ConsumptionWizard,\r\n Invoices,\r\n Metering,\r\n PowerInvoices,\r\n PowerGroupInvoices,\r\n PowerMetering,\r\n Billing,\r\n ConsumptionReports,\r\n EnergyCostReports,\r\n CostOfGasReports,\r\n AmrSmartMeteringReports,\r\n DMConsumptionReports,\r\n DailyConsumptionReports,\r\n ConsumptionReportsPower,\r\n Balance,\r\n Manage,\r\n FeatureToggle,\r\n BannerContent,\r\n Admin\r\n },\r\n});\r\n\r\nexport default store","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{staticClass:\"d-flex flex-column min-vh-100 px-0 \",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"w-100 sticky-top\",staticStyle:{\"z-index\":\"200\"},attrs:{\"id\":\"stickybit-header-nav-menu\"}},[_c('header-section'),(_vm.isLoggedIn)?_c('nav-menu'):_vm._e(),_c('b-alert',{staticClass:\"banneralert\",attrs:{\"show\":!_vm.InvoiceAndMeterPanelOn && this.$route.name === 'Home',\"variant\":\"primary\"}},[_vm._v(\"My latest invoice and My latest gas reading dashboards are temporarily unavailable\")]),_c('b-alert',{staticClass:\"banneralert\",attrs:{\"show\":_vm.bannerText != null && _vm.bannerText != '' && this.$route.name === 'Home',\"variant\":\"primary\"},domProps:{\"innerHTML\":_vm._s(_vm.bannerText)}})],1),_c('b-container',{staticClass:\"d-flex flex-column flex-fill h-100 bg-gazprom-blue-gradient\",attrs:{\"fluid\":\"\"}},[(!_vm.isStaticPage)?_c('account-selector'):_vm._e(),_c('flex-fill-layout',[_vm._t(\"default\")],2)],1),_c('footer-section')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex-fill\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FlexFillLayout extends Vue {}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlexFillLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlexFillLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlexFillLayout.vue?vue&type=template&id=e0d19e1c&\"\nimport script from \"./FlexFillLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./FlexFillLayout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-alert',{staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"0px\"},attrs:{\"variant\":\"primary\",\"show\":_vm.showImpersonatedBanner,\"fade\":\"\"}},[_c('div',{staticClass:\"container\"},[_c('b-nav-form',{staticClass:\"mx-auto\",attrs:{\"id\":\"impersonate-user-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleImpersonateUser.apply(null, arguments)}}},[_c('b-form-group',[(_vm.isInImpersonationMode)?[_c('b-text',{staticClass:\"ml-1\"},[_vm._v(\"You are impersonating\")]),_c('b-text',{staticClass:\"ml-1\"},[_c('b',[_vm._v(_vm._s(_vm.impersonatedUserEmail))])]),_c('b-button',{staticClass:\"btn-sm ml-1 mt-1 mb-1\",attrs:{\"variant\":\"soft-blue small\"},on:{\"click\":_vm.handleCancelImpersonationModeClick}},[_vm._v(\" Logout \")])]:[_c('b-form-input',{staticClass:\"text-center ml-1\",staticStyle:{\"min-width\":\"300px\"},attrs:{\"id\":\"user-to-impersonate\",\"placeholder\":\"Enter user's email to impersonate\"},model:{value:(_vm.impersonatedUserEmail),callback:function ($$v) {_vm.impersonatedUserEmail=$$v},expression:\"impersonatedUserEmail\"}}),_c('b-button',{staticClass:\"btn-sm ml-1\",attrs:{\"type\":\"submit\",\"variant\":\"soft-blue small\"}},[_vm._v(\" Impersonate \")])]],2)],1)],1)]),_c('b-navbar',{staticStyle:{\"padding-right\":\"15px\",\"padding-left\":\"15px\"},attrs:{\"type\":\"light\"}},[_c('b-navbar-brand',{attrs:{\"to\":\"/home\"}},[_c('b-img',{attrs:{\"src\":require(\"../assets/sefe-logo-white.png\"),\"height\":\"50\",\"alt\":\"SEFE Logo\"}})],1),_c('b-navbar-toggle',{attrs:{\"target\":\"nav-collapse\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar expanded = ref.expanded;\nreturn [(expanded)?_c('b-icon',{staticClass:\"text-soft-blue\",attrs:{\"icon\":\"list\"}}):_c('b-icon',{staticClass:\"text-soft-blue\",attrs:{\"icon\":\"list\"}})]}}])}),(_vm.isLoggedIn)?[_c('b-nav-form',{staticClass:\"ml-auto\"},[(!_vm.showImpersonatedBanner && _vm.isGazpromAdmin)?[_c('b-button',{staticClass:\"btn-sm ml-1\",attrs:{\"variant\":\"soft-blue small\"},on:{\"click\":_vm.handleImpersonateModeClick}},[_vm._v(\" Impersonate mode \")]),_c('span',{staticClass:\"text-muted text-bold ml-1 mr-1\"},[_vm._v(\"|\")])]:_vm._e(),_c('b-link',{staticClass:\"mr-1 my-0 text-grey\",attrs:{\"to\":{ 'name': 'ChangePassword' },\"id\":\"loggedInEmailAddress\",\"tag\":\"p\"}},[_c('b-icon',{staticClass:\"mr-1 text-soft-blue\",staticStyle:{\"font-size\":\"1rem\"},attrs:{\"icon\":\"person-square\"}}),_vm._v(\" \"+_vm._s(_vm.cleanName)+\" \")],1),_c('span',{staticClass:\"text-muted text-bold ml-1 mr-1\"},[_vm._v(\"|\")]),_c('span',{staticClass:\"ml-1 logout-button\",on:{\"click\":_vm.handleLogout}},[_vm._v(\" Logout \"),_c('b-icon',{staticClass:\"ml-1\",staticStyle:{\"font-size\":\"1.2rem\"},attrs:{\"icon\":\"box-arrow-right\"}})],1)],2)]:_vm._e(),_c('div',{attrs:{\"id\":\"logoutSpan\"}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\n\nconst Auth = namespace(\"Auth\");\n\n@Component\nexport default class HeaderSection extends Vue {\n\n public username = \"\";\n public cleanName = \"\";\n\n public impersonatedUserEmail: string | null = null;\n public showImpersonatedBanner = false;\n\n @Auth.Getter\n private getUserEmail!: string;\n\n @Auth.Getter\n private getUserId!: string;\n\n\n @Auth.Getter\n private isInImpersonationMode!: boolean;\n\n @Auth.Getter\n private getImpersonatedUserEmail!: string;\n \n @Auth.Getter\n private isLoggedIn!: boolean;\n\n @Auth.Getter\n private isGazpromAdmin!: boolean;\n\n @Auth.Action \n private cancelImpersonationMode!: () => Promise;\n\n @Auth.Action\n private signOut!: () => any;\n\n @Auth.Action\n private loadImpersonatedUser!: (params: { userId: string, impersonatedUserEmail: string }) => Promise;\n\n @Auth.Action\n private loadImpersonatedUserViaUserId!: (params: { userId: string, impersonatedUserId: string }) => Promise;\n\n public handleLogout(): void {\n this.signOut();\n\n setTimeout(() => {\n this.$router.push(\"/\");\n this.$store.dispatch(\"clearAllStates\");\n }, 1000); // give enough time for the IFrame in the signOut method to sign the user out of old portal\n }\n\n public handleImpersonateUser(): void {\n\n this.loadImpersonatedUser({ userId: this.getUserId, impersonatedUserEmail: this.impersonatedUserEmail ?? \"\" }).then((success : boolean) => {\n //window.location.search += '?userId=' + this.getUserId;\n if (success) {\n location.reload();\n }\n\n }).catch(reason => {\n\n console.error(reason);\n });\n }\n\n public handleImpersonateModeClick(): void {\n\n this.showImpersonatedBanner = true;\n }\n\n public handleCancelImpersonationModeClick(): void {\n this.showImpersonatedBanner = false;\n\n this.cancelImpersonationMode();\n\n location.reload(); \n }\n\n mounted() {\n this.username = this.getUserEmail;\n this.cleanName = this.username.substring(0, this.username?.indexOf('@'));\n\n this.checkForImpersonatedUser();\n }\n\n public checkForImpersonatedUser(): void {\n\n if (this.isInImpersonationMode) {\n this.loadImpersonatedUserViaUserId({ userId: this.getUserId, impersonatedUserId: this.getUserId }).then(() => { \n this.impersonatedUserEmail = this.getImpersonatedUserEmail;\n this.showImpersonatedBanner = true;\n\n }).catch(reason => {\n\n console.error(reason);\n });\n }\n }\n} \n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeaderSection.vue?vue&type=template&id=a55b5098&\"\nimport script from \"./HeaderSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeaderSection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeaderSection.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-overlay',{attrs:{\"show\":_vm.getIsNavDisabled,\"rounded\":\"sm\",\"opacity\":\"0.53\",\"blur\":\"1rem\"}},[_c('b-navbar',{staticClass:\"py-0 px-0 topbar\",attrs:{\"id\":\"navBar\",\"toggleable\":\"md\",\"type\":\"soft-blue\"}},[_c('b-collapse',{attrs:{\"id\":\"nav-collapse\",\"is-nav\":\"\"}},[_c('b-navbar-nav',{staticClass:\"w-100 bg-soft-blue border-0 shadow\"},[_c('b-nav-item',{staticClass:\"nav-level-2 custom-nav-padding flex-fill\",class:{'nav-selected':_vm.locationHref.includes('home')},attrs:{\"id\":\"navMenu-home\",\"href\":\"/home\"}},[_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"house-door\"}}),_vm._v(\"Home \")],1),_c('b-nav-item',{staticClass:\"nav-level-2 custom-nav-padding flex-fill\",class:{'nav-selected':_vm.locationHref.includes('metering')},attrs:{\"id\":\"navMenu-metering\",\"href\":\"/metering\"}},[_c('span',{staticClass:\"mr-2\"},[_c('svg',{staticClass:\"bi bi-speedometer ml-1\",staticStyle:{\"margin-top\":\"-5px\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"19\",\"height\":\"17\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M8 2a.5.5 0 0 1 .5.5V4a.5.5 0 0 1-1 0V2.5A.5.5 0 0 1 8 2zM3.732 3.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 8a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 8zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 7.31A.91.91 0 1 0 8.85 8.569l3.434-4.297a.389.389 0 0 0-.029-.518z\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M6.664 15.889A8 8 0 1 1 9.336.11a8 8 0 0 1-2.672 15.78zm-4.665-4.283A11.945 11.945 0 0 1 8 10c2.186 0 4.236.585 6.001 1.606a7 7 0 1 0-12.002 0z\"}})])]),_vm._v(\"Metering \")]),_c('b-nav-item',{staticClass:\"nav-level-2 custom-nav-padding flex-fill\",class:{'nav-selected':_vm.locationHref.includes('invoicing')},attrs:{\"id\":\"navMenu-invoicing\",\"href\":\"/invoicing\"}},[_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"receipt\"}}),_vm._v(\"Invoicing \")],1),_c('b-nav-item',{staticClass:\"nav-level-2 custom-nav-padding flex-fill\",class:{'nav-selected':_vm.locationHref.includes('balance')},attrs:{\"id\":\"navMenu-balance\",\"href\":\"/balance\"}},[_c('span',{staticClass:\"mr-2\"},[_c('svg',{staticClass:\"bi bi-currency-pound\",staticStyle:{\"margin-top\":\"-5px\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"19\",\"height\":\"19\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M4 8.585h1.969c.115.465.186.939.186 1.43 0 1.385-.736 2.496-2.075 2.771V14H12v-1.24H6.492v-.129c.825-.525 1.135-1.446 1.135-2.694 0-.465-.07-.913-.168-1.352h3.29v-.972H7.22c-.186-.723-.372-1.455-.372-2.247 0-1.274 1.047-2.066 2.58-2.066a5.32 5.32 0 0 1 2.103.465V2.456A5.629 5.629 0 0 0 9.348 2C6.865 2 5.322 3.291 5.322 5.366c0 .775.195 1.515.399 2.247H4v.972z\"}})])]),_vm._v(\"Balance \")]),_c('dropdown-hover',{staticClass:\"flex-fill\",class:{'nav-dropdown-selected':_vm.locationHref.includes('billing')|_vm.locationHref.includes('consumption')},attrs:{\"id\":\"navMenu-reporting\",\"componentText\":\"Reporting\"}},[_c('span',[_c('b-nav',{attrs:{\"vertical\":\"\"}},[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/billing\"}},[_vm._v(\" Billing reports \")])],1)],1),_c('span',[_c('b-nav',{attrs:{\"vertical\":\"\"}},[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/consumption\"}},[_vm._v(\" Consumption and cost reports \")])],1)],1)]),_c('dropdown-hover',{staticClass:\"flex-fill\",class:{'nav-dropdown-selected':_vm.locationHref.includes('manageaccount')|_vm.locationHref.includes('change-password')},attrs:{\"id\":\"navMenu-manageMyAccount\",\"componentText\":\"Manage\"}},[_c('span',[_c('div',{staticClass:\"dropdown-menu-header font-weight-bold mx-4 nav-level-2\"},[_vm._v(\" Manage my details \")]),_c('b-nav',{attrs:{\"vertical\":\"\"}},[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/manageaccount\"}},[_vm._v(\" Manage site details \")]),_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/change-password\"}},[_vm._v(\" Change password \")])],1)],1),(_vm.canViewAdminMenu)?[_c('span',[_c('div',{staticClass:\"dropdown-menu-header font-weight-bold mx-4 nav-level-2\"},[_vm._v(\" Admin \")]),_c('b-nav',{attrs:{\"vertical\":\"\"}},[(_vm.canViewAdminMenu)?[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/manageusers\"}},[_vm._v(\" Manage users \")])]:_vm._e(),(_vm.canViewTPIRequestMenu)?[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/requestaccess\"}},[_vm._v(\" Request access to additional accounts \")])]:_vm._e(),(_vm.canViewContentMenu)?[_c('b-nav-item',{staticClass:\"mx-4 nav-level-2\",attrs:{\"href\":\"/contentmanager\",\"target\":\"_blank\"}},[_vm._v(\" Manage Content \")])]:_vm._e()],2)],1)]:_vm._e()],2),_c('b-nav-item',{staticClass:\"nav-level-2 custom-nav-padding flex-fill\",class:{'nav-selected':_vm.locationHref.includes('help')},attrs:{\"id\":\"navMenu-helpAndSupport\",\"href\":\"/help-and-support\"}},[_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"headset\"}}),_vm._v(\"Help \")],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"mouseover\":_vm.onOver,\"mouseleave\":_vm.onLeave}},[_c('b-nav-item-dropdown',{ref:\"dropdown\",staticStyle:{\"width\":\"100% !important\"},attrs:{\"id\":_vm.elementId,\"text\":_vm.componentText,\"menu-class\":\"shadow nav-item w-100\",\"toggle-class\":\"\"},on:{\"mouseover\":_vm.onOver,\"mouseleave\":_vm.onLeave}},[_c('template',{slot:\"button-content\"},[(_vm.componentText == 'Invoicing and metering')?_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"receipt\"}}):_vm._e(),(_vm.componentText == 'Reporting')?_c('i',{staticStyle:{\"margin-right\":\"2px\",\"font-weight\":\"bold\"}},[_c('svg',{staticClass:\"mr-1\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"1.3em\",\"width\":\"1.3em\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z\"}}),_c('path',{attrs:{\"d\":\"M4.603 14.087a.81.81 0 0 1-.438-.42c-.195-.388-.13-.776.08-1.102.198-.307.526-.568.897-.787a7.68 7.68 0 0 1 1.482-.645 19.697 19.697 0 0 0 1.062-2.227 7.269 7.269 0 0 1-.43-1.295c-.086-.4-.119-.796-.046-1.136.075-.354.274-.672.65-.823.192-.077.4-.12.602-.077a.7.7 0 0 1 .477.365c.088.164.12.356.127.538.007.188-.012.396-.047.614-.084.51-.27 1.134-.52 1.794a10.954 10.954 0 0 0 .98 1.686 5.753 5.753 0 0 1 1.334.05c.364.066.734.195.96.465.12.144.193.32.2.518.007.192-.047.382-.138.563a1.04 1.04 0 0 1-.354.416.856.856 0 0 1-.51.138c-.331-.014-.654-.196-.933-.417a5.712 5.712 0 0 1-.911-.95 11.651 11.651 0 0 0-1.997.406 11.307 11.307 0 0 1-1.02 1.51c-.292.35-.609.656-.927.787a.793.793 0 0 1-.58.029zm1.379-1.901c-.166.076-.32.156-.459.238-.328.194-.541.383-.647.547-.094.145-.096.25-.04.361.01.022.02.036.026.044a.266.266 0 0 0 .035-.012c.137-.056.355-.235.635-.572a8.18 8.18 0 0 0 .45-.606zm1.64-1.33a12.71 12.71 0 0 1 1.01-.193 11.744 11.744 0 0 1-.51-.858 20.801 20.801 0 0 1-.5 1.05zm2.446.45c.15.163.296.3.435.41.24.19.407.253.498.256a.107.107 0 0 0 .07-.015.307.307 0 0 0 .094-.125.436.436 0 0 0 .059-.2.095.095 0 0 0-.026-.063c-.052-.062-.2-.152-.518-.209a3.876 3.876 0 0 0-.612-.053zM8.078 7.8a6.7 6.7 0 0 0 .2-.828c.031-.188.043-.343.038-.465a.613.613 0 0 0-.032-.198.517.517 0 0 0-.145.04c-.087.035-.158.106-.196.283-.04.192-.03.469.046.822.024.111.054.227.09.346z\"}})])]):_vm._e(),(_vm.componentText == 'Manage')?_c('i',[_c('svg',{staticClass:\"mr-2\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":\"1.3em\",\"width\":\"1.1em\",\"fill\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M1.5 1a.5.5 0 0 0-.5.5v3a.5.5 0 0 1-1 0v-3A1.5 1.5 0 0 1 1.5 0h3a.5.5 0 0 1 0 1h-3zM11 .5a.5.5 0 0 1 .5-.5h3A1.5 1.5 0 0 1 16 1.5v3a.5.5 0 0 1-1 0v-3a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 1-.5-.5zM.5 11a.5.5 0 0 1 .5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 1 0 1h-3A1.5 1.5 0 0 1 0 14.5v-3a.5.5 0 0 1 .5-.5zm15 0a.5.5 0 0 1 .5.5v3a1.5 1.5 0 0 1-1.5 1.5h-3a.5.5 0 0 1 0-1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 1 .5-.5z\"}}),_c('path',{attrs:{\"d\":\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm8-9a3 3 0 1 1-6 0 3 3 0 0 1 6 0z\"}})])]):_vm._e(),_vm._v(_vm._s(_vm.componentText))],1),_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class DropdownHover extends Vue {\n @Prop() readonly componentText!: string;\n @Prop() readonly elementId!: string;\n\n public onOver(): void {\n (this.$refs.dropdown as Vue & { visible: boolean }).visible = true;\n }\n\n public onLeave(): void {\n (this.$refs.dropdown as Vue & { visible: boolean }).visible = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownHover.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownHover.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropdownHover.vue?vue&type=template&id=6fd340bb&\"\nimport script from \"./DropdownHover.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropdownHover.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport DropdownHover from \"@/components/DropdownHover.vue\"\n\nconst Auth = namespace(\"Auth\");\nconst Products = namespace(\"Products\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst DMConsumptionReports = namespace(\"DMConsumptionReports\");\nconst PowerAccounts = namespace(\"PowerAccounts\");\n\n\n@Component({\n components: {\n DropdownHover\n }\n})\nexport default class NavMenu extends Vue {\n @Auth.Getter\n private getUserId!: string;\n private watchGasAgreementSelection: any;\n private helpHref = \"\";\n private locationHref = \"\";\n private processing = false;\n\n @Products.Getter\n private getSelectedProduct!: string;\n\n @GasAccounts.Getter\n private getSelectedSiteRefNumber!: string;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @Auth.Getter\n private isGazpromAdmin!: boolean;\n\n @Auth.Getter\n private canViewAdminMenu!: boolean;\n\n @Auth.Getter\n private canViewContentMenu!: boolean;\n\n @Auth.Getter\n private canAccessAllBaskets!: boolean;\n\n @Auth.Getter\n private getPortalAuthTokenUrl!: string;\n\n @Auth.Getter\n private canDownloadCogReports!: boolean;\n\n @Auth.Getter\n private getIsNavDisabled!: boolean;\n\n @Auth.Getter\n private canViewTPIRequestMenu!: boolean;\n\n @DMConsumptionReports.Getter\n private getIsActiveDM!: boolean;\n\n @Auth.Action\n private fetchPortalAuthTokenUrl!: (params: { userId: string }) => Promise;\n\n @DMConsumptionReports.Action\n private submitIsActiveDM!: (params: { userId: string, accountNum: string, siteRef: string }) => Promise;\n\n @PowerAccounts.Getter\n private isHalfHourly!: boolean;\n\n\n async mounted() {\n try {\n this.locationHref = window.location.href;\n this.fetchPortalAuthTokenUrl({ userId: this.getUserId }).then(() => {\n this.setAdminLinks();\n }, (error) => {\n console.error(error);\n });\n\n this.submitIsActiveDM({ userId: this.getUserId, accountNum: this.getSelectedAccount, siteRef: this.getSelectedSiteRefNumber });\n \n try {\n this.watchGasAgreementSelection = this.$store.watch((state, getters) => getters[\"GasAccounts/getSelectedSiteRefNumber\"], (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n\n this.submitIsActiveDM({ userId: this.getUserId, accountNum: this.getSelectedAccount, siteRef: this.getSelectedSiteRefNumber });\n\n this.setAdminLinks();\n\n }); \n \n } catch (e) {\n\n console.error(e);\n }\n\n\n } catch (e) {\n console.error(e);\n }\n }\n\n private setAdminLinks() {\n \n let portalUrl = this.getPortalAuthTokenUrl;\n\n portalUrl = `${portalUrl}&accountNum=${this.getSelectedAccount}&siteRefNum=${this.getSelectedSiteRefNumber}`;\n\n this.helpHref = `${portalUrl}&chosenController=HelpAdvice&chosenAction=Index`;\n }\n\n beforeDestroy() {\n this.watchGasAgreementSelection();\n }\n\n private setReportingActive(): void {\n let ele = document.querySelector(\"#navMenu-reporting li\");\n if (ele != null && (this.locationHref.includes(\"billing\") || this.locationHref.includes(\"consumption\"))) {\n ele.classList.add('nav-selected');\n }\n }\n\n private setManageActive(): void {\n let ele = document.querySelector(\"#navMenu-manageMyAccount li\");\n if (ele != null && (this.locationHref.includes(\"change-password\"))) {\n ele.classList.add('nav-selected');\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavMenu.vue?vue&type=template&id=359db93d&\"\nimport script from \"./NavMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavMenu.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-4 mt-3 justify-content-sm-center\"},[(_vm.loading)?[_c('clip-loader',{staticClass:\"spinner\",attrs:{\"loading\":_vm.loading,\"color\":\"#0065bd\"}})]:_vm._e(),(!_vm.loading)?[_c('b-row',[_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsProductSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"2\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" Energy: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"productsDropdown\",\"options\":_vm.getUserProducts,\"value\":_vm.getSelectedProduct,\"searchable\":false,\"disabled\":_vm.getIsProductSelectionDisabled},on:{\"input\":_vm.setSelectedProduct,\"open\":_vm.disableTooltips,\"close\":_vm.enableTooltips}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"10\",\"lg\":\"10\",\"xl\":\"11\"}},[(_vm.getSelectedProduct === 'Gas')?[_c('gas-account-selector')]:_vm._e(),(_vm.getSelectedProduct === 'Power')?[_c('power-account-selector')]:_vm._e()],2)],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',[_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsAccountSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"5\",\"xl\":\"4\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" Account: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"accountsDropdown\",\"placeholder\":\"Search gas accounts\",\"options\":_vm.getUserAccounts,\"value\":_vm.getSelectedAccount,\"label\":\"DisplayLabel\",\"reduce\":function (account) { return account.AccountNumber; },\"filterable\":_vm.isFilterable,\"disabled\":_vm.getIsAccountSelectionDisabled},on:{\"search\":_vm.onSearch,\"input\":_vm.onSetSelectedAccount,\"open\":function($event){_vm.onOpen(); _vm.disableTooltips();},\"close\":function($event){_vm.onClose(); _vm.enableTooltips();}},scopedSlots:_vm._u([{key:\"list-footer\",fn:function(){return [(_vm.getIsMorePages)?_c('li',{ref:\"load\",staticClass:\"loader\"},[_vm._v(\" ... \")]):_vm._e()]},proxy:true}])}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary soft-blue\"},on:{\"click\":function($event){return _vm.copyToClipboard('Account')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1),_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsMprnSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"2\",\"xl\":\"2\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" MPRN: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"metersDropdown\",\"placeholder\":\"Search gas MPRN's\",\"value\":_vm.getSelectedMprn,\"options\":_vm.getMprns,\"disabled\":_vm.getIsMprnSelectionDisabled},on:{\"input\":_vm.onSetSelectedMPRN,\"open\":_vm.disableTooltips,\"close\":_vm.enableTooltips}}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary soft-blue\"},on:{\"click\":function($event){return _vm.copyToClipboard('MPRN')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1),_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsAgreementSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"5\",\"xl\":\"4\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" Agreement: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"agreementsDropdown\",\"placeholder\":\"Search gas agreements\",\"options\":_vm.getUserDeliveryAgreementsLinkedToMPRN,\"value\":_vm.getSelectedDeliveryAgreementId,\"label\":\"DisplayLabel\",\"reduce\":function (agreement) { return agreement.DeliveryAgreementId; },\"selectable\":function (option) { return !option.AgreementCategory; },\"disabled\":_vm.getIsAgreementSelectionDisabled},on:{\"input\":_vm.setSelectedDeliveryAgreementAndMprn,\"open\":_vm.disableTooltips,\"close\":_vm.enableTooltips}}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary soft-blue\"},on:{\"click\":function($event){return _vm.copyToClipboard('Agreement')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport { IUserAccount } from \"@/interfaces/userAccount\";\nimport { IDeliveryAgreement } from \"@/interfaces/deliveryAgreement\";\nimport ToastService from '@/services/toastService';\n\nconst Auth = namespace(\"Auth\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst InvoicingWizard = namespace(\"InvoicingWizard\");\n\n@Component\nexport default class GasAccountSelector extends Vue {\n private disableTooltip = false;\n private observer: any = null;\n private searchString = '';\n private watchAccountSelection: any;\n\n private enableTooltips(): void {\n this.disableTooltip = false;\n }\n\n private disableTooltips(): void {\n this.disableTooltip = true;\n this.$root.$emit('bv::hide::tooltip')\n }\n\n @Auth.Getter\n private getUserId!: string;\n\n @GasAccounts.Getter\n private getUserAccountsCount!: number;\n\n @GasAccounts.Getter\n private getUserAccounts!: Array;\n\n @GasAccounts.Getter\n private getUserDeliveryAgreements!: Array;\n\n @GasAccounts.Getter\n private getUserDeliveryAgreementsLinkedToMPRN!: Array;\n\n @GasAccounts.Getter\n private getDistinctMPRNS!: Array;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @GasAccounts.Getter\n private getSelectedMprn!: string;\n\n @GasAccounts.Getter\n private getSelectedDeliveryAgreementId!: string;\n\n @GasAccounts.Getter\n private getSelectedDeliveryAgreementNumber!: string;\n\n @GasAccounts.Getter\n private getIsMorePages!: boolean;\n\n @GasAccounts.Getter\n private getIsMprnSelectionDisabled!: boolean;\n\n @GasAccounts.Getter\n private getIsAgreementSelectionDisabled!: boolean;\n\n @GasAccounts.Getter\n private getIsAccountSelectionDisabled!: boolean;\n\n @GasAccounts.Mutation\n private setSelectedAccount!: (accountNumber: string) => void;\n\n @GasAccounts.Mutation\n private setDeliveryAgreementsByAccountNumber!: (accountNumber: string) => void;\n\n @GasAccounts.Mutation\n private resetPageNumber!: () => void;\n\n @GasAccounts.Mutation\n private nextPage!: () => void;\n\n @GasAccounts.Mutation\n private setSelectedDeliveryAgreementAndMprn!: (agreementId: string) => void;\n\n @GasAccounts.Mutation\n private setSelectedMeterPointReferenceNumber!: (MPRN: string) => void;\n\n @GasAccounts.Action\n private fetchUserAccountsCount!: (userId: string) => Promise;\n\n @GasAccounts.Action\n private fetchUserAccounts!: (params: { userId: string, accountNumberQuery: string | null }) => Promise;\n\n @GasAccounts.Action\n private fetchUserAccountsAfterSearch!: (params: { userId: string, accountNumberQuery: string | null }) => Promise;\n\n @GasAccounts.Action\n private searchUserAccounts!: (params: { userId: string, query: string, appendResult: boolean }) => Promise;\n\n @GasAccounts.Action\n private fetchDeliveryAgreementsForAccount!: (params: { userId: string, accountNumber: string }) => Promise;\n\n @GasAccounts.Action\n private fetchAgreementIdToSelect!: (params: { userId: string, accountNumber: string }) => Promise;\n\n @GasAccounts.Action\n private fetchAgreementIdToSelectAfterMPRNSelection!: (params: { userId: string, accountNumber: string, MPRN: string }) => Promise;\n\n @GasAccounts.Action\n private fetchDeliveryAgreementsWithLabelsAfterMPRNSelection!: (params: { userId: string, MPRN: string }) => Promise;\n\n @GasAccounts.Action\n private loadUserGasSelections!: (userId: string) => void;\n\n @InvoicingWizard.Action\n private resetJourneyNode!: () => Promise;\n\n private onSetSelectedAccount(accountNumber: string): void {\n this.searchString = accountNumber;\n\n this.setDeliveryAgreementsByAccountNumber(accountNumber);\n\n // If delivery agreements collection is not empty then find call the API to find out which agreement ID should be selected\n // (for smaller users accounts data is returned along with relevant agreements)\n if (this.getUserDeliveryAgreements.length > 0 && this.getDistinctMPRNS.length > 0) {\n this.fetchAgreementIdToSelect({ userId: this.getUserId, accountNumber: accountNumber });\n // Otherwise get delivery agreements for the supplied account number\n } else {\n this.fetchDeliveryAgreementsForAccount({ userId: this.getUserId, accountNumber: accountNumber });\n }\n }\n\n private onSetSelectedMPRN(MPRN: string): void {\n //this.setSelectedMeterPointReferenceNumber(MPRN);\n this.fetchDeliveryAgreementsWithLabelsAfterMPRNSelection({ userId: this.getUserId, MPRN: MPRN });\n this.fetchAgreementIdToSelectAfterMPRNSelection({ userId: this.getUserId, accountNumber: this.getSelectedAccount, MPRN: MPRN });\n }\n \n get getMprns(){\n return this.getDistinctMPRNS.filter(i => i !== null);\n }\n\n get isFilterable(): boolean {\n return this.getUserAccountsCount <= 200 ?? false;\n }\n\n private async onOpen() {\n await this.$nextTick()\n\n if (this.$refs.load === undefined) return;\n\n this.observer.observe(this.$refs.load);\n }\n\n private onClose() {\n this.observer.disconnect();\n }\n\n private async onSearch(search: string, loading: (isLoading: boolean) => void) {\n if (this.isFilterable) {\n loading(false);\n return;\n }\n\n this.onClose();\n\n if (search.length === 0) {\n this.resetPageNumber();\n await this.fetchUserAccountsAfterSearch({ userId: this.getUserId, accountNumberQuery: this.searchString });\n this.onOpen();\n }\n\n this.searchString = search.trim();\n\n if (search.length > 2) {\n loading(true);\n this.search(this.searchString, loading);\n }\n }\n\n private async search(search: string, loading: (isLoading: boolean) => void) {\n try {\n this.resetPageNumber();\n await this.searchUserAccounts({ userId: this.getUserId, query: search, appendResult: false });\n this.onOpen();\n } catch (e) {\n console.error(e);\n } finally {\n loading(false);\n }\n }\n\n async mounted() {\n try {\n this.observer = new IntersectionObserver(async (entry) => {\n if ((entry[0] as any).isIntersecting) {\n const ul = ((entry[0] as any).target).offsetParent;\n const scrollTop = ((entry[0] as any).target).offsetParent.scrollTop;\n this.nextPage();\n await this.searchUserAccounts({ userId: this.getUserId, query: this.searchString, appendResult: true });\n await this.$nextTick();\n ul.scrollTop = scrollTop;\n }\n });\n await this.fetchUserAccountsCount(this.getUserId);\n this.loadUserGasSelections(this.getUserId);\n await this.fetchUserAccounts({ userId: this.getUserId, accountNumberQuery: this.isFilterable && this.getSelectedAccount?.length === 0 ? null : this.getSelectedAccount });\n\n this.watchAccountSelection = this.$store.watch((state, getters) => getters[\"GasAccounts/getSelectedAccount\"], (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n this.resetJourneyNode();\n });\n\n } catch (e) {\n console.error(e);\n }\n }\n\n beforeDestroy() {\n this.observer;\n this.watchAccountSelection();\n }\n\n\n private copyToClipboard(copyType: string): void {\n var TextToCopy = '';\n if (copyType === 'MPRN') {\n TextToCopy = this.getSelectedMprn;\n } else if (copyType === 'Agreement') {\n TextToCopy = this.getSelectedDeliveryAgreementNumber;\n } else if (copyType === 'Account') {\n TextToCopy = this.getSelectedAccount;\n }\n\n if (window.isSecureContext && navigator.clipboard) {\n navigator.clipboard.writeText(TextToCopy).then(() => {\n this.notifyTextCopied(copyType);\n })\n .catch(() => {\n this.$bvToast.toast(\"Something went wrong!\", ToastService.ErrorMessageDefaults());\n });\n } else {\n this.unsecuredCopyToClipboard(TextToCopy);\n this.notifyTextCopied(copyType);\n }\n }\n\n private notifyTextCopied(copyType: string) {\n const SuccessMessageDefaults = ToastService.SuccessMessageDefaults();\n SuccessMessageDefaults.autoHideDelay = 3000;\n SuccessMessageDefaults.variant = '#cfdf9a';\n SuccessMessageDefaults.bodyClass = 'copy-success-message';\n SuccessMessageDefaults.headerClass = 'copy-success-message';\n SuccessMessageDefaults.noCloseButton = true;\n SuccessMessageDefaults.title = '';\n this.$bvToast.toast(copyType + \" copied\", SuccessMessageDefaults);\n }\n\n private unsecuredCopyToClipboard = (text) => { const textArea = document.createElement(\"textarea\"); textArea.value = text; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy') } catch (err) { console.error('Unable to copy to clipboard', err) } document.body.removeChild(textArea) };\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GasAccountSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GasAccountSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GasAccountSelector.vue?vue&type=template&id=1725cf20&\"\nimport script from \"./GasAccountSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./GasAccountSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GasAccountSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',[_c('b-col',{staticClass:\"text-left\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" Group Account: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"groupAccountsDropdown\",\"placeholder\":\"Search power group accounts\",\"options\":_vm.getUserAccounts,\"value\":_vm.getSelectedGroupAccount,\"label\":\"DisplayLabel\",\"reduce\":function (groupAccount) { return groupAccount.AccountNumber; },\"filterable\":_vm.isFilterable},on:{\"search\":_vm.onSearch,\"input\":_vm.onSetSelectedGroupAccount,\"open\":function($event){_vm.onOpen(); _vm.disableTooltips();},\"close\":function($event){_vm.onClose(); _vm.enableTooltips();}},scopedSlots:_vm._u([{key:\"list-footer\",fn:function(){return [(_vm.getIsMorePages)?_c('li',{ref:\"load\",staticClass:\"loader\"},[_vm._v(\" ... \")]):_vm._e()]},proxy:true}])}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary gazprom-blue\"},on:{\"click\":function($event){return _vm.copyToClipboard('Group account')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1),_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsMpanSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"2\",\"xl\":\"2\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" MPAN: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"mpansDropdown\",\"placeholder\":\"Search power MPAN's\",\"options\":_vm.getUserPowerDistinctMpans,\"value\":_vm.getSelectedMpan,\"disabled\":_vm.getIsMpanSelectionDisabled},on:{\"input\":_vm.onSetSelectedMpan,\"open\":_vm.disableTooltips,\"close\":_vm.enableTooltips}}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary gazprom-blue\"},on:{\"click\":function($event){return _vm.copyToClipboard('MPAN')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1),_c('b-col',{staticClass:\"text-left\",class:{shadedOut: _vm.getIsAccountSelectionDisabled},attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('label',{staticClass:\"account-selector-label-text\"},[_vm._v(\" Account: \")]),_c('v-select',{staticClass:\"style-chooser mb-2 shadow\",attrs:{\"id\":\"accountsDropdown\",\"placeholder\":\"Search power accounts\",\"options\":_vm.getUserPowerSitesLinkedToMpan,\"value\":_vm.getSelectedAccount,\"label\":\"DisplayLabel\",\"reduce\":function (account) { return account.AccountNumber; },\"disabled\":_vm.getIsAccountSelectionDisabled},on:{\"input\":_vm.setSelectedPowerSite,\"open\":_vm.disableTooltips,\"close\":_vm.enableTooltips}}),_c('b-button',{attrs:{\"title\":\"Copy\",\"id\":\"copyButton\",\"variant\":\"outline-primary\"},on:{\"click\":function($event){return _vm.copyToClipboard('Account')}}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"files\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport { IUserAccount } from \"@/interfaces/userAccount\";\nimport { IPowerSite } from \"@/interfaces/powerSite\";\nimport ToastService from '@/services/toastService';\n\nconst Auth = namespace(\"Auth\");\nconst PowerAccounts = namespace(\"PowerAccounts\");\n\n@Component\nexport default class PowerAccountSelector extends Vue {\n private disableTooltip = false;\n private observer: any = null;\n private searchString = ''; \n\n\n private enableTooltips(): void {\n this.disableTooltip = false;\n }\n\n private disableTooltips(): void {\n this.disableTooltip = true;\n this.$root.$emit('bv::hide::tooltip')\n }\n\n @Auth.Getter\n private getUserId!: string;\n\n @PowerAccounts.Getter\n private getUserAccountsCount!: number;\n\n @PowerAccounts.Getter\n private getUserAccounts!: Array;\n\n @PowerAccounts.Getter\n private getUserPowerSites!: Array;\n\n @PowerAccounts.Getter\n private getUserPowerSitesLinkedToMpan!: Array;\n\n @PowerAccounts.Getter\n private getUserPowerDistinctMpans!: Array;\n\n @PowerAccounts.Getter\n private getSelectedGroupAccount!: string;\n\n @PowerAccounts.Getter\n private getSelectedAccount!: string;\n\n @PowerAccounts.Getter\n private getSelectedMpan!: string;\n\n @PowerAccounts.Getter\n private getIsMorePages!: boolean;\n\n @PowerAccounts.Getter\n private getIsMpanSelectionDisabled!: boolean;\n\n @PowerAccounts.Getter\n private getIsAccountSelectionDisabled!: boolean;\n\n @PowerAccounts.Mutation\n private setSelectedGroupAccount!: (groupAccountNumber: string) => void;\n\n @PowerAccounts.Mutation\n private setSelectedPowerSite!: (accountNumber: string) => void;\n\n @PowerAccounts.Mutation\n private setSelectedPowerMpan!: (Mpan: string) => void;\n\n @PowerAccounts.Mutation\n private setUserPowerSitesLinkedToMPAN!: (Mpan: string) => void;\n\n @PowerAccounts.Mutation\n private resetPageNumber!: () => void;\n\n @PowerAccounts.Mutation\n private nextPage!: () => number;\n\n @PowerAccounts.Action\n private fetchUserAccountsCount!: (userId: string) => Promise;\n\n @PowerAccounts.Action\n private onMpanSelection!: (Mpan: string) => Promise;\n\n @PowerAccounts.Action\n private fetchUserAccounts!: (params: { userId: string, groupAccountNumberQuery: string | null }) => Promise;\n\n @PowerAccounts.Action\n private searchUserAccounts!: (params: { userId: string, groupAccountNumberQuery: string, appendResult: boolean }) => Promise;\n\n @PowerAccounts.Action\n private fetchPowerSitesForGroupAccount!: (params: { userId: string, groupAccountNumber: string }) => Promise;\n\n @PowerAccounts.Action\n private loadUserPowerSelections!: (userId: string) => void;\n\n private onSetSelectedGroupAccount(groupAccountNumber: string): void {\n this.setSelectedGroupAccount(groupAccountNumber);\n this.fetchPowerSitesForGroupAccount({ userId: this.getUserId, groupAccountNumber });\n }\n\n private onSetSelectedMpan(Mpan: string): void {\n this.onMpanSelection(Mpan);\n }\n\n get isFilterable(): boolean {\n return this.getUserAccountsCount <= 200 ?? false;\n }\n\n private async onOpen() {\n await this.$nextTick()\n\n if (this.$refs.load === undefined) return;\n\n this.observer.observe(this.$refs.load);\n }\n\n private onClose() {\n this.observer.disconnect();\n }\n\n private async onSearch(search: string, loading: (isLoading: boolean) => void) {\n if (this.isFilterable) {\n loading(false);\n return;\n }\n\n this.onClose();\n\n this.searchString = search;\n\n if (search.length === 0) {\n this.resetPageNumber();\n await this.fetchUserAccounts({ userId: this.getUserId, groupAccountNumberQuery: this.getSelectedGroupAccount });\n this.onOpen();\n }\n\n if (search.length > 2) {\n loading(true);\n this.search(search, loading);\n }\n }\n\n private async search(search: string, loading: (isLoading: boolean) => void) {\n try {\n this.resetPageNumber();\n await this.searchUserAccounts({ userId: this.getUserId, groupAccountNumberQuery: search, appendResult: false });\n this.onOpen();\n } catch (e) {\n console.error(e);\n } finally {\n loading(false);\n }\n }\n\n async mounted() {\n try {\n this.observer = new IntersectionObserver(async (entry) => {\n if ((entry[0] as any).isIntersecting) {\n const ul = ((entry[0] as any).target).offsetParent;\n const scrollTop = ((entry[0] as any).target).offsetParent.scrollTop;\n this.nextPage();\n await this.searchUserAccounts({ userId: this.getUserId, groupAccountNumberQuery: this.searchString, appendResult: true });\n await this.$nextTick();\n ul.scrollTop = scrollTop;\n }\n });\n\n await this.fetchUserAccountsCount(this.getUserId);\n this.loadUserPowerSelections(this.getUserId);\n await this.fetchUserAccounts({ userId: this.getUserId, groupAccountNumberQuery: this.isFilterable ? null : this.getSelectedGroupAccount });\n\n } catch (e) {\n console.error(e);\n }\n }\n\n private copyToClipboard(copyType: string): void {\n var TextToCopy = '';\n if (copyType === 'MPAN') {\n TextToCopy = this.getSelectedMpan;\n } else if (copyType === 'Group account') {\n TextToCopy = this.getSelectedGroupAccount;\n } else if (copyType === 'Account') {\n TextToCopy = this.getSelectedAccount;\n }\n\n if (window.isSecureContext && navigator.clipboard) {\n navigator.clipboard.writeText(TextToCopy).then(() => {\n this.notifyTextCopied(copyType);\n })\n .catch(() => {\n alert(\"something went wrong\");\n });\n } else {\n this.unsecuredCopyToClipboard(TextToCopy);\n this.notifyTextCopied(copyType);\n }\n }\n\n private notifyTextCopied(copyType: string) {\n const SuccessMessageDefaults = ToastService.SuccessMessageDefaults();\n SuccessMessageDefaults.autoHideDelay = 3000;\n SuccessMessageDefaults.variant = '#cfdf9a';\n SuccessMessageDefaults.bodyClass = 'copy-success-message';\n SuccessMessageDefaults.headerClass = 'copy-success-message';\n SuccessMessageDefaults.noCloseButton = true;\n SuccessMessageDefaults.title = '';\n this.$bvToast.toast(copyType + \" copied\", SuccessMessageDefaults);\n }\n\n private unsecuredCopyToClipboard = (text) => { const textArea = document.createElement(\"textarea\"); textArea.value = text; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy') } catch (err) { console.error('Unable to copy to clipboard', err) } document.body.removeChild(textArea) };\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerAccountSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerAccountSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerAccountSelector.vue?vue&type=template&id=29f7ed3d&\"\nimport script from \"./PowerAccountSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerAccountSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PowerAccountSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*Spacing or seperator between account selection and dashboard boxes*/\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport ClipLoader from '@/components/elements/ClipLoader.vue';\nimport { namespace } from 'vuex-class';\nimport GasAccountSelector from '@/components/GasAccountSelector.vue';\nimport PowerAccountSelector from '@/components/PowerAccountSelector.vue';\n\nconst Auth = namespace(\"Auth\");\nconst Products = namespace(\"Products\");\n\n@Component({\n components: {\n GasAccountSelector,\n ClipLoader,\n PowerAccountSelector\n }\n})\nexport default class AccountSelector extends Vue {\n private disableTooltip = false;\n private loading = true;\n\n private enableTooltips(): void {\n this.disableTooltip = false;\n }\n\n private disableTooltips(): void {\n this.disableTooltip = true;\n this.$root.$emit('bv::hide::tooltip')\n }\n\n @Auth.Getter\n private getUserId!: string;\n\n @Products.Getter\n private getUserProducts!: Array;\n\n @Products.Getter\n private getSelectedProduct!: string;\n\n @Products.Mutation\n private setSelectedProduct!: (product: string) => void;\n\n @Products.Getter\n private getIsProductSelectionDisabled!: boolean;\n\n @Products.Action\n private loadUserProducts!: (userId: string) => Promise;\n\n @Products.Action\n private loadUserProductSelections!: (userId: string) => void;\n\n async mounted() {\n try {\n this.loadUserProductSelections(this.getUserId);\n await this.loadUserProducts(this.getUserId);\n this.loading = false;\n\n } catch (e) {\n console.error(e);\n this.loading = false;\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccountSelector.vue?vue&type=template&id=25a4b18c&\"\nimport script from \"./AccountSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccountSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccountSelector.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"footer text-left small shadow\"},[_c('b-row',{staticClass:\"w-100\"},[_c('b-col',{attrs:{\"md\":\"12\",\"lg\":\"12\",\"sm\":\"12\",\"xl\":\"5\"}},[_c('p',{staticClass:\"px-3 pt-3 pb-2 mt-2\"},[_vm._v(\" 2021 © \"),_c('span',[_vm._v(\"SEFE Energy Ltd\")]),_vm._v(\" trading as \"),_c('span',[_vm._v(\"SEFE Energy\")]),_c('br'),_vm._v(\" Registered in England | Registered Address: 20 Triton Street, London, NW1 3BF\"),_c('br'),_vm._v(\" Company Number: 03904624 | VAT Number: GB927405129 \")])]),_c('b-col',{attrs:{\"md\":\"12\",\"lg\":\"12\",\"sm\":\"12\",\"xl\":\"7\"}},[_c('b-nav',{staticClass:\"nav-footer justify-content-end align-items-center\",staticStyle:{\"height\":\"100%\"}},[_c('b-nav-item',{attrs:{\"href\":\"https://www.sefe-energy.co.uk/contact-us/\",\"target\":\"_blank\"}},[_vm._v(\"Contact us\")]),_c('b-nav-item',{attrs:{\"href\":\"https://www.sefe-energy.co.uk/help-and-support/\",\"target\":\"_blank\"}},[_vm._v(\"Help and support\")]),_c('b-nav-item',{attrs:{\"href\":\"https://www.sefe-energy.co.uk/\",\"target\":\"_blank\"}},[_vm._v(\"SEFE Energy\")]),_c('b-nav-item',{attrs:{\"href\":\"https://brokers.sefe-energy.com/\",\"target\":\"_blank\"}},[_vm._v(\"Broker Portal\")]),_c('b-nav-item',{attrs:{\"to\":\"/termsofuse\",\"target\":\"_blank\"}},[_vm._v(\"Terms of use\")]),_c('b-nav-item',{attrs:{\"href\":\"https://www.sefe-energy.co.uk/privacy-policy/\",\"target\":\"_blank\"}},[_vm._v(\"Privacy statement\")]),_c('b-nav-item',{attrs:{\"to\":\"/cookiepolicy\",\"target\":\"_blank\"}},[_vm._v(\"Cookie policy\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class FooterSection extends Vue {\n\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FooterSection.vue?vue&type=template&id=6fe8b101&\"\nimport script from \"./FooterSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./FooterSection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport stickybits from 'stickybits';\n\nimport FlexFillLayout from \"@/components/layouts/FlexFillLayout.vue\";\nimport HeaderSection from '@/components/HeaderSection.vue';\nimport NavMenu from '@/components/NavMenu.vue';\nimport AlertBanner from '@/components/AlertBanner.vue';\nimport AccountSelector from '@/components/AccountSelector.vue';\n//import Breadcrumb from '@/components/elements/Breadcrumb.vue'\nimport FooterSection from '@/components/FooterSection.vue';\nimport { IBanner } from '@/interfaces/banner';\n\nconst Auth = namespace('Auth');\nconst FeatureToggle = namespace(\"FeatureToggle\");\nconst BannerContent = namespace(\"BannerContent\");\n\n@Component({\n components: {\n FlexFillLayout,\n HeaderSection,\n NavMenu,\n AlertBanner,\n AccountSelector,\n //Breadcrumb,\n FooterSection\n }\n})\nexport default class BasePage extends Vue {\n @Auth.Getter\n private isLoggedIn!: boolean;\n\n private isStaticPage = false;\n private existingBannerContent!: IBanner;\n private bannerText = \"\";\n\n @FeatureToggle.Getter\n private getInvoiceAndMeterReadPanelFeatureToggleStatus!: boolean;\n\n @FeatureToggle.Action\n private getInvoiceAndMeterReadPanelFeatureToggleStatusAction!: (userId: any) => Promise;\n\n @Auth.Getter\n private getUserId!: string;\n\n @BannerContent.Getter\n private getLatestBannerContent!: IBanner;\n\n @BannerContent.Action\n private fetchLatestBannerContent!: (params: { userId: string }) => Promise;\n\n private InvoiceAndMeterPanelOn = true;\n\n async mounted() {\n await this.fetchLatestBannerContent({ userId: this.getUserId });\n this.existingBannerContent = this.getLatestBannerContent;\n if (this.existingBannerContent != null && this.existingBannerContent?.bannerContent != null) {\n this.bannerText = this.existingBannerContent.bannerContent\n }\n this.getInvoiceAndMeterReadPanelFeatureToggleStatusAction(this.getUserId).then(x => {\n this.InvoiceAndMeterPanelOn = this.getInvoiceAndMeterReadPanelFeatureToggleStatus;\n if (this.$route.name === 'CookiePolicy' || this.$route.name === 'TermsOfUse' || this.$route.name === 'ChangePassword' || this.$route.name == 'HelpAndSupport') {\n this.isStaticPage = true;\n }\n if (!this.isLoggedIn && !this.isStaticPage) {\n this.$router.push(\"/\");\n }\n stickybits('#stickybit-header-nav-menu');\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasePage.vue?vue&type=template&id=f9fd1900&\"\nimport script from \"./BasePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasePage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BasePage.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { BvToastOptions } from \"bootstrap-vue\";\r\n\r\nexport default class ToastService {\r\n\r\n public static autoHideDelay = 30000;\r\n public static ErrorMessageDefaults(): BvToastOptions {\r\n \r\n const toastErrorParams = {\r\n title: `Error Message`,\r\n variant: \"danger\",\r\n solid: true,\r\n autoHideDelay: this.autoHideDelay,\r\n appendToast: true\r\n };\r\n\r\n return toastErrorParams;\r\n }\r\n\r\n public static SuccessMessageDefaults(): BvToastOptions {\r\n\r\n const toastErrorParams = {\r\n title: `Success Message`,\r\n variant: \"success\",\r\n solid: true,\r\n autoHideDelay: this.autoHideDelay,\r\n appendToast: true\r\n };\r\n\r\n return toastErrorParams;\r\n }\r\n }","import Vue from 'vue'\r\n\r\nimport {BootstrapVue, BootstrapVueIcons} from 'bootstrap-vue'\r\nimport '@/assets/style.scss'\r\n\r\nVue.use(BootstrapVue);\r\nVue.use(BootstrapVueIcons);\r\n","import Vue from 'vue'\r\nimport vSelect from 'vue-select'\r\n\r\nVue.component('v-select', vSelect)","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardBaseStep.vue?vue&type=style&index=0&lang=scss&\"","import Vue from 'vue'\r\nimport VeeValidate from 'vee-validate'\r\n\r\nVue.use(VeeValidate, {\r\n inject: true,\r\n fieldsBagName: 'veeFields',\r\n errorBagName: 'veeErrors'\r\n});\r\n\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePolicy.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePopup.vue?vue&type=style&index=0&lang=css&\"","import Vue from 'vue'\r\nimport VueMoment from 'vue-moment'\r\n\r\nVue.use(VueMoment);","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerAccountSelector.vue?vue&type=style&index=0&lang=scss&\"","import Vue from 'vue'\r\nimport VueBrowserUpdate from 'vue-browserupdate';\r\n\r\nVue.use(VueBrowserUpdate, {\r\n options: {\r\n // Your browser update options\r\n container: document.body,\r\n }\r\n})\r\n\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('b-alert',{staticClass:\"position-absolute banneralert\",staticStyle:{\"width\":\"100%\",\"z-index\":\"2\"},attrs:{\"variant\":\"primary\",\"show\":_vm.bannershow,\"fade\":\"\"}},[_vm._v(\" You are in the right place! We have updated the My SEFE Energy portal to improve your experience. \"),_c('br'),_vm._v(\" For more information, take a look at our \"),_c('a',{staticStyle:{\"color\":\"white\",\"text-decoration\":\"underline\"},attrs:{\"href\":\"https://www.sefe-energy.co.uk/portal-user-guide\",\"target\":\"_blank\"}},[_vm._v(\"user guide\")]),_vm._v(\" on how to use the portal and the specific changes that have been made. \")]),_c('cookie-popup',{on:{\"acceptedAllCookies\":_vm.handleAcceptAllCookies,\"declinedAnalytical\":_vm.handleDeclineAnalyticCookies}}),_c('transition',{attrs:{\"name\":_vm.transitionName,\"mode\":\"out-in\"}},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"CookiePopup\",staticClass:\"modal-title\",attrs:{\"hide-header-close\":\"\",\"no-close-on-esc\":\"\",\"no-close-on-backdrop\":\"\",\"id\":\"modal-cookiepopup\",\"size\":\"l\",\"scrollable\":\"\",\"header-class\":\"d-flex flex-row justify-content-center\"},on:{\"cancel\":_vm.handleCustomiseCookies,\"ok\":_vm.handleAcceptAllCookies},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"BV_modal_title_\"}},[_vm._v(\"This site uses cookies\")])]},proxy:true},{key:\"default\",fn:function(){return [_c('p',{staticClass:\"cookieText wrap\"},[_vm._v(\"We use cookies to ensure you get the best experience on our website. By clicking \\\"Accept all\\\" you consent to our use of cookies. For more information, read our \"),_c('a',{attrs:{\"href\":\"/cookiepolicy\",\"target\":\"_blank\"}},[_vm._v(\"cookie policy \"),_c('font-awesome-icon',{attrs:{\"icon\":\"arrow-up-right-from-square\",\"size\":\"1x\"}})],1),_vm._v(\".\")]),_c('br')]},proxy:true},{key:\"modal-footer\",fn:function(ref){\nvar cancel = ref.cancel;\nvar ok = ref.ok;\nreturn [(_vm.showCookieSettings)?_c('div',[_c('br'),_c('div',{staticClass:\"flex-row\"},[_c('h5',{staticClass:\"d-flex cookieHeading\"},[_vm._v(\"Essential cookies\")]),_c('p',{staticClass:\"d-flex justify-content-end alwayson\"},[_vm._v(\"Always active\")])]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"These cookies are necessary for the core functionality of our website and cannot be disabled. \")]),_c('h5',{staticClass:\"cookieHeading\"},[_vm._v(\"Analytical cookies\")]),_c('b-form-checkbox',{staticClass:\"justify-content-end\",attrs:{\"name\":\"analytical\",\"switch\":\"\"},model:{value:(_vm.acceptedAnalytics),callback:function ($$v) {_vm.acceptedAnalytics=$$v},expression:\"acceptedAnalytics\"}}),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"These cookies collect information about how visitors use our website. We use this information to analyse the use and performance of our website, which helps us to improve it. For more information about the cookies we use please view our \"),_c('a',{attrs:{\"href\":\"/cookiepolicy\",\"target\":\"_blank\"}},[_vm._v(\"cookie policy \"),_c('font-awesome-icon',{attrs:{\"icon\":\"arrow-up-right-from-square\",\"size\":\"1x\"}})],1),_vm._v(\".\")])],1):_vm._e(),(!_vm.showCookieSettings)?_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showCookieSettings = true}}},[_vm._v(\" Customise Settings \")]):_vm._e(),(_vm.showCookieSettings)?_c('b-button',{attrs:{\"pill\":\"\"},on:{\"click\":function($event){return cancel()}}},[_vm._v(\" Save Settings \")]):_vm._e(),_c('b-button',{attrs:{\"variant\":\"gazprom-blue\",\"pill\":\"\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Accept all \")])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class CookiePopup extends Vue {\n\n public showCookieSettings = false;\n private essentialCookies = true;\n private acceptedAnalytics = false;\n\n public handleCustomiseCookies(bvModalEvent: any): void {\n if (this.acceptedAnalytics === false) {\n this.$emit(\"declinedAnalytical\");\n }\n else {\n this.$emit(\"acceptedAllCookies\");\n }\n }\n\n public handleAcceptAllCookies(bvModalEvent: any): void {\n this.$emit(\"acceptedAllCookies\");\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CookiePopup.vue?vue&type=template&id=3f5ca51b&\"\nimport script from \"./CookiePopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./CookiePopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CookiePopup.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Vue } from 'vue-property-decorator';\r\n\r\nexport class VeeValidate_Custom extends Vue {\r\n\r\n public setupValidationMessages() {\r\n\r\n\r\n const DMConsumptionValdiationMessages = {\r\n custom: {\r\n dmConsumptionReportDateFrom: {\r\n required: 'Report date from is required'\r\n },\r\n dmConsumptionReportDateTo: {\r\n required: 'Report date to is required'\r\n }\r\n\r\n }\r\n };\r\n\r\n const AMRConsumptionValidationMessages = {\r\n custom: {\r\n amrConsumptionReportDateFrom: {\r\n required: 'Report date from is required'\r\n },\r\n amrConsumptionReportDateTo: {\r\n required: 'Report date to is required'\r\n }\r\n\r\n }\r\n };\r\n\r\n const BulkInvoicesValidationMessages = {\r\n custom: {\r\n customInvoiceReportDateFrom: {\r\n required: 'Start date is required'\r\n },\r\n customInvoiceReportDateTo: {\r\n required: 'End date is required'\r\n }\r\n }\r\n };\r\n\r\n this.$validator.localize('en', DMConsumptionValdiationMessages);\r\n this.$validator.localize('en', AMRConsumptionValidationMessages);\r\n this.$validator.localize('en', BulkInvoicesValidationMessages);\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Watch, Vue } from 'vue-property-decorator';\nimport CookiesConsenseService from '@/services/cookiesConsenseService';\nimport { namespace } from 'vuex-class'; \nimport { ILoginRequestResponse } from '@/interfaces/loginRequestResponse';\nimport moment from 'moment';\nimport router from '@/router'\nimport CookiePopup from '@/components/CookiePopup.vue';\n\nimport { VeeValidate_Custom } from '@/utilities/VeeValidate_Custom';\n\n\n\n@Component({\n components: {\n CookiePopup\n },\n})\n\nexport default class App extends Vue {\n public dismissed = false;\n private cookiesConsenseService = new CookiesConsenseService(this.$cookies);\n\n private transitionName = 'fade';\n public bannershow = false;\n\n private VeeValidateCustom = new VeeValidate_Custom();\n\n //@Watch('$route.path', { immediate: true, deep: true })\n //onUrlChange(to: string, from: string) {\n // if (to == null || to == undefined) {\n // this.transitionName = 'fade';\n // return;\n // }\n // const toDepth = to.split('/').length\n // const fromDepth = from?.split('/').length\n // this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left';\n //} \n\n handleCookiesConsense(): void {\n this.dismissed = this.cookiesConsenseService.getConsentStatus();\n }\n\n showCookieModal(): void {\n this.$bvModal.show(\"CookiePopup\")\n }\n\n public handleAcceptAllCookies(bvModalEvent: any): void {\n this.cookiesConsenseService.setConsentStatus();\n this.cookiesConsenseService.setAnalytics();\n this.dismissed = this.cookiesConsenseService.getConsentStatus();\n }\n\n public handleDeclineAnalyticCookies(bvModalEvent: any): void {\n this.cookiesConsenseService.setConsentStatus();\n this.dismissed = this.cookiesConsenseService.getConsentStatus();\n }\n\n created() {\n this.dismissed = this.cookiesConsenseService.getConsentStatus();\n\n\n this.loadMenuItems();\n \n //Vee Validate Custom rules\n this.$validator.extend('earlierToDate', {\n getMessage(field, val) {\n return 'Report date to is earlier than Report date from'\n },\n validate(value, [otherValue]: any) {\n var fromDate = moment(otherValue);\n var toDate = moment(value);\n\n if (fromDate.isAfter(toDate)) {\n return false;\n }\n return true\n }\n }, {\n hasTarget: true\n });\n\n this.$validator.extend('futureToDate', {\n getMessage(field, val) {\n return 'This date is in the future, please select an earlier date'\n },\n validate(value) {\n\n var currentDate = moment();\n var toDate = moment(value);\n\n if (toDate.isAfter(currentDate)) {\n return false;\n }\n return true\n }\n });\n\n this.$validator.extend('dateRangeTwelveMonth', {\n getMessage(field, val) {\n return 'Date range cannot be greater than 12 months'\n },\n validate(value, [otherValue]: any) {\n var fromDate = moment(otherValue);\n var toDate = moment(value);\n\n if (fromDate.add(1, 'years') < toDate) {\n return false;\n }\n return true\n }\n }, {\n hasTarget: true\n });\n\n this.$validator.extend('dateRangeThirtyOneDays', {\n getMessage(field, val) {\n return 'Date range cannot be greater than 31 days'\n },\n validate(value, [otherValue]: any) {\n var fromDate = moment(otherValue);\n var toDate = moment(value);\n\n var dayDifference = toDate.diff(fromDate, 'days', true);\n if (dayDifference > 31) {\n return false;\n }\n return true\n }\n }, {\n hasTarget: true\n });\n\n this.$validator.extend('isAnExcelFile', {\n getMessage(field, val) {\n return 'File is not recognised as a spreadsheet, please select another file'\n },\n validate(file : File) {\n \n if (file !== null) {\n\n var foundFilename = file.name.match(/.([^.]+)$/);\n if (foundFilename !== null) {\n\n let ext = foundFilename[1].toLowerCase();\n if (ext === 'xlsx' || ext === 'xls') {\n return true;\n }\n } \n }\n\n return false;\n }\n });\n\n this.$validator.extend('confirmEmailMatch', {\n getMessage(field, val) {\n return 'Email addresses entered do not match'\n },\n validate(value, [otherValue]: any) {\n var email = otherValue;\n var confirmEmail = value;\n\n if (email !== confirmEmail) {\n return false;\n }\n return true\n }\n }, {\n hasTarget: true\n });\n\n this.$validator.extend('emailDomain', {\n getMessage(field, val) {\n return 'Email address must end in @sefe.eu or @sefe-energy.com'\n },\n validate(value: string) {\n\n if (value.endsWith('@gazprom-energy.com') || value.endsWith('@sefe-energy.com') || value.endsWith('@sefe.eu')) {\n return true;\n }\n return false\n }\n });\n\n this.$validator.extend('enterDateInFuture', {\n getMessage(field, val) {\n return 'This date is in the past. Please select a date in the future'\n },\n validate(value) {\n\n var currentDate = moment();\n var selectedDate = moment(value);\n\n if (selectedDate.isAfter(currentDate)) {\n return true;\n }\n return false;\n }\n });\n\n //Vee Validate Custom Rules ---- END\n\n this.VeeValidateCustom.setupValidationMessages();\n\n }\n\n async mounted() {\n await this.handleCookiesConsense();\n\n if (!this.dismissed && this.$route.name != 'CookiePolicy') {\n this.$bvModal.show(\"modal-cookiepopup\");\n }\n\n if (this.$route.name == 'Index') {\n this.bannershow = true;\n }\n }\n\n public loadMenuItems(): void {\n\n router.addRoute({\n path: '/invoicing',\n name: 'Invoicing',\n component: () => import('@/views/Invoicing.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/balance',\n name: 'Balance',\n component: () => import('@/views/Balance.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/metering',\n name: 'Metering',\n component: () => import('@/views/Metering.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/billing',\n name: 'Billing',\n component: () => import('@/views/Billing.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/consumption',\n name: 'Consumption',\n component: () => import('@/views/Consumption.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/contract-information',\n name: 'ContractInformation',\n component: () => import('@/views/ContractInformation.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/billing-details',\n name: 'BillingDetails',\n component: () => import('@/views/BillingDetails.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/site-address',\n name: 'SiteAddress',\n component: () => import('@/views/SiteAddress.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/emergency-contact',\n name: 'EmergencyContact',\n component: () => import('@/views/EmergencyContact.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/help-and-support',\n name: 'HelpAndSupport',\n component: () => import('@/views/HelpAndSupport.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '/change-password',\n name: 'ChangePassword',\n component: () => import('@/views/UsernameAndPassword.vue'),\n meta: { requiresAuth: true }\n });\n\n router.addRoute({\n path: '*',\n name: 'notFound',\n component: () => import('@/views/NotFound.vue')\n });\n\n router.addRoute({\n path: '/manageaccount',\n name: 'ManageAccount',\n component: () => import('@/views/ManageAccount.vue'),\n meta: { requiresAuth: true }\n });\n router.addRoute({\n path: '/manageusers',\n name: 'ManageUsers',\n component: () => import('@/views/ManageUsers.vue'),\n meta: { requiresAuth: true }\n });\n router.addRoute({\n path: '/requestaccess',\n name: 'RequestAccess',\n component: () => import('@/views/RequestAccess.vue'),\n meta: { requiresAuth: true }\n })\n }\n\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6e95a04a&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf755\",\n\t\"./tlh.js\": \"cf755\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterTab.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","import Vue from 'vue'\r\nimport PrettyCheckbox from 'pretty-checkbox-vue';\r\n\r\nVue.use(PrettyCheckbox);","import { Vue } from 'vue-property-decorator';\r\n\r\nexport class GtagHelper extends Vue {\r\n public Event(eventName: string, userId: string): void {\r\n try {\r\n this.$gtag.event(eventName, { userId: userId })\r\n } catch (error) {\r\n console.log(\"Gtag Event error: \" + eventName);\r\n }\r\n }\r\n}","module.exports = __webpack_public_path__ + \"img/consumption_icon_gazprom_blue.0596ca10.svg\";","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport store from '../store'\r\nimport NProgress from 'nprogress'\r\n\r\nconst vm = new Vue({});\r\n\r\naxios.interceptors.request.use(\r\n config => {\r\n NProgress.start();\r\n return config;\r\n },\r\n error => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(\r\n response => {\r\n NProgress.done();\r\n return response.data;\r\n },\r\n error => { \r\n vm.$bvToast.toast(errorHandler(error), {\r\n title: `Error Message`,\r\n variant: \"danger\",\r\n solid: true,\r\n autoHideDelay: 30000,\r\n appendToast: true\r\n });\r\n NProgress.done();\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n\r\nconst errorHandler = (error: any) => {\r\n switch (error.response.status) {\r\n case 404:\r\n return error.response.data.message !== \"\" ? error.response.data.message : \"Service not reachable. Try again later.\";\r\n case 401:\r\n if (document.location.pathname != \"/\") {\r\n\r\n const isLoggedIn = store.getters[\"Auth/isLoggedIn\"];\r\n\r\n if (isLoggedIn) {\r\n Vue.$cookies.remove(\"account\");\r\n Vue.$cookies.remove(\"impersonatedAccount\");\r\n store.dispatch('Auth/signOut');\r\n document.location.href = \"/\";\r\n }\r\n }\r\n return error.response.data.message !== \"\" ? error.response.data.message : \"Your session has expired.\";\r\n case 400: \r\n return error.response.data.message;\r\n default:\r\n return \"Unknown error. Please contact the administrator.\";\r\n }\r\n};\r\n\r\nexport default axios;","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GasAccountSelector.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasePage.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/sefe-logo.b13ee7b7.png\";","import Vue from 'vue'\r\nimport VueCookies from 'vue-cookies'\r\nVue.use(VueCookies)\r\n\r\n// set default config\r\n\r\nconst httpsProtocal = location.protocol === 'https:';\r\n \r\nVue.$cookies.config('120min', '', '', httpsProtocal);","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class WizardBaseStep extends Vue {\n @Prop({ type: String, default: '' }) readonly title!: string;\n @Prop({ type: String, default: '' }) readonly id!: string;\n @Prop({ type: String, default: '' }) readonly accordionGroupName!: string;\n @Prop({ type: Boolean, default: false }) readonly visible!: boolean;\n private switchStatus = false;\n private visibilityStatus = false;\n\n\n mounted(): void {\n this.$root.$on('bv::collapse::state', (collapseId: string, isJustShown: boolean) => {\n if (collapseId == this.id) {\n this.switchStatus = isJustShown;\n }\n });\n this.visibilityStatus = this.visible;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardBaseStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardBaseStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WizardBaseStep.vue?vue&type=template&id=c53b30a8&\"\nimport script from \"./WizardBaseStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./WizardBaseStep.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WizardBaseStep.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyBalancePanel.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/power_icon_gazprom_blue.758a51fa.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-alert',{staticClass:\"my-2 shadow\",attrs:{\"show\":\"\",\"variant\":\"gazprom-blue\"}},[_c('h5',{staticClass:\"alert-heading\"},[_vm._v(\"Information\")]),_c('p',[_vm._v(\" Placeholder for feature discovery / alert banner (e.g. COVID) \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class AlertBanner extends Vue {\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlertBanner.vue?vue&type=template&id=06efdbe4&\"\nimport script from \"./AlertBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlertBanner.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{staticClass:\"min-vh-100 d-flex flex-column justify-content-center pl-2 p-md-0 image-background-for-login\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"my-5 w-100 ml-0\"},[_c('b-col',{staticClass:\"my-auto\",attrs:{\"cols\":\"12\",\"md\":\"8\",\"lg\":\"6\",\"offset-md\":\"2\",\"offset-lg\":\"3\"}},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class CenteredLayout extends Vue {}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CenteredLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CenteredLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CenteredLayout.vue?vue&type=template&id=75899437&\"\nimport script from \"./CenteredLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./CenteredLayout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavMenu.vue?vue&type=style&index=0&lang=scss&\"","export enum UserTypes {\r\n\r\n InternalAdmin = 2,\r\n Marketing = 3,\r\n ExternalAdmin = 4,\r\n Standard = 5,\r\n TPI = 6,\r\n DevelopmentTeamMember = 7,\r\n Internaluser = 8\r\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainItemLabel.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('centered-layout',[_c('b-tabs',{staticClass:\"bg-transparent mt-3\",attrs:{\"card\":\"\",\"content-class\":\"bg-white box-shadow-login\",\"lazy\":\"\"},model:{value:(_vm.step),callback:function ($$v) {_vm.step=$$v},expression:\"step\"}},[_c('login-tab'),_c('register-tab'),_c('forgotten-tab')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-tab',{attrs:{\"title\":\"Login\"}},[_c('b-img',{staticClass:\"pt-3 mb-3\",attrs:{\"src\":require(\"../assets/sefe-logo.png\"),\"width\":\"150\"}}),_c('p',{staticClass:\"text-gazprom-blue p-text-login\"},[_vm._v(\" Log in with your email address \")]),_c('b-form',{attrs:{\"name\":\"form\",\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleLogin.apply(null, arguments)}}},[_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],attrs:{\"id\":\"email\",\"name\":\"email\",\"type\":\"text\",\"data-vv-as\":\"email\",\"data-vv-validate-on\":\"blur\",\"placeholder\":\"Email address\"},model:{value:(_vm.account.Email),callback:function ($$v) {_vm.$set(_vm.account, \"Email\", $$v)},expression:\"account.Email\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('email')}},[_vm._v(\"Please enter a valid email address.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({required:true}),expression:\"{required:true}\"}],attrs:{\"id\":\"password\",\"name\":\"password\",\"type\":\"password\",\"placeholder\":\"Password\"},model:{value:(_vm.account.Password),callback:function ($$v) {_vm.$set(_vm.account, \"Password\", $$v)},expression:\"account.Password\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('password')}},[_vm._v(\"Password required.\")])],1),_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"switch\":\"\"},model:{value:(_vm.account.RememberMe),callback:function ($$v) {_vm.$set(_vm.account, \"RememberMe\", $$v)},expression:\"account.RememberMe\"}},[_vm._v(\"Remember me\")])],1),_c('b-button',{attrs:{\"id\":\"login-loginButton\",\"variant\":\"gazprom-blue\",\"size\":\"lg\",\"disabled\":_vm.loading,\"type\":\"submit\"}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Log in \"),_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"box-arrow-in-right\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"termsOfUse\",staticClass:\"modal-title\",attrs:{\"hide-header-close\":\"\",\"no-close-on-esc\":\"\",\"no-close-on-backdrop\":\"\",\"id\":\"modal-scrollable\",\"size\":\"xl\",\"scrollable\":\"\",\"header-class\":\"d-flex flex-row justify-content-center\"},on:{\"ok\":_vm.handleAcceptTermOfUse,\"cancel\":_vm.handleDeclineTermOfUse},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"modal-scrollable___BV_modal_title_\"}},[_vm._v(\"My SEFE Energy - Terms of use\")]),_c('p',{staticClass:\"text-danger pt-1 m-0 ml-5\"},[_vm._v(\"Scroll to bottom to accept\")])]},proxy:true},{key:\"default\",fn:function(){return [_c('p',{staticClass:\"cookieText\"},[_vm._v(\"My SEFE Energy provides you with an interactive service which is designed to enable you to access and manage your account(s) with us (\\\"Service\\\").\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"In these Terms and Conditions (“My SEFE Energy Terms”), \\\"you\\\" are the customer (or an authorised representative of the customer) who has registered for the Service and \\\"we\\\" are SEFE Energy Limited trading as SEFE Energy.\")]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"My SEFE Energy Terms (as amended from time to time) govern your use of the Service and are binding on you. They should be read in conjunction with the Terms of Use of our Website \"),_c('a',{attrs:{\"href\":\"https://www.sefe-energy.co.uk\",\"target\":\"_blank\"}},[_vm._v(\"www.sefe-energy.co.uk\")]),_vm._v(\".\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If there is any conflict or ambiguity between these My SEFE Energy Terms and your supply agreement, these My SEFE Energy Terms shall take precedence.\")]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" By accessing or using the Service you acknowledge and confirm that you are duly authorised to: \"),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"enter into this agreement for and on behalf of our customer ; \")]),_c('li',[_vm._v(\"accept these My SEFE Energy Terms and agree to comply with them. If you do not agree to these My SEFE Energy Terms, please do not use any part of the Service; \")]),_c('li',[_vm._v(\"to access information relating to that customer and to take actions on behalf of that customer. \")])])]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We reserve the right to amend these My SEFE Energy Terms. We may modify, update or withdraw the Service at any time.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Access\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We will try to ensure that the Service is available 24 hours a day. However, we will not be responsible to you if, for any reason, the Service or any of its functions is unavailable at any time or for any period. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We reserve the right to withdraw or amend access to the Service without notice at any time. If we withdraw or amend your access to the Service, we are under no obligation to unblock or reactivate your account.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Your access to the Service will end one hundred and eighty (180) days after your supply ends.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Usernames and passwords\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must treat any username, password and any other account security information that we send you as confidential and you must not disclose it to any third party unless you are authorised to do so by us. You are responsible for all uses of your username and password whether or not authorised by you.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must take reasonable security precautions to keep any username, password and any other account security information secure.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" Reasonable security precautions can include steps such as: \"),_c('ul',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"not choosing a password or other account security information which may be easy to guess;\")]),_c('li',[_vm._v(\"not allowing or making it possible for someone else to access your account using your login details;\")]),_c('li',[_vm._v(\"complying with all reasonable instructions we issue about keeping your account safe;\")]),_c('li',[_vm._v(\"not leaving your Service account unattended while you are still logged on;\")]),_c('li',[_vm._v(\"logging out of your account when you have completed your session;\")]),_c('li',[_vm._v(\"buying and keeping updated anti-virus, firewall and any other security software;\")]),_c('li',[_vm._v(\"not accessing your account from a device using public WiFi unless you know it is secure; and\")]),_c('li',[_vm._v(\"taking care when logging out – for example ensuring that you log off correctly.\")])])]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you think that somebody else knows your username or password you can change your password by visiting and using the forgotten password option.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Your account is personal to you and you may not share your account with any other person at any time.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Intellectual Property\")]),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"You are permitted to view, print, and download documents from the Service for your own use on the basis that no information or documents are modified in any way.\")]),_c('li',[_vm._v(\"We are the owner of all rights in the Service and we reserve all such rights. You may only use the Service (including the content) as expressly stated in these My SEFE Energy Terms. You must not sell, license, distribute or otherwise make available the Service or the content in the Service.\")]),_c('li',[_vm._v(\"\\\"SEFE Energy\\\" and other trademarks used for the purposes of the Service may not be used without our prior written permission.\")])]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Your liability to us\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you do not comply with these My SEFE Energy Terms, and we incur any costs, loss, claims, expenses and other liabilities which result from your non-compliance, you agree to reimburse us for such costs, loss, claims, expenses and other liabilities. This is in addition to any other specific remedies we have in these My SEFE Energy Terms or under the law generally\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Our Liability to you\")]),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Information relating to the Services\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" We will have no liability arising from: \"),_c('ul',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"Your use or your inability to use the Service; or\")]),_c('li',[_vm._v(\"Any information/content available via the Service; or\")]),_c('li',[_vm._v(\"Any reliance you place on any information/content available via the Service.\")])])]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Third party rights\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We provide no assurance that the use by you of information or content available via the Service will not infringe third party rights (including, without limitation, intellectual property rights or privacy rights) and we will have no liability in this regard.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"General exclusions of liability\")]),_c('ol',{staticClass:\"cookieText\",attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\"We are only legally responsible to you as set out in these My SEFE Energy Terms. We have no other duty or legal responsibility to you, and all responsibilities, guarantees and any other conditions implied by law or otherwise will not apply, as far as this is permitted by law.\")]),_c('li',[_vm._v(\"We are not liable for any direct, indirect, or consequential loss or damage that you may incur in connection with your use or inability to use the Service, including, without limitation, any damage to electronic devices, any liability for loss of income or revenue, loss of business, loss of profits or contracts, loss of anticipated savings, loss of data, loss of goodwill, wasted office time and any other loss or damage of any kind, however arising and whether caused by tort (including negligence), breach of contract or otherwise, and whether foreseeable or not. \")])]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Nothing in these My SEFE Energy Terms will exclude or limit our legal responsibility for death or personal injury caused by our negligence or for fraud. We will not be legally responsible to you for any event or circumstance beyond our reasonable control.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Viruses, hacking, use of robotics and other offences\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We will not be responsible for any loss or damage caused by a distributed denial-of-service attack, viruses or other technologically harmful material that may infect your computer equipment, computer programs, or for any loss or damage to any data or other proprietary material due to your use of the Service or to your downloading of any software or data from the Service. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must not misuse the Service by knowingly introducing viruses, Trojans, worms, logic bombs or other material which is malicious or technologically harmful. You must not attempt to gain unauthorised access to the Service, the server on which the Service is stored or any server, computer or database connected to the Service.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You agree not to (a) access or use the Service in any manner that could damage, disable, overburden, or impair the Service and (b) use any robot, spider, or other automated means to access the Service.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You agree that you will not take any action that imposes an unreasonable or disproportionately large load on the infrastructure of the systems or networks connected to the Service.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Termination\")]),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"We may at our sole discretion restrict your access to the Service without prior notice if we consider that you are abusing the Service or are otherwise acting in breach of the My SEFE Energy Terms, or the Terms of Use on our website;\")]),_c('li',[_vm._v(\"We have the right to discontinue or suspend the Service in respect of any one or more of your accounts including but not limited to any of the following circumstances:\")])]),_c('ol',{staticClass:\"cookieText\"},[_c('li',{staticStyle:{\"list-style-type\":\"lower-roman\"}},[_vm._v(\"where you set up more than one account for the same supply; or\")]),_c('li',{staticStyle:{\"list-style-type\":\"lower-roman\"}},[_vm._v(\"where you have not used an account for longer than 12 months. You should note that the above examples are not an exhaustive list.\")])]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Cookies\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"For information on the cookies used by the Service, please see \"),_c('a',{staticStyle:{\"text-decoration\":\"underline\"},attrs:{\"href\":\"/cookiepolicy/\",\"id\":\"aTermsOfUseCookiePolicy\",\"target\":\"_blank\"}},[_vm._v(\"Cookie Policy\")])]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Other Important Terms\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Unless otherwise specified, when \"),_c('b',[_vm._v(\"you\")]),_vm._v(\" access the Service you will be solely responsible for ensuring that in doing so you comply with any local laws that may apply in the location that you are accessing the site from. We can transfer all or any of our rights and legal responsibilities under these My SEFE Energy Terms without your permission. Your rights and duties under these My SEFE Energy Terms apply only to you and cannot be transferred to any other person without our written permission.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"The My SEFE Energy Terms, are governed by the laws of England and you agree to submit to the exclusive jurisdiction of the English courts.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If we don't enforce any part of these My SEFE Energy Terms at any time, this will not stop us from doing so in the future.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If any term of these My SEFE Energy Terms is found not to be valid or cannot be enforced in full or in part, the rest of the My SEFE Energy Terms will continue to apply as normal.\")]),_c('br'),_c('h2',{staticClass:\"cookieHeading\"},[_vm._v(\"Contacting us\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you have any questions about these My SEFE Energy Terms please contact us at \"),_c('a',{attrs:{\"href\":\"mailto:marketing@sefe-energy.com\"}},[_vm._v(\"marketing@sefe-energy.com\")])])]},proxy:true},{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nvar cancel = ref.cancel;\nreturn [_c('b-button',{attrs:{\"variant\":_vm.acceptBtnDisabled?'light-grey':'gazprom-blue',\"pill\":\"\",\"disabled\":_vm.acceptBtnDisabled},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Accept \")]),_c('b-button',{attrs:{\"variant\":\"deep-blue\",\"pill\":\"\"},on:{\"click\":function($event){return cancel()}}},[_vm._v(\" Decline \")])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class TermsOfUseModal extends Vue {\n \n private acceptBtnDisabled = true;\n\n public handleAcceptTermOfUse(bvModalEvent: any): void {\n this.$emit(\"acceptedTerms\");\n }\n\n public handleDeclineTermOfUse(bvModalEvent: any): void {\n this.$emit(\"declinedTerms\");\n }\n\n public onScroll(event: any) { \n \n var scrollMaxHeightPosition = ((event.srcElement as HTMLElement).scrollHeight) - (event.srcElement as HTMLElement).offsetHeight;\n\n var currentScrollPosition = event.srcElement.scrollTop;\n\n var tolerance = 100\n\n if (currentScrollPosition + tolerance >= scrollMaxHeightPosition) {\n this.acceptBtnDisabled = false;\n } \n }\n\n mounted() {\n this.$root.$on('bv::modal::shown', (bvEvent: any, modalId: any) => {\n const element = document.getElementById('modal-scrollable___BV_modal_body_'); \n (element as HTMLElement).addEventListener('scroll', this.onScroll, { passive: true });\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsOfUseModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsOfUseModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TermsOfUseModal.vue?vue&type=template&id=0754538e&\"\nimport script from \"./TermsOfUseModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./TermsOfUseModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { namespace } from 'vuex-class';\nimport TermsOfUseModal from '@/components/elements/TermsOfUseModal.vue';\nimport { ILoginDetails } from \"@/interfaces/loginDetails\";\nimport { GtagHelper } from '../utilities/GtagHelper';\n\nconst Auth = namespace(\"Auth\");\nconst Terms = namespace(\"Terms\");\n\n@Component({\n components: {\n TermsOfUseModal\n }\n})\nexport default class LoginTab extends Vue {\n private account: ILoginDetails = { Email: \"\", Password: \"\", RememberMe: false };\n public loading = false;\n\n private GtagHelper = new GtagHelper();\n\n @Auth.Getter\n private isLoggedIn!: boolean;\n\n @Auth.Getter\n private getUserId!: string;\n\n @Auth.Getter\n private getRememberMeAccountEmail!: string;\n\n @Auth.Action\n private login!: (data: ILoginDetails) => Promise;\n\n mounted() {\n if (this.isLoggedIn) {\n this.$router.push(\"/home\");\n }\n this.account.Email = this.getRememberMeAccountEmail;\n }\n\n public handleLogin(): void {\n this.loading = true;\n this.$validator.validateAll().then((isValid) => {\n if (!isValid) {\n this.loading = false;\n return;\n }\n\n\n if (this.account.Email && this.account.Password) {\n this.login(this.account).then((data) => {\n \n if (this.$route.query[\"redirectUrl\"] != undefined) {\n this.$router.push(this.$route.query[\"redirectUrl\"] as string);\n } else {\n\n this.$router.push(\"/home\");\n } \n\n this.GtagHelper.Event(\"LumiLogin\", this.getUserId);\n\n try { \n this.$ga.set('dimension3', this.getUserId); // set the userId custom dimension\n } catch (error) {\n console.log('GA Event error: ' + 'dimension3');\n }\n }, (error) => {\n this.loading = false;\n console.error(error);\n })\n }\n this.loading = false;\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginTab.vue?vue&type=template&id=4038b9b0&\"\nimport script from \"./LoginTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginTab.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',{attrs:{\"title\":\"Register\"},on:{\"click\":_vm.handleOnTabClicked}},[_c('b-img',{staticClass:\"pt-3 mb-3\",attrs:{\"src\":require(\"../assets/sefe-logo.png\"),\"width\":\"150\"}}),(_vm.showEmailSentMessage)?[_c('p',{staticClass:\"text-gazprom-blue p-text-login\"},[_c('br'),_vm._v(\" Thank you \"),_c('br'),_vm._v(\" Please allow two business days for your request to be processed. \"),_c('br'),_vm._v(\" If we can be of any assistance, please contact us on 0161 837 3395 \")])]:[_c('p',{staticClass:\"text-gazprom-blue p-text-login\"},[_vm._v(\" Please register for online services. \")]),_c('b-form',{attrs:{\"name\":\"form\",\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleRegistration.apply(null, arguments)}}},[_c('b-form-group',[_c('b-button-group',[_c('b-button',{attrs:{\"variant\":\"outline-gazprom-blue\",\"pressed\":_vm.isCustomerSelected},on:{\"click\":_vm.toggleIfCustomerSelected}},[_vm._v(\"Customer\")]),_c('b-button',{attrs:{\"variant\":\"outline-gazprom-blue\",\"pressed\":_vm.isTpiSelected},on:{\"click\":_vm.toggleIfTpiSelected}},[_vm._v(\"TPI\")])],1)],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"id\":\"firstname\",\"name\":\"firstname\",\"type\":\"text\",\"readonly\":_vm.isInMultipleRequestMode,\"placeholder\":\"First name\"},model:{value:(_vm.registrationDetails.Firstname),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"Firstname\", $$v)},expression:\"registrationDetails.Firstname\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('firstname')}},[_vm._v(\"First name required.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"id\":\"lastname\",\"name\":\"lastname\",\"type\":\"text\",\"readonly\":_vm.isInMultipleRequestMode,\"placeholder\":\"Last name\"},model:{value:(_vm.registrationDetails.Lastname),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"Lastname\", $$v)},expression:\"registrationDetails.Lastname\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('lastname')}},[_vm._v(\"Last name required.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],attrs:{\"id\":\"account-email\",\"name\":\"account-email\",\"data-vv-as\":\"email\",\"data-vv-validate-on\":\"blur\",\"type\":\"text\",\"readonly\":_vm.isInMultipleRequestMode,\"placeholder\":\"Email\"},model:{value:(_vm.registrationDetails.Email),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"Email\", $$v)},expression:\"registrationDetails.Email\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('account-email')}},[_vm._v(\"Please enter a full valid email address.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|numeric'),expression:\"'required|numeric'\"}],attrs:{\"id\":\"telephone\",\"name\":\"telephone\",\"type\":\"tel\",\"readonly\":_vm.isInMultipleRequestMode,\"placeholder\":\"Telephone\"},model:{value:(_vm.registrationDetails.Telephone),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"Telephone\", $$v)},expression:\"registrationDetails.Telephone\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('telephone')}},[_vm._v(\"Invalid telephone number.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"id\":\"company-name\",\"name\":\"company-name\",\"type\":\"text\",\"readonly\":_vm.isInMultipleRequestMode,\"placeholder\":\"Company name\"},model:{value:(_vm.registrationDetails.CompanyName),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"CompanyName\", $$v)},expression:\"registrationDetails.CompanyName\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('company-name')}},[_vm._v(\"Company name required.\")])],1),_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"id\":\"account-no-fin-ref\",\"name\":\"account-no-fin-ref\",\"type\":\"text\",\"placeholder\":\"Account number(s) & Finance reference(s)\"},model:{value:(_vm.registrationDetails.AccountNumberFinanceReference),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"AccountNumberFinanceReference\", $$v)},expression:\"registrationDetails.AccountNumberFinanceReference\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('account-no-fin-ref')}},[_vm._v(\"Account number(s) & Finance reference(s) required.\")])],1),(!_vm.isTpiSelected)?_c('div',{staticClass:\"form-row form-group\"},[_c('label',{staticClass:\"control-label col-lg-3\"},[_vm._v(\" Upload SEFE Document \"),_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",value:({ variant: 'sefe-blue', html: true }),expression:\"{ variant: 'sefe-blue', html: true }\",modifiers:{\"hover\":true,\"right\":true}}],staticClass:\"info-button\",attrs:{\"title\":\"For validation purposes, please upload a file, scan or picture of one of the following documents:
  • SEFE Invoice
  • SEFE Contract
  • SEFE Payment Reminder
  • SEFE Statement
  • SEFE Welcome letter (page with name and address)
Include only the page that contains your customer details.
Accepted file types: pdf, doc, docx, jpg, jpeg, png and heic.\",\"variant\":\"sefe-blue\"}},[_c('b-icon',{attrs:{\"variant\":\"gazprom-blue\",\"icon\":\"info-circle-fill\",\"font-scale\":\"0.90\"}})],1)],1),_c('div',{staticClass:\"col-sm col-lg-9\"},[_c('b-form-file',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],class:{active: _vm.isSFActive},attrs:{\"id\":\"sefe-file\",\"name\":\"sefeFile\",\"placeholder\":\"Select file to upload...\",\"variant\":\"outline-gazprom-blue\",\"accept\":\".pdf,.doc,.docx,.jpg,.jpeg,.png,.heic\"},on:{\"input\":_vm.loadSefeFile},model:{value:(_vm.sefeFile),callback:function ($$v) {_vm.sefeFile=$$v},expression:\"sefeFile\"}}),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.sefeFile),expression:\"sefeFile\"}],attrs:{\"block\":\"\",\"variant\":\"danger\"},on:{\"click\":_vm.removeSefeFile}},[_vm._v(\"Remove\")]),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('sefeFile')}},[_vm._v(\"SEFE Document required.\")])],1)]):_vm._e(),(_vm.isTpiSelected)?[_c('b-form-group',{attrs:{\"label\":\"Upload LOA\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\"}},[_c('b-form-file',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],class:{active: _vm.isActive},attrs:{\"id\":\"loa-file\",\"name\":\"loaFile\",\"placeholder\":\"Select file to upload...\",\"variant\":\"outline-gazprom-blue\",\"accept\":\".pdf,.doc,.docx,.jpg,.jpeg,.png,.heic\"},on:{\"input\":_vm.loadFile},model:{value:(_vm.loaFile),callback:function ($$v) {_vm.loaFile=$$v},expression:\"loaFile\"}}),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaFile),expression:\"loaFile\"}],attrs:{\"block\":\"\",\"variant\":\"danger\"},on:{\"click\":_vm.removeSelectedFile}},[_vm._v(\"Remove\")]),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('loaFile')}},[_vm._v(\"Letter of authority required.\")])],1),_c('b-form-group',{attrs:{\"label\":\"Accessible until date\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\"}},[_c('b-form-datepicker',{attrs:{\"id\":\"accessible-datepicker\",\"name\":\"accessibleDatapicker\",\"min\":_vm.minimumAccessibleUntilDate,\"placeholder\":\"Allow access until date\"},model:{value:(_vm.registrationDetails.AccessibleUntil),callback:function ($$v) {_vm.$set(_vm.registrationDetails, \"AccessibleUntil\", $$v)},expression:\"registrationDetails.AccessibleUntil\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('accessibleDatapicker')}},[_vm._v(\"Access until date required..\")])],1)]:_vm._e(),_c('div',{staticClass:\"d-flex flex-row justify-content-center mt-5 mb-3\"},[_c('recaptcha',{ref:\"recaptcha\",attrs:{\"sitekey\":\"6LfzbC8hAAAAAKRPVcN1QJgPltsnOlY7hHWHHjJm\",\"loadRecaptchaScript\":true},on:{\"verify\":_vm.onVerify,\"expired\":_vm.onExpired}})],1),_c('b-form-group',[_c('b-link',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-scrollable\",modifiers:{\"modal-scrollable\":true}}]},[_c('b-form-text',[_vm._v(\" To register for online services you must read and agree to our Terms of Use \"),_c('span',[_c('b-form-checkbox',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"d-flex flex-row justify-content-center\",attrs:{\"name\":\"terms\",\"switch\":\"\",\"disabled\":\"\"},model:{value:(_vm.readTermOfUse),callback:function ($$v) {_vm.readTermOfUse=$$v},expression:\"readTermOfUse\"}},[_vm._v(\"Read Terms of Use\")])],1)])],1)],1),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.registrationDetails.RegistrationType),expression:\"registrationDetails.RegistrationType\"}],attrs:{\"id\":\"registationType\",\"name\":\"registrationType\",\"type\":\"hidden\"},domProps:{\"value\":(_vm.registrationDetails.RegistrationType)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.registrationDetails, \"RegistrationType\", $event.target.value)}}}),(!_vm.isInMultipleRequestMode)?[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"gazprom-blue\",\"size\":\"lg\",\"type\":\"submit\",\"disabled\":_vm.loadingRegister}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loadingRegister),expression:\"loadingRegister\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Register \"),_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"file-earmark-person\"}})],1)]:_vm._e(),(_vm.isTpiSelected)?[_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"outline-gazprom-blue\",\"size\":\"lg\",\"type\":\"submit\",\"disabled\":_vm.loadingAddRequest},on:{\"click\":_vm.handleAddNewRequestClicked}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loadingAddRequest),expression:\"loadingAddRequest\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Add new request \")],1)]:_vm._e(),_c('b-form-text',{staticClass:\"black\"},[_vm._v(\"If you have any issues with registering, please contact customer services on 0161 837 3395\")])],2),_c('br'),(_vm.isInMultipleRequestMode)?[_c('div',[_c('h3',[_vm._v(\"Requests \"),_c('b-badge',[_vm._v(_vm._s(_vm.savedRegistrations.length))])],1),_c('b-table',{staticClass:\"small\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"hover\":\"\",\"items\":_vm.savedRegistrations,\"fields\":_vm.savedRegistrationsFields},scopedSlots:_vm._u([{key:\"cell(LOA)\",fn:function(data){return [_c('a',{attrs:{\"href\":(\"/userAccess/register/viewLoa?TpiRegistrationDetailsRequestId=\" + (data.item.LOA))}},[_vm._v(\"Download\")])]}},{key:\"cell(AccountNumberFinanceReference)\",fn:function(data){return [_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":data.item.AccountNumberFinanceReference}},[_vm._v(_vm._s(_vm.formatAccountNumber(data.item.AccountNumberFinanceReference)))])]}},{key:\"cell(actions)\",fn:function(row){return [_c('b-button',{staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"variant\":\"outline-gazprom-blue\",\"pill\":\"\"},on:{\"click\":function($event){return _vm.handleDeleteClicked(row.item.Actions)}}},[_vm._v(\" Delete \")])]}}],null,false,2314298259)})],1),[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"gazprom-blue\",\"size\":\"lg\",\"type\":\"button\",\"disabled\":_vm.loadingRegister},on:{\"click\":_vm.handleRegisterAllTpis}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loadingRegister),expression:\"loadingRegister\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Register \")],1)]]:_vm._e(),_c('b-modal',{staticClass:\"modal-title\",attrs:{\"id\":\"modal-confirm-registration\",\"title\":\"Are you sure you want to confirm?\"},on:{\"ok\":_vm.handleConfirmOk,\"cancel\":_vm.handleConfirmCancel},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nvar cancel = ref.cancel;\nreturn [_c('b-button',{attrs:{\"variant\":\"gazprom-blue\",\"pill\":\"\"},on:{\"click\":function($event){return ok()}}},[_vm._v(\" Confirm \")]),_c('b-button',{attrs:{\"variant\":\"deep-blue\",\"pill\":\"\"},on:{\"click\":function($event){return cancel()}}},[_vm._v(\" Cancel \")])]}}])},[_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Select 'Confirm' to send your details to the Customer Service team.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Select 'Cancel' to return to the form.\")])]),_c('terms-of-use-modal',{on:{\"acceptedTerms\":_vm.handleAcceptTermOfUse,\"declinedTerms\":_vm.handleDeclineTermOfUse}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport axios from \"@/services/axiosService\";\nimport { Component, Vue } from 'vue-property-decorator';\nimport { IRegistrationDetails } from \"@/interfaces/registrationDetails\";\nimport TermsOfUseModal from '@/components/elements/TermsOfUseModal.vue';\nimport Recaptcha from 'vue-recaptcha';\nimport ToastService from '@/services/toastService';\nimport { IRequestResponseMessage } from '@/interfaces/requestResponseMessage';\n\nimport { namespace } from 'vuex-class';\n\nconst Auth = namespace(\"Auth\");\n\n@Component({\n components: {\n TermsOfUseModal,\n Recaptcha\n },\n})\nexport default class RegisterTab extends Vue {\n\n private showEmailSentMessage = false;\n private isCustomerSelected = true;\n private loaFile: (File | null) = null;\n private sefeFile: (File | null) = null;\n private isTpiSelected = !this.isCustomerSelected;\n public registrationDetails: IRegistrationDetails = { Firstname: \"\", Lastname: \"\", Email: \"\", Telephone: \"\", CompanyName: \"\", AccountNumberFinanceReference: \"\", LOAFile: \"\", LetterOfAgreementFileName: \"\", AccessibleUntil: \"\", CaptchaToken: \"\", RegistrationTypeCustomer: this.isCustomerSelected, RegistrationTypeTpi: this.isTpiSelected, RegistrationType: \"Single\", SessionGuid: \"00000000-0000-0000-0000-000000000000\", LOA: \"\", Actions: \"\", SefeFileData: \"\", SefeFileName: \"\" };\n public loadingAddRequest = false;\n public loadingRegister = false;\n private readTermOfUse = false;\n public savedRegistrations: IRegistrationDetails[] = [];\n public savedRegistrationsFields = ['Firstname', 'Lastname', 'Email', 'Telephone', 'CompanyName', 'AccountNumberFinanceReference', 'LOA','Actions'];\n \n private isActive = false;\n private isSFActive = false;\n\n private minimumAccessibleUntilDate = new Date();\n\n get isInMultipleRequestMode(): boolean {\n return this.savedRegistrations.length > 0;\n }\n\n public formatAccountNumber(accountNumber: string): string {\n return (accountNumber.length <= 40 ? accountNumber : accountNumber.substring(0, 40) + '...');\n }\n\n public handleOnTabClicked(arg: any): void {\n\n this.readTermOfUse = false;\n this.showEmailSentMessage = false;\n this.savedRegistrations = [];\n this.resetForm(); \n }\n\n public loadFile(file: File) {\n let ext = \"\";\n let validExt = true;\n if (file !== null) {\n ext = ((file as any).name.match(/.([^.]+)$/)[1]).toLowerCase();\n\n switch (ext) {\n case 'pdf':\n case 'doc':\n case 'docx':\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'heic':\n break;\n default:\n validExt = false;\n }\n\n if (validExt) {\n this.isActive = true;\n const reader = new FileReader();\n let model = this.registrationDetails;\n reader.onload = function () {\n const loaContent = reader.result as string;\n model.LOAFile = loaContent;\n model.LetterOfAgreementFileName = file.name;\n }\n reader.readAsDataURL(file);\n } else {\n this.$bvToast.toast(\"Only .pdf, .doc, .docx, .jpg, .jpeg, .png, .heic files can be uploaded.\", ToastService.ErrorMessageDefaults());\n this.loaFile = null;\n this.isActive = false;\n }\n }\n }\n\n public loadSefeFile(file: File) {\n let ext = \"\";\n let validExt = true;\n if (file !== null) {\n ext = ((file as any).name.match(/.([^.]+)$/)[1]).toLowerCase();\n\n switch (ext) {\n case 'pdf':\n case 'doc':\n case 'docx':\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'heic':\n break;\n default:\n validExt = false;\n }\n\n if (validExt) {\n this.isSFActive = true;\n const reader = new FileReader();\n let model = this.registrationDetails;\n reader.onload = function () {\n const sefeContent = reader.result as string;\n model.SefeFileData = sefeContent;\n model.SefeFileName = file.name;\n }\n reader.readAsDataURL(file);\n } else {\n this.$bvToast.toast(\"Only .pdf, .doc, .docx, .jpg, .jpeg, .png, .heic files can be uploaded.\", ToastService.ErrorMessageDefaults());\n this.sefeFile = null;\n this.isSFActive = false;\n }\n }\n }\n\n public handleRegisterAllTpis(): void {\n\n this.registrationDetails.RegistrationType = \"Submit\"\n\n this.$bvModal.show('modal-confirm-registration');\n }\n\n public handleRegistration(): void {\n\n if (this.registrationDetails.RegistrationType == \"Multiple\") {\n this.loadingAddRequest = true;\n } else {\n this.loadingRegister = true;\n }\n \n this.$validator.validateAll().then((isValid) => {\n if (!isValid) {\n this.loadingRegister = false;\n this.loadingAddRequest = false;\n return;\n }\n\n if (!this.readTermOfUse) {\n this.$bvToast.toast(\"You must click the 'Terms of Use' link and agree to the terms and conditions.\", ToastService.ErrorMessageDefaults());\n }\n\n if (!this.registrationDetails.CaptchaToken) {\n this.$bvToast.toast(\"Please indicate you're not a robot.\", ToastService.ErrorMessageDefaults());\n }\n\n if (this.registrationDetails.Firstname && this.registrationDetails.Lastname && this.registrationDetails.Email\n && this.registrationDetails.Telephone && this.registrationDetails.CompanyName && this.registrationDetails.AccountNumberFinanceReference && this.readTermOfUse && this.registrationDetails.CaptchaToken) {\n if (this.registrationDetails.RegistrationType == 'Single') {\n this.$bvModal.show('modal-confirm-registration'); // only show the confirmation when doing a single request\n } else {\n this.handleConfirmOk(null);\n }\n\n return;\n }\n this.loadingRegister = false;\n this.loadingAddRequest = false;\n });\n return;\n }\n \n\n public handleDeleteClicked(registrationId: string): void {\n\n axios.get(\"/userAccess/register/deleteRegistration?TpiRegistrationDetailsRequestId=\" + registrationId)\n .then(response => {\n this.loadingRegister = false;\n\n for (let i = 0; i < this.savedRegistrations.length; i++) {\n let registration = this.savedRegistrations[i];\n\n if (String(registration.TpiRegistrationDetailId) === registrationId) {\n this.savedRegistrations.splice(i, 1);\n\n if (this.savedRegistrations.length === 0) { \n this.resetForm();\n }\n\n return;\n }\n }\n\n }, (error) => {\n console.error(error);\n this.loadingRegister = false;\n });\n }\n \n\n public handleAcceptTermOfUse(bvModalEvent: any): void {\n this.readTermOfUse = true;\n }\n\n public handleDeclineTermOfUse(): void {\n this.readTermOfUse = false;\n }\n\n public handleConfirmOk(bvModalEvent: any): void {\n\n if (this.isCustomerSelected) {\n axios.post(\"/userAccess/register\", this.registrationDetails)\n .then(response => {\n this.loadingRegister = false;\n\n if ((response as any).content != null) {\n var tpiResponse = JSON.parse((response as any).content);\n\n this.showEmailSentMessage = true;\n }\n }, (error) => {\n console.error(error);\n this.loadingRegister = false;\n });\n\n return;\n }\n\n if (this.registrationDetails.RegistrationType == \"Submit\") {\n axios.post(\"/userAccess/register/submitRegistrations\", this.registrationDetails)\n .then(response => {\n this.loadingRegister = false;\n\n this.showEmailSentMessage = true;\n\n }, (error) => {\n console.error(error);\n this.loadingRegister = false;\n });\n\n } else {\n\n axios.post(\"/userAccess/register/tpi\", this.registrationDetails)\n .then(response => {\n this.loadingRegister = false;\n this.loadingAddRequest = false;\n\n if (this.registrationDetails.RegistrationType == \"Multiple\") {\n\n if ((response as any).content != null) {\n var tpiResponse = JSON.parse((response as any).content);\n var newRegistrationDetails = tpiResponse as IRegistrationDetails;\n\n newRegistrationDetails.LOA = String(newRegistrationDetails.TpiRegistrationDetailId);\n \n this.savedRegistrations.push(newRegistrationDetails);\n\n this.registrationDetails.SessionGuid = tpiResponse.SessionGuid;\n\n this.resetForm();\n }\n } else if (this.registrationDetails.RegistrationType == \"Single\") {\n\n if ((response as any).content != null) {\n var tpiResponse2 = JSON.parse((response as any).content);\n \n this.showEmailSentMessage = true;\n }\n }\n }, (error) => {\n console.error(error);\n\n this.loadingRegister = false;\n this.loadingAddRequest = false;\n\n });\n }\n\n }\n public resetForm(): void {\n\n if (!this.isInMultipleRequestMode) { // in multiple request mode, do not clear the customer fields\n this.registrationDetails.Firstname = \"\";\n this.registrationDetails.Lastname = \"\";\n this.registrationDetails.Email = \"\";\n this.registrationDetails.Telephone = \"\";\n this.registrationDetails.CompanyName = \"\";\n this.registrationDetails.SefeFileData = \"\";\n this.registrationDetails.SefeFileName = \"\";\n }\n\n this.registrationDetails.AccountNumberFinanceReference = \"\";\n this.registrationDetails.LOAFile = \"\";\n this.registrationDetails.LetterOfAgreementFileName = \"\";\n this.registrationDetails.AccessibleUntil = \"\";\n\n this.removeSelectedFile();\n this.removeSefeFile();\n\n this.$validator.reset();\n } \n\n public handleConfirmCancel(bvModalEvent: any): void { \n this.loadingRegister = false;\n }\n\n public onVerify(response: any): void {\n if (response != null && response != undefined && response != \"\") {\n this.registrationDetails.CaptchaToken = response;\n }\n }\n\n public onExpired(): void {\n console.log('Expired');\n }\n\n public removeSelectedFile() {\n this.loaFile = null;\n this.isActive = false;\n }\n\n public removeSefeFile() {\n this.sefeFile = null;\n this.isSFActive = false;\n }\n\n public handleAddNewRequestClicked(): void {\n this.registrationDetails.RegistrationType = \"Multiple\";\n }\n\n public toggleIfCustomerSelected() {\n\n if (this.isCustomerSelected) {\n return; // already selected.\n }\n\n this.isCustomerSelected = !this.isCustomerSelected;\n this.isTpiSelected = !this.isCustomerSelected;\n\n this.registrationDetails.RegistrationTypeCustomer = this.isCustomerSelected;\n this.registrationDetails.RegistrationTypeTpi = this.isTpiSelected;\n }\n\n public toggleIfTpiSelected() {\n\n if (this.isTpiSelected) {\n return; // already selected.\n }\n\n this.isTpiSelected = !this.isTpiSelected;\n this.isCustomerSelected = !this.isTpiSelected;\n\n this.registrationDetails.RegistrationTypeCustomer = this.isCustomerSelected;\n this.registrationDetails.RegistrationTypeTpi = this.isTpiSelected;\n }\n\n unmounted() {\n this.showEmailSentMessage = false;\n this.isCustomerSelected = true;\n this.loaFile = null;\n this.sefeFile = null;\n this.isTpiSelected = !this.isCustomerSelected;\n this.registrationDetails = { Firstname: \"\", Lastname: \"\", Email: \"\", Telephone: \"\", CompanyName: \"\", AccountNumberFinanceReference: \"\", LOAFile: \"\", LetterOfAgreementFileName: \"\", AccessibleUntil: \"\", CaptchaToken: \"\", RegistrationTypeCustomer: this.isCustomerSelected, RegistrationTypeTpi: this.isTpiSelected, RegistrationType: \"Single\", SessionGuid: \"00000000-0000-0000-0000-000000000000\", LOA: \"\", Actions: \"\", SefeFileData: \"\", SefeFileName: \"\" };\n this.loadingRegister = false;\n this.loadingAddRequest = false;\n this.readTermOfUse = false;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegisterTab.vue?vue&type=template&id=08c1f989&\"\nimport script from \"./RegisterTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegisterTab.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegisterTab.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',{attrs:{\"title\":\"Forgotten Password\"}},[_c('b-img',{staticClass:\"pt-3 mb-3\",attrs:{\"src\":require(\"../assets/sefe-logo.png\"),\"width\":\"150\"}}),(_vm.showEmailSentMessage)?[_c('p',{staticClass:\"p-text-login\"},[_vm._v(\" Thank you. If this email is registered, you will receive a link to reset your password. If you don't receive anything, first check your spam folder and then try again. \")])]:[_c('p',{staticClass:\"p-text-login\"},[_vm._v(\" Enter your email address and we will email you instructions on how to reset your password. \")]),_c('b-form',{attrs:{\"name\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit.apply(null, arguments)}}},[_c('b-form-group',[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],attrs:{\"id\":\"email-forgotten-tab\",\"name\":\"email\",\"type\":\"text\",\"data-vv-as\":\"email\",\"placeholder\":\"Email address\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('email')}},[_vm._v(\"Please enter a full valid email address.\")])],1),_c('b-button',{attrs:{\"variant\":\"gazprom-blue\",\"size\":\"lg\",\"disabled\":_vm.loading,\"type\":\"submit\"}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Submit \"),_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"box-arrow-in-right\"}})],1)],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { namespace } from 'vuex-class';\n\nconst Auth = namespace(\"Auth\");\n\n@Component\nexport default class ForgottenTab extends Vue {\n private email = \"\";\n\n public loading = false;\n public showEmailSentMessage=false;\n\n @Auth.Getter\n private isLoggedIn!: boolean;\n\n @Auth.Action\n private sendPasswordResetLink!: (email: string) => Promise;\n\n mounted() {\n if (this.isLoggedIn) {\n this.$router.push(\"/home\");\n }\n }\n\n public handleSubmit(): void {\n this.loading = true;\n\n this.$validator.validateAll().then((isValid) => {\n if (!isValid) {\n this.loading = false;\n return;\n }\n\n if (this.email) { \n this.sendPasswordResetLink(this.email).then((response) => {\n this.showEmailSentMessage = response;\n this.loading = false;\n }, (error) => {\n this.loading = false;\n })\n }\n });\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForgottenTab.vue?vue&type=template&id=189b0d89&\"\nimport script from \"./ForgottenTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgottenTab.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { namespace } from \"vuex-class\";\n//import components\nimport CenteredLayout from \"@/components/layouts/CenteredLayout.vue\";\nimport LoginTab from \"@/components/LoginTab.vue\"\nimport RegisterTab from \"@/components/RegisterTab.vue\"\nimport ForgottenTab from \"@/components/ForgottenTab.vue\"\n\nconst Auth = namespace(\"Auth\");\n\n@Component({\n components: {\n CenteredLayout,\n LoginTab,\n RegisterTab,\n ForgottenTab\n },\n})\nexport default class Index extends Vue {\n public title = \"Landing\"\n\n private step = 0;\n\n created() {\n document.title = this.title;\n if (this.$route.query.id == 'resetpassword') {\n this.step = 2;\n }\n }\n\n \n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=def1bff2&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('centered-layout',[_c('b-tabs',{staticClass:\"bg-transparent mt-3\",attrs:{\"card\":\"\",\"content-class\":\"bg-white box-shadow-login\"}},[_c('reset-password-tab',{attrs:{\"showInputForm\":_vm.showResetPasswordTab}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',{attrs:{\"title\":\"Set Password\"}},[_c('b-img',{staticClass:\"pt-3 mb-3\",attrs:{\"src\":require(\"../assets/sefe-logo.png\"),\"width\":\"150\"}}),(_vm.showInputForm)?[_c('p',{staticClass:\"text-gazprom-blue p-text-login\"},[_vm._v(\" Please enter your new password. \")]),_c('b-form',{attrs:{\"name\":\"form\",\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleReset.apply(null, arguments)}}},[_c('b-form-group',[_c('div',{staticClass:\"input-group\"},[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: true, min:8, regex: /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])/ }),expression:\"{ required: true, min:8, regex: /(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])/ }\"}],ref:\"password\",attrs:{\"id\":\"password\",\"name\":\"password\",\"type\":_vm.showPassword ? 'text' : 'password',\"placeholder\":\"New Password\",\"prefix\":\"password\"},model:{value:(_vm.resetPasswordDetails.Password),callback:function ($$v) {_vm.$set(_vm.resetPasswordDetails, \"Password\", $$v)},expression:\"resetPasswordDetails.Password\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('b-button',{staticClass:\"input-group-text\",attrs:{\"id\":\"btnShowPassword\"},on:{\"click\":function($event){return _vm.toggleShowPassword()}}},[_c('b-icon-eye',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showPassword),expression:\"!showPassword\"}]}),_c('b-icon-eye-slash',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPassword),expression:\"showPassword\"}]})],1)],1)],1),(_vm.resetPasswordDetails.Password === '' && _vm.veeErrors.has('password'))?[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('password')}},[_vm._v(\"New password required.\")])]:_vm._e(),(_vm.resetPasswordDetails.Password != '' && _vm.veeErrors.has('password'))?[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('password')}},[_c('div',[_vm._v(\"Password strength requirements:\")]),_c('div',[_vm._v(\"Should contain a minimum of 8 characters\")]),_c('div',[_vm._v(\"Should contain at least one upper case letter (A-Z)\")]),_c('div',[_vm._v(\"Should contain at least one lower case letter (a-z)\")]),_c('div',[_vm._v(\"Should contain at least one number (0-9)\")])])]:_vm._e()],2),_c('b-form-group',[_c('div',{staticClass:\"input-group\"},[_c('b-form-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|confirmed:password'),expression:\"'required|confirmed:password'\"}],attrs:{\"id\":\"confirm-password\",\"name\":\"confirm-password\",\"data-vv-as\":\"password\",\"type\":_vm.showConfirmPassword ? 'text' : 'password',\"placeholder\":\"Confirm Password\"},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('b-button',{staticClass:\"input-group-text\",attrs:{\"id\":\"btnShowConfirmPassword\"},on:{\"click\":function($event){return _vm.toggleShowConfirmPassword()}}},[_c('b-icon-eye',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showConfirmPassword),expression:\"!showConfirmPassword\"}]}),_c('b-icon-eye-slash',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConfirmPassword),expression:\"showConfirmPassword\"}]})],1)],1)],1),(_vm.confirmPassword === '' && _vm.veeErrors.has('confirm-password'))?[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('confirm-password')}},[_vm._v(\"Confirm new password required.\")])]:_vm._e(),(_vm.confirmPassword != '' && _vm.veeErrors.has('confirm-password'))?[_c('b-alert',{attrs:{\"variant\":\"danger\",\"show\":_vm.veeErrors.has('confirm-password')}},[_vm._v(\"The new password and confirmation password do not match.\")])]:_vm._e()],2),_c('b-button',{attrs:{\"variant\":\"gazprom-blue\",\"size\":\"lg\",\"type\":\"submit\",\"disabled\":_vm.loading}},[_c('b-icon-arrow-clockwise',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"animation\":\"spin\"}}),_vm._v(\" Set password \")],1)],1)]:(_vm.passwordChanged)?[_c('p',{staticClass:\"p-text-login\"},[_vm._v(\" Your password has been changed. You can now \"),_c('a',{attrs:{\"href\":\"/\"}},[_vm._v(\"login\")]),_vm._v(\" using your new password. \")])]:[_c('p',{staticClass:\"p-text-login\"},[_vm._v(\" The link to set your password has expired. Enter your email \"),_c('router-link',{attrs:{\"to\":{name: 'Index', query: { id: 'resetpassword'}}}},[_vm._v(\"here\")]),_vm._v(\" to generate a new link \")],1),_c('b-link',{attrs:{\"href\":\"/\"}},[_vm._v(\"Return to Login page\")])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { namespace } from 'vuex-class';\nimport { IResetPasswordDetails } from \"@/interfaces/resetPasswordDetails\"\n\nconst Auth = namespace(\"Auth\");\n\n@Component\nexport default class ResetPasswordTab extends Vue {\n @Prop() private showInputForm!: boolean;\n\n private passwordChanged = false;\n\n private resetPasswordDetails: IResetPasswordDetails = { Email: \"\", Password: \"\", Token:\"\" };\n public loading = false;\n private confirmPassword = \"\";\n\n private showPassword = false;\n private showConfirmPassword = false;\n\n\n\n @Auth.Action\n private resetPassword!: (resetPasswordDetails: IResetPasswordDetails) => any;\n\n mounted() {\n this.resetPasswordDetails.Token = (this.$route as any).query.token;\n }\n\n public toggleShowPassword(): void {\n this.showPassword = !this.showPassword; \n }\n\n public toggleShowConfirmPassword(): void {\n this.showConfirmPassword = !this.showConfirmPassword;\n }\n\n public handleReset(): void {\n this.loading = true;\n this.$validator.validateAll().then((isValid) => {\n if (!isValid) {\n this.loading = false;\n return;\n }\n\n if (this.resetPasswordDetails.Password && this.confirmPassword) {\n this.resetPassword(this.resetPasswordDetails).then((response: any) => {\n if (response === true) {\n this.passwordChanged = true;\n this.showInputForm = false;\n }\n }, (error: any) => {\n this.loading = false;\n });\n }\n this.loading = false;\n });\n }\n \n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPasswordTab.vue?vue&type=template&id=c3ebc582&\"\nimport script from \"./ResetPasswordTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPasswordTab.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport AuthService from '@/services/authService'\n\nimport CenteredLayout from \"@/components/layouts/CenteredLayout.vue\";\nimport ResetPasswordTab from \"@/components/ResetPasswordTab.vue\"\n\n@Component({\n components: {\n CenteredLayout,\n ResetPasswordTab\n },\n async beforeRouteEnter(to, from, next): Promise {\n let authService = new AuthService(null);\n const token = encodeURI((to as any).query.token);\n const result = await authService.verifyResetToken(token);\n\n next((vm) => {\n vm.showResetPasswordTab = Boolean(result);\n })\n }\n})\nexport default class ResetPassword extends Vue {\n public showResetPasswordTab = false;\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=140836a0&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-page',[_c('b-row',[(_vm.getSelectedProduct=='Gas')?[(_vm.hasNoAccounts)?[_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"12\"}},[_c('b-card',{attrs:{\"body-class\":\"shadow\",\"border-variant\":\"gazprom-blue\"}},[_c('p',[_vm._v(\"You have no accounts allocated. Please contact your administrator or Customer Services on 0161 837 3395\")])])],1)]:[_c('div',{staticClass:\"mt-2\",staticStyle:{\"display\":\"block\",\"width\":\"100%\"}},[_vm._v(\" \")]),_c('my-balance-panel'),_c('latest-invoice-panel'),_c('latest-gas-read-panel'),_c('contract-detail-panel')]]:(_vm.getSelectedProduct=='Power')?[_c('simple-panel',{attrs:{\"componentHeaderLabel\":\"Invoices\",\"componentHrefLink\":\"invoicing\",\"componentHrefLinkLabel\":\"View invoices\"}},[_c('b-img',{staticClass:\"mx-auto mb-3\",attrs:{\"src\":require(\"../assets/money_icon_gazprom_blue.svg\"),\"width\":\"90\",\"height\":\"90\"}})],1),_c('simple-panel',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showPanelIfHH),expression:\"!showPanelIfHH\"}],attrs:{\"componentHeaderLabel\":\"Meter reading\",\"componentHrefLink\":\"metering\",\"componentHrefLinkLabel\":\"Submit a meter reading\"}},[_c('b-img',{staticClass:\"mx-auto mb-3\",attrs:{\"src\":require(\"../assets/power_icon_gazprom_blue.svg\"),\"width\":\"90\",\"height\":\"90\"}})],1),_c('simple-panel',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPanelIfHH),expression:\"showPanelIfHH\"}],attrs:{\"componentHeaderLabel\":\"Reports\",\"componentHrefLink\":\"consumption\",\"componentHrefLinkLabel\":\"Consumption report\"}},[_c('b-img',{staticClass:\"mx-auto mb-3\",attrs:{\"src\":require(\"../assets/consumption_icon_gazprom_blue.svg\"),\"width\":\"90\",\"height\":\"90\"}})],1)]:_vm._e()],2),_c('terms-of-use-modal',{attrs:{\"noCloseOnEsc\":_vm.noCloseOnEsc,\"noCloseOnBackdrop\":_vm.noCloseOnBackdrop},on:{\"acceptedTerms\":_vm.handleAcceptTermOfUse,\"declinedTerms\":_vm.handleDeclineTermOfUse}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-panel',{attrs:{\"componentTitle\":_vm.componentLabels.title,\"isUnavailable\":_vm.componentLabels.isUnavailable}},[(_vm.loading)?[_c('clip-loader',{staticClass:\"spinner\",attrs:{\"loading\":_vm.loading,\"color\":\"#0065bd\"}})]:[(_vm.AccountBalanceInformation !== null && _vm.AccountBalanceInformation !== '' && (_vm.AccountBalanceInformation.isPendingAgreement === null || _vm.AccountBalanceInformation.isPendingAgreement === false))?[_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.totalBalanceLabel,\"itemValue\":_vm._f(\"formatAmount\")(_vm._f(\"toCurrency\")(_vm.AccountBalanceInformation.accountBalance)),\"responsiveClass\":\"responsive-font-size\"}},[_c('span',[_vm._v(\" \")]),_c('b-badge',{class:_vm._f(\"setBadgeStatus\")(_vm.AccountBalanceInformation.accountBalance)},[_vm._v(_vm._s(_vm._f(\"setBalanceStatus\")(_vm.AccountBalanceInformation.accountBalance)))]),_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"soft-blue\",\"id\":\"balance-tooltip-link\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"balance-tooltip-link\",\"title\":\"Account Balance Tooltip\",\"triggers\":\"hover\",\"placement\":\"right\",\"variant\":\"sefe-blue\"}},[_vm._v(\" This is the total amount currently due to be paid on your account, including any overdue amount. \")])],1),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.overdueBalanceLabel,\"itemValue\":_vm._f(\"formatAmount\")(_vm._f(\"toCurrency\")(_vm.AccountBalanceInformation.overdueBalance)),\"responsiveClass\":\"responsive-font-size\"}},[_c('span',[_vm._v(\" \")]),_c('b-badge',{class:_vm._f(\"setBadgeStatus\")(_vm.AccountBalanceInformation.overdueBalance)},[_vm._v(_vm._s(_vm._f(\"setBalanceStatus\")(_vm.AccountBalanceInformation.overdueBalance)))]),_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"soft-blue\",\"id\":\"overdue-tooltip-link\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"overdue-tooltip-link\",\"title\":\"Overdue Balance Tooltip\",\"triggers\":\"hover\",\"placement\":\"right\",\"variant\":\"sefe-blue\"}},[_vm._v(\" This is the amount that has passed the payment due date. \")])],1),void 0,_c('b-button',{attrs:{\"to\":_vm.componentLabels.ctaButtonHref,\"variant\":\"soft-blue\"}},[_vm._v(\" \"+_vm._s(_vm.componentLabels.ctaButtonLabel)+\" \"),_c('svg',{staticClass:\"bi bi-currency-pound\",staticStyle:{\"margin-top\":\"-5px\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"19\",\"height\":\"19\",\"fill\":\"white\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M4 8.585h1.969c.115.465.186.939.186 1.43 0 1.385-.736 2.496-2.075 2.771V14H12v-1.24H6.492v-.129c.825-.525 1.135-1.446 1.135-2.694 0-.465-.07-.913-.168-1.352h3.29v-.972H7.22c-.186-.723-.372-1.455-.372-2.247 0-1.274 1.047-2.066 2.58-2.066a5.32 5.32 0 0 1 2.103.465V2.456A5.629 5.629 0 0 0 9.348 2C6.865 2 5.322 3.291 5.322 5.366c0 .775.195 1.515.399 2.247H4v.972z\"}})])])]:[_c('b-card-text',{staticClass:\"balanceInformationText\"},[_vm._v(\"Balance information is unavailable.\")]),(_vm.AccountBalanceInformation == null || _vm.AccountBalanceInformation == '')?[_c('br'),_c('b-card-text',{staticClass:\"customerServiceText\"},[_vm._v(\" Please contact Customer Services. \")])]:_vm._e()]]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-col',{staticClass:\"mb-3\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('b-card',{staticClass:\"shadow\",class:{'panel-unavailable': _vm.isUnavailable },staticStyle:{\"min-height\":\"283px\"},attrs:{\"border-variant\":\"\",\"no-body\":\"\"}},[(_vm.componentTitle)?_c('b-card-header',{staticClass:\"home-panel-headings\",attrs:{\"header-border-variant\":\"\",\"header\":_vm.componentTitle}}):_vm._e(),_c('b-card-body',{attrs:{\"body-class\":_vm.bodyClass}},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class BasePanel extends Vue {\n\n @Prop({ type: String, default: \"\" }) readonly componentTitle!: string;\n @Prop({ type: Boolean, default: false }) readonly isUnavailable!: boolean;\n @Prop({ type: String, default: \"justify-content-between\" }) readonly innerBodyClass!: string;\n\n public defaultBodyClass = \"d-flex flex-column pt-3\";\n\n get bodyClass() {\n return this.defaultBodyClass + \" \" + this.innerBodyClass;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasePanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasePanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasePanel.vue?vue&type=template&id=4521e10c&\"\nimport script from \"./BasePanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasePanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',{},[_c('b-col',{staticClass:\"text-left pr-0\",attrs:{\"cols\":\"6\"}},[_c('label',[_vm._v(_vm._s(_vm.itemLabel)+\":\")])]),_c('b-col',{staticClass:\"pl-0\",attrs:{\"cols\":\"6\"}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"width\":\"100%\",\"text-align\":\"right\"}},[_c('label',{style:(_vm.style)},[_vm._v(_vm._s(_vm.itemValue))]),_vm._t(\"default\")],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class ItemLabel extends Vue {\n @Prop({ type: String, required: true }) readonly itemLabel!: string;\n @Prop({ type: String, required: true }) readonly itemValue!: string;\n @Prop({ type: Number, default: 0 }) readonly indentationValue!: number;\n\n get style() {\n return {\n 'text-indent ': (this.indentationValue + 'px')\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemLabel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemLabel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ItemLabel.vue?vue&type=template&id=214fba1a&\"\nimport script from \"./ItemLabel.vue?vue&type=script&lang=ts&\"\nexport * from \"./ItemLabel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ItemLabel.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',[_c('b-col',{staticClass:\"pl-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex flex-row justify-content-center\"},[_c('div',{staticClass:\"mr-1\"},[_c('label',{staticClass:\"mb-0\",class:_vm.responsiveClass,staticStyle:{\"font-size\":\"25px\"}},[_vm._v(_vm._s(_vm.itemValue))])]),_vm._t(\"default\")],2)])],1),_c('hr')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class MainItemLabel extends Vue {\n @Prop({ type: String, required: true }) readonly itemLabel!: string;\n @Prop({ type: String, required: true }) readonly itemValue!: string;\n @Prop({ type: String }) readonly responsiveClass!: string;\n\n get amountClass() {\n if (this.itemValue.length > 8) {\n\n return 'col-xs-8'; // large value, make the column larger.\n }\n\n return 'col-xs-7'; // standard sized column;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainItemLabel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainItemLabel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainItemLabel.vue?vue&type=template&id=4112ec12&\"\nimport script from \"./MainItemLabel.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainItemLabel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MainItemLabel.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"offset\":\"1\"}},[_c('div',{staticClass:\"text-center\"},[_c('router-link',{staticClass:\"btn btn-gazprom-blue\",attrs:{\"to\":_vm.ctaButtonHref}},[_vm._v(_vm._s(_vm.ctaButtonLabel))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class CtaButton extends Vue {\n @Prop({ type: String, required: true }) readonly ctaButtonLabel!: string;\n @Prop({ type: String, default: '#' }) readonly ctaButtonHref!: string;\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CtaButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CtaButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CtaButton.vue?vue&type=template&id=1720e92e&\"\nimport script from \"./CtaButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./CtaButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { namespace } from \"vuex-class\";\n//import components\nimport BasePanel from '@/components/panels/BasePanel.vue';\nimport ClipLoader from '@/components/elements/ClipLoader.vue';\nimport ItemLabel from '@/components/elements/ItemLabel.vue';\nimport MainItemLabel from '@/components/elements/MainItemLabel.vue';\nimport CtaButton from '@/components/elements/CtaButton.vue';\nimport { IAccountBalanceInformation } from '../../interfaces/accountBalanceInformation';\n\nconst Auth = namespace(\"Auth\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst Panel = namespace(\"Panel\");\n\n@Component({\n components: {\n BasePanel,\n ClipLoader,\n ItemLabel,\n MainItemLabel,\n CtaButton\n },\n filters: {\n formatAmount(value: any) {\n\n var formattedAmount = '£ ' + value.replace(\"-\", \"\");\n\n return formattedAmount;\n },\n setBalanceStatus(value: any) {\n if (value > 0) return \"Credit\";\n if (value < 0) return \"Debit\";\n return \"\";\n },\n setBadgeStatus(value: any) {\n\n if (value > 0) return \"badge-credit\";\n if (value < 0) return \"badge-debit\";\n return \"\";\n }\n\n }\n})\nexport default class MyBalancePanel extends Vue {\n\n @Prop() readonly componentTitle!: string;\n @Prop() readonly isUnavailable!: boolean;\n\n public unwatch: any;\n\n @Auth.Getter\n private getUserId!: string;\n\n @GasAccounts.Getter\n private getSelectedSiteRefNumber!: string;\n\n @GasAccounts.Getter\n private getSelectedContractId!: number;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @GasAccounts.Getter\n private isLargeUser!: boolean;\n\n @Panel.Getter\n private AccountBalanceInformation!: IAccountBalanceInformation | null;\n\n @Panel.Action\n private getBalanceInformation!: (userData: any) => Promise;\n\n private loading = true;\n public componentLabels = {\n title: \"My account balance\",\n totalBalanceLabel: \"Total balance\",\n overdueBalanceLabel: \"Overdue balance\",\n DueDateLabel: \"Balance due\",\n ctaButtonLabel: \"View balance information\",\n ctaButtonHref: { name: \"Balance\" },\n isUnavailable: false\n };\n\n async created() {\n try {\n this.unwatch = this.$store.watch(\n (state, getters) => getters[\"GasAccounts/getSelectedSiteRefNumber\"],\n (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n this.loading = true;\n\n const siteRefNumber = this.getSelectedSiteRefNumber;\n const contractId = this.getSelectedContractId;\n\n if (siteRefNumber !== null && contractId !== 0) {\n this.getBalanceInformation({ UserId: this.getUserId, AccountNumber: this.getSelectedAccount, SiteRefNumber: siteRefNumber, ContractId: contractId, isLargeUser: this.isLargeUser }).then(() => {\n this.loading = false;\n }).catch(reason => {\n this.loading = false;\n console.error(reason);\n });\n }\n }\n , { immediate: true });\n } catch (e) {\n this.loading = false;\n console.error(e);\n }\n }\n\n beforeDestroy() {\n this.unwatch();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyBalancePanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyBalancePanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyBalancePanel.vue?vue&type=template&id=48c8d2ac&\"\nimport script from \"./MyBalancePanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyBalancePanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyBalancePanel.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-panel',{attrs:{\"componentTitle\":_vm.componentLabels.title,\"isUnavailable\":_vm.componentLabels.isUnavailable}},[(_vm.loading)?[_c('clip-loader',{staticClass:\"spinner\",attrs:{\"loading\":_vm.loading,\"color\":\"#0065bd\"}})]:[(_vm.getInvoiceAndMeterReadPanelFeatureToggleStatus && _vm.Invoices!== null && _vm.Invoices!=='')?[_c('main-item-label',{attrs:{\"itemLabel\":_vm.componentLabels.invoiceAmountLabel,\"itemValue\":_vm._f(\"formatAmount\")(_vm._f(\"toCurrency\")(_vm.Invoices.consolidatedInvoiceTotal))}},[_c('div',{staticStyle:{\"margin-top\":\"-15px\"}},[_c('b-button',{staticClass:\"ml-1 d-flex flex-column justify-content-center btn-outline-none\",attrs:{\"id\":\"download-icon\",\"variant\":\"link\"},on:{\"click\":function($event){return _vm.onDownloadClick()}}},[_c('b-img',{staticClass:\"m-auto text-center\",attrs:{\"src\":require(\"../../assets/pdf_icon.svg\"),\"width\":\"40\",\"height\":\"40\"}})],1),_c('b-tooltip',{attrs:{\"target\":\"download-icon\",\"title\":\"Download PDF file\",\"triggers\":\"hover\",\"placement\":\"right\",\"variant\":\"sefe-blue\"}},[_vm._v(\" Download \")]),_c('div',{staticClass:\"d-flex flex-row justify-content-center\"},[_c('b-progress',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDownloadProgressBar),expression:\"showDownloadProgressBar\"}],staticStyle:{\"width\":\"40px\",\"height\":\"5px\"},attrs:{\"value\":\"10\",\"max\":\"5\",\"variant\":\"gazprom-blue\",\"animated\":\"\"}})],1)],1)]),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.dueDateLabel,\"itemValue\":_vm._f(\"moment\")(_vm.Invoices.invoiceDate,'DD/MM/YYYY')}}),_c('b-button',{attrs:{\"to\":_vm.componentLabels.ctaButtonHref,\"variant\":\"soft-blue\"}},[_vm._v(\" \"+_vm._s(_vm.componentLabels.ctaButtonLabel)+\" \"),_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"receipt\"}})],1)]:[_c('b-card-text',[_vm._v(\"No invoices available.\")]),_c('br'),(_vm.getSelectedDeliveryAgreement !== null && !_vm.getSelectedDeliveryAgreement.ContractCurrentlyPending)?[_c('b-card-text',{staticClass:\"invoice-info\"},[_vm._v(\" If you expect an invoice to be available, or you need more information, please email \"),_c('a',{staticStyle:{\"color\":\"#009fda\"},attrs:{\"href\":\"mailto:enquiries@sefe-energy.com\"}},[_vm._v(\"enquiries@sefe-energy.com\")]),_vm._v(\" or your account manager. \")])]:_vm._e()]]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport BasePanel from '@/components/panels/BasePanel.vue';\nimport ClipLoader from '@/components/elements/ClipLoader.vue';\nimport ItemLabel from '@/components/elements/ItemLabel.vue';\nimport MainItemLabel from '@/components/elements/MainItemLabel.vue';\nimport CtaButton from '@/components/elements/CtaButton.vue';\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport { IInvoice } from '../../interfaces/invoice';\nimport { IDeliveryAgreement } from \"@/interfaces/deliveryAgreement\";\n\nconst Auth = namespace(\"Auth\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst Panel = namespace(\"Panel\");\nconst Invoices = namespace(\"Invoices\");\nconst FeatureToggle = namespace(\"FeatureToggle\");\n\n@Component({\n components: {\n BasePanel,\n ClipLoader,\n ItemLabel,\n MainItemLabel,\n CtaButton\n },\n filters: {\n formatAmount(value: any) {\n\n if (value === null) {\n return \"\";\n }\n\n var formattedAmount = '£ ' + value.replace(\"-\", \"\");\n\n return formattedAmount;\n },\n }\n})\n\n\n\nexport default class LatestInvoicePanel extends Vue {\n private loading = true;\n private showDownloadProgressBar = false;\n public componentLabels = {\n title: \"My latest invoice\",\n invoiceAmountLabel: \"Invoice amount\",\n dueDateLabel: \"Date issued\",\n ctaButtonLabel: \"View all invoices\",\n ctaButtonHref: { 'name': \"Invoicing\" },\n latestInvoiceLinkHref: \"InvoiceGas/SiteInvoices/Download\",\n latestInvoiceLinkTitle: \"Download latest invoice as PDF\",\n isUnavailable: false\n };\n\n public unwatch: any;\n\n @Auth.Getter\n private getUserId!: string;\n\n @GasAccounts.Getter\n private getSelectedDeliveryAgreement!: IDeliveryAgreement;\n\n @GasAccounts.Getter\n private getSelectedSiteRefNumber!: string;\n\n @GasAccounts.Getter\n private getSelectedContractId!: number;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @GasAccounts.Getter\n private isLargeUser!: boolean;\n\n @FeatureToggle.Getter\n private getInvoiceAndMeterReadPanelFeatureToggleStatus!: boolean | false;\n\n @Panel.Getter\n private Invoices!: IInvoice | null;\n \n @Panel.Action\n private getInvoices!: (userData: any) => Promise;\n\n @Invoices.Action\n private invoiceDownload!: (params: { accountNum: string, invoiceNo: string, userId: string }) => Promise;\n\n @Invoices.Getter\n private getDownloadFileData!: { data: Blob | null, fileName: string | null };\n \n @FeatureToggle.Action\n private getInvoiceAndMeterReadPanelFeatureToggleStatusAction!: (userId: any) => Promise;\n\n async created() {\n try {\n this.unwatch = this.$store.watch(\n (state, getters) => getters[\"GasAccounts/getSelectedDeliveryAgreementNumber\"],\n (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n this.loading = true;\n\n const siteRefNumber = this.getSelectedSiteRefNumber;\n const contractId = this.getSelectedContractId;\n \n\n this.getInvoiceAndMeterReadPanelFeatureToggleStatusAction(this.getUserId).then(x => {\n console.log(\"FeatureToggleStatus: \" + this.getInvoiceAndMeterReadPanelFeatureToggleStatus)\n if (this.getInvoiceAndMeterReadPanelFeatureToggleStatus && siteRefNumber !== null && contractId !== 0) {\n this.getInvoices({ UserId: this.getUserId, AccountNumber: this.getSelectedAccount, SiteRefNumber: siteRefNumber, ContractId: contractId, isLargeUser: this.isLargeUser }).then(() => {\n this.loading = false;\n }).catch(reason => {\n this.loading = false;\n console.error(reason);\n });\n } else {\n this.loading = false;\n }\n });\n }\n , { immediate: true });\n } catch (e) {\n this.loading = false;\n console.error(e);\n }\n }\n\n beforeDestroy() {\n this.unwatch();\n } \n \n private onDownloadClick() {\n this.showDownloadProgressBar = true;\n const accountNum = this.getSelectedAccount;\n const userId = this.getUserId;\n\n const invoiceNo = this.Invoices?.invoiceNo;\n\n if (invoiceNo == null) {\n return;\n }\n\n this.invoiceDownload({ accountNum, invoiceNo, userId }).then(() => {\n this.fileProcess();\n this.showDownloadProgressBar = false;\n }).catch(reason => {\n console.error(reason);\n this.showDownloadProgressBar = false;\n });\n\n return false;\n }\n\n private fileProcess() {\n\n if (this.getDownloadFileData == null) {\n return null;\n }\n\n var fileName = this.getDownloadFileData.fileName;\n\n if (window.navigator && window.navigator.msSaveBlob) {\n window.navigator.msSaveBlob((this.getDownloadFileData.data) as Blob, fileName as string);\n } else {\n var fileURL = window.URL.createObjectURL((this.getDownloadFileData.data) as Blob);\n var fileLink = document.createElement('a');\n fileLink.href = fileURL;\n fileLink.setAttribute('download', fileName as string);\n document.body.appendChild(fileLink);\n fileLink.click();\n }\n }\n\n\n\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LatestInvoicePanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LatestInvoicePanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LatestInvoicePanel.vue?vue&type=template&id=545a1040&\"\nimport script from \"./LatestInvoicePanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./LatestInvoicePanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-panel',{attrs:{\"componentTitle\":_vm.componentLabels.title,\"isUnavailable\":_vm.componentLabels.isUnavailable}},[(_vm.loading)?[_c('clip-loader',{staticClass:\"spinner\",attrs:{\"loading\":_vm.loading,\"color\":\"#0065bd\"}})]:[(_vm.getInvoiceAndMeterReadPanelFeatureToggleStatus && _vm.MeterReadings && _vm.MeterReadings.meterReading)?[_c('main-item-label',{attrs:{\"itemLabel\":_vm.componentLabels.readingLabel,\"itemValue\":_vm.MeterReadings.meterReading}},[_c('div',{staticClass:\"d-flex flex-column justify-content-center\"},[_c('b-badge',{attrs:{\"variant\":\"#6f6f6e\"}},[_vm._v(_vm._s(_vm.MeterReadings.meterReadingSource))])],1)]),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.DueDateLabel,\"itemValue\":_vm.MeterReadings.meterReadingDate}})]:[_c('b-card-text',[_vm._v(\"No meter reading available.\")]),(_vm.MeterReadings && _vm.MeterReadings.earliestMeterReadingDate && !_vm.MeterReadings.allowMeterReadings)?[_c('b-card-text',[_vm._v(\"We can accept meter readings for this contract from \"+_vm._s(_vm.MeterReadings.earliestMeterReadingDate)+\".\")])]:_vm._e()],(_vm.MeterReadings && _vm.MeterReadings.allowMeterReadings && _vm.MeterReadings.addMeterReadingUrl)?[_c('b-button',{attrs:{\"href\":_vm.MeterReadings.addMeterReadingUrl,\"variant\":\"soft-blue\"}},[_vm._v(\" \"+_vm._s(_vm.componentLabels.ctaButtonLabel)+\" \"),_c('svg',{staticClass:\"bi bi-speedometer ml-1\",staticStyle:{\"margin-top\":\"-5px\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"19\",\"height\":\"17\",\"fill\":\"white\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M8 2a.5.5 0 0 1 .5.5V4a.5.5 0 0 1-1 0V2.5A.5.5 0 0 1 8 2zM3.732 3.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 8a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 8zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 7.31A.91.91 0 1 0 8.85 8.569l3.434-4.297a.389.389 0 0 0-.029-.518z\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M6.664 15.889A8 8 0 1 1 9.336.11a8 8 0 0 1-2.672 15.78zm-4.665-4.283A11.945 11.945 0 0 1 8 10c2.186 0 4.236.585 6.001 1.606a7 7 0 1 0-12.002 0z\"}})])])]:_vm._e()]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport BasePanel from '@/components/panels/BasePanel.vue';\nimport ClipLoader from '@/components/elements/ClipLoader.vue';\nimport ItemLabel from '@/components/elements/ItemLabel.vue';\nimport MainItemLabel from '@/components/elements/MainItemLabel.vue';\nimport CtaButton from '@/components/elements/CtaButton.vue';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { namespace } from \"vuex-class\";\nimport { IMeterReading } from '../../interfaces/meterReading';\n\nconst Auth = namespace(\"Auth\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst Panel = namespace(\"Panel\");\nconst FeatureToggle = namespace(\"FeatureToggle\");\n\n@Component({\n components: {\n BasePanel,\n ClipLoader,\n ItemLabel,\n MainItemLabel,\n CtaButton\n }\n})\nexport default class LatestGasReadPanel extends Vue {\n\n private loading = true;\n public componentLabels = {\n title: \"My latest gas reading\",\n readingLabel: \"Meter reading\",\n DueDateLabel: \"Latest reading on\",\n ctaButtonLabel: \"Submit a meter reading\",\n\n };\n\n public unwatch: any;\n\n @Auth.Getter\n private getUserId!: string;\n\n @GasAccounts.Getter\n private getSelectedSiteRefNumber!: string;\n\n @GasAccounts.Getter\n private getSelectedContractId!: number;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @FeatureToggle.Getter\n private getInvoiceAndMeterReadPanelFeatureToggleStatus!: boolean;\n\n @GasAccounts.Getter\n private isLargeUser!: boolean;\n\n @Panel.Getter\n private MeterReadings!: IMeterReading | null;\n\n @Panel.Action\n private getMeterReadings!: (userData: any) => Promise;\n\n @FeatureToggle.Action\n private getInvoiceAndMeterReadPanelFeatureToggleStatusAction!: (userId: any) => Promise;\n\n async created() {\n try {\n this.unwatch = this.$store.watch(\n (state, getters) => getters[\"GasAccounts/getSelectedDeliveryAgreementNumber\"],\n (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n this.loading = true;\n\n const siteRefNumber = this.getSelectedSiteRefNumber;\n const contractId = this.getSelectedContractId;\n\n this.getInvoiceAndMeterReadPanelFeatureToggleStatusAction(this.getUserId).then(x => {\n\n if (this.getInvoiceAndMeterReadPanelFeatureToggleStatus && siteRefNumber !== null && contractId !== 0) {\n this.getMeterReadings({ UserId: this.getUserId, AccountNumber: this.getSelectedAccount, SiteRefNumber: siteRefNumber, ContractId: contractId, isLargeUser: this.isLargeUser }).then(() => {\n this.loading = false;\n }).catch(reason => {\n this.loading = false;\n console.error(reason);\n });\n } else {\n this.loading = false;\n }\n });\n }\n , { immediate: true });\n } catch (e) {\n this.loading = false;\n console.error(e);\n }\n }\n\n beforeDestroy() {\n this.unwatch();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LatestGasReadPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LatestGasReadPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LatestGasReadPanel.vue?vue&type=template&id=746ccf8a&\"\nimport script from \"./LatestGasReadPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./LatestGasReadPanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-panel',{attrs:{\"componentTitle\":_vm.componentLabels.title,\"isUnavailable\":_vm.componentLabels.isUnavailable}},[(_vm.loading)?[_c('clip-loader',{staticClass:\"spinner\",attrs:{\"loading\":_vm.loading,\"color\":\"#0065bd\"}})]:[(_vm.ContractDetails !== null && _vm.ContractDetails !== '')?[_c('item-label',{staticClass:\"text-break\",attrs:{\"itemLabel\":_vm.componentLabels.contractTypeLabel,\"itemValue\":_vm.ContractDetails.productType}},[(_vm.ContractDetails.isOutOfContract === true)?[_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"gazprom-blue\",\"id\":\"outOfContractTooltip\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"outOfContractTooltip\",\"title\":\"Out of Contract Tooltip\",\"variant\":\"sefe-blue\",\"triggers\":\"hover\",\"placement\":\"right\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.ContractDetails.outOfContractTooltip)}})])]:_vm._e()],2),(_vm.ContractDetails.isFlexProduct === true)?[_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.baseRateLabel,\"itemValue\":_vm._f(\"p_per_Kwh\")(_vm._f(\"roundToDp\")(_vm.ContractDetails.baseRate,6))}},[_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"gazprom-blue\",\"id\":\"baseRateTooltip\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"baseRateTooltip\",\"title\":\"Base Rate Tooltip\",\"variant\":\"sefe-blue\",\"triggers\":\"hover\",\"placement\":\"right\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.ContractDetails.baseRateTooltip)}})])],1)]:[(_vm.isUnitRateUnavailable)?_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.UnitRateLabel,\"itemValue\":_vm.ContractDetails.unitRate}}):_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.UnitRateLabel,\"itemValue\":_vm._f(\"p_per_Kwh\")(_vm._f(\"roundToDp\")(_vm.ContractDetails.unitRate,6))}})],(_vm.isStandingChargeUnavailable)?_c('item-label',{attrs:{\"indentationValue\":-0.5,\"itemLabel\":_vm.componentLabels.standingChargeLabel,\"itemValue\":_vm.ContractDetails.standingCharge}}):_c('item-label',{attrs:{\"indentationValue\":-0.5,\"itemLabel\":_vm.componentLabels.standingChargeLabel,\"itemValue\":_vm._f(\"formatStandingCharge\")(_vm._f(\"toCurrency\")(_vm.ContractDetails.standingCharge))}}),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.contractStartDateLabel,\"itemValue\":_vm.ContractValueIfStartOfContract}}),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.contractEndDateLabel,\"itemValue\":_vm.ContractValueIfEndOfContract}}),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.contractedAqLabel,\"itemValue\":_vm.ContractDetails.contractedAq + ' kWh'}},[_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"soft-blue\",\"id\":\"detail-tooltip-link\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"detail-tooltip-link\",\"title\":\"Contracted AQ Tooltip\",\"variant\":\"sefe-blue\",\"triggers\":\"hover\",\"placement\":\"right\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.ContractDetails.contractedAqTooltip)}})])],1),_c('item-label',{attrs:{\"itemLabel\":_vm.componentLabels.rollingAqLabel,\"itemValue\":_vm.ContractDetails.rollingAq + ' kWh'}},[_c('b-icon',{staticClass:\"pl-1\",attrs:{\"icon\":\"info-circle-fill\",\"variant\":\"soft-blue\",\"id\":\"rolling-detail-tooltip-link\",\"tabindex\":\"0\"}}),_c('b-tooltip',{attrs:{\"target\":\"rolling-detail-tooltip-link\",\"title\":\"Rolling AQ Tooltip\",\"variant\":\"sefe-blue\",\"triggers\":\"hover\",\"placement\":\"right\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.ContractDetails.rollingAqTooltip)}})])],1),_c('b-button',{attrs:{\"href\":_vm.componentLabels.ctaButtonHref,\"variant\":\"soft-blue\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.componentLabels.ctaButtonLabel)+\" \"),_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"file-earmark-text\"}})],1)]:[_c('b-card-text',[_vm._v(\"No contract details available.\")]),_c('br')]]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport BasePanel from '@/components/panels/BasePanel.vue';\nimport ClipLoader from '@/components/elements/ClipLoader.vue';\nimport ItemLabel from '@/components/elements/ItemLabel.vue';\nimport MainItemLabel from '@/components/elements/MainItemLabel.vue';\nimport CtaButton from '@/components/elements/CtaButton.vue';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { namespace } from \"vuex-class\";\nimport { IContractDetails } from '../../interfaces/contractDetails';\n\nconst Auth = namespace(\"Auth\");\nconst GasAccounts = namespace(\"GasAccounts\");\nconst Panel = namespace(\"Panel\");\n\n@Component({\n components: {\n BasePanel,\n ClipLoader,\n ItemLabel,\n MainItemLabel,\n CtaButton\n },\n filters: {\n formatStandingCharge(value: any) {\n\n if (value === null || value === \"\") {\n return \"\";\n }\n\n return \"£ \" + value + \" per day\";\n }\n }\n})\nexport default class ContractDetailPanel extends Vue {\n\n private loading = true;\n public componentLabels = {\n title: \"My contract details\",\n contractTypeLabel: \"Contract type\",\n baseRateLabel: \"Base rate\",\n UnitRateLabel: \"Unit rate\",\n standingChargeLabel: \"Standing charge\",\n contractedAqLabel: \"Contracted AQ\",\n ctaButtonLabel: \"Renew or new contract\",\n ctaButtonHref: \"https://www.sefe-energy.co.uk/get-a-quote/\",\n contractStartDateLabel: \"Contract start date\",\n contractEndDateLabel: \"Contract end date\",\n rollingAqLabel: \"Rolling AQ\"\n };\n\n public unwatch: any;\n\n get ContractValueIfEndOfContract() {\n if (this.ContractDetails?.isEndOfContract) {\n return \"Out of contract\";\n } else {\n return this.ContractDetails?.contractDate;\n }\n }\n\n get ContractValueIfStartOfContract() {\n return this.ContractDetails?.contractStartDate;\n }\n\n @Auth.Getter\n private getUserId!: string;\n\n @GasAccounts.Getter\n private getSelectedSiteRefNumber!: string;\n\n @GasAccounts.Getter\n private getSelectedContractId!: number;\n\n @GasAccounts.Getter\n private getSelectedAccount!: string;\n\n @GasAccounts.Getter\n private isLargeUser!: boolean;\n\n @Panel.Getter\n private ContractDetails!: IContractDetails | null;\n\n @Panel.Action\n private getContractDetails!: (userData: any) => Promise;\n\n get isUnitRateUnavailable() {\n return this.ContractDetails?.unitRate == 'Unavailable';\n }\n\n get isStandingChargeUnavailable() {\n return this.ContractDetails?.standingCharge == 'Unavailable';\n }\n\n async created() {\n try {\n this.unwatch = this.$store.watch(\n (state, getters) => getters[\"GasAccounts/getSelectedContractId\"],\n (newValue, oldValue) => {\n if (newValue === null || newValue === oldValue) {\n return;\n }\n this.loading = true;\n const siteRefNumber = this.getSelectedSiteRefNumber;\n const contractId = this.getSelectedContractId;\n if (siteRefNumber !== null && contractId !== 0) {\n this.getContractDetails({ UserId: this.getUserId, AccountNumber: this.getSelectedAccount, SiteRefNumber: siteRefNumber, ContractId: contractId, isLargeUser: this.isLargeUser }).then(() => {\n this.loading = false;\n }).catch(reason => {\n this.loading = false;\n console.error(reason);\n });\n }\n }\n , { immediate: true });\n } catch (e) {\n this.loading = false;\n console.error(e);\n }\n\n }\n\n beforeDestroy() {\n this.unwatch();\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractDetailPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractDetailPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContractDetailPanel.vue?vue&type=template&id=aebb54ea&\"\nimport script from \"./ContractDetailPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContractDetailPanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-panel',{attrs:{\"componentTitle\":_vm.componentHeaderLabel,\"innerBodyClass\":\"justify-content-center\"}},[_vm._t(\"default\"),_c('b-button',{attrs:{\"to\":_vm.componentHrefLink,\"variant\":\"soft-blue\"}},[_vm._v(\" \"+_vm._s(_vm.componentHrefLinkLabel)+\" \"),(_vm.componentHeaderLabel==='Invoices')?_c('b-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"receipt\"}}):_c('svg',{staticClass:\"bi bi-speedometer ml-1\",staticStyle:{\"margin-top\":\"0px\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"19\",\"height\":\"17\",\"fill\":\"white\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M8 2a.5.5 0 0 1 .5.5V4a.5.5 0 0 1-1 0V2.5A.5.5 0 0 1 8 2zM3.732 3.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707zM2 8a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 8zm9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5zm.754-4.246a.389.389 0 0 0-.527-.02L7.547 7.31A.91.91 0 1 0 8.85 8.569l3.434-4.297a.389.389 0 0 0-.029-.518z\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M6.664 15.889A8 8 0 1 1 9.336.11a8 8 0 0 1-2.672 15.78zm-4.665-4.283A11.945 11.945 0 0 1 8 10c2.186 0 4.236.585 6.001 1.606a7 7 0 1 0-12.002 0z\"}})])],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport BasePanel from '@/components/panels/BasePanel.vue';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({\n components: {\n BasePanel\n }\n})\nexport default class SimplePanel extends Vue {\n @Prop({ type: String, default: \"\" }) readonly componentHrefLink!: string;\n @Prop({ type: String, default: \"\" }) readonly componentHrefLinkLabel!: string;\n @Prop({ type: String, default: \"\" }) readonly componentHeaderLabel!: string;\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimplePanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimplePanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimplePanel.vue?vue&type=template&id=30dc05da&\"\nimport script from \"./SimplePanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./SimplePanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport BasePage from \"@/components/pages/BasePage.vue\";\nimport MyBalancePanel from '@/components/panels/MyBalancePanel.vue';\nimport LatestInvoicePanel from '@/components/panels/LatestInvoicePanel.vue';\nimport LatestGasReadPanel from '@/components/panels/LatestGasReadPanel.vue';\nimport ContractDetailPanel from '@/components/panels/ContractDetailPanel.vue';\nimport SimplePanel from '@/components/panels/SimplePanel.vue';\nimport TermsOfUseModal from '@/components/elements/TermsOfUseModal.vue';\n\nimport { Component, Watch, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\n\nimport { ITermsOfUse } from \"@/interfaces/termsOfUse\";\nimport moment from 'moment';\n\nconst Auth = namespace(\"Auth\");\nconst Products = namespace(\"Products\");\nconst Terms = namespace(\"Terms\");\nconst PowerAccounts = namespace(\"PowerAccounts\");\nconst GasAccounts = namespace(\"GasAccounts\");\n\n\n@Component({\n components: {\n TermsOfUseModal,\n BasePage,\n MyBalancePanel,\n LatestInvoicePanel,\n LatestGasReadPanel,\n ContractDetailPanel,\n SimplePanel,\n ctaButtonHref: { 'name': \"Invoicing\" },\n },\n})\nexport default class Dashboard extends Vue {\n private title = \"Home\";\n public readTermOfUse = false;\n public noCloseOnEsc = true;\n public noCloseOnBackdrop = true;\n public showPanelIfHH = false;\n private watchIsHalfHourly: any;\n\n @Auth.Getter\n private getUserId!: string;\n\n @Products.Getter\n private getSelectedProduct!: string;\n\n @Terms.Getter\n private getHasAcceptedTermsOfUse!: boolean;\n\n @Terms.Action\n private hasAcceptedTermsOfUse!: (userId: string) => Promise;\n\n @Terms.Action\n private AcceptsTermsOfUse!: (data: ITermsOfUse) => Promise;\n\n @Auth.Action\n private signOut!: () => any;\n\n\n @GasAccounts.Getter\n private getUserAccountsCount!: number;\n\n @GasAccounts.Getter\n private getUserAccountsLoaded!: boolean;\n\n\n public async handleAcceptTermOfUse(): Promise {\n this.readTermOfUse = true;\n const terms: ITermsOfUse = { UserId: this.getUserId, DateAccepted: moment(Date.now()).format() };\n await this.AcceptsTermsOfUse(terms);\n }\n\n public handleDeclineTermOfUse(): void {\n this.signOut();\n this.$router.push(\"/\");\n }\n\n get hasNoAccounts() {\n\n var userAccountsLoaded = this.getUserAccountsLoaded;\n\n var userAccountsCount = this.getUserAccountsCount;\n\n if (userAccountsLoaded === true && userAccountsCount === 0) {\n return true;\n }\n\n return false;\n }\n\n created() {\n document.title = this.title;\n }\n\n async mounted() {\n await this.hasAcceptedTermsOfUse(this.getUserId);\n if (!this.getHasAcceptedTermsOfUse) {\n this.$bvModal.show(\"modal-scrollable\");\n }\n\n try {\n this.watchIsHalfHourly = this.$store.watch(\n (state, getters) => getters[\"PowerAccounts/isHalfHourly\"],\n (newValue, oldValue) => {\n this.showPanelIfHH = newValue;\n }\n , { immediate: true });\n } catch (e) {\n this.showPanelIfHH = false;\n console.error(e);\n }\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=24c6b7a9&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-page',[_c('div',{staticClass:\"row cookieText\"},[_c('div',{staticClass:\"col-sm-12 mt-4\"},[_c('h3',{staticClass:\"text-deep-blue\"},[_vm._v(\" Cookie Policy for My SEFE Energy \")]),_c('hr'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\" Information about our use of cookies \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" A cookie is a small file of letters and numbers that we store on your browser or the hard drive of your computer if you agree. Cookies contain information that is transferred to your computer's hard drive. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" Cookies may be either \\\"persistent\\\" cookies or \\\"session\\\" cookies: a persistent cookie will be stored by a web browser and will remain valid until its set expiry date, unless deleted by the user before the expiry date. A session cookie will expire at the end of the user session, when the web browser is closed. \")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Essential cookies\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" These cookies are essential for the website to function. They are usually only set in response to actions taken by you which amount to a request for services, such as setting your cookie preferences, logging in or filling in forms. Without cookies, we would be unable to provide these services. Other strictly necessary cookies keep our website secure. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" The website cannot function properly without these cookies and can only be disabled by changing your browser preferences. If you do disable them, some parts of the site will not then work. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Cookies used for this purpose are:\")]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"table-responsive\"},[_c('table',{staticClass:\"table w-100\"},[_c('thead',[_c('tr',{staticClass:\"text-deep-blue\"},[_c('th',{staticClass:\"border-top-none text-left\",staticStyle:{\"width\":\"18%\"}},[_vm._v(\" Cookie name \")]),_c('th',{staticClass:\"text-left cookie-policy-table-td border-top-none\",staticStyle:{\"width\":\"72%\"}},[_vm._v(\" Cookie description \")]),_c('th',{staticClass:\"text-left border-top-none\",staticStyle:{\"width\":\"10%\"}},[_vm._v(\" Expires \")])])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" cookiesconsent_status \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" Functionality cookie. This is added once a user accepts/declines the cookie policy banner on the homepage \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" 1 year \")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"AspNetCore.Cookies\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Functionality cookie. A standard ASP.NET authentication cookie.\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Session\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"account\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Stores the user guid and email\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Session\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"userGasSelections\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Remembers the last selected account, and delivery agreement id\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Session\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"userPowerSelections\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Remembers the last selected account, and mpan\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Session\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"userProductSelections\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Remembers the last selected product (gas or power)\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Session\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"cookiesAnalytics\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"Stores the user decision for Analytical Cookies\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"1 year\")])])])])])]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Analytical cookies\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" These cookies allow us to recognise and count the number of visitors to the website and to see how visitors move around the site when they are using it. This helps us to improve the way our website works, for example, by ensuring that users are finding what they are looking for easily. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"This website uses Google Analytics cookies. Google Analytics set cookies to:\")]),_c('p',{staticClass:\"cookieText\"},[_c('ul',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"Identify unique users\")]),_c('li',[_vm._v(\"Identify unique sessions\")]),_c('li',[_vm._v(\"Throttle the request rate\")]),_c('li',[_vm._v(\"Store information about users' sessions and campaigns\")])])]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You can find more information about the individual Google Analytics cookies we use and the purposes for which we use them in the table below.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Cookies used for this purpose are:\")]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"table-responsive\"},[_c('table',{staticClass:\"table w-100\"},[_c('thead',[_c('tr',{staticClass:\"text-deep-blue\"},[_c('th',{staticClass:\"border-top-none text-left\",staticStyle:{\"width\":\"18%\"}},[_vm._v(\" Cookie name \")]),_c('th',{staticClass:\"text-left cookie-policy-table-td border-top-none\",staticStyle:{\"width\":\"72%\"}},[_vm._v(\" Cookie description \")]),_c('th',{staticClass:\"text-left border-top-none\",staticStyle:{\"width\":\"10%\"}},[_vm._v(\" Expires \")])])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"_ga\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"This helps us count how many people visit our website by tracking if you've visited before\")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\"2 years\")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" _gat \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" Used to manage the rate at which page view requests are made \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" 10 minutes \")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" _gid \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" Registers a unique ID that is used to generate statistical data on how the visitor uses the website \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" 1 day \")])]),_c('tr',[_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" _ga_VE9WS73ERP \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" Used to persist session state \")]),_c('td',{staticClass:\"text-left cookie-policy-table-td\"},[_vm._v(\" 2 years \")])])])])])])])]),_c('div',{staticStyle:{\"clear\":\"both\"}}),_c('br'),_c('br'),_c('br'),_c('br')])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport BasePage from \"@/components/pages/BasePage.vue\";\n\n@Component({\n components: {\n BasePage\n },\n})\nexport default class CookiePolicy extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePolicy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CookiePolicy.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CookiePolicy.vue?vue&type=template&id=7020adce&\"\nimport script from \"./CookiePolicy.vue?vue&type=script&lang=ts&\"\nexport * from \"./CookiePolicy.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CookiePolicy.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-page',[_c('b-row',[_c('div',{staticClass:\"col-sm-12 mt-4\"},[_c('h3',{staticClass:\"text-left text-deep-blue\"},[_vm._v(\"My SEFE Energy - Terms of use\")]),_c('hr'),_c('div',{staticClass:\"form-group\"},[_c('p',{staticClass:\"cookieText\"},[_vm._v(\"My SEFE Energy provides you with an interactive service which is designed to enable you to access and manage your account(s) with us (\\\"Service\\\").\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"In these Terms and Conditions (\\\"My SEFE Energy Terms\\\"), \\\"you\\\" are the customer (or an authorised representative of the customer) who has registered for the Service and \\\"we\\\" are SEFE Energy Limited trading as SEFE Energy.\")]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"My SEFE Energy Terms (as amended from time to time) govern your use of the Service and are binding on you. They should be read in conjunction with the Terms of Use of our Website \"),_c('a',{attrs:{\"href\":\"https://www.sefe-energy.co.uk\",\"target\":\"_blank\"}},[_vm._v(\"www.sefe-energy.co.uk\")]),_vm._v(\".\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If there is any conflict or ambiguity between these My SEFE Energy Terms and your supply agreement, these My SEFE Energy Terms shall take precedence.\")]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" By accessing or using the Service you acknowledge and confirm that you are duly authorised to: \"),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"enter into this agreement for and on behalf of our customer ; \")]),_c('li',[_vm._v(\"accept these My SEFE Energy Terms and agree to comply with them. If you do not agree to these My SEFE Energy Terms, please do not use any part of the Service; \")]),_c('li',[_vm._v(\"to access information relating to that customer and to take actions on behalf of that customer. \")])])]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We reserve the right to amend these My SEFE Energy Terms. We may modify, update or withdraw the Service at any time.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Access\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We will try to ensure that the Service is available 24 hours a day. However, we will not be responsible to you if, for any reason, the Service or any of its functions is unavailable at any time or for any period. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We reserve the right to withdraw or amend access to the Service without notice at any time. If we withdraw or amend your access to the Service, we are under no obligation to unblock or reactivate your account.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Your access to the Service will end forty - five (45) days after your supply ends.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Usernames and passwords\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must treat any username, password and any other account security information that we send you as confidential and you must not disclose it to any third party unless you are authorised to do so by us. You are responsible for all uses of your username and password whether or not authorised by you.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must take reasonable security precautions to keep any username, password and any other account security information secure.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" Reasonable security precautions can include steps such as: \"),_c('ul',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"not choosing a password or other account security information which may be easy to guess;\")]),_c('li',[_vm._v(\"not allowing or making it possible for someone else to access your account using your login details;\")]),_c('li',[_vm._v(\"complying with all reasonable instructions we issue about keeping your account safe;\")]),_c('li',[_vm._v(\"not leaving your Service account unattended while you are still logged on;\")]),_c('li',[_vm._v(\"logging out of your account when you have completed your session;\")]),_c('li',[_vm._v(\"buying and keeping updated anti-virus, firewall and any other security software;\")]),_c('li',[_vm._v(\"not accessing your account from a device using public WiFi unless you know it is secure; and\")]),_c('li',[_vm._v(\"taking care when logging out - for example ensuring that you log off correctly.\")])])]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you think that somebody else knows your username or password you can change your password by visiting and using the forgotten password option.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Your account is personal to you and you may not share your account with any other person at any time.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Intellectual Property\")]),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"You are permitted to view, print, and download documents from the Service for your own use on the basis that no information or documents are modified in any way.\")]),_c('li',[_vm._v(\"We are the owner of all rights in the Service and we reserve all such rights. You may only use the Service (including the content) as expressly stated in these My SEFE Energy Terms. You must not sell, license, distribute or otherwise make available the Service or the content in the Service.\")]),_c('li',[_vm._v(\"\\\"SEFE Energy\\\" and other trademarks used for the purposes of the Service may not be used without our prior written permission.\")])]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Your liability to us\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you do not comply with these My SEFE Energy Terms, and we incur any costs, loss, claims, expenses and other liabilities which result from your non-compliance, you agree to reimburse us for such costs, loss, claims, expenses and other liabilities. This is in addition to any other specific remedies we have in these My SEFE Energy Terms or under the law generally\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Our Liability to you\")]),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Information relating to the Services\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\" We will have no liability arising from: \"),_c('ul',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"Your use or your inability to use the Service; or\")]),_c('li',[_vm._v(\"Any information/content available via the Service; or\")]),_c('li',[_vm._v(\"Any reliance you place on any information/content available via the Service.\")])])]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Third party rights\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We provide no assurance that the use by you of information or content available via the Service will not infringe third party rights (including, without limitation, intellectual property rights or privacy rights) and we will have no liability in this regard.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"General exclusions of liability\")]),_c('ol',{staticClass:\"cookieText\",attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\"We are only legally responsible to you as set out in these My SEFE Energy Terms. We have no other duty or legal responsibility to you, and all responsibilities, guarantees and any other conditions implied by law or otherwise will not apply, as far as this is permitted by law.\")]),_c('li',[_vm._v(\"We are not liable for any direct, indirect, or consequential loss or damage that you may incur in connection with your use or inability to use the Service, including, without limitation, any damage to electronic devices, any liability for loss of income or revenue, loss of business, loss of profits or contracts, loss of anticipated savings, loss of data, loss of goodwill, wasted office time and any other loss or damage of any kind, however arising and whether caused by tort (including negligence), breach of contract or otherwise, and whether foreseeable or not. \")])]),_c('br'),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Nothing in these My SEFE Energy Terms will exclude or limit our legal responsibility for death or personal injury caused by our negligence or for fraud. We will not be legally responsible to you for any event or circumstance beyond our reasonable control.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Viruses, hacking, use of robotics and other offences\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"We will not be responsible for any loss or damage caused by a distributed denial-of-service attack, viruses or other technologically harmful material that may infect your computer equipment, computer programs, or for any loss or damage to any data or other proprietary material due to your use of the Service or to your downloading of any software or data from the Service. \")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You must not misuse the Service by knowingly introducing viruses, Trojans, worms, logic bombs or other material which is malicious or technologically harmful. You must not attempt to gain unauthorised access to the Service, the server on which the Service is stored or any server, computer or database connected to the Service.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You agree not to (a) access or use the Service in any manner that could damage, disable, overburden, or impair the Service and (b) use any robot, spider, or other automated means to access the Service.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"You agree that you will not take any action that imposes an unreasonable or disproportionately large load on the infrastructure of the systems or networks connected to the Service.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Termination\")]),_c('ol',{staticClass:\"cookieText\"},[_c('li',[_vm._v(\"We may at our sole discretion restrict your access to the Service without prior notice if we consider that you are abusing the Service or are otherwise acting in breach of the My SEFE Energy Terms, or the Terms of Use on our website;\")]),_c('li',[_vm._v(\"We have the right to discontinue or suspend the Service in respect of any one or more of your accounts including but not limited to any of the following circumstances:\")])]),_c('ol',{staticClass:\"cookieText\"},[_c('li',{staticStyle:{\"list-style-type\":\"lower-roman\"}},[_vm._v(\"where you set up more than one account for the same supply; or\")]),_c('li',{staticStyle:{\"list-style-type\":\"lower-roman\"}},[_vm._v(\"where you have not used an account for longer than 12 months. You should note that the above examples are not an exhaustive list.\")])]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Cookies\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"For information on the cookies used by the Service, please see \"),_c('a',{staticStyle:{\"text-decoration\":\"underline\"},attrs:{\"href\":\"/cookiepolicy/\"}},[_vm._v(\"Cookie Policy\")])]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Other Important Terms\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"Unless otherwise specified, when \"),_c('b',[_vm._v(\"you\")]),_vm._v(\" access the Service you will be solely responsible for ensuring that in doing so you comply with any local laws that may apply in the location that you are accessing the site from. We can transfer all or any of our rights and legal responsibilities under these My SEFE Energy Terms without your permission. Your rights and duties under these My SEFE Energy Terms apply only to you and cannot be transferred to any other person without our written permission.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"The My SEFE Energy Terms, are governed by the laws of England and you agree to submit to the exclusive jurisdiction of the English courts.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If we don't enforce any part of these My SEFE Energy Terms at any time, this will not stop us from doing so in the future.\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If any term of these My SEFE Energy Terms is found not to be valid or cannot be enforced in full or in part, the rest of the My SEFE Energy Terms will continue to apply as normal.\")]),_c('br'),_c('h5',{staticClass:\"cookieHeading text-gazprom-blue\"},[_vm._v(\"Contacting us\")]),_c('p',{staticClass:\"cookieText\"},[_vm._v(\"If you have any questions about these My SEFE Energy Terms please contact us at \"),_c('a',{attrs:{\"href\":\"mailto:marketing@sefe-energy.com\"}},[_vm._v(\"marketing@sefe-energy.com\")])])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport BasePage from \"@/components/pages/BasePage.vue\";\n\n@Component({\n components: {\n BasePage\n },\n})\nexport default class TermsOfUse extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsOfUse.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsOfUse.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TermsOfUse.vue?vue&type=template&id=8d2956f0&\"\nimport script from \"./TermsOfUse.vue?vue&type=script&lang=ts&\"\nexport * from \"./TermsOfUse.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TermsOfUse.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-page',[_vm._v(\" Placeholder for FAQs page \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport BasePage from \"@/components/pages/BasePage.vue\";\n\n@Component({\n components: {\n BasePage\n },\n})\nexport default class FaqsPage extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaqsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FaqsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FaqsPage.vue?vue&type=template&id=12d03091&\"\nimport script from \"./FaqsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./FaqsPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-page',[_c('div',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isExactActive),expression:\"isExactActive\"}]},[_c('b-overlay',{attrs:{\"show\":_vm.processing,\"rounded\":\"sm\",\"opacity\":\"0.53\",\"blur\":\"1rem\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center p-4 bg-deep-blue text-light rounded\"},[_c('b-icon',{attrs:{\"icon\":\"download\",\"font-scale\":\"3\"}}),_c('div',{staticClass:\"mb-3\"},[_vm._v(\" Please wait while data is being loaded. \")]),_c('b-progress',{staticClass:\"mx-n4 rounded-0\",attrs:{\"min\":\"1\",\"max\":_vm.maxProgress,\"value\":_vm.counter,\"variant\":\"success\",\"height\":\"3px\"}})],1)]},proxy:true}])},[_c('b-card',{staticClass:\"shadow card-border\",staticStyle:{\"text-align\":\"left\"},attrs:{\"header-tag\":\"header\",\"footer-tag\":\"footer\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h6',{staticClass:\"mb-0 text-deep-blue\"},[_vm._v(\"Content Manager\")])]},proxy:true}])},[_c('wizard-step-content-selector',{attrs:{\"id\":\"content-manager-sections\",\"next_step_id\":_vm.next_step_id},on:{\"selectedContentOption\":_vm.onSelectedContentOption}}),(_vm.findJourney(1))?[_c('banner-manager',{attrs:{\"id\":\"step-1\"}})]:_vm._e(),(_vm.findJourney(2))?[_c('label',[_vm._v(\"FAQ Manager\")])]:_vm._e()],2)],1)],1),_c('transition',{attrs:{\"name\":_vm.transitionName,\"mode\":\"out-in\"}},[_c('router-view',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isExactActive),expression:\"!isExactActive\"}],ref:\"rv\"})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('wizard-base-step',{attrs:{\"id\":_vm.id,\"title\":\"Content Manager\",\"accordionGroupName\":\"content-manager-wizard\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('h6',{staticClass:\"text-left text-underlined text-soft-blue\"},[_vm._v(\"Please select appropriate options:\")])])],1),_c('b-row',[_c('b-col',{staticClass:\"mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"6\"}},[_c('b-button-group',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle\"}],staticClass:\"shadow\",attrs:{\"id\":\"content-manager-banner-text-button\",\"href\":'#'+_vm.next_step_id[0],\"variant\":_vm.setVariant(1),\"size\":\"md\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onSelectedOptionChanged(1)}}},[_vm._v(\"Banner manager\"),_c('b-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedOption===1),expression:\"selectedOption===1\"}],staticClass:\"ml-1\",attrs:{\"icon\":\"check2-circle\"}})],1)],1)],1)],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('hr',{staticClass:\"mt-3\"})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport WizardBaseStep from \"@/components/wizard/WizardBaseStep.vue\"\n\nimport { namespace } from 'vuex-class';\nconst Auth = namespace(\"Auth\");\n\n@Component({\n components: {\n WizardBaseStep\n }\n})\nexport default class WizardStepContentSelector extends Vue {\n @Prop({ type: String, default: '' }) readonly id!: string;\n @Prop({ type: Array, default: [] }) readonly next_step_id!: string[];\n private selectedOption = 0;\n private isAdmin = false;\n \n\n @Auth.Getter\n private isGazpromAdmin!: boolean;\n\n setVariant(value) {\n if (this.selectedOption == value)\n return 'sefe-blue';\n else return 'outline-gazprom-blue';\n }\n\n onSelectedOptionChanged(value: any) {\n this.selectedOption = value;\n this.$emit(\"selectedContentOption\", value);\n }\n\n mounted() {\n this.isAdmin = this.isGazpromAdmin;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardStepContentSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardStepContentSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WizardStepContentSelector.vue?vue&type=template&id=55b9feb8&\"\nimport script from \"./WizardStepContentSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./WizardStepContentSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._m(0),_c('b-form-group',{attrs:{\"id\":\"label-banner-text\",\"label\":\"Banner Text:\",\"label-for\":\"input-banner-text\",\"description\":\"\"}},[_c('b-form-input',{attrs:{\"id\":\"input-banner-text\",\"type\":\"email\",\"placeholder\":\"Please type the banner text here\",\"required\":\"\"},model:{value:(_vm.bannerText),callback:function ($$v) {_vm.bannerText=$$v},expression:\"bannerText\"}})],1),_c('div',{staticClass:\"mt-3\",attrs:{\"id\":\"divPreview\"}},[_c('h6',{staticClass:\"text-deep-blue\"},[_vm._v(\"Preview:\")]),_c('b-alert',{staticClass:\"banneralert p-2\",attrs:{\"show\":true,\"variant\":\"primary\"},domProps:{\"innerHTML\":_vm._s(_vm.bannerText)}}),_c('b-button',{staticClass:\"mt-2\",attrs:{\"variant\":\"sefe-blue\"},on:{\"click\":_vm.Save}},[_vm._v(\" Save Banner Text \"),_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"chat-left-text\"}})],1),(_vm.savedSuccessfully)?_c('div',{staticClass:\"mt-3\"},[_c('span',{staticClass:\"text-soft-blue\"},[_c('b-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"check-circle-fill\",\"variant\":\"success\"}}),_vm._v(\"Data has been saved successfully.\")],1)]):_vm._e(),(_vm.sameContent)?_c('div',{staticClass:\"mt-3\"},[_c('span',{staticClass:\"text-soft-blue\"},[_c('b-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"exclamation-circle-fill\",\"variant\":\"warning\"}}),_vm._v(\"Same content found. Please update the content first before clicking on the save button.\")],1)]):_vm._e()],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-3\"},[_vm._v(\" Please copy the below markup to add a link in the banner.\"),_c('br'),_c('span',{staticClass:\"alert alert-secondary text-soft-blue mt-3 mb-3 p-3\",staticStyle:{\"display\":\"inline-block\"}},[_c('span',[_vm._v(\"\"),_c('span',{staticClass:\"text-sefe-dark-green\"},[_vm._v(\"LINK TEXT\")]),_vm._v(\"\")])]),_c('br'),_vm._v(\" Change the reference \"),_c('span',{staticClass:\"text-sefe-dark-green\"},[_vm._v(\" URL\")]),_vm._v(\" and \"),_c('span',{staticClass:\"text-sefe-dark-green\"},[_vm._v(\"LINK TEXT\")]),_vm._v(\" accordingly. \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport AlertBanner from '@/components/AlertBanner.vue';\nimport { IBanner } from '../interfaces/banner';\n\nconst Auth = namespace(\"Auth\");\nconst BannerContent = namespace(\"BannerContent\")\n\n@Component({\n components: {\n AlertBanner\n }\n})\nexport default class BannerManager extends Vue {\n\n private bannerText = \"\";\n private existingBannerContent!: IBanner;\n private savedSuccessfully = false;\n private sameContent = false;\n\n @Auth.Getter\n private getUserId!: string;\n\n @Auth.Getter\n private isLoggedIn!: boolean;\n\n @Auth.Getter\n private isGazpromAdmin!: boolean;\n\n @BannerContent.Getter\n private getLatestBannerContent!: IBanner;\n\n @BannerContent.Action\n private saveBannerContent!: (params: { userId: string, bannerText: string }) => Promise;\n\n @BannerContent.Action\n private fetchLatestBannerContent!: (params: { userId: string }) => Promise;\n\n async setLatestContent() {\n await this.fetchLatestBannerContent({ userId: this.getUserId });\n this.existingBannerContent = this.getLatestBannerContent;\n }\n\n async Save() {\n this.savedSuccessfully = false;\n this.sameContent = false;\n if (this.bannerText != this.existingBannerContent.bannerContent) {\n this.saveBannerContent({ userId: this.getUserId, bannerText: this.bannerText }).then(async () => {\n this.savedSuccessfully = true;\n await this.setLatestContent();\n });\n } else {\n this.sameContent = true;\n }\n }\n\n async mounted() {\n await this.setLatestContent();\n if (this.existingBannerContent != null) {\n this.bannerText = this.existingBannerContent.bannerContent\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BannerManager.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BannerManager.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BannerManager.vue?vue&type=template&id=cfd9b374&\"\nimport script from \"./BannerManager.vue?vue&type=script&lang=ts&\"\nexport * from \"./BannerManager.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Watch, Vue } from \"vue-property-decorator\";\nimport BasePage from \"@/components/pages/BasePage.vue\";\nimport WizardStepContentSelector from \"@/components/wizard/contentmanager/WizardStepContentSelector.vue\"\nimport BannerManager from \"@/components/BannerManager.vue\"\nimport { JourneyNode } from '@/utilities/JourneyNode';\nimport { namespace } from 'vuex-class';\nconst InvoicingWizard = namespace(\"InvoicingWizard\");\nconst Auth = namespace(\"Auth\");\n@Component({\n components: {\n BasePage,\n BannerManager,\n WizardStepContentSelector\n },\n})\nexport default class ContentManager extends Vue {\n private transitionName = 'fade';\n private isExactActive = false;\n private next_step_id = [\"step-1\", \"step-2\"];\n private processing = false;\n\n @Auth.Getter\n private canViewContentMenu!: boolean;\n\n @InvoicingWizard.Getter\n private getRootJourney!: JourneyNode | null;\n\n @InvoicingWizard.Action\n private resetJourneyNode!: () => Promise;\n\n @InvoicingWizard.Action\n private initJourneyNode!: (option: number) => Promise;\n\n @InvoicingWizard.Action\n private appendJourneyToJourneyNode!: (option: number) => Promise;\n\n @Watch('$route.path', { immediate: true, deep: true })\n\n public async onSelectedContentOption(option: number) {\n await this.initJourneyNode(option);\n }\n\n public findJourney(option: number): boolean {\n let root = this.getRootJourney;\n if (root !== null) {\n while (root !== null) {\n if ((root as JourneyNode).Value == option) {\n return true;\n }\n root = (root as JourneyNode).Next;\n }\n }\n return false;\n }\n\n updated() {\n this.isExactActive = typeof this.$refs.rv === 'undefined';\n }\n\n mounted() {\n if (!this.canViewContentMenu) {\n window.location.href = `${window.location.origin}/home`;\n }\n this.isExactActive = typeof this.$refs.rv === 'undefined';\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContentManager.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContentManager.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContentManager.vue?vue&type=template&id=0e44edbf&\"\nimport script from \"./ContentManager.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContentManager.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport VueRouter, { RouteConfig } from 'vue-router'\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\nimport store from '@/store'\r\n\r\nimport Index from '../views/Index.vue'\r\nimport ResetPassword from '../views/ResetPassword.vue'\r\nimport Dashboard from '../views/Dashboard.vue'\r\nimport CookiePolicy from '../views/CookiePolicy.vue'\r\nimport TermsOfUse from '../views/TermsOfUse.vue'\r\nimport FaqsPage from '../views/FaqsPage.vue'\r\nimport ContentManager from '../views/ContentManager.vue'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/',\r\n name: 'Index',\r\n component: Index\r\n },\r\n {\r\n path: '/reset-password',\r\n name: 'ResetPassword',\r\n component: ResetPassword\r\n },\r\n {\r\n path: '/home',\r\n name: 'Home',\r\n component: Dashboard,\r\n meta: { requiresAuth: true }\r\n },\r\n\r\n {\r\n path: '/faqs',\r\n name: 'FaqsPage',\r\n component: FaqsPage\r\n },\r\n {\r\n path: '/cookiepolicy',\r\n name: 'CookiePolicy',\r\n component: CookiePolicy\r\n },\r\n {\r\n path: '/termsofuse',\r\n name: 'TermsOfUse',\r\n component: TermsOfUse\r\n },\r\n {\r\n path: '/contentmanager',\r\n name: 'ContentManager',\r\n component: ContentManager,\r\n meta: { requiresAuth: true }\r\n }\r\n]\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes\r\n})\r\n\r\nrouter.beforeResolve((to, from, next) => {\r\n \r\n // If this isn't an initial page load.\r\n if (to.name) {\r\n // Start the route progress bar.\r\n NProgress.start()\r\n }\r\n next()\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const isLoggedIn = store.getters[\"Auth/isLoggedIn\"];\r\n const requiresAuth = to.matched.some(record => record.meta.requiresAuth);\r\n\r\n if (requiresAuth && !isLoggedIn) {\r\n // Redirect user to login page if trying to access a protected route without being logged in\r\n next('/');\r\n } else {\r\n next();\r\n }\r\n})\r\n\r\nrouter.afterEach((to, from) => {\r\n // Complete the animation of the route progress bar.\r\n NProgress.done()\r\n})\r\n\r\nexport default router\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderSection.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"v-spinner\"},[_c('div',{staticClass:\"v-clip\",style:(_vm.spinnerStyle)})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class ClipLoader extends Vue {\n @Prop({ type: Boolean, default: true }) readonly loading!: boolean;\n @Prop({ type: String, default: '#5dc596' }) readonly color!: string;\n @Prop({ type: String, default: '35px' }) readonly size!: boolean;\n @Prop({ type: String, default: '100%' }) readonly radius!: string;\n\n get spinnerStyle() {\n return {\n height: this.size,\n width: this.size,\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: this.color + ' ' + this.color + ' transparent',\n borderRadius: this.radius,\n background: 'transparent'\n };\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClipLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClipLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClipLoader.vue?vue&type=template&id=1b12235b&\"\nimport script from \"./ClipLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClipLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClipLoader.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSelector.vue?vue&type=style&index=0&lang=scss&\"","export class Claims {\r\n\r\n public static readonly canAccessAnyRecord = \"CanAccessAnyCustomerRecord\";\r\n public static readonly canManageInternalUser = \"CanManageInternalUser\";\r\n public static readonly canManageExternalUser = \"CanManageExternalUser\";\r\n public static readonly canManageStandardUser = \"CanManageStandardUser\";\r\n public static readonly canViewAdminMenu = \"CanViewAdminMenu\";\r\n public static readonly canAccessAllBaskets = \"CanAccessAllBaskets\";\r\n public static readonly canDownloadCogReports = \"CanDownloadCogReports\"\r\n}","/* eslint-disable no-console */\r\n\r\nimport { register } from 'register-service-worker'\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready () {\r\n console.log(\r\n 'App is being served from cache by a service worker.\\n' +\r\n 'For more details, visit https://goo.gl/AFskqB'\r\n )\r\n },\r\n registered () {\r\n console.log('Service worker has been registered.')\r\n },\r\n cached () {\r\n console.log('Content has been cached for offline use.')\r\n },\r\n updatefound () {\r\n console.log('New content is downloading.')\r\n },\r\n updated () {\r\n console.log('New content is available; please refresh.')\r\n },\r\n offline () {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n },\r\n error (error) {\r\n console.error('Error during service worker registration:', error)\r\n }\r\n })\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemLabel.vue?vue&type=style&index=0&lang=css&\"","import 'core-js/stable'\r\nimport 'regenerator-runtime/runtime'\r\nimport 'intersection-observer'\r\nimport Vue from 'vue'\r\n\r\n//Import Plugins \r\nimport './plugins/bootstrap-vue'\r\nimport './plugins/vee-validate'\r\nimport './plugins/vue-cookies'\r\nimport './plugins/browser-update'\r\nimport './plugins/vue-select'\r\nimport './plugins/vue-moment'\r\nimport './plugins/pretty-checkbox'\r\nimport './plugins/filters'\r\nimport VueAnalytics from 'vue-analytics';\r\nimport VueGtm from '@gtm-support/vue2-gtm';\r\nimport jQuery from 'jquery'\r\n\r\n\r\n\r\n\r\n//eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n//@ts-ignore\r\nglobal.jQuery = jQuery;\r\n\r\n//--------------\r\n\r\nimport App from './App.vue'\r\nimport './registerServiceWorker'\r\nimport router from './router'\r\nimport store from './store'\r\nimport VueGtag from 'vue-gtag'\r\nimport CookiesConsenseService from '@/services/cookiesConsenseService';\r\n\r\n\r\n/* Start of FontAwesome */\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport { faTachographDigital, faBook, faFileContract, faQuestionCircle, faTools, faFileAlt, faArrowUpRightFromSquare, faChevronDown } from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'\r\n\r\nlibrary.add(faTachographDigital, faBook, faFileContract, faQuestionCircle, faTools, faFileAlt, faArrowUpRightFromSquare, faChevronDown)\r\nVue.component('font-awesome-icon', FontAwesomeIcon)\r\n/* End of FontAwesome */\r\n\r\ndocument.contains = Element.prototype.contains = function contains(node) {\r\n do {\r\n if (this === node) return true\r\n } while ((node = node && node.parentNode))\r\n return false\r\n}\r\n\r\n\r\nVue.config.productionTip = false\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\n//Turn off Analytics based on users cookie settings\r\nconst cookiesConsenseService = new CookiesConsenseService(Vue.$cookies);\r\nconst getAnalyticsCookie = cookiesConsenseService.getAnalytics();\r\nconst gaEnabled = (typeof getAnalyticsCookie == 'undefined') ? false : getAnalyticsCookie;\r\n\r\nif (!gaEnabled && cookiesConsenseService.getGA() != \"\") {\r\n cookiesConsenseService.removeAnalytics();\r\n}\r\n\r\n//Initialise Analytics\r\nVue.use(VueGtag, {\r\n config: {\r\n id: 'G-VE9WS73ERP',\r\n params: { anonymize_ip: true },\r\n useDebugger: false\r\n },\r\n enabled: gaEnabled\r\n}, router)\r\n\r\n\r\nVue.use(VueGtm, {\r\n id: 'GTM-MPV92HM', // Your GTM single container ID, array of container ids ['GTM-xxxxxx', 'GTM-yyyyyy'] or array of objects [{id: 'GTM-xxxxxx', queryParams: { gtm_auth: 'abc123', gtm_preview: 'env-4', gtm_cookies_win: 'x'}}, {id: 'GTM-yyyyyy', queryParams: {gtm_auth: 'abc234', gtm_preview: 'env-5', gtm_cookies_win: 'x'}}], // Your GTM single container ID or array of container ids ['GTM-xxxxxx', 'GTM-yyyyyy'] \r\n defer: false, // Script can be set to `defer` to speed up page load at the cost of less accurate results (in case visitor leaves before script is loaded, which is unlikely but possible). Defaults to false, so the script is loaded `async` by default\r\n compatibility: false, // Will add `async` and `defer` to the script tag to not block requests for old browsers that do not support `async`\r\n nonce: '2727c7f36c', // Will add `nonce` to the script tag\r\n enabled: gaEnabled, // defaults to true. Plugin can be disabled by setting this to false for Ex: enabled: !!GDPR_Cookie (optional)\r\n debug: false, // Whether or not display console logs debugs (optional)\r\n loadScript: true, // Whether or not to load the GTM Script (Helpful if you are including GTM manually, but need the dataLayer functionality in your components) (optional)\r\n vueRouter: router, // Pass the router instance to automatically sync with router (optional)\r\n //ignoredViews: ['homepage'], // Don't trigger events for specified router names (optional)\r\n trackOnNextTick: false, // Whether or not call trackView in Vue.nextTick\r\n});\r\n\r\n\r\n","module.exports = __webpack_public_path__ + \"img/pdf_icon.c3b8e244.svg\";","import Vue from 'vue';\r\nimport moment from 'moment';\r\n\r\nVue.filter('toCurrency', function toCurrency(value) {\r\n\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n const shift = function (num: number, exponent: number) {\r\n const numArray = (\"\" + num).split(\"e\");\r\n return +(numArray[0] + \"e\" + (numArray[1] ? (+numArray[1] + exponent) : exponent));\r\n };\r\n\r\n const numberWithCommas = function (value: string) {\r\n const parts = value.toString().split(\".\");\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return parts.join(\".\");\r\n }\r\n\r\n const precision = 2;\r\n\r\n const result = shift(Math.round(shift(value, +precision)), -precision);\r\n\r\n return numberWithCommas(result.toFixed(2));\r\n});\r\n\r\nVue.filter('roundToDp', function roundToDp(value, decimalPlaces) {\r\n\r\n const shift = function (num: number, exponent: number) {\r\n const numArray = (\"\" + num).split(\"e\");\r\n return +(numArray[0] + \"e\" + (numArray[1] ? (+numArray[1] + exponent) : exponent));\r\n };\r\n\r\n const precision = decimalPlaces;\r\n\r\n return shift(Math.round(shift(value, +precision)), -precision);\r\n});\r\n\r\nVue.filter('p_per_Kwh', function p_per_Kwh(value) {\r\n return value + \"p per kWh\";\r\n});\r\n\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsOfUse.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClipLoader.vue?vue&type=style&index=0&lang=css&\"","import axios from \"@/services/axiosService\";\r\nimport { ILoginDetails } from \"@/interfaces/loginDetails\";\r\nimport { IResetPasswordDetails } from \"@/interfaces/resetPasswordDetails\";\r\nimport { IRegistrationDetails } from \"@/interfaces/registrationDetails\";\r\nimport { IRequestResponseMessage } from '@/interfaces/requestResponseMessage';\r\nimport { IChangePassword } from \"../interfaces/changePassword\";\r\n\r\nconst CONTROLLER = \"/userAccess/\";\r\n\r\nexport default class AuthService {\r\n public cookies: any;\r\n\r\n constructor(cookies: any) {\r\n this.cookies = cookies;\r\n }\r\n\r\n public login(loginDetails: ILoginDetails) {\r\n const email = loginDetails.Email;\r\n const password = loginDetails.Password;\r\n\r\n return axios.post(`${CONTROLLER}login`, { email, password })\r\n .then(response => {\r\n \r\n if ((response as any).content != null) {\r\n this.cookies.set(\"account\", (response as any).content, 0);\r\n }\r\n return response;\r\n }, (error) => {\r\n console.error(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public registerAccount(registrationDetails: IRegistrationDetails) {\r\n return axios.post(`${CONTROLLER}register`, { ...registrationDetails })\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).EmailRequestSent;\r\n return result;\r\n }, (error) => {\r\n console.error(error);\r\n return false;\r\n });\r\n }\r\n\r\n public registerTpiAccount(registrationDetails: IRegistrationDetails) {\r\n return axios.post(`${CONTROLLER}register/tpi`, { ...registrationDetails })\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).EmailRequestSent;\r\n return result;\r\n }, (error) => {\r\n console.error(error);\r\n return false;\r\n });\r\n }\r\n\r\n public requestTpiAccess(requestDetails: IRegistrationDetails) {\r\n return axios.post(\"/userAccess/register/submitTPIRequest\", requestDetails)\r\n .then(response => {\r\n if ((response as any).content != null) {\r\n const tpiResponse = JSON.parse((response as any).content);\r\n return tpiResponse;\r\n }\r\n }, (error) => {\r\n console.error(error);\r\n return false;\r\n });\r\n }\r\n\r\n public logout(userId: string) {\r\n \r\n const response = axios.get(`${CONTROLLER}get-old-portal-domain`, {\r\n params:\r\n {\r\n userId: userId\r\n }, responseType: \"json\"\r\n }).then(result => {\r\n\r\n const content = JSON.parse((result as any).content);\r\n\r\n const oldPortalDomain = content.OldPortalDomain;\r\n\r\n const rand = Math.floor((Math.random() * 1000000) + 1);\r\n\r\n const oldPortalLogoutUrl = oldPortalDomain + \"/Account/Logout_Token?userId=\" + userId + \"&rand=\" + rand;\r\n\r\n const logoutSpan = document.getElementById(\"logoutSpan\");\r\n\r\n if (logoutSpan != null) {\r\n // this iframe code is needed to log the user out of old portal at the same time\r\n logoutSpan.innerHTML += '';\r\n }\r\n\r\n return axios.post(`${CONTROLLER}logout`)\r\n .then(response => { \r\n this.cookies.remove(\"account\");\r\n this.cookies.remove(\"impersonatedAccount\");\r\n return response;\r\n });\r\n\r\n });\r\n }\r\n\r\n public sendPasswordResetLink(email: string) {\r\n return axios.get(`${CONTROLLER}send-reset-password-email`, { params: { email: email } })\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).EmailRequestSent;\r\n return result;\r\n }, (error) => {\r\n console.error(error);\r\n return false;\r\n });\r\n }\r\n\r\n public getImpersonatedUserId(currentUserId: string,impersonatedUserEmail: string) {\r\n return axios.get(`${CONTROLLER}get-impersonated-user-id`, { params: { userId: currentUserId, impersonatedUserEmail: impersonatedUserEmail } })\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).UserId;\r\n\r\n const identityUser = JSON.parse((response as any).content).IdentityUser;\r\n\r\n this.cookies.set(\"impersonatedAccount\", identityUser);\r\n return result;\r\n }, (error) => {\r\n //console.error(error);\r\n return null;\r\n });\r\n }\r\n\r\n public getImpersonatedUserEmail(currentUserId: string, impersonatedUserId: string) {\r\n return axios.get(`${CONTROLLER}get-impersonated-user-email`, { params: { userId: currentUserId, impersonatedUserId: impersonatedUserId } })\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).Email;\r\n\r\n const identityUser = JSON.parse((response as any).content).IdentityUser;\r\n\r\n this.cookies.set(\"impersonatedAccount\", identityUser);\r\n return result;\r\n }, (error) => {\r\n console.error(error);\r\n return null;\r\n });\r\n }\r\n\r\n public async verifyResetToken(token: string) {\r\n return await axios.get(`${CONTROLLER}verify-password-token`, { params: { token: token } })\r\n .then(response => {\r\n return response;\r\n }, (error) => {\r\n console.error(error);\r\n throw error;\r\n });\r\n } \r\n\r\n public async getPortalAuthTokenUrl(userId: string): Promise {\r\n let authTokenUrl = \"\";\r\n\r\n const response = await axios.get(`${CONTROLLER}get-auth-token-url`, {\r\n params:\r\n {\r\n userId: userId\r\n }, responseType: \"json\"\r\n }).then(result => {\r\n const content = JSON.parse((result as any).content);\r\n \r\n authTokenUrl = content.AuthTokenUrl;\r\n });\r\n\r\n return authTokenUrl;\r\n }\r\n\r\n\r\n\r\n public async changePassword(changePassword: IChangePassword) {\r\n return await axios.post(`${CONTROLLER}change-password`, { ...changePassword })\r\n .then(response => {\r\n return response;\r\n }, (error) => {\r\n console.error(error);\r\n throw error;\r\n });\r\n }\r\n\r\n public async resetPassword(resetPasswordDetails: IResetPasswordDetails) {\r\n const email = resetPasswordDetails.Email;\r\n const password = resetPasswordDetails.Password;\r\n const token = resetPasswordDetails.Token;\r\n return await axios.post(`${CONTROLLER}reset-password`, { email, password , token})\r\n .then(response => {\r\n const result = JSON.parse((response as any).content).ResettedPassword;\r\n return result;\r\n }, (error) => {\r\n console.error(error);\r\n return false;\r\n });\r\n }\r\n\r\n}"],"sourceRoot":""}