{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/locale sync ^\\.\\/(en-uk|en-us|en-au)$","webpack:///./ClientApp/views/root/root.scss?b23b","webpack:///./ClientApp/views/root/root.scss","webpack:///./ClientApp/custom-elements/select-account/select-account.scss?ae80","webpack:///./ClientApp/custom-elements/select-account/select-account.scss","webpack:///./ClientApp/custom-elements/quick-stream/quick-stream.css","webpack:///./ClientApp/custom-elements/last-tenancy-requests/last-tenancy-requests.scss?d216","webpack:///./ClientApp/custom-elements/last-tenancy-requests/last-tenancy-requests.scss","webpack:///./ClientApp/helpers/append-polyfill.ts","webpack:///./ClientApp/constants/route.ts","webpack:///./ClientApp/constants/account-status.ts","webpack:///./ClientApp/constants/roles.ts","webpack:///./ClientApp/constants/events.ts","webpack:///./ClientApp/constants/strings.ts","webpack:///./ClientApp/constants/invoice-types.ts","webpack:///./ClientApp/services/api.ts","webpack:///./ClientApp/exceptions/identity-exception.ts","webpack:///./ClientApp/exceptions/locked-out-exception.ts","webpack:///./ClientApp/exceptions/email-taken-exception.ts","webpack:///./ClientApp/exceptions/inactive-user-exception.ts","webpack:///./ClientApp/exceptions/not-matching-birth-date-exception.ts","webpack:///./ClientApp/exceptions/not-found-exception.ts","webpack:///./ClientApp/helpers/utc-date.ts","webpack:///./ClientApp/helpers/validation.ts","webpack:///./ClientApp/constants/payment-status.ts","webpack:///./ClientApp/interfaces/i-auth-service.ts","webpack:///./ClientApp/services/settings-service.ts","webpack:///./ClientApp/services/server-date-provider.ts","webpack:///./ClientApp/services/invoice-service.ts","webpack:///./ClientApp/services/data-storage-service.ts","webpack:///./ClientApp/services/payment-service.ts","webpack:///./ClientApp/services/analytics-step.ts","webpack:///./ClientApp/services/role-check-step.ts","webpack:///./ClientApp/services/post-complete-step.ts","webpack:///./ClientApp/services/msal-service.ts","webpack:///./ClientApp/services/tw-auth-service.ts","webpack:///./ClientApp/app.ts","webpack:///./ClientApp/aurelia.ts","webpack:///./ClientApp/attributes/toast-hint.ts","webpack:///./ClientApp/check-browser.ts","webpack:///./ClientApp/configure.ts","webpack:///./ClientApp/converters/account-balance-info.ts","webpack:///./ClientApp/converters/account-balance-info-to-class.ts","webpack:///./ClientApp/converters/account-balance-info-to-due-text.ts","webpack:///./ClientApp/converters/account-balance-info-to-invoice-method.ts","webpack:///./ClientApp/converters/account-summaries-filter.ts","webpack:///./ClientApp/converters/balance.ts","webpack:///./ClientApp/converters/balance-status-to-colour.ts","webpack:///./ClientApp/converters/debt-option.ts","webpack:///./ClientApp/converters/invoice-type.ts","webpack:///./ClientApp/converters/payment-status.ts","webpack:///./ClientApp/converters/role-to-menu-size.ts","webpack:///./ClientApp/custom-elements/app-colours/app-colours.ts","webpack:///./ClientApp/custom-elements/app-colours/app-colours.html","webpack:///./ClientApp/custom-elements/bpoint/bpoint.ts","webpack:///./ClientApp/custom-elements/bpoint/bpoint.html","webpack:///./ClientApp/custom-elements/bpoint/bpoint.scss","webpack:///./ClientApp/custom-elements/credit-card/credit-card.ts","webpack:///./ClientApp/custom-elements/credit-card/credit-card.html","webpack:///./ClientApp/custom-elements/credit-card/credit-card.scss","webpack:///./ClientApp/custom-elements/dashboard-card/dashboard-card.ts","webpack:///./ClientApp/custom-elements/dashboard-card/dashboard-card.html","webpack:///./ClientApp/custom-elements/date-range/date-range.ts","webpack:///./ClientApp/custom-elements/date-range/date-range.html","webpack:///./ClientApp/custom-elements/date-range/date-range.scss","webpack:///./ClientApp/custom-elements/edit-address/edit-address.ts","webpack:///./ClientApp/custom-elements/edit-address/edit-address.html","webpack:///./ClientApp/custom-elements/edit-page-buttons/edit-page-buttons.ts","webpack:///./ClientApp/custom-elements/edit-page-buttons/edit-page-buttons.html","webpack:///./ClientApp/custom-elements/edit-page-buttons/edit-page-buttons.scss","webpack:///./ClientApp/custom-elements/info-statement-porg/info-statement-porg.ts","webpack:///./ClientApp/custom-elements/info-statement-porg/info-statement-porg.html","webpack:///./ClientApp/custom-elements/info-statement-porg/info-statement-porg.scss","webpack:///./ClientApp/custom-elements/info-statement-title/info-statement-title.ts","webpack:///./ClientApp/custom-elements/info-statement-title/info-statement-title.html","webpack:///./ClientApp/custom-elements/last-tenancy-requests/last-tenancy-requests.ts","webpack:///./ClientApp/custom-elements/last-tenancy-requests/last-tenancy-requests.html","webpack:///./ClientApp/custom-elements/pay-arrangement/pay-arrangement.ts","webpack:///./ClientApp/custom-elements/pay-arrangement/pay-arrangement.html","webpack:///./ClientApp/custom-elements/payment-status/payment-status.ts","webpack:///./ClientApp/custom-elements/payment-status/payment-status.html","webpack:///./ClientApp/custom-elements/payment/payment.ts","webpack:///./ClientApp/custom-elements/payment/payment.html","webpack:///./ClientApp/custom-elements/quick-stream/quick-stream.ts","webpack:///./ClientApp/custom-elements/quick-stream/quick-stream.html","webpack:///./ClientApp/custom-elements/script-injector/script-injector.ts","webpack:///./ClientApp/custom-elements/script-injector/script-injector.html","webpack:///./ClientApp/custom-elements/select-account/select-account.ts","webpack:///./ClientApp/custom-elements/select-account/select-account.html","webpack:///./ClientApp/custom-elements/tenant/tenant.ts","webpack:///./ClientApp/custom-elements/tenant/tenant.html","webpack:///./ClientApp/custom-elements/tenant/tenant.scss","webpack:///./ClientApp/views/account-payment/account-payment.ts","webpack:///./ClientApp/views/account-payment/account-payment.html","webpack:///./ClientApp/views/account-payments/account-payments.ts","webpack:///./ClientApp/views/account-payments/account-payments.html","webpack:///./ClientApp/views/account/account.ts","webpack:///./ClientApp/views/account/account.html","webpack:///./ClientApp/views/account/account.scss","webpack:///./ClientApp/views/admin-dashboard/admin-dashboard.ts","webpack:///./ClientApp/views/admin-dashboard/admin-dashboard.html","webpack:///./ClientApp/views/admin-dashboard/admin-dashboard.scss","webpack:///./ClientApp/views/admin-dashboard/widgets/base-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/page-visits-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/page-visits-widget.html","webpack:///./ClientApp/views/admin-dashboard/widgets/payments-count-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/payments-count-widget.html","webpack:///./ClientApp/views/admin-dashboard/widgets/payments-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/payments-widget.html","webpack:///./ClientApp/views/admin-dashboard/widgets/registrations-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/registrations-widget.html","webpack:///./ClientApp/views/admin-dashboard/widgets/running-registrations-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/running-registrations-widget.html","webpack:///./ClientApp/views/admin-dashboard/widgets/web-requests-widget.ts","webpack:///./ClientApp/views/admin-dashboard/widgets/web-requests-widget.html","webpack:///./ClientApp/views/agency-manager/agency-manager.ts","webpack:///./ClientApp/views/agency-manager/agency-manager.html","webpack:///./ClientApp/views/agent/agent.ts","webpack:///./ClientApp/views/agent/agent.html","webpack:///./ClientApp/views/balance-check/balance-check.ts","webpack:///./ClientApp/views/balance-check/balance-check.html","webpack:///./ClientApp/views/balance-check/balance-check.scss","webpack:///./ClientApp/views/bulk-customer/bulk-customer.ts","webpack:///./ClientApp/views/bulk-customer/bulk-customer.html","webpack:///./ClientApp/views/bulk-customer/bulk-customer.scss","webpack:///./ClientApp/views/change-address/change-address.ts","webpack:///./ClientApp/views/change-address/change-address.html","webpack:///./ClientApp/views/change-address/change-address.scss","webpack:///./ClientApp/views/change-customer-details/change-customer-details.ts","webpack:///./ClientApp/views/change-customer-details/change-customer-details.html","webpack:///./ClientApp/views/change-customer-details/change-customer-details.scss","webpack:///./ClientApp/views/change-email/change-email.ts","webpack:///./ClientApp/views/change-email/change-email.html","webpack:///./ClientApp/views/change-name/change-name.ts","webpack:///./ClientApp/views/change-name/change-name.html","webpack:///./ClientApp/views/change-name/change-name.scss","webpack:///./ClientApp/views/concession/concession.ts","webpack:///./ClientApp/views/concession/concession.html","webpack:///./ClientApp/views/confirm-email/confirm-email.ts","webpack:///./ClientApp/views/confirm-email/confirm-email.html","webpack:///./ClientApp/views/conveyancer/conveyancer.ts","webpack:///./ClientApp/views/conveyancer/conveyancer.html","webpack:///./ClientApp/views/customer/customer.ts","webpack:///./ClientApp/views/customer/customer.html","webpack:///./ClientApp/views/customer/customer.scss","webpack:///./ClientApp/views/direct-debit/direct-debit.ts","webpack:///./ClientApp/views/direct-debit/direct-debit.html","webpack:///./ClientApp/views/direct-debit/direct-debit.scss","webpack:///./ClientApp/views/edit-base.ts","webpack:///./ClientApp/views/edit-organisation/edit-organisation.ts","webpack:///./ClientApp/views/edit-organisation/edit-organisation.html","webpack:///./ClientApp/views/edit-settings/edit-settings.ts","webpack:///./ClientApp/views/edit-settings/edit-settings.html","webpack:///./ClientApp/views/edit-settings/edit-settings.scss","webpack:///./ClientApp/views/edit-settings/trim-long-value-converter.ts","webpack:///./ClientApp/views/edit-user/edit-user.ts","webpack:///./ClientApp/views/edit-user/edit-user.admin.html","webpack:///./ClientApp/views/edit-user/edit-user.agency-manager.html","webpack:///./ClientApp/views/edit-user/edit-user.agent.html","webpack:///./ClientApp/views/edit-user/edit-user.business-customer.html","webpack:///./ClientApp/views/edit-user/edit-user.conveyancer.html","webpack:///./ClientApp/views/edit-user/edit-user.html","webpack:///./ClientApp/views/edit-user/edit-user.residential-customer.html","webpack:///./ClientApp/views/edit-user/edit-user.scss","webpack:///./ClientApp/views/edit-user/edit-user.staff.html","webpack:///./ClientApp/views/edit-user/edit-user.supervisor.html","webpack:///./ClientApp/views/email-invoices/email-invoices.ts","webpack:///./ClientApp/views/email-invoices/email-invoices.html","webpack:///./ClientApp/views/expired/expired.ts","webpack:///./ClientApp/views/expired/expired.html","webpack:///./ClientApp/views/farewell/farewell.ts","webpack:///./ClientApp/views/farewell/farewell.html","webpack:///./ClientApp/views/forbidden/forbidden.ts","webpack:///./ClientApp/views/forbidden/forbidden.html","webpack:///./ClientApp/views/home/home.ts","webpack:///./ClientApp/views/home/home.html","webpack:///./ClientApp/views/info-statement/info-statement.ts","webpack:///./ClientApp/views/info-statement/info-statement.html","webpack:///./ClientApp/views/info-statement/info-statement.scss","webpack:///./ClientApp/views/invoices/invoices.ts","webpack:///./ClientApp/views/invoices/invoices.html","webpack:///./ClientApp/views/invoices/invoices.scss","webpack:///./ClientApp/views/login-b2c-error/login-b2c-error.ts","webpack:///./ClientApp/views/login-b2c-error/login-b2c-error.html","webpack:///./ClientApp/views/login-b2c/login-b2c.ts","webpack:///./ClientApp/views/login-b2c/login-b2c.html","webpack:///./ClientApp/views/login/login.ts","webpack:///./ClientApp/views/login/login.html","webpack:///./ClientApp/views/login/login.scss","webpack:///./ClientApp/views/meter-reading/meter-reading.ts","webpack:///./ClientApp/views/meter-reading/meter-reading.html","webpack:///./ClientApp/views/notfound/notfound.ts","webpack:///./ClientApp/views/notfound/notfound.html","webpack:///./ClientApp/views/organisations/organisations.ts","webpack:///./ClientApp/views/organisations/organisations.html","webpack:///./ClientApp/views/organisations/organisations.scss","webpack:///./ClientApp/views/paginated-base.ts","webpack:///./ClientApp/views/payment-arrangement/payment-arrangement.ts","webpack:///./ClientApp/views/payment-arrangement/payment-arrangement.html","webpack:///./ClientApp/views/payments/payments.ts","webpack:///./ClientApp/views/payments/payments.html","webpack:///./ClientApp/views/profile/profile.ts","webpack:///./ClientApp/views/profile/profile.html","webpack:///./ClientApp/views/profile/profile.scss","webpack:///./ClientApp/views/register-b2c/register-b2c.ts","webpack:///./ClientApp/views/register-b2c/register-b2c.html","webpack:///./ClientApp/views/register/register.ts","webpack:///./ClientApp/views/register/register.Admin.html","webpack:///./ClientApp/views/register/register.Agency Manager.html","webpack:///./ClientApp/views/register/register.Agent.html","webpack:///./ClientApp/views/register/register.Business Customer.html","webpack:///./ClientApp/views/register/register.Conveyancer.html","webpack:///./ClientApp/views/register/register.Residential Customer.html","webpack:///./ClientApp/views/register/register.Staff.html","webpack:///./ClientApp/views/register/register.Supervisor.html","webpack:///./ClientApp/views/register/register.html","webpack:///./ClientApp/views/register/register.scss","webpack:///./ClientApp/views/reset-password/reset-password.ts","webpack:///./ClientApp/views/reset-password/reset-password.html","webpack:///./ClientApp/views/reset-password/reset-password.scss","webpack:///./ClientApp/views/role/role.ts","webpack:///./ClientApp/views/role/role.html","webpack:///./ClientApp/views/roles/roles.ts","webpack:///./ClientApp/views/roles/roles.html","webpack:///./ClientApp/views/root/root.ts","webpack:///./ClientApp/views/root/root.html","webpack:///./ClientApp/views/tenancy/tenancy.ts","webpack:///./ClientApp/views/tenancy/tenancy.html","webpack:///./ClientApp/views/users/users.ts","webpack:///./ClientApp/views/users/users.html","webpack:///./ClientApp/views/users/users.scss","webpack:///./ClientApp/views/volumes-period/i-chart-type.ts","webpack:///./ClientApp/views/volumes-period/volumes-period.ts","webpack:///./ClientApp/views/volumes-period/volumes-period.html","webpack:///./ClientApp/views/volumes-period/volumes-period.scss"],"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","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","content","options","locals","Element","Document","DocumentFragment","forEach","item","configurable","writable","argArr","Array","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","this","AccountStatus","login","loginB2C","logout","register","home","customer","bulkCustomer","agent","agencyManager","conveyancer","users","profile","forbidden","notfound","confirmEmail","changeEmail","resetPassword","account","editUser","expired","farewell","changeAddress","changeName","meterReading","inviteUser","organisations","editOrganisation","newTenant","vacatingTenant","infoStatement","payments","accountPayment","accountPayments","emailInvoices","directDebit","role","roles","editSettings","adminDashboard","volumesPeriod","invoices","loginB2CError","registerB2C","balanceCheck","changeCustomerDetails","concession","paymentArrangement","admin","supervisor","staff","residentialCustomer","businessCustomer","customers","Roles","all","accountLinked","profileChanged","final","reminder","webRequestSuccess","errorWhileLoadingPage","errorWhileSubmittingRequest","PaymentStatus","baseUrl","http","jsonParseReviver","undefined","index","url_","replace","fetch","method","headers","then","_response","processIndex","response","status","_headers","v","k","text","_responseText","result200","resultData200","JSON","parse","isArray","AccountInfo","fromJS","throwException","Promise","userAccounts","encodeURIComponent","processUserAccounts","getLastPayments","pkAccount","processGetLastPayments","AccountPayment","getPayments","request","options_","body","stringify","processGetPayments","getVolumes","dateFrom","dateTo","bills","toJSON","processGetVolumes","ActVolCycle","getBalance","processGetBalance","AccountBalanceInfo","getBalanceAnonymous","processGetBalanceAnonymous","requestPaymentExtension","processRequestPaymentExtension","getAccountsCount","processGetAccountsCount","getAccountSummaries","activeOnly","light","processGetAccountSummaries","getPeopleInHousehold","processGetPeopleInHousehold","updatePeopleInHousehold","processUpdatePeopleInHousehold","checkEBilling","processCheckEBilling","AccountClient","autocomplete","address","processAutocomplete","Address","metadata","processMetadata","AddressClient","track","processTrack","getMonthlyUserRegistrations","processGetMonthlyUserRegistrations","getRunningUserRegistrations","processGetRunningUserRegistrations","getWebRequestCounts","processGetWebRequestCounts","GetWebRequestCountsResponse","getPageVisitCounts","processGetPageVisitCounts","GetPageVisitCountsResponse","getPaymentCounts","processGetPaymentCounts","AnalyticsClient","generateToken","processGenerateToken","GenerateTokenResponse","refreshToken","processRefreshToken","AuthClient","getUserClaims","processGetUserClaims","createUser","processCreateUser","B2CRestApiResponse","getRegistrationToken","userDetails","processGetRegistrationToken","B2CClient","getAuthKey","processGetAuthKey","BpointClient","getServerDate","processGetServerDate","GetServerDateResponse","DateClient","timestamp","processTimestamp","Date","toString","timestampAnonymous","processTimestampAnonymous","webRequestApiTimestampAnonymous","processWebRequestApiTimestampAnonymous","pdfGeneratorTimestampAnonymous","processPdfGeneratorTimestampAnonymous","getVersions","processGetVersions","GetVersionsResponse","DiagnosticsClient","sendConfirmationEmail","email","processSendConfirmationEmail","sendResetPasswordEmail","processSendResetPasswordEmail","EmailClient","getLast","processGetLast","InvoiceHeader","getInvoices","processGetInvoices","pdf","processPdf","contentDisposition","fileNameMatch","exec","blob","fileName","pdfStream","processPdfStream","InvoiceClient","en","processEn","LocaleClient","getConnected","processGetConnected","MeterInfo","saveMeterReading","fkAccount","fkMeter","serialNo","reading","files","content_","FormData","item_","append","processSaveMeterReading","getPeriodVolumes","pkMeter","from","to","type","processGetPeriodVolumes","VolumePeriod","getVolumePeriodTypes","processGetVolumePeriodTypes","VolumePeriodType","MeterClient","getMy","processGetMy","processGet","post","organisation","processPost","OrganisationClient","doIndeterminateInfoStatementPaymentsExist","webRequestGuid","processDoIndeterminateInfoStatementPaymentsExist","takeInfoStatementPayment","processTakeInfoStatementPayment","takeAccountPayment","processTakeAccountPayment","sendReceipt","processSendReceipt","getLastInfoStatementPayment","processGetLastInfoStatementPayment","getSurcharges","processGetSurcharges","Surcharge","PaymentClient","find","filter","processFind","PropertyInfo","getPropertyInfo","processGetPropertyInfo","getUnitTypes","processGetUnitTypes","UnitType","getStreetSuffixes","processGetStreetSuffixes","StreetSuffix","getSuburbs","processGetSuburbs","Suburb","PropertyClient","permissions","processPermissions","getInternal","processGetInternal","RoleClient","getBrowserSettings","processGetBrowserSettings","BrowserSettings","getPaymentSettings","processGetPaymentSettings","PaymentSettings","getAquaRateSettings","processGetAquaRateSettings","AquaRateSettings","getPasswordOptions","processGetPasswordOptions","PasswordSettings","getAzureB2CSettings","processGetAzureB2CSettings","AzureB2CSettings","getDynamicSettings","processGetDynamicSettings","GetDynamicSettingsResponse","updateDynamicSetting","processUpdateDynamicSetting","getHistory","processGetHistory","getRefreshTimestamp","processGetRefreshTimestamp","SettingsClient","getSelf","processGetSelf","UserInfo","processRegister","invite","processInvite","patch","processPatch","patchProfile","processPatchProfile","getRegisterRoles","processGetRegisterRoles","getAllRoles","processGetAllRoles","getInviteRoles","processGetInviteRoles","delete","userId","processDelete","processConfirmEmail","processChangeEmail","processResetPassword","getUsers","processGetUsers","getStatuses","processGetStatuses","StatusInfo","hasPendingChangeAddressRequest","processHasPendingChangeAddressRequest","getPendingChangeNameRequest","processGetPendingChangeNameRequest","getAddresses","processGetAddresses","getStates","processGetStates","State","processChangeAddress","surname","otherNames","organisationName","processChangeName","isInvoicePrintTypeEmail","processIsInvoicePrintTypeEmail","isTherePendingEmailInvoicesRequest","processIsTherePendingEmailInvoicesRequest","processEmailInvoices","getAttachmentTypes","processGetAttachmentTypes","WebRequestAttachmentType","unlock","processUnlock","isResetPasswordTokenValid","processIsResetPasswordTokenValid","allowEBillingOnEmailUpdate","processAllowEBillingOnEmailUpdate","UserClient","WebRequestStatus","getTypes","processGetTypes","WebRequestType","getTenancyTypes","processGetTenancyTypes","submitTenancy","processSubmitTenancy","getLastTenancyRequests","processGetLastTenancyRequests","getTenancyRequest","guid","processGetTenancyRequest","getInfoStatementRequest","processGetInfoStatementRequest","getFeeTypes","processGetFeeTypes","WebRequestFeeType","getPorgTypes","processGetPorgTypes","PorgType","getPlanTypes","processGetPlanTypes","PlanType","getParishes","processGetParishes","Parish","submitInfoStatementDummy","processSubmitInfoStatementDummy","SubmitInfoStatementResponse","isInfoStatementPaymentRequired","processIsInfoStatementPaymentRequired","submitInfoStatement","requestJson","processSubmitInfoStatement","getLastInfoStatementRequests","processGetLastInfoStatementRequests","submitDirectDebit","processSubmitDirectDebit","getDebtOptions","processGetDebtOptions","WebRequestDebtOption","isTherePendingRequest","webRequestType","processIsTherePendingRequest","getDirectDebitType","processGetDirectDebitType","getLastDirectDebitBankDetails","processGetLastDirectDebitBankDetails","GetLastDirectDebitBankDetailsResponse","submitChangeCustomerDetails","processSubmitChangeCustomerDetails","submitConcession","processSubmitConcession","getPensionTypes","processGetPensionTypes","PensionType","submitPaymentArrangement","processSubmitPaymentArrangement","getPayFrequencies","processGetPayFrequencies","PayFrequency","WebRequestClient","init","fkActDebtorType","pkProperty","pkPorg","primePkPorg","pkPorgPropRole","fullAccountNo","fullAddress","fkAccountStatus","isConnected","isClosed","fkInvoicePrintType","fkAccountType","fkPayArrStatus","directDebitFlag","street","fk_street_suffix","fk_street","street_no","street_no_suffix","unit_no","transactionPk","paymentId","date","amount","fk_payment_source","paymentSource","displayDirectDebitPendingWarning","toISOString","FilterOperator","items","pageCount","count","SearchResponseOfAccountPayment","filterItems","FilterItem","page","pageSize","SearchRequest","label","operator","BalanceStatus","pk","volume","fkRoundFrequency","fkFinancialYear","cycleNo","cycleDesc","fkProperty","accountSeq","check_digit","address1","address2","address3","address4","postcode","fkState","addressDateFrom","addressDateTo","secure_flag","porgProperties","PorgProperty","invoiceHeaders","Account","propertyNo","fk_unit_type","fk_suburb","non_rateable_flag","accounts","propServices","PropService","Property","dateConnected","dateDisconnected","primeDebtorFlag","print_invoice_flag","aquaweb_ignore_flag","pension_flag","reb_pen_date_to","pension_rate","porg","porgPropRole","PorgPropRole","fkPorgType","fullName","overseasAddressFlag","postalOverseasAddressFlag","postalAddress1","postalAddress2","postalAddress3","postalAddress4","postalPostcode","fkStatePostal","person","Person","Organisation","Porg","birthDate","pensioner_flag","austBusinessNo","description","dateIssued","dateDue","dateNextRead","amtPrevBill","amtPayments","amtBalance","amtCurrBill","amtTotal","amtHcRebate","amtTotalHc","amtAdjustments","fkInvoiceType","fkInvoiceStatus","fkBillingRun","fkInvoiceGraphType","aquaweb_show_flag","invoiceType","InvoiceType","billingRun","web_description","fkReportingEngine","fkTemplate","fkTemplateReminder","fkTemplateFinal","fkTemplateOverride","fkTemplateReminderOverride","fkTemplateFinalOverride","fkBillRunType","dateInvFinish","BillingRun","pkService","percentage","fkPropSrvStatus","service","serviceMeters","Service","fkSrvMtrStatus","meter","readings","Reading","ServiceMeter","noOfDials","Meter","fkService","readingValue","dateRead","serviceMeter","balanceStatus","paymentExtensionDueDate","hasPendingPaymentExtensionRequest","canPay","lastInvoice","payArrangement","PayArrangement","concessionApplied","CheckEbillingResponse","fkPayFrequency","dateNextDue","payFrequency","PaymentExtensionRequest","peopleInHousehold","UpdatePeopleInHouseholdRequest","Status","buildingName","flatNumberPrefix","flatNumber","flatNumberSuffix","levelNumber","numberFirst","numberLast","streetName","streetType","suburb","state","postCode","location","Location","primary","streetAddress","box_type","detailsInSeparateCall","lat","lon","duration","success","user","AnalyticsEvent","organisationId","customerId","dateOfBirth","homePhoneNumber","eBillingChecked","inviteGuid","userAdd","dateAdd","userMod","dateMod","IdentityUserRoleOfString","User","IdentityUser","userName","normalizedUserName","normalizedEmail","emailConfirmed","passwordHash","securityStamp","concurrencyStamp","phoneNumber","phoneNumberConfirmed","twoFactorEnabled","lockoutEnd","lockoutEnabled","accessFailedCount","IdentityUserOfString","PermissionCode","roleId","Entity","abn","Organisation2","monthlyUserRegistrations","MonthlyUserRegistration","GetMonthlyUserRegistrationsResponse","year","month","GetStatisticsRequest","webRequests","pageVisits","MonthlyPayment","GetPaymentCountsResponse","token","tokenExpiryDate","password","rememberMe","GenerateTokenRequest","grant_type","refresh_token","RefreshTokenRequest","userid","givenName","permission","GetUserClaimsResponse","GetUserClaimsRequest","version","userMessage","developerMessage","requestId","moreInfo","CreateUserRequest","accountNumber","invoice","agencyOrganisationId","sundryDebtorAccountNumber","NewUserDetails","portalVersion","SearchResponseOfInvoiceHeader","lastReading","pkVolumePeriodType","pkDate","manualFlag","SearchResponseOfOrganisation","transactionId","receiptNumber","cardNumber","expiryDateMonth","expiryDateYear","cardScheme","cardholderName","surchargePercentage","principalAmount","surchargeAmount","transactionDateTime","settlementDate","declinedDate","customerIpAddress","providerStatus","responseCode","responseText","responseDetail","Payment","paymentTokenInfo","PaymentTokenInfo","TakeInfoStatementPaymentRequest","maskedCardNumber","accountPk","TakeAccountPaymentRequest","cardType","PaymentInfo","SearchResponseOfPaymentInfo","addDate","userEmail","Permission","PermissionOfPermissionCode","WaterUseUom","WaterUsageFilter","displayName","isActive","isSelfRegister","showOnRegister","Role","IdentityRole","normalizedName","IdentityRoleOfString","RoleDto","maxSearchedProperties","colours","ColourSettings","AccountPageSettings","RegisterPageSettings","AccountPayments","DirectDebit","meterVolume","MeterVolume","BulkCustomer","highReadWarningThreshold","showDailyWaterUse","appInsightsInstrumentationKey","logoUrl","maxFileSize","maxFilesPerRequest","allowedFileExtensions","ChangeAddressSettings","showHome","webSiteUrl","headInjection","dateFormat","faviconUrl","googleAnalytics","GoogleAnalytics","sessionExpiryWarningThreshold","refreshTimestampCheckTimeout","primaryColour","secondaryColour","successColour","errorColour","headerColour","menuButtonColour","dailyUsageTarget","numberOfInvoices","numberOfPayments","showInvoiceDates","totalWaterUseUom","colourInvoices","showShortcuts","waterUsageFilter","waterUsageBillsFilterMax","waterUsageBillsFilterDefault","PaymentProvider","abnRequired","allowAllInSearch","processingDateRequired","showDaily","bulkCustomerThreshold","residentialTitle","postalTitle","temporaryTitle","pageTracking","clickTracking","exceptionTracking","confirmInterval","provider","bpoint","BpointSettings","quickStream","QuickStreamSettings","infoStatementAmount","externalPaymentUrl","DateOfBirthConstraint","url","username","merchantId","testMode","billerCode","publishableApiKey","secretApiKey","supplierBusinessCode","invoiceOverdueDays","paymentExtensionDays","dateOfBirthConstraint","validateInvoice","invoiceValidationThreshold","customerRoles","linkedAccountRoles","webRequestTypes","paymentExtensionArrearsLimit","invoiceHistoryYears","paymentHistoryYears","volumeHistoryYears","overduePayNowThreshold","pdfGeneratorUrl","pdfGeneratorCertificateThumbprint","directDebitPendingThreshold","invoiceTemplateId","finalTemplateId","reminderTemplateId","autoEBilling","nonFinalisedPaymentDescription","useDynamoBalance","allowBusinessCustomerChangeName","allowDirectDebitPrefill","minPayArrangementAmount","ClientEditor","requiredLength","requiredUniqueChars","requireNonAlphanumeric","requireLowercase","requireUppercase","requireDigit","authority","knownAuthority","issuer","clientId","signUpTokenAudience","signUpTokenClientSecret","signUpTokenLifetime","signInAuthority","passwordResetAuthority","apiScope","restApiCertificateThumbprint","loadFrameTimeout","postLogoutRedirectUri","info","SettingInfoEx","typeName","SelectOption","clientEditor","children","SettingInfo","UpdateDynamicSettingRequest","SettingHistory","aquaRateOrganisationName","statusName","dateRegistered","canUpdate","PatchUserRequest","PatchProfileRequest","EmailConfirmationRequest","newEmail","ChangeEmailRequest","SearchResponseOfUserInfo","fkRequestType","fkRequestStatus","fkAspNetUser","dateRequested","dateProcessed","fkPorg","user_status","rowid","tenants","WebRequestTenant","tenancy","WebRequestTenancy","paymentExtension","WebRequestPaymentExtension","WebRequestChangeName","addresses","WebRequestAddress","attachments","WebRequestAttachment","WebRequestMeterReading","WebRequestEmailInvoices","WebRequestDirectDebit","customerDetails","WebRequestCustomerDetails","WebRequestChangeEmail","WebRequestBalanceCheck","WebRequestConcession","WebRequestPaymentArrangement","WebRequest","fkWebRequest","firstName","middleName","unitNo","streetNo","phone","dateMoving","meterNumber","meterReaderName","organisation_name","fkWebRequestAddressType","fkWebRequestAttachmentType","fk_web_request","fk_web_request_fee_type","post_code","solicitor_ref","date_settling","comments","feeType","porgs","WebRequestInfoStmtPorg","titles","WebRequestInfoStmtTitle","WebRequestInfoStmt","fk_web_request_info_stmt","fk_porg_type","owner_flag","first_name","other_names","part_lot_flag","lot_no","fk_plan_type","part_plan_flag","plan_no","volume_no","folio_no","part_ca_flag","crown_allotment","part_section_flag","section","fk_parish","emailInvoicesFlag","bankName","bsbNo","accountNo","fkDebtOption","processingDate","accountTitle","accountHolder1","accountHolder2","debtOption","care_of","po_box","po_suburb","fk_state_po","po_postcode","street_address_1","suburb_1","fk_state_1","postcode_1","street_address_2","suburb_2","fk_state_2","postcode_2","phone_number","home_phone_number","old_email","new_email","email_invoices_flag","balance","fk_pension_type","pension_no","pension_start_date","fk_pay_frequency","start_date","residential","ArAddress","postal","overrides","Addresses","isOverseas","postalName","SubmitTenancyRequest","TenancyWebRequestInfo","SearchResponseOfTenancyWebRequestInfo","submit","SubmitInfoStatementRequest","InfoStatementWebRequestInfo","SearchResponseOfInfoStatementWebRequestInfo","solicitorRef","message","isSwaggerException","obj","asUtc","UTC","getFullYear","getMonth","getDate","ensureEx","ensure","PaymentStatuses","Approved","ConditionallyApproved","Failed","Indeterminate","NotSent","RolledBack","Finalised","settingsClient","loadSettings","x","aquaRateSettings","browserSettings","passwordOptions","paymentSettings","azureB2CSettings","allowedWebRequests","split","checkRefreshTimestamp","isWebRequestAllowed","indexOf","isFileAllowed","filename","pop","localTimestamp","reload","SettingsService","dateClient","moment","toDate","ServerDateProvider","authService","invoiceClient","alertService","accountClient","i18n","userClient","router","openPdf","browser","navigator","msSaveOrOpenBlob","pdfUrl","URL","createObjectURL","newWin","open","closed","error","accountSummaries","res","GuideSingleAccount","ConfirmSwitch","Guide","None","confirm","tr","usingProgress","alert","getTokenPayload","navigateToRoute","InvoiceService","canMakeAnotherPayment","failedPaymentStatuses","getStatusSummary","payment","icon","colour","savePayments","format","csv","Blob","balanceInfo","toLocaleDateString","PaymentService","analyticsClient","dateService","logger","debug","run","navigationInstruction","next","internalRun","isAuthenticatedAsync","config","origin","pathname","hash","path","getOwnPropertyNames","params","now","AnalyticsStep","settingsService","getAllInstructions","some","isRouteAllowed","cancel","RoleCheckStep","auth","All","NonAuthenticated","Authenticated","includes","instruction","settings","noScrollToTop","scrollTo","taskQueue","eventAggregator","appInsights","configure","withInterceptor","getAccessToken","set","responseError","queueTask","app","knownAuthorities","redirectUri","endsWith","navigateToLoginRequestUrl","cache","storeAuthStateInCookie","cacheLocation","system","loggerOptions","loggerCallback","level","handleRedirectPromise","errorCode","errorMessage","startsWith","loginRedirect","scopes","rootAttachedSubscription","subscribe","trackEvent","properties","getAccount","tokenPayload","toLowerCase","loginPopup","registerRedirect","redirectStartPage","extraQueryParameters","client_assertion_type","client_assertion","getAllAccounts","getTokenSilent","acquireTokenSilent","acquireTokenRedirect","isEnabled","cachedAccessToken","ignoreEmptyCache","cachedAccessTokenExpiry","isBefore","authResult","accessToken","cachedIdToken","idToken","decoded","unix","exp","publish","MsalService","ApplicationInsights","fetchConfig","templatingEngine","noRedirect","credentials","getExpirationDateFromResponse","add","differenceWithServer","addRememberMeIndicator","useNewToken","closeWarningOnLogout","global","setTimeout","monitorExpiry","newToken","setResponseObject","getRefreshToken","isRefreshTokenSet","alertModal","button2Click","getExp","warningDate","subtract","isAfter","previousExp","currentInstruction","displayExpiryWarning","showModal","iconColour","button1Text","button2Text","html","createElement","view","enhance","attached","querySelector","au","viewModel","button1Click","remove","unbind","detached","getMe","TwAuthService","colors","element","tagName","a","classList","style","verticalAlign","innerText","addEventListener","confirmToast","hint","removeChild","ToastHintCustomAttribute","minVersion","parseInt","href","aurelia","globalResources","atAuthService","container","registerInstance","use","standardConfiguration","plugin","showMaskOnHover","bridge","useAll","loginUrl","storageKey","accessTokenProp","refreshTokenUrl","refreshTokenProp","useRefreshToken","autoUpdateToken","profileUrl","expiredRedirect","logoutOnInvalidToken","storageChangedReload","instance","i18next","setup","backend","loadPath","lng","fallbackLng","interpolation","parts","usePropertyTypeForObservable","autoRegister","instrumentationKey","start","getDisplayName","substr","locale","setRoot","toView","Payed","SmallOverdue","Overdue","PaymentArrangement","ToBePayed","fromView","AccountBalanceInfoValueConverter","Active","Closed","New","WaitingForClosure","AccountBalanceInfoToDueTextValueConverter","credit","Math","abs","DebtOptionValueConverter","AppColours","bpointClient","validationControllerFactory","validationController","createForCurrentScope","required","maxLength","on","loading","authKey","frameUrl","reset","defaultBindingMode","twoWay","Bpoint","paymentClient","when","showAmount","satisfies","withMessage","amountChanged","suppressAmountChanged","suppressAmountTextChanged","amountText","amountTextChanged","surcharges","refresh","getPaymentTokenInfo","QuickStream","getToken","qst","singleUseTokenId","creditCard","parseFloat","bpointAuthKey","bpointCardholderName","validate","CreditCard","datesChanged","bindable","stringMd","DashboardCard","editFrom","editTo","editFromChanged","propertyName","editToChanged","isOpen","ok","valid","DateRange","bindingEngine","dateFromOptions","onClose","rules","isChanged","trim","addressChanged","newValue","oldValue","removeObject","isOverseasSubscribtion","dispose","addObject","propertyObserver","isOverseasChanged","resetChanges","old","changed","EditAddress","canSave","canRevert","canDelete","save","revert","EditPageButtons","porgChanged","readonlyChanged","readonly","stopPropagation","InfoStatementPorg","parishFilter","titleChanged","title","parishes","toUpperCase","InfoStatementTitle","webRequestClient","dataStorageService","tenancyFilterLines","statuses","types","savedFilterLines","filterLines","search","isActivated","requests","wr","LastTenancyRequests","booleanMd","paymentService","elementId","paymentChanged","paymentStatus","isCustomer","focusEventHandler","frame","changeStyle","fieldName","invalidFields","invalidStyle","focusedStyle","blurEventHandler","fieldStyle","errorEventHandler","QuickstreamAPI","loadStyles","createFrame","setHandlers","trackException","frameErr","teardown","css","styleJson","attributes","labelStyle","iframe","width","height","labels","cvn","reject","creditCards","createTrustedFrame","errors","trustedFrame","setEventHandler","submitForm","singleUseToken","scriptElement","isAsync","async","setAttribute","innerHTML","head","oneWay","HTMLScriptElement","ScriptInjector","emptyLabel","mdUnrenderValidateResults","results","renderer","atSelectElement","mdRenderValidateResults","selectAccount","HTMLElement","SelectAccount","addressClient","criteria","isBetween","addressLookup","tenant","tenantChanged","updateAddressLookup","prevAddressSelected","console","log","toggleAddressLookup","Tenant","selectedAccountChanged","selectedAccount","determineActivationStrategy","activate","pay","tokenData","failedPayment","tryAgain","accountPaymentsFilterLines","criticalError","fi","Is","y","showReceipt","queueMicroTask","modal","getAccountDisplayName","ai","showPendingDDWarning","invoiceService","volumes","avgVolumes","Routes","showDailyUse","isDatesUsageFilter","Dates","billsUsageFilterOptions","billsUsageFilter","totalChartOptions","legend","display","scales","xAxes","scaleLabel","labelString","yAxes","stacked","ticks","min","suggestedMax","tooltips","enabled","avgChartOptions","annotation","annotations","drawTime","scaleID","borderColor","borderWidth","backgroundColor","cornerRadius","chartDataLabels","anchor","align","color","constructor","billsUsageFilterChanged","loadVolumes","volumesDateFromChanged","suppressVolumesDateFromChanged","volumesDateToChanged","suppressVolumesDateToChanged","peopleInHouseholdChanged","canActivate","routeConfig","minVolumeDate","load","isResidentialCustomer","serverDate","isPayed","isToBePayed","isOverdue","concessionAllowed","volumesDateFrom","volumesDateTo","volumesLoading","Litres","datasets","datalabels","round","diff","refreshAvgChart","onChartTabSelected","avgChartVm","detail","refreshChart","avgChart","totalChart","clientHeight","getPdf","ih","getAccounts","getAccountName","goToAccount","diagnosticsClient","versions","AdminDashboard","range","loadDateRange","widgetName","saved","localStorage","getItem","saveDateRange","setItem","responsive","suggestedMin","palettes","green","base","red","grey","purple","indigo","blue","cyan","yellow","orange","brown","sort","b","hoverBorderColor","PageVisitsWidget","callback","floor","plugins","pink","fill","PaymentsCountWidget","PaymentsWidget","RegistrationsWidget","RunningRegistrationsWidget","WebRequestsWidget","twAuthService","validateTrigger","manual","accountNotRecognised","BalanceCheck","rawAccountNumberChanged","balanceChanged","storageChangedRedirect","go","busy","activeOnlyChanged","activated","isSelected","states","residentialVM","ChangeAddress","residentialAddressLookup","addressType","isResidential","isPoRequired","isAddress1Required","isAddress2Required","careOf","test","vmRules","residentialAddress","cd","addressTypeChanged","clearAddress1","clearPoBox","isResidentialChanged","clearAddress2","clearAddress1Lookup","substring","lastIndexOf","toggleResidentialAddressLookup","ChangeCustomerDetails","ChangeEmail","allowedExtensions","isOrganisation","userOld","isTooBig","file","filesChanged","ChangeName","consentGiven","isResident","isNameCorrect","pensionNo","pensionNoRegExp","pensionStartDate","selectedAccountResults","selectedAccountValid","pensionTypeChanged","updatePensionNoRegExp","pensionType","pensionTypes","given_name","family_name","wrc","Concession","ConfirmEmail","infoStatementsFilterLines","Conveyancer","showInvoice","isViewAccountVisible","getLastInvoice","Customer","validator","showWarning","jointAccount","bsb","displayOptions","confirmed","holder1","holder2","validateObject","canSubmit","every","isPaymentArrangement","isPaymentExtension","updateDebtOptions","debtOptionChanged","allDebtOptions","lastBankDetails","validateDebtOption","invalidText","scrollIntoView","scrollBy","dd","prefill","debtOptions","canDeactivate","saveInternal","isReverting","organisationClient","abnRaw","OrganisationExt","EditOrganisation","inputs","editor","editedInput","isSettingVMEdited","focus","isEdited","input","variantEditor","isObject","isExpanded","toggleExpanded","history","histories","historyModal","copy","select","execCommand","EditSettings","emailClient","msalService","roleClient","canResetPassword","rawPhoneNumber","rawHomePhoneNumber","loadAccounts","isLocked","isB2CEnabled","roleView","currentUserRole","canChangeStatus","internalRoles","accountsLoading","u","sendResetPassword","EditUser","EmailInvoices","Expired","Farewell","Home","propertyClient","detailsTab","titlesTab","ownersTab","purchasersTab","paymentTab","ownerVMs","purchaserVMs","titleVMs","requestRules","invokeLifecycle","unitTypes","feeTypes","porgTypes","planTypes","streetSuffixes","suburbs","isPaymentRequired","setLastPayment","isReadonly","InfoStatement","Porgs","Owner_flag","Titles","lastPayment","owners","purchasers","getProperties","suburbToString","validateDetails","requestResult","detailsNext","selectTab","titlesBack","validateTitles","emptyTitle","selectTitle","titlesNext","ownersBack","validateOwners","ownersNext","purchasersBack","validatePurchasers","purchasersNext","paymentBack","concat","showProgress","Pk","FileName","Rowid","submitted","hideProgress","tab","tabs","tabsElement","scrolledY","scrollY","scroll","unselectTitle","unselectOwner","unselectPurchaser","selectOwner","selectPurchaser","addTitle","removeTitle","addOwner","removeOwner","addPurchaser","removePurchaser","invoicesFilterLines","Invoices","LoginB2CError","LoginB2C","emailConfirmationNeeded","changeEmailParams","loggingIn","Password","RememberMe","ex","unconfirmedEmailModal","sendConfirmation","passwordKeyUp","event","capsLockOn","getModifierState","Login","meterClient","validationConrollerFactory","meters","numberMd","MeterReading","organisationsFilterLines","edit","Organisations","pageSizes","fo","pageSizeChanged","toJson","activePage","pageChanged","payFrequencies","wrpa","startDate","paymentsFilterLines","Payments","emailChanged","allowEbilling","canEditNames","EditProfileName","isNonResidential","Profile","RegisterB2C","b2cClient","isAgent","isAzureB2CEnabled","passwordConfirm","mustMatch","isInvoiceRequired","isDateOfBirthRequired","isBusinessCustomer","Register","roleChanged","isConveyancer","isAgencyManagerInviting","DuplicateUserName","getOrganisations","satisfiesRule","ResetPassword","confirmation","isTokenValid","passwordReset","Number","localeCompare","exceptionService","i18N","registerExceptions","configureRouter","addAuthorizeStep","addPipelineStep","pc","requestMenu","order","menuRoutes","route","GetAccountDetails","PayAccount","GetStatistics","ManageRoles","SearchUsers","ManageOrganisations","menu","SubmitMeterReading","SubmitEmailInvoice","SubmitDirectDebit","SubmitConcession","SubmitPaymentArrangement","SubmitTenancy","SubmitInformationStatement","SearchInvoices","SearchPayments","navigationStrategy","logoutNavStrategy","nav","tooltip","routes","SearchAccountPayments","EditUsers","InviteUsers","mapUnknownRoutes","authenticationChange","refreshRoutes","lastLoginDate","navBar","highlightMenuButton","assertResponse","disableFetchTracking","loadAppInsights","addTelemetryInitializer","baseType","dataType","baseData","fc","attach","logging","getUrl","payload","favicon","json","throw","redirect","authenticated","setAuthenticatedUserContext","clearAuthenticatedUserContext","navModels","navigation","configEx","Root","tenantVMs","Tenancy","Tenants","isNewTenancy","deactivate","addTenant","unselectTenant","removeTenant","selectTenant","NewTenancy","getRoles","usersFilterLines","Users","volumePeriodTypeCode","units","convertVolume","showTarget","getFrom","labelFormat","people","daysInMonth","chartOptions","meterChanged","scheduleShow","fromChanged","toChanged","typeChanged","timeout","show","chart","VolumesPeriod"],"mappings":"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","file":"app.daaa8f92e14b1c705c19.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \".\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([95,19,32,55,48,39,50,2,5,37,14,52,54,63,10,35,45,56,36,1,3,4,6,7,8,9,12,11,13,16,15,18,17,20,22,21,23,24,25,26,27,29,30,31,28,33,34,38,40,41,43,44,42,46,47,49,51,53,57,58,59,60,61,62,64]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var map = {\n\t\"./en-au\": 108\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 = 107;","var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./root.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".picker{position:fixed!important}.collection .collection-item{transition:background-color .25s ease}md-collection-item.collection-item:not(.active):hover{background-color:#f2f2f2}@media(min-width:601px){.row .col.m0{width:auto!important}}.selectable{border-bottom:1px solid #d3d3d3;padding-bottom:10px;margin-bottom:50px}.selectable.selected{outline:10px solid #f0f8ff;background:#f0f8ff}footer{background:#fff!important}body{overflow-y:visible!important}div.input-field.md-select{display:inline-block;width:100%}.sidenav{height:100%!important;padding-bottom:0!important}html,html body{height:100%}html body div[aurelia-app]{display:flex!important;flex-direction:column!important;height:100%;min-height:100vh!important}html body div[aurelia-app] main{flex:1 0 auto!important}html body div[aurelia-app] footer.page-footer{padding-top:0}[type=radio]:checked+span,[type=radio]:not(:checked)+span{padding-left:25px;padding-right:15px}.input-field md-checkbox{display:block;height:47px;margin-top:20px}.datepicker-controls .select-wrapper.select-month input{width:120px!important}.datepicker-controls .select-wrapper.select-year input{width:80px!important}.datepicker-controls .select-wrapper .caret{display:block!important}\", \"\"]);\n","var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./select-account.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"nav select-account div[md-dropdown]{border-bottom:1px solid #fff;margin-bottom:5px;padding:0}.at-select-option span.account-status{display:none}.at-select-option.closed>div.primary-text,.at-select-option.closed>div.secondary-text{color:grey!important}.at-select-option.closed span.account-status.closed{display:inline;color:grey}.at-select-option.waiting-closure span.account-status.waiting-closure{display:inline;color:red}select-account at-select div.input-field div.select-wrapper div[md-dropdown]{height:auto!important}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".label {\\r\\n\\tcolor: #9e9e9e;\\r\\n\\tfont-family: Roboto, sans-serif;\\r\\n\\tfont-size: 12px;\\r\\n}\\r\\n\\r\\n.field {\\r\\n\\tcolor: rgba(0, 0, 0, 0.87);\\r\\n\\ttransition: all 0.3s;\\r\\n\\ttop: auto;\\r\\n\\ttransform: translateY(-4px);\\r\\n\\tborder: none;\\r\\n\\tborder-bottom: 1px solid #9e9e9e;\\r\\n\\tbox-shadow: none;\\r\\n\\theight: 2.2rem;\\r\\n\\tfont-family: Roboto, sans-serif;\\r\\n\\tfont-size: 15px;\\r\\n\\tpadding: 0;\\r\\n\\twidth: 100%;\\r\\n\\tborder-radius: 0;\\r\\n}\\r\\n\\r\\n.focused {\\r\\n\\tborder: none;\\r\\n\\tborder-bottom: 1px solid secondaryColour;\\r\\n\\tbox-shadow: 0 1px 0 0 secondaryColour;\\r\\n}\\r\\n\\r\\n.invalid {\\r\\n\\tborder: none;\\r\\n\\tborder-bottom: 1px solid errorColour;\\r\\n\\tbox-shadow: 0 1px 0 0 errorColour;\\r\\n}\\r\\n\\r\\n.payway-card {\\r\\n\\tborder: none;\\r\\n\\tbackground: none;\\r\\n\\twidth: 240px !important;\\r\\n\\theight: 220px !important;\\r\\n\\tmargin: 0;\\r\\n}\\r\\n\\r\\ninput {\\r\\n\\tcolor: rgba(0, 0, 0, 0.87) !important;\\r\\n\\ttransition: all 0.3s;\\r\\n\\ttop: auto !important;\\r\\n\\ttransform: translateY(-4px) !important;\\r\\n\\tborder: none !important;\\r\\n\\tborder-bottom: 1px solid #9e9e9e !important;\\r\\n\\theight: 2.2rem !important;\\r\\n\\tfont-family: Roboto, sans-serif !important;\\r\\n\\tfont-size: 15px !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin-bottom: 20px !important;\\r\\n\\twidth: 100% !important;\\r\\n}\\r\\n\\r\\n\\tinput:focus {\\r\\n\\t\\tborder: none !important;\\r\\n\\t\\tborder-bottom: 1px solid secondaryColour !important;\\r\\n\\t\\tbox-shadow: 0 1px 0 0 secondaryColour !important;\\r\\n\\t}\\r\\n\\r\\n\\tinput.payway-complete {\\r\\n\\t\\tborder: none !important;\\r\\n\\t\\tborder-bottom: 1px solid #26a69a !important;\\r\\n\\t\\tbox-shadow: 0 1px 0 0 #26a69a !important;\\r\\n\\t}\\r\\n\\r\\n\\tinput.payway-error {\\r\\n\\t\\tborder: none !important;\\r\\n\\t\\tborder-bottom: 1px solid errorColour !important;\\r\\n\\t\\tbox-shadow: 0 1px 0 0 errorColour !important;\\r\\n\\t}\\r\\n\\r\\nselect {\\r\\n\\tcolor: rgba(0,0,0,0.87) !important;\\r\\n\\ttransition: all 0.3s;\\r\\n\\ttransform: translateY(-4px) !important;\\r\\n\\tborder: none !important;\\r\\n\\tborder-bottom: 1px solid #9e9e9e !important;\\r\\n\\theight: 2.2rem !important;\\r\\n\\tfont-family: Roboto, sans-serif !important;\\r\\n\\tfont-size: 15px !important;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n\\tselect:focus {\\r\\n\\t\\tborder: none !important;\\r\\n\\t\\tborder-bottom: 1px solid secondaryColour !important;\\r\\n\\t\\tbox-shadow: 0 1px 0 0 secondaryColour !important;\\r\\n\\t}\\r\\n\\r\\nfieldset.payway-complete select {\\r\\n\\tborder: none !important;\\r\\n\\tborder-bottom: 1px solid #26a69a !important;\\r\\n\\tbox-shadow: 0 1px 0 0 #26a69a !important;\\r\\n}\\r\\n\\r\\nfieldset.payway-error select {\\r\\n\\tborder: none !important;\\r\\n\\tborder-bottom: 1px solid errorColour !important;\\r\\n\\tbox-shadow: 0 1px 0 0 errorColour !important;\\r\\n}\\r\\n\\r\\nlegend {\\r\\n\\tcolor: #9e9e9e !important;\\r\\n\\tfont-family: Roboto, sans-serif !important;\\r\\n\\tfont-size: 12px !important;\\r\\n}\\r\\n\\r\\nlabel.payway-name {\\r\\n\\ttop: 0 !important;\\r\\n\\tleft: 0 !important;\\r\\n\\twidth: 100% !important;\\r\\n}\\r\\n\\r\\nlabel.payway-number {\\r\\n\\tleft: 0 !important;\\r\\n\\ttop: 80px !important;\\r\\n\\twidth: 100% !important;\\r\\n}\\r\\n\\r\\n.payway-expiration {\\r\\n\\ttop: 160px !important;\\r\\n\\tleft: 0 !important;\\r\\n}\\r\\n\\r\\nlabel.payway-creditcard-expirationseparator {\\r\\n\\tleft: 65px !important;\\r\\n\\ttop: 183px !important;\\r\\n}\\r\\n\\r\\nlabel.payway-csc {\\r\\n\\ttext-align: left !important;\\r\\n\\ttop: 160px !important;\\r\\n\\tleft: 150px !important;\\r\\n}\\r\\n\\r\\n\\tlabel.payway-csc input {\\r\\n\\t\\tleft: 0;\\r\\n\\t}\\r\\n\\r\\ndiv.payway-type-read-only {\\r\\n\\tbottom: auto !important;\\r\\n\\tz-index: 2 !important;\\r\\n\\tright: 0px !important;\\r\\n\\tborder: none !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tbackground: none !important;\\r\\n\\tfont-family: Roboto, sans-serif !important;\\r\\n\\tfont-size: 15px !important;\\r\\n}\\r\\n\\r\\ndiv.payway-card.payway-card-type-error .payway-type-read-only {\\r\\n\\tbottom: 80px !important;\\r\\n\\tcolor: errorColour !important;\\r\\n}\\r\\n\\r\\ndiv.payway-card.payway-visa .payway-type-read-only {\\r\\n\\ttop: 103px !important;\\r\\n\\tcolor: #1261cd !important;\\r\\n}\\r\\n\\r\\ndiv.payway-card.payway-mastercard .payway-type-read-only {\\r\\n\\ttop: 103px !important;\\r\\n\\tcolor: #f67214 !important;\\r\\n}\\r\\n\\r\\ndiv.payway-creditcard-testfacility {\\r\\n\\tleft: auto !important;\\r\\n\\tright: 0px !important;\\r\\n\\tz-index: 2 !important;\\r\\n}\\r\\n\", \"\"]);\n","var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./last-tenancy-requests.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"last-tenancy-requests>div{margin-bottom:40px}last-tenancy-requests>div>h5{display:inline-block}\", \"\"]);\n","// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md\r\n(function (arr) {\r\n\tarr.forEach(function (item) {\r\n\t\tif (item.hasOwnProperty(\"append\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tObject.defineProperty(item, \"append\", {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tvalue: function append() {\r\n\t\t\t\tvar argArr = Array.prototype.slice.call(arguments),\r\n\t\t\t\t\tdocFrag = document.createDocumentFragment();\r\n\r\n\t\t\t\targArr.forEach(function (argItem) {\r\n\t\t\t\t\tvar isNode = argItem instanceof Node;\r\n\t\t\t\t\tdocFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.appendChild(docFrag);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\r\n","export class Route {\r\n\tstatic login: string = \"login\";\r\n\tstatic loginB2C: string = \"login-b2c\";\r\n\tstatic logout: string = \"logout\";\r\n\tstatic register: string = \"register\";\r\n\tstatic home: string = \"home\";\r\n\tstatic customer: string = \"customer\";\r\n\tstatic bulkCustomer: string = \"bulk-customer\";\r\n\tstatic agent: string = \"agent\";\r\n\tstatic agencyManager: string = \"agency-manager\";\r\n\tstatic conveyancer: string = \"conveyancer\";\r\n\tstatic users: string = \"users\";\r\n\tstatic profile: string = \"profile\";\r\n\tstatic forbidden: string = \"forbidden\";\r\n\tstatic notfound: string = \"notfound\";\r\n\tstatic confirmEmail: string = \"confirm-email\";\r\n\tstatic changeEmail: string = \"change-email\";\r\n\tstatic resetPassword: string = \"reset-password\";\r\n\tstatic account: string = \"account\";\r\n\tstatic editUser: string = \"edit-user\";\r\n\tstatic expired: string = \"expired\";\r\n\tstatic farewell: string = \"farewell\";\r\n\tstatic changeAddress: string = \"change-address\";\r\n\tstatic changeName: string = \"change-name\";\r\n\tstatic meterReading: string = \"meter-reading\";\r\n\tstatic inviteUser: string = \"invite-user\";\r\n\tstatic organisations: string = \"organisations\";\r\n\tstatic editOrganisation: string = \"edit-organisation\";\r\n\tstatic newTenant: string = \"new-tenant\";\r\n\tstatic vacatingTenant: string = \"vacating-tenant\";\r\n\tstatic infoStatement: string = \"info-statement\";\r\n\tstatic payments: string = \"payments\";\r\n\tstatic accountPayment: string = \"account-payment\";\r\n\tstatic accountPayments: string = \"account-payments\";\r\n\tstatic emailInvoices: string = \"email-invoices\";\r\n\tstatic directDebit: string = \"direct-debit\";\r\n\tstatic role: string = \"role\";\r\n\tstatic roles: string = \"roles\";\r\n\tstatic editSettings: string = \"edit-settings\";\r\n\tstatic adminDashboard: string = \"admin-dashboard\";\r\n\tstatic volumesPeriod: string = \"volumes-period\";\r\n\tstatic invoices: string = \"invoices\";\r\n\tstatic loginB2CError: string = \"login-b2c-error\";\r\n\tstatic registerB2C: string = \"register-b2c\";\r\n\tstatic balanceCheck: string = \"balance-check\";\r\n\tstatic changeCustomerDetails: string = \"change-customer-details\";\r\n\tstatic concession: string = \"concession\";\r\n\tstatic paymentArrangement: string = \"payment-arrangement\";\r\n}\r\n","export enum AccountStatus {\r\n\tActive = \"A\",\r\n\tClosed = \"C\",\r\n\tNew = \"N\",\r\n\tWaitingForClosure = \"W\"\r\n}\r\n","export class Roles {\r\n\tstatic admin: string = \"Admin\";\r\n\tstatic supervisor: string = \"Supervisor\";\r\n\tstatic staff: string = \"Staff\";\r\n\tstatic agent: string = \"Agent\";\r\n\tstatic agencyManager: string = \"Agency Manager\";\r\n\tstatic residentialCustomer: string = \"Residential Customer\";\r\n\tstatic businessCustomer: string = \"Business Customer\";\r\n\tstatic conveyancer: string = \"Conveyancer\";\r\n\tstatic customers: string[] = [Roles.residentialCustomer, Roles.businessCustomer];\r\n\tstatic all: string[] = [Roles.residentialCustomer, Roles.businessCustomer, Roles.agent, Roles.admin, Roles.conveyancer, Roles.agencyManager];\r\n}","export class Events {\r\n\tstatic accountLinked: string = \"accountLinked\";\r\n\tstatic profileChanged: string = \"profileChanged\";\r\n}","export class Strings {\r\n\tstatic webRequestSuccess = \"Your request has been registered. Please allow 3 business days for it to be processed. You will receive an email once it's complete.\";\r\n\tstatic errorWhileLoadingPage = \"Error occurred while loading the page\";\r\n\tstatic errorWhileSubmittingRequest = \"Error occurred while submitting the request\";\r\n}","export class InvoiceTypes {\r\n\tstatic final: string = \"F\";\r\n\tstatic reminder: string = \"R\";\r\n}","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.0.6.0 (NJsonSchema v10.0.23.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { inject } from 'aurelia-framework';\nimport { HttpClient, RequestInit } from 'aurelia-fetch-client';\n\n@inject(String, HttpClient)\nexport class AccountClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n index(): Promise {\n let url_ = this.baseUrl + \"/Account/Index\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIndex(_response);\n });\n }\n\n protected processIndex(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(AccountInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n userAccounts(id: string): Promise {\n let url_ = this.baseUrl + \"/Account/UserAccounts/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUserAccounts(_response);\n });\n }\n\n protected processUserAccounts(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(AccountInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getLastPayments(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/Account/GetLastPayments?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLastPayments(_response);\n });\n }\n\n protected processGetLastPayments(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(AccountPayment.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPayments(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/Account/GetPayments\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPayments(_response);\n });\n }\n\n protected processGetPayments(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfAccountPayment.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getVolumes(pkAccount: number, dateFrom: Date | null | undefined, dateTo: Date | null | undefined, bills: number | null | undefined): Promise {\n let url_ = this.baseUrl + \"/Account/GetVolumes?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n if (dateFrom !== undefined)\n url_ += \"dateFrom=\" + encodeURIComponent(dateFrom ? \"\" + dateFrom.toJSON() : \"\") + \"&\"; \n if (dateTo !== undefined)\n url_ += \"dateTo=\" + encodeURIComponent(dateTo ? \"\" + dateTo.toJSON() : \"\") + \"&\"; \n if (bills !== undefined)\n url_ += \"bills=\" + encodeURIComponent(\"\" + bills) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetVolumes(_response);\n });\n }\n\n protected processGetVolumes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(ActVolCycle.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getBalance(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/Account/GetBalance?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetBalance(_response);\n });\n }\n\n protected processGetBalance(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? AccountBalanceInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getBalanceAnonymous(account: string | null): Promise {\n let url_ = this.baseUrl + \"/Account/GetBalanceAnonymous?\";\n if (account === undefined)\n throw new Error(\"The parameter 'account' must be defined.\");\n else\n url_ += \"account=\" + encodeURIComponent(\"\" + account) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetBalanceAnonymous(_response);\n });\n }\n\n protected processGetBalanceAnonymous(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n requestPaymentExtension(request: PaymentExtensionRequest | null): Promise {\n let url_ = this.baseUrl + \"/Account/RequestPaymentExtension\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processRequestPaymentExtension(_response);\n });\n }\n\n protected processRequestPaymentExtension(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAccountsCount(): Promise {\n let url_ = this.baseUrl + \"/Account/GetAccountsCount\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAccountsCount(_response);\n });\n }\n\n protected processGetAccountsCount(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAccountSummaries(activeOnly: boolean, light: boolean): Promise {\n let url_ = this.baseUrl + \"/Account/GetAccountSummaries?\";\n if (activeOnly === undefined || activeOnly === null)\n throw new Error(\"The parameter 'activeOnly' must be defined and cannot be null.\");\n else\n url_ += \"activeOnly=\" + encodeURIComponent(\"\" + activeOnly) + \"&\"; \n if (light === undefined || light === null)\n throw new Error(\"The parameter 'light' must be defined and cannot be null.\");\n else\n url_ += \"light=\" + encodeURIComponent(\"\" + light) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAccountSummaries(_response);\n });\n }\n\n protected processGetAccountSummaries(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(AccountBalanceInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPeopleInHousehold(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/Account/GetPeopleInHousehold?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPeopleInHousehold(_response);\n });\n }\n\n protected processGetPeopleInHousehold(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n updatePeopleInHousehold(request: UpdatePeopleInHouseholdRequest | null): Promise {\n let url_ = this.baseUrl + \"/Account/UpdatePeopleInHousehold\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUpdatePeopleInHousehold(_response);\n });\n }\n\n protected processUpdatePeopleInHousehold(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n checkEBilling(): Promise {\n let url_ = this.baseUrl + \"/Account/CheckEBilling\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCheckEBilling(_response);\n });\n }\n\n protected processCheckEBilling(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class AddressClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n autocomplete(address: string | null): Promise {\n let url_ = this.baseUrl + \"/Address/Autocomplete?\";\n if (address === undefined)\n throw new Error(\"The parameter 'address' must be defined.\");\n else\n url_ += \"address=\" + encodeURIComponent(\"\" + address) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processAutocomplete(_response);\n });\n }\n\n protected processAutocomplete(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Address.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n metadata(id: string): Promise
{\n let url_ = this.baseUrl + \"/Address/Metadata/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processMetadata(_response);\n });\n }\n\n protected processMetadata(response: Response): Promise
{\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Address.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve
(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class AnalyticsClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n track(e: AnalyticsEvent | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/Track\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(e);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processTrack(_response);\n });\n }\n\n protected processTrack(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getMonthlyUserRegistrations(request: GetStatisticsRequest | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/GetMonthlyUserRegistrations\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetMonthlyUserRegistrations(_response);\n });\n }\n\n protected processGetMonthlyUserRegistrations(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetMonthlyUserRegistrationsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getRunningUserRegistrations(request: GetStatisticsRequest | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/GetRunningUserRegistrations\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetRunningUserRegistrations(_response);\n });\n }\n\n protected processGetRunningUserRegistrations(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetMonthlyUserRegistrationsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getWebRequestCounts(request: GetStatisticsRequest | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/GetWebRequestCounts\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetWebRequestCounts(_response);\n });\n }\n\n protected processGetWebRequestCounts(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetWebRequestCountsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPageVisitCounts(request: GetStatisticsRequest | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/GetPageVisitCounts\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPageVisitCounts(_response);\n });\n }\n\n protected processGetPageVisitCounts(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetPageVisitCountsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPaymentCounts(request: GetStatisticsRequest | null): Promise {\n let url_ = this.baseUrl + \"/Analytics/GetPaymentCounts\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPaymentCounts(_response);\n });\n }\n\n protected processGetPaymentCounts(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetPaymentCountsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class AuthClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n generateToken(request: GenerateTokenRequest | null): Promise {\n let url_ = this.baseUrl + \"/Auth/GenerateToken\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGenerateToken(_response);\n });\n }\n\n protected processGenerateToken(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GenerateTokenResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n refreshToken(request: RefreshTokenRequest | null): Promise {\n let url_ = this.baseUrl + \"/Auth/RefreshToken\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processRefreshToken(_response);\n });\n }\n\n protected processRefreshToken(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GenerateTokenResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class B2CClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getUserClaims(request: GetUserClaimsRequest | null): Promise {\n let url_ = this.baseUrl + \"/B2C/GetUserClaims\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetUserClaims(_response);\n });\n }\n\n protected processGetUserClaims(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetUserClaimsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n createUser(request: CreateUserRequest | null): Promise {\n let url_ = this.baseUrl + \"/B2C/CreateUser\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCreateUser(_response);\n });\n }\n\n protected processCreateUser(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? B2CRestApiResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getRegistrationToken(userDetails: NewUserDetails | null): Promise {\n let url_ = this.baseUrl + \"/B2C/GetRegistrationToken\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(userDetails);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetRegistrationToken(_response);\n });\n }\n\n protected processGetRegistrationToken(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class BpointClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getAuthKey(): Promise {\n let url_ = this.baseUrl + \"/Bpoint/GetAuthKey\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAuthKey(_response);\n });\n }\n\n protected processGetAuthKey(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class DateClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getServerDate(): Promise {\n let url_ = this.baseUrl + \"/Date/GetServerDate\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetServerDate(_response);\n });\n }\n\n protected processGetServerDate(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetServerDateResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class DiagnosticsClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n timestamp(): Promise {\n let url_ = this.baseUrl + \"/Diagnostics/Timestamp\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processTimestamp(_response);\n });\n }\n\n protected processTimestamp(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? new Date(resultData200.toString()) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n timestampAnonymous(): Promise {\n let url_ = this.baseUrl + \"/Diagnostics/TimestampAnonymous\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processTimestampAnonymous(_response);\n });\n }\n\n protected processTimestampAnonymous(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? new Date(resultData200.toString()) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n webRequestApiTimestampAnonymous(): Promise {\n let url_ = this.baseUrl + \"/Diagnostics/WebRequestApiTimestampAnonymous\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processWebRequestApiTimestampAnonymous(_response);\n });\n }\n\n protected processWebRequestApiTimestampAnonymous(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? new Date(resultData200.toString()) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n pdfGeneratorTimestampAnonymous(): Promise {\n let url_ = this.baseUrl + \"/Diagnostics/PdfGeneratorTimestampAnonymous\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPdfGeneratorTimestampAnonymous(_response);\n });\n }\n\n protected processPdfGeneratorTimestampAnonymous(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? new Date(resultData200.toString()) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getVersions(): Promise {\n let url_ = this.baseUrl + \"/Diagnostics/GetVersions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetVersions(_response);\n });\n }\n\n protected processGetVersions(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetVersionsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class EmailClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n sendConfirmationEmail(email: string | null): Promise {\n let url_ = this.baseUrl + \"/Email/SendConfirmationEmail?\";\n if (email === undefined)\n throw new Error(\"The parameter 'email' must be defined.\");\n else\n url_ += \"email=\" + encodeURIComponent(\"\" + email) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendConfirmationEmail(_response);\n });\n }\n\n protected processSendConfirmationEmail(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n sendResetPasswordEmail(email: string | null): Promise {\n let url_ = this.baseUrl + \"/Email/SendResetPasswordEmail?\";\n if (email === undefined)\n throw new Error(\"The parameter 'email' must be defined.\");\n else\n url_ += \"email=\" + encodeURIComponent(\"\" + email) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendResetPasswordEmail(_response);\n });\n }\n\n protected processSendResetPasswordEmail(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class InvoiceClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getLast(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/Invoice/GetLast?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLast(_response);\n });\n }\n\n protected processGetLast(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(InvoiceHeader.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getInvoices(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/Invoice/GetInvoices\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetInvoices(_response);\n });\n }\n\n protected processGetInvoices(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfInvoiceHeader.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n pdf(id: number): Promise {\n let url_ = this.baseUrl + \"/Invoice/Pdf/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPdf(_response);\n });\n }\n\n protected processPdf(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200 || status === 206) {\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\n const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n pdfStream(id: number): Promise {\n let url_ = this.baseUrl + \"/Invoice/PdfStream/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPdfStream(_response);\n });\n }\n\n protected processPdfStream(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200 || status === 206) {\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\n const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class LocaleClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n en(): Promise {\n let url_ = this.baseUrl + \"/Locale/En\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processEn(_response);\n });\n }\n\n protected processEn(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class MeterClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getConnected(): Promise {\n let url_ = this.baseUrl + \"/Meter/GetConnected\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetConnected(_response);\n });\n }\n\n protected processGetConnected(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(MeterInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n saveMeterReading(fkAccount: number | undefined, fkMeter: number | undefined, serialNo: string | null | undefined, reading: number | undefined, files: FileParameter[] | null | undefined): Promise {\n let url_ = this.baseUrl + \"/Meter/SaveMeterReading?\";\n if (fkAccount === null)\n throw new Error(\"The parameter 'fkAccount' cannot be null.\");\n else if (fkAccount !== undefined)\n url_ += \"FkAccount=\" + encodeURIComponent(\"\" + fkAccount) + \"&\"; \n if (fkMeter === null)\n throw new Error(\"The parameter 'fkMeter' cannot be null.\");\n else if (fkMeter !== undefined)\n url_ += \"FkMeter=\" + encodeURIComponent(\"\" + fkMeter) + \"&\"; \n if (serialNo !== undefined)\n url_ += \"SerialNo=\" + encodeURIComponent(\"\" + serialNo) + \"&\"; \n if (reading === null)\n throw new Error(\"The parameter 'reading' cannot be null.\");\n else if (reading !== undefined)\n url_ += \"Reading=\" + encodeURIComponent(\"\" + reading) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (files !== null && files !== undefined)\n files.forEach(item_ => content_.append(\"Files\", item_.data, item_.fileName ? item_.fileName : \"Files\") );\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSaveMeterReading(_response);\n });\n }\n\n protected processSaveMeterReading(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPeriodVolumes(pkMeter: number, from: Date, to: Date, type: string | null): Promise {\n let url_ = this.baseUrl + \"/Meter/GetPeriodVolumes?\";\n if (pkMeter === undefined || pkMeter === null)\n throw new Error(\"The parameter 'pkMeter' must be defined and cannot be null.\");\n else\n url_ += \"pkMeter=\" + encodeURIComponent(\"\" + pkMeter) + \"&\"; \n if (from === undefined || from === null)\n throw new Error(\"The parameter 'from' must be defined and cannot be null.\");\n else\n url_ += \"from=\" + encodeURIComponent(from ? \"\" + from.toJSON() : \"\") + \"&\"; \n if (to === undefined || to === null)\n throw new Error(\"The parameter 'to' must be defined and cannot be null.\");\n else\n url_ += \"to=\" + encodeURIComponent(to ? \"\" + to.toJSON() : \"\") + \"&\"; \n if (type === undefined)\n throw new Error(\"The parameter 'type' must be defined.\");\n else\n url_ += \"type=\" + encodeURIComponent(\"\" + type) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPeriodVolumes(_response);\n });\n }\n\n protected processGetPeriodVolumes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(VolumePeriod.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getVolumePeriodTypes(): Promise {\n let url_ = this.baseUrl + \"/Meter/GetVolumePeriodTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetVolumePeriodTypes(_response);\n });\n }\n\n protected processGetVolumePeriodTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(VolumePeriodType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class OrganisationClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n index(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/Organisation/Index\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIndex(_response);\n });\n }\n\n protected processIndex(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfOrganisation.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getMy(): Promise {\n let url_ = this.baseUrl + \"/Organisation/GetMy\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetMy(_response);\n });\n }\n\n protected processGetMy(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Organisation2.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n get(id: number): Promise {\n let url_ = this.baseUrl + \"/Organisation/Get/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGet(_response);\n });\n }\n\n protected processGet(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Organisation2.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n post(organisation: Organisation2 | null): Promise {\n let url_ = this.baseUrl + \"/Organisation/Post\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(organisation);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPost(_response);\n });\n }\n\n protected processPost(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Organisation2.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class PaymentClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n get(id: string): Promise {\n let url_ = this.baseUrl + \"/Payment/Get/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGet(_response);\n });\n }\n\n protected processGet(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Payment.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n doIndeterminateInfoStatementPaymentsExist(webRequestGuid: string): Promise {\n let url_ = this.baseUrl + \"/Payment/DoIndeterminateInfoStatementPaymentsExist?\";\n if (webRequestGuid === undefined || webRequestGuid === null)\n throw new Error(\"The parameter 'webRequestGuid' must be defined and cannot be null.\");\n else\n url_ += \"webRequestGuid=\" + encodeURIComponent(\"\" + webRequestGuid) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processDoIndeterminateInfoStatementPaymentsExist(_response);\n });\n }\n\n protected processDoIndeterminateInfoStatementPaymentsExist(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n takeInfoStatementPayment(request: TakeInfoStatementPaymentRequest | null): Promise {\n let url_ = this.baseUrl + \"/Payment/TakeInfoStatementPayment\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processTakeInfoStatementPayment(_response);\n });\n }\n\n protected processTakeInfoStatementPayment(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Payment.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n takeAccountPayment(request: TakeAccountPaymentRequest | null): Promise {\n let url_ = this.baseUrl + \"/Payment/TakeAccountPayment\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processTakeAccountPayment(_response);\n });\n }\n\n protected processTakeAccountPayment(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Payment.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n sendReceipt(id: string): Promise {\n let url_ = this.baseUrl + \"/Payment/SendReceipt/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendReceipt(_response);\n });\n }\n\n protected processSendReceipt(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getLastInfoStatementPayment(webRequestGuid: string): Promise {\n let url_ = this.baseUrl + \"/Payment/GetLastInfoStatementPayment?\";\n if (webRequestGuid === undefined || webRequestGuid === null)\n throw new Error(\"The parameter 'webRequestGuid' must be defined and cannot be null.\");\n else\n url_ += \"webRequestGuid=\" + encodeURIComponent(\"\" + webRequestGuid) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLastInfoStatementPayment(_response);\n });\n }\n\n protected processGetLastInfoStatementPayment(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Payment.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getSurcharges(): Promise {\n let url_ = this.baseUrl + \"/Payment/GetSurcharges\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetSurcharges(_response);\n });\n }\n\n protected processGetSurcharges(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Surcharge.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPayments(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/Payment/GetPayments\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPayments(_response);\n });\n }\n\n protected processGetPayments(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfPaymentInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class PropertyClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n find(filter: string | null): Promise {\n let url_ = this.baseUrl + \"/Property/Find?\";\n if (filter === undefined)\n throw new Error(\"The parameter 'filter' must be defined.\");\n else\n url_ += \"filter=\" + encodeURIComponent(\"\" + filter) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processFind(_response);\n });\n }\n\n protected processFind(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PropertyInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPropertyInfo(id: number): Promise {\n let url_ = this.baseUrl + \"/Property/GetPropertyInfo/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPropertyInfo(_response);\n });\n }\n\n protected processGetPropertyInfo(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? PropertyInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getUnitTypes(): Promise {\n let url_ = this.baseUrl + \"/Property/GetUnitTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetUnitTypes(_response);\n });\n }\n\n protected processGetUnitTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(UnitType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getStreetSuffixes(): Promise {\n let url_ = this.baseUrl + \"/Property/GetStreetSuffixes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetStreetSuffixes(_response);\n });\n }\n\n protected processGetStreetSuffixes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(StreetSuffix.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getSuburbs(): Promise {\n let url_ = this.baseUrl + \"/Property/GetSuburbs\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetSuburbs(_response);\n });\n }\n\n protected processGetSuburbs(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Suburb.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class RoleClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n permissions(): Promise {\n let url_ = this.baseUrl + \"/Role/Permissions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPermissions(_response);\n });\n }\n\n protected processPermissions(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Permission.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n index(): Promise {\n let url_ = this.baseUrl + \"/Role/Index\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIndex(_response);\n });\n }\n\n protected processIndex(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Role.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n get(id: string): Promise {\n let url_ = this.baseUrl + \"/Role/Get/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGet(_response);\n });\n }\n\n protected processGet(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? RoleDto.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n post(role: RoleDto | null): Promise {\n let url_ = this.baseUrl + \"/Role/Post\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(role);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPost(_response);\n });\n }\n\n protected processPost(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getInternal(): Promise {\n let url_ = this.baseUrl + \"/Role/GetInternal\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetInternal(_response);\n });\n }\n\n protected processGetInternal(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Role.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class SettingsClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getBrowserSettings(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetBrowserSettings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetBrowserSettings(_response);\n });\n }\n\n protected processGetBrowserSettings(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? BrowserSettings.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPaymentSettings(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetPaymentSettings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPaymentSettings(_response);\n });\n }\n\n protected processGetPaymentSettings(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? PaymentSettings.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAquaRateSettings(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetAquaRateSettings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAquaRateSettings(_response);\n });\n }\n\n protected processGetAquaRateSettings(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? AquaRateSettings.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPasswordOptions(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetPasswordOptions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPasswordOptions(_response);\n });\n }\n\n protected processGetPasswordOptions(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? PasswordSettings.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAzureB2CSettings(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetAzureB2CSettings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAzureB2CSettings(_response);\n });\n }\n\n protected processGetAzureB2CSettings(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? AzureB2CSettings.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getDynamicSettings(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetDynamicSettings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetDynamicSettings(_response);\n });\n }\n\n protected processGetDynamicSettings(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetDynamicSettingsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n updateDynamicSetting(request: UpdateDynamicSettingRequest | null): Promise {\n let url_ = this.baseUrl + \"/Settings/UpdateDynamicSetting\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUpdateDynamicSetting(_response);\n });\n }\n\n protected processUpdateDynamicSetting(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getHistory(key: string | null): Promise {\n let url_ = this.baseUrl + \"/Settings/GetHistory?\";\n if (key === undefined)\n throw new Error(\"The parameter 'key' must be defined.\");\n else\n url_ += \"key=\" + encodeURIComponent(\"\" + key) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetHistory(_response);\n });\n }\n\n protected processGetHistory(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(SettingHistory.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getRefreshTimestamp(): Promise {\n let url_ = this.baseUrl + \"/Settings/GetRefreshTimestamp\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetRefreshTimestamp(_response);\n });\n }\n\n protected processGetRefreshTimestamp(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class UserClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getSelf(): Promise {\n let url_ = this.baseUrl + \"/User/GetSelf\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetSelf(_response);\n });\n }\n\n protected processGetSelf(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? UserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n get(id: string): Promise {\n let url_ = this.baseUrl + \"/User/Get/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGet(_response);\n });\n }\n\n protected processGet(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? UserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n register(userDetails: NewUserDetails | null): Promise {\n let url_ = this.baseUrl + \"/User/Register\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(userDetails);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processRegister(_response);\n });\n }\n\n protected processRegister(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? UserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n invite(userDetails: NewUserDetails | null): Promise {\n let url_ = this.baseUrl + \"/User/Invite\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(userDetails);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processInvite(_response);\n });\n }\n\n protected processInvite(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n patch(request: PatchUserRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/Patch\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPatch(_response);\n });\n }\n\n protected processPatch(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? UserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n patchProfile(request: PatchProfileRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/PatchProfile\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processPatchProfile(_response);\n });\n }\n\n protected processPatchProfile(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? UserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getRegisterRoles(): Promise {\n let url_ = this.baseUrl + \"/User/GetRegisterRoles\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetRegisterRoles(_response);\n });\n }\n\n protected processGetRegisterRoles(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Role.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAllRoles(): Promise {\n let url_ = this.baseUrl + \"/User/GetAllRoles\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAllRoles(_response);\n });\n }\n\n protected processGetAllRoles(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Role.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getInviteRoles(): Promise {\n let url_ = this.baseUrl + \"/User/GetInviteRoles\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetInviteRoles(_response);\n });\n }\n\n protected processGetInviteRoles(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Role.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n delete(userId: string | null): Promise {\n let url_ = this.baseUrl + \"/User/Delete?\";\n if (userId === undefined)\n throw new Error(\"The parameter 'userId' must be defined.\");\n else\n url_ += \"userId=\" + encodeURIComponent(\"\" + userId) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processDelete(_response);\n });\n }\n\n protected processDelete(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n confirmEmail(request: EmailConfirmationRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/ConfirmEmail\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processConfirmEmail(_response);\n });\n }\n\n protected processConfirmEmail(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n changeEmail(request: ChangeEmailRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/ChangeEmail\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processChangeEmail(_response);\n });\n }\n\n protected processChangeEmail(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n resetPassword(request: EmailConfirmationRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/ResetPassword\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processResetPassword(_response);\n });\n }\n\n protected processResetPassword(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getUsers(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/GetUsers\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetUsers(_response);\n });\n }\n\n protected processGetUsers(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfUserInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getStatuses(): Promise {\n let url_ = this.baseUrl + \"/User/GetStatuses\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetStatuses(_response);\n });\n }\n\n protected processGetStatuses(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(StatusInfo.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n hasPendingChangeAddressRequest(): Promise {\n let url_ = this.baseUrl + \"/User/HasPendingChangeAddressRequest\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processHasPendingChangeAddressRequest(_response);\n });\n }\n\n protected processHasPendingChangeAddressRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPendingChangeNameRequest(): Promise {\n let url_ = this.baseUrl + \"/User/GetPendingChangeNameRequest\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPendingChangeNameRequest(_response);\n });\n }\n\n protected processGetPendingChangeNameRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? WebRequest.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAddresses(): Promise {\n let url_ = this.baseUrl + \"/User/GetAddresses\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAddresses(_response);\n });\n }\n\n protected processGetAddresses(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? Addresses.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getStates(): Promise {\n let url_ = this.baseUrl + \"/User/GetStates\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetStates(_response);\n });\n }\n\n protected processGetStates(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(State.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n changeAddress(request: Addresses | null): Promise {\n let url_ = this.baseUrl + \"/User/ChangeAddress\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processChangeAddress(_response);\n });\n }\n\n protected processChangeAddress(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n changeName(surname: string | null | undefined, otherNames: string | null | undefined, organisationName: string | null | undefined, files: FileParameter[] | null | undefined): Promise {\n let url_ = this.baseUrl + \"/User/ChangeName?\";\n if (surname !== undefined)\n url_ += \"Surname=\" + encodeURIComponent(\"\" + surname) + \"&\"; \n if (otherNames !== undefined)\n url_ += \"OtherNames=\" + encodeURIComponent(\"\" + otherNames) + \"&\"; \n if (organisationName !== undefined)\n url_ += \"OrganisationName=\" + encodeURIComponent(\"\" + organisationName) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (files !== null && files !== undefined)\n files.forEach(item_ => content_.append(\"Files\", item_.data, item_.fileName ? item_.fileName : \"Files\") );\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processChangeName(_response);\n });\n }\n\n protected processChangeName(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n isInvoicePrintTypeEmail(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/User/IsInvoicePrintTypeEmail?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIsInvoicePrintTypeEmail(_response);\n });\n }\n\n protected processIsInvoicePrintTypeEmail(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n isTherePendingEmailInvoicesRequest(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/User/IsTherePendingEmailInvoicesRequest?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIsTherePendingEmailInvoicesRequest(_response);\n });\n }\n\n protected processIsTherePendingEmailInvoicesRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n emailInvoices(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/User/EmailInvoices?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processEmailInvoices(_response);\n });\n }\n\n protected processEmailInvoices(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getAttachmentTypes(): Promise {\n let url_ = this.baseUrl + \"/User/GetAttachmentTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetAttachmentTypes(_response);\n });\n }\n\n protected processGetAttachmentTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestAttachmentType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n unlock(id: string): Promise {\n let url_ = this.baseUrl + \"/User/Unlock/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id)); \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUnlock(_response);\n });\n }\n\n protected processUnlock(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n isResetPasswordTokenValid(request: EmailConfirmationRequest | null): Promise {\n let url_ = this.baseUrl + \"/User/IsResetPasswordTokenValid\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIsResetPasswordTokenValid(_response);\n });\n }\n\n protected processIsResetPasswordTokenValid(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n allowEBillingOnEmailUpdate(): Promise {\n let url_ = this.baseUrl + \"/User/AllowEBillingOnEmailUpdate\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processAllowEBillingOnEmailUpdate(_response);\n });\n }\n\n protected processAllowEBillingOnEmailUpdate(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\n@inject(String, HttpClient)\nexport class WebRequestClient {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl ? baseUrl : \"\";\n }\n\n getStatuses(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetStatuses\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetStatuses(_response);\n });\n }\n\n protected processGetStatuses(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestStatus.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetTypes(_response);\n });\n }\n\n protected processGetTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getTenancyTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetTenancyTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetTenancyTypes(_response);\n });\n }\n\n protected processGetTenancyTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitTenancy(request: SubmitTenancyRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitTenancy\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitTenancy(_response);\n });\n }\n\n protected processSubmitTenancy(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getLastTenancyRequests(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetLastTenancyRequests\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLastTenancyRequests(_response);\n });\n }\n\n protected processGetLastTenancyRequests(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfTenancyWebRequestInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getTenancyRequest(guid: string): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetTenancyRequest?\";\n if (guid === undefined || guid === null)\n throw new Error(\"The parameter 'guid' must be defined and cannot be null.\");\n else\n url_ += \"guid=\" + encodeURIComponent(\"\" + guid) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetTenancyRequest(_response);\n });\n }\n\n protected processGetTenancyRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? WebRequest.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getInfoStatementRequest(guid: string): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetInfoStatementRequest?\";\n if (guid === undefined || guid === null)\n throw new Error(\"The parameter 'guid' must be defined and cannot be null.\");\n else\n url_ += \"guid=\" + encodeURIComponent(\"\" + guid) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetInfoStatementRequest(_response);\n });\n }\n\n protected processGetInfoStatementRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? WebRequest.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getFeeTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetFeeTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetFeeTypes(_response);\n });\n }\n\n protected processGetFeeTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestFeeType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPorgTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetPorgTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPorgTypes(_response);\n });\n }\n\n protected processGetPorgTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PorgType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPlanTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetPlanTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPlanTypes(_response);\n });\n }\n\n protected processGetPlanTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PlanType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getParishes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetParishes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetParishes(_response);\n });\n }\n\n protected processGetParishes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Parish.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitInfoStatementDummy(request: SubmitInfoStatementRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitInfoStatementDummy\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitInfoStatementDummy(_response);\n });\n }\n\n protected processSubmitInfoStatementDummy(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SubmitInfoStatementResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n isInfoStatementPaymentRequired(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/IsInfoStatementPaymentRequired\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIsInfoStatementPaymentRequired(_response);\n });\n }\n\n protected processIsInfoStatementPaymentRequired(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitInfoStatement(requestJson: string | null, files: FileParameter[] | null | undefined): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitInfoStatement?\";\n if (requestJson === undefined)\n throw new Error(\"The parameter 'requestJson' must be defined.\");\n else\n url_ += \"requestJson=\" + encodeURIComponent(\"\" + requestJson) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (files !== null && files !== undefined)\n files.forEach(item_ => content_.append(\"files\", item_.data, item_.fileName ? item_.fileName : \"files\") );\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitInfoStatement(_response);\n });\n }\n\n protected processSubmitInfoStatement(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SubmitInfoStatementResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getLastInfoStatementRequests(request: SearchRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetLastInfoStatementRequests\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLastInfoStatementRequests(_response);\n });\n }\n\n protected processGetLastInfoStatementRequests(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? SearchResponseOfInfoStatementWebRequestInfo.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitDirectDebit(request: WebRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitDirectDebit\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitDirectDebit(_response);\n });\n }\n\n protected processSubmitDirectDebit(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getDebtOptions(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetDebtOptions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetDebtOptions(_response);\n });\n }\n\n protected processGetDebtOptions(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(WebRequestDebtOption.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n isTherePendingRequest(pkAccount: number | null, webRequestType: string | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/IsTherePendingRequest?\";\n if (pkAccount === undefined)\n throw new Error(\"The parameter 'pkAccount' must be defined.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n if (webRequestType === undefined)\n throw new Error(\"The parameter 'webRequestType' must be defined.\");\n else\n url_ += \"webRequestType=\" + encodeURIComponent(\"\" + webRequestType) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processIsTherePendingRequest(_response);\n });\n }\n\n protected processIsTherePendingRequest(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getDirectDebitType(pkAccount: number): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetDirectDebitType?\";\n if (pkAccount === undefined || pkAccount === null)\n throw new Error(\"The parameter 'pkAccount' must be defined and cannot be null.\");\n else\n url_ += \"pkAccount=\" + encodeURIComponent(\"\" + pkAccount) + \"&\"; \n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetDirectDebitType(_response);\n });\n }\n\n protected processGetDirectDebitType(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getLastDirectDebitBankDetails(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetLastDirectDebitBankDetails\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetLastDirectDebitBankDetails(_response);\n });\n }\n\n protected processGetLastDirectDebitBankDetails(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 ? GetLastDirectDebitBankDetailsResponse.fromJS(resultData200) : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitChangeCustomerDetails(request: WebRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitChangeCustomerDetails\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitChangeCustomerDetails(_response);\n });\n }\n\n protected processSubmitChangeCustomerDetails(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitConcession(request: WebRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitConcession\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitConcession(_response);\n });\n }\n\n protected processSubmitConcession(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPensionTypes(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetPensionTypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPensionTypes(_response);\n });\n }\n\n protected processGetPensionTypes(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PensionType.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n submitPaymentArrangement(request: WebRequest | null): Promise {\n let url_ = this.baseUrl + \"/WebRequest/SubmitPaymentArrangement\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(request);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitPaymentArrangement(_response);\n });\n }\n\n protected processSubmitPaymentArrangement(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n getPayFrequencies(): Promise {\n let url_ = this.baseUrl + \"/WebRequest/GetPayFrequencies\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetPayFrequencies(_response);\n });\n }\n\n protected processGetPayFrequencies(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PayFrequency.fromJS(item));\n }\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\nexport class AccountInfo implements IAccountInfo {\n fkActDebtorType?: string | undefined;\n pkAccount!: number;\n pkProperty!: number;\n pkPorg!: number;\n primePkPorg!: number;\n pkPorgPropRole?: string | undefined;\n fullAccountNo?: string | undefined;\n fullAddress?: string | undefined;\n fkAccountStatus?: string | undefined;\n isConnected!: boolean;\n isClosed!: boolean;\n fkInvoicePrintType?: string | undefined;\n fkAccountType?: string | undefined;\n fkPayArrStatus?: string | undefined;\n directDebitFlag?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n unit_no?: string | undefined;\n\n constructor(data?: IAccountInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.fkActDebtorType = data[\"FkActDebtorType\"];\n this.pkAccount = data[\"PkAccount\"];\n this.pkProperty = data[\"PkProperty\"];\n this.pkPorg = data[\"PkPorg\"];\n this.primePkPorg = data[\"PrimePkPorg\"];\n this.pkPorgPropRole = data[\"PkPorgPropRole\"];\n this.fullAccountNo = data[\"FullAccountNo\"];\n this.fullAddress = data[\"FullAddress\"];\n this.fkAccountStatus = data[\"FkAccountStatus\"];\n this.isConnected = data[\"IsConnected\"];\n this.isClosed = data[\"IsClosed\"];\n this.fkInvoicePrintType = data[\"FkInvoicePrintType\"];\n this.fkAccountType = data[\"FkAccountType\"];\n this.fkPayArrStatus = data[\"FkPayArrStatus\"];\n this.directDebitFlag = data[\"DirectDebitFlag\"];\n this.street = data[\"Street\"];\n this.fk_street_suffix = data[\"Fk_street_suffix\"];\n this.fk_street = data[\"Fk_street\"];\n this.street_no = data[\"Street_no\"];\n this.street_no_suffix = data[\"Street_no_suffix\"];\n this.unit_no = data[\"Unit_no\"];\n }\n }\n\n static fromJS(data: any): AccountInfo {\n data = typeof data === 'object' ? data : {};\n let result = new AccountInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"FkActDebtorType\"] = this.fkActDebtorType;\n data[\"PkAccount\"] = this.pkAccount;\n data[\"PkProperty\"] = this.pkProperty;\n data[\"PkPorg\"] = this.pkPorg;\n data[\"PrimePkPorg\"] = this.primePkPorg;\n data[\"PkPorgPropRole\"] = this.pkPorgPropRole;\n data[\"FullAccountNo\"] = this.fullAccountNo;\n data[\"FullAddress\"] = this.fullAddress;\n data[\"FkAccountStatus\"] = this.fkAccountStatus;\n data[\"IsConnected\"] = this.isConnected;\n data[\"IsClosed\"] = this.isClosed;\n data[\"FkInvoicePrintType\"] = this.fkInvoicePrintType;\n data[\"FkAccountType\"] = this.fkAccountType;\n data[\"FkPayArrStatus\"] = this.fkPayArrStatus;\n data[\"DirectDebitFlag\"] = this.directDebitFlag;\n data[\"Street\"] = this.street;\n data[\"Fk_street_suffix\"] = this.fk_street_suffix;\n data[\"Fk_street\"] = this.fk_street;\n data[\"Street_no\"] = this.street_no;\n data[\"Street_no_suffix\"] = this.street_no_suffix;\n data[\"Unit_no\"] = this.unit_no;\n return data; \n }\n}\n\nexport interface IAccountInfo {\n fkActDebtorType?: string | undefined;\n pkAccount: number;\n pkProperty: number;\n pkPorg: number;\n primePkPorg: number;\n pkPorgPropRole?: string | undefined;\n fullAccountNo?: string | undefined;\n fullAddress?: string | undefined;\n fkAccountStatus?: string | undefined;\n isConnected: boolean;\n isClosed: boolean;\n fkInvoicePrintType?: string | undefined;\n fkAccountType?: string | undefined;\n fkPayArrStatus?: string | undefined;\n directDebitFlag?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n unit_no?: string | undefined;\n}\n\nexport class AccountPayment implements IAccountPayment {\n transactionPk!: number;\n pkAccount?: number | undefined;\n paymentId?: string | undefined;\n status?: PaymentStatus | undefined;\n date!: Date;\n amount!: number;\n fk_payment_source?: string | undefined;\n paymentSource?: string | undefined;\n displayDirectDebitPendingWarning!: boolean;\n\n constructor(data?: IAccountPayment) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.transactionPk = data[\"TransactionPk\"];\n this.pkAccount = data[\"PkAccount\"];\n this.paymentId = data[\"PaymentId\"];\n this.status = data[\"Status\"];\n this.date = data[\"Date\"] ? new Date(data[\"Date\"].toString()) : undefined;\n this.amount = data[\"Amount\"];\n this.fk_payment_source = data[\"Fk_payment_source\"];\n this.paymentSource = data[\"PaymentSource\"];\n this.displayDirectDebitPendingWarning = data[\"DisplayDirectDebitPendingWarning\"];\n }\n }\n\n static fromJS(data: any): AccountPayment {\n data = typeof data === 'object' ? data : {};\n let result = new AccountPayment();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"TransactionPk\"] = this.transactionPk;\n data[\"PkAccount\"] = this.pkAccount;\n data[\"PaymentId\"] = this.paymentId;\n data[\"Status\"] = this.status;\n data[\"Date\"] = this.date ? this.date.toISOString() : undefined;\n data[\"Amount\"] = this.amount;\n data[\"Fk_payment_source\"] = this.fk_payment_source;\n data[\"PaymentSource\"] = this.paymentSource;\n data[\"DisplayDirectDebitPendingWarning\"] = this.displayDirectDebitPendingWarning;\n return data; \n }\n}\n\nexport interface IAccountPayment {\n transactionPk: number;\n pkAccount?: number | undefined;\n paymentId?: string | undefined;\n status?: PaymentStatus | undefined;\n date: Date;\n amount: number;\n fk_payment_source?: string | undefined;\n paymentSource?: string | undefined;\n displayDirectDebitPendingWarning: boolean;\n}\n\nexport enum PaymentStatus {\n NotSent = 0,\n Approved = 1,\n ConditionallyApproved = 2,\n Indeterminate = 3,\n Failed = 4,\n RolledBack = 5,\n Finalised = 6,\n}\n\nexport class SearchResponseOfAccountPayment implements ISearchResponseOfAccountPayment {\n items?: AccountPayment[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfAccountPayment) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(AccountPayment.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfAccountPayment {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfAccountPayment();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfAccountPayment {\n items?: AccountPayment[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class SearchRequest implements ISearchRequest {\n filterItems?: FilterItem[] | undefined;\n page?: number | undefined;\n pageSize?: number | undefined;\n\n constructor(data?: ISearchRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"FilterItems\"])) {\n this.filterItems = [] as any;\n for (let item of data[\"FilterItems\"])\n this.filterItems!.push(FilterItem.fromJS(item));\n }\n this.page = data[\"Page\"];\n this.pageSize = data[\"PageSize\"];\n }\n }\n\n static fromJS(data: any): SearchRequest {\n data = typeof data === 'object' ? data : {};\n let result = new SearchRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.filterItems)) {\n data[\"FilterItems\"] = [];\n for (let item of this.filterItems)\n data[\"FilterItems\"].push(item.toJSON());\n }\n data[\"Page\"] = this.page;\n data[\"PageSize\"] = this.pageSize;\n return data; \n }\n}\n\nexport interface ISearchRequest {\n filterItems?: FilterItem[] | undefined;\n page?: number | undefined;\n pageSize?: number | undefined;\n}\n\nexport class FilterItem implements IFilterItem {\n name?: string | undefined;\n label?: string | undefined;\n operator!: FilterOperator;\n value?: any | undefined;\n\n constructor(data?: IFilterItem) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.name = data[\"Name\"];\n this.label = data[\"Label\"];\n this.operator = data[\"Operator\"];\n this.value = data[\"Value\"];\n }\n }\n\n static fromJS(data: any): FilterItem {\n data = typeof data === 'object' ? data : {};\n let result = new FilterItem();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Name\"] = this.name;\n data[\"Label\"] = this.label;\n data[\"Operator\"] = this.operator;\n data[\"Value\"] = this.value;\n return data; \n }\n}\n\nexport interface IFilterItem {\n name?: string | undefined;\n label?: string | undefined;\n operator: FilterOperator;\n value?: any | undefined;\n}\n\nexport enum FilterOperator {\n Like = 0,\n NotLike = 1,\n Is = 2,\n IsNot = 3,\n LessThan = 4,\n GreaterThan = 5,\n IsBefore = 6,\n IsAfter = 7,\n}\n\nexport class ActVolCycle implements IActVolCycle {\n pkAccount!: number;\n pk!: number;\n dateFrom!: Date;\n dateTo!: Date;\n volume!: number;\n fkRoundFrequency?: string | undefined;\n fkFinancialYear!: number;\n cycleNo!: number;\n cycleDesc?: string | undefined;\n account?: Account | undefined;\n\n constructor(data?: IActVolCycle) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkAccount = data[\"PkAccount\"];\n this.pk = data[\"Pk\"];\n this.dateFrom = data[\"DateFrom\"] ? new Date(data[\"DateFrom\"].toString()) : undefined;\n this.dateTo = data[\"DateTo\"] ? new Date(data[\"DateTo\"].toString()) : undefined;\n this.volume = data[\"Volume\"];\n this.fkRoundFrequency = data[\"FkRoundFrequency\"];\n this.fkFinancialYear = data[\"FkFinancialYear\"];\n this.cycleNo = data[\"CycleNo\"];\n this.cycleDesc = data[\"CycleDesc\"];\n this.account = data[\"Account\"] ? Account.fromJS(data[\"Account\"]) : undefined;\n }\n }\n\n static fromJS(data: any): ActVolCycle {\n data = typeof data === 'object' ? data : {};\n let result = new ActVolCycle();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkAccount\"] = this.pkAccount;\n data[\"Pk\"] = this.pk;\n data[\"DateFrom\"] = this.dateFrom ? this.dateFrom.toISOString() : undefined;\n data[\"DateTo\"] = this.dateTo ? this.dateTo.toISOString() : undefined;\n data[\"Volume\"] = this.volume;\n data[\"FkRoundFrequency\"] = this.fkRoundFrequency;\n data[\"FkFinancialYear\"] = this.fkFinancialYear;\n data[\"CycleNo\"] = this.cycleNo;\n data[\"CycleDesc\"] = this.cycleDesc;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IActVolCycle {\n pkAccount: number;\n pk: number;\n dateFrom: Date;\n dateTo: Date;\n volume: number;\n fkRoundFrequency?: string | undefined;\n fkFinancialYear: number;\n cycleNo: number;\n cycleDesc?: string | undefined;\n account?: Account | undefined;\n}\n\nexport class Account implements IAccount {\n pk!: number;\n fkActDebtorType?: string | undefined;\n fkProperty?: number | undefined;\n accountSeq?: number | undefined;\n check_digit!: number;\n fkPayArrStatus?: string | undefined;\n fkAccountStatus?: string | undefined;\n fkAccountType?: string | undefined;\n directDebitFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n addressDateFrom?: Date | undefined;\n addressDateTo?: Date | undefined;\n secure_flag?: string | undefined;\n property?: Property | undefined;\n porgProperties?: PorgProperty[] | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n\n constructor(data?: IAccount) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkActDebtorType = data[\"FkActDebtorType\"];\n this.fkProperty = data[\"FkProperty\"];\n this.accountSeq = data[\"AccountSeq\"];\n this.check_digit = data[\"Check_digit\"];\n this.fkPayArrStatus = data[\"FkPayArrStatus\"];\n this.fkAccountStatus = data[\"FkAccountStatus\"];\n this.fkAccountType = data[\"FkAccountType\"];\n this.directDebitFlag = data[\"DirectDebitFlag\"];\n this.address1 = data[\"Address1\"];\n this.address2 = data[\"Address2\"];\n this.address3 = data[\"Address3\"];\n this.address4 = data[\"Address4\"];\n this.postcode = data[\"Postcode\"];\n this.fkState = data[\"FkState\"];\n this.addressDateFrom = data[\"AddressDateFrom\"] ? new Date(data[\"AddressDateFrom\"].toString()) : undefined;\n this.addressDateTo = data[\"AddressDateTo\"] ? new Date(data[\"AddressDateTo\"].toString()) : undefined;\n this.secure_flag = data[\"Secure_flag\"];\n this.property = data[\"Property\"] ? Property.fromJS(data[\"Property\"]) : undefined;\n if (Array.isArray(data[\"PorgProperties\"])) {\n this.porgProperties = [] as any;\n for (let item of data[\"PorgProperties\"])\n this.porgProperties!.push(PorgProperty.fromJS(item));\n }\n if (Array.isArray(data[\"InvoiceHeaders\"])) {\n this.invoiceHeaders = [] as any;\n for (let item of data[\"InvoiceHeaders\"])\n this.invoiceHeaders!.push(InvoiceHeader.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Account {\n data = typeof data === 'object' ? data : {};\n let result = new Account();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkActDebtorType\"] = this.fkActDebtorType;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"AccountSeq\"] = this.accountSeq;\n data[\"Check_digit\"] = this.check_digit;\n data[\"FkPayArrStatus\"] = this.fkPayArrStatus;\n data[\"FkAccountStatus\"] = this.fkAccountStatus;\n data[\"FkAccountType\"] = this.fkAccountType;\n data[\"DirectDebitFlag\"] = this.directDebitFlag;\n data[\"Address1\"] = this.address1;\n data[\"Address2\"] = this.address2;\n data[\"Address3\"] = this.address3;\n data[\"Address4\"] = this.address4;\n data[\"Postcode\"] = this.postcode;\n data[\"FkState\"] = this.fkState;\n data[\"AddressDateFrom\"] = this.addressDateFrom ? this.addressDateFrom.toISOString() : undefined;\n data[\"AddressDateTo\"] = this.addressDateTo ? this.addressDateTo.toISOString() : undefined;\n data[\"Secure_flag\"] = this.secure_flag;\n data[\"Property\"] = this.property ? this.property.toJSON() : undefined;\n if (Array.isArray(this.porgProperties)) {\n data[\"PorgProperties\"] = [];\n for (let item of this.porgProperties)\n data[\"PorgProperties\"].push(item.toJSON());\n }\n if (Array.isArray(this.invoiceHeaders)) {\n data[\"InvoiceHeaders\"] = [];\n for (let item of this.invoiceHeaders)\n data[\"InvoiceHeaders\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IAccount {\n pk: number;\n fkActDebtorType?: string | undefined;\n fkProperty?: number | undefined;\n accountSeq?: number | undefined;\n check_digit: number;\n fkPayArrStatus?: string | undefined;\n fkAccountStatus?: string | undefined;\n fkAccountType?: string | undefined;\n directDebitFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n addressDateFrom?: Date | undefined;\n addressDateTo?: Date | undefined;\n secure_flag?: string | undefined;\n property?: Property | undefined;\n porgProperties?: PorgProperty[] | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n}\n\nexport class Property implements IProperty {\n pk!: number;\n propertyNo!: number;\n fk_unit_type?: string | undefined;\n unit_no?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n fk_suburb?: string | undefined;\n non_rateable_flag?: string | undefined;\n postcode?: number | undefined;\n accounts?: Account[] | undefined;\n porgProperties?: PorgProperty[] | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n propServices?: PropService[] | undefined;\n\n constructor(data?: IProperty) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.propertyNo = data[\"PropertyNo\"];\n this.fk_unit_type = data[\"Fk_unit_type\"];\n this.unit_no = data[\"Unit_no\"];\n this.street_no = data[\"Street_no\"];\n this.street_no_suffix = data[\"Street_no_suffix\"];\n this.street = data[\"Street\"];\n this.fk_street_suffix = data[\"Fk_street_suffix\"];\n this.fk_street = data[\"Fk_street\"];\n this.fk_suburb = data[\"Fk_suburb\"];\n this.non_rateable_flag = data[\"Non_rateable_flag\"];\n this.postcode = data[\"Postcode\"];\n if (Array.isArray(data[\"Accounts\"])) {\n this.accounts = [] as any;\n for (let item of data[\"Accounts\"])\n this.accounts!.push(Account.fromJS(item));\n }\n if (Array.isArray(data[\"PorgProperties\"])) {\n this.porgProperties = [] as any;\n for (let item of data[\"PorgProperties\"])\n this.porgProperties!.push(PorgProperty.fromJS(item));\n }\n if (Array.isArray(data[\"InvoiceHeaders\"])) {\n this.invoiceHeaders = [] as any;\n for (let item of data[\"InvoiceHeaders\"])\n this.invoiceHeaders!.push(InvoiceHeader.fromJS(item));\n }\n if (Array.isArray(data[\"PropServices\"])) {\n this.propServices = [] as any;\n for (let item of data[\"PropServices\"])\n this.propServices!.push(PropService.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Property {\n data = typeof data === 'object' ? data : {};\n let result = new Property();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"PropertyNo\"] = this.propertyNo;\n data[\"Fk_unit_type\"] = this.fk_unit_type;\n data[\"Unit_no\"] = this.unit_no;\n data[\"Street_no\"] = this.street_no;\n data[\"Street_no_suffix\"] = this.street_no_suffix;\n data[\"Street\"] = this.street;\n data[\"Fk_street_suffix\"] = this.fk_street_suffix;\n data[\"Fk_street\"] = this.fk_street;\n data[\"Fk_suburb\"] = this.fk_suburb;\n data[\"Non_rateable_flag\"] = this.non_rateable_flag;\n data[\"Postcode\"] = this.postcode;\n if (Array.isArray(this.accounts)) {\n data[\"Accounts\"] = [];\n for (let item of this.accounts)\n data[\"Accounts\"].push(item.toJSON());\n }\n if (Array.isArray(this.porgProperties)) {\n data[\"PorgProperties\"] = [];\n for (let item of this.porgProperties)\n data[\"PorgProperties\"].push(item.toJSON());\n }\n if (Array.isArray(this.invoiceHeaders)) {\n data[\"InvoiceHeaders\"] = [];\n for (let item of this.invoiceHeaders)\n data[\"InvoiceHeaders\"].push(item.toJSON());\n }\n if (Array.isArray(this.propServices)) {\n data[\"PropServices\"] = [];\n for (let item of this.propServices)\n data[\"PropServices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IProperty {\n pk: number;\n propertyNo: number;\n fk_unit_type?: string | undefined;\n unit_no?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n fk_suburb?: string | undefined;\n non_rateable_flag?: string | undefined;\n postcode?: number | undefined;\n accounts?: Account[] | undefined;\n porgProperties?: PorgProperty[] | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n propServices?: PropService[] | undefined;\n}\n\nexport class PorgProperty implements IPorgProperty {\n pkPorg!: number;\n pkProperty!: number;\n pk!: number;\n pkPorgPropRole?: string | undefined;\n fkAccount?: number | undefined;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n primeDebtorFlag?: string | undefined;\n print_invoice_flag?: string | undefined;\n fkInvoicePrintType?: string | undefined;\n aquaweb_ignore_flag?: string | undefined;\n pension_flag?: string | undefined;\n reb_pen_date_to?: Date | undefined;\n pension_rate?: number | undefined;\n porg?: Porg | undefined;\n property?: Property | undefined;\n account?: Account | undefined;\n porgPropRole?: PorgPropRole | undefined;\n\n constructor(data?: IPorgProperty) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkPorg = data[\"PkPorg\"];\n this.pkProperty = data[\"PkProperty\"];\n this.pk = data[\"Pk\"];\n this.pkPorgPropRole = data[\"PkPorgPropRole\"];\n this.fkAccount = data[\"FkAccount\"];\n this.dateConnected = data[\"DateConnected\"] ? new Date(data[\"DateConnected\"].toString()) : undefined;\n this.dateDisconnected = data[\"DateDisconnected\"] ? new Date(data[\"DateDisconnected\"].toString()) : undefined;\n this.primeDebtorFlag = data[\"PrimeDebtorFlag\"];\n this.print_invoice_flag = data[\"Print_invoice_flag\"];\n this.fkInvoicePrintType = data[\"FkInvoicePrintType\"];\n this.aquaweb_ignore_flag = data[\"Aquaweb_ignore_flag\"];\n this.pension_flag = data[\"Pension_flag\"];\n this.reb_pen_date_to = data[\"Reb_pen_date_to\"] ? new Date(data[\"Reb_pen_date_to\"].toString()) : undefined;\n this.pension_rate = data[\"Pension_rate\"];\n this.porg = data[\"Porg\"] ? Porg.fromJS(data[\"Porg\"]) : undefined;\n this.property = data[\"Property\"] ? Property.fromJS(data[\"Property\"]) : undefined;\n this.account = data[\"Account\"] ? Account.fromJS(data[\"Account\"]) : undefined;\n this.porgPropRole = data[\"PorgPropRole\"] ? PorgPropRole.fromJS(data[\"PorgPropRole\"]) : undefined;\n }\n }\n\n static fromJS(data: any): PorgProperty {\n data = typeof data === 'object' ? data : {};\n let result = new PorgProperty();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkPorg\"] = this.pkPorg;\n data[\"PkProperty\"] = this.pkProperty;\n data[\"Pk\"] = this.pk;\n data[\"PkPorgPropRole\"] = this.pkPorgPropRole;\n data[\"FkAccount\"] = this.fkAccount;\n data[\"DateConnected\"] = this.dateConnected ? this.dateConnected.toISOString() : undefined;\n data[\"DateDisconnected\"] = this.dateDisconnected ? this.dateDisconnected.toISOString() : undefined;\n data[\"PrimeDebtorFlag\"] = this.primeDebtorFlag;\n data[\"Print_invoice_flag\"] = this.print_invoice_flag;\n data[\"FkInvoicePrintType\"] = this.fkInvoicePrintType;\n data[\"Aquaweb_ignore_flag\"] = this.aquaweb_ignore_flag;\n data[\"Pension_flag\"] = this.pension_flag;\n data[\"Reb_pen_date_to\"] = this.reb_pen_date_to ? this.reb_pen_date_to.toISOString() : undefined;\n data[\"Pension_rate\"] = this.pension_rate;\n data[\"Porg\"] = this.porg ? this.porg.toJSON() : undefined;\n data[\"Property\"] = this.property ? this.property.toJSON() : undefined;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n data[\"PorgPropRole\"] = this.porgPropRole ? this.porgPropRole.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPorgProperty {\n pkPorg: number;\n pkProperty: number;\n pk: number;\n pkPorgPropRole?: string | undefined;\n fkAccount?: number | undefined;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n primeDebtorFlag?: string | undefined;\n print_invoice_flag?: string | undefined;\n fkInvoicePrintType?: string | undefined;\n aquaweb_ignore_flag?: string | undefined;\n pension_flag?: string | undefined;\n reb_pen_date_to?: Date | undefined;\n pension_rate?: number | undefined;\n porg?: Porg | undefined;\n property?: Property | undefined;\n account?: Account | undefined;\n porgPropRole?: PorgPropRole | undefined;\n}\n\nexport class Porg implements IPorg {\n pk!: number;\n fkPorgType?: string | undefined;\n fullName?: string | undefined;\n overseasAddressFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n postalOverseasAddressFlag?: string | undefined;\n postalAddress1?: string | undefined;\n postalAddress2?: string | undefined;\n postalAddress3?: string | undefined;\n postalAddress4?: string | undefined;\n postalPostcode?: number | undefined;\n fkStatePostal?: string | undefined;\n porgProperties?: PorgProperty[] | undefined;\n person?: Person | undefined;\n organisation?: Organisation | undefined;\n\n constructor(data?: IPorg) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkPorgType = data[\"FkPorgType\"];\n this.fullName = data[\"FullName\"];\n this.overseasAddressFlag = data[\"OverseasAddressFlag\"];\n this.address1 = data[\"Address1\"];\n this.address2 = data[\"Address2\"];\n this.address3 = data[\"Address3\"];\n this.address4 = data[\"Address4\"];\n this.postcode = data[\"Postcode\"];\n this.fkState = data[\"FkState\"];\n this.postalOverseasAddressFlag = data[\"PostalOverseasAddressFlag\"];\n this.postalAddress1 = data[\"PostalAddress1\"];\n this.postalAddress2 = data[\"PostalAddress2\"];\n this.postalAddress3 = data[\"PostalAddress3\"];\n this.postalAddress4 = data[\"PostalAddress4\"];\n this.postalPostcode = data[\"PostalPostcode\"];\n this.fkStatePostal = data[\"FkStatePostal\"];\n if (Array.isArray(data[\"PorgProperties\"])) {\n this.porgProperties = [] as any;\n for (let item of data[\"PorgProperties\"])\n this.porgProperties!.push(PorgProperty.fromJS(item));\n }\n this.person = data[\"Person\"] ? Person.fromJS(data[\"Person\"]) : undefined;\n this.organisation = data[\"Organisation\"] ? Organisation.fromJS(data[\"Organisation\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Porg {\n data = typeof data === 'object' ? data : {};\n let result = new Porg();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkPorgType\"] = this.fkPorgType;\n data[\"FullName\"] = this.fullName;\n data[\"OverseasAddressFlag\"] = this.overseasAddressFlag;\n data[\"Address1\"] = this.address1;\n data[\"Address2\"] = this.address2;\n data[\"Address3\"] = this.address3;\n data[\"Address4\"] = this.address4;\n data[\"Postcode\"] = this.postcode;\n data[\"FkState\"] = this.fkState;\n data[\"PostalOverseasAddressFlag\"] = this.postalOverseasAddressFlag;\n data[\"PostalAddress1\"] = this.postalAddress1;\n data[\"PostalAddress2\"] = this.postalAddress2;\n data[\"PostalAddress3\"] = this.postalAddress3;\n data[\"PostalAddress4\"] = this.postalAddress4;\n data[\"PostalPostcode\"] = this.postalPostcode;\n data[\"FkStatePostal\"] = this.fkStatePostal;\n if (Array.isArray(this.porgProperties)) {\n data[\"PorgProperties\"] = [];\n for (let item of this.porgProperties)\n data[\"PorgProperties\"].push(item.toJSON());\n }\n data[\"Person\"] = this.person ? this.person.toJSON() : undefined;\n data[\"Organisation\"] = this.organisation ? this.organisation.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPorg {\n pk: number;\n fkPorgType?: string | undefined;\n fullName?: string | undefined;\n overseasAddressFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n postalOverseasAddressFlag?: string | undefined;\n postalAddress1?: string | undefined;\n postalAddress2?: string | undefined;\n postalAddress3?: string | undefined;\n postalAddress4?: string | undefined;\n postalPostcode?: number | undefined;\n fkStatePostal?: string | undefined;\n porgProperties?: PorgProperty[] | undefined;\n person?: Person | undefined;\n organisation?: Organisation | undefined;\n}\n\nexport class Person implements IPerson {\n pkPorg!: number;\n surname?: string | undefined;\n otherNames?: string | undefined;\n birthDate?: Date | undefined;\n pensioner_flag?: string | undefined;\n porg?: Porg | undefined;\n\n constructor(data?: IPerson) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkPorg = data[\"PkPorg\"];\n this.surname = data[\"Surname\"];\n this.otherNames = data[\"OtherNames\"];\n this.birthDate = data[\"BirthDate\"] ? new Date(data[\"BirthDate\"].toString()) : undefined;\n this.pensioner_flag = data[\"Pensioner_flag\"];\n this.porg = data[\"Porg\"] ? Porg.fromJS(data[\"Porg\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Person {\n data = typeof data === 'object' ? data : {};\n let result = new Person();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkPorg\"] = this.pkPorg;\n data[\"Surname\"] = this.surname;\n data[\"OtherNames\"] = this.otherNames;\n data[\"BirthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"Pensioner_flag\"] = this.pensioner_flag;\n data[\"Porg\"] = this.porg ? this.porg.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPerson {\n pkPorg: number;\n surname?: string | undefined;\n otherNames?: string | undefined;\n birthDate?: Date | undefined;\n pensioner_flag?: string | undefined;\n porg?: Porg | undefined;\n}\n\nexport class Organisation implements IOrganisation {\n pkPorg!: number;\n name?: string | undefined;\n austBusinessNo?: string | undefined;\n porg?: Porg | undefined;\n\n constructor(data?: IOrganisation) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkPorg = data[\"PkPorg\"];\n this.name = data[\"Name\"];\n this.austBusinessNo = data[\"AustBusinessNo\"];\n this.porg = data[\"Porg\"] ? Porg.fromJS(data[\"Porg\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Organisation {\n data = typeof data === 'object' ? data : {};\n let result = new Organisation();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkPorg\"] = this.pkPorg;\n data[\"Name\"] = this.name;\n data[\"AustBusinessNo\"] = this.austBusinessNo;\n data[\"Porg\"] = this.porg ? this.porg.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IOrganisation {\n pkPorg: number;\n name?: string | undefined;\n austBusinessNo?: string | undefined;\n porg?: Porg | undefined;\n}\n\nexport class PorgPropRole implements IPorgPropRole {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IPorgPropRole) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): PorgPropRole {\n data = typeof data === 'object' ? data : {};\n let result = new PorgPropRole();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IPorgPropRole {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class InvoiceHeader implements IInvoiceHeader {\n pk!: number;\n fkProperty?: number | undefined;\n fkAccount!: number;\n dateFrom?: Date | undefined;\n dateTo?: Date | undefined;\n dateIssued?: Date | undefined;\n dateDue?: Date | undefined;\n dateNextRead?: Date | undefined;\n amtPrevBill!: number;\n amtPayments!: number;\n amtBalance!: number;\n amtCurrBill!: number;\n amtTotal!: number;\n amtHcRebate?: number | undefined;\n amtTotalHc?: number | undefined;\n amtAdjustments!: number;\n fkInvoiceType?: string | undefined;\n fkInvoiceStatus?: string | undefined;\n fkBillingRun!: number;\n fkInvoiceGraphType?: string | undefined;\n directDebitFlag?: string | undefined;\n aquaweb_show_flag?: string | undefined;\n property?: Property | undefined;\n account?: Account | undefined;\n invoiceType?: InvoiceType | undefined;\n billingRun?: BillingRun | undefined;\n\n constructor(data?: IInvoiceHeader) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkProperty = data[\"FkProperty\"];\n this.fkAccount = data[\"FkAccount\"];\n this.dateFrom = data[\"DateFrom\"] ? new Date(data[\"DateFrom\"].toString()) : undefined;\n this.dateTo = data[\"DateTo\"] ? new Date(data[\"DateTo\"].toString()) : undefined;\n this.dateIssued = data[\"DateIssued\"] ? new Date(data[\"DateIssued\"].toString()) : undefined;\n this.dateDue = data[\"DateDue\"] ? new Date(data[\"DateDue\"].toString()) : undefined;\n this.dateNextRead = data[\"DateNextRead\"] ? new Date(data[\"DateNextRead\"].toString()) : undefined;\n this.amtPrevBill = data[\"AmtPrevBill\"];\n this.amtPayments = data[\"AmtPayments\"];\n this.amtBalance = data[\"AmtBalance\"];\n this.amtCurrBill = data[\"AmtCurrBill\"];\n this.amtTotal = data[\"AmtTotal\"];\n this.amtHcRebate = data[\"AmtHcRebate\"];\n this.amtTotalHc = data[\"AmtTotalHc\"];\n this.amtAdjustments = data[\"AmtAdjustments\"];\n this.fkInvoiceType = data[\"FkInvoiceType\"];\n this.fkInvoiceStatus = data[\"FkInvoiceStatus\"];\n this.fkBillingRun = data[\"FkBillingRun\"];\n this.fkInvoiceGraphType = data[\"FkInvoiceGraphType\"];\n this.directDebitFlag = data[\"DirectDebitFlag\"];\n this.aquaweb_show_flag = data[\"Aquaweb_show_flag\"];\n this.property = data[\"Property\"] ? Property.fromJS(data[\"Property\"]) : undefined;\n this.account = data[\"Account\"] ? Account.fromJS(data[\"Account\"]) : undefined;\n this.invoiceType = data[\"InvoiceType\"] ? InvoiceType.fromJS(data[\"InvoiceType\"]) : undefined;\n this.billingRun = data[\"BillingRun\"] ? BillingRun.fromJS(data[\"BillingRun\"]) : undefined;\n }\n }\n\n static fromJS(data: any): InvoiceHeader {\n data = typeof data === 'object' ? data : {};\n let result = new InvoiceHeader();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"FkAccount\"] = this.fkAccount;\n data[\"DateFrom\"] = this.dateFrom ? this.dateFrom.toISOString() : undefined;\n data[\"DateTo\"] = this.dateTo ? this.dateTo.toISOString() : undefined;\n data[\"DateIssued\"] = this.dateIssued ? this.dateIssued.toISOString() : undefined;\n data[\"DateDue\"] = this.dateDue ? this.dateDue.toISOString() : undefined;\n data[\"DateNextRead\"] = this.dateNextRead ? this.dateNextRead.toISOString() : undefined;\n data[\"AmtPrevBill\"] = this.amtPrevBill;\n data[\"AmtPayments\"] = this.amtPayments;\n data[\"AmtBalance\"] = this.amtBalance;\n data[\"AmtCurrBill\"] = this.amtCurrBill;\n data[\"AmtTotal\"] = this.amtTotal;\n data[\"AmtHcRebate\"] = this.amtHcRebate;\n data[\"AmtTotalHc\"] = this.amtTotalHc;\n data[\"AmtAdjustments\"] = this.amtAdjustments;\n data[\"FkInvoiceType\"] = this.fkInvoiceType;\n data[\"FkInvoiceStatus\"] = this.fkInvoiceStatus;\n data[\"FkBillingRun\"] = this.fkBillingRun;\n data[\"FkInvoiceGraphType\"] = this.fkInvoiceGraphType;\n data[\"DirectDebitFlag\"] = this.directDebitFlag;\n data[\"Aquaweb_show_flag\"] = this.aquaweb_show_flag;\n data[\"Property\"] = this.property ? this.property.toJSON() : undefined;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n data[\"InvoiceType\"] = this.invoiceType ? this.invoiceType.toJSON() : undefined;\n data[\"BillingRun\"] = this.billingRun ? this.billingRun.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IInvoiceHeader {\n pk: number;\n fkProperty?: number | undefined;\n fkAccount: number;\n dateFrom?: Date | undefined;\n dateTo?: Date | undefined;\n dateIssued?: Date | undefined;\n dateDue?: Date | undefined;\n dateNextRead?: Date | undefined;\n amtPrevBill: number;\n amtPayments: number;\n amtBalance: number;\n amtCurrBill: number;\n amtTotal: number;\n amtHcRebate?: number | undefined;\n amtTotalHc?: number | undefined;\n amtAdjustments: number;\n fkInvoiceType?: string | undefined;\n fkInvoiceStatus?: string | undefined;\n fkBillingRun: number;\n fkInvoiceGraphType?: string | undefined;\n directDebitFlag?: string | undefined;\n aquaweb_show_flag?: string | undefined;\n property?: Property | undefined;\n account?: Account | undefined;\n invoiceType?: InvoiceType | undefined;\n billingRun?: BillingRun | undefined;\n}\n\nexport class InvoiceType implements IInvoiceType {\n code?: string | undefined;\n description?: string | undefined;\n web_description?: string | undefined;\n\n constructor(data?: IInvoiceType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n this.web_description = data[\"Web_description\"];\n }\n }\n\n static fromJS(data: any): InvoiceType {\n data = typeof data === 'object' ? data : {};\n let result = new InvoiceType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n data[\"Web_description\"] = this.web_description;\n return data; \n }\n}\n\nexport interface IInvoiceType {\n code?: string | undefined;\n description?: string | undefined;\n web_description?: string | undefined;\n}\n\nexport class BillingRun implements IBillingRun {\n pk!: number;\n fkReportingEngine?: string | undefined;\n fkTemplate?: number | undefined;\n fkTemplateReminder?: number | undefined;\n fkTemplateFinal?: number | undefined;\n fkTemplateOverride?: number | undefined;\n fkTemplateReminderOverride?: number | undefined;\n fkTemplateFinalOverride?: number | undefined;\n fkFinancialYear!: number;\n cycleNo?: number | undefined;\n fkBillRunType?: string | undefined;\n dateInvFinish?: Date | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n\n constructor(data?: IBillingRun) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkReportingEngine = data[\"FkReportingEngine\"];\n this.fkTemplate = data[\"FkTemplate\"];\n this.fkTemplateReminder = data[\"FkTemplateReminder\"];\n this.fkTemplateFinal = data[\"FkTemplateFinal\"];\n this.fkTemplateOverride = data[\"FkTemplateOverride\"];\n this.fkTemplateReminderOverride = data[\"FkTemplateReminderOverride\"];\n this.fkTemplateFinalOverride = data[\"FkTemplateFinalOverride\"];\n this.fkFinancialYear = data[\"FkFinancialYear\"];\n this.cycleNo = data[\"CycleNo\"];\n this.fkBillRunType = data[\"FkBillRunType\"];\n this.dateInvFinish = data[\"DateInvFinish\"] ? new Date(data[\"DateInvFinish\"].toString()) : undefined;\n if (Array.isArray(data[\"InvoiceHeaders\"])) {\n this.invoiceHeaders = [] as any;\n for (let item of data[\"InvoiceHeaders\"])\n this.invoiceHeaders!.push(InvoiceHeader.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): BillingRun {\n data = typeof data === 'object' ? data : {};\n let result = new BillingRun();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkReportingEngine\"] = this.fkReportingEngine;\n data[\"FkTemplate\"] = this.fkTemplate;\n data[\"FkTemplateReminder\"] = this.fkTemplateReminder;\n data[\"FkTemplateFinal\"] = this.fkTemplateFinal;\n data[\"FkTemplateOverride\"] = this.fkTemplateOverride;\n data[\"FkTemplateReminderOverride\"] = this.fkTemplateReminderOverride;\n data[\"FkTemplateFinalOverride\"] = this.fkTemplateFinalOverride;\n data[\"FkFinancialYear\"] = this.fkFinancialYear;\n data[\"CycleNo\"] = this.cycleNo;\n data[\"FkBillRunType\"] = this.fkBillRunType;\n data[\"DateInvFinish\"] = this.dateInvFinish ? this.dateInvFinish.toISOString() : undefined;\n if (Array.isArray(this.invoiceHeaders)) {\n data[\"InvoiceHeaders\"] = [];\n for (let item of this.invoiceHeaders)\n data[\"InvoiceHeaders\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IBillingRun {\n pk: number;\n fkReportingEngine?: string | undefined;\n fkTemplate?: number | undefined;\n fkTemplateReminder?: number | undefined;\n fkTemplateFinal?: number | undefined;\n fkTemplateOverride?: number | undefined;\n fkTemplateReminderOverride?: number | undefined;\n fkTemplateFinalOverride?: number | undefined;\n fkFinancialYear: number;\n cycleNo?: number | undefined;\n fkBillRunType?: string | undefined;\n dateInvFinish?: Date | undefined;\n invoiceHeaders?: InvoiceHeader[] | undefined;\n}\n\nexport class PropService implements IPropService {\n pkProperty!: number;\n pkService!: number;\n percentage!: number;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n fkPropSrvStatus?: string | undefined;\n property?: Property | undefined;\n service?: Service | undefined;\n\n constructor(data?: IPropService) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkProperty = data[\"PkProperty\"];\n this.pkService = data[\"PkService\"];\n this.percentage = data[\"Percentage\"];\n this.dateConnected = data[\"DateConnected\"] ? new Date(data[\"DateConnected\"].toString()) : undefined;\n this.dateDisconnected = data[\"DateDisconnected\"] ? new Date(data[\"DateDisconnected\"].toString()) : undefined;\n this.fkPropSrvStatus = data[\"FkPropSrvStatus\"];\n this.property = data[\"Property\"] ? Property.fromJS(data[\"Property\"]) : undefined;\n this.service = data[\"Service\"] ? Service.fromJS(data[\"Service\"]) : undefined;\n }\n }\n\n static fromJS(data: any): PropService {\n data = typeof data === 'object' ? data : {};\n let result = new PropService();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkProperty\"] = this.pkProperty;\n data[\"PkService\"] = this.pkService;\n data[\"Percentage\"] = this.percentage;\n data[\"DateConnected\"] = this.dateConnected ? this.dateConnected.toISOString() : undefined;\n data[\"DateDisconnected\"] = this.dateDisconnected ? this.dateDisconnected.toISOString() : undefined;\n data[\"FkPropSrvStatus\"] = this.fkPropSrvStatus;\n data[\"Property\"] = this.property ? this.property.toJSON() : undefined;\n data[\"Service\"] = this.service ? this.service.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPropService {\n pkProperty: number;\n pkService: number;\n percentage: number;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n fkPropSrvStatus?: string | undefined;\n property?: Property | undefined;\n service?: Service | undefined;\n}\n\nexport class Service implements IService {\n pk!: number;\n propServices?: PropService[] | undefined;\n serviceMeters?: ServiceMeter[] | undefined;\n\n constructor(data?: IService) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n if (Array.isArray(data[\"PropServices\"])) {\n this.propServices = [] as any;\n for (let item of data[\"PropServices\"])\n this.propServices!.push(PropService.fromJS(item));\n }\n if (Array.isArray(data[\"ServiceMeters\"])) {\n this.serviceMeters = [] as any;\n for (let item of data[\"ServiceMeters\"])\n this.serviceMeters!.push(ServiceMeter.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Service {\n data = typeof data === 'object' ? data : {};\n let result = new Service();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n if (Array.isArray(this.propServices)) {\n data[\"PropServices\"] = [];\n for (let item of this.propServices)\n data[\"PropServices\"].push(item.toJSON());\n }\n if (Array.isArray(this.serviceMeters)) {\n data[\"ServiceMeters\"] = [];\n for (let item of this.serviceMeters)\n data[\"ServiceMeters\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IService {\n pk: number;\n propServices?: PropService[] | undefined;\n serviceMeters?: ServiceMeter[] | undefined;\n}\n\nexport class ServiceMeter implements IServiceMeter {\n pkService!: number;\n pkMeter!: number;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n fkSrvMtrStatus?: string | undefined;\n service?: Service | undefined;\n meter?: Meter | undefined;\n readings?: Reading[] | undefined;\n\n constructor(data?: IServiceMeter) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkService = data[\"PkService\"];\n this.pkMeter = data[\"PkMeter\"];\n this.dateConnected = data[\"DateConnected\"] ? new Date(data[\"DateConnected\"].toString()) : undefined;\n this.dateDisconnected = data[\"DateDisconnected\"] ? new Date(data[\"DateDisconnected\"].toString()) : undefined;\n this.fkSrvMtrStatus = data[\"FkSrvMtrStatus\"];\n this.service = data[\"Service\"] ? Service.fromJS(data[\"Service\"]) : undefined;\n this.meter = data[\"Meter\"] ? Meter.fromJS(data[\"Meter\"]) : undefined;\n if (Array.isArray(data[\"Readings\"])) {\n this.readings = [] as any;\n for (let item of data[\"Readings\"])\n this.readings!.push(Reading.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ServiceMeter {\n data = typeof data === 'object' ? data : {};\n let result = new ServiceMeter();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkService\"] = this.pkService;\n data[\"PkMeter\"] = this.pkMeter;\n data[\"DateConnected\"] = this.dateConnected ? this.dateConnected.toISOString() : undefined;\n data[\"DateDisconnected\"] = this.dateDisconnected ? this.dateDisconnected.toISOString() : undefined;\n data[\"FkSrvMtrStatus\"] = this.fkSrvMtrStatus;\n data[\"Service\"] = this.service ? this.service.toJSON() : undefined;\n data[\"Meter\"] = this.meter ? this.meter.toJSON() : undefined;\n if (Array.isArray(this.readings)) {\n data[\"Readings\"] = [];\n for (let item of this.readings)\n data[\"Readings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IServiceMeter {\n pkService: number;\n pkMeter: number;\n dateConnected?: Date | undefined;\n dateDisconnected?: Date | undefined;\n fkSrvMtrStatus?: string | undefined;\n service?: Service | undefined;\n meter?: Meter | undefined;\n readings?: Reading[] | undefined;\n}\n\nexport class Meter implements IMeter {\n pk!: number;\n serialNo?: string | undefined;\n noOfDials!: number;\n serviceMeters?: ServiceMeter[] | undefined;\n\n constructor(data?: IMeter) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.serialNo = data[\"SerialNo\"];\n this.noOfDials = data[\"NoOfDials\"];\n if (Array.isArray(data[\"ServiceMeters\"])) {\n this.serviceMeters = [] as any;\n for (let item of data[\"ServiceMeters\"])\n this.serviceMeters!.push(ServiceMeter.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Meter {\n data = typeof data === 'object' ? data : {};\n let result = new Meter();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"SerialNo\"] = this.serialNo;\n data[\"NoOfDials\"] = this.noOfDials;\n if (Array.isArray(this.serviceMeters)) {\n data[\"ServiceMeters\"] = [];\n for (let item of this.serviceMeters)\n data[\"ServiceMeters\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IMeter {\n pk: number;\n serialNo?: string | undefined;\n noOfDials: number;\n serviceMeters?: ServiceMeter[] | undefined;\n}\n\nexport class Reading implements IReading {\n pk!: number;\n fkService?: number | undefined;\n fkMeter?: number | undefined;\n readingValue!: number;\n dateRead!: Date;\n serviceMeter?: ServiceMeter | undefined;\n\n constructor(data?: IReading) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkService = data[\"FkService\"];\n this.fkMeter = data[\"FkMeter\"];\n this.readingValue = data[\"ReadingValue\"];\n this.dateRead = data[\"DateRead\"] ? new Date(data[\"DateRead\"].toString()) : undefined;\n this.serviceMeter = data[\"ServiceMeter\"] ? ServiceMeter.fromJS(data[\"ServiceMeter\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Reading {\n data = typeof data === 'object' ? data : {};\n let result = new Reading();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkService\"] = this.fkService;\n data[\"FkMeter\"] = this.fkMeter;\n data[\"ReadingValue\"] = this.readingValue;\n data[\"DateRead\"] = this.dateRead ? this.dateRead.toISOString() : undefined;\n data[\"ServiceMeter\"] = this.serviceMeter ? this.serviceMeter.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IReading {\n pk: number;\n fkService?: number | undefined;\n fkMeter?: number | undefined;\n readingValue: number;\n dateRead: Date;\n serviceMeter?: ServiceMeter | undefined;\n}\n\nexport class AccountBalanceInfo implements IAccountBalanceInfo {\n fkActDebtorType?: string | undefined;\n pkAccount!: number;\n pkProperty!: number;\n pkPorg!: number;\n primePkPorg!: number;\n pkPorgPropRole?: string | undefined;\n fullAccountNo?: string | undefined;\n fullAddress?: string | undefined;\n fkAccountStatus?: string | undefined;\n amount!: number;\n balanceStatus!: BalanceStatus;\n paymentExtensionDueDate?: Date | undefined;\n hasPendingPaymentExtensionRequest!: boolean;\n canPay!: boolean;\n isConnected!: boolean;\n isClosed!: boolean;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n unit_no?: string | undefined;\n lastInvoice?: InvoiceHeader | undefined;\n payArrangement?: PayArrangement | undefined;\n fkInvoicePrintType?: string | undefined;\n fkAccountType?: string | undefined;\n fkPayArrStatus?: string | undefined;\n directDebitFlag?: string | undefined;\n concessionApplied!: boolean;\n\n constructor(data?: IAccountBalanceInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.fkActDebtorType = data[\"FkActDebtorType\"];\n this.pkAccount = data[\"PkAccount\"];\n this.pkProperty = data[\"PkProperty\"];\n this.pkPorg = data[\"PkPorg\"];\n this.primePkPorg = data[\"PrimePkPorg\"];\n this.pkPorgPropRole = data[\"PkPorgPropRole\"];\n this.fullAccountNo = data[\"FullAccountNo\"];\n this.fullAddress = data[\"FullAddress\"];\n this.fkAccountStatus = data[\"FkAccountStatus\"];\n this.amount = data[\"Amount\"];\n this.balanceStatus = data[\"BalanceStatus\"];\n this.paymentExtensionDueDate = data[\"PaymentExtensionDueDate\"] ? new Date(data[\"PaymentExtensionDueDate\"].toString()) : undefined;\n this.hasPendingPaymentExtensionRequest = data[\"HasPendingPaymentExtensionRequest\"];\n this.canPay = data[\"CanPay\"];\n this.isConnected = data[\"IsConnected\"];\n this.isClosed = data[\"IsClosed\"];\n this.street = data[\"Street\"];\n this.fk_street_suffix = data[\"Fk_street_suffix\"];\n this.fk_street = data[\"Fk_street\"];\n this.street_no = data[\"Street_no\"];\n this.street_no_suffix = data[\"Street_no_suffix\"];\n this.unit_no = data[\"Unit_no\"];\n this.lastInvoice = data[\"LastInvoice\"] ? InvoiceHeader.fromJS(data[\"LastInvoice\"]) : undefined;\n this.payArrangement = data[\"PayArrangement\"] ? PayArrangement.fromJS(data[\"PayArrangement\"]) : undefined;\n this.fkInvoicePrintType = data[\"FkInvoicePrintType\"];\n this.fkAccountType = data[\"FkAccountType\"];\n this.fkPayArrStatus = data[\"FkPayArrStatus\"];\n this.directDebitFlag = data[\"DirectDebitFlag\"];\n this.concessionApplied = data[\"ConcessionApplied\"];\n }\n }\n\n static fromJS(data: any): AccountBalanceInfo {\n data = typeof data === 'object' ? data : {};\n let result = new AccountBalanceInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"FkActDebtorType\"] = this.fkActDebtorType;\n data[\"PkAccount\"] = this.pkAccount;\n data[\"PkProperty\"] = this.pkProperty;\n data[\"PkPorg\"] = this.pkPorg;\n data[\"PrimePkPorg\"] = this.primePkPorg;\n data[\"PkPorgPropRole\"] = this.pkPorgPropRole;\n data[\"FullAccountNo\"] = this.fullAccountNo;\n data[\"FullAddress\"] = this.fullAddress;\n data[\"FkAccountStatus\"] = this.fkAccountStatus;\n data[\"Amount\"] = this.amount;\n data[\"BalanceStatus\"] = this.balanceStatus;\n data[\"PaymentExtensionDueDate\"] = this.paymentExtensionDueDate ? this.paymentExtensionDueDate.toISOString() : undefined;\n data[\"HasPendingPaymentExtensionRequest\"] = this.hasPendingPaymentExtensionRequest;\n data[\"CanPay\"] = this.canPay;\n data[\"IsConnected\"] = this.isConnected;\n data[\"IsClosed\"] = this.isClosed;\n data[\"Street\"] = this.street;\n data[\"Fk_street_suffix\"] = this.fk_street_suffix;\n data[\"Fk_street\"] = this.fk_street;\n data[\"Street_no\"] = this.street_no;\n data[\"Street_no_suffix\"] = this.street_no_suffix;\n data[\"Unit_no\"] = this.unit_no;\n data[\"LastInvoice\"] = this.lastInvoice ? this.lastInvoice.toJSON() : undefined;\n data[\"PayArrangement\"] = this.payArrangement ? this.payArrangement.toJSON() : undefined;\n data[\"FkInvoicePrintType\"] = this.fkInvoicePrintType;\n data[\"FkAccountType\"] = this.fkAccountType;\n data[\"FkPayArrStatus\"] = this.fkPayArrStatus;\n data[\"DirectDebitFlag\"] = this.directDebitFlag;\n data[\"ConcessionApplied\"] = this.concessionApplied;\n return data; \n }\n}\n\nexport interface IAccountBalanceInfo {\n fkActDebtorType?: string | undefined;\n pkAccount: number;\n pkProperty: number;\n pkPorg: number;\n primePkPorg: number;\n pkPorgPropRole?: string | undefined;\n fullAccountNo?: string | undefined;\n fullAddress?: string | undefined;\n fkAccountStatus?: string | undefined;\n amount: number;\n balanceStatus: BalanceStatus;\n paymentExtensionDueDate?: Date | undefined;\n hasPendingPaymentExtensionRequest: boolean;\n canPay: boolean;\n isConnected: boolean;\n isClosed: boolean;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_street?: string | undefined;\n street_no?: number | undefined;\n street_no_suffix?: string | undefined;\n unit_no?: string | undefined;\n lastInvoice?: InvoiceHeader | undefined;\n payArrangement?: PayArrangement | undefined;\n fkInvoicePrintType?: string | undefined;\n fkAccountType?: string | undefined;\n fkPayArrStatus?: string | undefined;\n directDebitFlag?: string | undefined;\n concessionApplied: boolean;\n}\n\nexport enum BalanceStatus {\n Payed = 0,\n ToBePayed = 1,\n Overdue = 2,\n DirectDebit = 3,\n PaymentArrangement = 4,\n None = 5,\n SmallOverdue = 6,\n}\n\nexport class PayArrangement implements IPayArrangement {\n pkAccount!: number;\n fkPayFrequency?: string | undefined;\n amount?: number | undefined;\n dateNextDue?: Date | undefined;\n directDebitFlag?: string | undefined;\n account?: Account | undefined;\n payFrequency?: PayFrequency | undefined;\n\n constructor(data?: IPayArrangement) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkAccount = data[\"PkAccount\"];\n this.fkPayFrequency = data[\"FkPayFrequency\"];\n this.amount = data[\"Amount\"];\n this.dateNextDue = data[\"DateNextDue\"] ? new Date(data[\"DateNextDue\"].toString()) : undefined;\n this.directDebitFlag = data[\"DirectDebitFlag\"];\n this.account = data[\"Account\"] ? Account.fromJS(data[\"Account\"]) : undefined;\n this.payFrequency = data[\"PayFrequency\"] ? PayFrequency.fromJS(data[\"PayFrequency\"]) : undefined;\n }\n }\n\n static fromJS(data: any): PayArrangement {\n data = typeof data === 'object' ? data : {};\n let result = new PayArrangement();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkAccount\"] = this.pkAccount;\n data[\"FkPayFrequency\"] = this.fkPayFrequency;\n data[\"Amount\"] = this.amount;\n data[\"DateNextDue\"] = this.dateNextDue ? this.dateNextDue.toISOString() : undefined;\n data[\"DirectDebitFlag\"] = this.directDebitFlag;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n data[\"PayFrequency\"] = this.payFrequency ? this.payFrequency.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPayArrangement {\n pkAccount: number;\n fkPayFrequency?: string | undefined;\n amount?: number | undefined;\n dateNextDue?: Date | undefined;\n directDebitFlag?: string | undefined;\n account?: Account | undefined;\n payFrequency?: PayFrequency | undefined;\n}\n\nexport class PayFrequency implements IPayFrequency {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IPayFrequency) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): PayFrequency {\n data = typeof data === 'object' ? data : {};\n let result = new PayFrequency();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IPayFrequency {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class PaymentExtensionRequest implements IPaymentExtensionRequest {\n fkAccount!: number;\n amount!: number;\n dateNextDue!: Date;\n\n constructor(data?: IPaymentExtensionRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.fkAccount = data[\"FkAccount\"];\n this.amount = data[\"Amount\"];\n this.dateNextDue = data[\"DateNextDue\"] ? new Date(data[\"DateNextDue\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): PaymentExtensionRequest {\n data = typeof data === 'object' ? data : {};\n let result = new PaymentExtensionRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"FkAccount\"] = this.fkAccount;\n data[\"Amount\"] = this.amount;\n data[\"DateNextDue\"] = this.dateNextDue ? this.dateNextDue.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IPaymentExtensionRequest {\n fkAccount: number;\n amount: number;\n dateNextDue: Date;\n}\n\nexport class UpdatePeopleInHouseholdRequest implements IUpdatePeopleInHouseholdRequest {\n pkAccount!: number;\n peopleInHousehold?: number | undefined;\n\n constructor(data?: IUpdatePeopleInHouseholdRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkAccount = data[\"PkAccount\"];\n this.peopleInHousehold = data[\"PeopleInHousehold\"];\n }\n }\n\n static fromJS(data: any): UpdatePeopleInHouseholdRequest {\n data = typeof data === 'object' ? data : {};\n let result = new UpdatePeopleInHouseholdRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkAccount\"] = this.pkAccount;\n data[\"PeopleInHousehold\"] = this.peopleInHousehold;\n return data; \n }\n}\n\nexport interface IUpdatePeopleInHouseholdRequest {\n pkAccount: number;\n peopleInHousehold?: number | undefined;\n}\n\nexport enum CheckEbillingResponse {\n None = 0,\n GuideSingleAccount = 1,\n ConfirmSwitch = 2,\n Guide = 3,\n}\n\nexport class Address implements IAddress {\n id?: string | undefined;\n buildingName?: string | undefined;\n flatNumberPrefix?: string | undefined;\n flatNumber?: string | undefined;\n flatNumberSuffix?: string | undefined;\n levelNumber?: string | undefined;\n numberFirst?: string | undefined;\n numberLast?: string | undefined;\n streetName?: string | undefined;\n streetType?: string | undefined;\n suburb?: string | undefined;\n state?: string | undefined;\n postCode?: string | undefined;\n location?: Location | undefined;\n primary!: boolean;\n streetAddress?: string | undefined;\n box_type?: string | undefined;\n detailsInSeparateCall!: boolean;\n\n constructor(data?: IAddress) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.buildingName = data[\"BuildingName\"];\n this.flatNumberPrefix = data[\"FlatNumberPrefix\"];\n this.flatNumber = data[\"FlatNumber\"];\n this.flatNumberSuffix = data[\"FlatNumberSuffix\"];\n this.levelNumber = data[\"LevelNumber\"];\n this.numberFirst = data[\"NumberFirst\"];\n this.numberLast = data[\"NumberLast\"];\n this.streetName = data[\"StreetName\"];\n this.streetType = data[\"StreetType\"];\n this.suburb = data[\"Suburb\"];\n this.state = data[\"State\"];\n this.postCode = data[\"PostCode\"];\n this.location = data[\"Location\"] ? Location.fromJS(data[\"Location\"]) : undefined;\n this.primary = data[\"Primary\"];\n this.streetAddress = data[\"StreetAddress\"];\n this.box_type = data[\"Box_type\"];\n this.detailsInSeparateCall = data[\"DetailsInSeparateCall\"];\n }\n }\n\n static fromJS(data: any): Address {\n data = typeof data === 'object' ? data : {};\n let result = new Address();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"BuildingName\"] = this.buildingName;\n data[\"FlatNumberPrefix\"] = this.flatNumberPrefix;\n data[\"FlatNumber\"] = this.flatNumber;\n data[\"FlatNumberSuffix\"] = this.flatNumberSuffix;\n data[\"LevelNumber\"] = this.levelNumber;\n data[\"NumberFirst\"] = this.numberFirst;\n data[\"NumberLast\"] = this.numberLast;\n data[\"StreetName\"] = this.streetName;\n data[\"StreetType\"] = this.streetType;\n data[\"Suburb\"] = this.suburb;\n data[\"State\"] = this.state;\n data[\"PostCode\"] = this.postCode;\n data[\"Location\"] = this.location ? this.location.toJSON() : undefined;\n data[\"Primary\"] = this.primary;\n data[\"StreetAddress\"] = this.streetAddress;\n data[\"Box_type\"] = this.box_type;\n data[\"DetailsInSeparateCall\"] = this.detailsInSeparateCall;\n return data; \n }\n}\n\nexport interface IAddress {\n id?: string | undefined;\n buildingName?: string | undefined;\n flatNumberPrefix?: string | undefined;\n flatNumber?: string | undefined;\n flatNumberSuffix?: string | undefined;\n levelNumber?: string | undefined;\n numberFirst?: string | undefined;\n numberLast?: string | undefined;\n streetName?: string | undefined;\n streetType?: string | undefined;\n suburb?: string | undefined;\n state?: string | undefined;\n postCode?: string | undefined;\n location?: Location | undefined;\n primary: boolean;\n streetAddress?: string | undefined;\n box_type?: string | undefined;\n detailsInSeparateCall: boolean;\n}\n\nexport class Location implements ILocation {\n lat!: number;\n lon!: number;\n\n constructor(data?: ILocation) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.lat = data[\"lat\"];\n this.lon = data[\"lon\"];\n }\n }\n\n static fromJS(data: any): Location {\n data = typeof data === 'object' ? data : {};\n let result = new Location();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"lat\"] = this.lat;\n data[\"lon\"] = this.lon;\n return data; \n }\n}\n\nexport interface ILocation {\n lat: number;\n lon: number;\n}\n\nexport class AnalyticsEvent implements IAnalyticsEvent {\n id!: number;\n type?: string | undefined;\n name?: string | undefined;\n data?: string | undefined;\n date!: Date;\n duration!: string;\n success!: boolean;\n userId?: string | undefined;\n user?: User | undefined;\n\n constructor(data?: IAnalyticsEvent) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.type = data[\"Type\"];\n this.name = data[\"Name\"];\n this.data = data[\"Data\"];\n this.date = data[\"Date\"] ? new Date(data[\"Date\"].toString()) : undefined;\n this.duration = data[\"Duration\"];\n this.success = data[\"Success\"];\n this.userId = data[\"UserId\"];\n this.user = data[\"User\"] ? User.fromJS(data[\"User\"]) : undefined;\n }\n }\n\n static fromJS(data: any): AnalyticsEvent {\n data = typeof data === 'object' ? data : {};\n let result = new AnalyticsEvent();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Type\"] = this.type;\n data[\"Name\"] = this.name;\n data[\"Data\"] = this.data;\n data[\"Date\"] = this.date ? this.date.toISOString() : undefined;\n data[\"Duration\"] = this.duration;\n data[\"Success\"] = this.success;\n data[\"UserId\"] = this.userId;\n data[\"User\"] = this.user ? this.user.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IAnalyticsEvent {\n id: number;\n type?: string | undefined;\n name?: string | undefined;\n data?: string | undefined;\n date: Date;\n duration: string;\n success: boolean;\n userId?: string | undefined;\n user?: User | undefined;\n}\n\nexport class IdentityUserOfString implements IIdentityUserOfString {\n id?: string | undefined;\n userName?: string | undefined;\n normalizedUserName?: string | undefined;\n email?: string | undefined;\n normalizedEmail?: string | undefined;\n emailConfirmed!: boolean;\n passwordHash?: string | undefined;\n securityStamp?: string | undefined;\n concurrencyStamp?: string | undefined;\n phoneNumber?: string | undefined;\n phoneNumberConfirmed!: boolean;\n twoFactorEnabled!: boolean;\n lockoutEnd?: Date | undefined;\n lockoutEnabled!: boolean;\n accessFailedCount!: number;\n\n constructor(data?: IIdentityUserOfString) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.userName = data[\"UserName\"];\n this.normalizedUserName = data[\"NormalizedUserName\"];\n this.email = data[\"Email\"];\n this.normalizedEmail = data[\"NormalizedEmail\"];\n this.emailConfirmed = data[\"EmailConfirmed\"];\n this.passwordHash = data[\"PasswordHash\"];\n this.securityStamp = data[\"SecurityStamp\"];\n this.concurrencyStamp = data[\"ConcurrencyStamp\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.phoneNumberConfirmed = data[\"PhoneNumberConfirmed\"];\n this.twoFactorEnabled = data[\"TwoFactorEnabled\"];\n this.lockoutEnd = data[\"LockoutEnd\"] ? new Date(data[\"LockoutEnd\"].toString()) : undefined;\n this.lockoutEnabled = data[\"LockoutEnabled\"];\n this.accessFailedCount = data[\"AccessFailedCount\"];\n }\n }\n\n static fromJS(data: any): IdentityUserOfString {\n data = typeof data === 'object' ? data : {};\n let result = new IdentityUserOfString();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"UserName\"] = this.userName;\n data[\"NormalizedUserName\"] = this.normalizedUserName;\n data[\"Email\"] = this.email;\n data[\"NormalizedEmail\"] = this.normalizedEmail;\n data[\"EmailConfirmed\"] = this.emailConfirmed;\n data[\"PasswordHash\"] = this.passwordHash;\n data[\"SecurityStamp\"] = this.securityStamp;\n data[\"ConcurrencyStamp\"] = this.concurrencyStamp;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"PhoneNumberConfirmed\"] = this.phoneNumberConfirmed;\n data[\"TwoFactorEnabled\"] = this.twoFactorEnabled;\n data[\"LockoutEnd\"] = this.lockoutEnd ? this.lockoutEnd.toISOString() : undefined;\n data[\"LockoutEnabled\"] = this.lockoutEnabled;\n data[\"AccessFailedCount\"] = this.accessFailedCount;\n return data; \n }\n}\n\nexport interface IIdentityUserOfString {\n id?: string | undefined;\n userName?: string | undefined;\n normalizedUserName?: string | undefined;\n email?: string | undefined;\n normalizedEmail?: string | undefined;\n emailConfirmed: boolean;\n passwordHash?: string | undefined;\n securityStamp?: string | undefined;\n concurrencyStamp?: string | undefined;\n phoneNumber?: string | undefined;\n phoneNumberConfirmed: boolean;\n twoFactorEnabled: boolean;\n lockoutEnd?: Date | undefined;\n lockoutEnabled: boolean;\n accessFailedCount: number;\n}\n\nexport class IdentityUser extends IdentityUserOfString implements IIdentityUser {\n\n constructor(data?: IIdentityUser) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n }\n\n static fromJS(data: any): IdentityUser {\n data = typeof data === 'object' ? data : {};\n let result = new IdentityUser();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IIdentityUser extends IIdentityUserOfString {\n}\n\nexport class User extends IdentityUser implements IUser {\n pkPorg?: number | undefined;\n otherNames?: string | undefined;\n surname?: string | undefined;\n status!: Status;\n organisationId?: number | undefined;\n customerId!: number;\n dateOfBirth?: Date | undefined;\n homePhoneNumber?: string | undefined;\n eBillingChecked!: boolean;\n inviteGuid?: string | undefined;\n timestamp?: string | undefined;\n userAdd?: string | undefined;\n dateAdd!: Date;\n userMod?: string | undefined;\n dateMod!: Date;\n roles?: IdentityUserRoleOfString[] | undefined;\n organisation?: Organisation2 | undefined;\n\n constructor(data?: IUser) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.pkPorg = data[\"PkPorg\"];\n this.otherNames = data[\"OtherNames\"];\n this.surname = data[\"Surname\"];\n this.status = data[\"Status\"];\n this.organisationId = data[\"OrganisationId\"];\n this.customerId = data[\"CustomerId\"];\n this.dateOfBirth = data[\"DateOfBirth\"] ? new Date(data[\"DateOfBirth\"].toString()) : undefined;\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.eBillingChecked = data[\"EBillingChecked\"];\n this.inviteGuid = data[\"InviteGuid\"];\n this.timestamp = data[\"Timestamp\"];\n this.userAdd = data[\"UserAdd\"];\n this.dateAdd = data[\"DateAdd\"] ? new Date(data[\"DateAdd\"].toString()) : undefined;\n this.userMod = data[\"UserMod\"];\n this.dateMod = data[\"DateMod\"] ? new Date(data[\"DateMod\"].toString()) : undefined;\n if (Array.isArray(data[\"Roles\"])) {\n this.roles = [] as any;\n for (let item of data[\"Roles\"])\n this.roles!.push(IdentityUserRoleOfString.fromJS(item));\n }\n this.organisation = data[\"Organisation\"] ? Organisation2.fromJS(data[\"Organisation\"]) : undefined;\n }\n }\n\n static fromJS(data: any): User {\n data = typeof data === 'object' ? data : {};\n let result = new User();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkPorg\"] = this.pkPorg;\n data[\"OtherNames\"] = this.otherNames;\n data[\"Surname\"] = this.surname;\n data[\"Status\"] = this.status;\n data[\"OrganisationId\"] = this.organisationId;\n data[\"CustomerId\"] = this.customerId;\n data[\"DateOfBirth\"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"EBillingChecked\"] = this.eBillingChecked;\n data[\"InviteGuid\"] = this.inviteGuid;\n data[\"Timestamp\"] = this.timestamp;\n data[\"UserAdd\"] = this.userAdd;\n data[\"DateAdd\"] = this.dateAdd ? this.dateAdd.toISOString() : undefined;\n data[\"UserMod\"] = this.userMod;\n data[\"DateMod\"] = this.dateMod ? this.dateMod.toISOString() : undefined;\n if (Array.isArray(this.roles)) {\n data[\"Roles\"] = [];\n for (let item of this.roles)\n data[\"Roles\"].push(item.toJSON());\n }\n data[\"Organisation\"] = this.organisation ? this.organisation.toJSON() : undefined;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IUser extends IIdentityUser {\n pkPorg?: number | undefined;\n otherNames?: string | undefined;\n surname?: string | undefined;\n status: Status;\n organisationId?: number | undefined;\n customerId: number;\n dateOfBirth?: Date | undefined;\n homePhoneNumber?: string | undefined;\n eBillingChecked: boolean;\n inviteGuid?: string | undefined;\n timestamp?: string | undefined;\n userAdd?: string | undefined;\n dateAdd: Date;\n userMod?: string | undefined;\n dateMod: Date;\n roles?: IdentityUserRoleOfString[] | undefined;\n organisation?: Organisation2 | undefined;\n}\n\nexport enum Status {\n Active = 1,\n Inactive = 2,\n}\n\nexport class IdentityUserRoleOfString implements IIdentityUserRoleOfString {\n userId?: string | undefined;\n roleId?: string | undefined;\n\n constructor(data?: IIdentityUserRoleOfString) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.userId = data[\"UserId\"];\n this.roleId = data[\"RoleId\"];\n }\n }\n\n static fromJS(data: any): IdentityUserRoleOfString {\n data = typeof data === 'object' ? data : {};\n let result = new IdentityUserRoleOfString();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"UserId\"] = this.userId;\n data[\"RoleId\"] = this.roleId;\n return data; \n }\n}\n\nexport interface IIdentityUserRoleOfString {\n userId?: string | undefined;\n roleId?: string | undefined;\n}\n\nexport class Entity implements IEntity {\n timestamp?: string | undefined;\n userAdd?: string | undefined;\n dateAdd!: Date;\n userMod?: string | undefined;\n dateMod!: Date;\n\n constructor(data?: IEntity) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.timestamp = data[\"Timestamp\"];\n this.userAdd = data[\"UserAdd\"];\n this.dateAdd = data[\"DateAdd\"] ? new Date(data[\"DateAdd\"].toString()) : undefined;\n this.userMod = data[\"UserMod\"];\n this.dateMod = data[\"DateMod\"] ? new Date(data[\"DateMod\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): Entity {\n data = typeof data === 'object' ? data : {};\n let result = new Entity();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Timestamp\"] = this.timestamp;\n data[\"UserAdd\"] = this.userAdd;\n data[\"DateAdd\"] = this.dateAdd ? this.dateAdd.toISOString() : undefined;\n data[\"UserMod\"] = this.userMod;\n data[\"DateMod\"] = this.dateMod ? this.dateMod.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IEntity {\n timestamp?: string | undefined;\n userAdd?: string | undefined;\n dateAdd: Date;\n userMod?: string | undefined;\n dateMod: Date;\n}\n\nexport class Organisation2 extends Entity implements IOrganisation2 {\n id!: number;\n name?: string | undefined;\n abn?: string | undefined;\n status!: Status;\n\n constructor(data?: IOrganisation2) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.id = data[\"Id\"];\n this.name = data[\"Name\"];\n this.abn = data[\"Abn\"];\n this.status = data[\"Status\"];\n }\n }\n\n static fromJS(data: any): Organisation2 {\n data = typeof data === 'object' ? data : {};\n let result = new Organisation2();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Name\"] = this.name;\n data[\"Abn\"] = this.abn;\n data[\"Status\"] = this.status;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IOrganisation2 extends IEntity {\n id: number;\n name?: string | undefined;\n abn?: string | undefined;\n status: Status;\n}\n\nexport class GetMonthlyUserRegistrationsResponse implements IGetMonthlyUserRegistrationsResponse {\n monthlyUserRegistrations?: MonthlyUserRegistration[] | undefined;\n\n constructor(data?: IGetMonthlyUserRegistrationsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"MonthlyUserRegistrations\"])) {\n this.monthlyUserRegistrations = [] as any;\n for (let item of data[\"MonthlyUserRegistrations\"])\n this.monthlyUserRegistrations!.push(MonthlyUserRegistration.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): GetMonthlyUserRegistrationsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetMonthlyUserRegistrationsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.monthlyUserRegistrations)) {\n data[\"MonthlyUserRegistrations\"] = [];\n for (let item of this.monthlyUserRegistrations)\n data[\"MonthlyUserRegistrations\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IGetMonthlyUserRegistrationsResponse {\n monthlyUserRegistrations?: MonthlyUserRegistration[] | undefined;\n}\n\nexport class MonthlyUserRegistration implements IMonthlyUserRegistration {\n year!: number;\n month!: number;\n count!: number;\n\n constructor(data?: IMonthlyUserRegistration) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.year = data[\"Year\"];\n this.month = data[\"Month\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): MonthlyUserRegistration {\n data = typeof data === 'object' ? data : {};\n let result = new MonthlyUserRegistration();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Year\"] = this.year;\n data[\"Month\"] = this.month;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface IMonthlyUserRegistration {\n year: number;\n month: number;\n count: number;\n}\n\nexport class GetStatisticsRequest implements IGetStatisticsRequest {\n from!: Date;\n to!: Date;\n\n constructor(data?: IGetStatisticsRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.from = data[\"From\"] ? new Date(data[\"From\"].toString()) : undefined;\n this.to = data[\"To\"] ? new Date(data[\"To\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): GetStatisticsRequest {\n data = typeof data === 'object' ? data : {};\n let result = new GetStatisticsRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"From\"] = this.from ? this.from.toISOString() : undefined;\n data[\"To\"] = this.to ? this.to.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IGetStatisticsRequest {\n from: Date;\n to: Date;\n}\n\nexport class GetWebRequestCountsResponse implements IGetWebRequestCountsResponse {\n webRequests?: { [key: string]: number; } | undefined;\n\n constructor(data?: IGetWebRequestCountsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (data[\"WebRequests\"]) {\n this.webRequests = {} as any;\n for (let key in data[\"WebRequests\"]) {\n if (data[\"WebRequests\"].hasOwnProperty(key))\n this.webRequests![key] = data[\"WebRequests\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): GetWebRequestCountsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetWebRequestCountsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (this.webRequests) {\n data[\"WebRequests\"] = {};\n for (let key in this.webRequests) {\n if (this.webRequests.hasOwnProperty(key))\n data[\"WebRequests\"][key] = this.webRequests[key];\n }\n }\n return data; \n }\n}\n\nexport interface IGetWebRequestCountsResponse {\n webRequests?: { [key: string]: number; } | undefined;\n}\n\nexport class GetPageVisitCountsResponse implements IGetPageVisitCountsResponse {\n pageVisits?: { [key: string]: number; } | undefined;\n\n constructor(data?: IGetPageVisitCountsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (data[\"PageVisits\"]) {\n this.pageVisits = {} as any;\n for (let key in data[\"PageVisits\"]) {\n if (data[\"PageVisits\"].hasOwnProperty(key))\n this.pageVisits![key] = data[\"PageVisits\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): GetPageVisitCountsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetPageVisitCountsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (this.pageVisits) {\n data[\"PageVisits\"] = {};\n for (let key in this.pageVisits) {\n if (this.pageVisits.hasOwnProperty(key))\n data[\"PageVisits\"][key] = this.pageVisits[key];\n }\n }\n return data; \n }\n}\n\nexport interface IGetPageVisitCountsResponse {\n pageVisits?: { [key: string]: number; } | undefined;\n}\n\nexport class GetPaymentCountsResponse implements IGetPaymentCountsResponse {\n payments?: MonthlyPayment[] | undefined;\n\n constructor(data?: IGetPaymentCountsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Payments\"])) {\n this.payments = [] as any;\n for (let item of data[\"Payments\"])\n this.payments!.push(MonthlyPayment.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): GetPaymentCountsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetPaymentCountsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.payments)) {\n data[\"Payments\"] = [];\n for (let item of this.payments)\n data[\"Payments\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IGetPaymentCountsResponse {\n payments?: MonthlyPayment[] | undefined;\n}\n\nexport class MonthlyPayment implements IMonthlyPayment {\n year!: number;\n month!: number;\n count!: number;\n amount!: number;\n\n constructor(data?: IMonthlyPayment) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.year = data[\"Year\"];\n this.month = data[\"Month\"];\n this.count = data[\"Count\"];\n this.amount = data[\"Amount\"];\n }\n }\n\n static fromJS(data: any): MonthlyPayment {\n data = typeof data === 'object' ? data : {};\n let result = new MonthlyPayment();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Year\"] = this.year;\n data[\"Month\"] = this.month;\n data[\"Count\"] = this.count;\n data[\"Amount\"] = this.amount;\n return data; \n }\n}\n\nexport interface IMonthlyPayment {\n year: number;\n month: number;\n count: number;\n amount: number;\n}\n\nexport class GenerateTokenResponse implements IGenerateTokenResponse {\n token?: string | undefined;\n refreshToken?: string | undefined;\n tokenExpiryDate?: string | undefined;\n\n constructor(data?: IGenerateTokenResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.token = data[\"token\"];\n this.refreshToken = data[\"refreshToken\"];\n this.tokenExpiryDate = data[\"tokenExpiryDate\"];\n }\n }\n\n static fromJS(data: any): GenerateTokenResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GenerateTokenResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"token\"] = this.token;\n data[\"refreshToken\"] = this.refreshToken;\n data[\"tokenExpiryDate\"] = this.tokenExpiryDate;\n return data; \n }\n}\n\nexport interface IGenerateTokenResponse {\n token?: string | undefined;\n refreshToken?: string | undefined;\n tokenExpiryDate?: string | undefined;\n}\n\nexport class GenerateTokenRequest implements IGenerateTokenRequest {\n user?: string | undefined;\n password?: string | undefined;\n rememberMe!: boolean;\n\n constructor(data?: IGenerateTokenRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.user = data[\"User\"];\n this.password = data[\"Password\"];\n this.rememberMe = data[\"RememberMe\"];\n }\n }\n\n static fromJS(data: any): GenerateTokenRequest {\n data = typeof data === 'object' ? data : {};\n let result = new GenerateTokenRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"User\"] = this.user;\n data[\"Password\"] = this.password;\n data[\"RememberMe\"] = this.rememberMe;\n return data; \n }\n}\n\nexport interface IGenerateTokenRequest {\n user?: string | undefined;\n password?: string | undefined;\n rememberMe: boolean;\n}\n\nexport class RefreshTokenRequest implements IRefreshTokenRequest {\n grant_type?: string | undefined;\n refresh_token?: string | undefined;\n\n constructor(data?: IRefreshTokenRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.grant_type = data[\"grant_type\"];\n this.refresh_token = data[\"refresh_token\"];\n }\n }\n\n static fromJS(data: any): RefreshTokenRequest {\n data = typeof data === 'object' ? data : {};\n let result = new RefreshTokenRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"grant_type\"] = this.grant_type;\n data[\"refresh_token\"] = this.refresh_token;\n return data; \n }\n}\n\nexport interface IRefreshTokenRequest {\n grant_type?: string | undefined;\n refresh_token?: string | undefined;\n}\n\nexport class GetUserClaimsResponse implements IGetUserClaimsResponse {\n pkPorg?: number | undefined;\n userid?: string | undefined;\n role?: string | undefined;\n givenName?: string | undefined;\n surname?: string | undefined;\n permission?: string[] | undefined;\n status?: string | undefined;\n\n constructor(data?: IGetUserClaimsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkPorg = data[\"pkPorg\"];\n this.userid = data[\"userid\"];\n this.role = data[\"role\"];\n this.givenName = data[\"givenName\"];\n this.surname = data[\"surname\"];\n if (Array.isArray(data[\"permission\"])) {\n this.permission = [] as any;\n for (let item of data[\"permission\"])\n this.permission!.push(item);\n }\n this.status = data[\"status\"];\n }\n }\n\n static fromJS(data: any): GetUserClaimsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetUserClaimsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"pkPorg\"] = this.pkPorg;\n data[\"userid\"] = this.userid;\n data[\"role\"] = this.role;\n data[\"givenName\"] = this.givenName;\n data[\"surname\"] = this.surname;\n if (Array.isArray(this.permission)) {\n data[\"permission\"] = [];\n for (let item of this.permission)\n data[\"permission\"].push(item);\n }\n data[\"status\"] = this.status;\n return data; \n }\n}\n\nexport interface IGetUserClaimsResponse {\n pkPorg?: number | undefined;\n userid?: string | undefined;\n role?: string | undefined;\n givenName?: string | undefined;\n surname?: string | undefined;\n permission?: string[] | undefined;\n status?: string | undefined;\n}\n\nexport class GetUserClaimsRequest implements IGetUserClaimsRequest {\n email!: string;\n\n constructor(data?: IGetUserClaimsRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.email = data[\"Email\"];\n }\n }\n\n static fromJS(data: any): GetUserClaimsRequest {\n data = typeof data === 'object' ? data : {};\n let result = new GetUserClaimsRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Email\"] = this.email;\n return data; \n }\n}\n\nexport interface IGetUserClaimsRequest {\n email: string;\n}\n\nexport class B2CRestApiResponse implements IB2CRestApiResponse {\n version?: string | undefined;\n status!: number;\n code?: string | undefined;\n userMessage?: string | undefined;\n developerMessage?: string | undefined;\n requestId?: string | undefined;\n moreInfo?: string | undefined;\n\n constructor(data?: IB2CRestApiResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.version = data[\"version\"];\n this.status = data[\"status\"];\n this.code = data[\"code\"];\n this.userMessage = data[\"userMessage\"];\n this.developerMessage = data[\"developerMessage\"];\n this.requestId = data[\"requestId\"];\n this.moreInfo = data[\"moreInfo\"];\n }\n }\n\n static fromJS(data: any): B2CRestApiResponse {\n data = typeof data === 'object' ? data : {};\n let result = new B2CRestApiResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"version\"] = this.version;\n data[\"status\"] = this.status;\n data[\"code\"] = this.code;\n data[\"userMessage\"] = this.userMessage;\n data[\"developerMessage\"] = this.developerMessage;\n data[\"requestId\"] = this.requestId;\n data[\"moreInfo\"] = this.moreInfo;\n return data; \n }\n}\n\nexport interface IB2CRestApiResponse {\n version?: string | undefined;\n status: number;\n code?: string | undefined;\n userMessage?: string | undefined;\n developerMessage?: string | undefined;\n requestId?: string | undefined;\n moreInfo?: string | undefined;\n}\n\nexport class CreateUserRequest implements ICreateUserRequest {\n email!: string;\n role!: string;\n pkPorg?: number | undefined;\n organisationId?: number | undefined;\n givenName!: string;\n surname!: string;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n dateOfBirth?: Date | undefined;\n inviteGuid!: string;\n\n constructor(data?: ICreateUserRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.email = data[\"Email\"];\n this.role = data[\"Role\"];\n this.pkPorg = data[\"PkPorg\"];\n this.organisationId = data[\"OrganisationId\"];\n this.givenName = data[\"GivenName\"];\n this.surname = data[\"Surname\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.dateOfBirth = data[\"DateOfBirth\"] ? new Date(data[\"DateOfBirth\"].toString()) : undefined;\n this.inviteGuid = data[\"InviteGuid\"];\n }\n }\n\n static fromJS(data: any): CreateUserRequest {\n data = typeof data === 'object' ? data : {};\n let result = new CreateUserRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Email\"] = this.email;\n data[\"Role\"] = this.role;\n data[\"PkPorg\"] = this.pkPorg;\n data[\"OrganisationId\"] = this.organisationId;\n data[\"GivenName\"] = this.givenName;\n data[\"Surname\"] = this.surname;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"DateOfBirth\"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined;\n data[\"InviteGuid\"] = this.inviteGuid;\n return data; \n }\n}\n\nexport interface ICreateUserRequest {\n email: string;\n role: string;\n pkPorg?: number | undefined;\n organisationId?: number | undefined;\n givenName: string;\n surname: string;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n dateOfBirth?: Date | undefined;\n inviteGuid: string;\n}\n\nexport class NewUserDetails implements INewUserDetails {\n roleId!: string;\n surname!: string;\n otherNames!: string;\n email?: string | undefined;\n password?: string | undefined;\n accountNumber?: string | undefined;\n invoice!: number;\n dateOfBirth?: Date | undefined;\n agencyOrganisationId?: number | undefined;\n organisationName?: string | undefined;\n abn?: string | undefined;\n sundryDebtorAccountNumber?: number | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n\n constructor(data?: INewUserDetails) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.roleId = data[\"RoleId\"];\n this.surname = data[\"Surname\"];\n this.otherNames = data[\"OtherNames\"];\n this.email = data[\"Email\"];\n this.password = data[\"Password\"];\n this.accountNumber = data[\"AccountNumber\"];\n this.invoice = data[\"Invoice\"];\n this.dateOfBirth = data[\"DateOfBirth\"] ? new Date(data[\"DateOfBirth\"].toString()) : undefined;\n this.agencyOrganisationId = data[\"AgencyOrganisationId\"];\n this.organisationName = data[\"OrganisationName\"];\n this.abn = data[\"Abn\"];\n this.sundryDebtorAccountNumber = data[\"SundryDebtorAccountNumber\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n }\n }\n\n static fromJS(data: any): NewUserDetails {\n data = typeof data === 'object' ? data : {};\n let result = new NewUserDetails();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"RoleId\"] = this.roleId;\n data[\"Surname\"] = this.surname;\n data[\"OtherNames\"] = this.otherNames;\n data[\"Email\"] = this.email;\n data[\"Password\"] = this.password;\n data[\"AccountNumber\"] = this.accountNumber;\n data[\"Invoice\"] = this.invoice;\n data[\"DateOfBirth\"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined;\n data[\"AgencyOrganisationId\"] = this.agencyOrganisationId;\n data[\"OrganisationName\"] = this.organisationName;\n data[\"Abn\"] = this.abn;\n data[\"SundryDebtorAccountNumber\"] = this.sundryDebtorAccountNumber;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n return data; \n }\n}\n\nexport interface INewUserDetails {\n roleId: string;\n surname: string;\n otherNames: string;\n email?: string | undefined;\n password?: string | undefined;\n accountNumber?: string | undefined;\n invoice: number;\n dateOfBirth?: Date | undefined;\n agencyOrganisationId?: number | undefined;\n organisationName?: string | undefined;\n abn?: string | undefined;\n sundryDebtorAccountNumber?: number | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n}\n\nexport class GetServerDateResponse implements IGetServerDateResponse {\n date?: string | undefined;\n\n constructor(data?: IGetServerDateResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.date = data[\"Date\"];\n }\n }\n\n static fromJS(data: any): GetServerDateResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetServerDateResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Date\"] = this.date;\n return data; \n }\n}\n\nexport interface IGetServerDateResponse {\n date?: string | undefined;\n}\n\nexport class GetVersionsResponse implements IGetVersionsResponse {\n portalVersion?: string | undefined;\n\n constructor(data?: IGetVersionsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.portalVersion = data[\"PortalVersion\"];\n }\n }\n\n static fromJS(data: any): GetVersionsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetVersionsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PortalVersion\"] = this.portalVersion;\n return data; \n }\n}\n\nexport interface IGetVersionsResponse {\n portalVersion?: string | undefined;\n}\n\nexport class SearchResponseOfInvoiceHeader implements ISearchResponseOfInvoiceHeader {\n items?: InvoiceHeader[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfInvoiceHeader) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(InvoiceHeader.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfInvoiceHeader {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfInvoiceHeader();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfInvoiceHeader {\n items?: InvoiceHeader[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class MeterInfo implements IMeterInfo {\n meter?: Meter | undefined;\n lastReading?: Reading | undefined;\n account?: AccountInfo | undefined;\n\n constructor(data?: IMeterInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.meter = data[\"Meter\"] ? Meter.fromJS(data[\"Meter\"]) : undefined;\n this.lastReading = data[\"LastReading\"] ? Reading.fromJS(data[\"LastReading\"]) : undefined;\n this.account = data[\"Account\"] ? AccountInfo.fromJS(data[\"Account\"]) : undefined;\n }\n }\n\n static fromJS(data: any): MeterInfo {\n data = typeof data === 'object' ? data : {};\n let result = new MeterInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Meter\"] = this.meter ? this.meter.toJSON() : undefined;\n data[\"LastReading\"] = this.lastReading ? this.lastReading.toJSON() : undefined;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IMeterInfo {\n meter?: Meter | undefined;\n lastReading?: Reading | undefined;\n account?: AccountInfo | undefined;\n}\n\nexport class VolumePeriod implements IVolumePeriod {\n pkService!: number;\n pkVolumePeriodType?: string | undefined;\n pkDate!: Date;\n fkFinancialYear!: number;\n reading!: number;\n volume!: number;\n manualFlag?: string | undefined;\n\n constructor(data?: IVolumePeriod) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkService = data[\"PkService\"];\n this.pkVolumePeriodType = data[\"PkVolumePeriodType\"];\n this.pkDate = data[\"PkDate\"] ? new Date(data[\"PkDate\"].toString()) : undefined;\n this.fkFinancialYear = data[\"FkFinancialYear\"];\n this.reading = data[\"Reading\"];\n this.volume = data[\"Volume\"];\n this.manualFlag = data[\"ManualFlag\"];\n }\n }\n\n static fromJS(data: any): VolumePeriod {\n data = typeof data === 'object' ? data : {};\n let result = new VolumePeriod();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkService\"] = this.pkService;\n data[\"PkVolumePeriodType\"] = this.pkVolumePeriodType;\n data[\"PkDate\"] = this.pkDate ? this.pkDate.toISOString() : undefined;\n data[\"FkFinancialYear\"] = this.fkFinancialYear;\n data[\"Reading\"] = this.reading;\n data[\"Volume\"] = this.volume;\n data[\"ManualFlag\"] = this.manualFlag;\n return data; \n }\n}\n\nexport interface IVolumePeriod {\n pkService: number;\n pkVolumePeriodType?: string | undefined;\n pkDate: Date;\n fkFinancialYear: number;\n reading: number;\n volume: number;\n manualFlag?: string | undefined;\n}\n\nexport class VolumePeriodType implements IVolumePeriodType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IVolumePeriodType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): VolumePeriodType {\n data = typeof data === 'object' ? data : {};\n let result = new VolumePeriodType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IVolumePeriodType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class SearchResponseOfOrganisation implements ISearchResponseOfOrganisation {\n items?: Organisation2[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfOrganisation) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(Organisation2.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfOrganisation {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfOrganisation();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfOrganisation {\n items?: Organisation2[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class Payment extends Entity implements IPayment {\n id?: string | undefined;\n status!: PaymentStatus;\n transactionId?: string | undefined;\n receiptNumber?: string | undefined;\n cardNumber?: string | undefined;\n expiryDateMonth?: string | undefined;\n expiryDateYear?: string | undefined;\n cardScheme?: string | undefined;\n cardholderName?: string | undefined;\n surchargePercentage?: number | undefined;\n principalAmount?: number | undefined;\n surchargeAmount?: number | undefined;\n transactionDateTime?: Date | undefined;\n settlementDate?: Date | undefined;\n declinedDate?: Date | undefined;\n customerIpAddress?: string | undefined;\n providerStatus?: string | undefined;\n userId!: string;\n responseCode?: string | undefined;\n responseText?: string | undefined;\n responseDetail?: string | undefined;\n webRequestGuid?: string | undefined;\n fkAccount?: number | undefined;\n\n constructor(data?: IPayment) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.id = data[\"Id\"];\n this.status = data[\"Status\"];\n this.transactionId = data[\"TransactionId\"];\n this.receiptNumber = data[\"ReceiptNumber\"];\n this.cardNumber = data[\"CardNumber\"];\n this.expiryDateMonth = data[\"ExpiryDateMonth\"];\n this.expiryDateYear = data[\"ExpiryDateYear\"];\n this.cardScheme = data[\"CardScheme\"];\n this.cardholderName = data[\"CardholderName\"];\n this.surchargePercentage = data[\"SurchargePercentage\"];\n this.principalAmount = data[\"PrincipalAmount\"];\n this.surchargeAmount = data[\"SurchargeAmount\"];\n this.transactionDateTime = data[\"TransactionDateTime\"] ? new Date(data[\"TransactionDateTime\"].toString()) : undefined;\n this.settlementDate = data[\"SettlementDate\"] ? new Date(data[\"SettlementDate\"].toString()) : undefined;\n this.declinedDate = data[\"DeclinedDate\"] ? new Date(data[\"DeclinedDate\"].toString()) : undefined;\n this.customerIpAddress = data[\"CustomerIpAddress\"];\n this.providerStatus = data[\"ProviderStatus\"];\n this.userId = data[\"UserId\"];\n this.responseCode = data[\"ResponseCode\"];\n this.responseText = data[\"ResponseText\"];\n this.responseDetail = data[\"ResponseDetail\"];\n this.webRequestGuid = data[\"WebRequestGuid\"];\n this.fkAccount = data[\"FkAccount\"];\n }\n }\n\n static fromJS(data: any): Payment {\n data = typeof data === 'object' ? data : {};\n let result = new Payment();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Status\"] = this.status;\n data[\"TransactionId\"] = this.transactionId;\n data[\"ReceiptNumber\"] = this.receiptNumber;\n data[\"CardNumber\"] = this.cardNumber;\n data[\"ExpiryDateMonth\"] = this.expiryDateMonth;\n data[\"ExpiryDateYear\"] = this.expiryDateYear;\n data[\"CardScheme\"] = this.cardScheme;\n data[\"CardholderName\"] = this.cardholderName;\n data[\"SurchargePercentage\"] = this.surchargePercentage;\n data[\"PrincipalAmount\"] = this.principalAmount;\n data[\"SurchargeAmount\"] = this.surchargeAmount;\n data[\"TransactionDateTime\"] = this.transactionDateTime ? this.transactionDateTime.toISOString() : undefined;\n data[\"SettlementDate\"] = this.settlementDate ? this.settlementDate.toISOString() : undefined;\n data[\"DeclinedDate\"] = this.declinedDate ? this.declinedDate.toISOString() : undefined;\n data[\"CustomerIpAddress\"] = this.customerIpAddress;\n data[\"ProviderStatus\"] = this.providerStatus;\n data[\"UserId\"] = this.userId;\n data[\"ResponseCode\"] = this.responseCode;\n data[\"ResponseText\"] = this.responseText;\n data[\"ResponseDetail\"] = this.responseDetail;\n data[\"WebRequestGuid\"] = this.webRequestGuid;\n data[\"FkAccount\"] = this.fkAccount;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPayment extends IEntity {\n id?: string | undefined;\n status: PaymentStatus;\n transactionId?: string | undefined;\n receiptNumber?: string | undefined;\n cardNumber?: string | undefined;\n expiryDateMonth?: string | undefined;\n expiryDateYear?: string | undefined;\n cardScheme?: string | undefined;\n cardholderName?: string | undefined;\n surchargePercentage?: number | undefined;\n principalAmount?: number | undefined;\n surchargeAmount?: number | undefined;\n transactionDateTime?: Date | undefined;\n settlementDate?: Date | undefined;\n declinedDate?: Date | undefined;\n customerIpAddress?: string | undefined;\n providerStatus?: string | undefined;\n userId: string;\n responseCode?: string | undefined;\n responseText?: string | undefined;\n responseDetail?: string | undefined;\n webRequestGuid?: string | undefined;\n fkAccount?: number | undefined;\n}\n\nexport class TakeInfoStatementPaymentRequest implements ITakeInfoStatementPaymentRequest {\n webRequestGuid!: string;\n paymentTokenInfo!: PaymentTokenInfo;\n\n constructor(data?: ITakeInfoStatementPaymentRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.paymentTokenInfo = new PaymentTokenInfo();\n }\n }\n\n init(data?: any) {\n if (data) {\n this.webRequestGuid = data[\"WebRequestGuid\"];\n this.paymentTokenInfo = data[\"PaymentTokenInfo\"] ? PaymentTokenInfo.fromJS(data[\"PaymentTokenInfo\"]) : new PaymentTokenInfo();\n }\n }\n\n static fromJS(data: any): TakeInfoStatementPaymentRequest {\n data = typeof data === 'object' ? data : {};\n let result = new TakeInfoStatementPaymentRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"WebRequestGuid\"] = this.webRequestGuid;\n data[\"PaymentTokenInfo\"] = this.paymentTokenInfo ? this.paymentTokenInfo.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface ITakeInfoStatementPaymentRequest {\n webRequestGuid: string;\n paymentTokenInfo: PaymentTokenInfo;\n}\n\nexport class PaymentTokenInfo implements IPaymentTokenInfo {\n token!: string;\n maskedCardNumber?: string | undefined;\n cardScheme?: string | undefined;\n cardholderName?: string | undefined;\n surchargePercentage!: number;\n\n constructor(data?: IPaymentTokenInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.token = data[\"Token\"];\n this.maskedCardNumber = data[\"MaskedCardNumber\"];\n this.cardScheme = data[\"CardScheme\"];\n this.cardholderName = data[\"CardholderName\"];\n this.surchargePercentage = data[\"SurchargePercentage\"];\n }\n }\n\n static fromJS(data: any): PaymentTokenInfo {\n data = typeof data === 'object' ? data : {};\n let result = new PaymentTokenInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Token\"] = this.token;\n data[\"MaskedCardNumber\"] = this.maskedCardNumber;\n data[\"CardScheme\"] = this.cardScheme;\n data[\"CardholderName\"] = this.cardholderName;\n data[\"SurchargePercentage\"] = this.surchargePercentage;\n return data; \n }\n}\n\nexport interface IPaymentTokenInfo {\n token: string;\n maskedCardNumber?: string | undefined;\n cardScheme?: string | undefined;\n cardholderName?: string | undefined;\n surchargePercentage: number;\n}\n\nexport class TakeAccountPaymentRequest implements ITakeAccountPaymentRequest {\n accountPk!: number;\n amount!: number;\n paymentTokenInfo!: PaymentTokenInfo;\n\n constructor(data?: ITakeAccountPaymentRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.paymentTokenInfo = new PaymentTokenInfo();\n }\n }\n\n init(data?: any) {\n if (data) {\n this.accountPk = data[\"AccountPk\"];\n this.amount = data[\"Amount\"];\n this.paymentTokenInfo = data[\"PaymentTokenInfo\"] ? PaymentTokenInfo.fromJS(data[\"PaymentTokenInfo\"]) : new PaymentTokenInfo();\n }\n }\n\n static fromJS(data: any): TakeAccountPaymentRequest {\n data = typeof data === 'object' ? data : {};\n let result = new TakeAccountPaymentRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"AccountPk\"] = this.accountPk;\n data[\"Amount\"] = this.amount;\n data[\"PaymentTokenInfo\"] = this.paymentTokenInfo ? this.paymentTokenInfo.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface ITakeAccountPaymentRequest {\n accountPk: number;\n amount: number;\n paymentTokenInfo: PaymentTokenInfo;\n}\n\nexport class Surcharge implements ISurcharge {\n cardScheme?: string | undefined;\n cardType?: string | undefined;\n surchargePercentage!: number;\n\n constructor(data?: ISurcharge) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.cardScheme = data[\"CardScheme\"];\n this.cardType = data[\"CardType\"];\n this.surchargePercentage = data[\"SurchargePercentage\"];\n }\n }\n\n static fromJS(data: any): Surcharge {\n data = typeof data === 'object' ? data : {};\n let result = new Surcharge();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"CardScheme\"] = this.cardScheme;\n data[\"CardType\"] = this.cardType;\n data[\"SurchargePercentage\"] = this.surchargePercentage;\n return data; \n }\n}\n\nexport interface ISurcharge {\n cardScheme?: string | undefined;\n cardType?: string | undefined;\n surchargePercentage: number;\n}\n\nexport class SearchResponseOfPaymentInfo implements ISearchResponseOfPaymentInfo {\n items?: PaymentInfo[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfPaymentInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(PaymentInfo.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfPaymentInfo {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfPaymentInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfPaymentInfo {\n items?: PaymentInfo[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class PaymentInfo implements IPaymentInfo {\n id?: string | undefined;\n status!: PaymentStatus;\n receiptNumber?: string | undefined;\n amount!: number;\n addDate!: Date;\n userId?: string | undefined;\n webRequestGuid?: string | undefined;\n userEmail?: string | undefined;\n\n constructor(data?: IPaymentInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.status = data[\"Status\"];\n this.receiptNumber = data[\"ReceiptNumber\"];\n this.amount = data[\"Amount\"];\n this.addDate = data[\"AddDate\"] ? new Date(data[\"AddDate\"].toString()) : undefined;\n this.userId = data[\"UserId\"];\n this.webRequestGuid = data[\"WebRequestGuid\"];\n this.userEmail = data[\"UserEmail\"];\n }\n }\n\n static fromJS(data: any): PaymentInfo {\n data = typeof data === 'object' ? data : {};\n let result = new PaymentInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Status\"] = this.status;\n data[\"ReceiptNumber\"] = this.receiptNumber;\n data[\"Amount\"] = this.amount;\n data[\"AddDate\"] = this.addDate ? this.addDate.toISOString() : undefined;\n data[\"UserId\"] = this.userId;\n data[\"WebRequestGuid\"] = this.webRequestGuid;\n data[\"UserEmail\"] = this.userEmail;\n return data; \n }\n}\n\nexport interface IPaymentInfo {\n id?: string | undefined;\n status: PaymentStatus;\n receiptNumber?: string | undefined;\n amount: number;\n addDate: Date;\n userId?: string | undefined;\n webRequestGuid?: string | undefined;\n userEmail?: string | undefined;\n}\n\nexport class PropertyInfo implements IPropertyInfo {\n pkProperty!: number;\n fullAddress?: string | undefined;\n\n constructor(data?: IPropertyInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pkProperty = data[\"PkProperty\"];\n this.fullAddress = data[\"FullAddress\"];\n }\n }\n\n static fromJS(data: any): PropertyInfo {\n data = typeof data === 'object' ? data : {};\n let result = new PropertyInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PkProperty\"] = this.pkProperty;\n data[\"FullAddress\"] = this.fullAddress;\n return data; \n }\n}\n\nexport interface IPropertyInfo {\n pkProperty: number;\n fullAddress?: string | undefined;\n}\n\nexport class UnitType implements IUnitType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IUnitType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): UnitType {\n data = typeof data === 'object' ? data : {};\n let result = new UnitType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IUnitType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class StreetSuffix implements IStreetSuffix {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IStreetSuffix) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): StreetSuffix {\n data = typeof data === 'object' ? data : {};\n let result = new StreetSuffix();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IStreetSuffix {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class Suburb implements ISuburb {\n code?: string | undefined;\n description?: string | undefined;\n postcode!: number;\n\n constructor(data?: ISuburb) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n this.postcode = data[\"Postcode\"];\n }\n }\n\n static fromJS(data: any): Suburb {\n data = typeof data === 'object' ? data : {};\n let result = new Suburb();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n data[\"Postcode\"] = this.postcode;\n return data; \n }\n}\n\nexport interface ISuburb {\n code?: string | undefined;\n description?: string | undefined;\n postcode: number;\n}\n\nexport class PermissionOfPermissionCode implements IPermissionOfPermissionCode {\n code!: PermissionCode;\n name?: string | undefined;\n\n constructor(data?: IPermissionOfPermissionCode) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.name = data[\"Name\"];\n }\n }\n\n static fromJS(data: any): PermissionOfPermissionCode {\n data = typeof data === 'object' ? data : {};\n let result = new PermissionOfPermissionCode();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Name\"] = this.name;\n return data; \n }\n}\n\nexport interface IPermissionOfPermissionCode {\n code: PermissionCode;\n name?: string | undefined;\n}\n\nexport class Permission extends PermissionOfPermissionCode implements IPermission {\n\n constructor(data?: IPermission) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n }\n\n static fromJS(data: any): Permission {\n data = typeof data === 'object' ? data : {};\n let result = new Permission();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPermission extends IPermissionOfPermissionCode {\n}\n\nexport enum PermissionCode {\n SearchUsers = 1,\n EditUsers = 2,\n InviteUsers = 3,\n ManageRoles = 4,\n ManageOrganisations = 5,\n SubmitTenancy = 6,\n SubmitMeterReading = 7,\n SubmitEmailInvoice = 8,\n GetAccountDetails = 9,\n ChangeName = 10,\n ChangeAddress = 11,\n PayAccount = 12,\n LinkAccount = 13,\n SubmitInformationStatement = 14,\n SearchProperties = 15,\n SearchPayments = 16,\n AutocompleteAddress = 17,\n GetSurcharges = 18,\n GetBPointAuthKey = 19,\n SearchAquaRateAccounts = 20,\n GetMyOrganisation = 21,\n EditProfileName = 22,\n GetPaymentDetails = 23,\n SubmitDirectDebit = 24,\n EditSettings = 25,\n GetStatistics = 26,\n SearchAccountPayments = 27,\n SearchInvoices = 28,\n ChangeCustomerDetails = 29,\n ChangeUserStatus = 30,\n SubmitConcession = 31,\n SubmitPaymentArrangement = 32,\n}\n\nexport class IdentityRoleOfString implements IIdentityRoleOfString {\n id?: string | undefined;\n name?: string | undefined;\n normalizedName?: string | undefined;\n concurrencyStamp?: string | undefined;\n\n constructor(data?: IIdentityRoleOfString) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.name = data[\"Name\"];\n this.normalizedName = data[\"NormalizedName\"];\n this.concurrencyStamp = data[\"ConcurrencyStamp\"];\n }\n }\n\n static fromJS(data: any): IdentityRoleOfString {\n data = typeof data === 'object' ? data : {};\n let result = new IdentityRoleOfString();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Name\"] = this.name;\n data[\"NormalizedName\"] = this.normalizedName;\n data[\"ConcurrencyStamp\"] = this.concurrencyStamp;\n return data; \n }\n}\n\nexport interface IIdentityRoleOfString {\n id?: string | undefined;\n name?: string | undefined;\n normalizedName?: string | undefined;\n concurrencyStamp?: string | undefined;\n}\n\nexport class IdentityRole extends IdentityRoleOfString implements IIdentityRole {\n\n constructor(data?: IIdentityRole) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n }\n\n static fromJS(data: any): IdentityRole {\n data = typeof data === 'object' ? data : {};\n let result = new IdentityRole();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IIdentityRole extends IIdentityRoleOfString {\n}\n\nexport class Role extends IdentityRole implements IRole {\n displayName?: string | undefined;\n isActive!: boolean;\n isSelfRegister!: boolean;\n showOnRegister!: boolean;\n\n constructor(data?: IRole) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.displayName = data[\"DisplayName\"];\n this.isActive = data[\"IsActive\"];\n this.isSelfRegister = data[\"IsSelfRegister\"];\n this.showOnRegister = data[\"ShowOnRegister\"];\n }\n }\n\n static fromJS(data: any): Role {\n data = typeof data === 'object' ? data : {};\n let result = new Role();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"DisplayName\"] = this.displayName;\n data[\"IsActive\"] = this.isActive;\n data[\"IsSelfRegister\"] = this.isSelfRegister;\n data[\"ShowOnRegister\"] = this.showOnRegister;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IRole extends IIdentityRole {\n displayName?: string | undefined;\n isActive: boolean;\n isSelfRegister: boolean;\n showOnRegister: boolean;\n}\n\nexport class RoleDto implements IRoleDto {\n id?: string | undefined;\n name?: string | undefined;\n displayName!: string;\n isActive!: boolean;\n isSelfRegister!: boolean;\n showOnRegister!: boolean;\n concurrencyStamp?: string | undefined;\n permissions?: Permission[] | undefined;\n\n constructor(data?: IRoleDto) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.name = data[\"Name\"];\n this.displayName = data[\"DisplayName\"];\n this.isActive = data[\"IsActive\"];\n this.isSelfRegister = data[\"IsSelfRegister\"];\n this.showOnRegister = data[\"ShowOnRegister\"];\n this.concurrencyStamp = data[\"ConcurrencyStamp\"];\n if (Array.isArray(data[\"Permissions\"])) {\n this.permissions = [] as any;\n for (let item of data[\"Permissions\"])\n this.permissions!.push(Permission.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RoleDto {\n data = typeof data === 'object' ? data : {};\n let result = new RoleDto();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Name\"] = this.name;\n data[\"DisplayName\"] = this.displayName;\n data[\"IsActive\"] = this.isActive;\n data[\"IsSelfRegister\"] = this.isSelfRegister;\n data[\"ShowOnRegister\"] = this.showOnRegister;\n data[\"ConcurrencyStamp\"] = this.concurrencyStamp;\n if (Array.isArray(this.permissions)) {\n data[\"Permissions\"] = [];\n for (let item of this.permissions)\n data[\"Permissions\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoleDto {\n id?: string | undefined;\n name?: string | undefined;\n displayName: string;\n isActive: boolean;\n isSelfRegister: boolean;\n showOnRegister: boolean;\n concurrencyStamp?: string | undefined;\n permissions?: Permission[] | undefined;\n}\n\nexport class BrowserSettings implements IBrowserSettings {\n maxSearchedProperties!: number;\n colours?: ColourSettings | undefined;\n account?: AccountPageSettings | undefined;\n register?: RegisterPageSettings | undefined;\n accountPayments?: AccountPayments | undefined;\n directDebit?: DirectDebit | undefined;\n meterVolume?: MeterVolume | undefined;\n bulkCustomer?: BulkCustomer | undefined;\n highReadWarningThreshold!: number;\n showDailyWaterUse!: boolean;\n appInsightsInstrumentationKey?: string | undefined;\n logoUrl?: string | undefined;\n maxFileSize!: number;\n maxFilesPerRequest!: number;\n allowedFileExtensions?: string | undefined;\n changeAddress?: ChangeAddressSettings | undefined;\n showHome!: boolean;\n webSiteUrl?: string | undefined;\n headInjection?: string | undefined;\n dateFormat?: string | undefined;\n faviconUrl?: string | undefined;\n googleAnalytics?: GoogleAnalytics | undefined;\n sessionExpiryWarningThreshold!: number;\n refreshTimestampCheckTimeout!: number;\n\n constructor(data?: IBrowserSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.maxSearchedProperties = data[\"MaxSearchedProperties\"];\n this.colours = data[\"Colours\"] ? ColourSettings.fromJS(data[\"Colours\"]) : undefined;\n this.account = data[\"Account\"] ? AccountPageSettings.fromJS(data[\"Account\"]) : undefined;\n this.register = data[\"Register\"] ? RegisterPageSettings.fromJS(data[\"Register\"]) : undefined;\n this.accountPayments = data[\"AccountPayments\"] ? AccountPayments.fromJS(data[\"AccountPayments\"]) : undefined;\n this.directDebit = data[\"DirectDebit\"] ? DirectDebit.fromJS(data[\"DirectDebit\"]) : undefined;\n this.meterVolume = data[\"MeterVolume\"] ? MeterVolume.fromJS(data[\"MeterVolume\"]) : undefined;\n this.bulkCustomer = data[\"BulkCustomer\"] ? BulkCustomer.fromJS(data[\"BulkCustomer\"]) : undefined;\n this.highReadWarningThreshold = data[\"HighReadWarningThreshold\"];\n this.showDailyWaterUse = data[\"ShowDailyWaterUse\"];\n this.appInsightsInstrumentationKey = data[\"AppInsightsInstrumentationKey\"];\n this.logoUrl = data[\"LogoUrl\"];\n this.maxFileSize = data[\"MaxFileSize\"];\n this.maxFilesPerRequest = data[\"MaxFilesPerRequest\"];\n this.allowedFileExtensions = data[\"AllowedFileExtensions\"];\n this.changeAddress = data[\"ChangeAddress\"] ? ChangeAddressSettings.fromJS(data[\"ChangeAddress\"]) : undefined;\n this.showHome = data[\"ShowHome\"];\n this.webSiteUrl = data[\"WebSiteUrl\"];\n this.headInjection = data[\"HeadInjection\"];\n this.dateFormat = data[\"DateFormat\"];\n this.faviconUrl = data[\"FaviconUrl\"];\n this.googleAnalytics = data[\"GoogleAnalytics\"] ? GoogleAnalytics.fromJS(data[\"GoogleAnalytics\"]) : undefined;\n this.sessionExpiryWarningThreshold = data[\"SessionExpiryWarningThreshold\"];\n this.refreshTimestampCheckTimeout = data[\"RefreshTimestampCheckTimeout\"];\n }\n }\n\n static fromJS(data: any): BrowserSettings {\n data = typeof data === 'object' ? data : {};\n let result = new BrowserSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"MaxSearchedProperties\"] = this.maxSearchedProperties;\n data[\"Colours\"] = this.colours ? this.colours.toJSON() : undefined;\n data[\"Account\"] = this.account ? this.account.toJSON() : undefined;\n data[\"Register\"] = this.register ? this.register.toJSON() : undefined;\n data[\"AccountPayments\"] = this.accountPayments ? this.accountPayments.toJSON() : undefined;\n data[\"DirectDebit\"] = this.directDebit ? this.directDebit.toJSON() : undefined;\n data[\"MeterVolume\"] = this.meterVolume ? this.meterVolume.toJSON() : undefined;\n data[\"BulkCustomer\"] = this.bulkCustomer ? this.bulkCustomer.toJSON() : undefined;\n data[\"HighReadWarningThreshold\"] = this.highReadWarningThreshold;\n data[\"ShowDailyWaterUse\"] = this.showDailyWaterUse;\n data[\"AppInsightsInstrumentationKey\"] = this.appInsightsInstrumentationKey;\n data[\"LogoUrl\"] = this.logoUrl;\n data[\"MaxFileSize\"] = this.maxFileSize;\n data[\"MaxFilesPerRequest\"] = this.maxFilesPerRequest;\n data[\"AllowedFileExtensions\"] = this.allowedFileExtensions;\n data[\"ChangeAddress\"] = this.changeAddress ? this.changeAddress.toJSON() : undefined;\n data[\"ShowHome\"] = this.showHome;\n data[\"WebSiteUrl\"] = this.webSiteUrl;\n data[\"HeadInjection\"] = this.headInjection;\n data[\"DateFormat\"] = this.dateFormat;\n data[\"FaviconUrl\"] = this.faviconUrl;\n data[\"GoogleAnalytics\"] = this.googleAnalytics ? this.googleAnalytics.toJSON() : undefined;\n data[\"SessionExpiryWarningThreshold\"] = this.sessionExpiryWarningThreshold;\n data[\"RefreshTimestampCheckTimeout\"] = this.refreshTimestampCheckTimeout;\n return data; \n }\n}\n\nexport interface IBrowserSettings {\n maxSearchedProperties: number;\n colours?: ColourSettings | undefined;\n account?: AccountPageSettings | undefined;\n register?: RegisterPageSettings | undefined;\n accountPayments?: AccountPayments | undefined;\n directDebit?: DirectDebit | undefined;\n meterVolume?: MeterVolume | undefined;\n bulkCustomer?: BulkCustomer | undefined;\n highReadWarningThreshold: number;\n showDailyWaterUse: boolean;\n appInsightsInstrumentationKey?: string | undefined;\n logoUrl?: string | undefined;\n maxFileSize: number;\n maxFilesPerRequest: number;\n allowedFileExtensions?: string | undefined;\n changeAddress?: ChangeAddressSettings | undefined;\n showHome: boolean;\n webSiteUrl?: string | undefined;\n headInjection?: string | undefined;\n dateFormat?: string | undefined;\n faviconUrl?: string | undefined;\n googleAnalytics?: GoogleAnalytics | undefined;\n sessionExpiryWarningThreshold: number;\n refreshTimestampCheckTimeout: number;\n}\n\nexport class ColourSettings implements IColourSettings {\n primaryColour?: string | undefined;\n secondaryColour?: string | undefined;\n successColour?: string | undefined;\n errorColour?: string | undefined;\n headerColour?: string | undefined;\n menuButtonColour?: string | undefined;\n\n constructor(data?: IColourSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.primaryColour = data[\"PrimaryColour\"];\n this.secondaryColour = data[\"SecondaryColour\"];\n this.successColour = data[\"SuccessColour\"];\n this.errorColour = data[\"ErrorColour\"];\n this.headerColour = data[\"HeaderColour\"];\n this.menuButtonColour = data[\"MenuButtonColour\"];\n }\n }\n\n static fromJS(data: any): ColourSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ColourSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PrimaryColour\"] = this.primaryColour;\n data[\"SecondaryColour\"] = this.secondaryColour;\n data[\"SuccessColour\"] = this.successColour;\n data[\"ErrorColour\"] = this.errorColour;\n data[\"HeaderColour\"] = this.headerColour;\n data[\"MenuButtonColour\"] = this.menuButtonColour;\n return data; \n }\n}\n\nexport interface IColourSettings {\n primaryColour?: string | undefined;\n secondaryColour?: string | undefined;\n successColour?: string | undefined;\n errorColour?: string | undefined;\n headerColour?: string | undefined;\n menuButtonColour?: string | undefined;\n}\n\nexport class AccountPageSettings implements IAccountPageSettings {\n dailyUsageTarget!: number;\n numberOfInvoices!: number;\n numberOfPayments!: number;\n showInvoiceDates!: boolean;\n totalWaterUseUom!: WaterUseUom;\n colourInvoices!: boolean;\n showShortcuts!: boolean;\n waterUsageFilter!: WaterUsageFilter;\n waterUsageBillsFilterMax!: number;\n waterUsageBillsFilterDefault!: number;\n\n constructor(data?: IAccountPageSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.dailyUsageTarget = data[\"DailyUsageTarget\"];\n this.numberOfInvoices = data[\"NumberOfInvoices\"];\n this.numberOfPayments = data[\"NumberOfPayments\"];\n this.showInvoiceDates = data[\"ShowInvoiceDates\"];\n this.totalWaterUseUom = data[\"TotalWaterUseUom\"];\n this.colourInvoices = data[\"ColourInvoices\"];\n this.showShortcuts = data[\"ShowShortcuts\"];\n this.waterUsageFilter = data[\"WaterUsageFilter\"];\n this.waterUsageBillsFilterMax = data[\"WaterUsageBillsFilterMax\"];\n this.waterUsageBillsFilterDefault = data[\"WaterUsageBillsFilterDefault\"];\n }\n }\n\n static fromJS(data: any): AccountPageSettings {\n data = typeof data === 'object' ? data : {};\n let result = new AccountPageSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"DailyUsageTarget\"] = this.dailyUsageTarget;\n data[\"NumberOfInvoices\"] = this.numberOfInvoices;\n data[\"NumberOfPayments\"] = this.numberOfPayments;\n data[\"ShowInvoiceDates\"] = this.showInvoiceDates;\n data[\"TotalWaterUseUom\"] = this.totalWaterUseUom;\n data[\"ColourInvoices\"] = this.colourInvoices;\n data[\"ShowShortcuts\"] = this.showShortcuts;\n data[\"WaterUsageFilter\"] = this.waterUsageFilter;\n data[\"WaterUsageBillsFilterMax\"] = this.waterUsageBillsFilterMax;\n data[\"WaterUsageBillsFilterDefault\"] = this.waterUsageBillsFilterDefault;\n return data; \n }\n}\n\nexport interface IAccountPageSettings {\n dailyUsageTarget: number;\n numberOfInvoices: number;\n numberOfPayments: number;\n showInvoiceDates: boolean;\n totalWaterUseUom: WaterUseUom;\n colourInvoices: boolean;\n showShortcuts: boolean;\n waterUsageFilter: WaterUsageFilter;\n waterUsageBillsFilterMax: number;\n waterUsageBillsFilterDefault: number;\n}\n\nexport enum WaterUseUom {\n Litres = 0,\n Kilolitres = 1,\n}\n\nexport enum WaterUsageFilter {\n Dates = 0,\n Bills = 1,\n}\n\nexport class RegisterPageSettings implements IRegisterPageSettings {\n abnRequired!: boolean;\n\n constructor(data?: IRegisterPageSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.abnRequired = data[\"AbnRequired\"];\n }\n }\n\n static fromJS(data: any): RegisterPageSettings {\n data = typeof data === 'object' ? data : {};\n let result = new RegisterPageSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"AbnRequired\"] = this.abnRequired;\n return data; \n }\n}\n\nexport interface IRegisterPageSettings {\n abnRequired: boolean;\n}\n\nexport class AccountPayments implements IAccountPayments {\n allowAllInSearch!: boolean;\n\n constructor(data?: IAccountPayments) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.allowAllInSearch = data[\"AllowAllInSearch\"];\n }\n }\n\n static fromJS(data: any): AccountPayments {\n data = typeof data === 'object' ? data : {};\n let result = new AccountPayments();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"AllowAllInSearch\"] = this.allowAllInSearch;\n return data; \n }\n}\n\nexport interface IAccountPayments {\n allowAllInSearch: boolean;\n}\n\nexport class DirectDebit implements IDirectDebit {\n processingDateRequired!: boolean;\n\n constructor(data?: IDirectDebit) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.processingDateRequired = data[\"ProcessingDateRequired\"];\n }\n }\n\n static fromJS(data: any): DirectDebit {\n data = typeof data === 'object' ? data : {};\n let result = new DirectDebit();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"ProcessingDateRequired\"] = this.processingDateRequired;\n return data; \n }\n}\n\nexport interface IDirectDebit {\n processingDateRequired: boolean;\n}\n\nexport class MeterVolume implements IMeterVolume {\n showDaily!: boolean;\n\n constructor(data?: IMeterVolume) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.showDaily = data[\"ShowDaily\"];\n }\n }\n\n static fromJS(data: any): MeterVolume {\n data = typeof data === 'object' ? data : {};\n let result = new MeterVolume();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"ShowDaily\"] = this.showDaily;\n return data; \n }\n}\n\nexport interface IMeterVolume {\n showDaily: boolean;\n}\n\nexport class BulkCustomer implements IBulkCustomer {\n bulkCustomerThreshold!: number;\n\n constructor(data?: IBulkCustomer) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.bulkCustomerThreshold = data[\"BulkCustomerThreshold\"];\n }\n }\n\n static fromJS(data: any): BulkCustomer {\n data = typeof data === 'object' ? data : {};\n let result = new BulkCustomer();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"BulkCustomerThreshold\"] = this.bulkCustomerThreshold;\n return data; \n }\n}\n\nexport interface IBulkCustomer {\n bulkCustomerThreshold: number;\n}\n\nexport class ChangeAddressSettings implements IChangeAddressSettings {\n residentialTitle?: string | undefined;\n postalTitle?: string | undefined;\n temporaryTitle?: string | undefined;\n\n constructor(data?: IChangeAddressSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.residentialTitle = data[\"ResidentialTitle\"];\n this.postalTitle = data[\"PostalTitle\"];\n this.temporaryTitle = data[\"TemporaryTitle\"];\n }\n }\n\n static fromJS(data: any): ChangeAddressSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ChangeAddressSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"ResidentialTitle\"] = this.residentialTitle;\n data[\"PostalTitle\"] = this.postalTitle;\n data[\"TemporaryTitle\"] = this.temporaryTitle;\n return data; \n }\n}\n\nexport interface IChangeAddressSettings {\n residentialTitle?: string | undefined;\n postalTitle?: string | undefined;\n temporaryTitle?: string | undefined;\n}\n\nexport class GoogleAnalytics implements IGoogleAnalytics {\n id?: string | undefined;\n pageTracking!: boolean;\n clickTracking!: boolean;\n exceptionTracking!: boolean;\n\n constructor(data?: IGoogleAnalytics) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.pageTracking = data[\"PageTracking\"];\n this.clickTracking = data[\"ClickTracking\"];\n this.exceptionTracking = data[\"ExceptionTracking\"];\n }\n }\n\n static fromJS(data: any): GoogleAnalytics {\n data = typeof data === 'object' ? data : {};\n let result = new GoogleAnalytics();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"PageTracking\"] = this.pageTracking;\n data[\"ClickTracking\"] = this.clickTracking;\n data[\"ExceptionTracking\"] = this.exceptionTracking;\n return data; \n }\n}\n\nexport interface IGoogleAnalytics {\n id?: string | undefined;\n pageTracking: boolean;\n clickTracking: boolean;\n exceptionTracking: boolean;\n}\n\nexport class PaymentSettings implements IPaymentSettings {\n confirmInterval!: number;\n provider!: PaymentProvider;\n bpoint?: BpointSettings | undefined;\n quickStream?: QuickStreamSettings | undefined;\n infoStatementAmount!: number;\n externalPaymentUrl?: string | undefined;\n\n constructor(data?: IPaymentSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.confirmInterval = data[\"ConfirmInterval\"];\n this.provider = data[\"Provider\"];\n this.bpoint = data[\"Bpoint\"] ? BpointSettings.fromJS(data[\"Bpoint\"]) : undefined;\n this.quickStream = data[\"QuickStream\"] ? QuickStreamSettings.fromJS(data[\"QuickStream\"]) : undefined;\n this.infoStatementAmount = data[\"InfoStatementAmount\"];\n this.externalPaymentUrl = data[\"ExternalPaymentUrl\"];\n }\n }\n\n static fromJS(data: any): PaymentSettings {\n data = typeof data === 'object' ? data : {};\n let result = new PaymentSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"ConfirmInterval\"] = this.confirmInterval;\n data[\"Provider\"] = this.provider;\n data[\"Bpoint\"] = this.bpoint ? this.bpoint.toJSON() : undefined;\n data[\"QuickStream\"] = this.quickStream ? this.quickStream.toJSON() : undefined;\n data[\"InfoStatementAmount\"] = this.infoStatementAmount;\n data[\"ExternalPaymentUrl\"] = this.externalPaymentUrl;\n return data; \n }\n}\n\nexport interface IPaymentSettings {\n confirmInterval: number;\n provider: PaymentProvider;\n bpoint?: BpointSettings | undefined;\n quickStream?: QuickStreamSettings | undefined;\n infoStatementAmount: number;\n externalPaymentUrl?: string | undefined;\n}\n\nexport enum PaymentProvider {\n Bpoint = 1,\n QuickStream = 2,\n}\n\nexport class BpointSettings implements IBpointSettings {\n url?: string | undefined;\n username?: string | undefined;\n merchantId?: string | undefined;\n password?: string | undefined;\n testMode!: boolean;\n billerCode?: string | undefined;\n surchargePercentage!: number;\n\n constructor(data?: IBpointSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.url = data[\"Url\"];\n this.username = data[\"Username\"];\n this.merchantId = data[\"MerchantId\"];\n this.password = data[\"Password\"];\n this.testMode = data[\"TestMode\"];\n this.billerCode = data[\"BillerCode\"];\n this.surchargePercentage = data[\"SurchargePercentage\"];\n }\n }\n\n static fromJS(data: any): BpointSettings {\n data = typeof data === 'object' ? data : {};\n let result = new BpointSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Url\"] = this.url;\n data[\"Username\"] = this.username;\n data[\"MerchantId\"] = this.merchantId;\n data[\"Password\"] = this.password;\n data[\"TestMode\"] = this.testMode;\n data[\"BillerCode\"] = this.billerCode;\n data[\"SurchargePercentage\"] = this.surchargePercentage;\n return data; \n }\n}\n\nexport interface IBpointSettings {\n url?: string | undefined;\n username?: string | undefined;\n merchantId?: string | undefined;\n password?: string | undefined;\n testMode: boolean;\n billerCode?: string | undefined;\n surchargePercentage: number;\n}\n\nexport class QuickStreamSettings implements IQuickStreamSettings {\n publishableApiKey?: string | undefined;\n secretApiKey?: string | undefined;\n url?: string | undefined;\n supplierBusinessCode?: string | undefined;\n\n constructor(data?: IQuickStreamSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.publishableApiKey = data[\"PublishableApiKey\"];\n this.secretApiKey = data[\"SecretApiKey\"];\n this.url = data[\"Url\"];\n this.supplierBusinessCode = data[\"SupplierBusinessCode\"];\n }\n }\n\n static fromJS(data: any): QuickStreamSettings {\n data = typeof data === 'object' ? data : {};\n let result = new QuickStreamSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"PublishableApiKey\"] = this.publishableApiKey;\n data[\"SecretApiKey\"] = this.secretApiKey;\n data[\"Url\"] = this.url;\n data[\"SupplierBusinessCode\"] = this.supplierBusinessCode;\n return data; \n }\n}\n\nexport interface IQuickStreamSettings {\n publishableApiKey?: string | undefined;\n secretApiKey?: string | undefined;\n url?: string | undefined;\n supplierBusinessCode?: string | undefined;\n}\n\nexport class AquaRateSettings implements IAquaRateSettings {\n invoiceOverdueDays!: number;\n paymentExtensionDays!: number;\n dateOfBirthConstraint!: DateOfBirthConstraint;\n validateInvoice!: boolean;\n invoiceValidationThreshold!: number;\n customerRoles?: string | undefined;\n linkedAccountRoles?: string | undefined;\n webRequestTypes?: string | undefined;\n paymentExtensionArrearsLimit!: number;\n invoiceHistoryYears!: number;\n paymentHistoryYears!: number;\n volumeHistoryYears!: number;\n overduePayNowThreshold!: number;\n pdfGeneratorUrl?: string | undefined;\n pdfGeneratorCertificateThumbprint?: string | undefined;\n directDebitPendingThreshold!: number;\n invoiceTemplateId?: number | undefined;\n finalTemplateId?: number | undefined;\n reminderTemplateId?: number | undefined;\n autoEBilling!: boolean;\n nonFinalisedPaymentDescription?: string | undefined;\n useDynamoBalance!: boolean;\n allowBusinessCustomerChangeName!: boolean;\n allowDirectDebitPrefill!: boolean;\n minPayArrangementAmount!: number;\n\n constructor(data?: IAquaRateSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.invoiceOverdueDays = data[\"InvoiceOverdueDays\"];\n this.paymentExtensionDays = data[\"PaymentExtensionDays\"];\n this.dateOfBirthConstraint = data[\"DateOfBirthConstraint\"];\n this.validateInvoice = data[\"ValidateInvoice\"];\n this.invoiceValidationThreshold = data[\"InvoiceValidationThreshold\"];\n this.customerRoles = data[\"CustomerRoles\"];\n this.linkedAccountRoles = data[\"LinkedAccountRoles\"];\n this.webRequestTypes = data[\"WebRequestTypes\"];\n this.paymentExtensionArrearsLimit = data[\"PaymentExtensionArrearsLimit\"];\n this.invoiceHistoryYears = data[\"InvoiceHistoryYears\"];\n this.paymentHistoryYears = data[\"PaymentHistoryYears\"];\n this.volumeHistoryYears = data[\"VolumeHistoryYears\"];\n this.overduePayNowThreshold = data[\"OverduePayNowThreshold\"];\n this.pdfGeneratorUrl = data[\"PdfGeneratorUrl\"];\n this.pdfGeneratorCertificateThumbprint = data[\"PdfGeneratorCertificateThumbprint\"];\n this.directDebitPendingThreshold = data[\"DirectDebitPendingThreshold\"];\n this.invoiceTemplateId = data[\"InvoiceTemplateId\"];\n this.finalTemplateId = data[\"FinalTemplateId\"];\n this.reminderTemplateId = data[\"ReminderTemplateId\"];\n this.autoEBilling = data[\"AutoEBilling\"];\n this.nonFinalisedPaymentDescription = data[\"NonFinalisedPaymentDescription\"];\n this.useDynamoBalance = data[\"UseDynamoBalance\"];\n this.allowBusinessCustomerChangeName = data[\"AllowBusinessCustomerChangeName\"];\n this.allowDirectDebitPrefill = data[\"AllowDirectDebitPrefill\"];\n this.minPayArrangementAmount = data[\"MinPayArrangementAmount\"];\n }\n }\n\n static fromJS(data: any): AquaRateSettings {\n data = typeof data === 'object' ? data : {};\n let result = new AquaRateSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"InvoiceOverdueDays\"] = this.invoiceOverdueDays;\n data[\"PaymentExtensionDays\"] = this.paymentExtensionDays;\n data[\"DateOfBirthConstraint\"] = this.dateOfBirthConstraint;\n data[\"ValidateInvoice\"] = this.validateInvoice;\n data[\"InvoiceValidationThreshold\"] = this.invoiceValidationThreshold;\n data[\"CustomerRoles\"] = this.customerRoles;\n data[\"LinkedAccountRoles\"] = this.linkedAccountRoles;\n data[\"WebRequestTypes\"] = this.webRequestTypes;\n data[\"PaymentExtensionArrearsLimit\"] = this.paymentExtensionArrearsLimit;\n data[\"InvoiceHistoryYears\"] = this.invoiceHistoryYears;\n data[\"PaymentHistoryYears\"] = this.paymentHistoryYears;\n data[\"VolumeHistoryYears\"] = this.volumeHistoryYears;\n data[\"OverduePayNowThreshold\"] = this.overduePayNowThreshold;\n data[\"PdfGeneratorUrl\"] = this.pdfGeneratorUrl;\n data[\"PdfGeneratorCertificateThumbprint\"] = this.pdfGeneratorCertificateThumbprint;\n data[\"DirectDebitPendingThreshold\"] = this.directDebitPendingThreshold;\n data[\"InvoiceTemplateId\"] = this.invoiceTemplateId;\n data[\"FinalTemplateId\"] = this.finalTemplateId;\n data[\"ReminderTemplateId\"] = this.reminderTemplateId;\n data[\"AutoEBilling\"] = this.autoEBilling;\n data[\"NonFinalisedPaymentDescription\"] = this.nonFinalisedPaymentDescription;\n data[\"UseDynamoBalance\"] = this.useDynamoBalance;\n data[\"AllowBusinessCustomerChangeName\"] = this.allowBusinessCustomerChangeName;\n data[\"AllowDirectDebitPrefill\"] = this.allowDirectDebitPrefill;\n data[\"MinPayArrangementAmount\"] = this.minPayArrangementAmount;\n return data; \n }\n}\n\nexport interface IAquaRateSettings {\n invoiceOverdueDays: number;\n paymentExtensionDays: number;\n dateOfBirthConstraint: DateOfBirthConstraint;\n validateInvoice: boolean;\n invoiceValidationThreshold: number;\n customerRoles?: string | undefined;\n linkedAccountRoles?: string | undefined;\n webRequestTypes?: string | undefined;\n paymentExtensionArrearsLimit: number;\n invoiceHistoryYears: number;\n paymentHistoryYears: number;\n volumeHistoryYears: number;\n overduePayNowThreshold: number;\n pdfGeneratorUrl?: string | undefined;\n pdfGeneratorCertificateThumbprint?: string | undefined;\n directDebitPendingThreshold: number;\n invoiceTemplateId?: number | undefined;\n finalTemplateId?: number | undefined;\n reminderTemplateId?: number | undefined;\n autoEBilling: boolean;\n nonFinalisedPaymentDescription?: string | undefined;\n useDynamoBalance: boolean;\n allowBusinessCustomerChangeName: boolean;\n allowDirectDebitPrefill: boolean;\n minPayArrangementAmount: number;\n}\n\nexport enum DateOfBirthConstraint {\n None = 0,\n Required = 1,\n Validated = 2,\n}\n\nexport class PasswordSettings implements IPasswordSettings {\n requiredLength!: number;\n requiredUniqueChars!: number;\n requireNonAlphanumeric!: boolean;\n requireLowercase!: boolean;\n requireUppercase!: boolean;\n requireDigit!: boolean;\n\n constructor(data?: IPasswordSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.requiredLength = data[\"RequiredLength\"];\n this.requiredUniqueChars = data[\"RequiredUniqueChars\"];\n this.requireNonAlphanumeric = data[\"RequireNonAlphanumeric\"];\n this.requireLowercase = data[\"RequireLowercase\"];\n this.requireUppercase = data[\"RequireUppercase\"];\n this.requireDigit = data[\"RequireDigit\"];\n }\n }\n\n static fromJS(data: any): PasswordSettings {\n data = typeof data === 'object' ? data : {};\n let result = new PasswordSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"RequiredLength\"] = this.requiredLength;\n data[\"RequiredUniqueChars\"] = this.requiredUniqueChars;\n data[\"RequireNonAlphanumeric\"] = this.requireNonAlphanumeric;\n data[\"RequireLowercase\"] = this.requireLowercase;\n data[\"RequireUppercase\"] = this.requireUppercase;\n data[\"RequireDigit\"] = this.requireDigit;\n return data; \n }\n}\n\nexport interface IPasswordSettings {\n requiredLength: number;\n requiredUniqueChars: number;\n requireNonAlphanumeric: boolean;\n requireLowercase: boolean;\n requireUppercase: boolean;\n requireDigit: boolean;\n}\n\nexport class AzureB2CSettings implements IAzureB2CSettings {\n authority?: string | undefined;\n knownAuthority?: string | undefined;\n issuer?: string | undefined;\n clientId?: string | undefined;\n signUpTokenAudience?: string | undefined;\n signUpTokenClientSecret?: string | undefined;\n signUpTokenLifetime!: number;\n signInAuthority?: string | undefined;\n passwordResetAuthority?: string | undefined;\n apiScope?: string | undefined;\n restApiCertificateThumbprint?: string | undefined;\n loadFrameTimeout!: number;\n postLogoutRedirectUri?: string | undefined;\n\n constructor(data?: IAzureB2CSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.authority = data[\"Authority\"];\n this.knownAuthority = data[\"KnownAuthority\"];\n this.issuer = data[\"Issuer\"];\n this.clientId = data[\"ClientId\"];\n this.signUpTokenAudience = data[\"SignUpTokenAudience\"];\n this.signUpTokenClientSecret = data[\"SignUpTokenClientSecret\"];\n this.signUpTokenLifetime = data[\"SignUpTokenLifetime\"];\n this.signInAuthority = data[\"SignInAuthority\"];\n this.passwordResetAuthority = data[\"PasswordResetAuthority\"];\n this.apiScope = data[\"ApiScope\"];\n this.restApiCertificateThumbprint = data[\"RestApiCertificateThumbprint\"];\n this.loadFrameTimeout = data[\"LoadFrameTimeout\"];\n this.postLogoutRedirectUri = data[\"PostLogoutRedirectUri\"];\n }\n }\n\n static fromJS(data: any): AzureB2CSettings {\n data = typeof data === 'object' ? data : {};\n let result = new AzureB2CSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Authority\"] = this.authority;\n data[\"KnownAuthority\"] = this.knownAuthority;\n data[\"Issuer\"] = this.issuer;\n data[\"ClientId\"] = this.clientId;\n data[\"SignUpTokenAudience\"] = this.signUpTokenAudience;\n data[\"SignUpTokenClientSecret\"] = this.signUpTokenClientSecret;\n data[\"SignUpTokenLifetime\"] = this.signUpTokenLifetime;\n data[\"SignInAuthority\"] = this.signInAuthority;\n data[\"PasswordResetAuthority\"] = this.passwordResetAuthority;\n data[\"ApiScope\"] = this.apiScope;\n data[\"RestApiCertificateThumbprint\"] = this.restApiCertificateThumbprint;\n data[\"LoadFrameTimeout\"] = this.loadFrameTimeout;\n data[\"PostLogoutRedirectUri\"] = this.postLogoutRedirectUri;\n return data; \n }\n}\n\nexport interface IAzureB2CSettings {\n authority?: string | undefined;\n knownAuthority?: string | undefined;\n issuer?: string | undefined;\n clientId?: string | undefined;\n signUpTokenAudience?: string | undefined;\n signUpTokenClientSecret?: string | undefined;\n signUpTokenLifetime: number;\n signInAuthority?: string | undefined;\n passwordResetAuthority?: string | undefined;\n apiScope?: string | undefined;\n restApiCertificateThumbprint?: string | undefined;\n loadFrameTimeout: number;\n postLogoutRedirectUri?: string | undefined;\n}\n\nexport class GetDynamicSettingsResponse implements IGetDynamicSettingsResponse {\n info?: SettingInfoEx | undefined;\n\n constructor(data?: IGetDynamicSettingsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.info = data[\"Info\"] ? SettingInfoEx.fromJS(data[\"Info\"]) : undefined;\n }\n }\n\n static fromJS(data: any): GetDynamicSettingsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetDynamicSettingsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Info\"] = this.info ? this.info.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IGetDynamicSettingsResponse {\n info?: SettingInfoEx | undefined;\n}\n\nexport class SettingInfo implements ISettingInfo {\n key?: string | undefined;\n value?: any | undefined;\n typeName?: string | undefined;\n name?: string | undefined;\n description?: string | undefined;\n options?: SelectOption[] | undefined;\n clientEditor!: ClientEditor;\n children?: SettingInfo[] | undefined;\n\n constructor(data?: ISettingInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.key = data[\"Key\"];\n this.value = data[\"Value\"];\n this.typeName = data[\"TypeName\"];\n this.name = data[\"Name\"];\n this.description = data[\"Description\"];\n if (Array.isArray(data[\"Options\"])) {\n this.options = [] as any;\n for (let item of data[\"Options\"])\n this.options!.push(SelectOption.fromJS(item));\n }\n this.clientEditor = data[\"ClientEditor\"];\n if (Array.isArray(data[\"Children\"])) {\n this.children = [] as any;\n for (let item of data[\"Children\"])\n this.children!.push(SettingInfo.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SettingInfo {\n data = typeof data === 'object' ? data : {};\n let result = new SettingInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Key\"] = this.key;\n data[\"Value\"] = this.value;\n data[\"TypeName\"] = this.typeName;\n data[\"Name\"] = this.name;\n data[\"Description\"] = this.description;\n if (Array.isArray(this.options)) {\n data[\"Options\"] = [];\n for (let item of this.options)\n data[\"Options\"].push(item.toJSON());\n }\n data[\"ClientEditor\"] = this.clientEditor;\n if (Array.isArray(this.children)) {\n data[\"Children\"] = [];\n for (let item of this.children)\n data[\"Children\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISettingInfo {\n key?: string | undefined;\n value?: any | undefined;\n typeName?: string | undefined;\n name?: string | undefined;\n description?: string | undefined;\n options?: SelectOption[] | undefined;\n clientEditor: ClientEditor;\n children?: SettingInfo[] | undefined;\n}\n\nexport class SettingInfoEx extends SettingInfo implements ISettingInfoEx {\n provider?: string | undefined;\n\n constructor(data?: ISettingInfoEx) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.provider = data[\"Provider\"];\n }\n }\n\n static fromJS(data: any): SettingInfoEx {\n data = typeof data === 'object' ? data : {};\n let result = new SettingInfoEx();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Provider\"] = this.provider;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ISettingInfoEx extends ISettingInfo {\n provider?: string | undefined;\n}\n\nexport class SelectOption implements ISelectOption {\n key?: any | undefined;\n value?: any | undefined;\n\n constructor(data?: ISelectOption) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.key = data[\"Key\"];\n this.value = data[\"Value\"];\n }\n }\n\n static fromJS(data: any): SelectOption {\n data = typeof data === 'object' ? data : {};\n let result = new SelectOption();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Key\"] = this.key;\n data[\"Value\"] = this.value;\n return data; \n }\n}\n\nexport interface ISelectOption {\n key?: any | undefined;\n value?: any | undefined;\n}\n\nexport enum ClientEditor {\n String = 0,\n Textarea = 1,\n Integer = 2,\n Boolean = 3,\n Select = 4,\n Password = 5,\n Colour = 6,\n Date = 7,\n Decimal = 8,\n}\n\nexport class UpdateDynamicSettingRequest implements IUpdateDynamicSettingRequest {\n key?: string | undefined;\n value?: string | undefined;\n\n constructor(data?: IUpdateDynamicSettingRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.key = data[\"Key\"];\n this.value = data[\"Value\"];\n }\n }\n\n static fromJS(data: any): UpdateDynamicSettingRequest {\n data = typeof data === 'object' ? data : {};\n let result = new UpdateDynamicSettingRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Key\"] = this.key;\n data[\"Value\"] = this.value;\n return data; \n }\n}\n\nexport interface IUpdateDynamicSettingRequest {\n key?: string | undefined;\n value?: string | undefined;\n}\n\nexport class SettingHistory extends Entity implements ISettingHistory {\n id!: number;\n key?: string | undefined;\n value?: string | undefined;\n\n constructor(data?: ISettingHistory) {\n super(data);\n }\n\n init(data?: any) {\n super.init(data);\n if (data) {\n this.id = data[\"Id\"];\n this.key = data[\"Key\"];\n this.value = data[\"Value\"];\n }\n }\n\n static fromJS(data: any): SettingHistory {\n data = typeof data === 'object' ? data : {};\n let result = new SettingHistory();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Key\"] = this.key;\n data[\"Value\"] = this.value;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ISettingHistory extends IEntity {\n id: number;\n key?: string | undefined;\n value?: string | undefined;\n}\n\nexport class UserInfo implements IUserInfo {\n id?: string | undefined;\n otherNames?: string | undefined;\n surname?: string | undefined;\n userName?: string | undefined;\n aquaRateOrganisationName?: string | undefined;\n email?: string | undefined;\n emailConfirmed!: boolean;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n role?: Role | undefined;\n password?: string | undefined;\n status!: Status;\n statusName?: string | undefined;\n dateOfBirth?: Date | undefined;\n lockoutEnd?: Date | undefined;\n dateRegistered!: Date;\n pkPorg?: number | undefined;\n timestamp?: string | undefined;\n canUpdate!: boolean;\n\n constructor(data?: IUserInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.otherNames = data[\"OtherNames\"];\n this.surname = data[\"Surname\"];\n this.userName = data[\"UserName\"];\n this.aquaRateOrganisationName = data[\"AquaRateOrganisationName\"];\n this.email = data[\"Email\"];\n this.emailConfirmed = data[\"EmailConfirmed\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.role = data[\"Role\"] ? Role.fromJS(data[\"Role\"]) : undefined;\n this.password = data[\"Password\"];\n this.status = data[\"Status\"];\n this.statusName = data[\"StatusName\"];\n this.dateOfBirth = data[\"DateOfBirth\"] ? new Date(data[\"DateOfBirth\"].toString()) : undefined;\n this.lockoutEnd = data[\"LockoutEnd\"] ? new Date(data[\"LockoutEnd\"].toString()) : undefined;\n this.dateRegistered = data[\"DateRegistered\"] ? new Date(data[\"DateRegistered\"].toString()) : undefined;\n this.pkPorg = data[\"PkPorg\"];\n this.timestamp = data[\"Timestamp\"];\n this.canUpdate = data[\"CanUpdate\"];\n }\n }\n\n static fromJS(data: any): UserInfo {\n data = typeof data === 'object' ? data : {};\n let result = new UserInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"OtherNames\"] = this.otherNames;\n data[\"Surname\"] = this.surname;\n data[\"UserName\"] = this.userName;\n data[\"AquaRateOrganisationName\"] = this.aquaRateOrganisationName;\n data[\"Email\"] = this.email;\n data[\"EmailConfirmed\"] = this.emailConfirmed;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"Role\"] = this.role ? this.role.toJSON() : undefined;\n data[\"Password\"] = this.password;\n data[\"Status\"] = this.status;\n data[\"StatusName\"] = this.statusName;\n data[\"DateOfBirth\"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined;\n data[\"LockoutEnd\"] = this.lockoutEnd ? this.lockoutEnd.toISOString() : undefined;\n data[\"DateRegistered\"] = this.dateRegistered ? this.dateRegistered.toISOString() : undefined;\n data[\"PkPorg\"] = this.pkPorg;\n data[\"Timestamp\"] = this.timestamp;\n data[\"CanUpdate\"] = this.canUpdate;\n return data; \n }\n}\n\nexport interface IUserInfo {\n id?: string | undefined;\n otherNames?: string | undefined;\n surname?: string | undefined;\n userName?: string | undefined;\n aquaRateOrganisationName?: string | undefined;\n email?: string | undefined;\n emailConfirmed: boolean;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n role?: Role | undefined;\n password?: string | undefined;\n status: Status;\n statusName?: string | undefined;\n dateOfBirth?: Date | undefined;\n lockoutEnd?: Date | undefined;\n dateRegistered: Date;\n pkPorg?: number | undefined;\n timestamp?: string | undefined;\n canUpdate: boolean;\n}\n\nexport class PatchUserRequest implements IPatchUserRequest {\n id?: string | undefined;\n email!: string;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n status!: Status;\n role!: string;\n timestamp?: string | undefined;\n\n constructor(data?: IPatchUserRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.email = data[\"Email\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.status = data[\"Status\"];\n this.role = data[\"Role\"];\n this.timestamp = data[\"Timestamp\"];\n }\n }\n\n static fromJS(data: any): PatchUserRequest {\n data = typeof data === 'object' ? data : {};\n let result = new PatchUserRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Email\"] = this.email;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"Status\"] = this.status;\n data[\"Role\"] = this.role;\n data[\"Timestamp\"] = this.timestamp;\n return data; \n }\n}\n\nexport interface IPatchUserRequest {\n id?: string | undefined;\n email: string;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n status: Status;\n role: string;\n timestamp?: string | undefined;\n}\n\nexport class PatchProfileRequest implements IPatchProfileRequest {\n surname?: string | undefined;\n otherNames?: string | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n email!: string;\n emailInvoices!: boolean;\n timestamp?: string | undefined;\n\n constructor(data?: IPatchProfileRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.surname = data[\"Surname\"];\n this.otherNames = data[\"OtherNames\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.email = data[\"Email\"];\n this.emailInvoices = data[\"EmailInvoices\"];\n this.timestamp = data[\"Timestamp\"];\n }\n }\n\n static fromJS(data: any): PatchProfileRequest {\n data = typeof data === 'object' ? data : {};\n let result = new PatchProfileRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Surname\"] = this.surname;\n data[\"OtherNames\"] = this.otherNames;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"Email\"] = this.email;\n data[\"EmailInvoices\"] = this.emailInvoices;\n data[\"Timestamp\"] = this.timestamp;\n return data; \n }\n}\n\nexport interface IPatchProfileRequest {\n surname?: string | undefined;\n otherNames?: string | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n email: string;\n emailInvoices: boolean;\n timestamp?: string | undefined;\n}\n\nexport class EmailConfirmationRequest implements IEmailConfirmationRequest {\n userId!: string;\n code!: string;\n password?: string | undefined;\n\n constructor(data?: IEmailConfirmationRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.userId = data[\"UserId\"];\n this.code = data[\"Code\"];\n this.password = data[\"Password\"];\n }\n }\n\n static fromJS(data: any): EmailConfirmationRequest {\n data = typeof data === 'object' ? data : {};\n let result = new EmailConfirmationRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"UserId\"] = this.userId;\n data[\"Code\"] = this.code;\n data[\"Password\"] = this.password;\n return data; \n }\n}\n\nexport interface IEmailConfirmationRequest {\n userId: string;\n code: string;\n password?: string | undefined;\n}\n\nexport class ChangeEmailRequest implements IChangeEmailRequest {\n userId!: string;\n newEmail!: string;\n emailInvoices!: boolean;\n code!: string;\n\n constructor(data?: IChangeEmailRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.userId = data[\"UserId\"];\n this.newEmail = data[\"NewEmail\"];\n this.emailInvoices = data[\"EmailInvoices\"];\n this.code = data[\"Code\"];\n }\n }\n\n static fromJS(data: any): ChangeEmailRequest {\n data = typeof data === 'object' ? data : {};\n let result = new ChangeEmailRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"UserId\"] = this.userId;\n data[\"NewEmail\"] = this.newEmail;\n data[\"EmailInvoices\"] = this.emailInvoices;\n data[\"Code\"] = this.code;\n return data; \n }\n}\n\nexport interface IChangeEmailRequest {\n userId: string;\n newEmail: string;\n emailInvoices: boolean;\n code: string;\n}\n\nexport class SearchResponseOfUserInfo implements ISearchResponseOfUserInfo {\n items?: UserInfo[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfUserInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(UserInfo.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfUserInfo {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfUserInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfUserInfo {\n items?: UserInfo[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class StatusInfo implements IStatusInfo {\n id!: Status;\n name?: string | undefined;\n\n constructor(data?: IStatusInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.id = data[\"Id\"];\n this.name = data[\"Name\"];\n }\n }\n\n static fromJS(data: any): StatusInfo {\n data = typeof data === 'object' ? data : {};\n let result = new StatusInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Id\"] = this.id;\n data[\"Name\"] = this.name;\n return data; \n }\n}\n\nexport interface IStatusInfo {\n id: Status;\n name?: string | undefined;\n}\n\nexport class WebRequest implements IWebRequest {\n pk!: number;\n guid!: string;\n fkAccount?: number | undefined;\n fkProperty?: number | undefined;\n fkMeter?: number | undefined;\n fkRequestType?: string | undefined;\n fkRequestStatus?: string | undefined;\n fkAspNetUser?: string | undefined;\n surname?: string | undefined;\n otherNames?: string | undefined;\n birthDate?: Date | undefined;\n email?: string | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n dateRequested!: Date;\n dateProcessed?: Date | undefined;\n fkPorg?: number | undefined;\n user_status?: number | undefined;\n rowid?: string | undefined;\n type?: WebRequestType | undefined;\n status?: WebRequestStatus | undefined;\n tenants?: WebRequestTenant[] | undefined;\n tenancy?: WebRequestTenancy | undefined;\n paymentExtension?: WebRequestPaymentExtension | undefined;\n changeName?: WebRequestChangeName | undefined;\n addresses?: WebRequestAddress[] | undefined;\n attachments?: WebRequestAttachment[] | undefined;\n meterReading?: WebRequestMeterReading | undefined;\n infoStatement?: WebRequestInfoStmt | undefined;\n emailInvoices?: WebRequestEmailInvoices | undefined;\n directDebit?: WebRequestDirectDebit | undefined;\n customerDetails?: WebRequestCustomerDetails | undefined;\n changeEmail?: WebRequestChangeEmail | undefined;\n balanceCheck?: WebRequestBalanceCheck | undefined;\n concession?: WebRequestConcession | undefined;\n paymentArrangement?: WebRequestPaymentArrangement | undefined;\n\n constructor(data?: IWebRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.guid = data[\"Guid\"];\n this.fkAccount = data[\"FkAccount\"];\n this.fkProperty = data[\"FkProperty\"];\n this.fkMeter = data[\"FkMeter\"];\n this.fkRequestType = data[\"FkRequestType\"];\n this.fkRequestStatus = data[\"FkRequestStatus\"];\n this.fkAspNetUser = data[\"FkAspNetUser\"];\n this.surname = data[\"Surname\"];\n this.otherNames = data[\"OtherNames\"];\n this.birthDate = data[\"BirthDate\"] ? new Date(data[\"BirthDate\"].toString()) : undefined;\n this.email = data[\"Email\"];\n this.phoneNumber = data[\"PhoneNumber\"];\n this.homePhoneNumber = data[\"HomePhoneNumber\"];\n this.dateRequested = data[\"DateRequested\"] ? new Date(data[\"DateRequested\"].toString()) : undefined;\n this.dateProcessed = data[\"DateProcessed\"] ? new Date(data[\"DateProcessed\"].toString()) : undefined;\n this.fkPorg = data[\"FkPorg\"];\n this.user_status = data[\"User_status\"];\n this.rowid = data[\"Rowid\"];\n this.type = data[\"Type\"] ? WebRequestType.fromJS(data[\"Type\"]) : undefined;\n this.status = data[\"Status\"] ? WebRequestStatus.fromJS(data[\"Status\"]) : undefined;\n if (Array.isArray(data[\"Tenants\"])) {\n this.tenants = [] as any;\n for (let item of data[\"Tenants\"])\n this.tenants!.push(WebRequestTenant.fromJS(item));\n }\n this.tenancy = data[\"Tenancy\"] ? WebRequestTenancy.fromJS(data[\"Tenancy\"]) : undefined;\n this.paymentExtension = data[\"PaymentExtension\"] ? WebRequestPaymentExtension.fromJS(data[\"PaymentExtension\"]) : undefined;\n this.changeName = data[\"ChangeName\"] ? WebRequestChangeName.fromJS(data[\"ChangeName\"]) : undefined;\n if (Array.isArray(data[\"Addresses\"])) {\n this.addresses = [] as any;\n for (let item of data[\"Addresses\"])\n this.addresses!.push(WebRequestAddress.fromJS(item));\n }\n if (Array.isArray(data[\"Attachments\"])) {\n this.attachments = [] as any;\n for (let item of data[\"Attachments\"])\n this.attachments!.push(WebRequestAttachment.fromJS(item));\n }\n this.meterReading = data[\"MeterReading\"] ? WebRequestMeterReading.fromJS(data[\"MeterReading\"]) : undefined;\n this.infoStatement = data[\"InfoStatement\"] ? WebRequestInfoStmt.fromJS(data[\"InfoStatement\"]) : undefined;\n this.emailInvoices = data[\"EmailInvoices\"] ? WebRequestEmailInvoices.fromJS(data[\"EmailInvoices\"]) : undefined;\n this.directDebit = data[\"DirectDebit\"] ? WebRequestDirectDebit.fromJS(data[\"DirectDebit\"]) : undefined;\n this.customerDetails = data[\"CustomerDetails\"] ? WebRequestCustomerDetails.fromJS(data[\"CustomerDetails\"]) : undefined;\n this.changeEmail = data[\"ChangeEmail\"] ? WebRequestChangeEmail.fromJS(data[\"ChangeEmail\"]) : undefined;\n this.balanceCheck = data[\"BalanceCheck\"] ? WebRequestBalanceCheck.fromJS(data[\"BalanceCheck\"]) : undefined;\n this.concession = data[\"Concession\"] ? WebRequestConcession.fromJS(data[\"Concession\"]) : undefined;\n this.paymentArrangement = data[\"PaymentArrangement\"] ? WebRequestPaymentArrangement.fromJS(data[\"PaymentArrangement\"]) : undefined;\n }\n }\n\n static fromJS(data: any): WebRequest {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Guid\"] = this.guid;\n data[\"FkAccount\"] = this.fkAccount;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"FkMeter\"] = this.fkMeter;\n data[\"FkRequestType\"] = this.fkRequestType;\n data[\"FkRequestStatus\"] = this.fkRequestStatus;\n data[\"FkAspNetUser\"] = this.fkAspNetUser;\n data[\"Surname\"] = this.surname;\n data[\"OtherNames\"] = this.otherNames;\n data[\"BirthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"Email\"] = this.email;\n data[\"PhoneNumber\"] = this.phoneNumber;\n data[\"HomePhoneNumber\"] = this.homePhoneNumber;\n data[\"DateRequested\"] = this.dateRequested ? this.dateRequested.toISOString() : undefined;\n data[\"DateProcessed\"] = this.dateProcessed ? this.dateProcessed.toISOString() : undefined;\n data[\"FkPorg\"] = this.fkPorg;\n data[\"User_status\"] = this.user_status;\n data[\"Rowid\"] = this.rowid;\n data[\"Type\"] = this.type ? this.type.toJSON() : undefined;\n data[\"Status\"] = this.status ? this.status.toJSON() : undefined;\n if (Array.isArray(this.tenants)) {\n data[\"Tenants\"] = [];\n for (let item of this.tenants)\n data[\"Tenants\"].push(item.toJSON());\n }\n data[\"Tenancy\"] = this.tenancy ? this.tenancy.toJSON() : undefined;\n data[\"PaymentExtension\"] = this.paymentExtension ? this.paymentExtension.toJSON() : undefined;\n data[\"ChangeName\"] = this.changeName ? this.changeName.toJSON() : undefined;\n if (Array.isArray(this.addresses)) {\n data[\"Addresses\"] = [];\n for (let item of this.addresses)\n data[\"Addresses\"].push(item.toJSON());\n }\n if (Array.isArray(this.attachments)) {\n data[\"Attachments\"] = [];\n for (let item of this.attachments)\n data[\"Attachments\"].push(item.toJSON());\n }\n data[\"MeterReading\"] = this.meterReading ? this.meterReading.toJSON() : undefined;\n data[\"InfoStatement\"] = this.infoStatement ? this.infoStatement.toJSON() : undefined;\n data[\"EmailInvoices\"] = this.emailInvoices ? this.emailInvoices.toJSON() : undefined;\n data[\"DirectDebit\"] = this.directDebit ? this.directDebit.toJSON() : undefined;\n data[\"CustomerDetails\"] = this.customerDetails ? this.customerDetails.toJSON() : undefined;\n data[\"ChangeEmail\"] = this.changeEmail ? this.changeEmail.toJSON() : undefined;\n data[\"BalanceCheck\"] = this.balanceCheck ? this.balanceCheck.toJSON() : undefined;\n data[\"Concession\"] = this.concession ? this.concession.toJSON() : undefined;\n data[\"PaymentArrangement\"] = this.paymentArrangement ? this.paymentArrangement.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IWebRequest {\n pk: number;\n guid: string;\n fkAccount?: number | undefined;\n fkProperty?: number | undefined;\n fkMeter?: number | undefined;\n fkRequestType?: string | undefined;\n fkRequestStatus?: string | undefined;\n fkAspNetUser?: string | undefined;\n surname?: string | undefined;\n otherNames?: string | undefined;\n birthDate?: Date | undefined;\n email?: string | undefined;\n phoneNumber?: string | undefined;\n homePhoneNumber?: string | undefined;\n dateRequested: Date;\n dateProcessed?: Date | undefined;\n fkPorg?: number | undefined;\n user_status?: number | undefined;\n rowid?: string | undefined;\n type?: WebRequestType | undefined;\n status?: WebRequestStatus | undefined;\n tenants?: WebRequestTenant[] | undefined;\n tenancy?: WebRequestTenancy | undefined;\n paymentExtension?: WebRequestPaymentExtension | undefined;\n changeName?: WebRequestChangeName | undefined;\n addresses?: WebRequestAddress[] | undefined;\n attachments?: WebRequestAttachment[] | undefined;\n meterReading?: WebRequestMeterReading | undefined;\n infoStatement?: WebRequestInfoStmt | undefined;\n emailInvoices?: WebRequestEmailInvoices | undefined;\n directDebit?: WebRequestDirectDebit | undefined;\n customerDetails?: WebRequestCustomerDetails | undefined;\n changeEmail?: WebRequestChangeEmail | undefined;\n balanceCheck?: WebRequestBalanceCheck | undefined;\n concession?: WebRequestConcession | undefined;\n paymentArrangement?: WebRequestPaymentArrangement | undefined;\n}\n\nexport class WebRequestType implements IWebRequestType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IWebRequestType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): WebRequestType {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IWebRequestType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class WebRequestStatus implements IWebRequestStatus {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IWebRequestStatus) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): WebRequestStatus {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestStatus();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IWebRequestStatus {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class WebRequestTenant implements IWebRequestTenant {\n pk!: number;\n fkWebRequest!: number;\n surname?: string | undefined;\n firstName?: string | undefined;\n middleName?: string | undefined;\n birthDate!: Date;\n unitNo?: string | undefined;\n streetNo?: string | undefined;\n street?: string | undefined;\n suburb?: string | undefined;\n postCode!: number;\n rowid?: string | undefined;\n email?: string | undefined;\n phone?: string | undefined;\n\n constructor(data?: IWebRequestTenant) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.surname = data[\"Surname\"];\n this.firstName = data[\"FirstName\"];\n this.middleName = data[\"MiddleName\"];\n this.birthDate = data[\"BirthDate\"] ? new Date(data[\"BirthDate\"].toString()) : undefined;\n this.unitNo = data[\"UnitNo\"];\n this.streetNo = data[\"StreetNo\"];\n this.street = data[\"Street\"];\n this.suburb = data[\"Suburb\"];\n this.postCode = data[\"PostCode\"];\n this.rowid = data[\"Rowid\"];\n this.email = data[\"Email\"];\n this.phone = data[\"Phone\"];\n }\n }\n\n static fromJS(data: any): WebRequestTenant {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestTenant();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"Surname\"] = this.surname;\n data[\"FirstName\"] = this.firstName;\n data[\"MiddleName\"] = this.middleName;\n data[\"BirthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"UnitNo\"] = this.unitNo;\n data[\"StreetNo\"] = this.streetNo;\n data[\"Street\"] = this.street;\n data[\"Suburb\"] = this.suburb;\n data[\"PostCode\"] = this.postCode;\n data[\"Rowid\"] = this.rowid;\n data[\"Email\"] = this.email;\n data[\"Phone\"] = this.phone;\n return data; \n }\n}\n\nexport interface IWebRequestTenant {\n pk: number;\n fkWebRequest: number;\n surname?: string | undefined;\n firstName?: string | undefined;\n middleName?: string | undefined;\n birthDate: Date;\n unitNo?: string | undefined;\n streetNo?: string | undefined;\n street?: string | undefined;\n suburb?: string | undefined;\n postCode: number;\n rowid?: string | undefined;\n email?: string | undefined;\n phone?: string | undefined;\n}\n\nexport class WebRequestTenancy implements IWebRequestTenancy {\n pk!: number;\n fkWebRequest!: number;\n dateMoving!: Date;\n meterNumber?: string | undefined;\n meterReading?: number | undefined;\n meterReaderName?: string | undefined;\n dateRead?: Date | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestTenancy) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.dateMoving = data[\"DateMoving\"] ? new Date(data[\"DateMoving\"].toString()) : undefined;\n this.meterNumber = data[\"MeterNumber\"];\n this.meterReading = data[\"MeterReading\"];\n this.meterReaderName = data[\"MeterReaderName\"];\n this.dateRead = data[\"DateRead\"] ? new Date(data[\"DateRead\"].toString()) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestTenancy {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestTenancy();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"DateMoving\"] = this.dateMoving ? this.dateMoving.toISOString() : undefined;\n data[\"MeterNumber\"] = this.meterNumber;\n data[\"MeterReading\"] = this.meterReading;\n data[\"MeterReaderName\"] = this.meterReaderName;\n data[\"DateRead\"] = this.dateRead ? this.dateRead.toISOString() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestTenancy {\n pk: number;\n fkWebRequest: number;\n dateMoving: Date;\n meterNumber?: string | undefined;\n meterReading?: number | undefined;\n meterReaderName?: string | undefined;\n dateRead?: Date | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestPaymentExtension implements IWebRequestPaymentExtension {\n pk!: number;\n fkWebRequest!: number;\n amount!: number;\n dateNextDue!: Date;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestPaymentExtension) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.amount = data[\"Amount\"];\n this.dateNextDue = data[\"DateNextDue\"] ? new Date(data[\"DateNextDue\"].toString()) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestPaymentExtension {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestPaymentExtension();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"Amount\"] = this.amount;\n data[\"DateNextDue\"] = this.dateNextDue ? this.dateNextDue.toISOString() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestPaymentExtension {\n pk: number;\n fkWebRequest: number;\n amount: number;\n dateNextDue: Date;\n rowid?: string | undefined;\n}\n\nexport class WebRequestChangeName implements IWebRequestChangeName {\n pk!: number;\n fkWebRequest!: number;\n surname?: string | undefined;\n otherNames?: string | undefined;\n organisation_name?: string | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestChangeName) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.surname = data[\"Surname\"];\n this.otherNames = data[\"OtherNames\"];\n this.organisation_name = data[\"Organisation_name\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestChangeName {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestChangeName();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"Surname\"] = this.surname;\n data[\"OtherNames\"] = this.otherNames;\n data[\"Organisation_name\"] = this.organisation_name;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestChangeName {\n pk: number;\n fkWebRequest: number;\n surname?: string | undefined;\n otherNames?: string | undefined;\n organisation_name?: string | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestAddress implements IWebRequestAddress {\n pk!: number;\n fkWebRequest!: number;\n fkWebRequestAddressType?: string | undefined;\n fkAccount?: number | undefined;\n overseasAddressFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n addressDateFrom?: Date | undefined;\n addressDateTo?: Date | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestAddress) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.fkWebRequestAddressType = data[\"FkWebRequestAddressType\"];\n this.fkAccount = data[\"FkAccount\"];\n this.overseasAddressFlag = data[\"OverseasAddressFlag\"];\n this.address1 = data[\"Address1\"];\n this.address2 = data[\"Address2\"];\n this.address3 = data[\"Address3\"];\n this.address4 = data[\"Address4\"];\n this.postcode = data[\"Postcode\"];\n this.fkState = data[\"FkState\"];\n this.addressDateFrom = data[\"AddressDateFrom\"] ? new Date(data[\"AddressDateFrom\"].toString()) : undefined;\n this.addressDateTo = data[\"AddressDateTo\"] ? new Date(data[\"AddressDateTo\"].toString()) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestAddress {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestAddress();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"FkWebRequestAddressType\"] = this.fkWebRequestAddressType;\n data[\"FkAccount\"] = this.fkAccount;\n data[\"OverseasAddressFlag\"] = this.overseasAddressFlag;\n data[\"Address1\"] = this.address1;\n data[\"Address2\"] = this.address2;\n data[\"Address3\"] = this.address3;\n data[\"Address4\"] = this.address4;\n data[\"Postcode\"] = this.postcode;\n data[\"FkState\"] = this.fkState;\n data[\"AddressDateFrom\"] = this.addressDateFrom ? this.addressDateFrom.toISOString() : undefined;\n data[\"AddressDateTo\"] = this.addressDateTo ? this.addressDateTo.toISOString() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestAddress {\n pk: number;\n fkWebRequest: number;\n fkWebRequestAddressType?: string | undefined;\n fkAccount?: number | undefined;\n overseasAddressFlag?: string | undefined;\n address1?: string | undefined;\n address2?: string | undefined;\n address3?: string | undefined;\n address4?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n addressDateFrom?: Date | undefined;\n addressDateTo?: Date | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestAttachment implements IWebRequestAttachment {\n pk!: number;\n fkWebRequest!: number;\n fkWebRequestAttachmentType?: string | undefined;\n fileName?: string | undefined;\n data?: string | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestAttachment) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.fkWebRequestAttachmentType = data[\"FkWebRequestAttachmentType\"];\n this.fileName = data[\"FileName\"];\n this.data = data[\"Data\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestAttachment {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestAttachment();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"FkWebRequestAttachmentType\"] = this.fkWebRequestAttachmentType;\n data[\"FileName\"] = this.fileName;\n data[\"Data\"] = this.data;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestAttachment {\n pk: number;\n fkWebRequest: number;\n fkWebRequestAttachmentType?: string | undefined;\n fileName?: string | undefined;\n data?: string | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestMeterReading implements IWebRequestMeterReading {\n pk!: number;\n fkWebRequest!: number;\n serialNo?: string | undefined;\n reading!: number;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestMeterReading) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.serialNo = data[\"SerialNo\"];\n this.reading = data[\"Reading\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestMeterReading {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestMeterReading();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"SerialNo\"] = this.serialNo;\n data[\"Reading\"] = this.reading;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestMeterReading {\n pk: number;\n fkWebRequest: number;\n serialNo?: string | undefined;\n reading: number;\n rowid?: string | undefined;\n}\n\nexport class WebRequestInfoStmt implements IWebRequestInfoStmt {\n pk!: number;\n fk_web_request!: number;\n fk_web_request_fee_type?: string | undefined;\n fk_unit_type?: string | undefined;\n unit_no?: string | undefined;\n street_no?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_suburb?: string | undefined;\n post_code!: number;\n solicitor_ref?: string | undefined;\n date_settling?: Date | undefined;\n comments?: string | undefined;\n rowid?: string | undefined;\n feeType?: WebRequestFeeType | undefined;\n porgs?: WebRequestInfoStmtPorg[] | undefined;\n titles?: WebRequestInfoStmtTitle[] | undefined;\n\n constructor(data?: IWebRequestInfoStmt) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.fk_web_request_fee_type = data[\"Fk_web_request_fee_type\"];\n this.fk_unit_type = data[\"Fk_unit_type\"];\n this.unit_no = data[\"Unit_no\"];\n this.street_no = data[\"Street_no\"];\n this.street = data[\"Street\"];\n this.fk_street_suffix = data[\"Fk_street_suffix\"];\n this.fk_suburb = data[\"Fk_suburb\"];\n this.post_code = data[\"Post_code\"];\n this.solicitor_ref = data[\"Solicitor_ref\"];\n this.date_settling = data[\"Date_settling\"] ? new Date(data[\"Date_settling\"].toString()) : undefined;\n this.comments = data[\"Comments\"];\n this.rowid = data[\"Rowid\"];\n this.feeType = data[\"FeeType\"] ? WebRequestFeeType.fromJS(data[\"FeeType\"]) : undefined;\n if (Array.isArray(data[\"Porgs\"])) {\n this.porgs = [] as any;\n for (let item of data[\"Porgs\"])\n this.porgs!.push(WebRequestInfoStmtPorg.fromJS(item));\n }\n if (Array.isArray(data[\"Titles\"])) {\n this.titles = [] as any;\n for (let item of data[\"Titles\"])\n this.titles!.push(WebRequestInfoStmtTitle.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): WebRequestInfoStmt {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestInfoStmt();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Fk_web_request_fee_type\"] = this.fk_web_request_fee_type;\n data[\"Fk_unit_type\"] = this.fk_unit_type;\n data[\"Unit_no\"] = this.unit_no;\n data[\"Street_no\"] = this.street_no;\n data[\"Street\"] = this.street;\n data[\"Fk_street_suffix\"] = this.fk_street_suffix;\n data[\"Fk_suburb\"] = this.fk_suburb;\n data[\"Post_code\"] = this.post_code;\n data[\"Solicitor_ref\"] = this.solicitor_ref;\n data[\"Date_settling\"] = this.date_settling ? this.date_settling.toISOString() : undefined;\n data[\"Comments\"] = this.comments;\n data[\"Rowid\"] = this.rowid;\n data[\"FeeType\"] = this.feeType ? this.feeType.toJSON() : undefined;\n if (Array.isArray(this.porgs)) {\n data[\"Porgs\"] = [];\n for (let item of this.porgs)\n data[\"Porgs\"].push(item.toJSON());\n }\n if (Array.isArray(this.titles)) {\n data[\"Titles\"] = [];\n for (let item of this.titles)\n data[\"Titles\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IWebRequestInfoStmt {\n pk: number;\n fk_web_request: number;\n fk_web_request_fee_type?: string | undefined;\n fk_unit_type?: string | undefined;\n unit_no?: string | undefined;\n street_no?: string | undefined;\n street?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_suburb?: string | undefined;\n post_code: number;\n solicitor_ref?: string | undefined;\n date_settling?: Date | undefined;\n comments?: string | undefined;\n rowid?: string | undefined;\n feeType?: WebRequestFeeType | undefined;\n porgs?: WebRequestInfoStmtPorg[] | undefined;\n titles?: WebRequestInfoStmtTitle[] | undefined;\n}\n\nexport class WebRequestFeeType implements IWebRequestFeeType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IWebRequestFeeType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): WebRequestFeeType {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestFeeType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IWebRequestFeeType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class WebRequestInfoStmtPorg implements IWebRequestInfoStmtPorg {\n pk!: number;\n fk_web_request_info_stmt!: number;\n fk_porg_type?: string | undefined;\n owner_flag!: boolean;\n surname?: string | undefined;\n first_name?: string | undefined;\n other_names?: string | undefined;\n organisation_name?: string | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestInfoStmtPorg) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request_info_stmt = data[\"Fk_web_request_info_stmt\"];\n this.fk_porg_type = data[\"Fk_porg_type\"];\n this.owner_flag = data[\"Owner_flag\"];\n this.surname = data[\"Surname\"];\n this.first_name = data[\"First_name\"];\n this.other_names = data[\"Other_names\"];\n this.organisation_name = data[\"Organisation_name\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestInfoStmtPorg {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestInfoStmtPorg();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request_info_stmt\"] = this.fk_web_request_info_stmt;\n data[\"Fk_porg_type\"] = this.fk_porg_type;\n data[\"Owner_flag\"] = this.owner_flag;\n data[\"Surname\"] = this.surname;\n data[\"First_name\"] = this.first_name;\n data[\"Other_names\"] = this.other_names;\n data[\"Organisation_name\"] = this.organisation_name;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestInfoStmtPorg {\n pk: number;\n fk_web_request_info_stmt: number;\n fk_porg_type?: string | undefined;\n owner_flag: boolean;\n surname?: string | undefined;\n first_name?: string | undefined;\n other_names?: string | undefined;\n organisation_name?: string | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestInfoStmtTitle implements IWebRequestInfoStmtTitle {\n pk!: number;\n fk_web_request_info_stmt!: number;\n part_lot_flag!: boolean;\n lot_no?: string | undefined;\n fk_plan_type?: string | undefined;\n part_plan_flag!: boolean;\n plan_no?: string | undefined;\n volume_no?: string | undefined;\n folio_no?: string | undefined;\n part_ca_flag!: boolean;\n crown_allotment?: string | undefined;\n part_section_flag!: boolean;\n section?: string | undefined;\n fk_parish?: string | undefined;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestInfoStmtTitle) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request_info_stmt = data[\"Fk_web_request_info_stmt\"];\n this.part_lot_flag = data[\"Part_lot_flag\"];\n this.lot_no = data[\"Lot_no\"];\n this.fk_plan_type = data[\"Fk_plan_type\"];\n this.part_plan_flag = data[\"Part_plan_flag\"];\n this.plan_no = data[\"Plan_no\"];\n this.volume_no = data[\"Volume_no\"];\n this.folio_no = data[\"Folio_no\"];\n this.part_ca_flag = data[\"Part_ca_flag\"];\n this.crown_allotment = data[\"Crown_allotment\"];\n this.part_section_flag = data[\"Part_section_flag\"];\n this.section = data[\"Section\"];\n this.fk_parish = data[\"Fk_parish\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestInfoStmtTitle {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestInfoStmtTitle();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request_info_stmt\"] = this.fk_web_request_info_stmt;\n data[\"Part_lot_flag\"] = this.part_lot_flag;\n data[\"Lot_no\"] = this.lot_no;\n data[\"Fk_plan_type\"] = this.fk_plan_type;\n data[\"Part_plan_flag\"] = this.part_plan_flag;\n data[\"Plan_no\"] = this.plan_no;\n data[\"Volume_no\"] = this.volume_no;\n data[\"Folio_no\"] = this.folio_no;\n data[\"Part_ca_flag\"] = this.part_ca_flag;\n data[\"Crown_allotment\"] = this.crown_allotment;\n data[\"Part_section_flag\"] = this.part_section_flag;\n data[\"Section\"] = this.section;\n data[\"Fk_parish\"] = this.fk_parish;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestInfoStmtTitle {\n pk: number;\n fk_web_request_info_stmt: number;\n part_lot_flag: boolean;\n lot_no?: string | undefined;\n fk_plan_type?: string | undefined;\n part_plan_flag: boolean;\n plan_no?: string | undefined;\n volume_no?: string | undefined;\n folio_no?: string | undefined;\n part_ca_flag: boolean;\n crown_allotment?: string | undefined;\n part_section_flag: boolean;\n section?: string | undefined;\n fk_parish?: string | undefined;\n rowid?: string | undefined;\n}\n\nexport class WebRequestEmailInvoices implements IWebRequestEmailInvoices {\n pk!: number;\n fkWebRequest!: number;\n emailInvoicesFlag!: boolean;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestEmailInvoices) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.emailInvoicesFlag = data[\"EmailInvoicesFlag\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestEmailInvoices {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestEmailInvoices();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"EmailInvoicesFlag\"] = this.emailInvoicesFlag;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestEmailInvoices {\n pk: number;\n fkWebRequest: number;\n emailInvoicesFlag: boolean;\n rowid?: string | undefined;\n}\n\nexport class WebRequestDirectDebit implements IWebRequestDirectDebit {\n pk!: number;\n fkWebRequest!: number;\n bankName?: string | undefined;\n bsbNo?: string | undefined;\n accountNo?: string | undefined;\n fkDebtOption?: string | undefined;\n processingDate?: Date | undefined;\n accountTitle?: string | undefined;\n accountHolder1?: string | undefined;\n accountHolder2?: string | undefined;\n rowid?: string | undefined;\n debtOption?: WebRequestDebtOption | undefined;\n\n constructor(data?: IWebRequestDirectDebit) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkWebRequest = data[\"FkWebRequest\"];\n this.bankName = data[\"BankName\"];\n this.bsbNo = data[\"BsbNo\"];\n this.accountNo = data[\"AccountNo\"];\n this.fkDebtOption = data[\"FkDebtOption\"];\n this.processingDate = data[\"ProcessingDate\"] ? new Date(data[\"ProcessingDate\"].toString()) : undefined;\n this.accountTitle = data[\"AccountTitle\"];\n this.accountHolder1 = data[\"AccountHolder1\"];\n this.accountHolder2 = data[\"AccountHolder2\"];\n this.rowid = data[\"Rowid\"];\n this.debtOption = data[\"DebtOption\"] ? WebRequestDebtOption.fromJS(data[\"DebtOption\"]) : undefined;\n }\n }\n\n static fromJS(data: any): WebRequestDirectDebit {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestDirectDebit();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkWebRequest\"] = this.fkWebRequest;\n data[\"BankName\"] = this.bankName;\n data[\"BsbNo\"] = this.bsbNo;\n data[\"AccountNo\"] = this.accountNo;\n data[\"FkDebtOption\"] = this.fkDebtOption;\n data[\"ProcessingDate\"] = this.processingDate ? this.processingDate.toISOString() : undefined;\n data[\"AccountTitle\"] = this.accountTitle;\n data[\"AccountHolder1\"] = this.accountHolder1;\n data[\"AccountHolder2\"] = this.accountHolder2;\n data[\"Rowid\"] = this.rowid;\n data[\"DebtOption\"] = this.debtOption ? this.debtOption.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IWebRequestDirectDebit {\n pk: number;\n fkWebRequest: number;\n bankName?: string | undefined;\n bsbNo?: string | undefined;\n accountNo?: string | undefined;\n fkDebtOption?: string | undefined;\n processingDate?: Date | undefined;\n accountTitle?: string | undefined;\n accountHolder1?: string | undefined;\n accountHolder2?: string | undefined;\n rowid?: string | undefined;\n debtOption?: WebRequestDebtOption | undefined;\n}\n\nexport class WebRequestDebtOption implements IWebRequestDebtOption {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IWebRequestDebtOption) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): WebRequestDebtOption {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestDebtOption();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IWebRequestDebtOption {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class WebRequestCustomerDetails implements IWebRequestCustomerDetails {\n pk!: number;\n fk_web_request!: number;\n care_of?: string | undefined;\n po_box?: string | undefined;\n po_suburb?: string | undefined;\n fk_state_po?: string | undefined;\n po_postcode?: number | undefined;\n street_address_1?: string | undefined;\n suburb_1?: string | undefined;\n fk_state_1?: string | undefined;\n postcode_1?: number | undefined;\n street_address_2?: string | undefined;\n suburb_2?: string | undefined;\n fk_state_2?: string | undefined;\n postcode_2?: number | undefined;\n phone_number?: string | undefined;\n home_phone_number?: string | undefined;\n\n constructor(data?: IWebRequestCustomerDetails) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.care_of = data[\"Care_of\"];\n this.po_box = data[\"Po_box\"];\n this.po_suburb = data[\"Po_suburb\"];\n this.fk_state_po = data[\"Fk_state_po\"];\n this.po_postcode = data[\"Po_postcode\"];\n this.street_address_1 = data[\"Street_address_1\"];\n this.suburb_1 = data[\"Suburb_1\"];\n this.fk_state_1 = data[\"Fk_state_1\"];\n this.postcode_1 = data[\"Postcode_1\"];\n this.street_address_2 = data[\"Street_address_2\"];\n this.suburb_2 = data[\"Suburb_2\"];\n this.fk_state_2 = data[\"Fk_state_2\"];\n this.postcode_2 = data[\"Postcode_2\"];\n this.phone_number = data[\"Phone_number\"];\n this.home_phone_number = data[\"Home_phone_number\"];\n }\n }\n\n static fromJS(data: any): WebRequestCustomerDetails {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestCustomerDetails();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Care_of\"] = this.care_of;\n data[\"Po_box\"] = this.po_box;\n data[\"Po_suburb\"] = this.po_suburb;\n data[\"Fk_state_po\"] = this.fk_state_po;\n data[\"Po_postcode\"] = this.po_postcode;\n data[\"Street_address_1\"] = this.street_address_1;\n data[\"Suburb_1\"] = this.suburb_1;\n data[\"Fk_state_1\"] = this.fk_state_1;\n data[\"Postcode_1\"] = this.postcode_1;\n data[\"Street_address_2\"] = this.street_address_2;\n data[\"Suburb_2\"] = this.suburb_2;\n data[\"Fk_state_2\"] = this.fk_state_2;\n data[\"Postcode_2\"] = this.postcode_2;\n data[\"Phone_number\"] = this.phone_number;\n data[\"Home_phone_number\"] = this.home_phone_number;\n return data; \n }\n}\n\nexport interface IWebRequestCustomerDetails {\n pk: number;\n fk_web_request: number;\n care_of?: string | undefined;\n po_box?: string | undefined;\n po_suburb?: string | undefined;\n fk_state_po?: string | undefined;\n po_postcode?: number | undefined;\n street_address_1?: string | undefined;\n suburb_1?: string | undefined;\n fk_state_1?: string | undefined;\n postcode_1?: number | undefined;\n street_address_2?: string | undefined;\n suburb_2?: string | undefined;\n fk_state_2?: string | undefined;\n postcode_2?: number | undefined;\n phone_number?: string | undefined;\n home_phone_number?: string | undefined;\n}\n\nexport class WebRequestChangeEmail implements IWebRequestChangeEmail {\n pk!: number;\n fk_web_request!: number;\n old_email?: string | undefined;\n new_email?: string | undefined;\n email_invoices_flag!: boolean;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestChangeEmail) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.old_email = data[\"Old_email\"];\n this.new_email = data[\"New_email\"];\n this.email_invoices_flag = data[\"Email_invoices_flag\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestChangeEmail {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestChangeEmail();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Old_email\"] = this.old_email;\n data[\"New_email\"] = this.new_email;\n data[\"Email_invoices_flag\"] = this.email_invoices_flag;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestChangeEmail {\n pk: number;\n fk_web_request: number;\n old_email?: string | undefined;\n new_email?: string | undefined;\n email_invoices_flag: boolean;\n rowid?: string | undefined;\n}\n\nexport class WebRequestBalanceCheck implements IWebRequestBalanceCheck {\n pk!: number;\n fk_web_request!: number;\n balance!: number;\n\n constructor(data?: IWebRequestBalanceCheck) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.balance = data[\"Balance\"];\n }\n }\n\n static fromJS(data: any): WebRequestBalanceCheck {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestBalanceCheck();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Balance\"] = this.balance;\n return data; \n }\n}\n\nexport interface IWebRequestBalanceCheck {\n pk: number;\n fk_web_request: number;\n balance: number;\n}\n\nexport class WebRequestConcession implements IWebRequestConcession {\n pk!: number;\n fk_web_request!: number;\n fk_pension_type!: string;\n pension_no!: string;\n pension_start_date!: Date;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestConcession) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.fk_pension_type = data[\"Fk_pension_type\"];\n this.pension_no = data[\"Pension_no\"];\n this.pension_start_date = data[\"Pension_start_date\"] ? new Date(data[\"Pension_start_date\"].toString()) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestConcession {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestConcession();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Fk_pension_type\"] = this.fk_pension_type;\n data[\"Pension_no\"] = this.pension_no;\n data[\"Pension_start_date\"] = this.pension_start_date ? this.pension_start_date.toISOString() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestConcession {\n pk: number;\n fk_web_request: number;\n fk_pension_type: string;\n pension_no: string;\n pension_start_date: Date;\n rowid?: string | undefined;\n}\n\nexport class WebRequestPaymentArrangement implements IWebRequestPaymentArrangement {\n pk!: number;\n fk_web_request!: number;\n fk_pay_frequency!: string;\n amount!: number;\n start_date!: Date;\n rowid?: string | undefined;\n\n constructor(data?: IWebRequestPaymentArrangement) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fk_web_request = data[\"Fk_web_request\"];\n this.fk_pay_frequency = data[\"Fk_pay_frequency\"];\n this.amount = data[\"Amount\"];\n this.start_date = data[\"Start_date\"] ? new Date(data[\"Start_date\"].toString()) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): WebRequestPaymentArrangement {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestPaymentArrangement();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Fk_web_request\"] = this.fk_web_request;\n data[\"Fk_pay_frequency\"] = this.fk_pay_frequency;\n data[\"Amount\"] = this.amount;\n data[\"Start_date\"] = this.start_date ? this.start_date.toISOString() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface IWebRequestPaymentArrangement {\n pk: number;\n fk_web_request: number;\n fk_pay_frequency: string;\n amount: number;\n start_date: Date;\n rowid?: string | undefined;\n}\n\nexport class Addresses implements IAddresses {\n residential?: ArAddress | undefined;\n postal?: ArAddress | undefined;\n overrides?: ArAddress[] | undefined;\n\n constructor(data?: IAddresses) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.residential = data[\"Residential\"] ? ArAddress.fromJS(data[\"Residential\"]) : undefined;\n this.postal = data[\"Postal\"] ? ArAddress.fromJS(data[\"Postal\"]) : undefined;\n if (Array.isArray(data[\"Overrides\"])) {\n this.overrides = [] as any;\n for (let item of data[\"Overrides\"])\n this.overrides!.push(ArAddress.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Addresses {\n data = typeof data === 'object' ? data : {};\n let result = new Addresses();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Residential\"] = this.residential ? this.residential.toJSON() : undefined;\n data[\"Postal\"] = this.postal ? this.postal.toJSON() : undefined;\n if (Array.isArray(this.overrides)) {\n data[\"Overrides\"] = [];\n for (let item of this.overrides)\n data[\"Overrides\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IAddresses {\n residential?: ArAddress | undefined;\n postal?: ArAddress | undefined;\n overrides?: ArAddress[] | undefined;\n}\n\nexport class ArAddress implements IArAddress {\n isOverseas!: boolean;\n postalName?: string | undefined;\n street?: string | undefined;\n suburb?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n fkAccount?: number | undefined;\n dateFrom?: Date | undefined;\n dateTo?: Date | undefined;\n\n constructor(data?: IArAddress) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.isOverseas = data[\"IsOverseas\"];\n this.postalName = data[\"PostalName\"];\n this.street = data[\"Street\"];\n this.suburb = data[\"Suburb\"];\n this.postcode = data[\"Postcode\"];\n this.fkState = data[\"FkState\"];\n this.fkAccount = data[\"FkAccount\"];\n this.dateFrom = data[\"DateFrom\"] ? new Date(data[\"DateFrom\"].toString()) : undefined;\n this.dateTo = data[\"DateTo\"] ? new Date(data[\"DateTo\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): ArAddress {\n data = typeof data === 'object' ? data : {};\n let result = new ArAddress();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"IsOverseas\"] = this.isOverseas;\n data[\"PostalName\"] = this.postalName;\n data[\"Street\"] = this.street;\n data[\"Suburb\"] = this.suburb;\n data[\"Postcode\"] = this.postcode;\n data[\"FkState\"] = this.fkState;\n data[\"FkAccount\"] = this.fkAccount;\n data[\"DateFrom\"] = this.dateFrom ? this.dateFrom.toISOString() : undefined;\n data[\"DateTo\"] = this.dateTo ? this.dateTo.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IArAddress {\n isOverseas: boolean;\n postalName?: string | undefined;\n street?: string | undefined;\n suburb?: string | undefined;\n postcode?: number | undefined;\n fkState?: string | undefined;\n fkAccount?: number | undefined;\n dateFrom?: Date | undefined;\n dateTo?: Date | undefined;\n}\n\nexport class State implements IState {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IState) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): State {\n data = typeof data === 'object' ? data : {};\n let result = new State();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IState {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class WebRequestAttachmentType implements IWebRequestAttachmentType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IWebRequestAttachmentType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): WebRequestAttachmentType {\n data = typeof data === 'object' ? data : {};\n let result = new WebRequestAttachmentType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IWebRequestAttachmentType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class SubmitTenancyRequest implements ISubmitTenancyRequest {\n pk!: number;\n fkProperty?: number | undefined;\n fkRequestType?: string | undefined;\n tenants?: WebRequestTenant[] | undefined;\n tenancy?: WebRequestTenancy | undefined;\n rowid?: string | undefined;\n\n constructor(data?: ISubmitTenancyRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.fkProperty = data[\"FkProperty\"];\n this.fkRequestType = data[\"FkRequestType\"];\n if (Array.isArray(data[\"Tenants\"])) {\n this.tenants = [] as any;\n for (let item of data[\"Tenants\"])\n this.tenants!.push(WebRequestTenant.fromJS(item));\n }\n this.tenancy = data[\"Tenancy\"] ? WebRequestTenancy.fromJS(data[\"Tenancy\"]) : undefined;\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): SubmitTenancyRequest {\n data = typeof data === 'object' ? data : {};\n let result = new SubmitTenancyRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"FkRequestType\"] = this.fkRequestType;\n if (Array.isArray(this.tenants)) {\n data[\"Tenants\"] = [];\n for (let item of this.tenants)\n data[\"Tenants\"].push(item.toJSON());\n }\n data[\"Tenancy\"] = this.tenancy ? this.tenancy.toJSON() : undefined;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface ISubmitTenancyRequest {\n pk: number;\n fkProperty?: number | undefined;\n fkRequestType?: string | undefined;\n tenants?: WebRequestTenant[] | undefined;\n tenancy?: WebRequestTenancy | undefined;\n rowid?: string | undefined;\n}\n\nexport class SearchResponseOfTenancyWebRequestInfo implements ISearchResponseOfTenancyWebRequestInfo {\n items?: TenancyWebRequestInfo[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfTenancyWebRequestInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(TenancyWebRequestInfo.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfTenancyWebRequestInfo {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfTenancyWebRequestInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfTenancyWebRequestInfo {\n items?: TenancyWebRequestInfo[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class TenancyWebRequestInfo implements ITenancyWebRequestInfo {\n pk!: number;\n guid!: string;\n fkProperty?: number | undefined;\n fullAddress?: string | undefined;\n fkRequestType?: string | undefined;\n type?: string | undefined;\n dateRequested!: Date;\n fkRequestStatus?: string | undefined;\n status?: string | undefined;\n\n constructor(data?: ITenancyWebRequestInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.guid = data[\"Guid\"];\n this.fkProperty = data[\"FkProperty\"];\n this.fullAddress = data[\"FullAddress\"];\n this.fkRequestType = data[\"FkRequestType\"];\n this.type = data[\"Type\"];\n this.dateRequested = data[\"DateRequested\"] ? new Date(data[\"DateRequested\"].toString()) : undefined;\n this.fkRequestStatus = data[\"FkRequestStatus\"];\n this.status = data[\"Status\"];\n }\n }\n\n static fromJS(data: any): TenancyWebRequestInfo {\n data = typeof data === 'object' ? data : {};\n let result = new TenancyWebRequestInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Guid\"] = this.guid;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"FullAddress\"] = this.fullAddress;\n data[\"FkRequestType\"] = this.fkRequestType;\n data[\"Type\"] = this.type;\n data[\"DateRequested\"] = this.dateRequested ? this.dateRequested.toISOString() : undefined;\n data[\"FkRequestStatus\"] = this.fkRequestStatus;\n data[\"Status\"] = this.status;\n return data; \n }\n}\n\nexport interface ITenancyWebRequestInfo {\n pk: number;\n guid: string;\n fkProperty?: number | undefined;\n fullAddress?: string | undefined;\n fkRequestType?: string | undefined;\n type?: string | undefined;\n dateRequested: Date;\n fkRequestStatus?: string | undefined;\n status?: string | undefined;\n}\n\nexport class PorgType implements IPorgType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IPorgType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): PorgType {\n data = typeof data === 'object' ? data : {};\n let result = new PorgType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IPorgType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class PlanType implements IPlanType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IPlanType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): PlanType {\n data = typeof data === 'object' ? data : {};\n let result = new PlanType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IPlanType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class Parish implements IParish {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IParish) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): Parish {\n data = typeof data === 'object' ? data : {};\n let result = new Parish();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IParish {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport class SubmitInfoStatementResponse implements ISubmitInfoStatementResponse {\n guid!: string;\n fkRequestStatus?: string | undefined;\n rowid?: string | undefined;\n\n constructor(data?: ISubmitInfoStatementResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.guid = data[\"Guid\"];\n this.fkRequestStatus = data[\"FkRequestStatus\"];\n this.rowid = data[\"Rowid\"];\n }\n }\n\n static fromJS(data: any): SubmitInfoStatementResponse {\n data = typeof data === 'object' ? data : {};\n let result = new SubmitInfoStatementResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Guid\"] = this.guid;\n data[\"FkRequestStatus\"] = this.fkRequestStatus;\n data[\"Rowid\"] = this.rowid;\n return data; \n }\n}\n\nexport interface ISubmitInfoStatementResponse {\n guid: string;\n fkRequestStatus?: string | undefined;\n rowid?: string | undefined;\n}\n\nexport class SubmitInfoStatementRequest implements ISubmitInfoStatementRequest {\n pk!: number;\n guid!: string;\n fkProperty?: number | undefined;\n submit?: boolean | undefined;\n rowid?: string | undefined;\n infoStatement?: WebRequestInfoStmt | undefined;\n attachments?: WebRequestAttachment[] | undefined;\n\n constructor(data?: ISubmitInfoStatementRequest) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.guid = data[\"Guid\"];\n this.fkProperty = data[\"FkProperty\"];\n this.submit = data[\"Submit\"];\n this.rowid = data[\"Rowid\"];\n this.infoStatement = data[\"InfoStatement\"] ? WebRequestInfoStmt.fromJS(data[\"InfoStatement\"]) : undefined;\n if (Array.isArray(data[\"Attachments\"])) {\n this.attachments = [] as any;\n for (let item of data[\"Attachments\"])\n this.attachments!.push(WebRequestAttachment.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SubmitInfoStatementRequest {\n data = typeof data === 'object' ? data : {};\n let result = new SubmitInfoStatementRequest();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Guid\"] = this.guid;\n data[\"FkProperty\"] = this.fkProperty;\n data[\"Submit\"] = this.submit;\n data[\"Rowid\"] = this.rowid;\n data[\"InfoStatement\"] = this.infoStatement ? this.infoStatement.toJSON() : undefined;\n if (Array.isArray(this.attachments)) {\n data[\"Attachments\"] = [];\n for (let item of this.attachments)\n data[\"Attachments\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISubmitInfoStatementRequest {\n pk: number;\n guid: string;\n fkProperty?: number | undefined;\n submit?: boolean | undefined;\n rowid?: string | undefined;\n infoStatement?: WebRequestInfoStmt | undefined;\n attachments?: WebRequestAttachment[] | undefined;\n}\n\nexport class SearchResponseOfInfoStatementWebRequestInfo implements ISearchResponseOfInfoStatementWebRequestInfo {\n items?: InfoStatementWebRequestInfo[] | undefined;\n pageCount?: number | undefined;\n count!: number;\n\n constructor(data?: ISearchResponseOfInfoStatementWebRequestInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n if (Array.isArray(data[\"Items\"])) {\n this.items = [] as any;\n for (let item of data[\"Items\"])\n this.items!.push(InfoStatementWebRequestInfo.fromJS(item));\n }\n this.pageCount = data[\"PageCount\"];\n this.count = data[\"Count\"];\n }\n }\n\n static fromJS(data: any): SearchResponseOfInfoStatementWebRequestInfo {\n data = typeof data === 'object' ? data : {};\n let result = new SearchResponseOfInfoStatementWebRequestInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"Items\"] = [];\n for (let item of this.items)\n data[\"Items\"].push(item.toJSON());\n }\n data[\"PageCount\"] = this.pageCount;\n data[\"Count\"] = this.count;\n return data; \n }\n}\n\nexport interface ISearchResponseOfInfoStatementWebRequestInfo {\n items?: InfoStatementWebRequestInfo[] | undefined;\n pageCount?: number | undefined;\n count: number;\n}\n\nexport class InfoStatementWebRequestInfo implements IInfoStatementWebRequestInfo {\n pk!: number;\n guid!: string;\n solicitorRef?: string | undefined;\n fk_unit_type?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_suburb?: string | undefined;\n unit_no?: string | undefined;\n street_no?: string | undefined;\n street?: string | undefined;\n fullAddress?: string | undefined;\n dateRequested!: Date;\n fkRequestStatus?: string | undefined;\n status?: string | undefined;\n\n constructor(data?: IInfoStatementWebRequestInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.pk = data[\"Pk\"];\n this.guid = data[\"Guid\"];\n this.solicitorRef = data[\"SolicitorRef\"];\n this.fk_unit_type = data[\"Fk_unit_type\"];\n this.fk_street_suffix = data[\"Fk_street_suffix\"];\n this.fk_suburb = data[\"Fk_suburb\"];\n this.unit_no = data[\"Unit_no\"];\n this.street_no = data[\"Street_no\"];\n this.street = data[\"Street\"];\n this.fullAddress = data[\"FullAddress\"];\n this.dateRequested = data[\"DateRequested\"] ? new Date(data[\"DateRequested\"].toString()) : undefined;\n this.fkRequestStatus = data[\"FkRequestStatus\"];\n this.status = data[\"Status\"];\n }\n }\n\n static fromJS(data: any): InfoStatementWebRequestInfo {\n data = typeof data === 'object' ? data : {};\n let result = new InfoStatementWebRequestInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Pk\"] = this.pk;\n data[\"Guid\"] = this.guid;\n data[\"SolicitorRef\"] = this.solicitorRef;\n data[\"Fk_unit_type\"] = this.fk_unit_type;\n data[\"Fk_street_suffix\"] = this.fk_street_suffix;\n data[\"Fk_suburb\"] = this.fk_suburb;\n data[\"Unit_no\"] = this.unit_no;\n data[\"Street_no\"] = this.street_no;\n data[\"Street\"] = this.street;\n data[\"FullAddress\"] = this.fullAddress;\n data[\"DateRequested\"] = this.dateRequested ? this.dateRequested.toISOString() : undefined;\n data[\"FkRequestStatus\"] = this.fkRequestStatus;\n data[\"Status\"] = this.status;\n return data; \n }\n}\n\nexport interface IInfoStatementWebRequestInfo {\n pk: number;\n guid: string;\n solicitorRef?: string | undefined;\n fk_unit_type?: string | undefined;\n fk_street_suffix?: string | undefined;\n fk_suburb?: string | undefined;\n unit_no?: string | undefined;\n street_no?: string | undefined;\n street?: string | undefined;\n fullAddress?: string | undefined;\n dateRequested: Date;\n fkRequestStatus?: string | undefined;\n status?: string | undefined;\n}\n\nexport class GetLastDirectDebitBankDetailsResponse implements IGetLastDirectDebitBankDetailsResponse {\n bsbNo?: string | undefined;\n accountNo?: string | undefined;\n accountTitle?: string | undefined;\n\n constructor(data?: IGetLastDirectDebitBankDetailsResponse) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.bsbNo = data[\"BsbNo\"];\n this.accountNo = data[\"AccountNo\"];\n this.accountTitle = data[\"AccountTitle\"];\n }\n }\n\n static fromJS(data: any): GetLastDirectDebitBankDetailsResponse {\n data = typeof data === 'object' ? data : {};\n let result = new GetLastDirectDebitBankDetailsResponse();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"BsbNo\"] = this.bsbNo;\n data[\"AccountNo\"] = this.accountNo;\n data[\"AccountTitle\"] = this.accountTitle;\n return data; \n }\n}\n\nexport interface IGetLastDirectDebitBankDetailsResponse {\n bsbNo?: string | undefined;\n accountNo?: string | undefined;\n accountTitle?: string | undefined;\n}\n\nexport class PensionType implements IPensionType {\n code?: string | undefined;\n description?: string | undefined;\n\n constructor(data?: IPensionType) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(data?: any) {\n if (data) {\n this.code = data[\"Code\"];\n this.description = data[\"Description\"];\n }\n }\n\n static fromJS(data: any): PensionType {\n data = typeof data === 'object' ? data : {};\n let result = new PensionType();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"Code\"] = this.code;\n data[\"Description\"] = this.description;\n return data; \n }\n}\n\nexport interface IPensionType {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport interface FileParameter {\n data: any;\n fileName: string;\n}\n\nexport interface FileResponse {\n data: Blob;\n status: number;\n fileName?: string;\n headers?: { [name: string]: any };\n}\n\nexport class SwaggerException extends Error {\n message: string;\n status: number; \n response: string; \n headers: { [key: string]: any; };\n result: any; \n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isSwaggerException = true;\n\n static isSwaggerException(obj: any): obj is SwaggerException {\n return obj.isSwaggerException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n if (result !== null && result !== undefined)\n throw result;\n else\n throw new SwaggerException(message, status, response, headers, null);\n}","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class IdentityException extends at.Exception {\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class LockedOutException extends at.Exception {\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class EmailTakenException extends at.Exception {\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class InactiveUserException extends at.Exception {\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class NotMatchingBirthDateException extends at.Exception {\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class NotFoundException extends at.Exception {\r\n}\r\n","export function utcDate(date: Date): Date | null | undefined {\r\n\treturn date ? new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())) : date;\r\n}\r\n\r\ndeclare global {\r\n\texport interface Date {\r\n\t\tasUtc(): Date;\r\n\t}\r\n}\r\n\r\nDate.prototype.asUtc = function (this: Date) {\r\n\treturn this ? new Date(Date.UTC(this.getFullYear(), this.getMonth(), this.getDate())) : this;\r\n}","import { PropertyAccessor, ValidationRules, FluentRules } from \"aurelia-validation\";\r\n\r\ndeclare module \"aurelia-validation\" {\r\n\tnamespace ValidationRules {\r\n\t\tfunction ensureEx(property: PropertyAccessor): FluentRules;\r\n\t}\r\n\r\n\tinterface FluentRuleCustomizer {\r\n\t\tensure(subject: string | ((model: TObject) => TValue)): FluentRules;\r\n\t}\r\n}\r\n\r\nValidationRules.ensureEx = function (property: PropertyAccessor): FluentRules {\r\n\treturn ValidationRules.ensure(property);\r\n}","import * as app from \"app\";\r\n\r\nexport interface IPaymentStatus {\r\n\tcode: app.PaymentStatus;\r\n\tdescription: string;\r\n}\r\n\r\nexport const PaymentStatuses: IPaymentStatus[] = [\r\n\t{ code: app.PaymentStatus.Approved, description: \"Approved\" },\r\n\t{ code: app.PaymentStatus.ConditionallyApproved, description: \"Approved*\" },\r\n\t{ code: app.PaymentStatus.Failed, description: \"Failed\" },\r\n\t{ code: app.PaymentStatus.Indeterminate, description: \"Indeterminate\" },\r\n\t{ code: app.PaymentStatus.NotSent, description: \"Not sent\" },\r\n\t{ code: app.PaymentStatus.RolledBack, description: \"Rolled back\" },\r\n\t{ code: app.PaymentStatus.Finalised, description: \"Finalised\" }\r\n];","import { ITokenPayload } from \"aurelia-toolkit\";\r\n\r\nexport abstract class IAuthService {\r\n\tabstract isAuthenticatedAsync(): Promise;\r\n\tabstract getAccessToken(): Promise;\r\n\tabstract getTokenPayload(): ITokenPayload;\r\n\tabstract logout(noRedirect: boolean): Promise;\r\n\tabstract login(credentials?: any): Promise;\r\n\tabstract async init();\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { setTimeout } from 'timers';\r\n\r\n@au.autoinject\r\nexport class SettingsService {\r\n\tconstructor(private settingsClient: app.SettingsClient) {\r\n\t}\r\n\r\n\tbrowserSettings: app.BrowserSettings;\r\n\tpaymentSettings: app.PaymentSettings;\r\n\taquaRateSettings: app.AquaRateSettings;\r\n\tpasswordOptions: app.PasswordSettings;\r\n\tazureB2CSettings: app.AzureB2CSettings;\r\n\tlocalTimestamp: string;\r\n\tallowedWebRequests: string[];\r\n\tallowedFileExtensions: string[];\r\n\r\n\tasync loadSettings(): Promise {\r\n\t\tawait Promise.all([\r\n\t\t\tthis.settingsClient.getAquaRateSettings().then(x => this.aquaRateSettings = x),\r\n\t\t\tthis.settingsClient.getBrowserSettings().then(x => this.browserSettings = x),\r\n\t\t\tthis.settingsClient.getPasswordOptions().then(x => this.passwordOptions = x),\r\n\t\t\tthis.settingsClient.getPaymentSettings().then(x => this.paymentSettings = x),\r\n\t\t\tthis.settingsClient.getAzureB2CSettings().then(x => this.azureB2CSettings = x)\r\n\t\t]);\r\n\t\tthis.allowedWebRequests = this.aquaRateSettings.webRequestTypes.split(\",\");\r\n\t\tthis.allowedFileExtensions = this.browserSettings.allowedFileExtensions.split(\",\");\r\n\t\tthis.checkRefreshTimestamp();\r\n\t}\r\n\r\n\tisWebRequestAllowed(webRequestType: string): boolean {\r\n\t\treturn this.allowedWebRequests.indexOf(webRequestType) !== -1;\r\n\t}\r\n\r\n\tisFileAllowed(filename: string) {\r\n\t\treturn this.allowedFileExtensions.indexOf(\".\" + filename.split(\".\").pop()) !== -1;\r\n\t}\r\n\r\n\tasync checkRefreshTimestamp() {\r\n\t\ttry {\r\n\t\t\tlet timestamp = await this.settingsClient.getRefreshTimestamp();\r\n\t\t\tif (!this.localTimestamp) {\r\n\t\t\t\tthis.localTimestamp = timestamp;\r\n\t\t\t}\r\n\t\t\telse if (this.localTimestamp !== timestamp) {\r\n\t\t\t\tthis.localTimestamp = timestamp;\r\n\t\t\t\tdocument.location.reload();\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch {\r\n\r\n\t\t}\r\n\t\tsetTimeout(() => this.checkRefreshTimestamp(), this.browserSettings.refreshTimestampCheckTimeout * 1000);\r\n\t}\r\n\r\n\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ServerDateProvider implements at.IServerDateProvider {\r\n\tconstructor(private dateClient: app.DateClient) {\r\n\r\n\t}\r\n\r\n\tasync getServerDate(): Promise {\r\n\t\treturn au.moment((await this.dateClient.getServerDate()).date).toDate();\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { detect } from \"detect-browser\";\r\n\r\n@au.autoinject\r\n/**\r\n * This service provides a method to open an invoice Pdf in a new tab.\r\n * Other methods can be used from InvoiceClient\r\n */\r\nexport class InvoiceService {\r\n\tconstructor(protected authService: app.IAuthService, private invoiceClient: app.InvoiceClient, private alertService: at.AlertService,\r\n\t\tprivate accountClient: app.AccountClient, private i18n: au.I18N, private userClient: app.UserClient, private router: au.Router) { }\r\n\r\n\tasync openPdf(id: number) {\r\n\t\tlet browser = detect();\r\n\t\tlet pdf = await this.invoiceClient.pdfStream(id);\r\n\t\tif (browser.name === \"edge\" || browser.name === \"ie\") {\r\n\t\t\twindow.navigator.msSaveOrOpenBlob(pdf.data, pdf.fileName);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar pdfUrl = URL.createObjectURL(pdf.data);\r\n\t\t\tlet newWin = window.open(pdfUrl);\r\n\t\t\tif (!newWin || newWin.closed || typeof newWin.closed === \"undefined\") {\r\n\t\t\t\tawait this.alertService.error(\"To open invoices please enable popups on this page\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync checkEBilling(accountSummaries: app.AccountBalanceInfo[]) {\r\n\t\tlet res = await this.accountClient.checkEBilling();\r\n\t\tswitch (res) {\r\n\t\t\tcase app.CheckEbillingResponse.GuideSingleAccount:\r\n\t\t\t\tif (await this.alertService.confirm(this.i18n.tr(\"Customer.EBillingGuide\"))) {\r\n\t\t\t\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\t\t\t\tawait this.userClient.emailInvoices(accountSummaries[0].pkAccount);\r\n\t\t\t\t\t\tawait this.alertService.alert(this.i18n.tr(\"Customer.EBillingAlert\", this.authService.getTokenPayload()));\r\n\t\t\t\t\t}, e => this.alertService.error(this.i18n.tr(\"EmailInvoices.SubmitError\")));\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase app.CheckEbillingResponse.ConfirmSwitch:\r\n\t\t\t\tif (await this.alertService.confirm(this.i18n.tr(\"Customer.EBillingConfirmSwitch\"))) {\r\n\t\t\t\t\tthis.router.navigateToRoute(app.Route.emailInvoices);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase app.CheckEbillingResponse.Guide:\r\n\t\t\t\tif (await this.alertService.confirm(this.i18n.tr(\"Customer.EBillingGuide\"))) {\r\n\t\t\t\t\tthis.router.navigateToRoute(app.Route.emailInvoices);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase app.CheckEbillingResponse.None:\r\n\t\t\tdefault:\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import * as at from \"aurelia-toolkit\";\r\n\r\nexport class DataStorageService {\r\n\tdata: {\r\n\t\tusersFilterLines?: at.IFilterLine[],\r\n\t\tpaymentsFilterLines?: at.IFilterLine[],\r\n\t\taccountPaymentsFilterLines?: at.IFilterLine[],\r\n\t\tinvoicesFilterLines?: at.IFilterLine[],\r\n\t\tinfoStatementsFilterLines?: at.IFilterLine[],\r\n\t\ttenancyFilterLines?: at.IFilterLine[],\r\n\t\torganisationsFilterLines?: at.IFilterLine[],\r\n\t} = {};\r\n}","import * as au from \"aurelia\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport * as app from \"app\";\r\nimport { saveAs } from \"file-saver\";\r\n\r\n@au.autoinject\r\nexport class PaymentService {\r\n\tconstructor(private alertService: at.AlertService, private accountClient: app.AccountClient, private i18n: au.I18N) { }\r\n\r\n\tcanMakeAnotherPayment(p: app.Payment): boolean {\r\n\t\tlet failedPaymentStatuses: app.PaymentStatus[] = [app.PaymentStatus.Failed, app.PaymentStatus.NotSent, app.PaymentStatus.RolledBack];\r\n\t\treturn !p || failedPaymentStatuses.indexOf(p.status) >= 0;\r\n\t}\r\n\r\n\tgetStatusSummary(payment: app.Payment): IPaymentStatusSummary {\r\n\t\tswitch (payment.status) {\r\n\t\t\tcase app.PaymentStatus.Approved: return { icon: \"done\", colour: \"green\", description: this.i18n.tr(\"AccountPayment.PaymentApproved\") };\r\n\t\t\tcase app.PaymentStatus.ConditionallyApproved: return { icon: \"done\", colour: \"orange\", description: this.i18n.tr(\"AccountPayment.PaymentConditionalyApproved\") };\r\n\t\t\tcase app.PaymentStatus.NotSent:\r\n\t\t\tcase app.PaymentStatus.Failed: return { icon: \"error\", colour: \"red\", description: this.i18n.tr(\"AccountPayment.PaymentFailed\") };\r\n\t\t\tcase app.PaymentStatus.Indeterminate: return { icon: \"watch_later\", colour: \"blue\", description: this.i18n.tr(\"AccountPayment.PaymentIndeterminate\") };\r\n\t\t\tcase app.PaymentStatus.RolledBack: return { icon: \"error\", colour: \"red\", description: this.i18n.tr(\"AccountPayment.PaymentRolledBack\") };\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tsavePayments(payments: app.AccountPayment[]) {\r\n\t\tlet s = `\"Date\",\"Amount\",\"Source\",\"Account Number\",\"Address\"`;\r\n\t\tpayments.forEach(x => s += `\\n\"${au.moment(x.date).format(\"DD/MM/YYYY\")} \",\"${x.amount} \",\"${x.paymentSource} \",\"${x.fullAccountNo} \",\"${x.fullAddress} \"`);\r\n\t\tlet csv = new Blob([s], { type: \"text/csv\" });\r\n\t\tsaveAs(csv, \"payments.csv\");\r\n\t}\r\n\r\n\tasync requestPaymentExtension(balanceInfo: app.AccountBalanceInfo): Promise {\r\n\t\tif (!await this.alertService.confirm(`Are you sure you want to request a payment extension to pay in full by ${balanceInfo.paymentExtensionDueDate.toLocaleDateString(\"en-AU\")}?`, \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.accountClient.requestPaymentExtension(new app.PaymentExtensionRequest({\r\n\t\t\t\tfkAccount: balanceInfo.pkAccount,\r\n\t\t\t\tamount: balanceInfo.amount,\r\n\t\t\t\tdateNextDue: balanceInfo.paymentExtensionDueDate.asUtc()\r\n\t\t\t}));\r\n\t\t\tbalanceInfo.paymentExtensionDueDate = null;\r\n\t\t\tbalanceInfo.hasPendingPaymentExtensionRequest = true;\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"PaymentExtension.SubmitSuccess\"));\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"PaymentExtension.SubmitError\")));\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class AnalyticsStep implements au.PipelineStep {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, private dateService: at.DateService, private authService: app.IAuthService) {\r\n\t\tthis.logger = au.getLogger(\"AnalyticsStep\");\r\n\t\tthis.logger.debug(\"Created\");\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\r\n\trun(navigationInstruction: au.NavigationInstruction, next: au.Next) {\r\n\t\tthis.internalRun(navigationInstruction, next);\r\n\t\treturn next();\r\n\t}\r\n\r\n\tasync internalRun(navigationInstruction: au.NavigationInstruction, next: au.Next) {\r\n\t\tif (!await this.authService.isAuthenticatedAsync() || !navigationInstruction.config.name) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet origin = window.location.pathname + window.location.hash;\r\n\t\tlet path = origin.replace(\"/#/\", \"/\").replace(\"#\", \"\");\r\n\t\tthis.logger.debug(`Tracking for ${path}`);\r\n\t\ttry {\r\n\t\t\tawait this.analyticsClient.track(new app.AnalyticsEvent({\r\n\t\t\t\tid: 0,\r\n\t\t\t\ttype: \"Page\",\r\n\t\t\t\tname: navigationInstruction.config.name,\r\n\t\t\t\tdata: Object.getOwnPropertyNames(navigationInstruction.params).length ? JSON.stringify(navigationInstruction.params) : null,\r\n\t\t\t\tduration: \"00:00\",\r\n\t\t\t\tsuccess: true,\r\n\t\t\t\tdate: this.dateService.now()\r\n\t\t\t}));\r\n\t\t}\r\n\t\tcatch {\r\n\r\n\t\t}\r\n\t}\r\n}\r\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class RoleCheckStep implements au.PipelineStep {\r\n\tconstructor(private authService: app.IAuthService, private settingsService: app.SettingsService) { }\r\n\r\n\tasync run(navigationInstruction: au.NavigationInstruction, next: au.Next): Promise {\r\n\t\tlet token = this.authService.getTokenPayload();\r\n\t\tif (navigationInstruction.getAllInstructions().some(i => !isRouteAllowed(i.config, token, this.settingsService))) {\r\n\t\t\treturn next.cancel(new au.RedirectToRoute(token ? app.Route.forbidden : app.Route.expired));\r\n\t\t}\r\n\t\treturn next();\r\n\t}\r\n}\r\n\r\nexport function isRouteAllowed(config: at.IAppRouteConfig, token: at.ITokenPayload, settingsService: app.SettingsService): boolean {\r\n\tif (config.webRequestType && !settingsService.isWebRequestAllowed(config.webRequestType)) {\r\n\t\treturn false;\r\n\t}\r\n\tif (token) {\r\n\t\tswitch (config.auth) {\r\n\t\t\tcase undefined:\r\n\t\t\tcase at.AuthStatus.All:\r\n\t\t\t\treturn true;\r\n\t\t\tcase at.AuthStatus.Authenticated: {\r\n\t\t\t\tif (config.permission !== undefined) {\r\n\t\t\t\t\tlet permission = app.PermissionCode[config.permission];\r\n\t\t\t\t\treturn token.permission instanceof String ? token.permission === permission : token.permission.includes(permission);\r\n\t\t\t\t}\r\n\t\t\t\telse if (config.role !== undefined) {\r\n\t\t\t\t\tlet tokenRoles = typeof (token.role) === \"string\" ? [token.role] : token.role;\r\n\t\t\t\t\treturn !!tokenRoles.find(x => config.role.includes(x));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdefault: return false;\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\treturn config.auth === undefined || config.auth === at.AuthStatus.All || config.auth === at.AuthStatus.NonAuthenticated;\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\nexport class PostCompleteStep {\r\n\trun(instruction: au.NavigationInstruction, next: au.Next) {\r\n\t\tif (instruction.config.settings && !instruction.config.settings.noScrollToTop) {\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t}\r\n\r\n\t\treturn next();\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport * as jwtDecode from \"jwt-decode\";\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-analytics-js';\r\nimport { PublicClientApplication, LogLevel, AuthenticationResult, AccountInfo, AuthError } from '@azure/msal-browser';\r\n\r\n@au.autoinject\r\nexport class MsalService implements app.IAuthService {\r\n\tconstructor(private settingsService: app.SettingsService, private router: au.Router, private taskQueue: au.TaskQueue, private http: au.HttpClient,\r\n\t\tprivate dateService: at.DateService, private eventAggregator: au.EventAggregator, private appInsights: ApplicationInsights) {\r\n\t\tthis.logger = au.getLogger(\"MsalService\");\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\tapp: PublicClientApplication;\r\n\r\n\tasync init() {\r\n\t\t// fetch the date so that the diff is calculated before a token is requested\r\n\t\tawait this.dateService.getServerDate();\r\n\t\tthis.http.configure(c => {\r\n\t\t\tc.withInterceptor({\r\n\t\t\t\trequest: async r => {\r\n\t\t\t\t\tconst token = await this.getAccessToken();\r\n\t\t\t\t\tif (token) {\r\n\t\t\t\t\t\tr.headers.set(\"Authorization\", `Bearer ${token}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn r;\r\n\t\t\t\t},\r\n\t\t\t\tresponseError: (e, r) => {\r\n\t\t\t\t\tif (e instanceof at.UnauthorizedException) {\r\n\t\t\t\t\t\tthis.taskQueue.queueTask(() => this.router.navigateToRoute(app.Route.expired));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthrow e;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.app = new PublicClientApplication({\r\n\t\t\tauth: {\r\n\t\t\t\tclientId: this.settingsService.azureB2CSettings.clientId,\r\n\t\t\t\tauthority: this.settingsService.azureB2CSettings.signInAuthority,\r\n\t\t\t\tknownAuthorities: [this.settingsService.azureB2CSettings.knownAuthority],\r\n\t\t\t\tredirectUri: `${location.origin}${location.pathname}${location.pathname.endsWith('/') ? '' : '/'}`,\r\n\t\t\t\tnavigateToLoginRequestUrl: false,\r\n\t\t\t\tpostLogoutRedirectUri: this.settingsService.azureB2CSettings.postLogoutRedirectUri\r\n\t\t\t},\r\n\t\t\tcache: {\r\n\t\t\t\tstoreAuthStateInCookie: true,\r\n\t\t\t\tcacheLocation: \"localStorage\",\r\n\r\n\t\t\t},\r\n\t\t\tsystem: {\r\n\t\t\t\tloadFrameTimeout: this.settingsService.azureB2CSettings.loadFrameTimeout,\r\n\t\t\t\tloggerOptions: { loggerCallback: (level: LogLevel, message: string) => this.logger.debug(message, level) }\r\n\t\t\t}\r\n\t\t});\r\n\t\ttry {\r\n\t\t\t// this will process the hash state in the URL if there is any\r\n\t\t\tawait this.app.handleRedirectPromise();\r\n\t\t} catch (e) {\r\n\t\t\tconst error = e as AuthError;\r\n\t\t\tif (error.errorCode === 'access_denied' && error.errorMessage.startsWith('AADB2C90118:')) {\r\n\t\t\t\t// user requested to change the password\r\n\t\t\t\t// successful password change will redirect to the application root with the id token of the password reset authority\r\n\t\t\t\tthis.app.loginRedirect({\r\n\t\t\t\t\tscopes: [this.settingsService.azureB2CSettings.apiScope],\r\n\t\t\t\t\tauthority: this.settingsService.azureB2CSettings.passwordResetAuthority\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// at this point the root view has not been attached and routes are not configured\r\n\t\t\t\t// plus app insights are not initialised yet\r\n\t\t\t\t// so we have to wait until this happens\r\n\t\t\t\tthis.rootAttachedSubscription = this.eventAggregator.subscribe('root-attached', () => this.taskQueue.queueTask(() => {\r\n\t\t\t\t\tthis.appInsights.trackEvent({ name: 'MsalService:PublicClientApplication:Error', properties: { errorCode: error.errorCode, errorMessage: error.errorMessage } });\r\n\t\t\t\t\tthis.router.navigateToRoute(app.Route.loginB2CError, error);\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst account = this.getAccount();\r\n\t\tif (account) {\r\n\t\t\ttry {\r\n\t\t\t\tawait this.getAccessToken(true);\r\n\t\t\t} catch {\r\n\t\t\t\tthis.logout();\r\n\t\t\t}\r\n\t\t\tconst tokenPayload = this.getTokenPayload();\r\n\t\t\t// when password gets reset a user remains logged in under the wrong 'password reset' authority\r\n\t\t\t// logging out is critical to smooth user experience\r\n\t\t\tif (this.settingsService.azureB2CSettings.passwordResetAuthority.toLowerCase().endsWith(tokenPayload['acr'].toLowerCase())) {\r\n\t\t\t\tthis.logger.info('User password has been reset');\r\n\t\t\t\tthis.logout();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trootAttachedSubscription: au.Subscription;\r\n\r\n\tasync loginPopup(): Promise {\r\n\t\treturn this.app.loginPopup({ scopes: [this.settingsService.azureB2CSettings.apiScope] });\r\n\t}\r\n\r\n\tregisterRedirect(token: string): void {\r\n\t\tthis.app.loginRedirect({\r\n\t\t\tscopes: [this.settingsService.azureB2CSettings.apiScope],\r\n\t\t\tredirectStartPage: `${location.origin}${location.pathname}${location.pathname.endsWith('/') ? '' : '/'}`,\r\n\t\t\textraQueryParameters: {\r\n\t\t\t\tclient_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',\r\n\t\t\t\tclient_assertion: token\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tasync loginRedirect() {\r\n\t\tawait this.app.loginRedirect({ scopes: [this.settingsService.azureB2CSettings.apiScope] });\r\n\t}\r\n\r\n\tgetAccount(): AccountInfo {\r\n\t\tconst accounts = this.app.getAllAccounts();\r\n\t\treturn accounts.length ? accounts[0] : undefined;\r\n\t}\r\n\r\n\tasync getTokenSilent(): Promise {\r\n\t\ttry {\r\n\t\t\treturn await this.app.acquireTokenSilent({ scopes: [this.settingsService.azureB2CSettings.apiScope], account: this.getAccount() });\r\n\t\t} catch (err) {\r\n\t\t\tconst error = err as AuthError;\r\n\t\t\t// in case the session does not exist anymore or refresh token expired fallback to redirect to get a token\r\n\t\t\tif (error.errorMessage.includes('AADB2C90077') || error.errorCode === 'silent_sso_error') {\r\n\t\t\t\tawait this.app.acquireTokenRedirect({\r\n\t\t\t\t\tauthority: this.settingsService.azureB2CSettings.signInAuthority,\r\n\t\t\t\t\tscopes: [this.settingsService.azureB2CSettings.apiScope]\r\n\t\t\t\t});\r\n\t\t\t\t// this code will never be reached because of the redirect\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthrow err;\r\n\t\t}\r\n\t}\r\n\r\n\tasync logout(): Promise {\r\n\t\tthis.app.logout();\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n\tisEnabled(): boolean {\r\n\t\treturn !!this.settingsService.azureB2CSettings.clientId;\r\n\t}\r\n\r\n\tasync isAuthenticatedAsync(): Promise {\r\n\t\t// the cached token might be expired but until the next request consider a user authenticated\r\n\t\treturn Promise.resolve(!!this.cachedAccessToken);\r\n\t}\r\n\r\n\tcachedAccessToken: string;\r\n\tcachedIdToken: string;\r\n\tcachedAccessTokenExpiry: au.moment.Moment;\r\n\tasync getAccessToken(ignoreEmptyCache: boolean = false): Promise {\r\n\t\t// empty cache means a user never logged in, so we shouldn't try to get a token unless ignore flag is on\r\n\t\tif (!this.cachedAccessToken && !ignoreEmptyCache) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (!this.cachedAccessToken || this.cachedAccessTokenExpiry.isBefore(this.dateService.now())) {\r\n\t\t\ttry {\r\n\t\t\t\tconst authResult = await this.getTokenSilent();\r\n\t\t\t\tthis.cachedAccessToken = authResult.accessToken;\r\n\t\t\t\tthis.cachedIdToken = authResult.idToken;\r\n\t\t\t\tconst decoded = jwtDecode(this.cachedAccessToken);\r\n\t\t\t\tthis.cachedAccessTokenExpiry = au.moment.unix(decoded.exp);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.logger.info('Failed to get an access token', e);\r\n\t\t\t\tthis.cachedAccessToken = null;\r\n\t\t\t}\r\n\t\t\tthis.eventAggregator.publish('authentication-change');\r\n\t\t}\r\n\t\treturn this.cachedAccessToken;\r\n\t}\r\n\r\n\tgetTokenPayload(): at.ITokenPayload {\r\n\t\tif (this.cachedAccessToken) {\r\n\t\t\treturn jwtDecode(this.cachedIdToken);\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tasync login(): Promise {\r\n\t\tthis.loginRedirect();\r\n\t\treturn Promise.resolve();\r\n\t}\r\n\r\n}\r\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { AlertModal } from \"aurelia-toolkit/src/elements/alert-modal/alert-modal\";\r\n\r\n@au.autoinject\r\nexport class TwAuthService implements app.IAuthService {\r\n\tconstructor(public authService: at.AuthService, private router: au.Router, private fetchConfig: au.FetchConfig, private http: au.HttpClient,\r\n\t\tprivate eventAggregator: au.EventAggregator, private dateService: at.DateService, private templatingEngine: au.TemplatingEngine, private settingsService: app.SettingsService) {\r\n\t\tthis.logger = au.getLogger(\"TwAuthService\");\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\trefreshToken: string;\r\n\r\n\tisAuthenticatedAsync(): Promise {\r\n\t\ttry {\r\n\t\t\treturn this.authService.isAuthenticatedAsync();\r\n\t\t}\r\n\t\tcatch {\r\n\t\t\treturn Promise.resolve(false);\r\n\t\t}\r\n\t}\r\n\r\n\tgetAccessToken(): Promise {\r\n\t\treturn Promise.resolve(this.authService.getAccessToken());\r\n\t}\r\n\r\n\tgetTokenPayload(): at.ITokenPayload {\r\n\t\treturn this.authService.getTokenPayload();\r\n\t}\r\n\r\n\tasync logout(noRedirect: boolean): Promise {\r\n\t\tawait this.authService.logout(\"\");\r\n\t\tif (!noRedirect) {\r\n\t\t\tthis.router.navigateToRoute(app.Route.login);\r\n\t\t}\r\n\t}\r\n\r\n\tasync login(credentials?: any): Promise {\r\n\t\tawait this.authService.login(credentials, null);\r\n\t}\r\n\r\n\tasync init() {\r\n\t\t// !!! The order of calls here is critical due to possible client-server time differences\r\n\t\t// !!! Token expiration must be adjusted before any other calls are made\r\n\r\n\t\t// this will force this.dateService.differenceWithServer calculation which is needed for correct token expiry date\r\n\t\tawait this.dateService.getServerDate();\r\n\r\n\t\t// supply a custom function to mitigate possible client-server time difference by calculating a \"local\" token expiry date\r\n\t\tthis.authService.config.getExpirationDateFromResponse = (r: app.GenerateTokenResponse) => {\r\n\t\t\tif (!r) {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\treturn au.moment(r.tokenExpiryDate).add(this.dateService.differenceWithServer, \"milliseconds\").unix();\r\n\t\t};\r\n\r\n\t\tthis.fetchConfig.configure(this.http);\r\n\t\t// this will force token update if there is a refresh token\r\n\t\tawait this.isAuthenticatedAsync();\r\n\t\tthis.http.configure(c => {\r\n\t\t\tc.withInterceptor({ request: r => this.addRememberMeIndicator(r), response: r => this.useNewToken(r) });\r\n\t\t});\r\n\r\n\t\tif (this.settingsService.browserSettings.sessionExpiryWarningThreshold) {\r\n\t\t\tthis.eventAggregator.subscribe(\"authentication-change\", () => this.closeWarningOnLogout());\r\n\t\t\tau.PLATFORM.global.setTimeout(() => this.monitorExpiry(), 3000);\r\n\t\t}\r\n\t}\r\n\r\n\tasync useNewToken(r: Response): Promise {\r\n\t\tlet newToken = r.headers.get(\"new_token\");\r\n\t\tlet refreshToken = r.headers.get(\"refresh_token\");\r\n\t\tif (newToken || refreshToken) {\r\n\t\t\tthis.logger.debug(\"New tokens spotted\", newToken, refreshToken);\r\n\t\t\t// save new token keeping the existing refresh token if there is no new one\r\n\t\t\tthis.authService.setResponseObject({\r\n\t\t\t\ttoken: newToken,\r\n\t\t\t\trefreshToken: refreshToken || this.authService.getRefreshToken(),\r\n\t\t\t\ttokenExpiryDate: r.headers.get(\"token_expiry_date\")\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn r;\r\n\t}\r\n\r\n\taddRememberMeIndicator(r: Request): Request {\r\n\t\tif (this.isRefreshTokenSet()) {\r\n\t\t\tr.headers.set(\"remember-me\", \"true\");\r\n\t\t}\r\n\t\treturn r;\r\n\t}\r\n\r\n\tisRefreshTokenSet() {\r\n\t\tlet refreshToken = this.authService.getRefreshToken();\r\n\t\treturn refreshToken && refreshToken !== \"none\";\r\n\t}\r\n\r\n\talertModal: AlertModal;\r\n\tasync closeWarningOnLogout() {\r\n\t\tif (!await this.authService.isAuthenticatedAsync() && this.alertModal) {\r\n\t\t\tthis.alertModal.options.button2Click();\r\n\t\t}\r\n\t}\r\n\r\n\tpreviousExp: number;\r\n\tasync monitorExpiry() {\r\n\t\tif (await this.authService.isAuthenticatedAsync() && !this.isRefreshTokenSet()) {\r\n\t\t\tlet exp = await this.authService.getExp();\r\n\t\t\tlet warningDate = au.moment.unix(exp).subtract(this.settingsService.browserSettings.sessionExpiryWarningThreshold, \"seconds\");\r\n\t\t\tlet date = au.moment();\r\n\t\t\tthis.logger.debug(`date=${au.moment(date).format(\"hh:mm:ss\")}, expiryDate=${au.moment.unix(exp).format(\"hh:mm:ss\")}, warningDate=${warningDate.format(\"hh:mm:ss\")}`);\r\n\t\t\tif (date.isAfter(warningDate) && exp !== this.previousExp && this.router.currentInstruction.config.name !== app.Route.balanceCheck) {\r\n\t\t\t\t// do not warn for the same token\r\n\t\t\t\tthis.previousExp = exp;\r\n\t\t\t\tawait this.displayExpiryWarning();\r\n\t\t\t}\r\n\t\t}\r\n\t\tau.PLATFORM.global.setTimeout(() => this.monitorExpiry(), 3000);\r\n\t}\r\n\r\n\tprivate showModal(message: string, icon: string, iconColour: string, button1Text: string, button2Text: string): Promise {\r\n\t\tlet html = document.createElement(\"alert-modal\");\r\n\t\tlet view = this.templatingEngine.enhance(html);\r\n\t\tview.bind({});\r\n\t\tview.attached();\r\n\t\tdocument.querySelector(\"[aurelia-app]\").appendChild(html);\r\n\t\tthis.alertModal = html.au[\"alert-modal\"].viewModel;\r\n\t\treturn new Promise(resolve => this.alertModal.open({\r\n\t\t\ticon,\r\n\t\t\ticonColour,\r\n\t\t\tmessage,\r\n\t\t\tbutton1Text,\r\n\t\t\tbutton2Text,\r\n\t\t\tbutton1Click: () => resolve(true),\r\n\t\t\tbutton2Click: () => resolve(false)\r\n\t\t})).then(x => {\r\n\t\t\thtml.remove();\r\n\t\t\tview.unbind();\r\n\t\t\tview.detached();\r\n\t\t\tthis.alertModal = null;\r\n\t\t\treturn x;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tasync displayExpiryWarning() {\r\n\t\tif (await this.showModal(\"Your session is about to expire. Would you like to extend it?\", \"warning\", \"orange\", \"Yes\", \"No\")) {\r\n\t\t\tawait this.authService.getMe();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (await this.isAuthenticatedAsync()) {\r\n\t\t\t\tthis.logout(false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","export * from \"constants/route\";\r\nexport * from \"constants/roles\";\r\nexport * from \"constants/events\";\r\nexport * from \"constants/invoice-types\";\r\nexport * from \"constants/strings\";\r\nexport * from \"constants/account-status\";\r\n\r\nexport * from \"exceptions/identity-exception\";\r\nexport * from \"exceptions/locked-out-exception\";\r\nexport * from \"exceptions/email-taken-exception\";\r\nexport * from \"exceptions/inactive-user-exception\";\r\nexport * from \"exceptions/not-matching-birth-date-exception\";\r\nexport * from \"exceptions/not-found-exception\";\r\n\r\nexport * from \"services/api\";\r\n\r\nimport \"helpers/utc-date\";\r\nimport \"helpers/validation\";\r\n\r\nexport * from \"constants/payment-status\";\r\n\r\nexport * from \"interfaces/i-address-ex\";\r\nexport * from \"interfaces/i-addresses-ex\";\r\nexport * from \"interfaces/i-auth-service\";\r\n\r\nexport * from \"services/settings-service\";\r\nexport * from \"services/server-date-provider\";\r\nexport * from \"services/invoice-service\";\r\nexport * from \"services/data-storage-service\";\r\nexport * from \"services/payment-service\";\r\nexport * from \"services/analytics-step\";\r\nexport * from \"services/role-check-step\";\r\nexport * from \"services/post-complete-step\";\r\nexport * from \"services/msal-service\";\r\nexport * from \"services/tw-auth-service\";\r\n\r\nexport * from \"views/edit-base\";\r\nexport * from \"views/paginated-base\";\r\nexport * from \"views/admin-dashboard/widgets/base-widget\";\r\n","export * from \"aurelia-pal\";\r\nexport * from \"aurelia-framework\";\r\nexport * from \"aurelia-router\";\r\nexport * from \"aurelia-fetch-client\";\r\nexport * from \"aurelia-logging\";\r\nexport {\r\n\tAttributeManager, MdToastService, MaterializeFormValidationRenderer, MdInput, MdTabs, fireEvent, MdModal,\r\n\tMdCheckbox, ILookupOptionsFunctionParameter, MdColorsService, \r\n} from \"aurelia-materialize-bridge\";\r\nexport { EventAggregator, Subscription } from \"aurelia-event-aggregator\";\r\nexport { ValidationRules, ValidationController, ValidationControllerFactory, validateTrigger, RenderInstruction, FluentRules, FluentRuleCustomizer, Rule, validationMessages, ValidateResult, ValidationMessageProvider, Validator, ControllerValidateResult } from \"aurelia-validation\";\r\nexport * from \"aurelia-dependency-injection\";\r\nexport * from \"aurelia-templating\";\r\nexport { AuthService, FetchConfig, Authentication, BaseConfig } from \"aurelia-authentication\";\r\nimport * as numeral from \"numeral\";\r\nexport { numeral };\r\nimport * as moment from \"moment\";\r\nexport { moment };\r\nimport * as ato from \"aurelia-typed-observable-plugin\";\r\nexport { ato };\r\nexport { I18N, TCustomAttribute } from \"aurelia-i18n\";\r\nimport I18NextXhrBackend from \"i18next-xhr-backend\";\r\nexport { I18NextXhrBackend };\r\nimport c from \"aurelia-materialize-bridge/src/colors/material-colors.json\";\r\nconst colors = c;\r\nexport { colors };\r\n","import * as au from \"aurelia\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ToastHintCustomAttribute {\r\n\tconstructor(private element: Element, private alertService: at.AlertService) { }\r\n\r\n\tvalue: string;\r\n\tlabel: HTMLLabelElement;\r\n\r\n\tattached() {\r\n\t\tif (this.element.tagName !== \"MD-INPUT\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.label = this.element.querySelector(\".input-field>label\") as HTMLLabelElement;\r\n\t\tlet a = document.createElement(\"a\");\r\n\t\ta.classList.add(\"hint\");\r\n\t\tlet i = document.createElement(\"i\");\r\n\t\ti.classList.add(\"material-icons\");\r\n\t\ti.classList.add(\"tiny\");\r\n\t\ti.classList.add(\"cursor-pointer\");\r\n\t\ti.style.verticalAlign = \"middle\";\r\n\t\ti.innerText = \"help_outline\";\r\n\t\ti.addEventListener(\"mousedown\", () => this.alertService.confirmToast(this.value), true);\r\n\t\ta.appendChild(i);\r\n\t\tthis.label.appendChild(a);\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tif (!this.label) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet hint = this.label.querySelector(\"a.hint\");\r\n\t\tif (hint) {\r\n\t\t\tthis.label.removeChild(hint);\r\n\t\t}\r\n\t}\r\n}","import { detect } from \"detect-browser\";\r\n\r\nvar browser = detect();\r\nvar minVersion = 0;\r\nswitch (browser.name) {\r\n\tcase \"chrome\": minVersion = 61; break;\r\n\tcase \"edge\": minVersion = 16; break;\r\n\tcase \"firefox\": minVersion = 56; break;\r\n\tcase \"ie\": minVersion = 11; break;\r\n\tcase \"safari\": minVersion = 9; break;\r\n\tdefault: minVersion = 0;\r\n}\r\nif (minVersion > parseInt(browser.version.split(\".\")[0])) {\r\n\twindow.location.href = \"old_browser.html\";\r\n}\r\n\r\n","import \"isomorphic-fetch\";\r\nimport \"check-browser\";\r\nimport \"materialize-css\";\r\nimport \"aurelia-bootstrapper\";\r\nimport * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport \"./helpers/append-polyfill\";\r\nimport \"chartjs-plugin-datalabels\";\r\nimport \"chartjs-plugin-annotation\";\r\nimport \"aurelia-materialize-bridge/dist/native-modules/augmentation/aurelia-typed-observable\";\r\nimport { PLATFORM } from \"./aurelia\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\n\r\ndeclare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build\r\n\r\nexport async function configure(aurelia: au.Aurelia) {\r\n\tlet globalResources = [\r\n\t\t\"attributes/toast-hint\",\r\n\t\t\"converters/balance\",\r\n\t\t\"converters/invoice-type\",\r\n\t\t\"converters/balance-status-to-colour\",\r\n\t\t\"converters/account-balance-info\",\r\n\t\t\"converters/account-balance-info-to-class\",\r\n\t\t\"converters/account-balance-info-to-invoice-method\",\r\n\t\t\"converters/account-balance-info-to-due-text\",\r\n\t\t\"converters/role-to-menu-size\",\r\n\t\t\"converters/payment-status\",\r\n\t\t\"converters/debt-option\",\r\n\t\t\"converters/account-summaries-filter\",\r\n\t\t\"custom-elements/app-colours/app-colours\",\r\n\t\t\"custom-elements/edit-page-buttons/edit-page-buttons\",\r\n\t\t\"custom-elements/edit-address/edit-address\",\r\n\t\t\"custom-elements/select-account/select-account\",\r\n\t\t\"custom-elements/tenant/tenant\",\r\n\t\t\"custom-elements/last-tenancy-requests/last-tenancy-requests\",\r\n\t\t\"custom-elements/info-statement-porg/info-statement-porg\",\r\n\t\t\"custom-elements/info-statement-title/info-statement-title\",\r\n\t\t\"custom-elements/quick-stream/quick-stream\",\r\n\t\t\"custom-elements/bpoint/bpoint\",\r\n\t\t\"custom-elements/credit-card/credit-card\",\r\n\t\t\"custom-elements/payment/payment\",\r\n\t\t\"custom-elements/pay-arrangement/pay-arrangement\",\r\n\t\t\"custom-elements/payment-status/payment-status\",\r\n\t\t\"custom-elements/date-range/date-range\",\r\n\t\t\"custom-elements/dashboard-card/dashboard-card\",\r\n\t\t\"custom-elements/script-injector/script-injector\",\r\n\t\t\"views/admin-dashboard/widgets/registrations-widget\",\r\n\t\t\"views/admin-dashboard/widgets/running-registrations-widget\",\r\n\t\t\"views/admin-dashboard/widgets/web-requests-widget\",\r\n\t\t\"views/admin-dashboard/widgets/page-visits-widget\",\r\n\t\t\"views/admin-dashboard/widgets/payments-widget\",\r\n\t\t\"views/admin-dashboard/widgets/payments-count-widget\",\r\n\t];\r\n\r\n\tif (IS_DEV_BUILD) {\r\n\t\taurelia.use.developmentLogging();\r\n\t}\r\n\r\n\t// since at.AuthService inherits au.AuthService the following makes sure that only one instance exists in the container\r\n\t// the placement is critical because the service gets created during aurelia-authentication configuration\r\n\tlet atAuthService = aurelia.container.get(at.AuthService);\r\n\taurelia.container.registerInstance(au.AuthService, atAuthService);\r\n\r\n\taurelia\r\n\t\t.use\r\n\t\t.standardConfiguration()\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-inputmask\"), { showMaskOnHover: false })\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-validation\"))\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-materialize-bridge\"), bridge => {\r\n\t\t\tbridge.useAll();\r\n\t\t})\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-authentication\"), c => c.configure({\r\n\t\t\tbaseUrl: null, // important for correct relative URLs below\r\n\t\t\tloginUrl: \"/auth/generateToken\",\r\n\t\t\tstorageKey: `${location.origin}${location.pathname}${location.pathname.endsWith(\"/\") ? \"\" : \"/\"}_token_v3`.toLowerCase(),\r\n\t\t\taccessTokenProp: \"token\",\r\n\t\t\trefreshTokenUrl: \"/auth/refreshToken\",\r\n\t\t\trefreshTokenProp: \"refreshToken\",\r\n\t\t\tuseRefreshToken: true,\r\n\t\t\tautoUpdateToken: true,\r\n\t\t\tprofileUrl: \"/user/getSelf\",\r\n\t\t\texpiredRedirect: \"#/expired\",\r\n\t\t\tlogoutOnInvalidToken: true,\r\n\t\t\tstorageChangedReload: true\r\n\t\t} as au.BaseConfig))\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-chart\"))\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-i18n\"), (instance: au.I18N) => {\r\n\t\t\t(instance.i18next as any).use(au.I18NextXhrBackend);\r\n\t\t\treturn instance.setup({\r\n\t\t\t\tbackend: { loadPath: \"./locale/{{lng}}\" },\r\n\t\t\t\tlng: \"en\",\r\n\t\t\t\tfallbackLng: false,\r\n\t\t\t\tdebug: false,\r\n\t\t\t\tinterpolation: {\r\n\t\t\t\t\tformat: function (value: any, format: string, lng: string) {\r\n\t\t\t\t\t\tif (format === \"currency\") {\r\n\t\t\t\t\t\t\treturn au.numeral(value).format(\"$0,0.00\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (value instanceof Date) {\r\n\t\t\t\t\t\t\tlet parts = format.split(\":\");\r\n\t\t\t\t\t\t\treturn au.moment(value).add(parts.length > 1 ? parseInt(parts[1]) : 0, \"days\").format(parts[0]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})\r\n\t\t.plugin(PLATFORM.moduleName(\"aurelia-toolkit\"))\r\n\t\t.globalResources(globalResources);\r\n\r\n\tau.ato.usePropertyTypeForObservable(true);\r\n\r\n\taurelia.container.autoRegister(at.IServerDateProvider, app.ServerDateProvider);\r\n\taurelia.container.registerInstance(ApplicationInsights, new ApplicationInsights({ config: { instrumentationKey: undefined } }));\r\n\tawait aurelia.start();\r\n\tau.ValidationMessageProvider.prototype.getDisplayName = function () { return \"\" };\r\n\tfor (let key in au.validationMessages) {\r\n\t\tlet message = au.validationMessages[key];\r\n\t\tif (message.endsWith(\".\")) {\r\n\t\t\tau.validationMessages[key] = message.substr(0, message.length - 1);\r\n\t\t}\r\n\t}\r\n\tau.moment.locale(\"en-AU\");\r\n\t// TODO not sure if this is needed\r\n\t// await new Promise(resolve => $(document).ready(() => resolve()));\r\n\taurelia.setRoot(\"views/root/root\");\r\n}\r\n","import * as moment from \"moment\";\r\nimport * as app from \"app\";\r\nimport * as au from \"aurelia\";\r\n\r\n@au.autoinject\r\nexport class AccountBalanceInfoValueConverter {\r\n\tconstructor(private i18n: au.I18N) { }\r\n\r\n\ttoView(value: app.AccountBalanceInfo): string {\r\n\t\tswitch (value.balanceStatus) {\r\n\t\t\tcase app.BalanceStatus.Payed:\r\n\t\t\t\treturn this.i18n.tr(\"Account.ThankYouForPromptPayment\");\r\n\t\t\tcase app.BalanceStatus.SmallOverdue:\r\n\t\t\t\treturn this.i18n.tr(\"Account.OverdueInvoiceDescriptionSmallAmount\");\r\n\t\t\tcase app.BalanceStatus.Overdue:\r\n\t\t\t\treturn this.i18n.tr(\"Account.OverdueInvoiceDescription\");\r\n\t\t\tcase app.BalanceStatus.PaymentArrangement:\r\n\t\t\t\treturn this.i18n.tr(\"Account.PaymentArrangementInPlace\");\r\n\t\t\tcase app.BalanceStatus.DirectDebit:\r\n\t\t\t\treturn this.i18n.tr(\"Account.WillBePayedViaDirectDebit\", { replace: { date: value.lastInvoice.dateDue } });\r\n\t\t\tcase app.BalanceStatus.None:\r\n\t\t\t\treturn \"\";\r\n\t\t\tcase app.BalanceStatus.ToBePayed:\r\n\t\t\tdefault:\r\n\t\t\t\treturn this.i18n.tr(\"Account.PleasePayBy\", { replace: { date: value.lastInvoice.dateDue } });\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as moment from \"moment\";\r\nimport * as app from \"app\";\r\n\r\nexport class AccountBalanceInfoToClassValueConverter {\r\n\ttoView(value: app.AccountBalanceInfo | app.AccountInfo): string {\r\n\t\tswitch (value.fkAccountStatus) {\r\n\t\t\tcase app.AccountStatus.Active:\r\n\t\t\t\treturn value.isClosed ? \"closed\" : \"active\"; // status might be active but account is closed because an owner sold a property\r\n\t\t\tcase app.AccountStatus.Closed:\r\n\t\t\t\treturn \"closed\";\r\n\t\t\tcase app.AccountStatus.New:\r\n\t\t\t\treturn \"new\";\r\n\t\t\tcase app.AccountStatus.WaitingForClosure:\r\n\t\t\t\treturn \"waiting-closure\";\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\nimport * as au from \"aurelia\";\r\n\r\n@au.autoinject\r\nexport class AccountBalanceInfoToDueTextValueConverter {\r\n\tconstructor(private i18n: au.I18N) { }\r\n\r\n\ttoView(value: app.AccountBalanceInfo, date: Date): string {\r\n\t\tif (value.lastInvoice.directDebitFlag === \"Y\") {\r\n\t\t\tif (au.moment(date).isAfter(value.lastInvoice.dateDue)) {\r\n\t\t\t\treturn `${au.numeral(value.lastInvoice.amtTotal).format(\"$0,0.00\")} via direct debit on ${value.lastInvoice.dateDue.toLocaleDateString(\"en-AU\")}`;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn `${au.numeral(value.lastInvoice.amtTotal).format(\"$0,0.00\")} will be direct debited from your bank account on ${value.lastInvoice.dateDue.toLocaleDateString(\"en-AU\")}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (value.payArrangement && value.payArrangement.fkPayFrequency !== \"I\" /* In Full */) {\r\n\t\t\treturn `${au.numeral(value.lastInvoice.amtTotal).format(\"$0,0.00\")} issued on ${value.lastInvoice.dateIssued.toLocaleDateString(\"en-AU\")}`;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (value.lastInvoice.amtTotal > 0) {\r\n\t\t\t\treturn `${au.numeral(value.lastInvoice.amtTotal).format(\"$0,0.00\")} due on ${value.lastInvoice.dateDue.toLocaleDateString(\"en-AU\")}`;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.i18n.tr(\"Account.InvoiceInCreditText\", { replace: { amount: -value.lastInvoice.amtTotal, date: value.lastInvoice.dateIssued } });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\n\r\nexport class AccountBalanceInfoToInvoiceMethodValueConverter {\r\n\ttoView(value: app.AccountBalanceInfo | app.AccountInfo): string {\r\n\t\tswitch (value.fkInvoicePrintType) {\r\n\t\t\tcase \"EMAIL\":\r\n\t\t\t\treturn \"Email\";\r\n\t\t\tcase \"PRINT\":\r\n\t\t\tcase \"NOPRINT\":\r\n\t\t\tdefault:\r\n\t\t\t\treturn `Post - Switch to email bills now`;\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\n\r\nexport class AccountSummariesFilterValueConverter {\r\n\ttoView(value: app.AccountBalanceInfo[], filter: string): app.AccountBalanceInfo[] {\r\n\t\tfilter = filter ? filter.toLowerCase() : null;\r\n\t\treturn value.filter(x => !filter || x.fullAccountNo.indexOf(filter) !== -1 || x.fullAddress.toLowerCase().indexOf(filter) !== -1);\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}\r\n","import * as numeral from \"numeral\";\r\n\r\nexport class BalanceValueConverter {\r\n\ttoView(value: number): string {\r\n\t\tlet credit = value < 0 ? \" in credit.\" : \"\";\r\n\t\treturn numeral(Math.abs(value)).format(\"$0,0.00\") + credit;\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\n\r\nexport class BalanceStatusToColourValueConverter {\r\n\ttoView(value: app.BalanceStatus): string {\r\n\t\tswitch (value) {\r\n\t\t\tcase app.BalanceStatus.Payed:\r\n\t\t\t\treturn \"secondary-text\";\r\n\t\t\tcase app.BalanceStatus.SmallOverdue:\r\n\t\t\tcase app.BalanceStatus.Overdue:\r\n\t\t\t\treturn \"error-text\";\r\n\t\t\tcase app.BalanceStatus.DirectDebit:\r\n\t\t\t\treturn \"secondary-text\";\r\n\t\t\tcase app.BalanceStatus.PaymentArrangement:\r\n\t\t\t\treturn \"secondary-text\";\r\n\t\t\tcase app.BalanceStatus.ToBePayed:\r\n\t\t\tcase app.BalanceStatus.None:\r\n\t\t\tdefault:\r\n\t\t\t\treturn \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class DebtOptionValueConverter {\r\n\tconstructor(private i18n: au.I18N) { }\r\n\r\n\ttoView(value: app.WebRequestDebtOption): string {\r\n\t\tif (!value) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tswitch (value.code) {\r\n\t\t\tcase \"Y\":\r\n\t\t\t\treturn this.i18n.tr(\"DirectDebit.OutstandingOptionYes\");\r\n\t\t\tcase \"N\":\r\n\t\t\t\treturn this.i18n.tr(\"DirectDebit.OutstandingOptionNo\");\r\n\t\t\tcase \"O\":\r\n\t\t\t\treturn this.i18n.tr(\"DirectDebit.OutstandingOptionOverdue\");\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","export class invoiceTypeValueConverter {\r\n\ttoView(value: string, colourInvoices: boolean): string {\r\n\t\tif (!colourInvoices) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tswitch (value) {\r\n\t\t\tcase \"F\": return \"red-text\";\r\n\t\t\tcase \"R\": return \"green-text\";\r\n\t\t\tcase \"I\":\r\n\t\t\tdefault: return \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\n\r\nexport class PaymentStatusValueConverter {\r\n\ttoView(value: app.PaymentStatus): string {\r\n\t\treturn app.PaymentStatuses.find(x => x.code === value).description;\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as app from \"app\";\r\n\r\nexport class roleToMenuSizeValueConverter {\r\n\ttoView(value: string): string {\r\n\t\tswitch (value) {\r\n\t\t\tcase undefined: return \"420\";\r\n\t\t\tcase app.Roles.admin: return \"830\";\r\n\t\t\tcase app.Roles.residentialCustomer: return \"1090\";\r\n\t\t\tcase app.Roles.businessCustomer: return \"800\";\r\n\t\t\tcase app.Roles.agent: return \"500\";\r\n\t\t\tcase app.Roles.conveyancer: return \"500\";\r\n\t\t\tcase app.Roles.agencyManager: return \"630\";\r\n\t\t\tdefault: return \"1200\";\r\n\t\t}\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class AppColours {\r\n\tconstructor(private settingsService: app.SettingsService) { }\r\n\r\n\tsettings = this.settingsService.browserSettings;\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Bpoint {\r\n\tconstructor(private element: Element, private settingsService: app.SettingsService, private bpointClient: app.BpointClient, validationControllerFactory: at.ValidationControllerFactory,\r\n\t\tprivate taskQueue: au.TaskQueue) {\r\n\t\tthis.logger = au.getLogger(\"Bpoint\");\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.cardholderName).required().maxLength(50)\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\tvalidationController: au.ValidationController;\r\n\tframeUrl: string;\r\n\tloading: boolean;\r\n\terror: boolean;\r\n\tsettings = this.settingsService.paymentSettings;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tauthKey: string;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tcardholderName: string;\r\n\r\n\tasync attached() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis.authKey = await this.bpointClient.getAuthKey();\r\n\t\t\tthis.frameUrl = `${this.settings.bpoint.url}/txns/iframe/${this.authKey}`;\r\n\t\t\tthis.cardholderName = null;\r\n\t\t\tthis.taskQueue.queueTask(() => this.validationController.reset())\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.error = true;\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"bpoint iframe{height:130px!important;width:240px!important}bpoint md-input{width:240px;display:block}bpoint md-input label{transform:translateY(-14px) scale(.8)!important;transform-origin:0 0!important}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { Bpoint } from \"../bpoint/bpoint\";\r\nimport { QuickStream } from \"../quick-stream/quick-stream\";\r\n\r\n@au.autoinject\r\nexport class CreditCard {\r\n\tconstructor(private element: Element, private settingsService: app.SettingsService, private paymentClient: app.PaymentClient,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory) {\r\n\t\tthis.logger = au.getLogger(\"CreditCard\");\r\n\t\tthis.logger.debug(\"settings\", this.settings);\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.amount).required().when(x => x.showAmount).then().satisfies(x => x > 0).when(x => x.showAmount).withMessage(\"must be greater than zero\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\tvalidationController: au.ValidationController;\r\n\tsettings = this.settingsService.paymentSettings;\r\n\tPaymentProvider = app.PaymentProvider;\r\n\tsurcharges: app.Surcharge[];\r\n\r\n\tbpointAuthKey: string;\r\n\tbpointCardholderName: string;\r\n\r\n\tbpoint: Bpoint;\r\n\tquickStream: QuickStream;\r\n\r\n\t@au.bindable\r\n\tshowAmount: boolean;\r\n\r\n\t@au.bindable\r\n\tamount: number;\r\n\tsuppressAmountChanged: boolean;\r\n\tamountChanged() {\r\n\t\tif (this.suppressAmountChanged) {\r\n\t\t\tthis.suppressAmountChanged = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.suppressAmountTextChanged = true;\r\n\t\tthis.amountText = this.amount ? this.amount.toString() : null;\r\n\t}\r\n\r\n\t@au.observable\r\n\tamountText: string;\r\n\tsuppressAmountTextChanged: boolean;\r\n\tamountTextChanged() {\r\n\t\tif (this.suppressAmountTextChanged) {\r\n\t\t\tthis.suppressAmountTextChanged = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.suppressAmountChanged = true;\r\n\t\tthis.amount = au.numeral(this.amountText).value();\r\n\t}\r\n\r\n\tasync attached() {\r\n\t\ttry {\r\n\t\t\tthis.surcharges = await this.paymentClient.getSurcharges();\r\n\t\t}\r\n\t\tcatch {\r\n\t\t\tthis.surcharges = [];\r\n\t\t}\r\n\t}\r\n\r\n\tasync refresh() {\r\n\t\tswitch (this.settings.provider) {\r\n\t\t\tcase app.PaymentProvider.Bpoint:\r\n\t\t\t\tawait this.bpoint.attached();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tasync getPaymentTokenInfo(): Promise {\r\n\t\tswitch (this.settings.provider) {\r\n\t\t\tcase app.PaymentProvider.QuickStream:\r\n\t\t\t\tlet qst = await this.quickStream.getToken();\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttoken: qst.singleUseTokenId,\r\n\t\t\t\t\tcardholderName: qst.creditCard.cardholderName,\r\n\t\t\t\t\tcardScheme: qst.creditCard.cardScheme,\r\n\t\t\t\t\tmaskedCardNumber: qst.creditCard.cardNumber,\r\n\t\t\t\t\tsurchargePercentage: parseFloat(qst.creditCard.surchargePercentage)\r\n\t\t\t\t};\r\n\t\t\tcase app.PaymentProvider.Bpoint:\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttoken: this.bpointAuthKey,\r\n\t\t\t\t\tcardholderName: this.bpointCardholderName,\r\n\t\t\t\t\tsurchargePercentage: null\r\n\t\t\t\t};\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unsupported payment provider ${this.settings.provider}`)\r\n\t\t}\r\n\t};\r\n\r\n\tasync validate(): Promise {\r\n\t\treturn await this.validationController.validate();\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"credit-card #surcharges{margin-bottom:20px}credit-card #amount{width:100px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class DashboardCard {\r\n\tconstructor(private element: Element) { }\r\n\r\n\t@au.ato.bindable.stringMd\r\n\ttitle: string;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tfrom: Date;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tto: Date;\r\n\r\n\t@au.bindable\r\n\tisLoading: boolean;\r\n\r\n\tdatesChanged() {\r\n\t\tau.fireEvent(this.element, \"dates-changed\");\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class DateRange {\r\n\tconstructor(private element: Element, private taskQueue: au.TaskQueue, private validationControllerFactory: at.ValidationControllerFactory) {\r\n\t\tthis.validationController = this.validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.editFrom).required().satisfies(x => au.moment(x).isBefore(this.editTo)).withMessage(\"must be less than To\")\r\n\t\t\t.ensure(x => x.editTo).required().satisfies(x => au.moment(x).isAfter(this.editFrom)).withMessage(\"must be greater than From\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\r\n\t@au.ato.bindable.date({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tfrom: Date;\r\n\r\n\t@au.ato.bindable.date({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tto: Date;\r\n\r\n\tdropdown: HTMLDivElement;\r\n\r\n\tisOpen: boolean;\r\n\r\n\t@au.observable\r\n\teditFrom: Date;\r\n\teditFromChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"editTo\" });\r\n\t}\r\n\r\n\t@au.observable\r\n\teditTo: Date;\r\n\teditToChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"editFrom\" });\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.editFrom = this.from;\r\n\t\tthis.editTo = this.to;\r\n\t\tthis.isOpen = true;\r\n\t}\r\n\r\n\tasync ok() {\r\n\t\tif (!(await this.validationController.validate()).valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.from = this.editFrom;\r\n\t\tthis.to = this.editTo;\r\n\t\tthis.isOpen = false;\r\n\t\tthis.taskQueue.queueTask(() => au.fireEvent(this.element, \"ok\"));\r\n\t}\r\n\r\n\tcancel() {\r\n\t\tthis.isOpen = false;\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"date-range{line-height:1.5}date-range>div{position:relative}date-range>div div.dropdown{position:absolute;z-index:1000;width:100%;border:1px solid #e0e0e0;background:#fff;padding:10px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class EditAddress {\r\n\tconstructor(validationControllerFactory: at.ValidationControllerFactory, private taskQueue: au.TaskQueue, private bindingEngine: au.BindingEngine) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.street).required().when(x => x.isChanged).maxLength(50)\r\n\t\t\t.ensure(x => x.suburb).required().when(x => x.isChanged).maxLength(50)\r\n\t\t\t.ensure(x => x.fkState).required().when(x => !x.isOverseas && x.isChanged)\r\n\t\t\t.ensure(x => x.postcode).required().when(x => !x.isOverseas && x.isChanged)\r\n\t\t\t.ensure(x => x.postalName).required().when(x => x.isChanged).then()\r\n\t\t\t.satisfies(x => {\r\n\t\t\t\tvar lines = x.split(\"\\n\").filter(l => l.trim());\r\n\t\t\t\treturn lines.length <= 2;\r\n\t\t\t}).withMessage(\"must have maximum 2 lines.\")\r\n\t\t\t.satisfies(x => {\r\n\t\t\t\tvar lines = x.split(\"\\n\").filter(l => l.trim());\r\n\t\t\t\treturn !lines.find(l => l.length > 50);\r\n\t\t\t}).withMessage(\"must have lines shorter than 50 characters.\")\r\n\t\t\t.ensure(x => x.dateFrom).required().when(x => !!x.fkAccount && x.isChanged)\r\n\t\t\t.ensure(x => x.dateTo).satisfies((x, a) => {\r\n\t\t\t\treturn !x || au.moment(x).isAfter(a.dateFrom);\r\n\t\t\t}).when(x => !!x.fkAccount).withMessage(\"must be after 'From' date.\")\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tpublic validationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\tisOverseasSubscribtion: au.Disposable;\r\n\r\n\t@au.bindable\r\n\taddress: app.IAddressEx;\r\n\taddressChanged(newValue: app.IAddressEx, oldValue: app.IAddressEx) {\r\n\t\tif (oldValue) {\r\n\t\t\tthis.validationController.removeObject(oldValue);\r\n\t\t}\r\n\t\tif (this.isOverseasSubscribtion) {\r\n\t\t\tthis.isOverseasSubscribtion.dispose();\r\n\t\t}\r\n\t\tthis.validationController.addObject(this.address, this.rules);\r\n\t\tthis.validationController.reset();\r\n\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t\tthis.isOverseasSubscribtion = this.bindingEngine.propertyObserver(this.address, \"isOverseas\").subscribe(() => this.isOverseasChanged());\r\n\t}\r\n\r\n\tisOverseasChanged() {\r\n\t\tif (this.address.isOverseas) {\r\n\t\t\tthis.address.fkState = null;\r\n\t\t\tthis.address.postcode = null;\r\n\t\t}\r\n\t}\r\n\r\n\t@au.bindable\r\n\tstates: app.State[];\r\n\r\n\tdateFromOptions = {\r\n\t\tonClose: () => {\r\n\t\t\tthis.taskQueue.queueTask(() => this.validationController.validate({ object: this.address, propertyName: \"DateTo\" }));\r\n\t\t}\r\n\t}\r\n\r\n\tresetChanges() {\r\n\t\tthis.address.init(this.address.old.toJSON());\r\n\t\tthis.taskQueue.queueTask(() => {\r\n\t\t\tthis.address.isChanged = false;\r\n\t\t\tthis.validationController.reset();\r\n\t\t});\r\n\t}\r\n\r\n\tchanged() {\r\n\t\tthis.address.isChanged = true;\r\n\t}\r\n}\r\n","module.exports = \"\";","import * as au from \"aurelia\";\r\n\r\n@au.autoinject\r\nexport class EditPageButtons {\r\n\tconstructor(private element: Element) {\r\n\t}\r\n\r\n\t@au.bindable\r\n\ttitle: string;\r\n\r\n\t@au.bindable\r\n\tcanSave: boolean = true;\r\n\r\n\t@au.bindable\r\n\tcanRevert: boolean = true;\r\n\r\n\t@au.bindable\r\n\tcanDelete: boolean = false;\r\n\r\n\t@au.bindable\r\n\tisChanged: boolean = false;\r\n\r\n\tsave() {\r\n\t\tau.fireEvent(this.element, \"save\");\r\n\t}\r\n\r\n\trevert() {\r\n\t\tau.fireEvent(this.element, \"revert\");\r\n\t}\r\n\r\n\tdelete() {\r\n\t\tau.fireEvent(this.element, \"delete\");\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"edit-page-buttons button{margin-right:10px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class InfoStatementPorg {\r\n\tconstructor(private element: Element, validationControllerFactory: at.ValidationControllerFactory, private taskQueue: au.TaskQueue) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.surname).required().when(x => x.fk_porg_type == PorgType.person).maxLength(40)\r\n\t\t\t.ensure(x => x.first_name).required().when(x => x.fk_porg_type == PorgType.person).maxLength(40)\r\n\t\t\t.ensure(x => x.organisation_name).required().when(x => x.fk_porg_type == PorgType.organisation).maxLength(80)\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tpublic validationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\r\n\t@au.bindable\r\n\tporg: app.WebRequestInfoStmtPorg;\r\n\tporgChanged(newValue: app.WebRequestInfoStmtPorg, oldValue: app.WebRequestInfoStmtPorg) {\r\n\t\tif (oldValue) {\r\n\t\t\tthis.validationController.removeObject(oldValue);\r\n\t\t}\r\n\t\tthis.validationController.addObject(this.porg, this.rules);\r\n\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t}\r\n\r\n\t@au.bindable\r\n\tporgTypes: app.PorgType[];\r\n\r\n\t@au.bindable\r\n\treadonly: boolean;\r\n\treadonlyChanged() {\r\n\t\tif (this.readonly) {\r\n\t\t\tthis.validationController.removeObject(this.porg);\r\n\t\t} else {\r\n\t\t\tthis.validationController.addObject(this.porg, this.rules);\r\n\t\t}\r\n\t}\r\n\r\n\t@au.computedFrom(\"porg.fk_porg_type\")\r\n\tget isOrganisation(): boolean {\r\n\t\treturn this.porg.fk_porg_type === PorgType.organisation;\r\n\t}\r\n\r\n\tremove(e: Event) {\r\n\t\tau.fireEvent(this.element, \"remove\");\r\n\t\te.stopPropagation();\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class InfoStatementTitle {\r\n\tconstructor(private element: Element, validationControllerFactory: at.ValidationControllerFactory, private taskQueue: au.TaskQueue) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.volume_no).maxLength(10)\r\n\t\t\t.ensure(x => x.folio_no).maxLength(10)\r\n\t\t\t.ensure(x => x.lot_no).maxLength(30)\r\n\t\t\t.ensure(x => x.plan_no).maxLength(30)\r\n\t\t\t.ensure(x => x.crown_allotment).maxLength(50)\r\n\t\t\t.ensure(x => x.section).maxLength(30)\r\n\t\t\t.ensure(x => (x).parishFilter).satisfies(x => !x).when(x => !x.fk_parish).withMessage(\"Select parish or clear field\")\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tpublic validationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\r\n\t@au.bindable\r\n\ttitle: app.WebRequestInfoStmtTitle;\r\n\ttitleChanged(newValue: app.WebRequestInfoStmtTitle, oldValue: app.WebRequestInfoStmtTitle) {\r\n\t\tif (!this.readonly) {\r\n\t\t\tif (oldValue) {\r\n\t\t\t\tthis.validationController.removeObject(oldValue);\r\n\t\t\t}\r\n\t\t\tthis.validationController.addObject(this.title, this.rules);\r\n\t\t}\r\n\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t}\r\n\r\n\t@au.bindable\r\n\tplanTypes: app.PlanType[];\r\n\r\n\t@au.bindable\r\n\tparishes: app.Parish[];\r\n\r\n\t@au.bindable\r\n\treadonly: boolean;\r\n\treadonlyChanged() {\r\n\t\tif (this.readonly) {\r\n\t\t\tthis.validationController.removeObject(this.title);\r\n\t\t} else {\r\n\t\t\tthis.validationController.addObject(this.title, this.rules);\r\n\t\t}\r\n\t}\r\n\r\n\tremove(e: Event) {\r\n\t\tau.fireEvent(this.element, \"remove\");\r\n\t\te.stopPropagation();\r\n\t}\r\n\r\n\tgetParishes(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.filter !== undefined) {\r\n\t\t\treturn Promise.resolve(this.parishes.filter(x => x.description.toUpperCase().includes(p.filter.toUpperCase())));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(p.value ? this.parishes.filter(x => x.code === p.value) : []);\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport \"./last-tenancy-requests.scss\";\r\n\r\n@au.autoinject\r\nexport class LastTenancyRequests extends app.PaginatedBase {\r\n\tconstructor(private router: au.Router, private webRequestClient: app.WebRequestClient, alertService: at.AlertService, private settingsService: app.SettingsService,\r\n\t\tprivate dataStorageService: app.DataStorageService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\trequests: app.TenancyWebRequestInfo[];\r\n\tstatuses: app.WebRequestStatus[];\r\n\ttypes: app.WebRequestType[];\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.tenancyFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.tenancyFilterLines = value;\r\n\t}\r\n\r\n\tasync attached() {\r\n\t\ttry {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.webRequestClient.getStatuses().then(x => this.statuses = x),\r\n\t\t\t\tthis.webRequestClient.getTenancyTypes().then(x => this.types = x),\r\n\t\t\t]);\r\n\t\t\tif (this.savedFilterLines && this.savedFilterLines.length) {\r\n\t\t\t\tthis.filterLines = this.savedFilterLines;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.filterLines = [];\r\n\t\t\t}\r\n\t\t\tawait this.search()\r\n\t\t\tthis.isActivated = true;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(e.message);\r\n\t\t}\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet response = await this.webRequestClient.getLastTenancyRequests(request);\r\n\t\tthis.requests = response.items;\r\n\t\treturn response;\r\n\t}\r\n\r\n\topen(wr: app.TenancyWebRequestInfo) {\r\n\t\tthis.router.navigateToRoute(wr.type === \"New Tenant\" ? app.Route.newTenant : app.Route.vacatingTenant, { guid: wr.guid } as IHaveGuid);\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class PayArrangement {\r\n\tconstructor(private settingsService: app.SettingsService) { }\r\n\r\n\tdateFormat = this.settingsService.browserSettings.dateFormat;\r\n\r\n\t@au.bindable\r\n\tvalue: app.PayArrangement;\r\n\r\n\t@au.ato.bindable.booleanMd\r\n\tshowUnderReviewNotice: boolean;\r\n}\r\n","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class PaymentStatus {\r\n\tconstructor(private paymentService: app.PaymentService) {\r\n\t\tthis.elementId = PaymentStatus.id++;\r\n\t}\r\n\r\n\tstatic id: number = 0;\r\n\telementId: number;\r\n\r\n\t@au.bindable\r\n\tpayment: app.Payment;\r\n\tpaymentChanged() {\r\n\t\tif (this.payment) {\r\n\t\t\tthis.paymentStatus = this.paymentService.getStatusSummary(this.payment);\r\n\t\t}\r\n\t}\r\n\r\n\tpaymentStatus: IPaymentStatusSummary;\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Payment {\r\n\tconstructor(private paymentClient: app.PaymentClient, private alertService: at.AlertService, private authService: app.IAuthService) { }\r\n\r\n\t@au.bindable\r\n\tpayment: app.Payment;\r\n\r\n\t@au.bindable\r\n\tshowDetail: boolean;\r\n\r\n\tisCustomer: boolean;\r\n\r\n\tPaymentStatus = app.PaymentStatus;\r\n\r\n\tattached() {\r\n\t\tlet role = this.authService.getTokenPayload().role;\r\n\t\tthis.isCustomer = role == app.Roles.businessCustomer || role == app.Roles.residentialCustomer;\r\n\t}\r\n\r\n\tasync sendReceipt() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.paymentClient.sendReceipt(this.payment.id);\r\n\t\t\tawait this.alertService.alert(\"The receipt has been sent to your email\");\r\n\t\t}, e => this.alertService.error(\"Error ocurred while sending the receipt\"));\r\n\t}\r\n}\r\n","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport CSSJSON from \"css-to-json\";\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-analytics-js';\r\n\r\n@au.autoinject\r\nexport class QuickStream {\r\n\tconstructor(private settingsService: app.SettingsService, private appInsights: ApplicationInsights) {\r\n\t\tthis.logger = au.getLogger(\"QuickStream\");\r\n\t\tthis.settings = this.settingsService.paymentSettings.quickStream;\r\n\t}\r\n\r\n\tid: string = `payway-credit-card-${Date.now().toString()}`;\r\n\tlogger: au.Logger;\r\n\tsettings: app.QuickStreamSettings;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tvalid: boolean;\r\n\r\n\tloading: boolean;\r\n\tframe: QuickstreamApi.ITrustedFrame;\r\n\tframeErr: any;\r\n\r\n\tlabelStyle: any;\r\n\tfieldStyle: any;\r\n\tfocusedStyle: any;\r\n\tinvalidStyle: any;\r\n\r\n\tasync attached() {\r\n\t\tthis.loading = true;\r\n\t\ttry {\r\n\t\t\tawait at.loadScript(`${this.settings.url}/quickstream-api-1.0.min.js`);\r\n\t\t\tif (!window.QuickstreamAPI) {\r\n\t\t\t\tthrow new Error(\"Could not initialise the API\");\r\n\t\t\t}\r\n\t\t\tQuickstreamAPI.init({ publishableApiKey: this.settings.publishableApiKey });\r\n\t\t\tthis.loadStyles();\r\n\t\t\tthis.frame = await this.createFrame();\r\n\t\t\tthis.setHandlers();\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.logger.error(\"API error\", e);\r\n\t\t\tthis.appInsights.trackException(e, { method: \"QuickStream.attached\" });\r\n\t\t\tthis.frameErr = e;\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync detached() {\r\n\t\tif (this.frame) {\r\n\t\t\ttry {\r\n\t\t\t\tawait this.teardown();\r\n\t\t\t\tthis.frame = undefined;\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\tthis.logger.error(\"Teardown error\", e);\r\n\t\t\t\tthis.appInsights.trackException(e, { method: \"QuickStream.detached\" });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tloadStyles() {\r\n\t\tlet secondaryColour = this.settingsService.browserSettings.colours.secondaryColour;\r\n\t\tlet errorColour = this.settingsService.browserSettings.colours.errorColour;\r\n\r\n\t\tlet css = require(\"!css-loader!./quick-stream.css\").toString();\r\n\t\tcss = css.replace(/secondaryColour/g, secondaryColour).replace(/errorColour/g, errorColour);\r\n\t\tlet styleJson = CSSJSON.toJSON(css);\r\n\t\tlet style = {};\r\n\t\tfor (let c in styleJson.children) {\r\n\t\t\tstyle[c] = styleJson.children[c].attributes;\r\n\t\t}\r\n\t\tthis.labelStyle = style[\".label\"];\r\n\t\tthis.fieldStyle = style[\".field\"];\r\n\t\tthis.focusedStyle = style[\".focused\"];\r\n\t\tthis.invalidStyle = style[\".invalid\"];\r\n\t}\r\n\r\n\tcreateFrame(): Promise {\r\n\t\tlet options: QuickstreamApi.ITrustedFrameConfigObject = {\r\n\t\t\tconfig: {\r\n\t\t\t\tsupplierBusinessCode: this.settings.supplierBusinessCode\r\n\t\t\t},\r\n\t\t\tiframe: { width: 270, height: 420 },\r\n\t\t\tlabels: { style: this.labelStyle },\r\n\t\t\tcardholderName: { style: this.fieldStyle },\r\n\t\t\tcardNumber: { style: this.fieldStyle },\r\n\t\t\texpiryDateMonth: { style: this.fieldStyle },\r\n\t\t\texpiryDateYear: { style: this.fieldStyle },\r\n\t\t\tcvn: { style: this.fieldStyle }\r\n\t\t};\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tQuickstreamAPI.creditCards.createTrustedFrame(options, (errors, data) => {\r\n\t\t\t\tif (errors) {\r\n\t\t\t\t\treject(errors);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tresolve(data.trustedFrame);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsetHandlers() {\r\n\t\tthis.frame.setEventHandler(\"cardholderName\", \"focus\", this.focusEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cardholderName\", \"blur\", this.blurEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cardholderName\", \"error\", this.errorEventHandler);\r\n\r\n\t\tthis.frame.setEventHandler(\"cardNumber\", \"focus\", this.focusEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cardNumber\", \"blur\", this.blurEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cardNumber\", \"error\", this.errorEventHandler);\r\n\r\n\t\tthis.frame.setEventHandler(\"expiryDateMonth\", \"focus\", this.focusEventHandler);\r\n\t\tthis.frame.setEventHandler(\"expiryDateMonth\", \"blur\", this.blurEventHandler);\r\n\t\tthis.frame.setEventHandler(\"expiryDateMonth\", \"error\", this.errorEventHandler);\r\n\r\n\r\n\t\tthis.frame.setEventHandler(\"expiryDateYear\", \"focus\", this.focusEventHandler);\r\n\t\tthis.frame.setEventHandler(\"expiryDateYear\", \"blur\", this.blurEventHandler);\r\n\t\tthis.frame.setEventHandler(\"expiryDateYear\", \"error\", this.errorEventHandler);\r\n\r\n\t\tthis.frame.setEventHandler(\"cvn\", \"focus\", this.focusEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cvn\", \"blur\", this.blurEventHandler);\r\n\t\tthis.frame.setEventHandler(\"cvn\", \"error\", this.errorEventHandler);\r\n\t}\r\n\r\n\tfocusEventHandler = (data: QuickstreamApi.IEventHandlerData) => {\r\n\t\tthis.frame.changeStyle(data.fieldName, this.invalidFields.find(x => x === data.fieldName) ? this.invalidStyle : this.focusedStyle, null);\r\n\t};\r\n\r\n\tblurEventHandler = (data: QuickstreamApi.IEventHandlerData) => {\r\n\t\tthis.frame.changeStyle(data.fieldName, this.invalidFields.find(x => x === data.fieldName) ? this.invalidStyle : this.fieldStyle, null);\r\n\t};\r\n\r\n\tinvalidFields: string[] = [];\r\n\terrorEventHandler = (data: QuickstreamApi.IEventHandlerData) => {\r\n\t\tthis.invalidFields.push(data.fieldName);\r\n\t\tthis.frame.changeStyle(data.fieldName, this.invalidStyle, null);\r\n\t};\r\n\r\n\tgetToken(): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!this.frame) {\r\n\t\t\t\treject({ message: \"Error connecting with the bank\" });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// reset validation\r\n\t\t\t\tthis.invalidFields = [];\r\n\t\t\t\tthis.frame.changeStyle(\"cardholderName\", this.fieldStyle, null);\r\n\t\t\t\tthis.frame.changeStyle(\"cardNumber\", this.fieldStyle, null);\r\n\t\t\t\tthis.frame.changeStyle(\"expiryDateMonth\", this.fieldStyle, null);\r\n\t\t\t\tthis.frame.changeStyle(\"expiryDateYear\", this.fieldStyle, null);\r\n\t\t\t\tthis.frame.changeStyle(\"cvn\", this.fieldStyle, null);\r\n\r\n\t\t\t\tthis.frame.submitForm((errors, data) => {\r\n\t\t\t\t\tif (errors === undefined) {\r\n\t\t\t\t\t\tresolve(data.singleUseToken);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\terrors.data = data;\r\n\t\t\t\t\t\treject(errors);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tteardown(): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.frame.teardown((errors, data) => {\r\n\t\t\t\tif (errors) {\r\n\t\t\t\t\treject(errors);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tresolve(data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\n\r\n@au.autoinject\r\nexport class ScriptInjector {\r\n\tconstructor(element: Element) {\r\n\t\tthis.element = element as HTMLElement;\r\n\t}\r\n\r\n\telement: HTMLElement;\r\n\r\n\t@au.bindable\r\n\turl: string;\r\n\r\n\t@au.bindable\r\n\ttext: string;\r\n\r\n\t@au.bindable\r\n\tisAsync: boolean;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.oneWay })\r\n\tscriptElement: HTMLScriptElement;\r\n\r\n\tbind() { }\r\n\r\n\tattached() {\r\n\t\tif (!this.url && !this.text) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.scriptElement = document.createElement('script');\r\n\t\tif (this.isAsync) {\r\n\t\t\tthis.scriptElement.async = true;\r\n\t\t}\r\n\r\n\t\tif (this.url) {\r\n\t\t\tthis.scriptElement.setAttribute('src', this.url);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.scriptElement.innerHTML = this.text;\r\n\t\t}\r\n\t\tdocument.head.appendChild(this.scriptElement);\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tif (this.scriptElement) {\r\n\t\t\tthis.scriptElement.remove();\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport \"./select-account.scss\";\r\n\r\n@au.autoinject\r\nexport class SelectAccount {\r\n\tconstructor(private element: Element) { }\r\n\r\n\t@au.bindable\r\n\taccounts: app.AccountInfo[];\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\tvalue: app.AccountInfo;\r\n\r\n\t@au.bindable\r\n\tlabel: string;\r\n\r\n\t@au.bindable\r\n\treadonly: boolean;\r\n\r\n\t@au.bindable\r\n\tallowEmpty: boolean;\r\n\r\n\t@au.observable\r\n\tatSelectElement: HTMLElement;\r\n\r\n\t@au.bindable\r\n\temptyLabel: string[] = [\"Select\", \"Account\"];\r\n\r\n\t@au.bindable\r\n\thint: string = \"Select Account\";\r\n\r\n\tattached() {\r\n\t\tthis.element.mdRenderValidateResults = this.mdRenderValidateResults;\r\n\t\tthis.element.mdUnrenderValidateResults = this.mdUnrenderValidateResults;\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tthis.element.mdRenderValidateResults = null;\r\n\t\tthis.element.mdUnrenderValidateResults = null;\r\n\t}\r\n\r\n\tselectAccount(a: app.AccountInfo) {\r\n\t\tthis.value = a;\r\n\t}\r\n\r\n\tmdUnrenderValidateResults = (results: au.ValidateResult[], renderer: au.MaterializeFormValidationRenderer) => {\r\n\t\tthis.atSelectElement.mdUnrenderValidateResults(results, renderer);\r\n\t}\r\n\r\n\tmdRenderValidateResults = (results: au.ValidateResult[], renderer: au.MaterializeFormValidationRenderer) => {\r\n\t\tthis.atSelectElement.mdRenderValidateResults(results, renderer);\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Tenant {\r\n\tconstructor(private element: Element, validationControllerFactory: at.ValidationControllerFactory, private dateService: at.DateService, private settingsService: app.SettingsService,\r\n\t\tprivate addressClient: app.AddressClient) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.surname).required().maxLength(40)\r\n\t\t\t.ensure(x => x.firstName).required().maxLength(40)\r\n\t\t\t.ensure(x => x.middleName).maxLength(40)\r\n\t\t\t.ensure(x => x.birthDate).required().then().satisfies(async x => au.moment(x).isBetween(au.moment(await this.dateService.getServerDate()).subtract(90, \"year\"), au.moment(await this.dateService.getServerDate()).subtract(16, \"year\"))).withMessage(\"age must be between 16 and 90 years.\")\r\n\t\t\t.ensure(x => x.phone).required()\r\n\t\t\t.ensure(x => x.email).email().required()\r\n\t\t\t.ensure(x => x.streetNo).required().maxLength(12)\r\n\t\t\t.ensure(x => x.street).required().maxLength(80)\r\n\t\t\t.ensure(x => x.suburb).required().maxLength(80)\r\n\t\t\t.ensure(x => x.postCode).required()\r\n\t\t\t.rules;\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.addressLookup).satisfies(x => !!this.tenant.streetNo && !!this.tenant.street && !!this.tenant.suburb && !!this.tenant.postCode).withMessage(\"is required.\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\tsettings = this.settingsService.browserSettings;\r\n\taddressLookup: boolean;\r\n\r\n\t@au.bindable\r\n\ttenant: app.WebRequestTenant;\r\n\ttenantChanged(newValue: app.WebRequestTenant, oldValue: app.WebRequestTenant) {\r\n\t\tif (oldValue) {\r\n\t\t\tthis.validationController.removeObject(oldValue);\r\n\t\t}\r\n\t\tif (newValue && !this.readonly) {\r\n\t\t\tthis.validationController.addObject(newValue, this.rules);\r\n\t\t\tthis.updateAddressLookup();\r\n\t\t}\r\n\t}\r\n\r\n\t@au.bindable\r\n\tnewTenant: boolean;\r\n\r\n\t@au.bindable({ defaultBindingMode: au.bindingMode.twoWay })\r\n\treadonly: boolean;\r\n\treadonlyChanged() {\r\n\t\tif (this.readonly) {\r\n\t\t\tthis.validationController.removeObject(this.tenant);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.validationController.addObject(this.tenant, this.rules);\r\n\t\t}\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tif (this.tenant) {\r\n\t\t\tthis.validationController.removeObject(this.tenant);\r\n\t\t}\r\n\t}\r\n\r\n\tremove() {\r\n\t\tau.fireEvent(this.element, \"remove\");\r\n\t}\r\n\r\n\tgetAddresses = (criteria: au.ILookupOptionsFunctionParameter): Promise => {\r\n\t\tif (criteria.filter !== undefined) {\r\n\t\t\tif (criteria.filter === \"\") {\r\n\t\t\t\treturn Promise.resolve([]);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.addressClient.autocomplete(criteria.filter);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve([criteria.value]);\r\n\t\t}\r\n\t}\r\n\r\n\tasync prevAddressSelected(address: app.Address) {\r\n\t\tif (!address) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (address.detailsInSeparateCall) {\r\n\t\t\taddress = await this.addressClient.metadata(address.id);\r\n\t\t}\r\n\t\tthis.tenant.unitNo = address.flatNumber ? address.flatNumber.toString() : undefined;\r\n\t\tthis.tenant.streetNo = address.numberFirst ? address.numberFirst.toString() : undefined;\r\n\t\tthis.tenant.street = `${address.streetName} ${address.streetType}`;\r\n\t\tthis.tenant.suburb = address.suburb;\r\n\t\tthis.tenant.postCode = address.postCode ? parseInt(address.postCode, 10) : undefined;\r\n\t\tthis.updateAddressLookup();\r\n\t}\r\n\r\n\tupdateAddressLookup() {\r\n\t\tthis.addressLookup = !this.tenant.unitNo && !this.tenant.streetNo && !this.tenant.street && !this.tenant.suburb && !this.tenant.postCode;\r\n\t\tconsole.log(\"updateLookupAddress\", this.addressLookup);\r\n\t}\r\n\r\n\ttoggleAddressLookup() {\r\n\t\tthis.addressLookup = !this.addressLookup;\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { CreditCard } from \"custom-elements/credit-card/credit-card\";\r\n\r\n@au.autoinject\r\nexport class AccountPayment {\r\n\tconstructor(private accountClient: app.AccountClient, private alertService: at.AlertService, private router: au.Router, private paymentClient: app.PaymentClient,\r\n\t\tprivate settingsService: app.SettingsService) { }\r\n\r\n\taccounts: app.AccountInfo[];\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountInfo;\r\n\tasync selectedAccountChanged() {\r\n\t\tlet balanceInfo = await this.accountClient.getBalance(this.selectedAccount.pkAccount);\r\n\t\tif (balanceInfo.amount > 0) {\r\n\t\t\tthis.amount = balanceInfo.amount;\r\n\t\t} else {\r\n\t\t\tthis.amount = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tamount: number;\r\n\r\n\tcreditCard: CreditCard;\r\n\tpayment: app.Payment;\r\n\tfailedPayment: boolean;\r\n\tdateFormat = this.settingsService.browserSettings.dateFormat;\r\n\r\n\tdetermineActivationStrategy() {\r\n\t\treturn au.activationStrategy.replace; //replace the viewmodel with a new instance\r\n\t}\r\n\r\n\tasync activate(params: IHaveId): Promise {\r\n\t\tawait Promise.all([\r\n\t\t\tthis.accountClient.index().then(x => this.accounts = x.filter(x => !x.isClosed))\r\n\t\t]);\r\n\t\tif (params && params.id) {\r\n\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t}\r\n\t\tif (!this.selectedAccount) {\r\n\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t}\r\n\t}\r\n\r\n\tasync pay() {\r\n\t\tvar vr = await this.creditCard.validate();\r\n\t\tif (!vr.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet tokenData: app.IPaymentTokenInfo;\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\ttokenData = await this.creditCard.getPaymentTokenInfo();\r\n\t\t\tthis.payment = await this.paymentClient.takeAccountPayment(new app.TakeAccountPaymentRequest({\r\n\t\t\t\taccountPk: this.selectedAccount.pkAccount,\r\n\t\t\t\tamount: this.amount,\r\n\t\t\t\tpaymentTokenInfo: new app.PaymentTokenInfo({\r\n\t\t\t\t\ttoken: tokenData.token,\r\n\t\t\t\t\tcardholderName: tokenData.cardholderName,\r\n\t\t\t\t\tcardScheme: tokenData.cardScheme,\r\n\t\t\t\t\tmaskedCardNumber: tokenData.maskedCardNumber,\r\n\t\t\t\t\tsurchargePercentage: tokenData.surchargePercentage\r\n\t\t\t\t})\r\n\t\t\t}));\r\n\t\t\tthis.failedPayment = !![app.PaymentStatus.Failed, app.PaymentStatus.RolledBack].find(x => x === this.payment.status);\r\n\t\t}, async e => {\r\n\t\t\tif (e.status === 422) {\r\n\t\t\t\tawait this.alertService.error(\"Please make sure credit card details are correct\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tawait this.alertService.error(\"We were unable to process the payment\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\ttryAgain() {\r\n\t\tthis.router.navigateToRoute(app.Route.accountPayment, { id: this.selectedAccount.pkAccount }, { replace: true });\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\ndeclare module \"../../services/api\" {\r\n\t// tslint:disable:interface-name\r\n\tinterface AccountPayment {\r\n\t\tfullAccountNo?: string;\r\n\t\tfullAddress?: string;\r\n\t}\r\n\t// tslint:enable:interface-name\r\n}\r\n\r\n@au.autoinject\r\nexport class AccountPayments extends app.PaginatedBase {\r\n\tconstructor(private accountClient: app.AccountClient, alertService: at.AlertService, private dataStorageService: app.DataStorageService, private taskQueue: au.TaskQueue,\r\n\t\tprivate paymentClient: app.PaymentClient, private i18n: au.I18N, private paymentService: app.PaymentService, private settingsService: app.SettingsService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.accountPaymentsFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.accountPaymentsFilterLines = value;\r\n\t}\r\n\r\n\taccounts: app.AccountInfo[];\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountInfo;\r\n\tselectedAccountChanged() {\r\n\t\tif (this.isActivated) {\r\n\t\t\tthis.search();\r\n\t\t}\r\n\t}\r\n\r\n\tpayments: app.AccountPayment[];\r\n\tpayment: app.Payment;\r\n\tmodal: au.MdModal;\r\n\tdateFormat = this.settingsService.browserSettings.dateFormat;\r\n\tallowAllInSearch = this.settingsService.browserSettings.accountPayments.allowAllInSearch;\r\n\r\n\tasync activate(params: IHaveId): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = await this.accountClient.index();\r\n\t\t\tthis.allowAllInSearch = this.allowAllInSearch && (this.accounts.length > 1) && (this.accounts.length < 10);\r\n\t\t\tif (params && params.id) {\r\n\t\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.selectedAccount = this.allowAllInSearch ? null : this.accounts[0];\r\n\t\t\t}\r\n\t\t\tthis.taskQueue.queueTask(() => this.search());\r\n\t\t\tthis.isActivated = true;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet fi = new app.FilterItem();\r\n\t\tfi.name = \"Account\";\r\n\t\tfi.operator = app.FilterOperator.Is;\r\n\t\tfi.value = this.selectedAccount ? this.selectedAccount.pkAccount : null;\r\n\t\trequest.filterItems.push(fi);\r\n\t\tlet response = await this.accountClient.getPayments(request);\r\n\t\tthis.payments = response.items;\r\n\t\tthis.payments.forEach(x => {\r\n\t\t\tlet a = this.accounts.find(y => y.pkAccount === x.pkAccount);\r\n\t\t\tx.fullAccountNo = a.fullAccountNo;\r\n\t\t\tx.fullAddress = a.fullAddress;\r\n\t\t});\r\n\t\treturn response;\r\n\t}\r\n\r\n\tasync showReceipt(p: app.AccountPayment): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.payment = await this.paymentClient.get(p.paymentId);\r\n\t\t\tthis.taskQueue.queueMicroTask(() => this.modal.open());\r\n\t\t}, e => this.alertService.error(\"Could not retrieve payment receipt\"));\r\n\t}\r\n\r\n\tgetAccountDisplayName(ai: app.AccountInfo) {\r\n\t\treturn `${ai.fullAccountNo} - ${ai.fullAddress}`;\r\n\t}\r\n\r\n\tshowPendingDDWarning() {\r\n\t\tthis.alertService.alert(this.i18n.tr(\"Account.DirectDebitPendingWarning\"), \"schedule\", \"orange\");\r\n\t}\r\n\r\n\tsavePayments() {\r\n\t\tthis.paymentService.savePayments(this.payments);\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Account {\r\n\tconstructor(private invoiceClient: app.InvoiceClient, private invoiceService: app.InvoiceService, private accountClient: app.AccountClient, private alertService: at.AlertService,\r\n\t\tprivate dateService: at.DateService, private taskQueue: au.TaskQueue, private router: au.Router, private settingsService: app.SettingsService, private authService: app.IAuthService,\r\n\t\tprivate paymentClient: app.PaymentClient, private i18n: au.I18N, private paymentService: app.PaymentService) {\r\n\t\tthis.logger = au.getLogger(this.constructor.name);\r\n\t}\r\n\r\n\tbalanceInfo: app.AccountBalanceInfo;\r\n\tinvoices: app.InvoiceHeader[];\r\n\tpayments: app.AccountPayment[];\r\n\tlastInvoice: app.InvoiceHeader;\r\n\tisPayed: boolean;\r\n\tisToBePayed: boolean;\r\n\tisOverdue: boolean;\r\n\tserverDate: Date;\r\n\tvolumes: Chart.ChartData = {};\r\n\tavgVolumes: Chart.ChartData = {};\r\n\tlogger: au.Logger;\r\n\tshowFixedAddress: boolean;\r\n\taccounts: app.AccountInfo[];\r\n\tpayment: app.Payment;\r\n\tmodal: au.MdModal;\r\n\tRoutes = app.Route;\r\n\ttotalChart: HTMLUnknownElement;\r\n\tavgChart: HTMLUnknownElement;\r\n\tavgChartVm: any;\r\n\tshowDailyUse = this.settingsService.browserSettings.showDailyWaterUse;\r\n\tshowInvoiceDates = this.settingsService.browserSettings.account.showInvoiceDates;\r\n\ttotalWaterUseUom = this.settingsService.browserSettings.account.totalWaterUseUom;\r\n\tWaterUseUom = app.WaterUseUom;\r\n\tdateFormat = this.settingsService.browserSettings.dateFormat;\r\n\tcolourInvoices = this.settingsService.browserSettings.account.colourInvoices;\r\n\tshowShortcuts = this.settingsService.browserSettings.account.showShortcuts;\r\n\tminVolumeDate: Date;\r\n\tbulkCustomer: boolean;\r\n\tisDatesUsageFilter = this.settingsService.browserSettings.account.waterUsageFilter === app.WaterUsageFilter.Dates;\r\n\tbillsUsageFilterOptions = Array.from(Array(this.settingsService.browserSettings.account.waterUsageBillsFilterMax), (x, i) => i + 1);\r\n\tconcessionAllowed: boolean;\r\n\r\n\t@au.observable\r\n\tbillsUsageFilter = this.settingsService.browserSettings.account.waterUsageBillsFilterDefault;\r\n\tbillsUsageFilterChanged() {\r\n\t\tif (!this.isDatesUsageFilter && this.balanceInfo) {\r\n\t\t\tthis.loadVolumes(this.balanceInfo.pkAccount);\r\n\t\t}\r\n\t}\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountInfo;\r\n\tselectedAccountChanged(newValue: app.AccountInfo) {\r\n\t\tif (!this.bulkCustomer) {\r\n\t\t\tthis.router.navigateToRoute(app.Route.account, { pkAccount: newValue.pkAccount });\r\n\t\t}\r\n\t}\r\n\r\n\t@au.observable\r\n\tvolumesDateFrom: Date;\r\n\tsuppressVolumesDateFromChanged: boolean;\r\n\tvolumesDateFromChanged() {\r\n\t\tif (this.suppressVolumesDateFromChanged) {\r\n\t\t\tthis.suppressVolumesDateFromChanged = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.balanceInfo) {\r\n\t\t\tthis.loadVolumes(this.balanceInfo.pkAccount);\r\n\t\t}\r\n\t}\r\n\r\n\t@au.observable\r\n\tvolumesDateTo: Date;\r\n\tsuppressVolumesDateToChanged: boolean;\r\n\tvolumesDateToChanged(newValue) {\r\n\t\tif (this.suppressVolumesDateToChanged) {\r\n\t\t\tthis.suppressVolumesDateToChanged = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.balanceInfo) {\r\n\t\t\tthis.loadVolumes(this.balanceInfo.pkAccount);\r\n\t\t}\r\n\t}\r\n\r\n\tvolumesLoading: boolean;\r\n\r\n\ttotalChartOptions: Chart.ChartOptions = {\r\n\t\tlegend: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\txAxes: [{ scaleLabel: { display: true, labelString: this.i18n.tr(\"Account.TotalChartXAxis\") } }],\r\n\t\t\tyAxes: [{ stacked: true, ticks: { min: 0, suggestedMax: 1 } as any, scaleLabel: { display: true } }]\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: false\r\n\t\t}\r\n\t};\r\n\r\n\tdailyUsageTarget = this.settingsService.browserSettings.account.dailyUsageTarget;\r\n\r\n\tavgChartOptions: Chart.ChartOptions = {\r\n\t\tlegend: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\txAxes: [{ scaleLabel: { display: true, labelString: this.i18n.tr(\"Account.AverageChartXAxis\") } }],\r\n\t\t\tyAxes: [{ stacked: true, ticks: { min: 0, suggestedMax: this.dailyUsageTarget ? this.dailyUsageTarget : 1 } as any, scaleLabel: { display: true, labelString: \"L\" } }]\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: false\r\n\t\t},\r\n\t\tannotation: this.dailyUsageTarget ? {\r\n\t\t\tannotations: [{\r\n\t\t\t\tdrawTime: \"afterDatasetsDraw\",\r\n\t\t\t\ttype: \"line\",\r\n\t\t\t\tmode: \"horizontal\",\r\n\t\t\t\tscaleID: \"y-axis-0\",\r\n\t\t\t\tvalue: this.dailyUsageTarget,\r\n\t\t\t\tborderColor: this.settingsService.browserSettings.colours.errorColour,\r\n\t\t\t\tborderWidth: 2,\r\n\t\t\t\tlabel: {\r\n\t\t\t\t\tbackgroundColor: this.settingsService.browserSettings.colours.errorColour,\r\n\t\t\t\t\tcontent: this.dailyUsageTarget + \" L\",\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tcornerRadius: 2\r\n\t\t\t\t},\r\n\t\t\t}]\r\n\t\t} : undefined\r\n\t};\r\n\r\n\tchartDataLabels: Chart.ChartDataSets[\"datalabels\"] = {\r\n\t\tanchor: \"end\",\r\n\t\talign: \"start\",\r\n\t\tcolor: \"white\"\r\n\t};\r\n\r\n\t@au.observable\r\n\tpeopleInHousehold: number;\r\n\tasync peopleInHouseholdChanged() {\r\n\t\tif (this.selectedAccount) {\r\n\t\t\tawait this.accountClient.updatePeopleInHousehold(new app.UpdatePeopleInHouseholdRequest({ pkAccount: this.selectedAccount.pkAccount, peopleInHousehold: this.peopleInHousehold }));\r\n\t\t}\r\n\t\tif (this.balanceInfo) {\r\n\t\t\tthis.loadVolumes(this.balanceInfo.pkAccount);\r\n\t\t}\r\n\t}\r\n\r\n\tisResidentialCustomer: boolean;\r\n\r\n\tdetermineActivationStrategy() {\r\n\t\treturn au.activationStrategy.replace; //replace the viewmodel with a new instance\r\n\t}\r\n\r\n\tasync canActivate(params: any, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tif (!params || !params.pkAccount) {\r\n\t\t\tlet accounts = await this.accountClient.index();\r\n\t\t\tif (!accounts.length) {\r\n\t\t\t\tthis.alertService.error(\"There are no accounts available\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn new au.RedirectToRoute(app.Route.account, { pkAccount: accounts[0].pkAccount });\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tasync activate(params: any) {\r\n\t\tthis.minVolumeDate = au.moment(await this.dateService.getServerDate()).subtract(this.settingsService.aquaRateSettings.volumeHistoryYears, \"years\").toDate();\r\n\t\tawait this.load(parseInt(params.pkAccount));\r\n\t}\r\n\r\n\tasync load(pkAccount: number) {\r\n\t\tthis.isResidentialCustomer = this.authService.getTokenPayload().role === app.Roles.residentialCustomer;\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.accountClient.index().then(x => this.accounts = x),\r\n\t\t\t\tthis.accountClient.getBalance(pkAccount).then(x => this.balanceInfo = x),\r\n\t\t\t\tthis.accountClient.getLastPayments(pkAccount).then(x => this.payments = x),\r\n\t\t\t\tthis.invoiceClient.getLast(pkAccount).then(x => this.invoices = x),\r\n\t\t\t\tthis.dateService.getServerDate().then(x => this.serverDate = x),\r\n\t\t\t\tthis.loadVolumes(pkAccount),\r\n\t\t\t\tthis.isResidentialCustomer ? this.accountClient.getPeopleInHousehold(pkAccount).then(x => this.peopleInHousehold = x) : Promise.resolve(0)\r\n\t\t\t]);\r\n\t\t\tthis.bulkCustomer = this.accounts.length >= this.settingsService.browserSettings.bulkCustomer.bulkCustomerThreshold;\r\n\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === pkAccount);\r\n\t\t\tthis.lastInvoice = this.balanceInfo.lastInvoice && this.balanceInfo.lastInvoice.aquaweb_show_flag !== \"N\" ? this.balanceInfo.lastInvoice : null;\r\n\t\t\tthis.isPayed = this.balanceInfo.balanceStatus === app.BalanceStatus.Payed;\r\n\t\t\tthis.isToBePayed = this.balanceInfo.balanceStatus === app.BalanceStatus.ToBePayed;\r\n\t\t\tthis.isOverdue = this.balanceInfo.balanceStatus === app.BalanceStatus.Overdue;\r\n\t\t\tthis.concessionAllowed = this.settingsService.isWebRequestAllowed(WebRequestType.Concession) && !this.balanceInfo.concessionApplied;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync loadVolumes(id: number) {\r\n\t\t// either both dates have to be null or set\r\n\t\tif (this.volumesDateFrom ? !this.volumesDateTo : this.volumesDateTo) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tthis.volumesLoading = true;\r\n\r\n\t\t\tlet coef = this.totalWaterUseUom === app.WaterUseUom.Litres ? 1000 : 1;\r\n\t\t\tthis.totalChartOptions.scales.yAxes[0].scaleLabel.labelString = this.totalWaterUseUom === app.WaterUseUom.Litres ? \"L\" : \"kL\";\r\n\t\t\tlet volumes = await this.accountClient.getVolumes(id, this.volumesDateFrom, this.volumesDateTo, this.isDatesUsageFilter ? null : this.billsUsageFilter);\r\n\t\t\tthis.volumes = {\r\n\t\t\t\tlabels: volumes.map(x => x.cycleDesc),\r\n\t\t\t\tdatasets: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackgroundColor: this.settingsService.browserSettings.colours.primaryColour,\r\n\t\t\t\t\t\tdata: volumes.map(x => x.volume * coef),\r\n\t\t\t\t\t\tdatalabels: this.chartDataLabels\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t};\r\n\t\t\tif (this.isResidentialCustomer) {\r\n\t\t\t\tlet peopleInHousehold = this.peopleInHousehold ? this.peopleInHousehold : 1;\r\n\t\t\t\tthis.avgVolumes = JSON.parse(JSON.stringify(this.volumes));\r\n\t\t\t\tthis.avgVolumes.datasets[0].data = volumes.map(x => Math.round(x.volume * 1000 / peopleInHousehold / au.moment(x.dateTo).diff(x.dateFrom, \"days\")));\r\n\t\t\t\tthis.refreshAvgChart = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDatesUsageFilter && !this.volumesDateFrom && volumes.length > 0) {\r\n\t\t\t\tthis.suppressVolumesDateFromChanged = true;\r\n\t\t\t\tthis.volumesDateFrom = au.moment(volumes[0].dateFrom).toDate();\r\n\t\t\t\tthis.suppressVolumesDateToChanged = true;\r\n\t\t\t\tthis.volumesDateTo = au.moment(volumes[volumes.length - 1].dateTo).toDate();\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.volumesLoading = false;\r\n\t\t}\r\n\t}\r\n\r\n\trefreshAvgChart: boolean;\r\n\tonChartTabSelected(e: CustomEvent) {\r\n\t\tif (this.avgChartVm && e.detail === \"#avg-tab\" && this.refreshAvgChart) {\r\n\t\t\tthis.refreshAvgChart = false;\r\n\t\t\tthis.taskQueue.queueTask(() => this.avgChartVm.refreshChart());\r\n\t\t}\r\n\t}\r\n\r\n\tattached() {\r\n\t\t// copy the height of the second chart to prevent scroll position jumping\r\n\t\t// it happens because browser does not know the real height of the chart when it is hidden\r\n\t\t// and scrolls down to the bottom of the page it assumes\r\n\t\tif (this.avgChart) {\r\n\t\t\tthis.taskQueue.queueTask(() => this.avgChart.style.height = `${this.totalChart.clientHeight}px`);\r\n\t\t}\r\n\t}\r\n\r\n\tasync getPdf(ih: app.InvoiceHeader) {\r\n\t\tthis.alertService.usingProgress(async () => {\r\n\t\t\tawait this.invoiceService.openPdf(ih.pk);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync requestPaymentExtension(): Promise {\r\n\t\tawait this.paymentService.requestPaymentExtension(this.balanceInfo);\r\n\t}\r\n\r\n\tasync showReceipt(p: app.AccountPayment): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.payment = await this.paymentClient.get(p.paymentId);\r\n\t\t\tthis.taskQueue.queueMicroTask(() => this.modal.open());\r\n\t\t}, e => this.alertService.error(\"Could not retrieve payment receipt\"));\r\n\t}\r\n\r\n\tshowPendingDDWarning() {\r\n\t\tthis.alertService.alert(this.i18n.tr(\"Account.DirectDebitPendingWarning\"), \"schedule\", \"orange\");\r\n\t}\r\n\r\n\tsavePayments() {\r\n\t\tthis.payments.forEach(x => {\r\n\t\t\tx.fullAccountNo = this.selectedAccount.fullAccountNo;\r\n\t\t\tx.fullAddress = this.selectedAccount.fullAddress;\r\n\t\t});\r\n\t\tthis.paymentService.savePayments(this.payments);\r\n\t}\r\n\r\n\tgetAccounts(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.value) {\r\n\t\t\treturn Promise.resolve([this.accounts.find(x => x.pkAccount === p.value.pkAccount)]);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet filter = p.filter ? p.filter.toUpperCase() : null;\r\n\t\t\treturn Promise.resolve(this.accounts.filter(x => !filter || x.fullAddress.toUpperCase().includes(filter) || x.fullAccountNo.includes(filter)));\r\n\t\t}\r\n\t}\r\n\r\n\tgetAccountName(a: app.AccountInfo) {\r\n\t\treturn `${a.fullAddress}, ${a.fullAccountNo}`;\r\n\t}\r\n\r\n\tgoToAccount() {\r\n\t\tthis.router.navigateToRoute(app.Route.account, { pkAccount: this.selectedAccount.pkAccount });\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#account #links{position:absolute;right:60px!important;z-index:101;background:#fff}#account #links ul{width:100px}#account section{margin-bottom:3em}#account .account-summary{box-shadow:none}#account .account-summary .card-content{padding:0}#account .account-summary span.account-status{display:none}#account .account-summary .actions a[md-button],#account .account-summary .actions button{margin-right:10px}#account .account-summary.closed a,#account .account-summary.closed span{color:grey!important}#account .account-summary.closed span.account-status.closed{display:inline}#account .account-summary.closed .next-reading{display:none}#account .account-summary.waiting-closure span.account-status.waiting-closure{display:inline;color:red}#account .account-summary.waiting-closure .next-reading{display:none}#account #invoices #invoice-click-hint{vertical-align:top}#account #invoices md-collection md-collection-item div.row{margin-bottom:0!important}#account #payments i.pending-dd{vertical-align:top}#account .next-reading.closed,#account .next-reading.waiting-closure{display:none}#account #water-use{position:relative}#account #water-use .bills-usage-filter{display:flex;align-items:baseline}#account #water-use .bills-usage-filter .md-select{width:100px}#account #water-use chart{width:100%;height:auto;display:block;margin-top:10px}#account .account-selector{position:relative;height:64px}#account .account-selector>div{position:fixed;left:0;width:100%;background:#fff;z-index:100}#account .account-selector>div .container{display:flex;align-items:center}#account .account-selector>div .container .input-field{margin-bottom:0}#account .account-selector>div .container md-lookup{margin-right:15px;flex:1}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class AdminDashboard {\r\n\tconstructor(private diagnosticsClient: app.DiagnosticsClient, private alertService: at.AlertService) { }\r\n\r\n\tversions: app.GetVersionsResponse;\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.versions = await this.diagnosticsClient.getVersions();\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".card-title date-range{font-size:medium}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\nexport class BaseWidget {\r\n\tconstructor(protected dateService: at.DateService) { }\r\n\trange: IDateRange = {};\r\n\tloading: boolean;\r\n\r\n\tloadDateRange(widgetName: string, range: IDateRange) {\r\n\t\tlet saved = window.localStorage.getItem(widgetName);\r\n\t\tif (saved) {\r\n\t\t\tlet r = JSON.parse(saved) as IDateRange;\r\n\t\t\trange.from = au.moment(r.from).toDate();\r\n\t\t\trange.to = au.moment(r.to).toDate();\r\n\t\t}\r\n\t\telse {\r\n\t\t\trange.to = this.dateService.now();\r\n\t\t\trange.from = au.moment(range.to).add(-1, \"month\").toDate();\r\n\t\t}\r\n\t}\r\n\r\n\tsaveDateRange(widgetName: string, range: IDateRange) {\r\n\t\twindow.localStorage.setItem(widgetName, JSON.stringify({ from: range.from.asUtc(), to: range.to.asUtc() }));\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class PageVisitsWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: { xAxes: [{ ticks: { suggestedMin: 0 } as Chart.LinearTickOptions }] }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"pageVisitsRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tlet response = await this.analyticsClient.getPageVisitCounts(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: { key: string, value: number }[] = [];\r\n\t\t\tfor (let k in response.pageVisits) {\r\n\t\t\t\tlabels.push(k);\r\n\t\t\t\tdata.push({ key: k, value: response.pageVisits[k] });\r\n\t\t\t}\r\n\t\t\tlet colours = [\r\n\t\t\t\tau.colors.palettes.green.base, au.colors.palettes.red.base, au.colors.palettes.grey.base, au.colors.palettes.purple.base, au.colors.palettes.indigo.base,\r\n\t\t\t\tau.colors.palettes.blue.base, au.colors.palettes.cyan.base, au.colors.palettes.yellow.base, au.colors.palettes.orange.base, au.colors.palettes.brown.base\r\n\t\t\t];\r\n\t\t\tdata.sort((a, b) => b.value - a.value);\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colours, hoverBorderColor: colours, data: data.map(x => x.value) }],\r\n\t\t\t\tlabels: data.map(x => x.key)\r\n\t\t\t};\r\n\r\n\t\t\tthis.saveDateRange(\"pageVisitsRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class PaymentsCountWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: {\r\n\t\t\tyAxes: [{ ticks: { callback: v => Math.floor(v) === v ? v : null } }]\r\n\t\t},\r\n\t\tplugins: { datalabels: { display: false } }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"paymentsCountRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tlet response = await this.analyticsClient.getPaymentCounts(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: number[] = [];\r\n\t\t\tfor (let k of response.payments) {\r\n\t\t\t\tlabels.push(`${k.month}/${k.year}`);\r\n\t\t\t\tdata.push(k.count);\r\n\t\t\t}\r\n\t\t\tlet colour = au.colors.palettes.pink.base;\r\n\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colour, borderColor: colour, data, fill: false }],\r\n\t\t\t\tlabels\r\n\t\t\t};\r\n\r\n\r\n\t\t\tthis.saveDateRange(\"paymentsCountRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class PaymentsWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: { yAxes: [{ ticks: { callback: v => v.toString() } }] },\r\n\t\tplugins: { datalabels: { display: false } }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"paymentsRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tlet response = await this.analyticsClient.getPaymentCounts(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: number[] = [];\r\n\t\t\tfor (let k of response.payments) {\r\n\t\t\t\tlabels.push(`${k.month}/${k.year}`);\r\n\t\t\t\tdata.push(k.amount);\r\n\t\t\t}\r\n\t\t\tlet colour = au.colors.palettes.orange.base;\r\n\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colour, borderColor: colour, data, fill: false }],\r\n\t\t\t\tlabels\r\n\t\t\t};\r\n\r\n\r\n\t\t\tthis.saveDateRange(\"paymentsRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class RegistrationsWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: { yAxes: [{ ticks: { callback: v => Math.floor(v) === v ? v : null } }] },\r\n\t\tplugins: { datalabels: { display: false } }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"registrationsRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tlet response = await this.analyticsClient.getMonthlyUserRegistrations(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: number[] = [];\r\n\t\t\tfor (let k of response.monthlyUserRegistrations) {\r\n\t\t\t\tlabels.push(`${k.month}/${k.year}`);\r\n\t\t\t\tdata.push(k.count);\r\n\t\t\t}\r\n\t\t\tlet colour = au.colors.palettes.blue.base;\r\n\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colour, borderColor: colour, data, fill: false }],\r\n\t\t\t\tlabels\r\n\t\t\t};\r\n\r\n\r\n\t\t\tthis.saveDateRange(\"registrationsRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class RunningRegistrationsWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: { yAxes: [{ ticks: { callback: v => Math.floor(v) === v ? v : null } }] },\r\n\t\tplugins: { datalabels: { display: false } }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"runningRegistrationsRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading= true;\r\n\t\t\tlet response = await this.analyticsClient.getRunningUserRegistrations(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: number[] = [];\r\n\t\t\tfor (let k of response.monthlyUserRegistrations) {\r\n\t\t\t\tlabels.push(`${k.month}/${k.year}`);\r\n\t\t\t\tdata.push(k.count);\r\n\t\t\t}\r\n\t\t\tlet colour = au.colors.palettes.green.base;\r\n\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colour, borderColor: colour, data, fill: false }],\r\n\t\t\t\tlabels\r\n\t\t\t};\r\n\r\n\r\n\t\t\tthis.saveDateRange(\"runningRegistrationsRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class WebRequestsWidget extends app.BaseWidget {\r\n\tconstructor(private analyticsClient: app.AnalyticsClient, dateService: at.DateService) {\r\n\t\tsuper(dateService);\r\n\t}\r\n\r\n\tdata: Chart.ChartData = { datasets: [], labels: [] };\r\n\toptions: Chart.ChartOptions = {\r\n\t\tresponsive: true,\r\n\t\tlegend: { display: false },\r\n\t\tscales: { xAxes: [{ ticks: { suggestedMin: 0 } as Chart.LinearTickOptions }] }\r\n\t};\r\n\r\n\tasync attached() {\r\n\t\tthis.loadDateRange(\"webRequestsRange\", this.range);\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tasync load() {\r\n\t\ttry {\r\n\t\t\tthis.loading = true;\r\n\t\t\tlet response = await this.analyticsClient.getWebRequestCounts(new app.GetStatisticsRequest({ from: this.range.from.asUtc(), to: this.range.to.asUtc() }))\r\n\r\n\t\t\tlet labels: string[] = [];\r\n\t\t\tlet data: number[] = [];\r\n\t\t\tfor (let k in response.webRequests) {\r\n\t\t\t\tlabels.push(k);\r\n\t\t\t\tdata.push(response.webRequests[k]);\r\n\t\t\t}\r\n\t\t\tlet colours = [\r\n\t\t\t\tau.colors.palettes.green.base, au.colors.palettes.red.base, au.colors.palettes.grey.base, au.colors.palettes.purple.base, au.colors.palettes.indigo.base,\r\n\t\t\t\tau.colors.palettes.blue.base, au.colors.palettes.cyan.base, au.colors.palettes.yellow.base, au.colors.palettes.orange.base, au.colors.palettes.brown.base\r\n\t\t\t];\r\n\r\n\t\t\tthis.data = {\r\n\t\t\t\tdatasets: [{ backgroundColor: colours, hoverBorderColor: colours, data }],\r\n\t\t\t\tlabels\r\n\t\t\t};\r\n\r\n\t\t\tthis.saveDateRange(\"webRequestsRange\", this.range);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.loading = false;\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","export class AgencyManager {\r\n}","module.exports = \"\";","export class Agent {\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class BalanceCheck {\r\n\tconstructor(validationControllerFactory: at.ValidationControllerFactory, private accountClient: app.AccountClient, private settingsService: app.SettingsService,\r\n\t\tprivate twAuthService: app.TwAuthService) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.validationController.validateTrigger = au.validateTrigger.manual;\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.accountNumber)\r\n\t\t\t/**/.required().withMessage(\"Account number not recognised. Please check that your account number is entered as it is displayed on your bill.\")\r\n\t\t\t/**/.satisfies(x => !this.accountNotRecognised).withMessage(\"Account number not recognised. Please check that your account number is entered as it is displayed on your bill.\")\r\n\t\t\t.on(BalanceCheck);\r\n\t}\r\n\r\n\texternalPaymentUrl: string;\r\n\tvalidationController: au.ValidationController;\r\n\tbusy: boolean;\r\n\terror: boolean;\r\n\taccountNotRecognised: boolean;\r\n\tbrowserSettings = this.settingsService.browserSettings;\r\n\r\n\taccountNumber: string;\r\n\r\n\t@au.observable\r\n\trawAccountNumber: string;\r\n\trawAccountNumberChanged() {\r\n\t\tthis.balance = null;\r\n\t\tthis.error = false;\r\n\t\tthis.accountNotRecognised = false;\r\n\t\tthis.validationController.reset();\r\n\t}\r\n\r\n\t@au.observable\r\n\tbalance: number = null;\r\n\tbalanceChanged() {\r\n\t\tlet url = this.settingsService.paymentSettings.externalPaymentUrl;\r\n\t\tif (url && this.accountNumber && this.balance > 0) {\r\n\t\t\tthis.externalPaymentUrl = url.replace(\"${account}\", this.accountNumber).replace(\"${amount}\", this.balance.toString());\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.externalPaymentUrl = null;\r\n\t\t}\r\n\t}\r\n\r\n\tactivate() {\r\n\t\tthis.twAuthService.authService.config.storageChangedReload = false;\r\n\t\tthis.twAuthService.authService.config.storageChangedRedirect = undefined;\r\n\t\tthis.twAuthService.authService.config.expiredRedirect = undefined;\r\n\t}\r\n\r\n\tasync go() {\r\n\t\tif (!(await this.validationController.validate()).valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.busy = true;\r\n\t\t\tthis.balance = await this.accountClient.getBalanceAnonymous(this.accountNumber);\r\n\t\t\tthis.accountNotRecognised = false;\r\n\t\t\tthis.error = false;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tvar ex = e as at.Exception;\r\n\t\t\tif (ex instanceof app.NotFoundException) {\r\n\t\t\t\tthis.balance = null;\r\n\t\t\t\tthis.accountNotRecognised = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.balance = null;\r\n\t\t\t\tthis.error = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.busy = false;\r\n\t\t}\r\n\t\tawait this.validationController.validate();\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"main>app-nav-bar{display:none}main>div.container{margin:0}footer{display:none!important}.balance-check-page #account{width:300px;display:inline-block}.balance-check-page #account .input-field{margin:0}.balance-check-page #account .input-field input{border:1px solid #0086c9!important;border-radius:8px;padding-left:8px}.balance-check-page #account .input-field input.invalid{box-shadow:none;border:1px solid #ee1c25!important;margin-bottom:30px!important}.balance-check-page #account .input-field input.valid,.balance-check-page #account .input-field input:focus{box-shadow:none}.balance-check-page #account .input-field span[data-error]{margin-top:-30px;margin-bottom:30px}.balance-check-page .button{background:#0086c9;border:none;border-radius:8px;color:#fff;font-weight:700}.balance-check-page .button:focus{background:rgba(0,134,201,.69)}.balance-check-page button{width:80px;height:42px}.balance-check-page a.button{padding:10px;margin:10px 0;display:inline-block}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class BulkCustomer {\r\n\tconstructor(private accountClient: app.AccountClient, private alertService: at.AlertService, private invoiceService: app.InvoiceService, private router: au.Router) {\r\n\t}\r\n\r\n\taccountSummaries: app.AccountBalanceInfo[] = [];\r\n\tRoutes = app.Route;\r\n\r\n\t@au.observable\r\n\tactiveOnly: boolean;\r\n\tasync activeOnlyChanged() {\r\n\t\tif (this.activated) {\r\n\t\t\tthis.load();\r\n\t\t}\r\n\t}\r\n\r\n\tactivated: boolean;\r\n\tasync activate() {\r\n\t\tthis.activeOnly = true;\r\n\t\tawait this.load();\r\n\t\tawait this.invoiceService.checkEBilling(this.accountSummaries);\r\n\t\tthis.activated = true;\r\n\t}\r\n\r\n\tasync load() {\r\n\t\treturn this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accountSummaries = await this.accountClient.getAccountSummaries(this.activeOnly, false);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tgoToAccount(a: app.AccountBalanceInfo) {\r\n\t\tthis.router.navigateToRoute(app.Route.account, { pkAccount: a.pkAccount });\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".bulk-customer-page .click-hint{vertical-align:top}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { EditAddress } from \"custom-elements/edit-address/edit-address\";\r\n\r\n@au.autoinject\r\nexport class ChangeAddress {\r\n\tconstructor(private userClient: app.UserClient, private alertService: at.AlertService, private router: au.Router, private i18n: au.I18N,\r\n\t\tprivate webRequestClient: app.WebRequestClient) { }\r\n\r\n\taddresses: app.IAddressesEx;\r\n\tstates: app.State[];\r\n\tresidentialVM: EditAddress;\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountInfo;\r\n\tselectedAccountChanged(newValue: app.AccountInfo) {\r\n\t\tthis.addresses.overrides.forEach(x => x.isSelected = (x.fkAccount === newValue.pkAccount));\r\n\t}\r\n\r\n\taddressTabs: au.MdTabs;\r\n\taddressTabsElement: Element;\r\n\tisTherePendingRequest: boolean;\r\n\r\n\tasync activate(): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.userClient.getAddresses().then(x => {\r\n\t\t\t\t\tthis.addresses = x;\r\n\t\t\t\t\tthis.addresses.residential.old = new app.ArAddress(this.addresses.residential);\r\n\t\t\t\t\tthis.addresses.postal.old = new app.ArAddress(this.addresses.postal);\r\n\t\t\t\t\tthis.addresses.overrides.forEach(y => { y.old = new app.ArAddress(y); y.isSelected = false; });\r\n\t\t\t\t}),\r\n\t\t\t\tthis.userClient.getStates().then(x => this.states = x),\r\n\t\t\t\tawait this.webRequestClient.isTherePendingRequest(null, WebRequestType.ChangeAddresses).then(x => this.isTherePendingRequest = x)\r\n\t\t\t]);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tif (!this.addresses.residential.isChanged) {\r\n\t\t\tthis.alertService.alert(\"You have not changed the address\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.addresses.residential.isChanged && !(await this.residentialVM.validationController.validate()).valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.userClient.changeAddress(new app.Addresses({\r\n\t\t\t\tresidential: this.addresses.residential.isChanged ? new app.ArAddress(this.addresses.residential) : null,\r\n\t\t\t\tpostal: null,\r\n\t\t\t\toverrides: []\r\n\t\t\t}));\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"ChangeAddresses.SubmitSuccess\"));\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"ChangeAddresses.SubmitError\")));\r\n\t}\r\n}\r\n","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ChangeCustomerDetails {\r\n\tconstructor(validationControllerFactory: at.ValidationControllerFactory, private userClient: app.UserClient, private alertService: at.AlertService,\r\n\t\tprivate webRequestClient: app.WebRequestClient, private i18n: au.I18N, private router: au.Router, private taskQueue: au.TaskQueue,\r\n\t\tprivate addressClient: app.AddressClient) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.po_box).required().when(x => this.isPoRequired())\r\n\t\t\t.ensure(x => x.po_suburb).required().when(x => this.isPoRequired())\r\n\t\t\t.ensure(x => x.fk_state_po).required().when(x => this.isPoRequired())\r\n\t\t\t.ensure(x => x.po_postcode).required().when(x => this.isPoRequired())\r\n\t\t\t.ensure(x => x.street_address_1).required().when(x => this.isAddress1Required())\r\n\t\t\t.ensure(x => x.suburb_1).required().when(x => this.isAddress1Required())\r\n\t\t\t.ensure(x => x.fk_state_1).required().when(x => this.isAddress1Required())\r\n\t\t\t.ensure(x => x.postcode_1).required().when(x => this.isAddress1Required())\r\n\t\t\t.ensure(x => x.street_address_2).required().when(x => this.isAddress2Required())\r\n\t\t\t.ensure(x => x.suburb_2).required().when(x => this.isAddress2Required())\r\n\t\t\t.ensure(x => x.fk_state_2).required().when(x => this.isAddress2Required())\r\n\t\t\t.ensure(x => x.postcode_2).required().when(x => this.isAddress2Required())\r\n\t\t\t.ensure(x => x.care_of).required().when(x => this.careOf)\r\n\t\t\t/**/.satisfies(x => /^((?![cC]\\/[oO-]).)*$/gm.test(x)).withMessage(\"must not contain C/O or C/-\")\r\n\t\t\t.rules;\r\n\t\tthis.vmRules = au.ValidationRules\r\n\t\t\t.ensure(x => x.address).required().when(x => x.addressLookup)\r\n\t\t\t.ensure(x => x.residentialAddress).required().when(x => !x.isResidential && x.residentialAddressLookup)\r\n\t\t\t.ensure(x => x.addressType).required().when(x => !x.addressLookup).withMessage(\"select the address type\")\r\n\t\t\t.rules;\r\n\t\tthis.cd = new app.WebRequestCustomerDetails();\r\n\t\tthis.validationController.addObject(this.cd, this.rules);\r\n\t\tthis.validationController.addObject(this, this.vmRules);\r\n\t}\r\n\r\n\tcd: app.WebRequestCustomerDetails;\r\n\tcareOf: boolean;\r\n\trawPhoneNumber: string;\r\n\trawHomePhoneNumber: string;\r\n\taddressLookup: boolean = true;\r\n\tresidentialAddressLookup: boolean = true;\r\n\r\n\t@au.observable\r\n\taddress: app.Address;\r\n\tasync addressChanged() {\r\n\t\tif (!this.address) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.address.detailsInSeparateCall) {\r\n\t\t\tthis.address = await this.addressClient.metadata(this.address.id);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.addressType = !!this.address.box_type ? \"pobox\" : \"street\";\r\n\t\t}\r\n\t}\r\n\r\n\tresidentialAddress: app.Address;\r\n\r\n\t@au.observable\r\n\taddressType: \"pobox\" | \"street\" | undefined = undefined;\r\n\taddressTypeChanged() {\r\n\t\tif (!this.cd) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.addressType === \"pobox\") {\r\n\t\t\tthis.clearAddress1();\r\n\t\t\tthis.isResidential = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.clearPoBox()\r\n\t\t}\r\n\r\n\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t}\r\n\r\n\tstates: app.State[];\r\n\r\n\t@au.observable\r\n\tisResidential: true | \"\" = true;\r\n\tisResidentialChanged() {\r\n\t\tif (this.cd && this.isResidential) {\r\n\t\t\tthis.clearAddress2();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic validationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\tvmRules: au.Rule[][];\r\n\tisTherePendingRequest: boolean;\r\n\r\n\tclearPoBox() {\r\n\t\tthis.cd.po_box = undefined;\r\n\t\tthis.cd.po_suburb = undefined;\r\n\t\tthis.cd.fk_state_po = undefined;\r\n\t\tthis.cd.po_postcode = undefined;\r\n\t}\r\n\r\n\tclearAddress1() {\r\n\t\tthis.cd.street_address_1 = undefined;\r\n\t\tthis.cd.suburb_1 = undefined;\r\n\t\tthis.cd.fk_state_1 = undefined;\r\n\t\tthis.cd.postcode_1 = undefined;\r\n\t}\r\n\r\n\tclearAddress1Lookup() {\r\n\t\tthis.address = undefined;\r\n\t\tthis.addressType = undefined;\r\n\t}\r\n\r\n\tclearAddress2() {\r\n\t\tthis.cd.street_address_2 = undefined;\r\n\t\tthis.cd.suburb_2 = undefined;\r\n\t\tthis.cd.fk_state_2 = undefined;\r\n\t\tthis.cd.postcode_2 = undefined;\r\n\t\tthis.residentialAddress = undefined;\r\n\t}\r\n\r\n\tisPoRequired(): boolean {\r\n\t\treturn !this.addressLookup && this.addressType === \"pobox\";\r\n\t}\r\n\r\n\tisAddress1Required(): boolean {\r\n\t\treturn !this.addressLookup && this.addressType === \"street\";\r\n\t}\r\n\r\n\tisAddress2Required(): boolean {\r\n\t\treturn !this.residentialAddressLookup && !this.isResidential;\r\n\t}\r\n\r\n\tasync activate(): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.userClient.getStates().then(x => this.states = x),\r\n\t\t\t\tawait this.webRequestClient.isTherePendingRequest(null, WebRequestType.ChangeCustomerDetails).then(x => this.isTherePendingRequest = x)\r\n\t\t\t]);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tlet res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (this.address) {\r\n\t\t\t\tif (this.address.detailsInSeparateCall) {\r\n\t\t\t\t\tthis.address = await this.addressClient.metadata(this.address.id);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.address.box_type) {\r\n\t\t\t\t\tthis.cd.po_postcode = parseInt(this.address.postCode);\r\n\t\t\t\t\tthis.cd.fk_state_po = this.address.state;\r\n\t\t\t\t\tthis.cd.po_suburb = this.address.suburb;\r\n\t\t\t\t\tthis.cd.po_box = this.address.streetAddress.substring(0, this.address.streetAddress.lastIndexOf(\",\"));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.cd.postcode_1 = parseInt(this.address.postCode);\r\n\t\t\t\t\tthis.cd.fk_state_1 = this.address.state;\r\n\t\t\t\t\tthis.cd.suburb_1 = this.address.suburb;\r\n\t\t\t\t\tthis.cd.street_address_1 = this.address.streetAddress.substring(0, this.address.streetAddress.lastIndexOf(\",\"));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.residentialAddress) {\r\n\t\t\t\tif (this.residentialAddress.detailsInSeparateCall) {\r\n\t\t\t\t\tthis.residentialAddress = await this.addressClient.metadata(this.residentialAddress.id);\r\n\t\t\t\t}\r\n\t\t\t\tthis.cd.postcode_2 = parseInt(this.residentialAddress.postCode);\r\n\t\t\t\tthis.cd.fk_state_2 = this.residentialAddress.state;\r\n\t\t\t\tthis.cd.suburb_2 = this.residentialAddress.suburb;\r\n\t\t\t\tthis.cd.street_address_2 = this.residentialAddress.streetAddress.substring(0, this.residentialAddress.streetAddress.lastIndexOf(\",\"));\r\n\t\t\t}\r\n\t\t\tawait this.webRequestClient.submitChangeCustomerDetails(new app.WebRequest({ customerDetails: this.cd, pk: 0, guid: null, dateRequested: null }));\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"ChangeCustomerDetails.SubmitSuccess\"));\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"ChangeCustomerDetails.SubmitError\")));\r\n\t}\r\n\r\n\tgetAddresses = (criteria: au.ILookupOptionsFunctionParameter): Promise => {\r\n\t\tif (criteria.filter !== undefined) {\r\n\t\t\tif (criteria.filter === \"\") {\r\n\t\t\t\treturn Promise.resolve([]);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn this.addressClient.autocomplete(criteria.filter);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve([criteria.value]);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleAddressLookup() {\r\n\t\tthis.addressLookup = !this.addressLookup;\r\n\t\tthis.clearAddress1();\r\n\t\tthis.clearAddress1Lookup();\r\n\t}\r\n\r\n\ttoggleResidentialAddressLookup() {\r\n\t\tthis.residentialAddressLookup = !this.residentialAddressLookup;\r\n\t\tthis.clearAddress2();\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".change-customer-details-page .contact-details i{vertical-align:bottom}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ChangeEmail {\r\n\r\n\tconstructor(private authService: app.IAuthService, private userClient: app.UserClient, private router: au.Router) { }\r\n\r\n\tsuccess: boolean;\r\n\r\n\tasync activate(params: app.IChangeEmailRequest, routeConfig: au.RouteConfig): Promise {\r\n\t\ttry {\r\n\t\t\tawait this.userClient.changeEmail(new app.ChangeEmailRequest(params));\r\n\t\t\tawait this.authService.logout(true);\r\n\t\t\tthis.success = true;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ChangeName {\r\n\tconstructor(private userClient: app.UserClient, private alertService: at.AlertService, validationControllerFactory: at.ValidationControllerFactory,\r\n\t\tprivate router: au.Router, private settingsService: app.SettingsService, private i18n: au.I18N, private webRequestClient: app.WebRequestClient) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.surname).required().when(x => !x.isOrganisation).maxLength(40)\r\n\t\t\t.ensure(x => x.otherNames).required().when(x => !x.isOrganisation).maxLength(80)\r\n\t\t\t.ensure(x => x.organisationName).required().when(x => x.isOrganisation).maxLength(80)\r\n\t\t\t.ensure(x => x.files)\r\n\t\t\t/**/.satisfies(x => !x.find(y => !this.settingsService.isFileAllowed(y.fileName))).withMessage(\"not allowed file selected\")\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\tuserOld: app.UserInfo;\r\n\tmaxFileSize = this.settingsService.browserSettings.maxFileSize;\r\n\tfiles: at.IFileRow[] = [];\r\n\tsurname: string;\r\n\totherNames: string;\r\n\torganisationName: string;\r\n\tisOrganisation: boolean;\r\n\tisTherePendingRequest: boolean;\r\n\tallowedExtensions = this.settingsService.browserSettings.allowedFileExtensions;\r\n\r\n\tasync activate() {\r\n\t\ttry {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.userClient.getSelf().then(x => {\r\n\t\t\t\t\tthis.surname = x.surname;\r\n\t\t\t\t\tthis.otherNames = x.otherNames;\r\n\t\t\t\t\tthis.organisationName = x.aquaRateOrganisationName;\r\n\t\t\t\t\tthis.userOld = new app.UserInfo(x)\r\n\t\t\t\t}),\r\n\t\t\t\tawait this.webRequestClient.isTherePendingRequest(null, WebRequestType.ChangeName).then(x => this.isTherePendingRequest = x)\r\n\t\t\t]);\r\n\t\t\tthis.isOrganisation = !!this.organisationName;\r\n\t\t\tthis.validationController.addObject(this, this.rules);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Error occurred while loading the page\");\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tasync submit(): Promise {\r\n\t\tconst res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.isOrganisation && this.surname === this.userOld.surname && this.otherNames === this.userOld.otherNames\r\n\t\t\t|| this.isOrganisation && this.organisationName === this.userOld.aquaRateOrganisationName) {\r\n\t\t\tthis.alertService.error(\"You have not changed the names\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.files.length > this.settingsService.browserSettings.maxFilesPerRequest) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileCountError\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.files.find(x => x.isTooBig)) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileSizeError\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.userClient.changeName(\r\n\t\t\t\tthis.isOrganisation ? undefined : this.surname,\r\n\t\t\t\tthis.isOrganisation ? undefined : this.otherNames,\r\n\t\t\t\tthis.isOrganisation ? this.organisationName : undefined,\r\n\t\t\t\tthis.files.map(x => ({ data: x.file, fileName: `${x.fileName}` })));\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"ChangeName.SubmitSuccess\"));\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"ChangeName.SubmitError\")));\r\n\t}\r\n\r\n\tfilesChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"files\" });\r\n\t}\r\n}\r\n","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".change-name files{margin-top:15px}.change-name files>button{margin-bottom:15px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Concession {\r\n\tconstructor(private webRequestClient: app.WebRequestClient, private validationControllerFactory: at.ValidationControllerFactory, private alertService: at.AlertService,\r\n\t\tprivate router: au.Router, private i18n: au.I18N, private dateService: at.DateService, private accountClient: app.AccountClient,\r\n\t\tprivate authService: app.IAuthService, private taskQueue: au.TaskQueue) {\r\n\t\tthis.validationController = this.validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.selectedAccount).required()\r\n\t\t\t/**/.satisfies(x => !x || !x.concessionApplied).withMessage(this.i18n.tr(\"Concession.ConcessionAppliedError\"))\r\n\t\t\t.ensure(x => x.consentGiven).satisfies(x => x).withMessage(this.i18n.tr(\"Concession.ConsentError\"))\r\n\t\t\t.ensure(x => x.isResident).satisfies(x => x).withMessage(this.i18n.tr(\"Concession.NotResidentError\"))\r\n\t\t\t.ensure(x => x.isNameCorrect).satisfies(x => x).withMessage(this.i18n.tr(\"Concession.NotCorrectNameError\"))\r\n\t\t\t.ensure(x => x.pensionNo).required()\r\n\t\t\t/**/.satisfies(x => !x || this.pensionNoRegExp.test(x))\r\n\t\t\t.ensure(x => x.pensionStartDate).required()\r\n\t\t\t/**/.satisfies(async x => !x || au.moment(x).isBefore(await this.dateService.getServerDate())).withMessage(\"cannot be in the future\")\r\n\t\t\t.rules;\r\n\t\tthis.validationController.addObject(this, this.rules);\r\n\t\tthis.validationController.subscribe(e => {\r\n\t\t\tconst selectedAccountResults = e.results.filter(x => x.propertyName === \"selectedAccount\")\r\n\t\t\tthis.selectedAccountValid = !!selectedAccountResults.length && !selectedAccountResults.find(x => !x.valid);\r\n\t\t});\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\taccounts: app.AccountBalanceInfo[];\r\n\tpensionTypes: app.PensionType[];\r\n\r\n\t@au.observable\r\n\tpensionType: app.PensionType;\r\n\tpensionTypeChanged() {\r\n\t\tthis.updatePensionNoRegExp();\r\n\t\tthis.pensionNo = undefined;\r\n\t\tthis.taskQueue.queueTask(() => this.validationController.reset({ object: this, propertyName: \"pensionNo\" }));\r\n\t}\r\n\r\n\tcardholderName: string;\r\n\tpensionNo: string;\r\n\tpensionStartDate: Date;\r\n\tpensionNoRegExp: RegExp;\r\n\tconsentGiven: boolean;\r\n\tisResident: boolean;\r\n\tisNameCorrect: boolean;\r\n\tisTherePendingRequest: boolean;\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountBalanceInfo;\r\n\tasync selectedAccountChanged() {\r\n\t\tthis.isTherePendingRequest = await this.webRequestClient.isTherePendingRequest(this.selectedAccount.pkAccount, WebRequestType.Concession);\r\n\t}\r\n\tselectedAccountValid: boolean;\r\n\r\n\tupdatePensionNoRegExp() {\r\n\t\tif (!this.pensionType || this.pensionType.code === \"H\" || this.pensionType.code === \"S\") {\r\n\t\t\tthis.pensionNoRegExp = /[0-9]{9}[a-zA-Z]/;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.pensionNoRegExp = /^[0-9]{3}$|^[0-9]{9}[a-zA-Z]$|^[TVNQSW][a-zA-Z][a-zA-Z0-9]([a-zA-Z0-9](\\d(\\d(\\d([a-zA-Z0-9]?[a-zA-Z]?)?)?)?)?)?$/;\r\n\t\t}\r\n\t}\r\n\r\n\tasync canActivate(): Promise {\r\n\t\treturn await this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = await this.accountClient.getAccountSummaries(true, true);\r\n\t\t\tif (!this.accounts.length) {\r\n\t\t\t\tawait this.alertService.alert(\"You don't have accounts eligible for concession.\", \"warning\", \"orange\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if (this.accounts.length === 1) {\r\n\t\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t\t}\r\n\t\t}, async e => { await this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e); return false; });\r\n\t}\r\n\r\n\tbind() {\r\n\t\tif (this.selectedAccount) {\r\n\t\t\tthis.validationController.validate({ object: this, propertyName: \"selectedAccount\" });\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate(params: IHaveId) {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (params && params.id) {\r\n\t\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t\t}\r\n\t\t\tthis.pensionTypes = await this.webRequestClient.getPensionTypes();\r\n\t\t\tthis.cardholderName = this.authService.getTokenPayload().given_name + \" \" + this.authService.getTokenPayload().family_name;\r\n\t\t\tthis.updatePensionNoRegExp();\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tlet res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\tawait this.alertService.error(\"Please correct the invalid fields\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!await this.alertService.confirm(\"Are you sure you would like to submit this Concession application?\", \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet wrc = new app.WebRequestConcession({\r\n\t\t\t\tfk_pension_type: this.pensionType.code,\r\n\t\t\t\tpension_no: this.pensionNo,\r\n\t\t\t\tpension_start_date: this.pensionStartDate.asUtc(),\r\n\t\t\t\tpk: 0,\r\n\t\t\t\tfk_web_request: 0\r\n\t\t\t});\r\n\t\t\tlet request = new app.WebRequest({ fkAccount: this.selectedAccount.pkAccount, concession: wrc, pk: 0, guid: null, dateRequested: null });\r\n\t\t\tawait this.webRequestClient.submitConcession(request);\r\n\t\t\tawait this.alertService.alert(app.Strings.webRequestSuccess);\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.criticalError(\"Error occurred while submitting the concession application\", e));\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ConfirmEmail {\r\n\r\n\tconstructor(private authService: app.IAuthService, private userClient: app.UserClient, private router: au.Router) { }\r\n\r\n\tsuccess: boolean;\r\n\r\n\tasync activate(params: app.IEmailConfirmationRequest, routeConfig: au.RouteConfig): Promise {\r\n\t\tawait this.authService.logout(true);\r\n\t\ttry {\r\n\t\t\tawait this.userClient.confirmEmail(new app.EmailConfirmationRequest(params));\r\n\t\t\tthis.success = true;\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Conveyancer extends app.PaginatedBase {\r\n\tconstructor(private webRequestClient: app.WebRequestClient, alertService: at.AlertService, private router: au.Router,\r\n\t\tprivate dataStorageService: app.DataStorageService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\trequests: app.InfoStatementWebRequestInfo[]\r\n\tstatuses: app.WebRequestStatus[];\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.infoStatementsFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.infoStatementsFilterLines = value;\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.statuses = await this.webRequestClient.getStatuses();\r\n\t\t\tif (this.savedFilterLines && this.savedFilterLines.length) {\r\n\t\t\t\tthis.filterLines = this.savedFilterLines;\r\n\t\t\t}\r\n\t\t\tawait this.search();\r\n\t\t\tthis.isActivated = true;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet response = await this.webRequestClient.getLastInfoStatementRequests(request);\r\n\t\tthis.requests = response.items;\r\n\t\treturn response;\r\n\t}\r\n\r\n\topen(wr: app.InfoStatementWebRequestInfo) {\r\n\t\tthis.router.navigateToRoute(app.Route.infoStatement, { guid: wr.guid } as IHaveGuid);\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Customer {\r\n\tconstructor(private accountClient: app.AccountClient, private invoiceService: app.InvoiceService, private alertService: at.AlertService,\r\n\t\tprivate i18n: au.I18N, private dateService: at.DateService, private paymentService: app.PaymentService, private settingsService: app.SettingsService) {\r\n\t}\r\n\r\n\taccountSummaries: app.AccountBalanceInfo[];\r\n\tRoutes = app.Route;\r\n\tshowInvoice = !!this.i18n.tr(\"Customer.LatestInvoiceLabel\");\r\n\tserverDate: Date;\r\n\tisViewAccountVisible = !!this.i18n.tr(\"Customer.ViewAccount\");\r\n\r\n\t@au.observable\r\n\tactiveOnly: boolean;\r\n\tasync activeOnlyChanged() {\r\n\t\tif (this.activated) {\r\n\t\t\tthis.load();\r\n\t\t}\r\n\t}\r\n\r\n\tasync canActivate() {\r\n\t\tif (await this.accountClient.getAccountsCount() >= this.settingsService.browserSettings.bulkCustomer.bulkCustomerThreshold) {\r\n\t\t\treturn new au.RedirectToRoute(app.Route.bulkCustomer);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tactivated: boolean;\r\n\tasync activate() {\r\n\t\tthis.activeOnly = true;\r\n\t\tawait this.load();\r\n\t\tawait this.invoiceService.checkEBilling(this.accountSummaries);\r\n\t\tthis.activated = true;\r\n\t}\r\n\r\n\tasync load() {\r\n\t\treturn this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.accountClient.getAccountSummaries(this.activeOnly, false).then(x => this.accountSummaries = x),\r\n\t\t\t\tthis.dateService.getServerDate().then(x => this.serverDate = x)\r\n\t\t\t]);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tgetLastInvoice(a: app.AccountBalanceInfo) {\r\n\t\tthis.alertService.usingProgress(async () => {\r\n\t\t\tawait this.invoiceService.openPdf(a.lastInvoice.pk);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync requestPaymentExtension(balanceInfo: app.AccountBalanceInfo): Promise {\r\n\t\tawait this.paymentService.requestPaymentExtension(balanceInfo);\r\n\t}\r\n\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".customer-page .account-summary{margin-top:0;margin-bottom:25px}.customer-page .account-summary span.account-status{display:none}.customer-page .account-summary.closed a.address,.customer-page .account-summary.closed span{color:grey!important}.customer-page .account-summary.closed span.account-status.closed{display:inline}.customer-page .account-summary.closed .next-reading{display:none}.customer-page .account-summary.waiting-closure span.account-status.waiting-closure{display:inline;color:red}.customer-page .account-summary.waiting-closure .next-reading{display:none}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class DirectDebit {\r\n\tconstructor(private webRequestClient: app.WebRequestClient, private validationControllerFactory: at.ValidationControllerFactory, private alertService: at.AlertService,\r\n\t\tprivate router: au.Router, private accountClient: app.AccountClient, private i18n: au.I18N, private dateService: at.DateService,\r\n\t\tprivate invoiceClient: app.InvoiceClient, private settingsService: app.SettingsService, private validator: au.Validator) {\r\n\t\tthis.validationController = this.validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.bsb).required()\r\n\t\t\t.ensure(x => x.account).required()\r\n\t\t\t.ensure(x => x.accountTitle).required().maxLength(32)\r\n\t\t\t.ensure(x => x.debtOption).required().when(x => this.displayOptions)\r\n\t\t\t.ensure(x => x.confirmed).satisfies(x => x).withMessage(\"tick to confirm\")\r\n\t\t\t.ensure(x => x.holder1).required().maxLength(80)\r\n\t\t\t.ensure(x => x.holder2).required().when(x => x.jointAccount).maxLength(80)\r\n\t\t\t.ensure(x => x.selectedAccount).required().then()\r\n\t\t\t/**/.satisfies(x => !x.isClosed && x.isConnected).withMessage(\"must not be closed\")\r\n\t\t\t/**/.satisfies(x => !x.payArrangement).withMessage(\"\")\r\n\t\t\t.ensure(x => x.processingDate).required().when(x => this.processingDateRequired && x.debtOption && x.debtOption.code === \"O\")\r\n\t\t\t.then().satisfies(async x => {\r\n\t\t\t\tlet now = au.moment(await this.dateService.getServerDate());\r\n\t\t\t\treturn au.moment(x).isAfter(now) && au.moment(x).isBefore(now.add(14, \"days\"));\r\n\t\t\t}).withMessage(\"must be in the following 14 days\").when(x => this.processingDateRequired && x.debtOption && x.debtOption.code === \"O\")\r\n\t\t\t.rules;\r\n\t\tthis.validationController.addObject(this, this.rules);\r\n\t\tthis.validationController.subscribe(async e => {\r\n\t\t\tconst result = await this.validator.validateObject(this, this.rules);\r\n\t\t\tthis.canSubmit = result.every(x => x.valid);\r\n\t\t});\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\taccounts: app.AccountBalanceInfo[];\r\n\tallDebtOptions: app.WebRequestDebtOption[];\r\n\tdebtOptions: app.WebRequestDebtOption[];\r\n\tshowWarning: boolean = !!this.i18n.tr(\"DirectDebit.OverdueBillWarning\");\r\n\tjointAccount: boolean = false;\r\n\tlastBankDetails: app.GetLastDirectDebitBankDetailsResponse;\r\n\tprocessingDateRequired = this.settingsService.browserSettings.directDebit.processingDateRequired;\r\n\tdisplayOptions: boolean;\r\n\tisPaymentExtension: boolean;\r\n\tisPaymentArrangement: boolean;\r\n\tcanSubmit: boolean;\r\n\tisTherePendingRequest: boolean;\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountBalanceInfo;\r\n\tasync selectedAccountChanged() {\r\n\t\tconst type = await this.webRequestClient.getDirectDebitType(this.selectedAccount.pkAccount);\r\n\t\tthis.displayOptions = this.selectedAccount && this.selectedAccount.amount > 0 && type !== \"I\" && this.selectedAccount.balanceStatus !== app.BalanceStatus.SmallOverdue;\r\n\t\tthis.isPaymentArrangement = this.selectedAccount && this.selectedAccount.payArrangement && this.selectedAccount.payArrangement.fkPayFrequency !== \"I\" /* In Full */;\r\n\t\tthis.isPaymentExtension = this.selectedAccount && this.selectedAccount.payArrangement && this.selectedAccount.payArrangement.fkPayFrequency === \"I\" /* In Full */;\r\n\t\tthis.isTherePendingRequest = await this.webRequestClient.isTherePendingRequest(this.selectedAccount.pkAccount, WebRequestType.DirectDebit);\r\n\t\tthis.debtOption = null;\r\n\t\tthis.updateDebtOptions();\r\n\t}\r\n\r\n\tbankName: string;\r\n\tbsb: string;\r\n\taccount: string;\r\n\taccountTitle: string;\r\n\r\n\t@au.observable\r\n\tdebtOption: app.WebRequestDebtOption = null;\r\n\tdebtOptionChanged() {\r\n\t\tif (this.validationController) {\r\n\t\t\tthis.validationController.validate({ propertyName: \"processingDate\", object: this })\r\n\t\t}\r\n\t}\r\n\r\n\tprocessingDate: Date = null;\r\n\tholder1: string;\r\n\tholder2: string;\r\n\tconfirmed: boolean;\r\n\r\n\tasync canActivate(): Promise {\r\n\t\treturn await this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = await this.accountClient.getAccountSummaries(true, false);\r\n\t\t\tif (!this.accounts.length) {\r\n\t\t\t\tawait this.alertService.alert(\"You don't have Direct Debit eligible accounts.\", \"warning\", \"orange\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if (this.accounts.length === 1) {\r\n\t\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t\t}\r\n\t\t}, async e => { await this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e); return false; });\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.webRequestClient.getDebtOptions().then(x => this.allDebtOptions = x),\r\n\t\t\t\tthis.webRequestClient.getLastDirectDebitBankDetails().then(x => this.lastBankDetails = x)\r\n\t\t\t]);\r\n\t\t\tthis.updateDebtOptions();\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tvalidateDebtOption() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"debtOption\" });\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tlet res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\tlet invalidText = document.querySelector(\".input-field span.helper-text[data-error]\") as HTMLSpanElement;\r\n\t\t\tif (invalidText) {\r\n\t\t\t\tinvalidText.scrollIntoView();\r\n\t\t\t\twindow.scrollBy(0, -150);\r\n\t\t\t}\r\n\t\t\tawait this.alertService.error(\"Please correct the invalid fields\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!await this.alertService.confirm(\"Are you sure you would like to submit this Direct Debit application?\", \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet dd = new app.WebRequestDirectDebit({\r\n\t\t\t\tbankName: this.bankName, bsbNo: this.bsb, accountNo: this.account, processingDate: this.processingDate ? this.processingDate.asUtc() : null,\r\n\t\t\t\taccountTitle: this.accountTitle, fkDebtOption: this.debtOption ? this.debtOption.code : null, accountHolder1: this.holder1, accountHolder2: this.holder2, pk: 0, fkWebRequest: 0\r\n\t\t\t});\r\n\t\t\tlet request = new app.WebRequest({ fkAccount: this.selectedAccount ? this.selectedAccount.pkAccount : null, directDebit: dd, pk: 0, guid: null, dateRequested: null });\r\n\t\t\tawait this.webRequestClient.submitDirectDebit(request);\r\n\t\t\tawait this.alertService.alert(app.Strings.webRequestSuccess);\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.error(\"Error occurred while submitting the direct debit application\"));\r\n\t}\r\n\r\n\tasync prefill() {\r\n\t\tthis.bsb = this.lastBankDetails.bsbNo;\r\n\t\tthis.account = this.lastBankDetails.accountNo;\r\n\t\tthis.accountTitle = this.lastBankDetails.accountTitle;\r\n\t}\r\n\r\n\tasync updateDebtOptions() {\r\n\t\tif (!this.allDebtOptions) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst isOverdue = this.selectedAccount\r\n\t\t\t&& (this.selectedAccount.balanceStatus === app.BalanceStatus.Overdue\r\n\t\t\t\t|| this.selectedAccount.balanceStatus === app.BalanceStatus.PaymentArrangement\r\n\t\t\t\t&& this.selectedAccount.lastInvoice\r\n\t\t\t\t&& au.moment(await this.dateService.getServerDate()).isAfter(this.selectedAccount.lastInvoice.dateDue));\r\n\t\tthis.debtOptions = this.allDebtOptions.filter(x => x.code === \"N\" || x.code === \"Y\" && !isOverdue || x.code === \"O\" && isOverdue);\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".direct-debit-page #debt-option datepicker{display:inline-block;margin-top:-10px}.direct-debit-page #debt-option datepicker .input-field{margin-top:0!important;margin-bottom:0!important}.direct-debit-page #debt-option datepicker .input-field input{margin:0!important}.direct-debit-page #debt-option datepicker .input-field .helper-text{margin-top:-4px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\nexport abstract class EditBase {\r\n\tconstructor(protected alertService: at.AlertService, protected validationControllerFactory: at.ValidationControllerFactory, protected authService: app.IAuthService) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t}\r\n\r\n\tisChanged: boolean = false;\r\n\tid: string;\r\n\tvalidationController: au.ValidationController;\r\n\tisSaving: boolean;\r\n\tisReverting: boolean;\r\n\tisDeleting: boolean;\r\n\r\n\tasync activate(params: IHaveId, routeConfig: au.RouteConfig): Promise {\r\n\t\tthis.id = params.id;\r\n\t\tawait this.revert();\r\n\t}\r\n\r\n\tasync canDeactivate(): Promise {\r\n\t\tif (this.isChanged && await this.authService.isAuthenticatedAsync()) {\r\n\t\t\tlet response = await this.alertService.confirm(\"You have unsaved changes. Would you like to leave the page?\");\r\n\t\t\tthis.isChanged = !response; // reset the flag so that redirects do not trigger the message again\r\n\t\t\treturn response;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tchanged() {\r\n\t\tthis.isChanged = true;\r\n\t}\r\n\r\n\tasync abstract load(id: string);\r\n\r\n\tasync abstract saveInternal(): Promise;\r\n\r\n\tasync save() {\r\n\t\tlet errors = await this.validationController.validate();\r\n\t\tif (!errors.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.id = await this.saveInternal();\r\n\t\t\tthis.isChanged = false;\r\n\t\t}, e => this.alertService.error(e.message ? e.message : \"Error occurred while saving changes\"))\r\n\t}\r\n\r\n\tasync revert() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.isReverting = true;\r\n\t\t\tawait this.load(this.id);\r\n\t\t\tthis.validationController.reset();\r\n\t\t\tthis.isChanged = false;\r\n\t\t}, e => this.alertService.error(\"Error occurred while loading the page\"))\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\nclass OrganisationExt extends app.Organisation2 {\r\n\tabnRaw?: string;\r\n}\r\n\r\n@au.autoinject\r\nexport class EditOrganisation extends app.EditBase {\r\n\tconstructor(private organisationClient: app.OrganisationClient, alertService: at.AlertService, private eventAggregator: au.EventAggregator,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory, authService: app.IAuthService) {\r\n\t\tsuper(alertService, validationControllerFactory, authService);\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.name).required().maxLength(80)\r\n\t\t\t.ensure(x => x.abn).required().withMessage(\"must include 11 digits.\").when(x => !!x.abnRaw)\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\trules: au.Rule<{}, any>[][];\r\n\torganisation: OrganisationExt;\r\n\r\n\tasync load(id: string) {\r\n\t\tif (this.organisation) {\r\n\t\t\tthis.validationController.removeObject(this.organisation);\r\n\t\t}\r\n\t\tif (id) {\r\n\t\t\tthis.organisation = await this.organisationClient.get(parseInt(id));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.organisation = new OrganisationExt();\r\n\t\t}\r\n\t\tthis.organisation.abnRaw = this.organisation.abn;\r\n\t\tthis.validationController.addObject(this.organisation, this.rules);\r\n\t}\r\n\r\n\tasync saveInternal(): Promise {\r\n\t\tvar o = await this.organisationClient.post(this.organisation);\r\n\t\tthis.organisation.id = o.id;\r\n\t\tthis.organisation.timestamp = o.timestamp;\r\n\t\treturn o.id.toString();\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\ndeclare module \"aurelia-materialize-bridge/dist/commonjs/augmentation/element\" {\r\n\tinterface IElementAu {\r\n\t\t\"settings-editor\": IController;\r\n\t}\r\n}\r\n\r\n@au.autoinject\r\nexport class EditSettings {\r\n\tconstructor(private settingsClient: app.SettingsClient, private alertService: at.AlertService, private authService: app.IAuthService) { }\r\n\r\n\tinfo: app.SettingInfo;\r\n\teditor: any;\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet response = await this.settingsClient.getDynamicSettings();\r\n\t\t\tthis.info = response.info;\r\n\t\t}, e => this.alertService.error(e));\r\n\t}\r\n\r\n\tasync canDeactivate() {\r\n\t\tvar settings = this.editor.settings as at.SettingVM[];\r\n\t\tif (!settings || !await this.authService.isAuthenticatedAsync()) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tlet editedInput: HTMLElement;\r\n\t\tfor (var s of settings) {\r\n\t\t\teditedInput = this.isSettingVMEdited(s);\r\n\t\t\tif (editedInput) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (editedInput) {\r\n\t\t\tif (!await this.alertService.confirm(\"Would you like to cancel unsaved changes and leave the page?\", \"warning\", \"orange\")) {\r\n\t\t\t\teditedInput.focus();\r\n\t\t\t\teditedInput.scrollIntoView();\r\n\t\t\t\t// adjust for header hight\r\n\t\t\t\twindow.scrollBy(0, -70);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tisSettingVMEdited(s: at.SettingVM): HTMLElement {\r\n\t\tif (s.isEdited) {\r\n\t\t\tlet input = (s.variantEditor.querySelector(\"input,textarea\") as HTMLElement);\r\n\t\t\treturn input;\r\n\t\t}\r\n\t\telse if (s.isObject) {\r\n\t\t\tvar editorVM = s.editor.au[\"settings-editor\"].viewModel;\r\n\t\t\tvar settings = editorVM.settings as at.SettingVM[];\r\n\t\t\tif (settings) {\r\n\t\t\t\tfor (var x of settings) {\r\n\t\t\t\t\tlet input = this.isSettingVMEdited(x);\r\n\t\t\t\t\tif (input) {\r\n\t\t\t\t\t\tif (!s.isExpanded) {\r\n\t\t\t\t\t\t\ts.toggleExpanded();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn input;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tasync save(s: at.SettingVM) {\r\n\t\tawait s.save(async (key, value) => {\r\n\t\t\tawait this.settingsClient.updateDynamicSetting(new app.UpdateDynamicSettingRequest({ key, value }));\r\n\t\t});\r\n\t}\r\n\r\n\thistories: app.SettingHistory[];\r\n\thistoryModal: au.MdModal;\r\n\tasync history(s: at.SettingVM) {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.histories = await this.settingsClient.getHistory(s.key);\r\n\t\t\tthis.historyModal.open();\r\n\t\t}, e => this.alertService.error(e));\r\n\t}\r\n\r\n\tinputs: HTMLTextAreaElement[] = [];\r\n\tcopy(input: HTMLTextAreaElement) {\r\n\t\tinput.select();\r\n\t\tdocument.execCommand(\"copy\");\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".edit-settings .value-history{display:flex;align-items:center;flex-direction:row}.edit-settings .value-history span{flex:1}.edit-settings .value-history textarea{position:absolute!important;left:-2000px!important}\", \"\"]);\n","export class TrimLongValueConverter {\r\n\ttoView(value: string, length: number): string {\r\n\t\treturn (!value || value.length < length) ? value : value.substr(0, length) + \"...\";\r\n\t}\r\n\r\n\tfromView(value: string): number {\r\n\t\tthrow new Error(\"Not implemented\");\r\n\t}\r\n}","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class EditUser extends app.EditBase {\r\n\tconstructor(private userClient: app.UserClient, alertService: at.AlertService, private eventAggregator: au.EventAggregator,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory, private accountClient: app.AccountClient, authService: app.IAuthService,\r\n\t\tprivate emailClient: app.EmailClient, private msalService: app.MsalService, private dateService: at.DateService, private roleClient: app.RoleClient,\r\n\t\tprivate taskQueue: au.TaskQueue) {\r\n\t\tsuper(alertService, validationControllerFactory, authService);\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.otherNames).required().maxLength(80)\r\n\t\t\t.ensure(x => x.phoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"04\")).withMessage(\"must start with 04\")\r\n\t\t\t/**/.satisfies(x => !this.rawPhoneNumber || !!x).withMessage(\"must have 10 digits\")\r\n\t\t\t.ensure(x => x.homePhoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"0\")).withMessage(\"must start with an area code\")\r\n\t\t\t/**/.satisfies(x => !this.rawHomePhoneNumber || !!x).withMessage(\"must have 10 digits and start with an area code\")\r\n\t\t\t.ensure(x => x.surname).required().maxLength(80)\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tuser: app.UserInfo;\r\n\tstatuses: app.StatusInfo[] = [];\r\n\taccounts: app.AccountInfo[] = [];\r\n\taccountsLoading: boolean;\r\n\trules: au.Rule<{}, any>[][];\r\n\troleView: string;\r\n\tisB2CEnabled: boolean;\r\n\tisLocked: boolean;\r\n\tcanChangeStatus: boolean;\r\n\tcanResetPassword: boolean = true;\r\n\trawPhoneNumber: string;\r\n\trawHomePhoneNumber: string;\r\n\troles: app.Role[];\r\n\trole: app.Role;\r\n\r\n\t@au.computedFrom(\"user.otherNames\", \"user.surname\")\r\n\tget title() {\r\n\t\treturn `${this.user.otherNames} ${this.user.surname}`;\r\n\t}\r\n\r\n\taccountToLink: app.AccountInfo;\r\n\r\n\tasync load(id: string) {\r\n\t\tif (this.user) {\r\n\t\t\tthis.validationController.removeObject(this.user);\r\n\t\t}\r\n\t\tlet r = await Promise.all([\r\n\t\t\tthis.userClient.get(id).then(x => this.user = x),\r\n\t\t\tthis.userClient.getStatuses().then(x => this.statuses = x),\r\n\t\t\tthis.loadAccounts(id).then(x => this.accounts = x),\r\n\t\t\tthis.dateService.getServerDate(),\r\n\t\t\tthis.roleClient.getInternal()\r\n\t\t]);\r\n\t\tthis.isLocked = !this.isB2CEnabled && this.user.lockoutEnd && au.moment(this.user.lockoutEnd).isAfter(r[3]);\r\n\t\tthis.roleView = this.user.role.name.toLowerCase().replace(' ', '-');\r\n\t\tthis.isB2CEnabled = this.msalService.isEnabled();\r\n\t\tlet currentUserRole = this.authService.getTokenPayload().role;\r\n\t\tthis.canChangeStatus = (currentUserRole === app.Roles.admin || currentUserRole === app.Roles.supervisor) && this.user.canUpdate;\r\n\t\tthis.canResetPassword = this.user.status === app.Status.Active && this.user.canUpdate;\r\n\t\tthis.validationController.addObject(this.user, this.rules);\r\n\t\tconst internalRoles = r[4];\r\n\t\tconst role = internalRoles.find(x => x.id === this.user.role.id);\r\n\t\tif (role && currentUserRole === app.Roles.admin) {\r\n\t\t\tthis.roles = internalRoles;\r\n\t\t\tthis.role = role;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.roles = [this.user.role];\r\n\t\t\tthis.role = this.user.role;\r\n\t\t}\r\n\t}\r\n\r\n\tasync loadAccounts(userId: string): Promise {\r\n\t\ttry {\r\n\t\t\tthis.accountsLoading = true;\r\n\t\t\treturn await this.accountClient.userAccounts(userId);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.accountsLoading = false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync saveInternal(): Promise {\r\n\t\tvar u = await this.userClient.patch(new app.PatchUserRequest({\r\n\t\t\temail: this.user.email,\r\n\t\t\tid: this.user.id,\r\n\t\t\tstatus: this.user.status,\r\n\t\t\ttimestamp: this.user.timestamp,\r\n\t\t\tphoneNumber: this.user.phoneNumber,\r\n\t\t\thomePhoneNumber: this.user.homePhoneNumber,\r\n\t\t\trole: this.role.name\r\n\t\t}));\r\n\t\tthis.user.id = u.id;\r\n\t\tthis.user.timestamp = u.timestamp;\r\n\t\tif (u.id === this.authService.getTokenPayload().userid) {\r\n\t\t\tthis.eventAggregator.publish(app.Events.profileChanged);\r\n\t\t}\r\n\t\tthis.canResetPassword = this.user.status === app.Status.Active;\r\n\t\treturn u.id;\r\n\t}\r\n\r\n\tasync sendResetPassword() {\r\n\t\tif (this.isChanged) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!await this.alertService.confirm(\"Are you sure you would like to send a reset password link to this user?\", \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.emailClient.sendResetPasswordEmail(this.user.email);\r\n\t\t\tthis.alertService.alert(\"The link has been sent\");\r\n\t\t}, e => this.alertService.error(\"Error occurred while sending the link\"));\r\n\t}\r\n\r\n\tasync unlock() {\r\n\t\tif (!await this.alertService.confirm(\"Are you sure you would like to unlock this account?\", \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.userClient.unlock(this.user.id);\r\n\t\t\tawait this.load(this.user.id);\r\n\t\t}, e => this.alertService.error(\"Error occurred while resetting the counter\"));\r\n\t}\r\n\r\n}","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".edit-user-page #search-progress{position:absolute;left:100%;transform:translateX(-150%)}.edit-user-page #accounts-container{position:relative}.edit-user-page #accounts-container #progress-background{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.7;background:#fff}.edit-user-page #accounts-container md-progress{position:absolute;left:50%;top:50%;transform:translateX(-50%) translateY(-50%)}\", \"\"]);\n","module.exports = \"\";","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class EmailInvoices {\r\n\tconstructor(private userClient: app.UserClient, private alertService: at.AlertService, validationControllerFactory: at.ValidationControllerFactory,\r\n\t\tprivate router: au.Router, private settingsService: app.SettingsService, private i18n: au.I18N, private accountClient: app.AccountClient, private authService: app.IAuthService) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.selectedAccount).required()\r\n\t\t\t.then().satisfies(x => !x.isClosed && x.isConnected).withMessage(\"must not be closed\")\r\n\t\t\t.then().satisfies(async x => !await this.userClient.isTherePendingEmailInvoicesRequest(x.pkAccount)).withMessage(this.i18n.tr(\"Error.WebRequestAlreadySumbmitted\"))\r\n\t\t\t.then().satisfies(async x => !await this.userClient.isInvoicePrintTypeEmail(x.pkAccount)).withMessage(this.i18n.tr(\"EmailInvoices.AlreadySetup\"))\r\n\t\t\t.on(EmailInvoices);\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\taccounts: app.AccountInfo[];\r\n\tselectedAccount: app.AccountInfo;\r\n\ttoken: at.ITokenPayload;\r\n\r\n\tasync canActivate(params: IHaveId) {\r\n\t\treturn await this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = (await this.accountClient.index()).filter(x => !x.isClosed && x.isConnected && x.fkAccountStatus !== app.AccountStatus.WaitingForClosure);\r\n\t\t\tif (!this.accounts.length) {\r\n\t\t\t\tawait this.alertService.alert(this.i18n.tr(\"EmailInvoices.NoEligibleAccounts\"), \"warning\", \"orange\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (params && params.id) {\r\n\t\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t\t\tif (!this.selectedAccount) {\r\n\t\t\t\t\tawait this.alertService.alert(\"This account is not eligible\", \"warning\", \"orange\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.accounts.length === 1 && !this.selectedAccount) {\r\n\t\t\t\tif (await this.userClient.isTherePendingEmailInvoicesRequest(this.accounts[0].pkAccount)) {\r\n\t\t\t\t\tawait this.alertService.alert(this.i18n.tr(\"EmailInvoices.PendingApplication\"), \"warning\", \"orange\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (await this.userClient.isInvoicePrintTypeEmail(this.accounts[0].pkAccount)) {\r\n\t\t\t\t\tawait this.alertService.alert(this.i18n.tr(\"EmailInvoices.AlreadySetupDialog\"), \"warning\", \"orange\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t\t}\r\n\t\t\tthis.token = this.authService.getTokenPayload();\r\n\t\t}, async e => { await this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e); return false; });\r\n\t}\r\n\r\n\tasync submit(): Promise {\r\n\t\tif (!(await this.validationController.validate()).valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!await this.alertService.confirm(this.i18n.tr(\"EmailInvoices.Confirmation\"), \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.userClient.emailInvoices(this.selectedAccount.pkAccount);\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"EmailInvoices.SubmitSuccess\"));\r\n\t\t\tif (this.accounts.length === 1) {\r\n\t\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t\t}\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"EmailInvoices.SubmitError\")));\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Expired {\r\n\tconstructor(private eventAggregator: au.EventAggregator, private authService: app.IAuthService, private msalService: app.MsalService,\r\n\t\tprivate router: au.Router) {\r\n\r\n\t}\r\n\r\n\tasync canActivate() {\r\n\t\tif (await this.authService.isAuthenticatedAsync()) {\r\n\t\t\treturn new au.RedirectToRoute(app.Route.home);\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\t// this will force routes update\r\n\t\tawait this.eventAggregator.publish(\"authentication-change\");\r\n\t}\r\n\r\n\tlogin() {\r\n\t\tif (this.msalService.isEnabled()) {\r\n\t\t\tthis.msalService.login();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.router.navigateToRoute(app.Route.login);\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class Farewell {\r\n\tconstructor(private settingsService: app.SettingsService) {\r\n\t\tthis.settings = settingsService.browserSettings;\r\n\t}\r\n\r\n\tsettings: app.BrowserSettings;\r\n}","module.exports = \"\";","export class Forbidden {\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Home {\r\n\tconstructor(private authService: app.IAuthService, private settingsService: app.SettingsService) {\r\n\t\tthis.settings = this.settingsService.browserSettings;\r\n\t}\r\n\r\n\tsettings: app.BrowserSettings;\r\n\r\n\tasync canActivate(params: any, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tif (!await this.authService.isAuthenticatedAsync()) {\r\n\t\t\treturn new au.RedirectToRoute(app.Route.login);\r\n\t\t}\r\n\t\tlet token = this.authService.getTokenPayload();\r\n\t\tswitch (token.role) {\r\n\t\t\tcase app.Roles.admin:\r\n\t\t\tcase app.Roles.supervisor:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.adminDashboard);\r\n\t\t\tcase app.Roles.staff:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.users);\r\n\t\t\tcase app.Roles.businessCustomer:\r\n\t\t\tcase app.Roles.residentialCustomer:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.customer);\r\n\t\t\tcase app.Roles.agent:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.agent);\r\n\t\t\tcase app.Roles.agencyManager:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.agencyManager);\r\n\t\t\tcase app.Roles.conveyancer:\r\n\t\t\t\treturn new au.RedirectToRoute(app.Route.conveyancer);\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { InfoStatementPorg } from \"custom-elements/info-statement-porg/info-statement-porg\";\r\nimport { InfoStatementTitle } from \"custom-elements/info-statement-title/info-statement-title\";\r\nimport { CreditCard } from \"custom-elements/credit-card/credit-card\";\r\n\r\ninterface IFileRowEx extends at.IFileRow {\r\n\tpk?: number;\r\n\trowid?: string;\r\n}\r\n\r\n@au.autoinject\r\nexport class InfoStatement {\r\n\tconstructor(validationControllerFactory: at.ValidationControllerFactory, private alertService: at.AlertService, private webRequestClient: app.WebRequestClient,\r\n\t\tprivate router: au.Router, private propertyClient: app.PropertyClient, private settingsService: app.SettingsService, private paymentClient: app.PaymentClient,\r\n\t\tprivate paymentService: app.PaymentService, private taskQueue: au.TaskQueue, private i18n: au.I18N) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.requestRules = au.ValidationRules\r\n\t\t\t.ensure(x => x.fkProperty).required().when(x => this.addressLookup)\r\n\t\t\t.rules;\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.fk_unit_type).required().when(x => !this.addressLookup && !!x.unit_no)\r\n\t\t\t.ensure(x => x.unit_no).maxLength(12)\r\n\t\t\t.ensure(x => x.street_no).required().when(x => !this.addressLookup).maxLength(12)\r\n\t\t\t.ensure(x => x.street).required().when(x => !this.addressLookup).maxLength(80)\r\n\t\t\t.ensure(x => x.fk_street_suffix).required().when(x => !this.addressLookup)\r\n\t\t\t.ensure(x => x.fk_suburb).required().when(x => !this.addressLookup)\r\n\t\t\t.ensure(x => x.solicitor_ref).required()\r\n\t\t\t.ensure(x => x.date_settling).required()\r\n\t\t\t.rules;\r\n\t\tthis.logger = au.getLogger(\"InfoStatement\");\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\tdetailsTab: string = \"detailsTab\";\r\n\ttitlesTab: string = \"titlesTab\";\r\n\townersTab: string = \"ownersTab\";\r\n\tpurchasersTab: string = \"purchasersTab\";\r\n\tpaymentTab: string = \"paymentTab\";\r\n\tvalidationController: au.ValidationController;\r\n\trequest: app.SubmitInfoStatementRequest;\r\n\trules: au.Rule[][];\r\n\trequestRules: au.Rule[][];\r\n\tisReadonly: boolean;\r\n\tunitTypes: app.UnitType[];\r\n\tfeeTypes: app.WebRequestFeeType[];\r\n\tporgTypes: app.PorgType[];\r\n\tplanTypes: app.PlanType[];\r\n\tparishes: app.Parish[];\r\n\tstreetSuffixes: app.StreetSuffix[];\r\n\tsuburbs: app.Suburb[];\r\n\taddressLookup: boolean = true;\r\n\tmaxFileSize = this.settingsService.browserSettings.maxFileSize;\r\n\tfiles: IFileRowEx[] = [];\r\n\towners: app.WebRequestInfoStmtPorg[];\r\n\townerVMs: InfoStatementPorg[] = [];\r\n\tpurchasers: app.WebRequestInfoStmtPorg[];\r\n\tpurchaserVMs: InfoStatementPorg[] = [];\r\n\ttitleVMs: InfoStatementTitle[] = [];\r\n\tisPaymentRequired: boolean;\r\n\tlastPayment: app.Payment;\r\n\tcanPay: boolean;\r\n\tpaymentStatus: IPaymentStatusSummary;\r\n\tsurcharges: app.Surcharge[];\r\n\r\n\ttabs: au.MdTabs;\r\n\ttabsElement: Element;\r\n\tsettings = this.settingsService.browserSettings;\r\n\tallowedExtensions = this.settingsService.browserSettings.allowedFileExtensions;\r\n\r\n\ttokenData: PayWay.ITokenData;\r\n\tcreditCard: CreditCard;\r\n\r\n\tdetermineActivationStrategy() {\r\n\t\treturn au.activationStrategy.invokeLifecycle;\r\n\t}\r\n\r\n\tasync activate(params: IHaveGuid, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.propertyClient.getUnitTypes().then(x => this.unitTypes = x),\r\n\t\t\t\tthis.webRequestClient.getFeeTypes().then(x => this.feeTypes = x),\r\n\t\t\t\tthis.webRequestClient.getPorgTypes().then(x => this.porgTypes = x),\r\n\t\t\t\tthis.webRequestClient.getPlanTypes().then(x => this.planTypes = x),\r\n\t\t\t\tthis.webRequestClient.getParishes().then(x => this.parishes = x),\r\n\t\t\t\tthis.propertyClient.getStreetSuffixes().then(x => this.streetSuffixes = x),\r\n\t\t\t\tthis.propertyClient.getSuburbs().then(x => this.suburbs = x),\r\n\t\t\t\tthis.webRequestClient.isInfoStatementPaymentRequired().then(x => this.isPaymentRequired = x),\r\n\t\t\t\tthis.paymentClient.getSurcharges().then(x => this.surcharges = x)\r\n\t\t\t]);\r\n\t\t\tif (params.guid) {\r\n\t\t\t\tlet wr: app.WebRequest;\r\n\t\t\t\tawait Promise.all([\r\n\t\t\t\t\tawait this.webRequestClient.getInfoStatementRequest(params.guid).then(x => wr = x),\r\n\t\t\t\t\tawait this.paymentClient.getLastInfoStatementPayment(params.guid).then(x => this.setLastPayment(x))\r\n\t\t\t\t]);\r\n\t\t\t\tthis.request = new app.SubmitInfoStatementRequest(wr);\r\n\t\t\t\tthis.files = this.request.attachments.map(x => ({ fileName: x.fileName, pk: x.pk, rowid: x.rowid }));\r\n\t\t\t\tthis.isReadonly = wr.fkRequestStatus !== WebRequestStatus.Incomplete; // Only incomplete can be edited\r\n\t\t\t\tthis.addressLookup = !!this.request.fkProperty;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.request = app.SubmitInfoStatementRequest.fromJS({\r\n\t\t\t\t\tInfoStatement: {\r\n\t\t\t\t\t\tPorgs: [{ Owner_flag: true, isSelected: true }, { isSelected: true }],\r\n\t\t\t\t\t\tTitles: [{ isSelected: true }]\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.files = [];\r\n\t\t\t\tthis.isReadonly = false;\r\n\t\t\t\tthis.addressLookup = true;\r\n\t\t\t}\r\n\t\t\tthis.canPay = this.isPaymentRequired && this.paymentService.canMakeAnotherPayment(this.lastPayment);\r\n\t\t\tthis.owners = this.request.infoStatement.porgs.filter(x => x.owner_flag);\r\n\t\t\tthis.purchasers = this.request.infoStatement.porgs.filter(x => !x.owner_flag);\r\n\t\t\tif (!this.isReadonly) {\r\n\t\t\t\tthis.validationController.addObject(this.request.infoStatement, this.rules);\r\n\t\t\t\tthis.validationController.addObject(this.request, this.requestRules);\r\n\t\t\t}\r\n\t\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t\t}, e => this.alertService.error(e.message));\r\n\t}\r\n\r\n\tgetProperties(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.filter !== undefined) {\r\n\t\t\treturn this.propertyClient.find(p.filter);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn p.value ? this.propertyClient.getPropertyInfo(p.value).then(x => [x]) : Promise.resolve([]);\r\n\t\t}\r\n\t}\r\n\r\n\tgetUnitTypes(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.filter !== undefined) {\r\n\t\t\treturn Promise.resolve(this.unitTypes.filter(x => x.description.toUpperCase().includes(p.filter.toUpperCase())));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(p.value ? this.unitTypes.filter(x => x.code === p.value) : []);\r\n\t\t}\r\n\t}\r\n\r\n\tgetStreetSuffixes(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.filter !== undefined) {\r\n\t\t\treturn Promise.resolve(this.streetSuffixes.filter(x => x.description.toUpperCase().includes(p.filter.toUpperCase())));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(p.value ? this.streetSuffixes.filter(x => x.code === p.value) : []);\r\n\t\t}\r\n\t}\r\n\r\n\tgetSuburbs(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.filter !== undefined) {\r\n\t\t\treturn Promise.resolve(this.suburbs.filter(x => (x.description.toUpperCase() + x.postcode.toString()).includes(p.filter.toUpperCase())));\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(p.value ? this.suburbs.filter(x => x.code === p.value) : []);\r\n\t\t}\r\n\t}\r\n\r\n\tsuburbToString(suburb: app.Suburb) {\r\n\t\treturn `${suburb.description}, ${suburb.postcode}`;\r\n\t}\r\n\r\n\ttoggleAddressLookup() {\r\n\t\tthis.addressLookup = !this.addressLookup;\r\n\t\tif (!this.addressLookup) {\r\n\t\t\tthis.request.fkProperty = undefined;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.request.infoStatement.fk_unit_type = this.request.infoStatement.unit_no = this.request.infoStatement.street_no = this.request.infoStatement.street\r\n\t\t\t\t= this.request.infoStatement.fk_street_suffix = this.request.infoStatement.fk_suburb = this.request.infoStatement.post_code = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\tasync validateDetails(): Promise {\r\n\t\tlet requestResult = (await this.validationController.validate({ object: this.request, rules: this.requestRules })).valid;\r\n\t\tlet result = (await this.validationController.validate({ object: this.request.infoStatement, rules: this.rules })).valid;\r\n\t\tif (!result || !requestResult) {\r\n\t\t\tthis.alertService.error(\"Please correct the errors\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (this.files.length === 0) {\r\n\t\t\tthis.alertService.error(\"Please add a property title\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (this.files.length > this.settingsService.browserSettings.maxFilesPerRequest) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileCountError\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.files.find(x => x.isTooBig)) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileSizeError\"));\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (this.files.find(x => !this.settingsService.isFileAllowed(x.fileName))) {\r\n\t\t\tthis.alertService.error(\"Not allowed file selected\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\tasync detailsNext() {\r\n\t\tif (await this.validateDetails()) {\r\n\t\t\tthis.selectTab(this.titlesTab);\r\n\t\t}\r\n\t}\r\n\r\n\ttitlesBack() {\r\n\t\tthis.selectTab(this.detailsTab);\r\n\t}\r\n\r\n\tasync validateTitles(): Promise {\r\n\t\tif (this.request.infoStatement.titles.length === 0) {\r\n\t\t\tthis.alertService.error(\"Please add at least one title\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet results = await Promise.all(this.titleVMs.map(x => x.validationController.validate()));\r\n\t\tif (results.find(x => !x.valid)) {\r\n\t\t\tthis.alertService.error(\"Please correct the errors\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet emptyTitle = this.request.infoStatement.titles.find(x => !x.volume_no && !x.folio_no && !x.lot_no && !x.crown_allotment && !x.section);\r\n\t\tif (emptyTitle) {\r\n\t\t\tthis.alertService.error(\"The title is empty\");\r\n\t\t\tthis.selectTitle(emptyTitle);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tasync titlesNext() {\r\n\t\tif (await this.validateTitles()) {\r\n\t\t\tthis.selectTab(this.ownersTab);\r\n\t\t}\r\n\t}\r\n\r\n\townersBack() {\r\n\t\tthis.selectTab(this.titlesTab);\r\n\t}\r\n\r\n\tasync validateOwners(): Promise {\r\n\t\tif (this.owners.length === 0) {\r\n\t\t\tthis.alertService.error(\"Please add at least one owner\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet results = await Promise.all(this.ownerVMs.map(x => x.validationController.validate()));\r\n\t\tif (results.find(x => !x.valid)) {\r\n\t\t\tthis.alertService.error(\"Please correct the errors\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tasync ownersNext() {\r\n\t\tif (await this.validateOwners()) {\r\n\t\t\tthis.selectTab(this.purchasersTab);\r\n\t\t}\r\n\t}\r\n\r\n\tpurchasersBack() {\r\n\t\tthis.selectTab(this.ownersTab);\r\n\t}\r\n\r\n\tasync validatePurchasers(): Promise {\r\n\t\tif (this.purchasers.length === 0) {\r\n\t\t\tthis.alertService.error(\"Please add at least one purchaser\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet results = await Promise.all(this.purchaserVMs.map(x => x.validationController.validate()));\r\n\t\tif (results.find(x => !x.valid)) {\r\n\t\t\tthis.alertService.error(\"Please correct the errors\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tasync purchasersNext() {\r\n\t\tif (this.isReadonly) {\r\n\t\t\tthis.selectTab(this.paymentTab);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tawait this.save(true);\r\n\t\t}\r\n\t}\r\n\r\n\tpaymentBack() {\r\n\t\tthis.selectTab(this.purchasersTab);\r\n\t}\r\n\r\n\tasync save(submit: boolean) {\r\n\t\tif (submit) {\r\n\t\t\tif (!await this.validateDetails()) {\r\n\t\t\t\tthis.selectTab(this.detailsTab);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!await this.validateTitles()) {\r\n\t\t\t\tthis.selectTab(this.titlesTab);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!await this.validateOwners()) {\r\n\t\t\t\tthis.selectTab(this.ownersTab);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!await this.validatePurchasers()) {\r\n\t\t\t\tthis.selectTab(this.purchasersTab);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!await this.alertService.confirm(\"You will not be able to alter the request after submission. Continue?\")) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.request.infoStatement.porgs = this.owners.concat(this.purchasers);\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tthis.request.submit = submit;\r\n\t\t\t// resend existing attachment infos\r\n\t\t\tthis.request.attachments = this.files.filter(x => !!x.pk).map(x => app.WebRequestAttachment.fromJS({ Pk: x.pk, FileName: x.fileName, Rowid: x.rowid }));\r\n\t\t\tlet response = await this.webRequestClient.submitInfoStatement(JSON.stringify(this.request), this.files.filter(x => !x.pk).map(x => ({ data: x.file, fileName: x.fileName })));\r\n\t\t\tthis.request.guid = response.guid;\r\n\t\t\tthis.request.rowid = response.rowid;\r\n\r\n\t\t\tif (submit) {\r\n\t\t\t\tif (!this.isPaymentRequired) {\r\n\t\t\t\t\tawait this.submitted();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.selectTab(this.paymentTab);\r\n\t\t\t\t\tthis.isReadonly = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.refresh();\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"InfoStatement.SubmitError\"));\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\t}\r\n\r\n\tasync submitted() {\r\n\t\tthis.alertService.hideProgress();\r\n\t\tawait this.alertService.alert(this.i18n.tr(\"InfoStatement.SubmitSuccess\"), \"done\", \"green\");\r\n\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t}\r\n\r\n\trefresh() {\r\n\t\tthis.router.navigateToRoute(app.Route.infoStatement, { guid: this.request.guid }, { replace: true });\r\n\t}\r\n\r\n\tasync pay() {\r\n\t\tlet tokenData: app.IPaymentTokenInfo;\r\n\t\ttry {\r\n\t\t\ttokenData = await this.creditCard.getPaymentTokenInfo();\r\n\t\t\tthis.logger.debug(\"tokenData\", tokenData);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Please make sure credit card details are correct\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.alertService.showProgress();\r\n\r\n\t\ttry {\r\n\t\t\tif (await this.paymentClient.doIndeterminateInfoStatementPaymentsExist(this.request.guid) &&\r\n\t\t\t\t!await this.alertService.confirm(\"Possible duplicate payment attempt. Would you like to continue?\", \"warning\", \"orange\")) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet payment = await this.paymentClient.takeInfoStatementPayment(new app.TakeInfoStatementPaymentRequest({\r\n\t\t\t\twebRequestGuid: this.request.guid,\r\n\t\t\t\tpaymentTokenInfo: new app.PaymentTokenInfo({\r\n\t\t\t\t\ttoken: tokenData.token,\r\n\t\t\t\t\tcardholderName: tokenData.cardholderName,\r\n\t\t\t\t\tcardScheme: tokenData.cardScheme,\r\n\t\t\t\t\tmaskedCardNumber: tokenData.maskedCardNumber,\r\n\t\t\t\t\tsurchargePercentage: tokenData.surchargePercentage\r\n\t\t\t\t})\r\n\t\t\t}));\r\n\t\t\tthis.setLastPayment(payment);\r\n\t\t\tswitch (payment.status) {\r\n\t\t\t\tcase app.PaymentStatus.Approved: await this.submitted(); break;\r\n\t\t\t\tdefault: this.refresh();\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(e.message);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\t}\r\n\r\n\tselectTab(tab: string) {\r\n\t\tif (!this.isReadonly) {\r\n\t\t\tdocument.querySelector(`#${tab}-header`).classList.remove(\"disabled\");\r\n\t\t}\r\n\t\tthis.tabs.select(tab);\r\n\t\tif (!this.isReadonly) {\r\n\t\t\tdocument.querySelector(`#${tab}-header`).classList.add(\"disabled\");\r\n\t\t}\r\n\r\n\t\t// bring headers into view\r\n\t\tthis.tabsElement.scrollIntoView();\r\n\t\tvar scrolledY = window.scrollY;\r\n\r\n\t\tif (scrolledY) {\r\n\t\t\twindow.scroll(0, scrolledY - au.DOM.querySelector(\"md-navbar>div\").clientHeight);\r\n\t\t}\r\n\t}\r\n\r\n\tunselectTitle() {\r\n\t\tthis.request.infoStatement.titles.forEach(x => (x).isSelected = false);\r\n\t}\r\n\r\n\tunselectOwner() {\r\n\t\tthis.owners.forEach(x => (x).isSelected = false);\r\n\t}\r\n\r\n\tunselectPurchaser() {\r\n\t\tthis.purchasers.forEach(x => (x).isSelected = false);\r\n\t}\r\n\r\n\tselectTitle(t: app.WebRequestInfoStmtTitle) {\r\n\t\tthis.unselectTitle();\r\n\t\t(t).isSelected = true;\r\n\t\t// this is needed to make checkboxes work\r\n\t\treturn true;\r\n\t}\r\n\r\n\tselectOwner(p: app.WebRequestInfoStmtPorg) {\r\n\t\tthis.unselectOwner();\r\n\t\t(p).isSelected = true;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tselectPurchaser(p: app.WebRequestInfoStmtPorg) {\r\n\t\tthis.unselectPurchaser();\r\n\t\t(p).isSelected = true;\r\n\t\treturn true;\r\n\t}\r\n\r\n\taddTitle() {\r\n\t\tthis.unselectTitle();\r\n\t\tlet t = new app.WebRequestInfoStmtTitle();\r\n\t\t(t).isSelected = true;\r\n\t\tthis.request.infoStatement.titles.push(t);\r\n\t}\r\n\r\n\tremoveTitle(t: app.WebRequestInfoStmtTitle) {\r\n\t\tthis.request.infoStatement.titles.splice(this.request.infoStatement.titles.indexOf(t), 1);\r\n\t\tthis.validationController.removeObject(t);\r\n\t}\r\n\r\n\taddOwner() {\r\n\t\tthis.unselectOwner();\r\n\t\tlet p = app.WebRequestInfoStmtPorg.fromJS({ Owner_flag: true });\r\n\t\t(p).isSelected = true;\r\n\t\tthis.owners.push(p);\r\n\t}\r\n\r\n\tremoveOwner(p: app.WebRequestInfoStmtPorg) {\r\n\t\tthis.owners.splice(this.owners.indexOf(p), 1);\r\n\t}\r\n\r\n\taddPurchaser() {\r\n\t\tthis.unselectPurchaser();\r\n\t\tlet p = new app.WebRequestInfoStmtPorg();\r\n\t\t(p).isSelected = true;\r\n\t\tthis.purchasers.push(p);\r\n\t}\r\n\r\n\tremovePurchaser(p: app.WebRequestInfoStmtPorg) {\r\n\t\tthis.purchasers.splice(this.purchasers.indexOf(p), 1);\r\n\t}\r\n\r\n\tsetLastPayment(p: app.Payment) {\r\n\t\tthis.lastPayment = p;\r\n\t\tif (p) {\r\n\t\t\tthis.paymentStatus = this.paymentService.getStatusSummary(p);\r\n\t\t}\r\n\t}\r\n\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"@media(min-width:601px){.info-statement #settle-date{width:160px}}.info-statement #payment-status{margin-bottom:20px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\ndeclare module \"../../services/api\" {\r\n\t// tslint:disable:interface-name\r\n\tinterface InvoiceHeader {\r\n\t\tfullAccountNo?: string;\r\n\t\tfullAddress?: string;\r\n\t}\r\n\t// tslint:enable:interface-name\r\n}\r\n\r\n@au.autoinject\r\nexport class Invoices extends app.PaginatedBase {\r\n\tconstructor(private accountClient: app.AccountClient, alertService: at.AlertService, private dataStorageService: app.DataStorageService,\r\n\t\tprivate invoiceClient: app.InvoiceClient, private invoiceService: app.InvoiceService, private taskQueue: au.TaskQueue, private settingsService: app.SettingsService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.invoicesFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.invoicesFilterLines = value;\r\n\t}\r\n\r\n\taccounts: app.AccountInfo[];\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountInfo;\r\n\tselectedAccountChanged() {\r\n\t\tif (this.isActivated) {\r\n\t\t\tthis.search();\r\n\t\t}\r\n\t}\r\n\r\n\tinvoices: app.InvoiceHeader[];\r\n\tshowInvoiceDates = this.settingsService.browserSettings.account.showInvoiceDates;\r\n\tdateFormat = this.settingsService.browserSettings.dateFormat;\r\n\tcolourInvoices = this.settingsService.browserSettings.account.colourInvoices;\r\n\r\n\tasync activate(params: IHaveId): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = await this.accountClient.index();\r\n\t\t\tif (params && params.id) {\r\n\t\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t\t}\r\n\t\t\tthis.taskQueue.queueTask(() => this.search());\r\n\t\t\tthis.isActivated = true;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet fi = new app.FilterItem();\r\n\t\tfi.name = \"Account\";\r\n\t\tfi.operator = app.FilterOperator.Is;\r\n\t\tfi.value = this.selectedAccount ? this.selectedAccount.pkAccount : null;\r\n\t\trequest.filterItems.push(fi);\r\n\t\tlet response = await this.invoiceClient.getInvoices(request);\r\n\t\tthis.invoices = response.items;\r\n\t\tthis.invoices.forEach(x => {\r\n\t\t\tlet a = this.accounts.find(y => y.pkAccount === x.fkAccount);\r\n\t\t\tx.fullAccountNo = a.fullAccountNo;\r\n\t\t\tx.fullAddress = a.fullAddress;\r\n\t\t});\r\n\t\treturn response;\r\n\t}\r\n\r\n\tasync getPdf(ih: app.InvoiceHeader) {\r\n\t\tthis.alertService.usingProgress(async () => {\r\n\t\t\tawait this.invoiceService.openPdf(ih.pk);\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tgetAccountDisplayName(ai: app.AccountInfo) {\r\n\t\treturn `${ai.fullAccountNo} - ${ai.fullAddress}`;\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\n@au.autoinject\r\nexport class LoginB2CError {\r\n\tconstructor(private msalService: app.MsalService) {\r\n\t}\r\n\r\n\tlogin() {\r\n\t\tthis.msalService.loginRedirect();\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class LoginB2C {\r\n\tconstructor(private eventAggregator: au.EventAggregator, private msalService: app.MsalService, private alertService: at.AlertService,\r\n\t\tprivate router: au.Router) {\r\n\t\tthis.logger = au.getLogger(\"LoginB2C\");\r\n\t}\r\n\r\n\tlogger: au.Logger;\r\n\ttitle: string = \"Login\";\r\n\tparams: any;\r\n\r\n\tasync canActivate(params: any, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tthis.params = params;\r\n\t\tif (await this.msalService.isAuthenticatedAsync()) {\r\n\t\t\tthis.eventAggregator.publish(\"auth:login\"); // let nav bar know that we're logged in\r\n\t\t\treturn new au.RedirectToRoute(app.Route.home);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (params.login) {\r\n\t\t\t\tthis.login();\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tasync login() {\r\n\t\tthis.alertService.showProgress();\r\n\t\tthis.msalService.loginRedirect();\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Login {\r\n\tconstructor(private authService: app.IAuthService, private router: au.Router, private alertService: at.AlertService, private eventAggregator: au.EventAggregator,\r\n\t\tprivate emailClient: app.EmailClient, validationControllerFactory: at.ValidationControllerFactory, private i18n: au.I18N, private msalService: app.MsalService) {\r\n\t\tthis.logger = au.getLogger(this.constructor.name);\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.email).email().required()\r\n\t\t\t.ensure(x => x.password).required()\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\temail: string;\r\n\tisEmailValid: boolean;\r\n\tpassword: string;\r\n\trememberMe: boolean;\r\n\tlogger: au.Logger;\r\n\tvalidationController: au.ValidationController;\r\n\temailConfirmationNeeded: boolean;\r\n\tchangeEmailParams: app.IChangeEmailRequest;\r\n\ttitle: string = \"Login\";\r\n\tunconfirmedEmailModal: au.MdModal;\r\n\r\n\tasync canActivate(params: any, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tif (this.msalService.isEnabled()) {\r\n\t\t\treturn new au.RedirectToRoute(app.Route.loginB2C);\r\n\t\t}\r\n\t\tif (await this.authService.isAuthenticatedAsync()) {\r\n\t\t\tthis.eventAggregator.publish(\"auth:login\"); // let nav bar know that we're logged in\r\n\t\t\treturn new au.RedirectToRoute(app.Route.home);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate(params: any) {\r\n\t\tif (params && params.emailConfirmationNeeded === \"true\") {\r\n\t\t\tthis.emailConfirmationNeeded = true;\r\n\t\t}\r\n\t\tthis.changeEmailParams = params.changeEmailParams;\r\n\t\tif (this.changeEmailParams) {\r\n\t\t\tthis.title = \"Please login to change your email\"\r\n\t\t}\r\n\t}\r\n\r\n\tattached() {\r\n\t\tif (this.emailConfirmationNeeded) {\r\n\t\t\tthis.alertService.alert(this.i18n.tr(\"Login.ConfirmEmailWarning\"), \"warning\", \"orange\");\r\n\t\t}\r\n\t}\r\n\r\n\tloggingIn: boolean;\r\n\tasync login() {\r\n\t\tif (this.loggingIn) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.loggingIn = true;\r\n\t\tlet errors = await this.validationController.validate();\r\n\t\tif (!errors.valid)\r\n\t\t\treturn;\r\n\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tawait this.authService.login({ User: this.email, Password: this.password, RememberMe: this.rememberMe });\r\n\t\t\tif (this.changeEmailParams) {\r\n\t\t\t\tthis.router.navigateToRoute(app.Route.changeEmail, this.changeEmailParams);\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tvar ex = e as at.Exception;\r\n\t\t\tif (ex instanceof at.UnconfirmedEmailException) {\r\n\t\t\t\tthis.unconfirmedEmailModal.open();\r\n\t\t\t}\r\n\t\t\telse if (ex instanceof at.InvalidCredentialsException) {\r\n\t\t\t\tthis.alertService.error(this.i18n.tr(\"Login.InvalidCredentials\"));\r\n\t\t\t}\r\n\t\t\telse if (ex instanceof app.LockedOutException) {\r\n\t\t\t\tthis.alertService.error(this.i18n.tr(\"Login.LockedOut\"));\r\n\t\t\t}\r\n\t\t\telse if (ex instanceof app.InactiveUserException) {\r\n\t\t\t\tthis.alertService.error(this.i18n.tr(\"Login.Inactive\"));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.alertService.error(\"Error occurred while logging you in. Please try again later.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t\tthis.loggingIn = false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync sendConfirmation() {\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tawait this.emailClient.sendConfirmationEmail(this.email);\r\n\t\t\tthis.alertService.alert(this.i18n.tr(\"Login.LinkHasBeenSent\"));\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Error sending the link\");\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\t}\r\n\r\n\tasync sendResetPassword() {\r\n\t\tlet errors = await this.validationController.validate({ object: this, propertyName: \"email\" });\r\n\t\tif (!errors.valid) {\r\n\t\t\tthis.alertService.error(\"Please enter valid email\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tawait this.emailClient.sendResetPasswordEmail(this.email);\r\n\t\t\tthis.alertService.alert(this.i18n.tr(\"Login.LinkHasBeenSent\"));\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Error sending the link\");\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\t}\r\n\r\n\tcapsLockOn: boolean;\r\n\tpasswordKeyUp(event: KeyboardEvent) {\r\n\t\tthis.capsLockOn = event.getModifierState(\"CapsLock\");\r\n\t}\r\n\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".login-page .form-container{width:20em;display:flex!important;align-items:center;flex-direction:column}.login-page .form-container #register,.login-page .form-container form{width:100%}.login-page .form-container form md-checkbox{display:inline-block;margin-bottom:15px}.login-page .form-container form .button-wait-cursor-wrapper,.login-page .form-container form button{width:100%}.login-page .form-container .register-forgot-links{width:100%;display:flex;justify-content:space-between}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class MeterReading {\r\n\tconstructor(private meterClient: app.MeterClient, private alertService: at.AlertService, private router: au.Router,\r\n\t\tvalidationConrollerFactory: at.ValidationControllerFactory, private settingsService: app.SettingsService, private i18n: au.I18N) {\r\n\t\tthis.validationController = validationConrollerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.reading).required()\r\n\t\t\t.ensure(x => x.meter).required()\r\n\t\t\t.ensure(x => x.files).satisfies(x => x.length > 0).withMessage(\"must be attached\")\r\n\t\t\t/**/.satisfies(x => !x.find(y => !this.settingsService.isFileAllowed(y.fileName))).withMessage(\"not allowed file selected\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tmeters: app.MeterInfo[] = [];\r\n\tmeter: app.MeterInfo;\r\n\tfiles: at.IFileRow[] = [];\r\n\tmaxFileSize = this.settingsService.browserSettings.maxFileSize;\r\n\tallowedExtensions = this.settingsService.browserSettings.allowedFileExtensions;\r\n\r\n\t@au.computedFrom(\"meter\")\r\n\tget mask() {\r\n\t\treturn this.meter ? `9{1,${this.meter.meter.noOfDials}}` : \"9{1,}\";\r\n\t}\r\n\r\n\t@au.ato.bindable.numberMd\r\n\treading: number;\r\n\r\n\tvalidationController: au.ValidationController;\r\n\r\n\tasync activate(): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.meters = await this.meterClient.getConnected();\r\n\t\t\tif (this.meters.length === 1) {\r\n\t\t\t\tthis.meter = this.meters[0];\r\n\t\t\t}\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync submit(): Promise {\r\n\t\tlet res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.reading < this.meter.lastReading.readingValue\r\n\t\t\t&& !await this.alertService.confirm(this.i18n.tr(\"MeterReading.LessThanPreviousWarning\"), \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.reading > this.meter.lastReading.readingValue + this.settingsService.browserSettings.highReadWarningThreshold\r\n\t\t\t&& !await this.alertService.confirm(this.i18n.tr(\"MeterReading.HighReadWarning\", { highReadWarningThreshold: this.settingsService.browserSettings.highReadWarningThreshold }), \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.files.length > this.settingsService.browserSettings.maxFilesPerRequest) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileCountError\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.files.find(x => x.isTooBig)) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(\"MaxFileSizeError\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait this.meterClient.saveMeterReading(this.meter.account.pkAccount, this.meter.meter.pk, this.meter.meter.serialNo, this.reading,\r\n\t\t\t\tthis.files.map(x => ({ data: x.file, fileName: `${x.fileName}` }))\r\n\t\t\t);\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(\"MeterReading.SubmitSuccess\"));\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"MeterReading.SubmitError\")));\r\n\t}\r\n\r\n\tfilesChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"files\" });\r\n\t}\r\n}","module.exports = \"\";","export class NotFound {\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Organisations extends app.PaginatedBase {\r\n\tconstructor(private organisationClient: app.OrganisationClient, alertService: at.AlertService, private router: au.Router, private dataStorageService: app.DataStorageService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\torganisations: app.Organisation2[];\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.organisationsFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.organisationsFilterLines = value;\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (this.savedFilterLines && this.savedFilterLines.length) {\r\n\t\t\t\tthis.filterLines = this.savedFilterLines;\r\n\t\t\t}\r\n\t\t\tawait this.search();\r\n\t\t\tthis.isActivated = true;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet response = await this.organisationClient.index(request);\r\n\t\tthis.organisations = response.items;\r\n\t\treturn response;\r\n\t}\r\n\r\n\tedit(organisation: app.Organisation2) {\r\n\t\tthis.router.navigateToRoute(app.Route.editOrganisation, { id: organisation.id.toString() });\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".organisations-page #search{display:flex;align-items:center}.organisations-page #search md-input{flex:2;max-width:400px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\ntype ISearchResponse = {\r\n\tpageCount?: number | undefined;\r\n}\r\n\r\nexport abstract class PaginatedBase {\r\n\tconstructor(protected alertService: at.AlertService) { }\r\n\r\n\tfilterLines: at.IFilterLine[] = [];\r\n\tabstract savedFilterLines: at.IFilterLine[];\r\n\tpageSizes = [10, 20, 30, 50, 100];\r\n\r\n\tisActivated: boolean;\r\n\r\n\t@au.observable\r\n\tpageSize: number = this.pageSizes[0];\r\n\tpageSizeChanged() {\r\n\t\tif (this.isActivated) {\r\n\t\t\tthis.search();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpageCount: number;\r\n\tactivePage: number;\r\n\tfo = at.FilterOperator;\r\n\r\n\tabstract async fetch(request: app.SearchRequest): Promise;\r\n\r\n\tasync search(): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet request = new app.SearchRequest({ filterItems: this.filterLines.map(x => new app.FilterItem(x.toJson())), pageSize: this.pageSize });\r\n\t\t\tlet response = await this.fetch(request);\r\n\t\t\tthis.pageCount = response.pageCount;\r\n\t\t\tthis.activePage = 1;\r\n\t\t\tthis.savedFilterLines = this.filterLines;\r\n\t\t}, e => this.alertService.criticalError(e.message ? e.message : app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync pageChanged(e: { detail: number }) {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet request = new app.SearchRequest({ filterItems: this.savedFilterLines.map(x => new app.FilterItem(x.toJson())), page: e.detail, pageSize: this.pageSize });\r\n\t\t\tlet response = await this.fetch(request);\r\n\t\t}, e => this.alertService.error(e.message));\r\n\t}\r\n\r\n}\r\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class PaymentArrangement {\r\n\tconstructor(private webRequestClient: app.WebRequestClient, private validationControllerFactory: at.ValidationControllerFactory, private alertService: at.AlertService,\r\n\t\tprivate router: au.Router, private i18n: au.I18N, private dateService: at.DateService, private accountClient: app.AccountClient,\r\n\t\tprivate authService: app.IAuthService, private taskQueue: au.TaskQueue) {\r\n\t\tthis.validationController = this.validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensureEx((x: PaymentArrangement) => x.selectedAccount).required()\r\n\t\t\t/**/.satisfies(x => !x || !x.payArrangement || x.payArrangement.fkPayFrequency !== PayFrequency.InFull).withMessage(this.i18n.tr(\"PaymentArrangement.PaymentExtensionError\"))\r\n\t\t\t/**/.satisfies(x => !x || !!x.lastInvoice).withMessage(\"PaymentArrangement.NoInvoicesError\")\r\n\t\t\t.ensure(x => x.payFrequency).required()\r\n\t\t\t.rules;\r\n\t\tthis.validationController.addObject(this, this.rules);\r\n\t\tthis.validationController.subscribe(e => {\r\n\t\t\tconst selectedAccountResults = e.results.filter(x => x.propertyName === \"selectedAccount\")\r\n\t\t\tthis.selectedAccountValid = !!selectedAccountResults.length && !selectedAccountResults.find(x => !x.valid);\r\n\t\t});\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trules: au.Rule[][];\r\n\taccounts: app.AccountBalanceInfo[];\r\n\tpayFrequencies: app.PayFrequency[];\r\n\r\n\t@au.observable\r\n\tpayFrequency: app.PayFrequency;\r\n\r\n\tamount: number;\r\n\tstartDate: Date;\r\n\tisTherePendingRequest: boolean;\r\n\r\n\t@au.observable\r\n\tselectedAccount: app.AccountBalanceInfo;\r\n\tasync selectedAccountChanged() {\r\n\t\tthis.isTherePendingRequest = await this.webRequestClient.isTherePendingRequest(this.selectedAccount.pkAccount, WebRequestType.PaymentArrangement);\r\n\t}\r\n\tselectedAccountValid: boolean;\r\n\r\n\tasync canActivate(): Promise {\r\n\t\treturn await this.alertService.usingProgress(async () => {\r\n\t\t\tthis.accounts = await this.accountClient.getAccountSummaries(true, false);\r\n\t\t\tif (!this.accounts.length) {\r\n\t\t\t\tawait this.alertService.alert(\"You don't have accounts eligible for payment agrrangement.\", \"warning\", \"orange\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if (this.accounts.length === 1) {\r\n\t\t\t\tthis.selectedAccount = this.accounts[0];\r\n\t\t\t}\r\n\t\t}, async e => { await this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e); return false; });\r\n\t}\r\n\r\n\tbind() {\r\n\t\tif (this.selectedAccount) {\r\n\t\t\tthis.validationController.validate({ object: this, propertyName: \"selectedAccount\" });\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate(params: IHaveId) {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (params && params.id) {\r\n\t\t\t\tthis.selectedAccount = this.accounts.find(x => x.pkAccount === parseInt(params.id));\r\n\t\t\t}\r\n\t\t\tthis.payFrequencies = await this.webRequestClient.getPayFrequencies();\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tlet res = await this.validationController.validate();\r\n\t\tif (!res.valid) {\r\n\t\t\tawait this.alertService.error(\"Please correct the invalid fields\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!await this.alertService.confirm(\"Are you sure you would like to submit this Payment Arrangement application?\", \"warning\", \"orange\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet wrpa = new app.WebRequestPaymentArrangement({\r\n\t\t\t\tfk_pay_frequency: this.payFrequency.code,\r\n\t\t\t\tamount: this.amount,\r\n\t\t\t\tstart_date: this.startDate.asUtc(),\r\n\t\t\t\tpk: 0,\r\n\t\t\t\tfk_web_request: 0\r\n\t\t\t});\r\n\t\t\tlet request = new app.WebRequest({ fkAccount: this.selectedAccount.pkAccount, paymentArrangement: wrpa, pk: 0, guid: null, dateRequested: null });\r\n\t\t\tawait this.webRequestClient.submitPaymentArrangement(request);\r\n\t\t\tawait this.alertService.alert(app.Strings.webRequestSuccess);\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}, e => this.alertService.criticalError(\"Error occurred while submitting the payment arrangement application\", e));\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Payments extends app.PaginatedBase {\r\n\tconstructor(private paymentClient: app.PaymentClient, alertService: at.AlertService, private dataStorageService: app.DataStorageService, private taskQueue: au.TaskQueue) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.paymentsFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.paymentsFilterLines = value;\r\n\t}\r\n\r\n\tstatuses: app.IPaymentStatus[];\r\n\tpayments: app.PaymentInfo[]\r\n\tpayment: app.Payment;\r\n\tmodal: au.MdModal;\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.statuses = app.PaymentStatuses;\r\n\t\t\tif (this.savedFilterLines && this.savedFilterLines.length) {\r\n\t\t\t\tthis.filterLines = this.savedFilterLines;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.filterLines = [];\r\n\t\t\t\tawait this.search();\r\n\t\t\t\tthis.isActivated = true;\r\n\t\t\t}\r\n\t\t}, e => this.alertService.error(\"Could not initialise the screen\"));\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\tlet response = await this.paymentClient.getPayments(request);\r\n\t\tthis.payments = response.items;\r\n\t\treturn response;\r\n\t}\r\n\r\n\tasync open(p: app.PaymentInfo): Promise {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.payment = await this.paymentClient.get(p.id);\r\n\t\t\tthis.taskQueue.queueMicroTask(() => this.modal.open());\r\n\t\t}, () => this.alertService.error(\"Could not retrieve payment receipt\"));\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Profile extends app.EditBase {\r\n\tconstructor(alertService: at.AlertService, private userClient: app.UserClient, private eventAggregator: au.EventAggregator,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory, authService: app.IAuthService, private emailClient: app.EmailClient, private i18n: au.I18N,\r\n\t\tprivate msalService: app.MsalService) {\r\n\t\tsuper(alertService, validationControllerFactory, authService);\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.email).required().email()\r\n\t\t\t.ensure(x => x.surname).required().maxLength(80)\r\n\t\t\t.ensure(x => x.otherNames).required().maxLength(80)\r\n\t\t\t.ensure(x => x.phoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"04\")).withMessage(\"must start with 04\")\r\n\t\t\t/**/.satisfies(x => !this.rawPhoneNumber || !!x).withMessage(\"must have 10 digits\")\r\n\t\t\t.ensure(x => x.homePhoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"0\")).withMessage(\"must start with an area code\")\r\n\t\t\t/**/.satisfies(x => !this.rawHomePhoneNumber || !!x).withMessage(\"must have 10 digits and start with an area code\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tuser: app.UserInfo;\r\n\tcanEditNames: boolean;\r\n\tisResidential: boolean;\r\n\tisNonResidential: boolean;\r\n\tisB2CEnabled: boolean;\r\n\temailInvoices: boolean = true;\r\n\trawPhoneNumber: string;\r\n\tallowEbilling: boolean;\r\n\r\n\t@au.computedFrom(\"user.surname\")\r\n\tget surname() {\r\n\t\treturn this.user.surname;\r\n\t}\r\n\tset surname(value: string) {\r\n\t\tthis.user.surname = value;\r\n\t}\r\n\r\n\t@au.computedFrom(\"user.otherNames\")\r\n\tget otherNames() {\r\n\t\treturn this.user.otherNames;\r\n\t}\r\n\tset otherNames(value: string) {\r\n\t\tthis.user.otherNames = value;\r\n\t}\r\n\r\n\t@au.computedFrom(\"user.email\")\r\n\tget email() {\r\n\t\treturn this.user.email;\r\n\t}\r\n\tset email(value: string) {\r\n\t\tthis.user.email = value;\r\n\t\tthis.emailChanged = true;\r\n\t}\r\n\r\n\t@au.computedFrom(\"user.phoneNumber\")\r\n\tget phoneNumber() {\r\n\t\treturn this.user.phoneNumber;\r\n\t}\r\n\tset phoneNumber(value: string) {\r\n\t\tthis.user.phoneNumber = value;\r\n\t}\r\n\r\n\t@au.computedFrom(\"user.homePhoneNumber\")\r\n\tget homePhoneNumber() {\r\n\t\treturn this.user.homePhoneNumber;\r\n\t}\r\n\tset homePhoneNumber(value: string) {\r\n\t\tthis.user.homePhoneNumber = value;\r\n\t}\r\n\r\n\trawHomePhoneNumber: string;\r\n\r\n\temailChanged: boolean;\r\n\r\n\tasync load(id: string) {\r\n\t\tawait Promise.all([\r\n\t\t\tthis.userClient.getSelf().then(x => this.user = x),\r\n\t\t\tthis.userClient.allowEBillingOnEmailUpdate().then(x => this.allowEbilling = x)\r\n\t\t]);\r\n\t\tthis.isB2CEnabled = this.msalService.isEnabled();\r\n\t\tthis.canEditNames = this.authService.getTokenPayload().permission.includes(app.PermissionCode[app.PermissionCode.EditProfileName]);\r\n\t\tthis.isResidential = this.authService.getTokenPayload().role === app.Roles.residentialCustomer;\r\n\t\tthis.isNonResidential = this.authService.getTokenPayload().role === app.Roles.businessCustomer;\r\n\t\tthis.emailChanged = false;\r\n\t}\r\n\r\n\tasync saveInternal(): Promise {\r\n\t\ttry {\r\n\t\t\tvar u = await this.userClient.patchProfile(new app.PatchProfileRequest({\r\n\t\t\t\tsurname: this.user.surname,\r\n\t\t\t\totherNames: this.user.otherNames,\r\n\t\t\t\temail: this.user.email,\r\n\t\t\t\temailInvoices: this.emailInvoices,\r\n\t\t\t\tphoneNumber: this.user.phoneNumber,\r\n\t\t\t\thomePhoneNumber: this.user.homePhoneNumber,\r\n\t\t\t\ttimestamp: this.user.timestamp\r\n\t\t\t}));\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tif (e instanceof app.EmailTakenException) {\r\n\t\t\t\te = new Error(\"This email is already taken. Please choose another one.\");\r\n\t\t\t}\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t\tif (this.user.email !== u.email) {\r\n\t\t\tawait this.alertService.alert(\"We've sent an email to your new address which you must confirm before the change becomes permanent.\")\r\n\t\t}\r\n\t\tthis.user.id = u.id;\r\n\t\tthis.user.timestamp = u.timestamp;\r\n\t\tthis.user.email = u.email;\r\n\t\tthis.eventAggregator.publish(app.Events.profileChanged);\r\n\t\treturn u.id;\r\n\t}\r\n\r\n\tasync sendResetPassword() {\r\n\t\tif (this.emailChanged || this.isB2CEnabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tawait this.emailClient.sendResetPasswordEmail(this.email);\r\n\t\t\tthis.alertService.alert(this.i18n.tr(\"Login.LinkHasBeenSent\"));\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Error sending the link\");\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class RegisterB2C {\r\n\r\n\tconstructor(private msalService: app.MsalService, private alertService: at.AlertService, private taskQueue: au.TaskQueue) { }\r\n\r\n\tsuccess: boolean;\r\n\r\n\tcanActivate(params: app.IEmailConfirmationRequest) {\r\n\t\tif (!params || !params.code) {\r\n\t\t\treturn new au.RedirectToRoute(app.Route.loginB2CError);\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate(params: app.IEmailConfirmationRequest, routeConfig: au.RouteConfig): Promise {\r\n\t\tthis.taskQueue.queueTask(() => {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tthis.msalService.registerRedirect(params.code);\r\n\t\t});\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { SearchRequest } from \"../../app\";\r\n\r\n@au.autoinject\r\nexport class Register {\r\n\tconstructor(private userClient: app.UserClient, private router: au.Router, private alertService: at.AlertService,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory, private organisationClient: app.OrganisationClient, private authService: app.IAuthService, private i18n: au.I18N,\r\n\t\tprivate settingsService: app.SettingsService, private b2cClient: app.B2CClient, private msalService: app.MsalService, private taskQueue: au.TaskQueue) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.role).required()\r\n\t\t\t.ensure(x => x.surname).required().maxLength(80)\r\n\t\t\t.ensure(x => x.otherNames).required().maxLength(80)\r\n\t\t\t.ensure(x => x.email).email().required()\r\n\t\t\t.ensure(x => x.phoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"04\")).withMessage(\"must start with 04\")\r\n\t\t\t/**/.satisfies(x => !this.rawPhoneNumber || !!x).withMessage(\"must have 10 digits\")\r\n\t\t\t.ensure(x => x.homePhoneNumber).maxLength(10)\r\n\t\t\t/**/.satisfies(x => !x || x.startsWith(\"0\")).withMessage(\"must start with an area code\")\r\n\t\t\t/**/.satisfies(x => !this.rawHomePhoneNumber || !!x).withMessage(\"must have 10 digits and start with an area code\")\r\n\t\t\t.ensure(x => x.agencyOrganisationId).required().when(x => x.isAgent)\r\n\t\t\t.ensure(x => x.password).required().when(x => !x.isAzureB2CEnabled).then().password(this.settingsService.passwordOptions)\r\n\t\t\t.ensure(x => x.passwordConfirm).required().when(x => !x.isAzureB2CEnabled).then().mustMatch(\"password\")\r\n\t\t\t.ensure(x => x.accountNumber).required().when(x => x.isCustomer).withMessage(\"must include 13 digits\")\r\n\t\t\t.ensure(x => x.invoice).required().when(x => x.isInvoiceRequired)\r\n\t\t\t.ensure(x => x.dateOfBirth).required().when(x => x.isDateOfBirthRequired).then()\r\n\t\t\t/**/.satisfies((x: Date) => au.moment(x).isBetween(au.moment().subtract(110, \"years\"), au.moment().subtract(15, \"years\")))\r\n\t\t\t/**/.withMessage(\"age must be between 15 and 110 years\")\r\n\t\t\t.ensure(x => x.organisationName).required().when(x => x.isBusinessCustomer || !!x.sundryDebtorAccountNumber)\r\n\t\t\t.ensure(x => x.abn).required().withMessage(\"must include 11 digits\").when(x => this.settingsService.browserSettings.register.abnRequired || !!x.abnRaw)\r\n\t\t\t.ensure(x => x.confirmed).satisfies(x => x).withMessage(\"tick to agree\")\r\n\t\t\t.on(Register);\r\n\t}\r\n\r\n\tisSelfRegister: boolean;\r\n\tisAzureB2CEnabled: boolean;\r\n\r\n\tvalidationController: au.ValidationController;\r\n\troles: app.Role[] = [];\r\n\torganisations: app.Organisation2[];\r\n\r\n\t@au.observable\r\n\trole: app.Role;\r\n\tasync roleChanged() {\r\n\t\tawait this.validationController.validate({ object: this, propertyName: \"role\" });\r\n\t\tif (this.role) {\r\n\t\t\tthis.isCustomer = this.role.name == app.Roles.residentialCustomer || this.role.name == app.Roles.businessCustomer;\r\n\t\t\tthis.isInvoiceRequired = this.settingsService.aquaRateSettings.validateInvoice;\r\n\t\t\tthis.isDateOfBirthRequired = this.role.name == app.Roles.residentialCustomer && this.settingsService.aquaRateSettings.dateOfBirthConstraint !== app.DateOfBirthConstraint.None;\r\n\t\t\tthis.isBusinessCustomer = this.role.name == app.Roles.businessCustomer;\r\n\t\t\tthis.isConveyancer = this.role.name == app.Roles.conveyancer;\r\n\t\t\tthis.isAgent = this.role.name == app.Roles.agent;\r\n\t\t}\r\n\t}\r\n\r\n\tisInvoiceRequired: boolean;\r\n\tisDateOfBirthRequired: boolean;\r\n\tisCustomer: boolean;\r\n\tisBusinessCustomer: boolean;\r\n\tisConveyancer: boolean;\r\n\tisAgent: boolean;\r\n\tisAgencyManagerInviting: boolean;\r\n\r\n\tsurname: string;\r\n\totherNames: string;\r\n\temail: string;\r\n\tphoneNumber: string;\r\n\trawPhoneNumber: string;\r\n\thomePhoneNumber: string;\r\n\trawHomePhoneNumber: string;\r\n\tpassword: string;\r\n\tpasswordConfirm: string;\r\n\taccountNumber: string;\r\n\tinvoice: number;\r\n\tagencyOrganisationId: number;\r\n\torganisationName: string;\r\n\tabn: string;\r\n\tabnRaw: string;\r\n\tsundryDebtorAccountNumber: number;\r\n\tdateOfBirth: Date;\r\n\tconfirmed: boolean;\r\n\r\n\tasync activate(params: any, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tthis.alertService.usingProgress(async () => {\r\n\t\t\tthis.isAzureB2CEnabled = this.msalService.isEnabled();\r\n\t\t\tthis.isSelfRegister = navigationInstruction.config.name === app.Route.register;\r\n\t\t\tif (this.isSelfRegister) {\r\n\t\t\t\tthis.roles = await this.userClient.getRegisterRoles();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar token = this.authService.getTokenPayload();\r\n\t\t\t\tthis.isAgencyManagerInviting = token.role == app.Roles.agencyManager;\r\n\t\t\t\tthis.roles = await this.userClient.getInviteRoles();\r\n\r\n\t\t\t\tif (!this.isAgencyManagerInviting && this.roles.find(x => x.name === app.Roles.agencyManager || x.name === app.Roles.agent)) {\r\n\t\t\t\t\tthis.organisations = (await this.organisationClient.index(new SearchRequest())).items;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.role = null;\r\n\t\t\t\tthis.taskQueue.queueTask(() => this.validationController.reset());\r\n\t\t\t}\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync register() {\r\n\t\tlet errors = await this.validationController.validate();\r\n\t\tif (!errors.valid)\r\n\t\t\treturn;\r\n\r\n\t\tlet request = new app.NewUserDetails({\r\n\t\t\troleId: this.role.id,\r\n\t\t\tsurname: this.surname,\r\n\t\t\totherNames: this.otherNames,\r\n\t\t\temail: this.email,\r\n\t\t\tphoneNumber: this.phoneNumber,\r\n\t\t\thomePhoneNumber: this.homePhoneNumber,\r\n\t\t\tpassword: this.password,\r\n\t\t\taccountNumber: this.accountNumber,\r\n\t\t\tinvoice: this.invoice,\r\n\t\t\tagencyOrganisationId: this.agencyOrganisationId,\r\n\t\t\torganisationName: this.organisationName,\r\n\t\t\tabn: this.abn,\r\n\t\t\tsundryDebtorAccountNumber: this.sundryDebtorAccountNumber,\r\n\t\t\tdateOfBirth: this.isDateOfBirthRequired && this.dateOfBirth ? this.dateOfBirth.asUtc() : null\r\n\t\t});\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (this.isSelfRegister) {\r\n\t\t\t\tif (this.isAzureB2CEnabled) {\r\n\t\t\t\t\tlet token = await this.b2cClient.getRegistrationToken(request);\r\n\t\t\t\t\tthis.taskQueue.queueTask(() => {\r\n\t\t\t\t\t\tthis.alertService.showProgress();\r\n\t\t\t\t\t\tthis.msalService.registerRedirect(token);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tawait this.userClient.register(request);\r\n\t\t\t\t\tthis.router.navigateToRoute(app.Route.login, { emailConfirmationNeeded: true });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tawait this.userClient.invite(request);\r\n\t\t\t\tawait this.alertService.alert(this.i18n.tr(\"Registration.SubmitSuccess\"));\r\n\t\t\t\tthis.router.navigateToRoute(app.Route.users);\r\n\t\t\t}\r\n\t\t}, async e => {\r\n\t\t\tlet message = e.message || this.i18n.tr(\"Registration.SubmitError\");\r\n\t\t\tif (e instanceof app.IdentityException) {\r\n\t\t\t\tif (e.data.DuplicateUserName) {\r\n\t\t\t\t\tmessage = \"A user with this email is already registered\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (e instanceof app.NotMatchingBirthDateException) {\r\n\t\t\t\tmessage = this.i18n.tr(\"Registration.DateOfBirthOrMobileNumberDontMatch\");\r\n\t\t\t}\r\n\t\t\treturn this.alertService.error(message);\r\n\t\t});\r\n\t};\r\n\r\n\tgetOrganisations(p: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (p.value) {\r\n\t\t\treturn Promise.resolve([this.organisations.find(x => x.id === p.value)]);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(this.organisations.filter(x => !p.filter || x.name.includes(p.filter)));\r\n\t\t}\r\n\t}\r\n\r\n\tcapsLockOn: boolean;\r\n\tpasswordKeyUp(event: KeyboardEvent) {\r\n\t\tthis.capsLockOn = event.getModifierState(\"CapsLock\");\r\n\t}\r\n}","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".register-page datepicker{width:166px}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class ResetPassword {\r\n\r\n\tconstructor(private userClient: app.UserClient, private alertService: at.AlertService, private settingsService: app.SettingsService,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory, private i18n: au.I18N) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.password).required().then().password(this.settingsService.passwordOptions)\r\n\t\t\t.ensure(x => x.passwordConfirm).required().satisfiesRule(\"mustMatch\", \"password\")\r\n\t\t\t.on(ResetPassword);\r\n\t}\r\n\r\n\tconfirmation: app.IEmailConfirmationRequest;\r\n\tpassword: string;\r\n\tpasswordConfirm: string;\r\n\tpasswordReset: boolean;\r\n\tvalidationController: au.ValidationController;\r\n\tisTokenValid: boolean;\r\n\r\n\tasync activate(params: app.IEmailConfirmationRequest, routeConfig: au.RouteConfig): Promise {\r\n\t\tthis.confirmation = params;\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.isTokenValid = await this.userClient.isResetPasswordTokenValid(new app.EmailConfirmationRequest(this.confirmation));\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tasync reset() {\r\n\t\tlet errors = await this.validationController.validate();\r\n\t\tif (!errors.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.confirmation.password = this.password;\r\n\t\t\tawait this.userClient.resetPassword(new app.EmailConfirmationRequest(this.confirmation));\r\n\t\t\tthis.passwordReset = true;\r\n\t\t}, e => this.alertService.error(this.i18n.tr(\"ResetPassword.InvalidToken\")));\r\n\t}\r\n\r\n\tcapsLockOn: boolean;\r\n\tpasswordKeyUp(event: KeyboardEvent) {\r\n\t\tthis.capsLockOn = event.getModifierState(\"CapsLock\");\r\n\t}\r\n\r\n}\r\n","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".reset-page{width:20em;display:flex;align-items:center;flex-direction:column}.reset-page form,.reset-page form button{width:100%}\", \"\"]);\n","import * as app from \"app\";\r\nimport * as au from \"aurelia\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\ndeclare module \"../../services/api\" {\r\n\t// tslint:disable:interface-name\r\n\tinterface PermissionOfPermissionCode {\r\n\t\tisSelected?: boolean;\r\n\t}\r\n\t// tslint:enable:interface-name\r\n}\r\n\r\n@au.autoinject\r\nexport class Role {\r\n\tconstructor(private roleClient: app.RoleClient, private alertService: at.AlertService, private router: au.Router,\r\n\t\tvalidationControllerFactory: at.ValidationControllerFactory) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.rules = au.ValidationRules.ensure(x => x.displayName).required()\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\trole: app.RoleDto;\r\n\trules: au.Rule[][];\r\n\r\n\tdetermineActivationStrategy() {\r\n\t\treturn au.activationStrategy.invokeLifecycle;\r\n\t}\r\n\r\n\tasync activate(params: at.IHaveId) {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tif (this.role) {\r\n\t\t\t\tthis.validationController.removeObject(this.role);\r\n\t\t\t}\r\n\t\t\tlet permissions: app.PermissionOfPermissionCode[];\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.roleClient.permissions().then(x => permissions = x),\r\n\t\t\t\tthis.roleClient.get(params.id).then(x => this.role = x)\r\n\t\t\t]);\r\n\t\t\tpermissions.forEach(x => x.isSelected = !!this.role.permissions.find(y => y.code === x.code));\r\n\t\t\tthis.role.permissions = permissions.sort((a, b) => (a.isSelected !== b.isSelected) ? (Number(b.isSelected) - Number(a.isSelected)) : a.name.localeCompare(b.name));\r\n\t\t\tthis.validationController.addObject(this.role, this.rules);\r\n\t\t}, e => this.alertService.error(\"Error fetching the role\"));\r\n\t}\r\n\r\n\tasync revert() {\r\n\t\tawait this.activate({ id: this.role.id });\r\n\t}\r\n\r\n\tasync save() {\r\n\t\tconst validationResult = await this.validationController.validate();\r\n\t\tif (!validationResult.valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.role.permissions = null; // no need to pass these as they are not editable\r\n\t\t\tconst id = await this.roleClient.post(this.role);\r\n\t\t\tthis.router.navigateToRoute(app.Route.role, { id }, { replace: true });\r\n\t\t}, e => this.alertService.error(\"Error saving the role\"));\r\n\t}\r\n}\r\n","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Roles {\r\n\tconstructor(private roleClient: app.RoleClient, private router: au.Router, private alertService: at.AlertService) { }\r\n\r\n\troles: app.Role[];\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tthis.roles = await this.roleClient.index();\r\n\t\t}, e => this.alertService.error(\"Error fetching roles\"));\r\n\t}\r\n\r\n\tedit(role: app.Role) {\r\n\t\tthis.router.navigateToRoute(app.Route.role, { id: role.id });\r\n\t}\r\n}\r\n","module.exports = \"\";","import \"materialize-css/dist/css/materialize.css\";\r\nimport * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport \"./root.scss\";\r\nimport { configure as gaConfigure } from \"aurelia-google-analytics\";\r\nimport { ApplicationInsights, RemoteDependencyData, IDependencyTelemetry } from \"@microsoft/applicationinsights-web\";\r\n\r\ndeclare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build\r\n\r\n@au.autoinject\r\nexport class Root {\r\n\tconstructor(private http: au.HttpClient, private exceptionService: at.ExceptionService, private twAuthService: app.TwAuthService,\r\n\t\tprivate diagnosticsClient: app.DiagnosticsClient, private settingsService: app.SettingsService, private router: au.Router, private eventAggregator: au.EventAggregator,\r\n\t\tprivate dateService: at.DateService, private taskQueue: au.TaskQueue, private i18N: au.I18N, private msalService: app.MsalService, private container: au.Container,\r\n\t\tprivate aurelia: au.Aurelia, private alertService: at.AlertService, private appInsights: ApplicationInsights) {\r\n\t\tthis.registerExceptions();\r\n\t\tthis.logger = au.getLogger(\"Root\");\r\n\t}\r\n\r\n\tsettings: app.BrowserSettings;\r\n\tversions: app.GetVersionsResponse;\r\n\tnavModels: au.NavModel[];\r\n\trole: string;\r\n\tlogger: au.Logger;\r\n\tnavBar: at.AppNavBar;\r\n\tauthService: app.IAuthService;\r\n\r\n\tconfigureRouter(config: au.RouterConfiguration) {\r\n\t\tconfig.title = this.i18N.tr(\"Company\");\r\n\t\tconfig.addAuthorizeStep(app.RoleCheckStep);\r\n\t\tconfig.addPipelineStep(\"postcomplete\", app.PostCompleteStep);\r\n\t\tconfig.addPipelineStep(\"modelbind\", at.AppInsightsStep);\r\n\t\tconfig.addPipelineStep(\"modelbind\", app.AnalyticsStep);\r\n\t\tconst pc = app.PermissionCode;\r\n\t\tlet t = this.i18N.tr.bind(this.i18N);\r\n\t\tlet requestMenu = { title: t(\"Menu.Request\"), order: 5 };\r\n\t\tlet menuRoutes: at.IAppRouteConfig[] = [\r\n\t\t\t{ route: app.Route.home, name: app.Route.home, title: t(\"Menu.Home\"), order: 1 },\r\n\t\t\t{ route: app.Route.login, title: t(\"Menu.Login\"), auth: at.AuthStatus.All, order: 2 },\r\n\t\t\t{ route: app.Route.register, title: t(\"Menu.Register\"), auth: at.AuthStatus.NonAuthenticated, order: 3 },\r\n\t\t\t{ route: app.Route.account + \"/:pkAccount?\", href: app.Route.account, name: app.Route.account, permission: pc.GetAccountDetails, title: t(\"Menu.Account\"), order: 4 },\r\n\t\t\t{ route: app.Route.accountPayment + \"/:id?\", href: app.Route.accountPayment, name: app.Route.accountPayment, permission: pc.PayAccount, title: t(\"Menu.Pay\"), order: 7 },\r\n\t\t\t{ route: app.Route.adminDashboard, moduleId: \"views/admin-dashboard/admin-dashboard\", title: t(\"Menu.Dashboard\"), permission: pc.GetStatistics, order: 7 },\r\n\t\t\t{ route: app.Route.roles, title: t(\"Menu.Roles\"), permission: pc.ManageRoles, order: 8 },\r\n\t\t\t{ route: app.Route.users, title: t(\"Menu.Users\"), permission: pc.SearchUsers, order: 9 },\r\n\t\t\t{ route: app.Route.organisations, title: t(\"Menu.Organisations\"), permission: pc.ManageOrganisations, order: 10 },\r\n\t\t\t{ route: app.Route.editSettings, title: t(\"Menu.Settings\"), permission: pc.EditSettings, order: 11 },\r\n\t\t\t// request menu\r\n\t\t\t{ route: app.Route.changeName, title: t(\"Menu.ChangeName\"), permission: pc.ChangeName, menu: requestMenu, webRequestType: WebRequestType.ChangeName },\r\n\t\t\t{ route: app.Route.changeCustomerDetails, title: t(\"Menu.ChangeCustomerDetails\"), permission: pc.ChangeCustomerDetails, menu: requestMenu, webRequestType: WebRequestType.ChangeCustomerDetails },\r\n\t\t\t{ route: app.Route.changeAddress, title: t(\"Menu.ChangeAddress\"), permission: pc.ChangeAddress, menu: requestMenu, webRequestType: WebRequestType.ChangeAddresses },\r\n\t\t\t{ route: app.Route.meterReading, title: t(\"Menu.MeterReading\"), permission: pc.SubmitMeterReading, menu: requestMenu, webRequestType: WebRequestType.MeterReading },\r\n\t\t\t{ route: app.Route.emailInvoices, title: t(\"Menu.EmailInvoices\"), permission: pc.SubmitEmailInvoice, menu: requestMenu, webRequestType: WebRequestType.EmailInvoices },\r\n\t\t\t{ route: app.Route.directDebit, title: t(\"Menu.DirectDebit\"), permission: pc.SubmitDirectDebit, menu: requestMenu, webRequestType: WebRequestType.DirectDebit },\r\n\t\t\t{ route: app.Route.concession, title: t(\"Menu.Concession\"), permission: pc.SubmitConcession, menu: requestMenu, webRequestType: WebRequestType.Concession },\r\n\t\t\t{ route: app.Route.paymentArrangement, title: t(\"Menu.PaymentArrangement\"), permission: pc.SubmitPaymentArrangement, menu: requestMenu, webRequestType: WebRequestType.PaymentArrangement },\r\n\t\t\t{ route: app.Route.newTenant + \"/:guid?\", title: t(\"Menu.NewTenant\"), href: app.Route.newTenant, name: app.Route.newTenant, moduleId: \"views/tenancy/tenancy\", permission: pc.SubmitTenancy, menu: requestMenu, webRequestType: WebRequestType.NewTenant },\r\n\t\t\t{ route: app.Route.vacatingTenant + \"/:guid?\", title: t(\"Menu.VacatingTenant\"), href: app.Route.vacatingTenant, name: app.Route.vacatingTenant, moduleId: \"views/tenancy/tenancy\", permission: pc.SubmitTenancy, menu: requestMenu, webRequestType: WebRequestType.VacatingTenant },\r\n\t\t\t{ route: app.Route.infoStatement + \"/:guid?\", title: t(\"Menu.InformationStatement\"), href: app.Route.infoStatement, name: app.Route.infoStatement, permission: pc.SubmitInformationStatement, menu: requestMenu, webRequestType: WebRequestType.InfoStatement },\r\n\r\n\t\t\t{ route: app.Route.invoices + \"/:id?\", href: app.Route.invoices, name: app.Route.invoices, moduleId: \"views/invoices/invoices\", title: t(\"Menu.SearchInvoices\"), permission: pc.SearchInvoices, order: 12 },\r\n\t\t\t{ route: app.Route.payments, title: t(\"Menu.Payments\"), permission: pc.SearchPayments, order: 13 },\r\n\t\t\t{ route: app.Route.profile, title: t(\"Menu.Profile\"), auth: at.AuthStatus.Authenticated, order: 99 },\r\n\t\t\t{ route: app.Route.logout, title: t(\"Menu.Logout\"), navigationStrategy: i => this.logoutNavStrategy(i), auth: at.AuthStatus.Authenticated, order: 100 },\r\n\t\t];\r\n\t\tif (this.settings.showDailyWaterUse) {\r\n\t\t\tmenuRoutes.push({ route: app.Route.volumesPeriod, moduleId: \"views/volumes-period/volumes-period\", title: t(\"Menu.MeterVolume\"), permission: pc.SubmitMeterReading, order: 14 });\r\n\t\t}\r\n\t\tmenuRoutes.forEach(x => { x.nav = true; x.tooltip = x.title; });\r\n\t\tlet routes: at.IAppRouteConfig[] = [\r\n\t\t\t...menuRoutes,\r\n\t\t\t{ route: app.Route.accountPayments + \"/:id?\", href: app.Route.accountPayments, name: app.Route.accountPayments, moduleId: \"views/account-payments/account-payments\", title: t(\"Menu.SearchPayments\") || \"View Payments\", permission: pc.SearchAccountPayments, order: 13, nav: !!t(\"Menu.SearchPayments\") },\r\n\t\t\t{ route: [\"\", app.Route.home], name: app.Route.home },\r\n\t\t\t{ route: app.Route.forbidden },\r\n\t\t\t{ route: app.Route.expired },\r\n\t\t\t{ route: app.Route.farewell },\r\n\t\t\t{ route: app.Route.notfound },\r\n\t\t\t{ route: app.Route.loginB2C },\r\n\t\t\t{ route: app.Route.loginB2CError },\r\n\t\t\t{ route: app.Route.registerB2C, auth: at.AuthStatus.NonAuthenticated },\r\n\t\t\t{ route: app.Route.confirmEmail, title: \"Confirm email\" },\r\n\t\t\t{ route: app.Route.changeEmail, title: \"Change email\" },\r\n\t\t\t{ route: app.Route.resetPassword, title: \"Reset password\" },\r\n\t\t\t{ route: app.Route.role + \"/:id?\", name: app.Route.role, permission: pc.ManageRoles },\r\n\t\t\t{ route: app.Route.editUser + \"/:id\", name: app.Route.editUser, permission: pc.EditUsers },\r\n\t\t\t{ route: app.Route.inviteUser, moduleId: \"views/register/register\", permission: pc.InviteUsers },\r\n\t\t\t{ route: app.Route.customer, permission: pc.GetAccountDetails, title: t(\"Customer.Title\") },\r\n\t\t\t{ route: app.Route.bulkCustomer, permission: pc.GetAccountDetails, title: t(\"Customer.Title\") },\r\n\t\t\t{ route: app.Route.agent, role: [app.Roles.agent] },\r\n\t\t\t{ route: app.Route.agencyManager, role: [app.Roles.agencyManager] },\r\n\t\t\t{ route: app.Route.conveyancer, role: [app.Roles.conveyancer] },\r\n\t\t\t{ route: app.Route.editOrganisation + \"/:id?\", name: app.Route.editOrganisation, permission: pc.ManageOrganisations },\r\n\t\t\t{ route: app.Route.balanceCheck, auth: at.AuthStatus.All }\r\n\t\t];\r\n\t\troutes.forEach(r => {\r\n\t\t\tif (!r.name) {\r\n\t\t\t\tr.name = r.route;\r\n\t\t\t}\r\n\t\t\tif (!r.moduleId && r.route !== app.Route.logout) {\r\n\t\t\t\tr.moduleId = `views/${r.name}/${r.name}`;\r\n\t\t\t}\r\n\t\t\tr.title = r.title ? r.title : r.name.toString();\r\n\t\t\tif (r.role || r.permission) {\r\n\t\t\t\tr.auth = at.AuthStatus.Authenticated;\r\n\t\t\t}\r\n\t\t});\r\n\t\tconfig.map(routes);\r\n\t\tconfig.mapUnknownRoutes(`views/${app.Route.notfound}/${app.Route.notfound}`);\r\n\t}\r\n\r\n\tasync attached() {\r\n\t\tthis.eventAggregator.subscribe(\"authentication-change\", () => this.authenticationChange());\r\n\t\tawait this.authenticationChange();\r\n\r\n\t\t// this is used by msal to redirect to b2c-error page after routes have been registered\r\n\t\tthis.eventAggregator.publish(\"root-attached\");\r\n\t}\r\n\r\n\tasync authenticationChange() {\r\n\t\tawait this.refreshRoutes();\r\n\t\tif (await this.authService.isAuthenticatedAsync()) {\r\n\t\t\tlet lastLoginDate = window.localStorage.getItem(\"lastLoginDate\");\r\n\t\t\tif (!lastLoginDate || au.moment(lastLoginDate).isBefore(au.moment(this.dateService.now()).add(-7, \"days\"))) {\r\n\t\t\t\tthis.taskQueue.queueTask(() => this.navBar.highlightMenuButton());\r\n\t\t\t\twindow.localStorage.setItem(\"lastLoginDate\", this.dateService.now().toISOString());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\ttry {\r\n\t\t\tthis.http.configure(c => {\r\n\t\t\t\tc.baseUrl = \".\";\r\n\t\t\t\t// if need to save cookies uncomment the following\r\n\t\t\t\t// c.defaults.credentials = \"same-origin\";\r\n\t\t\t\tc.withInterceptor({ response: r => this.assertResponse(r), responseError: e => this.responseError(e) });\r\n\t\t\t});\r\n\t\t\tawait this.settingsService.loadSettings();\r\n\r\n\t\t\tthis.authService = this.msalService.isEnabled() ? this.msalService : this.twAuthService;\r\n\t\t\tthis.container.registerInstance(app.IAuthService, this.authService);\r\n\r\n\t\t\tif (!document.location.href.endsWith(app.Route.balanceCheck)) {\r\n\t\t\t\tthis.logger.debug(\"this.authService.init\");\r\n\t\t\t\tawait this.authService.init();\r\n\t\t\t}\r\n\r\n\t\t\tthis.settings = this.settingsService.browserSettings;\r\n\r\n\t\t\tthis.appInsights.config = {\r\n\t\t\t\tinstrumentationKey: this.settings.appInsightsInstrumentationKey,\r\n\t\t\t\tdisableFetchTracking: false\r\n\t\t\t};\r\n\t\t\tthis.appInsights.loadAppInsights();\r\n\t\t\tthis.appInsights.addTelemetryInitializer(function (item) {\r\n\t\t\t\t// 422 means an Api error, not a dependency failure\r\n\t\t\t\tif (item.baseType === RemoteDependencyData.dataType && item.baseData && (item.baseData as IDependencyTelemetry).responseCode === 422) {\r\n\t\t\t\t\titem.baseData.success = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (this.settings.googleAnalytics.id) {\r\n\t\t\t\tlet fc = new au.FrameworkConfiguration(this.aurelia);\r\n\t\t\t\tgaConfigure(fc, config => {\r\n\t\t\t\t\tconfig.init(this.settings.googleAnalytics.id);\r\n\t\t\t\t\tconfig.attach({\r\n\t\t\t\t\t\tlogging: {\r\n\t\t\t\t\t\t\tenabled: IS_DEV_BUILD\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tpageTracking: {\r\n\t\t\t\t\t\t\tenabled: this.settings.googleAnalytics.pageTracking,\r\n\t\t\t\t\t\t\tgetUrl: payload => \"/\" + payload.instruction.config.name\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tclickTracking: {\r\n\t\t\t\t\t\t\tenabled: this.settings.googleAnalytics.clickTracking,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\texceptionTracking: {\r\n\t\t\t\t\t\t\tenabled: this.settings.googleAnalytics.exceptionTracking\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.diagnosticsClient.getVersions().then(x => this.versions = x);\r\n\r\n\t\t\tlet favicon = document.querySelector(\"link[rel='shortcut icon']\") as HTMLLinkElement;\r\n\t\t\tif (favicon && this.settings.faviconUrl) {\r\n\t\t\t\tfavicon.href = this.settings.faviconUrl;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(\"Error occurred while loading the portal\");\r\n\t\t\tthis.appInsights.trackException(e);\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\tasync assertResponse(r: Response): Promise {\r\n\t\tif (r.ok) {\r\n\t\t\treturn r;\r\n\t\t}\r\n\t\telse if (r.status === 401) {\r\n\t\t\tthrow new at.UnauthorizedException();\r\n\t\t}\r\n\t\telse if (r.status === 403) {\r\n\t\t\tthrow new at.ForbiddenException();\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn r.json().then((d: at.IApiException) => this.exceptionService.throw(d));\r\n\t\t}\r\n\t}\r\n\r\n\tresponseError(error: any): Promise {\r\n\t\tthis.appInsights.trackException(error);\r\n\t\tthrow error;\r\n\t}\r\n\r\n\tasync logoutNavStrategy(instruction: au.NavigationInstruction): Promise {\r\n\t\tawait this.authService.logout(false);\r\n\t\tinstruction.config.redirect = app.Route.login;\r\n\t}\r\n\r\n\tasync refreshRoutes() {\r\n\t\tlet authenticated = await this.authService.isAuthenticatedAsync();\r\n\t\tthis.logger.info(\"Refreshing routes, authenticated = \", authenticated);\r\n\t\tlet token: at.ITokenPayload;\r\n\t\tif (authenticated) {\r\n\t\t\ttoken = this.authService.getTokenPayload();\r\n\t\t\tthis.role = token.role as string;\r\n\t\t\tthis.appInsights.setAuthenticatedUserContext(token.userid);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.appInsights.clearAuthenticatedUserContext();\r\n\t\t\tthis.role = undefined;\r\n\t\t}\r\n\t\tthis.navModels = this.router.navigation\r\n\t\t\t.filter(x => app.isRouteAllowed(x.configEx, token, this.settingsService)\r\n\t\t\t\t&& (x.config.name != app.Route.login || !authenticated));\r\n\t}\r\n\r\n\tregisterExceptions() {\r\n\t\tthis.exceptionService.register(\"AspNetToolkit.Exceptions.UnconfirmedEmailException\", at.UnconfirmedEmailException);\r\n\t\tthis.exceptionService.register(\"AspNetToolkit.Exceptions.InvalidCredentialsException\", at.InvalidCredentialsException);\r\n\t\tthis.exceptionService.register(\"AspNetToolkit.Exceptions.TooManyRecordsException\", at.TooManyRecordsException);\r\n\t\tthis.exceptionService.register(\"AspNetToolkit.Exceptions.IdentityException\", app.IdentityException);\r\n\t\tthis.exceptionService.register(\"AspNetToolkit.Exceptions.LockedOutException\", app.LockedOutException);\r\n\t\tthis.exceptionService.register(\"AquaWeb.Common.Exceptions.EmailTakenException\", app.EmailTakenException);\r\n\t\tthis.exceptionService.register(\"AquaWeb.Common.Exceptions.InactiveUserException\", app.InactiveUserException);\r\n\t\tthis.exceptionService.register(\"AquaWeb.Common.Exceptions.NotMatchingBirthDateException\", app.NotMatchingBirthDateException);\r\n\t\tthis.exceptionService.register(\"AquaWeb.Common.Exceptions.NotFoundException\", app.NotFoundException);\r\n\t}\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { Tenant } from \"custom-elements/tenant/tenant\";\r\n\r\n@au.autoinject\r\nexport class NewTenancy {\r\n\tconstructor(validationControllerFactory: at.ValidationControllerFactory, private propertyClient: app.PropertyClient, private organisationClient: app.OrganisationClient,\r\n\t\tprivate dateService: at.DateService, private alertService: at.AlertService, private router: au.Router, private webRequestClient: app.WebRequestClient,\r\n\t\tprivate taskQueue: au.TaskQueue, private i18n: au.I18N) {\r\n\t\tthis.validationController = validationControllerFactory.createForCurrentScope();\r\n\t\tthis.requestRules = au.ValidationRules\r\n\t\t\t.ensure(x => x.fkProperty).required()\r\n\t\t\t.rules;\r\n\t\tthis.rules = au.ValidationRules\r\n\t\t\t.ensure(x => x.dateMoving).required().then().satisfies(async x => au.moment(x).isAfter(await this.dateService.getServerDate())).withMessage(\"must be in the future.\")\r\n\t\t\t.ensure(x => x.meterNumber).maxLength(20)\r\n\t\t\t.ensure(x => x.meterReading).required().when(x => !!x.meterNumber)\r\n\t\t\t.ensure(x => x.dateRead).required().when(x => !!x.meterNumber)\r\n\t\t\t.ensure(x => x.meterReaderName).required().when(x => !!x.meterNumber).maxLength(80)\r\n\t\t\t.rules;\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\torganisation: app.Organisation2;\r\n\trequest: app.SubmitTenancyRequest;\r\n\ttenantVMs: Tenant[] = [];\r\n\tisNewTenancy: boolean;\r\n\tisReadonly: boolean;\r\n\tfullAddress: string;\r\n\trules: au.Rule[][];\r\n\trequestRules: au.Rule[][];\r\n\r\n\tdetermineActivationStrategy() {\r\n\t\treturn au.activationStrategy.replace;\r\n\t}\r\n\r\n\tasync activate(params: IHaveGuid, routeConfig: au.RouteConfig, navigationInstruction: au.NavigationInstruction): Promise {\r\n\t\tif (params.guid) {\r\n\t\t\tlet wr = await this.webRequestClient.getTenancyRequest(params.guid);\r\n\t\t\tthis.request = new app.SubmitTenancyRequest(wr);\r\n\t\t\tthis.isReadonly = wr.fkRequestStatus !== \"N\";\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.request = app.SubmitTenancyRequest.fromJS({ Tenancy: {}, Tenants: [{ isSelected: true }] });\r\n\t\t\tthis.fullAddress = \"\";\r\n\t\t\tthis.isReadonly = false;\r\n\t\t}\r\n\t\tif (!this.isReadonly) {\r\n\t\t\tthis.validationController.addObject(this.request.tenancy, this.rules);\r\n\t\t\tthis.validationController.addObject(this.request, this.requestRules);\r\n\t\t}\r\n\t\tthis.isNewTenancy = navigationInstruction.config.name === app.Route.newTenant;\r\n\t\tthis.request.fkRequestType = this.isNewTenancy ? \"NT\" : \"VT\";\r\n\t\tthis.organisation = await this.organisationClient.getMy();\r\n\t}\r\n\r\n\tdeactivate() {\r\n\t\tthis.validationController.removeObject(this.request.tenancy);\r\n\t}\r\n\r\n\tgetProperties(criteria: au.ILookupOptionsFunctionParameter): Promise {\r\n\t\tif (criteria.filter) {\r\n\t\t\treturn this.propertyClient.find(criteria.filter);\r\n\t\t}\r\n\t\telse if (criteria.value) {\r\n\t\t\treturn this.propertyClient.getPropertyInfo(criteria.value).then(x => [x]);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve([]);\r\n\t\t}\r\n\t}\r\n\r\n\taddTenant() {\r\n\t\tthis.unselectTenant();\r\n\t\tlet tenant = new app.WebRequestTenant();\r\n\t\t(tenant).isSelected = true;\r\n\t\tthis.request.tenants.push(tenant);\r\n\t}\r\n\r\n\tremoveTenant(t: app.WebRequestTenant) {\r\n\t\tthis.request.tenants.splice(this.request.tenants.indexOf(t), 1);\r\n\t\tthis.validationController.removeObject(t);\r\n\t}\r\n\r\n\tasync submit() {\r\n\t\tif (!this.request.tenants.length) {\r\n\t\t\tthis.alertService.error(\"Please add at least one tenant\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet results = this.tenantVMs.filter(x => x !== null).map(x => x.validationController.validate());\r\n\t\tresults.push(this.validationController.validate());\r\n\t\tif ((await Promise.all(results)).find(x => !x.valid)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tthis.alertService.showProgress();\r\n\t\t\tawait this.webRequestClient.submitTenancy(this.request);\r\n\t\t\tawait this.alertService.alert(this.i18n.tr(this.isNewTenancy ? \"NewTenant.SubmitSuccess\" : \"VacatingTenant.SubmitSuccess\"));\r\n\t\t\tthis.router.navigateToRoute(app.Route.home);\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tthis.alertService.error(this.i18n.tr(this.isNewTenancy ? \"NewTenant.SubmitError\" : \"VacatingTenant.SubmitError\"));\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tthis.alertService.hideProgress();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tunselectTenant() {\r\n\t\tthis.request.tenants.forEach(x => (x).isSelected = false);\r\n\t}\r\n\r\n\tselectTenant(t: app.WebRequestTenant) {\r\n\t\tthis.unselectTenant();\r\n\t\t(t).isSelected = true;\r\n\t\treturn true;\r\n\t}\r\n\r\n}","module.exports = \"\";","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\n\r\n@au.autoinject\r\nexport class Users extends app.PaginatedBase {\r\n\tconstructor(private userClient: app.UserClient, alertService: at.AlertService, private router: au.Router, private dataStorageService: app.DataStorageService,\r\n\t\tprivate authService: app.IAuthService, private settingsService: app.SettingsService) {\r\n\t\tsuper(alertService);\r\n\t}\r\n\r\n\tusers: app.UserInfo[];\r\n\troles: app.Role[];\r\n\tstatuses: app.StatusInfo[] = [];\r\n\r\n\tget savedFilterLines(): at.IFilterLine[] {\r\n\t\treturn this.dataStorageService.data.usersFilterLines;\r\n\t}\r\n\tset savedFilterLines(value: at.IFilterLine[]) {\r\n\t\tthis.dataStorageService.data.usersFilterLines = value;\r\n\t}\r\n\r\n\tasync activate() {\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet r = await Promise.all([\r\n\t\t\t\tthis.userClient.getAllRoles().then(x => this.roles = x),\r\n\t\t\t\tthis.userClient.getStatuses().then(x => this.statuses = x),\r\n\t\t\t]);\r\n\r\n\t\t\tif (this.savedFilterLines && this.savedFilterLines.length) {\r\n\t\t\t\tthis.filterLines = this.savedFilterLines;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.filterLines = [];\r\n\t\t\t}\r\n\t\t\tawait this.search();\r\n\t\t\tthis.isActivated = true;\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\tgetRoles = (p: au.ILookupOptionsFunctionParameter): Promise => {\r\n\t\tif (p.value) {\r\n\t\t\treturn Promise.resolve([this.roles.find(x => x.id === p.value)]);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn Promise.resolve(this.roles.filter(x => x.name.includes(p.filter)));\r\n\t\t}\r\n\t}\r\n\r\n\tasync fetch(request: app.SearchRequest): Promise {\r\n\t\trequest.filterItems.filter(x => x.value instanceof Date).forEach(x => x.value = x.value.asUtc());\r\n\t\tlet response = await this.userClient.getUsers(request);\r\n\t\tthis.users = response.items;\r\n\t\treturn response;\r\n\t}\r\n\r\n\tedit(user: app.UserInfo) {\r\n\t\tif (app.isRouteAllowed(this.router.routes.find(x => x.name === app.Route.editUser), this.authService.getTokenPayload(), this.settingsService)) {\r\n\t\t\tthis.router.navigateToRoute(app.Route.editUser, { id: user.id });\r\n\t\t}\r\n\t}\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".users-page td.email{display:flex;align-items:center}\", \"\"]);\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\n\r\nexport interface IChartType {\r\n\tname: string;\r\n\tvolumePeriodTypeCode: string;\r\n\tunits: string;\r\n\tconvertVolume: (v: number, d: Date, people: number) => number;\r\n\tshowTarget: boolean;\r\n\tgetFrom: () => Date;\r\n\tlabelFormat: string;\r\n}\r\n\r\nexport function getTypes(isResidentialCustomer: boolean, showDaily: boolean): IChartType[] {\r\n\tlet res = [\r\n\t\t{\r\n\t\t\tname: \"Monthly\", volumePeriodTypeCode: \"M\", units: \"kL\", convertVolume: v => v,\r\n\t\t\tshowTarget: false, getFrom: () => au.moment().add(-13, \"month\").toDate(), labelFormat: \"MM/YYYY\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tname: \"Monthly Average\", volumePeriodTypeCode: \"M\", units: \"L\", convertVolume: (v, d, people) => v / au.moment(d).daysInMonth() * 1000 / people,\r\n\t\t\tshowTarget: isResidentialCustomer, getFrom: () => au.moment().add(-13, \"month\").toDate(), labelFormat: \"MM/YYYY\"\r\n\t\t}\r\n\t];\r\n\tif (showDaily) {\r\n\t\tres.push({\r\n\t\t\tname: \"Daily\", volumePeriodTypeCode: \"D\", units: \"L\", convertVolume: (v, d, people) => v * 1000 / people,\r\n\t\t\tshowTarget: isResidentialCustomer, getFrom: () => au.moment().add(-1, \"month\").toDate(), labelFormat: \"L\"\r\n\t\t});\r\n\t}\r\n\treturn res;\r\n}\r\n","import * as au from \"aurelia\";\r\nimport * as app from \"app\";\r\nimport * as at from \"aurelia-toolkit\";\r\nimport { getTypes, IChartType } from './i-chart-type';\r\nimport { setTimeout } from 'timers';\r\n\r\n@au.autoinject\r\nexport class VolumesPeriod {\r\n\tconstructor(private meterClient: app.MeterClient, private alertService: at.AlertService, private settingsService: app.SettingsService,\r\n\t\tprivate accountClient: app.AccountClient, private authService: app.IAuthService, private validationControllerFactory: at.ValidationControllerFactory,\r\n\t\tprivate dateService: at.DateService) {\r\n\t\tthis.validationController = this.validationControllerFactory.createForCurrentScope();\r\n\t\tau.ValidationRules\r\n\t\t\t.ensure(x => x.from).required().satisfies(x => au.moment(x).isBefore(this.to)).withMessage(\"must be before 'From'\")\r\n\t\t\t.ensure(x => x.to).required().satisfies(x => au.moment(x).isAfter(this.from)).withMessage(\"must be after 'To'\")\r\n\t\t\t.on(this);\r\n\t}\r\n\r\n\tvalidationController: au.ValidationController;\r\n\tmeters: app.MeterInfo[] = [];\r\n\tminVolumeDate: Date;\r\n\r\n\t@au.observable\r\n\tmeter: app.MeterInfo;\r\n\tasync meterChanged() {\r\n\t\tthis.peopleInHousehold = await this.accountClient.getPeopleInHousehold(this.meter.account.pkAccount);\r\n\t\tthis.scheduleShow();\r\n\t}\r\n\r\n\t@au.observable\r\n\tfrom: Date;\r\n\tasync fromChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"to\" });\r\n\t\tthis.scheduleShow();\r\n\t}\r\n\r\n\t@au.observable\r\n\tto: Date;\r\n\tasync toChanged() {\r\n\t\tthis.validationController.validate({ object: this, propertyName: \"from\" });\r\n\t\tthis.scheduleShow();\r\n\t}\r\n\r\n\ttypes: IChartType[];\r\n\tchart: any;\r\n\tisResidentialCustomer: boolean;\r\n\r\n\t@au.observable\r\n\ttype: IChartType;\r\n\tasync typeChanged() {\r\n\t\tthis.from = this.type.getFrom();\r\n\t\tthis.to = new Date();\r\n\t\tthis.scheduleShow();\r\n\t}\r\n\r\n\tdailyUsageTarget = this.settingsService.browserSettings.account.dailyUsageTarget;\r\n\r\n\t@au.observable\r\n\tpeopleInHousehold: number;\r\n\tasync peopleInHouseholdChanged() {\r\n\t\tif (this.meter) {\r\n\t\t\tawait this.accountClient.updatePeopleInHousehold(new app.UpdatePeopleInHouseholdRequest({ pkAccount: this.meter.account.pkAccount, peopleInHousehold: this.peopleInHousehold }));\r\n\t\t}\r\n\t\tthis.scheduleShow();\r\n\t}\r\n\r\n\tvolumes: Chart.ChartData = { labels: [], datasets: [] };\r\n\tchartOptions: Chart.ChartOptions = {\r\n\t\tlegend: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tscales: {\r\n\t\t\tyAxes: [{ stacked: true, ticks: { min: 0, suggestedMax: 1 } as any, scaleLabel: { display: true } }]\r\n\t\t},\r\n\t\ttooltips: {\r\n\t\t\tenabled: true\r\n\t\t}\r\n\t};\r\n\tchartDataLabels: Chart.ChartDataSets[\"datalabels\"] = {\r\n\t\tanchor: \"end\",\r\n\t\talign: \"end\",\r\n\t\tcolor: \"black\",\r\n\t\tdisplay: false\r\n\t};\r\n\r\n\tasync activate(): Promise {\r\n\t\tthis.isResidentialCustomer = this.authService.getTokenPayload().role === app.Roles.residentialCustomer;\r\n\t\tthis.types = getTypes(this.isResidentialCustomer, this.settingsService.browserSettings.meterVolume.showDaily);\r\n\t\tthis.minVolumeDate = au.moment(await this.dateService.getServerDate()).subtract(this.settingsService.aquaRateSettings.volumeHistoryYears, \"years\").toDate();\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis.meterClient.getConnected().then(x => this.meters = x)\r\n\t\t\t]);\r\n\t\t\tthis.type = this.types[0];\r\n\t\t\tif (this.meters.length === 1) {\r\n\t\t\t\tthis.meter = this.meters[0];\r\n\t\t\t}\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n\ttimeout: NodeJS.Timeout;\r\n\tscheduleShow() {\r\n\t\tif (this.timeout) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.timeout = setTimeout(() => {\r\n\t\t\tthis.show();\r\n\t\t\tthis.timeout = null;\r\n\t\t}, 1000);\r\n\t}\r\n\r\n\tasync show() {\r\n\t\tif (!this.meter || !(await this.validationController.validate()).valid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tawait this.alertService.usingProgress(async () => {\r\n\t\t\tlet volumes = await this.meterClient.getPeriodVolumes(this.meter.meter.pk, this.from, this.to, this.type.volumePeriodTypeCode);\r\n\t\t\tthis.chartOptions.scales.yAxes[0].scaleLabel.labelString = this.type.units;\r\n\t\t\tthis.chartOptions.annotation = (this.type.showTarget && this.dailyUsageTarget) ? {\r\n\t\t\t\tannotations: [{\r\n\t\t\t\t\tdrawTime: \"afterDatasetsDraw\",\r\n\t\t\t\t\ttype: \"line\",\r\n\t\t\t\t\tmode: \"horizontal\",\r\n\t\t\t\t\tscaleID: \"y-axis-0\",\r\n\t\t\t\t\tvalue: this.dailyUsageTarget,\r\n\t\t\t\t\tborderColor: this.settingsService.browserSettings.colours.errorColour,\r\n\t\t\t\t\tborderWidth: 2,\r\n\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\tbackgroundColor: this.settingsService.browserSettings.colours.errorColour,\r\n\t\t\t\t\t\tcontent: this.dailyUsageTarget + \" L\",\r\n\t\t\t\t\t\tenabled: true,\r\n\t\t\t\t\t\tcornerRadius: 2\r\n\t\t\t\t\t},\r\n\t\t\t\t}]\r\n\t\t\t} : undefined;\r\n\t\t\tif (this.chart) {\r\n\t\t\t\tthis.chart.detached();\r\n\t\t\t\tthis.chart.attached();\r\n\t\t\t}\r\n\t\t\tlet people = this.peopleInHousehold ? this.peopleInHousehold : 1;\r\n\t\t\tthis.volumes = {\r\n\t\t\t\tlabels: volumes.map(x => au.moment(x.pkDate).format(this.type.labelFormat)),\r\n\t\t\t\tdatasets: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tbackgroundColor: this.settingsService.browserSettings.colours.primaryColour,\r\n\t\t\t\t\t\tdata: volumes.map(x => this.type.convertVolume(x.volume, x.pkDate, people)),\r\n\t\t\t\t\t\tdatalabels: this.chartDataLabels\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t};\r\n\t\t}, e => this.alertService.criticalError(app.Strings.errorWhileLoadingPage, e));\r\n\t}\r\n\r\n}","module.exports = \"\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".volumes-period chart{width:100%;height:auto;display:block;margin-top:10px}\", \"\"]);\n"],"sourceRoot":""}