{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/account/account-routing.module.ts","webpack:///src/app/account/account-statement/account-statement.component.ts","webpack:///src/app/account/account-statement/account-statement.component.html","webpack:///src/app/account/account.module.ts","webpack:///src/app/account/awaiting-posta-approval/awaiting-posta-approval.component.ts","webpack:///src/app/account/awaiting-posta-approval/awaiting-posta-approval.component.html","webpack:///src/app/account/awaiting-verification/awaiting-verification.component.ts","webpack:///src/app/account/awaiting-verification/awaiting-verification.component.html","webpack:///src/app/account/change-password/change-password.component.ts","webpack:///src/app/account/change-password/change-password.component.html","webpack:///src/app/account/entities/user.ts","webpack:///src/app/account/forgotten-password/forgotten-password.component.ts","webpack:///src/app/account/forgotten-password/forgotten-password.component.html","webpack:///src/app/account/login/business-login/business-login.component.ts","webpack:///src/app/account/login/business-login/business-login.component.html","webpack:///src/app/account/login/private-login/private-login.component.ts","webpack:///src/app/account/login/private-login/private-login.component.html","webpack:///src/app/account/login/samleikin-login/samleikin-login.component.ts","webpack:///src/app/account/login/samleikin-login/samleikin-login.component.html","webpack:///src/app/account/login/samleikin-migrate/samleikin-migrate.component.ts","webpack:///src/app/account/login/samleikin-migrate/samleikin-migrate.component.html","webpack:///src/app/account/register/business-register.component.ts","webpack:///src/app/account/register/business-register.component.html","webpack:///src/app/account/register/private-register.component.ts","webpack:///src/app/account/register/private-register.component.html","webpack:///src/app/account/register/register.component.ts","webpack:///src/app/account/register/register.component.html","webpack:///src/app/account/reset-password/reset-password.component.ts","webpack:///src/app/account/reset-password/reset-password.component.html","webpack:///src/app/account/services/authentication.service.ts","webpack:///src/app/account/services/mobile-verification.resolver.ts","webpack:///src/app/account/services/register.service.ts","webpack:///src/app/account/services/role.service.ts","webpack:///src/app/account/services/user.service.ts","webpack:///src/app/account/services/userProfile.resolver.ts","webpack:///src/app/account/services/verification.resolver.ts","webpack:///src/app/account/update-profile/update-profile.component.ts","webpack:///src/app/account/update-profile/update-profile.component.html","webpack:///src/app/account/verification/verification.component.ts","webpack:///src/app/account/verification/verification.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.initializer.ts","webpack:///src/app/app.module.ts","webpack:///src/app/base.component.ts","webpack:///src/app/base.component.html","webpack:///src/app/ccs/ccs-routing.module.ts","webpack:///src/app/ccs/ccs.module.ts","webpack:///src/app/ccs/ccsconfirmation/ccsconfirmation.component.ts","webpack:///src/app/ccs/ccsconfirmation/ccsconfirmation.component.html","webpack:///src/app/ccs/ccsdetail/ccsdetail.component.ts","webpack:///src/app/ccs/ccsdetail/ccsdetail.component.html","webpack:///src/app/ccs/services/ccs-order.resolver.ts","webpack:///src/app/ccs/services/ccs.service.ts","webpack:///src/app/custom-url-serializer.ts","webpack:///src/app/home/home-personal/home-personal.component.ts","webpack:///src/app/home/home-personal/home-personal.component.html","webpack:///src/app/import-services/customs-calculator/customs-calculator.component.ts","webpack:///src/app/import-services/customs-calculator/customs-calculator.component.html","webpack:///src/app/import-services/import-services-routing.module.ts","webpack:///src/app/import-services/import-services.module.ts","webpack:///src/app/import-services/pay-customs/base-pay-customs.component.ts","webpack:///src/app/import-services/pay-customs/base-pay-customs.component.html","webpack:///src/app/import-services/pay-customs/customs-confirmation/customs-confirmation.component.ts","webpack:///src/app/import-services/pay-customs/customs-confirmation/customs-confirmation.component.html","webpack:///src/app/import-services/pay-customs/details-and-payment/details-and-payment.component.ts","webpack:///src/app/import-services/pay-customs/details-and-payment/details-and-payment.component.html","webpack:///src/app/import-services/pay-customs/pay-customs.component.ts","webpack:///src/app/import-services/pay-customs/pay-customs.component.html","webpack:///src/app/import-services/pay-customs/pay-invoice.component.ts","webpack:///src/app/import-services/pay-customs/pay-invoice.component.html","webpack:///src/app/import-services/pay-customs/user-confirmation/user-confirmation.component.ts","webpack:///src/app/import-services/pay-customs/user-confirmation/user-confirmation.component.html","webpack:///src/app/import-services/resolvers/category.resolver.ts","webpack:///src/app/import-services/services/category-service.ts","webpack:///src/app/import-services/services/customs.service.ts","webpack:///src/app/import-services/upload-missing-documentation/upload-missing-documentation.component.ts","webpack:///src/app/import-services/upload-missing-documentation/upload-missing-documentation.component.html","webpack:///src/app/send-receive/buy-postage/buy-postage-confirmation/buy-postage-confirmation.component.ts","webpack:///src/app/send-receive/buy-postage/buy-postage-confirmation/buy-postage-confirmation.component.html","webpack:///src/app/send-receive/buy-postage/buy-postage-landing/buy-postage-landing.component.ts","webpack:///src/app/send-receive/buy-postage/buy-postage-landing/buy-postage-landing.component.html","webpack:///src/app/send-receive/buy-postage/buy-postage-login/buy-postage-login.component.ts","webpack:///src/app/send-receive/buy-postage/buy-postage-login/buy-postage-login.component.html","webpack:///src/app/send-receive/buy-postage/buy-postage-secondary/buy-postage-secondary.component.ts","webpack:///src/app/send-receive/buy-postage/buy-postage-secondary/buy-postage-secondary.component.html","webpack:///src/app/send-receive/buy-postage/buy-postage/buy-postage.component.ts","webpack:///src/app/send-receive/buy-postage/buy-postage/buy-postage.component.html","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-addresses/buy-postage-addresses.component.ts","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-addresses/buy-postage-addresses.component.html","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-customs/buy-postage-customs.component.ts","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-customs/buy-postage-customs.component.html","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-item-types/buy-postage-item-types.component.ts","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-item-types/buy-postage-item-types.component.html","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-item-types/item-type/item-type.component.ts","webpack:///src/app/send-receive/buy-postage/international-goods/buy-postage-item-types/item-type/item-type.component.html","webpack:///src/app/send-receive/buy-postage/international-goods/inline-login/inline-login.component.ts","webpack:///src/app/send-receive/buy-postage/international-goods/inline-login/inline-login.component.html","webpack:///src/app/send-receive/entities/CustomsItemType.ts","webpack:///src/app/send-receive/entities/DefaultShipmentDimensions.ts","webpack:///src/app/send-receive/entities/Order.ts","webpack:///src/app/send-receive/entities/parcel.ts","webpack:///src/app/send-receive/entities/serviceOption.ts","webpack:///src/app/send-receive/entities/trackTraceItemArray.ts","webpack:///src/app/send-receive/enums/OrderState.ts","webpack:///src/app/send-receive/new-order/find-prices/find-prices/find-prices.component.ts","webpack:///src/app/send-receive/new-order/find-prices/find-prices/find-prices.component.html","webpack:///src/app/send-receive/new-order/find-prices/view-prices/view-prices.component.ts","webpack:///src/app/send-receive/new-order/find-prices/view-prices/view-prices.component.html","webpack:///src/app/send-receive/new-order/order-details/order-details.component.ts","webpack:///src/app/send-receive/new-order/order-details/order-details.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/account-address/from-account-address.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/account-address/from-account-address.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/account-address/to-account-address.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/account-address/to-account-address.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/posta-depot-address/posta-depot-address.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/posta-depot-address/posta-depot-address.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/send-and-receive-addresses.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/addresses/send-and-receive-addresses.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/send-and-receive.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/send-and-receive.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/send-receive-confirmation/send-receive-confirmation.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/send-receive-confirmation/send-receive-confirmation.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/services/country.resolver.ts","webpack:///src/app/send-receive/new-order/send-and-receive/services/order.resolver.ts","webpack:///src/app/send-receive/new-order/send-and-receive/services/send-receive.service.ts","webpack:///src/app/send-receive/new-order/send-and-receive/services/shipmentTypes.resolver.ts","webpack:///src/app/send-receive/new-order/send-and-receive/services/tax.resolver.ts","webpack:///src/app/send-receive/new-order/send-and-receive/services/track-trace.service.ts","webpack:///src/app/send-receive/new-order/send-and-receive/specification/send-and-receive-specification.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/specification/send-and-receive-specification.component.html","webpack:///src/app/send-receive/new-order/send-and-receive/specification/send-receive-prices/send-receive-prices.component.ts","webpack:///src/app/send-receive/new-order/send-and-receive/specification/send-receive-prices/send-receive-prices.component.html","webpack:///src/app/send-receive/send-receive-routing.module.ts","webpack:///src/app/send-receive/send-receive.module.ts","webpack:///src/app/send-receive/services/buy-postage-order.resolver.ts","webpack:///src/app/send-receive/services/buy-postage.service.ts","webpack:///src/app/send-receive/services/payment.service.ts","webpack:///src/app/send-receive/services/user-details.resolver.ts","webpack:///src/app/send-receive/test/test.component.ts","webpack:///src/app/send-receive/test/test.component.html","webpack:///src/app/send-receive/track-and-trace/track-and-trace.component.ts","webpack:///src/app/send-receive/track-and-trace/track-and-trace.component.html","webpack:///src/app/send-receive/view-order/view-order.component.ts","webpack:///src/app/send-receive/view-order/view-order.component.html","webpack:///src/app/send-receive/view-order/view-postage-order/view-postage-order.component.ts","webpack:///src/app/send-receive/view-order/view-postage-order/view-postage-order.component.html","webpack:///src/app/services/customTranslateLoader.ts","webpack:///src/app/shared/address-book/address-book.component.ts","webpack:///src/app/shared/address-book/address-book.component.html","webpack:///src/app/shared/address-book/edit-address/edit-address.component.ts","webpack:///src/app/shared/address-book/edit-address/edit-address.component.html","webpack:///src/app/shared/address-book/new-address/create-new-address.component.ts","webpack:///src/app/shared/address-book/new-address/create-new-address.component.html","webpack:///src/app/shared/address-book/new-address/from-new-address.component.ts","webpack:///src/app/shared/address-book/new-address/from-new-address.component.html","webpack:///src/app/shared/address-book/new-address/to-new-address.component.ts","webpack:///src/app/shared/address-book/new-address/to-new-address.component.html","webpack:///src/app/shared/address-book/view-all-addresses/view-all-addresses.component.ts","webpack:///src/app/shared/address-book/view-all-addresses/view-all-addresses.component.html","webpack:///src/app/shared/contact-us/contact-us.component.ts","webpack:///src/app/shared/contact-us/contact-us.component.html","webpack:///src/app/shared/dialogs/logout-dialog/logout-dialog.component.ts","webpack:///src/app/shared/dialogs/logout-dialog/logout-dialog.component.html","webpack:///src/app/shared/error/error-message/error-message.component.ts","webpack:///src/app/shared/error/error-message/error-message.component.html","webpack:///src/app/shared/error/field-error-message/field-error-message.component.ts","webpack:///src/app/shared/error/field-error-message/field-error-message.component.html","webpack:///src/app/shared/error/page-not-found/page-not-found.component.ts","webpack:///src/app/shared/error/page-not-found/page-not-found.component.html","webpack:///src/app/shared/file-upload-missing-documents/file-upload-missing-documents.component.ts","webpack:///src/app/shared/file-upload-missing-documents/file-upload-missing-documents.component.html","webpack:///src/app/shared/file-upload/file-upload.component.ts","webpack:///src/app/shared/file-upload/file-upload.component.html","webpack:///src/app/shared/footer/footer/footer.component.ts","webpack:///src/app/shared/footer/footer/footer.component.html","webpack:///src/app/shared/guards/auth.guard.ts","webpack:///src/app/shared/guards/homepage.guard.ts","webpack:///src/app/shared/guards/profileComplete.guard.ts","webpack:///src/app/shared/guid/guid.ts","webpack:///src/app/shared/header/header-personal/header-personal.component.ts","webpack:///src/app/shared/header/header-personal/header-personal.component.html","webpack:///src/app/shared/helpers/error-helper.ts","webpack:///src/app/shared/helpers/scroll-view-helper.ts","webpack:///src/app/shared/helpers/static-content-helper.ts","webpack:///src/app/shared/helpers/translation-helper.ts","webpack:///src/app/shared/jwt.interceptor.ts","webpack:///src/app/shared/my-posta/all-orders/orders-summary/orders-summary.component.ts","webpack:///src/app/shared/my-posta/all-orders/orders-summary/orders-summary.component.html","webpack:///src/app/shared/my-posta/view-all-orders/view-all-orders.component.ts","webpack:///src/app/shared/my-posta/view-all-orders/view-all-orders.component.html","webpack:///src/app/shared/pipes/numberFormat.pipe.ts","webpack:///src/app/shared/pipes/numberLocalization.pipe.ts","webpack:///src/app/shared/pipes/priceFormat.pipe.ts","webpack:///src/app/shared/pipes/safeHtml.pipe.ts","webpack:///src/app/shared/pipes/toDateObj.pipe.ts","webpack:///src/app/shared/price-matrix/enums/ProductType.ts","webpack:///src/app/shared/price-matrix/enums/ServiceType.ts","webpack:///src/app/shared/price-matrix/services/price-matrix.service.ts","webpack:///src/app/shared/services/address-service.ts","webpack:///src/app/shared/services/cookie.service.ts","webpack:///src/app/shared/services/country.service.ts","webpack:///src/app/shared/services/custom-shipment-types.service.ts","webpack:///src/app/shared/services/inco-terms.service.ts","webpack:///src/app/shared/services/orders.service.ts","webpack:///src/app/shared/services/static-content.service.ts","webpack:///src/app/shared/services/upload-file.service.ts","webpack:///src/app/shared/shared-routing.module.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/shared/static-content/static-content-page.component.ts","webpack:///src/app/shared/static-content/static-content-page.component.html","webpack:///src/app/shopping-services/brochure-dialog/brochure-dialog.component.ts","webpack:///src/app/shopping-services/brochure-dialog/brochure-dialog.component.html","webpack:///src/app/shopping-services/create-shopping-lists-dialog/create-shopping-lists-dialog.component.ts","webpack:///src/app/shopping-services/create-shopping-lists-dialog/create-shopping-lists-dialog.component.html","webpack:///src/app/shopping-services/generated-code-dialog/generated-code-dialog/generated-code-dialog.component.ts","webpack:///src/app/shopping-services/generated-code-dialog/generated-code-dialog/generated-code-dialog.component.html","webpack:///src/app/shopping-services/manual-item-dialog/manual-item-dialog.component.ts","webpack:///src/app/shopping-services/manual-item-dialog/manual-item-dialog.component.html","webpack:///src/app/shopping-services/new-shopping-list-dialog/new-shopping-list-dialog.component.ts","webpack:///src/app/shopping-services/new-shopping-list-dialog/new-shopping-list-dialog.component.html","webpack:///src/app/shopping-services/offers-products/offers-products.component.ts","webpack:///src/app/shopping-services/offers-products/offers-products.component.html","webpack:///src/app/shopping-services/services/brochure-service.ts","webpack:///src/app/shopping-services/services/product.service.ts","webpack:///src/app/shopping-services/services/shopping-list-service.ts","webpack:///src/app/shopping-services/shopping-services-routing.module.ts","webpack:///src/app/shopping-services/shopping-services.module.ts","webpack:///src/app/shopping-services/view-all-shopping-lists/view-all-shopping-lists.component.ts","webpack:///src/app/shopping-services/view-all-shopping-lists/view-all-shopping-lists.component.html","webpack:///src/app/shopping-services/view-shared-shopping-list/view-shared-shopping-list.component.ts","webpack:///src/app/shopping-services/view-shared-shopping-list/view-shared-shopping-list.component.html","webpack:///src/app/shopping-services/view-shopping-list/view-shopping-list.component.ts","webpack:///src/app/shopping-services/view-shopping-list/view-shopping-list.component.html","webpack:///src/app/waybill/entities/ImportExportServiceType.ts","webpack:///src/app/waybill/services/waybill-order.resolver.ts","webpack:///src/app/waybill/services/waybill.service.ts","webpack:///src/app/waybill/waybill-detail/waybill-detail.component.ts","webpack:///src/app/waybill/waybill-detail/waybill-detail.component.html","webpack:///src/app/waybill/waybill-list/waybill-list.component.ts","webpack:///src/app/waybill/waybill-list/waybill-list.component.html","webpack:///src/app/waybill/waybill-routing.module.ts","webpack:///src/app/waybill/waybill.module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","map","webpackContext","webpackContextResolve","__webpack_require__","o","webpackContextKeys","Object","routes","path","component","verified","userProfile","canActivate","AccountRoutingModule","forChild","imports","AccountStatementComponent","userService","formBuilder","showAccountSelect","firstDayOfLastMonth","Date","setDate","lastDayOfLastMonth","filterFormGroup","group","account","required","fromDate","toDate","getCustomerAccounts","subscribe","x","customerAccounts","length","downloading","fromDateField","get","toDateField","value","format","toISOString","split","selectedAccount","getAccountStatement","accountNo","byteArray","Uint8Array","atob","char","charCodeAt","blob","Blob","type","url","window","URL","createObjectURL","link","document","createElement","href","download","click","downloadFailed","error","downloadStatement","selector","templateUrl","styleUrls","AccountModule","declarations","AwaitingPostaApprovalComponent","AwaitingVerificationComponent","route","roleService","showEmailSentBody","snapshot","paramMap","isPrivateUser","ChangePasswordComponent","_formBuilder","authService","errorHelper","passwordSuccessfullyChanged","passwordsDoNotMatch","passwordChangeFailed","changePasswordForm","currentPassword","newPassword","confirmPassword","validators","passwordMatchValidator","field","errors","getErrorMessage","g","setErrors","valid","markAllAsTouched","changeRequest","changePassword","User","ForgottenPasswordComponent","translateService","isPrivate","passwordResetRequested","isPostaApproved","role","setRole","resetPasswordForm","email","forgottenInput","languageCode","currentLang","toUpperCase","userTypeId","resetPassword","BusinessLoginComponent","router","scrollViewHelper","staticContentService","dialog","loginFailed","loading","interval","setInterval","staticContent","loadAllCssJs","pageTitle","getPageTitle","pageModules","getHtmlAfterPsModule","clearInterval","onLangChange","passwordForm","password","returnUrl","queryParams","temp","getHtmlBelowPsModule","invalid","login","pipe","data","userDetails","JSON","parse","toString","navigate","isProfileComplete","createShoppingLists","status","scrollIntoViewAndCenter","loggedOutLists","localStorage","getItem","shoppingListsObj","dialogRef","open","height","width","lists","PrivateLoginComponent","isVerified","isEmailVerificationMessageJustBeenSent","navigateByUrl","location","reload","SamleikinLoginComponent","displayLoginFailed","displayLoginSuccessful","getSessionData","attributes","idNum","find","y","name","firstName","lastName","getPreAuthSamleikin","user","values","preAuthGuid","ptal","isSamleikin","samleikinLogin","z","console","log","SamleikinMigrateComponent","migrateToSamleikin","BusinessRegisterComponent","registerService","addressService","countryService","translateHelper","existingSelected","newSelected","preferEmail","preferSMS","dontKnowAccountNumber","failedToCreate","showFormError","saving","successfullyCreatedUser","postcodes","Array","countries","getPostcodes","businessFormGroup","accountNumber","companyName","countryCode","countryCodeValidator","telephoneNum","integerOnlyValidator","postcode","vtalNumber","maxLength","minLength","companyEmail","emailValidator","addressLine1","addressLine2","townCity","invoicePostcode","country","specialInstructions","jobTitle","asAbove","emailAddress","mobileCountryCode","mobileNum","specifyPassword","setValue","valueChanges","newValue","prependPlus","getAll","sort","disable","reset","touched","enable","company","isExisting","enabled","phoneCountryCode","replace","phoneNo","vtal","mobileNo","preferSms","companyAndUser","companyUser","registerCompanyAndUser","emit","scrollTo","userEmailExists","emailTaken","userMobileExists","mobileTaken","countryNameEN","countryNameFO","enableCustomerAccountNumberFied","proceed","clearAll","PrivateRegisterComponent","noSamleikin","privateFormGroup","individualRegister","RegisterComponent","isBusinessUserType","successfullyCreatedBusinessUser","successfullyCreatedPrivateUser","businessUser","event","ResetPasswordComponent","passwordSucessfullyReset","passwordResetFailed","codeType","resetPasswordRequest","AuthenticationService","http","cookieService","userSubject","asObservable","getUser","getCookie","username","post","apiUrl","responseType","userToken","setItem","stringify","getUserType","removeItem","next","token","setCookie","userCredentials","response","stopRefreshTokenTimer","deleteCookie","err","slice","join","input","put","clearTimeout","refreshTokenTimeout","providedIn","MobileVerificationResolver","authenticationService","state","verifyInput","CodeType","Code","verifyAccount","RegisterService","httpClient","RoleService","roleSubject","UserService","changeInput","customerAccountNo","UserProfileResolver","getIndividualUserProfile","getBusinessUserProfile","VerificationResolver","UpdateProfileComponent","titleService","ref","samleikinMigrateUrl","success","failed","detailsForm","instructions","registerForSMS","registerForEmail","formatFieldValue","disabled","company_name","company_vtal","company_postcode","company_email","company_address1","company_address2","company_town_city","company_country","getCountryNameForLanguage","setCountryByCode","company_phone_country_code","company_phone_number","tabTitle","getPageTabTitle","setTitle","detectChanges","userDetailsJson","profileWillBeComplete","substring","updateBusinessProfile","privateUser","updateIndividualProfile","save","VerificationComponent","successfulVerification","redirectTo","pathMatch","AppRoutingModule","forRoot","AppComponent","setStaticContent","getHash","staticContentHash","getStaticContent","setStaticContentHash","Hash","test","appInitializer","validateToken","add","AppModule","provide","useFactory","multi","deps","useValue","useClass","useUtc","loader","providers","bootstrap","BaseComponent","translate","_router","accountService","title","showHeaderFooter","events","val","isLoggedIn","splitPaths","setDefaultLang","use","routeReuseStrategy","shouldReuseRoute","evt","urlSplit","loggedInUserType","loggedIn","i","concat","navigated","pathname","newLang","lang","pathSubString","history","pushState","axdFiles","GlobalCss","forEach","loadjscssfile","jsAxdFiles","GlobalJs","logout","ccsSubmission","CcsRoutingModule","CcsModule","CCSConfirmationComponent","paymentService","downloadingInvoice","downloadingReceipt","invoiceError","undefined","downloadInvoice","Customs","wisePONumber","content","fileName","downloadReceipt","ccsId","CCSDetailComponent","userAccountService","translationHelper","_sanitizer","ccsService","downloadingPrintLabel","downloadingCDS","intervalSet","stopPolling","paymentSuccess","showPaymentScreen","showPaymentFailed","paymentCancelledOrFailed","getCCSInvoice","customsAmount","totalAmount","ccsInvoice","getUserDetails","getCountryName","countryName","file","isDownloading","downloadDocument","documentId","filename","fileUpload","nativeElement","onchange","index","files","reader","FileReader","readAsDataURL","onload","uploadDocument","result","documentList","push","endpoint","dibsUrl","dibsPay","iframeURL","bypassSecurityTrustResourceUrl","onFrameLoad","getReceipt","paymentRequestHeader","isPaid","isPaidButUpdateFailed","getElementById","remove","attemptedPaymentYN","CCSOrderResolver","getCCSSubmission","CCSService","body","ServiceType","DocumentId","orderId","documentData","OrderId","FileName","DocumentData","CustomUrlSerializer","dus","tree","serialize","HomePersonalComponent","elRef","imageUrlFormatted","item1HoverIcon","item1Icon","item2HoverIcon","item2Icon","item3HoverIcon","item3Icon","item1DefaultIcon","item2DefaultIcon","item3DefaultIcon","cdnPath","cdn","setPageContentForLanguage","observer","MutationObserver","mutations","mutation","dispatchEvent","Event","config","childList","characterData","observe","trackTraceInput","languageSection","privateSection","homeCategory","homepage","routeSplit","Sections","Url","SubSections","Categories","Pages","Modules","seo","SEO","MetaTitle","modules","Content","Image","formatImageUrl","mainImageModule","ModuleType","mainImage","Item1Icon","Item1HoverIcon","Item2Icon","Item2HoverIcon","Item3Icon","Item3HoverIcon","setHtmlModulePages","includes","htmlPageString","htmlModules","filter","Html","decodeHtml","firstReg","secondReg","thirdReg","fourthReg","pdfReg","pdfReg2","pageHtml","showHtmlModules","html","txt","innerHTML","onTrackTraceEnter","CustomsCalculatorComponent","customsService","typeOfGoods","examples","typeOfGoodSelected","showCalculateEstimateButtons","showEstimate","enterWeight","otherSelected","showHsCodeLookupError","showOriginError","customsCalculatorForm","goodsValue","numberOnlyValidator","restOfTheWorld","eu","weight","taksCode","convertNumberField","formatNumberField","customCalculator","IconPath","Examples","ImagePath","example","tarriffNumber","TariffNo","isTradeDeal","calculateEstimate","VatPercent","vatPercent","setValidators","category","Name","EN","enableOtherCategoryFields","selectedTypeOfGood","selectedSubcategory","categoryFromTaksCode","subcategory","WeightRequired","tariffNum","validHsCode","getNumber","estimate","customsEstimate","resetTypeOfGoods","getCategoryByHsNumber","foCaption","daExtendedCaption","translationString","FO","getTranslation","UnitOfMeasurement","getNestedTranslation","Body","gatt","dutyValue","dutyUnits","parentCategory","Subcategories","Number","showSubCategoriesForSelectedGood","checkExist","scrollIntoView","behavior","inline","block","selectOtherCategory","otherCategory","euSelected","restOfTheWorldSelected","ImportServicesRoutingModule","ImportServicesModule","BasePayCustomsComponent","customsRetrieved","failedToGetAmount","loadingProceedToPayment","customsFormGroup","invoicePoNumber","refCode","userConfirmationFormGroup","agreeToUseEmail","requiredTrue","paymentFormGroup","hasPaid","validate","serviceTypeId","getPaymentAmount","GetPaymentInfo","invoiceCustom","invoiceCustomNumber","referenceCode","totalAmountIncVAT","customerNumber","customerName","invoiceDate","totalAmountExcVAT","vatAmount","outstandingAmount","stepper","selected","completed","selectedIndex","transactionRef","CustomsConfirmationComponent","DetailsAndPaymentComponent","isPaying","loadingPayment","transactionRefOutput","pay","payments","updatePaymentStatus","orderReference","PayCustomsComponent","image","getImageForPsModule","PayInvoiceComponent","PayCustomsUserConfirmationComponent","showAgreeToUseEmailError","showDibsPaymentScreen","proceedToDetailsAndPayment","hasAccount","passwordInput","form","openDibsPaymentScreen","CategoryResolver","categoryService","CategoryService","CustomsService","customsInput","hsNumber","UploadMissingDocumentationComponent","showUploadDocumentScreen","failedToGetOrder","showConfirmationScreen","orderValidated","validOrder","uploadedDocumentsFormGroup","uploadedFiles","params","BuyPostageConfirmationComponent","buyPostageService","translationService","showEmailOrderSuccess","showEmailCN22Success","downloadingPdfOrder","downloadingCN22","sendingOrderEmail","sendingCN22Email","mainWrapper","getElementsByClassName","style","background","psModuleContent","getPsModuleContent","item1Link","Item1Link","orderConfirmationDetails","anonymousUserGuid","downloadCDS","barcode","emailOrder","emailSentTo","cn22Email","emailCN22","emailCN22SentTo","serializeUrl","createUrlTree","sendEmail","BuyPostageLandingComponent","priceMatrixService","maxDomesticWeight","maxInternationalWeight","domesticPricePerUnit","internationalPricePerUnit","quickBuyDomesticForm","quantity","quickBuyInternationalForm","internationalQuantity","getLetterSizes","transportType","domesticOption","CountryGroups","LinkedGroupKey","maxDomesticWeights","ParcelRanges","MaxWeight","Math","max","apply","BaseCostOverride","international","maxInternationalWeights","itemCount","isDomestic","zoneId","transportTypeKey","Key","maxWeight","navigationExtras","decreaseDomesticItemCount","incrementDomesticItemCount","navigatetoBuyPostage","decreaseInternationalItemCount","incrementInternationalItemCount","BuyPostageLoginComponent","backButtonSelected","proceedButtonSelected","emailForm","proceedToNextPage","goBack","BuyPostageSecondaryComponent","totalPrice","postageItems","paymentEvent","selectedOptionIndex","domestic","buyPostageForm","clearValidators","newPostageItem","fromTo","sizeName","size","sizeDescription","Description","price","reference","postageItem","indexOf","splice","lastPostageItem","pop","currentItems","itemsToAdd","itemsToRemove","decreaseItemCount","itemCountChange","incrementItemCount","goToPreviousPage","proceedToPayment","BuyPostageComponent","cd","itemTypes","weightBoundaries","sizeValue","fromToOptionIndexSelected","showSizeOptions","showWeightExceedsNotice","showSecondPage","showAddressesPage","showCustomsPage","showLoginPage","showXLErrorMessage","min","agreeToTermsConditions","isGoods","buyPostageAddressesForm","fromFirstName","fromLastName","fromContactCountryCode","fromContactNum","fromAddressLine1","fromPostcode","fromTownCity","toFirstName","toLastName","toContactCountryCode","toContactNum","toAddressLine1","toAddressLine2","toPostcode","toTownCity","toCountry","buyPostageCustomsForm","shipmentType","shipmentTypeOther","getBuyPostageCountrySchemes","fromToOptions","matchingZoneIndex","findIndex","fromToValue","chosenWeightBoundary","getSizeForOptions","getPostageWeightBoundaries","weightBoundariesRawValues","matchingWeightIndex","setDefaultWeight","sizeOptions","weightValue","getBuyPostageSizeOptions","transportTypeId","nameTranslation","GL","DA","extraLargeTransportType","instant","DefaultExtras","IncoTermsGroups","Tag","BuyPostageIconPath","Properties","MinimumDeliveryDays","MaximumDeliveryDays","SpecialExtras","IsAvailableForBulk","ProductTypeId","BarcodePrefix","stringToBeTranslated","selectedTransportTypeIndex","selectedTransportType","validCountryGroup","basePrice","BasePriceWeight","validParcelRange","MinVolume","pricePerItem","items","buyPostageSecondary","buyPostageCustoms","orderDetail","weightIndex","ZoneId","ZoneText","WeightId","WeightText","SizeCategoryId","SizeCategoryText","Quantity","UnitPrice","netAmount","GrossAmount","CustomerReference","newGuid","isGoodsInternational","postageOrder","ananymousUserGuid","barcodePrefix","customsItemTypes","fromContactNumber","fromCountryCode","isPreferEmail","isPreferSMS","toContactNumber","toCountryCode","customsShipmentTypeId","customsOtherDescription","createPostageOrder","poll","getItemPrice","orderRef","getOrder","getOrderConfirmation","postageConfirmationDetails","isCDSFiled","sizeIndex","BuyPostageAddressesComponent","addresses","isAccountAddress","isNewAddress","fromAddressControl","toAddressControl","accountAddressClick","a","b","localeCompare","foIndex","source","selectedPostcode","pc","city","emitEvent","countryControl","countryCodeByControl","checkProceedDisabled","attemptedToProgress","target","selectedFromAddress","contactNumber","selectedToAddress","c","address","isToAddress","toFilteredAddresses","_filter","fromFilteredAddresses","filterValue","toLowerCase","option","setSelectedPostcodeFO","goToNextPage","BuyPostageCustomsComponent","customShipmentTypeService","weightText","hyphenIndex","endsWith","weightIsKg","weightLimit","parseInt","shipmentTypes","fieldId","first","second","customsShipmentTypeNameEN","customsShipmentTypeNameFO","element","netWeight","getNumberString","getTotalWeight","getTotalValue","weightTooHigh","itemTypesComponent","CheckValid","BuyPostageItemTypesComponent","itemTypesChange","isValid","itemTypeComponents","child","CheckValidity","_itemTypes","addItemType","ItemTypeComponent","itemTypeChange","itemTypeForm","description","itemType","countryOfOrigin","tariffNo","hsTariffNo","isKg","isKG","toggleKg","InlineLoginComponent","onLoggedIn","CustomsItemType","DefaultShipmentDimensions","Order","Parcel","ServiceOption","TestServiceOption","BasePriceVAT","IncoTermBasePrice","IncoTermWeightCost","IncoTermVATCost","IncoTermVolumeCost","IncoTermValueCost","TotalIncoTermCost","InsuranceWeightCost","InsuranceValueCost","InsuranceVolumeCost","TotalInsuranceCost","InsuranceVAT","InsuranceBasePrice","TrackTraceItemArray","OrderState","FindPricesComponent","vatCost","isParcelSelected","isShipmentSelected","isLetterSelected","showPrices","numberOfPalettesSelected","serviceOptions","weightOptions","parcelWeightBoundariesRawValues","parcelWeightBoundaries","letterSizes","currentFromCountryCode","palleteSelected","getBuyPostageWeightBoundaries","weightBoundary","unshift","weightInKgValues","toFixed","findPriceFormGroup","fromCountry","parcel","largeShipment","letter","numberOfPalettes","letterName","letterControl","parcelControl","shipmentControl","markAsUntouched","letterSizeTransportId","letterSizeFormControl","letterSizeTransportType","serviceOptionDetails","FromCountry","ToCountry","Weight","ProductType","productType","Value","LetterSizeTransportTypeId","IsOneParcel","Role","getServiceOptions","transportTypes","minDays","maxDays","serviceOption","Cost","getCostForTransportType","DeliveryDays","MinDeliveryDays","VATCost","countryGroup","totalCost","BasePriceVolume","weightControl","indexValue","inputWeight","currentParcelRange","MinWeight","weightRoundedUp","ceil","additionalWeightCost","CostPerUnitWeight","IncludeVAT","VATPercentage","Postage","enableLetterOptionIfFO","setParcelType","setShipmentType","getPrices","encapsulation","None","ViewPricesComponent","chosenServiceOption","item2Link","Item2Link","item3Link","Item3Link","item4Link","Item4Link","el","transportTypeName","translationName","Air_Freight","Sea_Freight","DomesticTransport","OrderDetailsComponent","readyForCollection","today","clearFiles","managedCustomsClearanceChecked","showCustomsInformation1","showTypeOfShipment","showUploadInvoice","showIsReadyForCollection","showManagedCustomsClearance","showItemTypes","onClear","toFromIsFO","customsClearanceSelected","selectedShipmentType","newDate","getDate","sendReceiveForm","order","orderStateId","orderShipmentType","collectionDate","onSelectNotReadyForCollection","existingOrderNotReadyForCollection","existingOrderReadyForCollection","definitionOfGoods","comments","invoices","existingOrderInvoices","customsClearanceExtraJson","toFromAddressFormGroup","changes","linkItem1","psModule","linkItem2","ManagedCustomCost","managedCustomCost","filesToAdd","filesToRemove","collectionOption","showRequiredError","Postage_Plus","toDepot","isFromFo","isPostParcel","updateValueAndValidity","isToFo","fromDepot","isFromDk","FromAccountAddressComponent","currentUser","ToAccountAddressComponent","PostaDepotAddressComponent","toFromAddressform","SendAndReceiveAddressesComponent","fromDepotAddressChecked","fromAccountAddressChecked","fromNewAddressChecked","toAccountAddressChecked","toDepotAddressChecked","toNewAddressChecked","fromAccountDisabled","fromDepotDisabled","toAccountDisabled","toDepotDisabled","addToFavourite","fromAccountAddress","toAccountAddress","nextClicked","getAddresses","isFromAccountAddress","fromOption","onSelectFromAccountAddress","isToAccountAddress","toOption","onSelectToAccountAddress","addressesFooter","AddressesFooter","showNoSelectionError","swapAddressFormFields","onSelectFromDepot","onSelectToDepot","fromAddressSelected","toAddressSelected","isFavourite","toTitleValueBeforeChange","toFirstNameValueBeforeChange","toLastNameValueBeforeChange","toOptionalCompanyBeforeChange","toAddressLine1BeforeChange","toAddressLine2BeforeChange","toTownCityBeforeChange","toPostcodeBeforeChange","toCountryBeforeChange","toContactNumberBeforeChange","hasSender","hasRecipient","swapFromTo","onSelectFromNewAddress","onSelectToNewAddress","markRequiredFieldsAsTouchedAndProceed","SendAndReceiveComponent","_route","incoTermsService","sendReceiveService","uploadFileService","findPricesisParcel","resetAddress","paymentFailed","displayScreen","hideOrderDetails","previousVolume","contactPostaScreen","createOrderFailed","toTitle","toOptionalCompany","toEmail","nullableEmailValidator","toSpecialInstructions","toSaveAddress","toIsFavouriteAddress","fromTitle","fromOptionalCompany","fromAddressLine2","fromEmail","fromSpecialInstructions","fromSaveAddress","fromIsFavouriteAddress","logisticsSenderName","specificationsFormGroup","referenceNumber","noOfItems","totalWeight","greaterThanZeroValidator","valueOfGoods","isItems","orderDetailsFormGroup","domesticPackageContents","confirmationFormGroup","agreeToTermsAndConditions","registerForNotifications","setFindPriceFields","$event","weightInKg","isParcel","fromCountryControl","toCountryControl","getIncoTerms","incoTermsInput","isFromPostaDepot","isToCountryFO","isFromCountryFO","toCountryFormControl","fromCountryFormControl","GetIncoTerm","incoTerms","incoTermsTypeCode","isSelected","showHideFields","firstItemType","getOrderWeight","fromAccount","toAccount","currentVolume","totalVolume","parcels","setInsurance","insurance","clicked","orderService","transportTypeJson","collectionDateFormControl","commentsFormControl","domesticContentsFormControl","shipmentTypeOtherField","estimatedDate","collectionDateClone","isInvoiceRequired","managedCustomsCost","managedCustomsJSON","ManagedCustomCostJson","letters","invoiceLine","sequenceNo","unitPrice","grossAmount","getCostTotalCost","parcelNumericValues","parcelNo","productTypeId","fromCompanyName","fromContactEmail","toCompanyName","toContactEmail","senderNamePostaDepot","isToPostaDepot","insuranceSelected","customerReference","volume","estimatedDeliveryDate","service","getCostForDomestic","incoTermsCode","invoiceLines","isCreateTrackTraceRegistration","isVatIncluded","CreateOrder","orderReferenceCallBackId","getFilesToRemove","getFilesToAdd","removeInvoice","addInvoice","UpdateOrder","calculateNet","customCost","GetOrder","orderBarCode","getPaymentCodes","paymentCodes","showCustomsRequirements","orderReferenceOther","downloadPrintLabel","quoteId","focus","SendReceiveConfirmationComponent","addressForm","Item5Link","getDepotAddress","letterSizeControl","specificationForm","letterSizeControlValue","toLocaleLowerCase","depotAddress","controlFormValue","orderDetailsForm","date","toLocaleString","timeZone","dateString","estimatedDeliveryDays","addDays","todaysDate","parcelVolume","days","CountryResolver","OrderResolver","SendReceiveService","isSea","langCode","orderBarcode","ShipmentTypesResolver","shipmentTypeService","TaxResolver","getTaxPercentage","TrackTraceService","SendAndReceiveSpecificationComponent","goBackToAddress","serviceType","isParcelsSelected","unknownVolume","parcelTotalVolumeUnknown","itemNumberUnknown","sizeTitle","insuranceNotSelected","insuranceIsSelected","unknownParcelDimensions","attemptedToGetPrices","defaultShipmentDimensions","controls","key","getDefaultWeightIntervals","defaultWeightValues","parcelInputsTouched","setTimeout","setParcelDefaultDimensions","onChange","toggleIsItems","parcelValue","addInitialParcels","unknownDimensions","addControl","volumeFormControl","disableAllParcelControls","numberOfItems","addAdditionalParcels","currentParcel","to","volumeControl","existingOrder","shipmentVolumeControl","setDefaultVolumeShipment","removeAllParcelRows","enableAllParcelControls","EmitTotalVolumeForSizeSelected","markAsPristine","totalParcelVolume","mCubed","sameAsPrevious","noOfItemControl","setItemNumberUnknownFalse","removeParcelRows","numDiff","newParcelIndex","j","removeControl","parcelLength","String","parcelsSelected","toggleIsKg","setItemNumberUnknown","navigateToAddresses","SendReceivePricesComponent","proceedToOrderDetailsScreen","proceedToConfirmationPage","vol","isOneParcel","FromPostcode","ToPostcode","Volume","IsInsurance","IncoTerms","managedCustomCostJson","insuranceCost","insuranceExtra","managedCustomExtra","specialExtrasOverrides","SpecialExtrasOverrides","insuranceOverride","getPricingForTransportType","managedCustomOverride","vatIncluded","InsuranceCost","orderServiceOption","savedServiceOption","savedServiceOptionIndex","linkItem3","Item6Link","linkItem4","Item7Link","valueControl","isInternationalGoods","isToFromFo","scrollTop","documentElement","extra","inputValue","inputVolume","extraCost","BasePrice","ValueInterval","PricePerValueInterval","StartValue","WeightInterval","PricePerWeightInterval","StartWeight","VolumeInterval","PricePerVolumeInterval","StartVolume","serviceOptionSelected","letterFormControl","letterTransportType","Quote","pricings","isIncoTerms","vat","addVatCost","weightCost","valueCost","volumeCost","BasePriceOnly","vatToAdd","Fragmented","weightDif","absValWeightIntervals","volumeDif","absValVolumeIntervals","valueDif","absValValueIntervals","costToAdd","incoTermCostSet","BoundedWeightValue","useWeight","FreightPivotPoint","MaxVolume","volumeRoundedUp","additionaVolumeCost","CostPerUnitVolume","IncoTerm","IncoTermsOverrides","IsDHL","taxPercentage","externalUrl","SendReceiveRoutingModule","SendReceiveModule","BuyPostageOrderResolver","BuyPostageService","buyPostageUpsert","userId","creatorGuid","PaymentService","paymentType","statusUpdateObj","UserDetailsResolver","TestComponent","jsonInput","insuranceVat","isOneItem","KeyIconPaths","letterSize","UsingWeightPivotPoint","AdditionalWeightCost","AdditionalVolumeCost","TotalBaseCost","BaseIncludeVAT","vatPercentage","TrackAndTraceComponent","trackTraceService","deliveredIds","attemptedDeliveryIds","returnToSenderIds","inTransitLocationUpdateIds","delayedNoActionIds","unableToDeliveryIds","delayedActionIds","confirmedEventTypeIds","readyToCollectIds","cancelledEventTypeIds","receivedIds","loadingOrder","showInvalidTrackingCode","currentShownItemIndex","transactionForm","transactionId","trackTraceId","getOrderDetails","trackTraceItems","transitItems","dispatchedItem","orderConfirmedItem","orderReceivedItems","getTrackTraceDetailsByCode","highestParcelSequenceNum","parcelSequenceNo","parent","res","array","eventTypeIdSameGroup","eventTypeId","showItem","currentId","previousId","allArrays","currentArray","locationName","ViewOrderComponent","displayContactPosta","isDirectBooking","getShipmentTypeName","setServiceOptionName","serviceOptionName","shipmentTypeTranslation","ViewPostageOrderComponent","netAmounts","reduce","CustomTranslateLoader","_","AddressBookComponent","showAddNewAddress","viewOnlyFavourites","isEditing","newAddressFormGroup","savedAddressSuccessfully","addressToEdit","updatedSearchText","searchText","toggleFavourites","showAllAddresses","updateSearchText","setAddNewAddress","EditAddressComponent","newAddressService","setInitialCountry","successfullySaved","contactEmail","formCountryValue","selectedCountry","newAddress","addressId","update","updateEntryToAddressBook","deleteAddress","setFavourite","CreateNewAddressComponent","snackbar","isFO","newAddressBookEntry","saveToAddressBook","postcodeSelected","sourceControlName","ngControl","FromNewAddressComponent","cdr","saveDisabled","fromFilteredPostcodes","_filterPostcode","fromFO","returnValue","fo","smoothscroll","currentScroll","requestAnimationFrame","checked","formValid","postcodeValue","townCityValue","previousPostcode","previousCity","saveAddressControl","favouriteControl","addressFieldClick","setFromSelectedAddress","setFromAddressFields","onSelectFromFO","updateSpecificationForm","ToNewAddressComponent","toFilteredPostcodes","toFO","settoSelectedAddress","settoAddressFields","onSelecttoFO","ViewAllAddressesComponent","updateAddress","selectedAddress","allAddresses","favouriteAddress","ContactUsComponent","urlLang","helpInformationCategory","contactUsPage","Css","cssFiles","Js","jsFiles","LogoutDialogComponent","close","loggedUserType","logoutShibboleth","routeToBusiness","routeToPrivate","onNoClick","onProceed","ErrorMessageComponent","FieldErrorMessageComponent","icon","PageNotFoundComponent","FileUploadMissingDocumentsComponent","uploadService","filesRemove","filesAdd","showUploadLaterMesssage","ImageBaseData","successfullyUploaded","newDocumentFormGroup","newCompanyName","clearAllFiles","currentFilesIndex","currentUploadedFilesIndex","newFile","fileData","invoice","applicationId","onClick","addFileToQueue","openRouteInNewWindow","FileUploadComponent","uploadLater","FooterComponent","staticContentString","setFooterHtml","subSection","FooterHtml","AuthGuard","obs","isSamleikinUser","authorised","HomePageGuard","ProfileCompleteGuard","Guid","r","random","v","HeaderPersonalComponent","staticContentHelper","showMenu1","showMenu2","showMenu3","showMenu4","showMenu5","showSearch","showMobileMenuOptions","subCategories","Map","showTabletView","showResponsiveMyPosta","className","categories","filterPages","setSubCategories","pages","MenuGroup","set","getStaticMenuForLanguage","currentFlagIcon","getTranslationDictionary","MenuIcon","privateRole","business","roleUnkown","Type","HideFromMenu","loginUserType","afterClosed","reverseRole","shibError","LoginRequired","navigateToPersonal","navigateToBusiness","switchLanguage","ErrorHelper","mismatch","param","value1","EMAIL_REGEXP","NUM_REGEXP","COUNTRY_CODE_REG","ScrollViewHelper","StaticContentHelper","TranslationHelper","object","convertedObject","numberValue","startsWith","num","getNum","decimalPlaces","strNum","convertedNum","isNaN","getNestedString","myString","xmlPayloadTemplate","variableMap","interpolate","compiled","xmlPayloadCompiled","JwtInterceptor","request","isApiUrl","beraUrl","clone","setHeaders","Authorization","handle","headers","authCookie","OrdersSummaryComponent","ordersService","loadingLive","loadingCompleted","getOrderList","liveOrders","completedOrders","itemId","viewAllWithStatus","ViewAllOrdersComponent","routerLink","orders","selectedStatus","selectedStatusIndex","statuses","showViewMoreButton","viewMoreMultiplier","filterBySpecificDate","search","searchByFilter","getOrderByParams","queryString","filterQueryString","allTimeButton","getOrdersByStatus","specificDateButton","createPdfDownload","checkAllTime","selectSpecificDate","clearSearchFilters","NumberFormatPipe","getNumString2DP","NumberLocalizationPipe","PriceFormatPipe","SafeHtmlPipe","sanitized","bypassSecurityTrustHtml","ToDateObjPipe","PriceMatrixService","countryIndex","AddressService","favourite","CookieService","ca","cookie","caLen","cookieName","expireMinutes","d","setTime","getTime","expires","toUTCString","cpath","CountryService","CustomShipmentTypeService","IncoTermsService","OrdersService","query","StaticContentService","language","CDN","paths","getPaths","page","firstHtmlModule","replaceLinks","psModuleIndex","shift","categoryPath","fullPath","filetype","node","src","scripts","getElementsByTagName","appendChild","fileref","setAttribute","links","UploadFileService","invoiceUpload","SharedRoutingModule","SharedModule","StaticContentPageComponent","showPage","noPageFound","cssJsSet","setPageContent","sleepDuration","now","splitPath","showPageNotFound","categoryPageUrl","categoryPageUrlSplit","traversePageForCorrectUrl","pageUrl","pageUrlSplit","subsection","subSectionUrls","splitSubSectionUrl","categoryUrls","splitCategoryUrls","BrochureDialogComponent","pageIndex","pdfViewerAutoLoad","onLoad","CreateShoppingListsDialogComponent","shoppingListService","shoppingLists","create","products","productId","addToListBody","productName","addToShoppingList","onNo","GeneratedCodeDialogComponent","showCopiedMessage","shoppingListName","ManualItemDialogComponent","manualItemName","allLoggedOutLists","list","retailerName","isManualItem","listIndex","createNewItem","NewShoppingListDialogComponent","localShoppingLists","newList","newShoppingLists","isActive","createNewShoppingList","OffersProductsComponent","brochureService","productService","_location","isBrochuresSelected","loadingBrochure","showPDF","hideViewMore","productFilter","brochurefilter","offerProductForm","activeList","activeListLoggedOut","mode","setLoggedOutLists","getAllBrochuresOrProducts","getAllShoppingLists","FilterParameters","Keyword","getBrochuresByFilter","productList","applicableCategories","brochureIds","brochureId","getByFilter","brochureList","imageUrl","imageData","img","ratio","naturalWidth","naturalHeight","brochures","getProductsByFilter","resetBrochureFilter","resetProductFilter","categoryId","filterProductsByName","shoppingListId","loggedOutList","initialLoad","obj","isReset","lastResultsLength","BrochureId","brochureGuid","selectedBrochureIndex","latterPart","formerPart","getPDF","pdfContent","base64ToArrayBuffer","maxWidth","pdfSource","filterById","brochure","brochureThumbPath","thumbPath","setBrochureView","go","stringBuilder","productItemNames","shareFilter","shareList","shareDialogRef","plainText","getProductsForList","indexToUpdate","product","addNewShoppingList","offerUntilDate","shoppingDialogref","newlyCreatedList","loggedOutShoppingLists","activeLoggedOutList","base64","binary_string","len","bytes","setActiveList","getProductsForListNoImage","productItemName","productIds","contains","TakeCount","BrochureService","httpOptions","guid","ProductService","ShoppingListService","httpOptionsPlain","listId","ShoppingServicesRoutingModule","ShoppingServicesModule","ViewAllShoppingListsComponent","getAllShoppingListsInit","filteredListsLoggedOut","allFilteredList","deleteShoppingList","item","allShoppingLists","ViewSharedShoppingListComponent","isLoading","groupedProductsByRetailer","sharedLinkId","getSharedShoppingList","shoppingList","grouped","groupBy","entries","retailer","xs","prop","p","ViewShoppingListComponent","getProductsForLoggedOutUser","getProductsForListWithImage","boughtItems","isBought","itemsToFilter","getProductImage","removeItemFromShoppingList","shoppingListItemId","setIsBought","newItemDialog","ImportExportServiceType","WaybillOrderResolver","waybillService","getCustomerShipment","WaybillService","manifestNo","waybillNo","linkId","WaybillDetailComponent","waybill","downloadFile","WaybillListComponent","waybills","getCustomerShipmentList","onRecieveCustomerShipmentList","shipments","typeName","translationRequest","iconPath","AirExport","AirImport","ExpressExport","ExpressImport","SeaExport","SeaImport","fromDateParam","toDateParam","toJSON","relativeTo","stopPropagation","WaybillRoutingModule","WaybillModule","environment","production","environmentName","bootstrapModule"],"mappings":"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","file":"main-es5.46c92528667e9f65ca4c.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\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 = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { Routes, RouterModule } from \"@angular/router\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { RegisterComponent } from \"./register/register.component\";\r\nimport { ForgottenPasswordComponent } from \"./forgotten-password/forgotten-password.component\";\r\nimport { VerificationResolver } from \"./services/verification.resolver\";\r\nimport { MobileVerificationResolver } from \"./services/mobile-verification.resolver\";\r\nimport { VerificationComponent } from \"./verification/verification.component\";\r\nimport { ResetPasswordComponent } from \"./reset-password/reset-password.component\";\r\nimport { ChangePasswordComponent } from \"./change-password/change-password.component\";\r\nimport { PrivateLoginComponent } from \"./login/private-login/private-login.component\";\r\nimport { BusinessLoginComponent } from \"./login/business-login/business-login.component\";\r\nimport { UpdateProfileComponent } from \"./update-profile/update-profile.component\";\r\nimport { UserProfileResolver } from \"./services/userProfile.resolver\";\r\nimport { AwaitingVerificationComponent } from \"./awaiting-verification/awaiting-verification.component\";\r\nimport { AwaitingPostaApprovalComponent } from \"./awaiting-posta-approval/awaiting-posta-approval.component\";\r\nimport { AuthGuard } from \"../shared/guards/auth.guard\";\r\nimport { AccountStatementComponent } from \"./account-statement/account-statement.component\";\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/private/login', component: PrivateLoginComponent},\r\n { path: ':lang/business/login', component: BusinessLoginComponent },\r\n { path: ':lang/:role/register', component: RegisterComponent},\r\n { path: ':lang/:role/awaiting-approval', component: AwaitingPostaApprovalComponent},\r\n { path: ':lang/:role/forgotten-password', component: ForgottenPasswordComponent},\r\n { path: ':lang/verify_account_email/:code', component: VerificationComponent, resolve: { verified: VerificationResolver }},\r\n { path: ':lang/verify_account_mobile/:code', component: VerificationComponent, resolve: { verified: MobileVerificationResolver }},\r\n { path: ':lang/:role/reset_password/:code', component: ResetPasswordComponent },\r\n { path: ':lang/:role/change-password', component: ChangePasswordComponent },\r\n { path: ':lang/:role/my-posta/update-profile', component: UpdateProfileComponent, resolve: { userProfile: UserProfileResolver }, canActivate: [AuthGuard] },\r\n { path: ':lang/:role/my-posta/account-statement', component: AccountStatementComponent, canActivate: [AuthGuard] },\r\n // { path: 'login/samleikin', component: SamleikinLoginComponent },\r\n // { path: 'migrate/samleikin', component: SamleikinMigrateComponent, canActivate: [AuthGuard] },\r\n { path: ':lang/:role/awaiting-verification/:email-sent', component: AwaitingVerificationComponent },\r\n { path: ':lang/:role/awaiting-verification', component: AwaitingVerificationComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AccountRoutingModule { }","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CustomerAccount } from '../entities/customerAccount';\r\nimport { UserService } from '../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-account-statement',\r\n templateUrl: './account-statement.component.html',\r\n styleUrls: ['./account-statement.component.scss']\r\n})\r\nexport class AccountStatementComponent implements OnInit {\r\n\r\n customerAccounts: CustomerAccount[];\r\n showAccountSelect: boolean = false;\r\n\r\n selectedAccount: CustomerAccount;\r\n\r\n downloading: boolean;\r\n \r\n filterFormGroup: FormGroup;\r\n\r\n downloadFailed: boolean;\r\n\r\n constructor(private userService: UserService, private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n var firstDayOfLastMonth = new Date();\r\n firstDayOfLastMonth.setDate(0);\r\n firstDayOfLastMonth.setDate(1);\r\n var lastDayOfLastMonth = new Date();\r\n lastDayOfLastMonth.setDate(0);\r\n\r\n this.filterFormGroup = this.formBuilder.group({\r\n account: ['', Validators.required],\r\n fromDate: [firstDayOfLastMonth],\r\n toDate: [lastDayOfLastMonth],\r\n });\r\n this.userService.getCustomerAccounts().subscribe(x => {\r\n this.customerAccounts = x;\r\n if(this.customerAccounts.length != 1){\r\n this.showAccountSelect = true;\r\n }\r\n })\r\n }\r\n\r\n downloadStatement(){\r\n this.downloading = true;\r\n var fromDateField = this.filterFormGroup.get('fromDate');\r\n var toDateField = this.filterFormGroup.get('toDate');\r\n if(fromDateField && fromDateField.value){\r\n try{\r\n var fromDate = fromDateField.value.format(\"YYYY-MM-DD\");\r\n }\r\n catch (e) {\r\n //Assume date is default (ts date object instead of moment)\r\n var fromDate = fromDateField.value.toISOString().split('T')[0]\r\n }\r\n }\r\n if(toDateField && toDateField.value){\r\n try{\r\n var toDate = toDateField.value.format(\"YYYY-MM-DD\");\r\n }\r\n catch (e) {\r\n //Assume date is default (ts date object instead of moment)\r\n var toDate = toDateField.value.toISOString().split('T')[0]\r\n }\r\n }\r\n if(this.customerAccounts.length == 1){\r\n this.selectedAccount = this.customerAccounts[0];\r\n }\r\n this.userService.getAccountStatement(this.selectedAccount.accountNo, fromDate, toDate).subscribe(x => {\r\n if(x){\r\n const byteArray = new Uint8Array(atob(x).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = \"Account Statement\";\r\n link.click();\r\n }\r\n else{\r\n this.downloadFailed = true;\r\n }\r\n this.downloading = false;\r\n }, (error) => {\r\n this.downloading = false;\r\n this.downloadFailed = true;\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'account_statement.title' | translate}}

\r\n

{{'account_statement.select_account' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n {{account.name}}\r\n \r\n \r\n \r\n
\r\n

{{'account_statement.from' | translate}}:

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

{{'account_statement.to' | translate}}:

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AccountRoutingModule } from './account-routing.module';\r\nimport { RegisterComponent } from './register/register.component';\r\nimport { BusinessRegisterComponent } from './register/business-register.component';\r\nimport { PrivateRegisterComponent } from './register/private-register.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { AwaitingPostaApprovalComponent } from './awaiting-posta-approval/awaiting-posta-approval.component';\r\nimport { ForgottenPasswordComponent } from './forgotten-password/forgotten-password.component';\r\nimport { VerificationComponent } from './verification/verification.component';\r\nimport { ResetPasswordComponent } from './reset-password/reset-password.component';\r\nimport { ChangePasswordComponent } from './change-password/change-password.component';\r\nimport { PrivateLoginComponent } from './login/private-login/private-login.component';\r\nimport { BusinessLoginComponent } from './login/business-login/business-login.component';\r\nimport { UpdateProfileComponent } from './update-profile/update-profile.component';\r\nimport { SamleikinLoginComponent } from './login/samleikin-login/samleikin-login.component';\r\nimport { AwaitingVerificationComponent } from './awaiting-verification/awaiting-verification.component';\r\nimport { SamleikinMigrateComponent } from './login/samleikin-migrate/samleikin-migrate.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { AccountStatementComponent } from './account-statement/account-statement.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations:\r\n [\r\n RegisterComponent,\r\n BusinessRegisterComponent,\r\n PrivateRegisterComponent,\r\n AwaitingPostaApprovalComponent,\r\n ForgottenPasswordComponent,\r\n VerificationComponent,\r\n ResetPasswordComponent,\r\n ChangePasswordComponent,\r\n PrivateLoginComponent,\r\n BusinessLoginComponent,\r\n UpdateProfileComponent,\r\n SamleikinLoginComponent,\r\n AwaitingVerificationComponent,\r\n SamleikinMigrateComponent,\r\n AccountStatementComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n AccountRoutingModule,\r\n TranslateModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatStepperModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatCardModule,\r\n MatProgressBarModule,\r\n SharedModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule\r\n ]\r\n})\r\nexport class AccountModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-awaiting-posta-approval',\r\n templateUrl: './awaiting-posta-approval.component.html',\r\n styleUrls: ['./awaiting-posta-approval.component.scss']\r\n})\r\nexport class AwaitingPostaApprovalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'awaiting_approval.title' | translate}}

\r\n
{{'awaiting_approval.body' | translate}}
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { RoleService } from '../services/role.service';\r\n\r\n@Component({\r\n selector: 'app-awaiting-verification',\r\n templateUrl: './awaiting-verification.component.html',\r\n styleUrls: ['./awaiting-verification.component.scss']\r\n})\r\nexport class AwaitingVerificationComponent implements OnInit {\r\n\r\n showEmailSentBody: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute, private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n if (this.route.snapshot.paramMap.get('email-sent') == \"email-sent\")\r\n {\r\n this.showEmailSentBody = true;\r\n }\r\n }\r\n\r\n isPrivateUser()\r\n {\r\n return this.roleService.isPrivateUser();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'awaiting_verification.title' | translate}}

\r\n
{{'awaiting_verification.body' | translate}}
\r\n
{{'awaiting_verification.email_sent_body' | translate}}
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { UserService } from '../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\r\n changePasswordForm: FormGroup;\r\n\r\n passwordSuccessfullyChanged: boolean = false;\r\n\r\n passwordsDoNotMatch: boolean = false;\r\n\r\n passwordChangeFailed: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private authService: AuthenticationService,\r\n private userService: UserService,\r\n private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.changePasswordForm = this._formBuilder.group({\r\n currentPassword: ['', Validators.required],\r\n newPassword: ['', Validators.required],\r\n confirmPassword: ['', Validators.required],\r\n }, {validators: this.passwordMatchValidator});\r\n\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.changePasswordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.changePasswordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n passwordMatchValidator(g: FormGroup) {\r\n if(g.get('newPassword').value === g.get('confirmPassword').value){\r\n g.get('confirmPassword').setErrors(null);\r\n return null;\r\n }\r\n else{\r\n g.get('confirmPassword').setErrors({'mismatch': true});\r\n return {'mismatch': true};\r\n }\r\n }\r\n\r\n submit() {\r\n\r\n if (!this.changePasswordForm.valid || (this.changePasswordForm.get('newPassword').value !== this.changePasswordForm.get('confirmPassword').value))\r\n {\r\n this.changePasswordForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n var changeRequest: any = {\r\n newPassword: this.changePasswordForm.get('newPassword').value,\r\n currentPassword: this.changePasswordForm.get('currentPassword').value\r\n }\r\n\r\n //call endpoint\r\n this.userService.changePassword(changeRequest).subscribe(x => {\r\n if (x)\r\n {\r\n this.passwordSuccessfullyChanged = true;\r\n }\r\n else {\r\n this.changePasswordForm.get(\"currentPassword\").setErrors({'invalid_password': true})\r\n }\r\n }, error => {\r\n this.passwordChangeFailed = true;\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'change_password.change_password_title' | translate}}

\r\n
\r\n

{{'change_password.password_header' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'change_password.new_password_header' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'change_password.confirm_password_header' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n

{{'change_password.successfully_reset_title' | translate}}

\r\n
{{'change_password.sucessfully_reset_body' | translate}}
\r\n
\r\n\r\n
\r\n

{{'change_password.change_failed_title' | translate}}

\r\n
{{'change_password.change_failed_body' | translate}}
\r\n
\r\n
","import { Country } from \"./Country\";\r\n\r\nexport class User {\r\n userId?: string;\r\n username?: string;\r\n title?: string;\r\n firstName: string;\r\n lastName: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n townCity: string;\r\n postcode?: string;\r\n country?: Country;\r\n contactNumber?: number;\r\n password?: string;\r\n countryCode?: string;\r\n\r\n email?: string;\r\n mobileCountryCode: string;\r\n mobileNo: string;\r\n recipientName?: string;\r\n preferEmail?: boolean;\r\n preferSms?: boolean;\r\n specialInstructions: string;\r\n isSamleikin?: boolean;\r\n languageCode: string;\r\n isProfileComplete?: boolean;\r\n isVerified?: boolean;\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-forgotten-password',\r\n templateUrl: './forgotten-password.component.html',\r\n styleUrls: ['./forgotten-password.component.scss']\r\n})\r\nexport class ForgottenPasswordComponent implements OnInit {\r\n\r\n resetPasswordForm: FormGroup;\r\n\r\n role: string;\r\n\r\n isPrivate: boolean = false;\r\n\r\n userTypeId: number;\r\n\r\n passwordResetRequested: boolean = false;\r\n\r\n isPostaApproved: boolean = true;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute,\r\n private authService: AuthenticationService,\r\n private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.role = this.route.snapshot.paramMap.get('role');\r\n this.setRole();\r\n\r\n this.resetPasswordForm = this._formBuilder.group({\r\n email: ['', Validators.required]\r\n });\r\n }\r\n\r\n public submit()\r\n {\r\n if (!this.resetPasswordForm.valid)\r\n {\r\n this.resetPasswordForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n var forgottenInput: any = {\r\n email: this.resetPasswordForm.get('email').value,\r\n languageCode: this.translateService.currentLang.toUpperCase(),\r\n userTypeId: this.userTypeId\r\n }\r\n\r\n //call endpoint\r\n this.authService.resetPassword(forgottenInput).subscribe(x => {\r\n this.passwordResetRequested = true;\r\n }, (error) => {\r\n if (!!error.error && error.error.isPostaApproved == false)\r\n {\r\n this.isPostaApproved = false;\r\n }\r\n this.passwordResetRequested = true;\r\n });\r\n }\r\n\r\n private setRole()\r\n {\r\n if (this.role == \"private\")\r\n {\r\n this.userTypeId = 2;\r\n this.isPrivate = true;\r\n return;\r\n }\r\n this.userTypeId = 1;\r\n this.isPrivate = false;\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.resetPasswordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.resetPasswordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'reset_password.business_title' | translate}}

\r\n

{{'reset_password.personal_title' | translate}}

\r\n

{{'reset_password.enter_email' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

{{'reset_password.reset_requested_title' | translate}}

\r\n
{{'reset_password.reset_requested_body' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'reset_password.not_posta_approved_title' | translate}}

\r\n
{{'reset_password.not_posta_approved_body' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { first } from 'rxjs/internal/operators/first';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { ScrollViewHelper } from '../../../shared/helpers/scroll-view-helper';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CreateShoppingListsDialogComponent } from '../../../shopping-services/create-shopping-lists-dialog/create-shopping-lists-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-business-login',\r\n templateUrl: './business-login.component.html',\r\n styleUrls: ['./business-login.component.scss']\r\n})\r\n\r\nexport class BusinessLoginComponent implements OnInit {\r\n\r\n passwordForm: FormGroup;\r\n\r\n loginFailed: boolean = false;\r\n\r\n loading: boolean = false;\r\n\r\n returnUrl: string;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n interval: any;\r\n\r\n constructor(private _formBuilder: FormBuilder, private authService: AuthenticationService, private route: ActivatedRoute,\r\n private router: Router, private translateService: TranslateService, private errorHelper: ErrorHelper, private roleService: RoleService, private scrollViewHelper: ScrollViewHelper,\r\n private staticContentService: StaticContentService, public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.passwordForm = this._formBuilder.group({\r\n email: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || `${this.translateService.currentLang}/business/home`;\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n var temp = this.staticContentService.getPageTitle();\r\n return temp;\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.passwordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.passwordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public login() {\r\n if (this.passwordForm.invalid) {\r\n return;\r\n }\r\n\r\n\r\n this.loading = true;\r\n this.authService.login(this.passwordForm.get('email').value, this.passwordForm.get('password').value, 1, this.translateService.currentLang)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n this.loginFailed = false;\r\n var userDetails = JSON.parse(data.toString());\r\n if (!userDetails.isPostaApproved) {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/awaiting-approval`]);\r\n return;\r\n }\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/my-posta/update-profile`]);\r\n return;\r\n }\r\n\r\n this.createShoppingLists();\r\n\r\n this.router.navigate([this.returnUrl]);\r\n },\r\n error => {\r\n if (error.status == 401) {\r\n this.scrollViewHelper.scrollIntoViewAndCenter(\"login-error\");\r\n this.loginFailed = true;\r\n }\r\n if (error.status === 403) {\r\n this.router.navigate([`${this.translateService.currentLang}/business/awaiting-approval`]);\r\n // this.router.navigateByUrl('../awaiting-approval')\r\n }\r\n // this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public createShoppingLists()\r\n {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n var shoppingListsObj = JSON.parse(loggedOutLists);\r\n\r\n const dialogRef = this.dialog.open(CreateShoppingListsDialogComponent, {\r\n height: '240px',\r\n width: '580px',\r\n data: {\r\n lists: shoppingListsObj,\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ 'business_login.existing_users' | translate }}

\r\n
{{ 'business_login.login_below' | translate }}
\r\n
\r\n
\r\n

{{ 'business_login.login_with_email_title' | translate }}

\r\n \r\n \r\n \r\n \r\n

{{ 'business_login.password_title' | translate }}

\r\n \r\n \r\n \r\n \r\n \r\n {{ 'business_login.forgotten_password' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n

{{ 'business_login.new_users_register' | translate }}

\r\n
{{ 'business_login.additional_text' | translate }}
\r\n

{{ 'business_login.not_registered' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ 'business_login.personal_user' | translate }}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { first } from 'rxjs/internal/operators/first';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { RoleService } from '../../services/role.service';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CreateShoppingListsDialogComponent } from '../../../shopping-services/create-shopping-lists-dialog/create-shopping-lists-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-private-login',\r\n templateUrl: './private-login.component.html',\r\n styleUrls: ['./private-login.component.scss']\r\n})\r\nexport class PrivateLoginComponent implements OnInit {\r\n\r\n passwordForm: FormGroup;\r\n\r\n loading: boolean = false;\r\n\r\n returnUrl: string;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n interval: any;\r\n\r\n loginFailed: boolean = false;\r\n\r\n constructor(private _formBuilder: FormBuilder, private authService: AuthenticationService, private route: ActivatedRoute,\r\n private router: Router, private translateService: TranslateService, private errorHelper: ErrorHelper, private roleService: RoleService,\r\n private staticContentService: StaticContentService, public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.passwordForm = this._formBuilder.group({\r\n email: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n \r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || `${this.translateService.currentLang}/private/home`;\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n var temp = this.staticContentService.getPageTitle();\r\n return temp;\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.passwordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.passwordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public login() {\r\n if (this.passwordForm.invalid) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.authService.login(this.passwordForm.get('email').value, this.passwordForm.get('password').value, 2, this.translateService.currentLang)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n this.loginFailed = false;\r\n //WE ALSO NEED TO CHECK THE TOKEN IS COMING BACK\r\n var userDetails = JSON.parse(data.toString());\r\n if (!userDetails.isVerified) {\r\n if (userDetails.isEmailVerificationMessageJustBeenSent)\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/private/awaiting-verification/email-sent`]);\r\n return;\r\n }\r\n this.router.navigate([`${this.translateService.currentLang}/private/awaiting-verification/`]);\r\n return;\r\n }\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translateService.currentLang}/private/my-posta/update-profile`]);\r\n return;\r\n }\r\n\r\n this.createShoppingLists();\r\n\r\n this.router.navigate([this.returnUrl]);\r\n },\r\n error => {\r\n if (error.status == 401)\r\n {\r\n this.loginFailed = true;\r\n }\r\n // if (error.status === 403) {\r\n // this.router.navigate([`${this.translateService.currentLang}/private/awaiting-approval`]);\r\n // }\r\n // this.alertService.error(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public samleikinLogin() {\r\n this.router.navigateByUrl('../../../login/samleikin').then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n public createShoppingLists()\r\n {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n var shoppingListsObj = JSON.parse(loggedOutLists);\r\n\r\n const dialogRef = this.dialog.open(CreateShoppingListsDialogComponent, {\r\n height: '240px',\r\n width: '580px',\r\n data: {\r\n lists: shoppingListsObj,\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ 'private_login.existing_users' | translate }}

\r\n
{{ 'private_login.login_below' | translate }}
\r\n
\r\n \r\n \r\n \r\n
\r\n

{{ 'private_login.login_with_email_title' | translate }}

\r\n \r\n \r\n \r\n \r\n

{{ 'private_login.password_title' | translate }}

\r\n \r\n \r\n \r\n \r\n \r\n {{ 'private_login.forgotten_password' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n

{{ 'private_login.new_users_register' | translate }}

\r\n
{{ 'private_login.additional_text' | translate }}
\r\n

{{ 'private_login.not_registered' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ 'private_login.business_user' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SamleikinCredentials } from '../../entities/samleikinCredentials';\r\nimport { User } from '../../entities/user';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-samleikin-login',\r\n templateUrl: './samleikin-login.component.html',\r\n styleUrls: ['./samleikin-login.component.scss']\r\n})\r\nexport class SamleikinLoginComponent implements OnInit {\r\n\r\n displayLoginFailed: boolean = false;\r\n\r\n displayLoginSuccessful: boolean = false;\r\n\r\n preAuthGuid: string;\r\n\r\n loading: boolean = true;\r\n\r\n constructor(private authService: AuthenticationService, private router: Router, private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.authService.getSessionData().subscribe(x => {\r\n\r\n if (!!x && !!x.attributes)\r\n {\r\n var idNum = x.attributes.find(y => y.name == \"personalIdentityNumber\");\r\n var firstName = x.attributes.find(y => y.name == \"givenName\");\r\n var lastName = x.attributes.find(y => y.name == \"sn\");\r\n\r\n if (!!idNum && !!firstName && !!lastName)\r\n {\r\n this.authService.getPreAuthSamleikin().subscribe(y => {\r\n var user: SamleikinCredentials = {\r\n firstName: firstName.values[0],\r\n lastName: lastName.values[0],\r\n preAuthGuid: y,\r\n ptal: idNum.values[0],\r\n isSamleikin: true\r\n }\r\n\r\n this.authService.samleikinLogin(user).subscribe(z => {\r\n console.log(\"Successfully logged in with samleikin\");\r\n this.loading = false;\r\n if (!z.isProfileComplete)\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/private/my-posta/update-profile`]);\r\n }\r\n else {\r\n this.router.navigate([`${this.translateService.currentLang}/private/home`]);\r\n }\r\n }, (error) => {\r\n this.loading = false;\r\n this.displayLoginFailed = true;\r\n })\r\n });\r\n }\r\n }\r\n else {\r\n this.loading = false;\r\n }\r\n\r\n }, (error) => {\r\n this.loading = false;\r\n this.displayLoginFailed = true;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{ 'samleikin.samleikin_login_unsuccesful' | translate }}\r\n

\r\n
\r\n
\r\n {{ 'samleikin.samleikin_login_unsucessful_body' | translate }}\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SamleikinCredentials } from '../../entities/samleikinCredentials';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-samleikin-migrate',\r\n templateUrl: './samleikin-migrate.component.html',\r\n styleUrls: ['./samleikin-migrate.component.scss']\r\n})\r\nexport class SamleikinMigrateComponent implements OnInit {\r\n\r\n displayLoginFailed: boolean = false;\r\n\r\n displayLoginSuccessful: boolean = false;\r\n\r\n preAuthGuid: string;\r\n\r\n loading: boolean = true;\r\n\r\n constructor(private authService: AuthenticationService, private userService: UserService, private router: Router, private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.authService.getSessionData().subscribe(x => {\r\n\r\n if (!!x && !!x.attributes) {\r\n var idNum = x.attributes.find(y => y.name == \"personalIdentityNumber\");\r\n var firstName = x.attributes.find(y => y.name == \"givenName\");\r\n var lastName = x.attributes.find(y => y.name == \"sn\");\r\n\r\n if (!!idNum && !!firstName && !!lastName) {\r\n\r\n this.userService.migrateToSamleikin(idNum.values[0]).subscribe(x => {\r\n this.loading = false;\r\n\r\n this.router.navigate([`${this.translateService.currentLang}/private/home`]);\r\n }, (error) => {\r\n this.loading = false;\r\n this.displayLoginFailed = true;\r\n })\r\n }\r\n }\r\n else {\r\n this.loading = false;\r\n this.displayLoginFailed = true;\r\n }\r\n\r\n }, (error) => {\r\n this.loading = false;\r\n this.displayLoginFailed = true;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{ 'samleikin.migrate_failed' | translate }}\r\n

\r\n
\r\n
\r\n {{ 'samleikin.migrate_failed_body' | translate }}\r\n
\r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AddressService } from '../../shared/services/address-service';\r\nimport { CountryService } from '../../shared/services/country.service';\r\nimport { Company } from '../entities/company';\r\nimport { CompanyAndUser } from \"../entities/companyAndUser\";\r\nimport { CompanyUser } from '../entities/companyUser';\r\nimport { Country } from '../entities/Country';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-business-register',\r\n templateUrl: './business-register.component.html',\r\n styleUrls: ['./business-register.component.scss']\r\n})\r\nexport class BusinessRegisterComponent implements OnInit {\r\n\r\n businessFormGroup: FormGroup;\r\n\r\n existingSelected: boolean = false;\r\n\r\n newSelected: boolean = true;\r\n\r\n preferEmail: boolean = false;\r\n\r\n preferSMS: boolean = false;\r\n\r\n pageTitle: string;\r\n\r\n dontKnowAccountNumber: boolean = false;\r\n\r\n failedToCreate: boolean = false;\r\n\r\n showFormError: boolean = false;\r\n\r\n saving: boolean = false;\r\n\r\n @Output()\r\n successfullyCreatedUser: EventEmitter = new EventEmitter();\r\n\r\n postcodes: Array = new Array();\r\n\r\n countries: Array = new Array();\r\n\r\n interval: any;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private translateService: TranslateService,\r\n private registerService: RegisterService,\r\n private addressService: AddressService,\r\n private countryService: CountryService,\r\n private errorHelper: ErrorHelper,\r\n private translateHelper: TranslationHelper) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.getPostcodes();\r\n\r\n this.businessFormGroup = this._formBuilder.group({\r\n accountNumber: ['', Validators.required],\r\n companyName: ['', Validators.required],\r\n countryCode: ['', [Validators.required, ErrorHelper.countryCodeValidator]],\r\n telephoneNum: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n postcode: ['', Validators.required],\r\n vtalNumber: ['', [Validators.required, Validators.maxLength(6), Validators.minLength(6), ErrorHelper.integerOnlyValidator]],\r\n companyEmail: ['', [Validators.required, , ErrorHelper.emailValidator]],\r\n addressLine1: ['', Validators.required],\r\n addressLine2: [''],\r\n townCity: ['', Validators.required],\r\n invoicePostcode: [''],\r\n country: ['', Validators.required],\r\n specialInstructions: [''],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n jobTitle: [''],\r\n asAbove: [''],\r\n emailAddress: ['', [Validators.required, ErrorHelper.emailValidator]],\r\n mobileCountryCode: ['', [Validators.required, ErrorHelper.countryCodeValidator]],\r\n mobileNum: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n specifyPassword: ['', Validators.required],\r\n confirmPassword: ['', Validators.required]\r\n }, {validators: this.passwordMatchValidator});\r\n\r\n this.businessFormGroup.get('countryCode').setValue('+298');\r\n this.businessFormGroup.get('mobileCountryCode').setValue('+298');\r\n\r\n this.businessFormGroup.get(`countryCode`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.businessFormGroup.get('countryCode'));\r\n });\r\n this.businessFormGroup.get(`mobileCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.businessFormGroup.get('mobileCountryCode'));\r\n });\r\n this.businessFormGroup.get(`asAbove`).valueChanges.subscribe(newValue => {\r\n if(newValue == true)\r\n this.businessFormGroup.get(`emailAddress`).setValue(this.businessFormGroup.get(`companyEmail`).value);\r\n else\r\n this.businessFormGroup.get(`emailAddress`).setValue(\"\");\r\n });\r\n\r\n this.countryService.getAll().subscribe(x => {this.countries = x;\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n \r\n var countryCode = \"FO\"; //this.translateService.currentLang\r\n // if (this.translateService.currentLang == \"en\")\r\n // {\r\n // countryCode = \"gb\";\r\n // }\r\n var country = this.countries.find(y => y.countryCode == countryCode.toUpperCase());\r\n this.businessFormGroup.get(\"country\").setValue(country);\r\n\r\n // this.translateService.onLangChange.subscribe(x => {\r\n \r\n // var countryCode = this.translateService.currentLang\r\n // if (this.translateService.currentLang == \"en\")\r\n // {\r\n // countryCode = \"gb\";\r\n // }\r\n // var country = this.countries.find(y => y.countryCode == countryCode.toUpperCase());\r\n // this.businessFormGroup.get(\"country\").setValue(country);\r\n // })\r\n });\r\n\r\n this.businessFormGroup.get('accountNumber').disable();\r\n\r\n }\r\n\r\n public clearAll() {\r\n this.businessFormGroup.reset();\r\n }\r\n\r\n public isTouched(field){\r\n return this.businessFormGroup.get(field).touched\r\n }\r\n\r\n public toggleAccountNumber()\r\n {\r\n this.dontKnowAccountNumber = !this.dontKnowAccountNumber;\r\n if (this.dontKnowAccountNumber)\r\n {\r\n this.businessFormGroup.get(\"accountNumber\").reset();\r\n this.businessFormGroup.get(\"accountNumber\").disable();\r\n }\r\n else{\r\n this.businessFormGroup.get(\"enable\").enable();\r\n }\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.businessFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.businessFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n \r\n passwordMatchValidator(g: FormGroup) {\r\n if(g.get('specifyPassword').value === g.get('confirmPassword').value){\r\n g.get('confirmPassword').setErrors(null);\r\n return null;\r\n }\r\n else{\r\n g.get('confirmPassword').setErrors({'mismatch': true});\r\n return {'mismatch': true};\r\n }\r\n }\r\n\r\n public enableCustomerAccountNumberFied(enable: boolean) {\r\n if (!enable) {\r\n this.businessFormGroup.get('accountNumber').disable();\r\n this.businessFormGroup.get('addressLine1').enable();\r\n this.businessFormGroup.get('companyEmail').enable();\r\n this.businessFormGroup.get('companyName').enable();\r\n this.businessFormGroup.get('countryCode').enable();\r\n this.businessFormGroup.get('invoicePostcode').enable();\r\n this.businessFormGroup.get('postcode').enable();\r\n this.businessFormGroup.get('telephoneNum').enable();\r\n this.businessFormGroup.get('townCity').enable();\r\n this.businessFormGroup.get('vtalNumber').enable();\r\n }\r\n else {\r\n this.businessFormGroup.get('accountNumber').enable();\r\n this.businessFormGroup.get('addressLine1').disable();\r\n this.businessFormGroup.get('companyEmail').disable();\r\n this.businessFormGroup.get('companyName').disable();\r\n this.businessFormGroup.get('countryCode').disable();\r\n this.businessFormGroup.get('invoicePostcode').disable();\r\n this.businessFormGroup.get('postcode').disable();\r\n this.businessFormGroup.get('telephoneNum').disable();\r\n this.businessFormGroup.get('townCity').disable();\r\n this.businessFormGroup.get('vtalNumber').disable();\r\n }\r\n }\r\n\r\n public proceed() {\r\n this.showFormError = false;\r\n if (!this.businessFormGroup.valid)\r\n {\r\n this.businessFormGroup.markAllAsTouched();\r\n this.showFormError = true;\r\n return;\r\n }\r\n\r\n if (this.businessFormGroup.get('specifyPassword').value !== this.businessFormGroup.get('confirmPassword').value)\r\n {\r\n //TODO raise password not matching error\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n var company: Company = {\r\n isExisting: this.existingSelected,\r\n accountNumber: this.businessFormGroup.get('accountNumber').enabled ? this.businessFormGroup.get('accountNumber').value : null,\r\n companyName: this.businessFormGroup.get('companyName').value,\r\n phoneCountryCode: this.businessFormGroup.get('countryCode').value.replace('+', ''),\r\n addressLine1: this.businessFormGroup.get('addressLine1').value,\r\n addressLine2: this.businessFormGroup.get('addressLine2').value,\r\n townCity: this.businessFormGroup.get('townCity').value,\r\n countryCode: this.businessFormGroup.get('country').value.countryCode,\r\n phoneNo: this.businessFormGroup.get('telephoneNum').value,\r\n postcode: this.businessFormGroup.get('postcode').value.postcode,\r\n vtal: this.businessFormGroup.get('vtalNumber').value,\r\n email: this.businessFormGroup.get('companyEmail').value\r\n }\r\n\r\n var user: CompanyUser = {\r\n firstName: this.businessFormGroup.get('firstName').value,\r\n lastName: this.businessFormGroup.get('lastName').value,\r\n jobTitle: this.businessFormGroup.get('jobTitle').value,\r\n email: this.businessFormGroup.get('emailAddress').value,\r\n mobileCountryCode: this.businessFormGroup.get('mobileCountryCode').value.replace('+', ''),\r\n mobileNo: this.businessFormGroup.get('mobileNum').value,\r\n password: this.businessFormGroup.get('specifyPassword').value,\r\n preferEmail: this.preferEmail,\r\n preferSms: this.preferSMS,\r\n specialInstructions: this.businessFormGroup.get('specialInstructions').value,\r\n languageCode: this.translateService.currentLang\r\n }\r\n\r\n var companyAndUser: CompanyAndUser = {\r\n company: company,\r\n companyUser: user\r\n }\r\n\r\n this.registerService.registerCompanyAndUser(companyAndUser).subscribe(x => {\r\n this.successfullyCreatedUser.emit(true);\r\n this.failedToCreate = false;\r\n this.saving = false;\r\n window.scrollTo(0, 0);\r\n }, (error) => {\r\n this.failedToCreate = true;\r\n this.saving = false;\r\n if (!!error.error)\r\n {\r\n if (error.error.userEmailExists)\r\n {\r\n this.businessFormGroup.get('emailAddress').setErrors({emailTaken: true});\r\n }\r\n if (error.error.userMobileExists)\r\n {\r\n this.businessFormGroup.get('mobileNum').setErrors({mobileTaken: true});\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getPostcodes() {\r\n this.addressService.getPostcodes().subscribe((x) => {\r\n this.postcodes = x\r\n });\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

{{'business_register.company_information' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'business_register.customer_type' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'business_register.customer_account_number' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{'business_register.company_name' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

{{'business_register.company_tel_no' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'business_register.company_postcode' | translate}}

\r\n \r\n \r\n {{postcode.postcode}}, {{postcode.city}}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

{{'business_register.vtal_number' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'business_register.company_email' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

{{'business_register.invoice_address' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'business_register.your_details_title' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'business_register.first_name' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'business_register.last_name' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'business_register.job_title' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n

{{'business_register.user_email' | translate}}

\r\n
\r\n
\r\n \r\n \r\n

{{'business_register.user_email_as_above' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'business_register.user_mobile_phone' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'business_register.create_password_title' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n

{{'business_register.specify_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'business_register.confirm_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'business_register.notification_preferences' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'business_register.notication_email' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'business_register.notification_sms' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AddressService } from '../../shared/services/address-service';\r\nimport { CountryService } from '../../shared/services/country.service';\r\nimport { Country } from '../entities/Country';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-private-register',\r\n templateUrl: './private-register.component.html',\r\n styleUrls: ['./private-register.component.scss']\r\n})\r\nexport class PrivateRegisterComponent implements OnInit {\r\n\r\n privateFormGroup: FormGroup;\r\n\r\n noSamleikin: boolean = true;\r\n \r\n postcodes: Array = new Array();\r\n\r\n countries: Array = new Array();\r\n\r\n preferEmail: boolean = false;\r\n\r\n pageTitle: string;\r\n\r\n interval: any;\r\n\r\n preferSMS: boolean = false;\r\n\r\n failedToCreate: boolean = false;\r\n\r\n saving: boolean = false;\r\n\r\n @Output()\r\n successfullyCreatedUser: EventEmitter = new EventEmitter();\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private translateService: TranslateService,\r\n private registerService: RegisterService,\r\n private addressService: AddressService,\r\n private countryService: CountryService,\r\n private errorHelper: ErrorHelper,\r\n private translateHelper: TranslationHelper) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.getPostcodes();\r\n\r\n this.privateFormGroup = this._formBuilder.group({\r\n addressLine1: ['', Validators.required],\r\n addressLine2: [''],\r\n townCity: ['', Validators.required],\r\n postcode: [''],\r\n country: ['', Validators.required],\r\n specialInstructions: [''],\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n jobTitle: [''],\r\n emailAddress: ['', [Validators.required, ErrorHelper.emailValidator]],\r\n mobileCountryCode: ['', [Validators.required, ErrorHelper.countryCodeValidator]],\r\n mobileNum: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n specifyPassword: ['', Validators.required],\r\n confirmPassword: ['', Validators.required]\r\n }, {validators: this.passwordMatchValidator});\r\n\r\n this.privateFormGroup.get(`mobileCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.privateFormGroup.get('mobileCountryCode'));\r\n });\r\n\r\n this.privateFormGroup.get('mobileCountryCode').setValue('+298');\r\n\r\n this.countryService.getAll().subscribe(x => {this.countries = x;\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n\r\n var countryCode = \"FO\"; //this.translateService.currentLang\r\n // if (this.translateService.currentLang == \"en\")\r\n // {\r\n // countryCode = \"gb\";\r\n // }\r\n var country = this.countries.find(y => y.countryCode == countryCode.toUpperCase());\r\n this.privateFormGroup.get(\"country\").setValue(country);\r\n\r\n // this.translateService.onLangChange.subscribe(x => {\r\n // var countryCode = this.translateService.currentLang\r\n // if (this.translateService.currentLang == \"en\")\r\n // {\r\n // countryCode = \"gb\";\r\n // }\r\n // var country = this.countries.find(y => y.countryCode == countryCode.toUpperCase());\r\n // this.privateFormGroup.get(\"country\").setValue(country);\r\n // })\r\n });\r\n }\r\n\r\n public getPostcodes() {\r\n this.addressService.getPostcodes().subscribe((x) => {\r\n this.postcodes = x\r\n });\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public clearAll() {\r\n this.privateFormGroup.reset();\r\n }\r\n\r\n public isTouched(field){\r\n return this.privateFormGroup.get(field).touched\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.privateFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.privateFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n \r\n passwordMatchValidator(g: FormGroup) {\r\n if(g.get('specifyPassword').value === g.get('confirmPassword').value){\r\n g.get('confirmPassword').setErrors(null);\r\n return null;\r\n }\r\n else{\r\n g.get('confirmPassword').setErrors({'mismatch': true});\r\n return {'mismatch': true};\r\n }\r\n }\r\n\r\n public proceed()\r\n {\r\n if (!this.privateFormGroup.valid)\r\n {\r\n this.privateFormGroup.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.privateFormGroup.get('specifyPassword').value !== this.privateFormGroup.get('confirmPassword').value)\r\n {\r\n //TODO raise password not matching error\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n var user: any = {\r\n languageCode: this.translateService.currentLang.toUpperCase(),\r\n userTypeId: 2,\r\n firstName: this.privateFormGroup.get('firstName').value,\r\n lastName: this.privateFormGroup.get('lastName').value,\r\n jobTitle: this.privateFormGroup.get('jobTitle').value,\r\n email: this.privateFormGroup.get('emailAddress').value,\r\n mobileCountryCode: this.privateFormGroup.get('mobileCountryCode').value.replace('+', ''),\r\n mobileNo: this.privateFormGroup.get('mobileNum').value,\r\n password: this.privateFormGroup.get('specifyPassword').value,\r\n preferEmail: this.preferEmail,\r\n preferSms: this.preferSMS,\r\n addressLine1: this.privateFormGroup.get('addressLine1').value,\r\n addressLine2: this.privateFormGroup.get('addressLine2').value,\r\n townCity: this.privateFormGroup.get('townCity').value,\r\n postcode: this.privateFormGroup.get('postcode').value,\r\n countryCode: this.privateFormGroup.get('country').value.countryCode,\r\n specialInstructions: this.privateFormGroup.get('specialInstructions').value,\r\n }\r\n\r\n this.registerService.individualRegister(user).subscribe(x => {\r\n this.successfullyCreatedUser.emit(true);\r\n this.failedToCreate = false;\r\n this.saving = false;\r\n window.scrollTo(0, 0);\r\n }, (error) => {\r\n if (error.status === 419)\r\n {\r\n this.saving = false;\r\n\r\n if (!!error.error)\r\n {\r\n if (error.error.userEmailExists)\r\n {\r\n this.privateFormGroup.get('emailAddress').setErrors({emailTaken: true});\r\n }\r\n if (error.error.userMobileExists)\r\n {\r\n this.privateFormGroup.get('mobileNum').setErrors({mobileTaken: true});\r\n }\r\n }\r\n }\r\n this.failedToCreate = true;\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n

{{'private_register.my_details_title' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'private_register.first_name' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'private_register.last_name' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

{{'private_register.user_email' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'private_register.user_mobile_phone' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

{{'private_register.create_password_title' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n

{{'private_register.specify_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'private_register.confirm_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'private_register.my_address' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'private_register.notification_preferences' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'private_register.notication_email' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{'private_register.notification_sms' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { RoleService } from '../services/role.service';\r\n\r\n@Component({\r\n selector: 'app-register',\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.scss']\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n\r\n isBusinessUserType: boolean = false;\r\n\r\n interval: any;\r\n\r\n pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n successfullyCreatedBusinessUser: boolean = false;\r\n\r\n successfullyCreatedPrivateUser: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private staticContentService: StaticContentService,\r\n private translateService: TranslateService,\r\n private roleService: RoleService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n \r\n var role = this.route.snapshot.paramMap.get('role');\r\n if (!!role)\r\n {\r\n if (role == \"business\")\r\n {\r\n this.isBusinessUserType = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n changeRegisterRoleToBusiness(businessUser: boolean)\r\n {\r\n if ((this.roleService.role() == \"business\" && businessUser) || (this.roleService.role() == \"private\" && !businessUser))\r\n {\r\n return;\r\n }\r\n\r\n if (businessUser)\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/business/register`]);\r\n }\r\n else{\r\n this.router.navigate([`${this.translateService.currentLang}/private/register`]);\r\n }\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n\r\n businessUserCreatedEvent(event: any)\r\n {\r\n this.successfullyCreatedBusinessUser = true;\r\n }\r\n\r\n privateUserCreatedEvent(event: any)\r\n {\r\n this.successfullyCreatedPrivateUser = true;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'user_register.user_type' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n

{{'business_register.thank_you' | translate}}

\r\n
{{'business_register.user_submitted_body' | translate}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'private_register.thank_you' | translate}}

\r\n
{{'private_register.user_submitted_body' | translate}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { Component, ComponentDecorator, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { RoleService } from '../services/role.service';\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.scss']\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n\r\n resetPasswordForm: FormGroup;\r\n\r\n passwordSucessfullyReset: boolean = false;\r\n\r\n private code: string;\r\n\r\n passwordsDoNotMatch: boolean = false;\r\n\r\n passwordResetFailed: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private _formBuilder: FormBuilder,\r\n private authService: AuthenticationService,\r\n private translateService: TranslateService,\r\n private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.code = this.route.snapshot.paramMap.get('code');\r\n \r\n this.resetPasswordForm = this._formBuilder.group({\r\n specifyPassword: ['', Validators.required],\r\n confirmPassword: ['', Validators.required],\r\n });\r\n }\r\n\r\n public submit()\r\n {\r\n if (!this.resetPasswordForm.valid)\r\n {\r\n this.resetPasswordForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.resetPasswordForm.get('specifyPassword').value !== this.resetPasswordForm.get('confirmPassword').value)\r\n {\r\n //throw passwords do not match error.\r\n return;\r\n }\r\n\r\n var forgottenInput: any = {\r\n newPassword: this.resetPasswordForm.get('confirmPassword').value,\r\n codeType: 1,\r\n code: this.code\r\n }\r\n\r\n //call endpoint\r\n this.authService.resetPasswordRequest(forgottenInput).subscribe(x => {\r\n if (x)\r\n {\r\n console.log(window.location.href);\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/login`])\r\n }\r\n else {\r\n this.passwordResetFailed = true;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'reset_password.reset_password_title' | translate}}

\r\n

{{'reset_password.specify_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n
\r\n

{{'reset_password.confirm_password' | translate}}

\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n

{{'reset_password.reset_failed_title' | translate}}

\r\n
{{'reset_password.reset_failed_body' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { User } from \"../entities/user\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { environment } from \"../../../environments/environment\";\r\nimport { CookieService } from \"../../shared/services/cookie.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { SamleikinSession } from \"../entities/samleikinSession\";\r\nimport { SamleikinCredentials } from \"../entities/samleikinCredentials\";\r\nimport { RoleService } from \"./role.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n private userSubject: BehaviorSubject;\r\n public user: Observable;\r\n\r\n constructor(\r\n private router: Router,\r\n private http: HttpClient,\r\n private cookieService: CookieService,\r\n private translateService: TranslateService,\r\n private roleService: RoleService\r\n ) {\r\n this.userSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('user')));\r\n this.user = this.userSubject.asObservable();\r\n }\r\n\r\n public getUser(): User {\r\n return this.userSubject.value;\r\n }\r\n\r\n public isLoggedIn(): boolean {\r\n return !!(this.getUser() && this.cookieService.getCookie('token'));\r\n }\r\n\r\n login(username: string, password: string, userTypeId: number, languageCode: string) {\r\n return this.http.post(`${environment.apiUrl}/api/Authentication`, {\r\n \"UserName\": username,\r\n \"Password\": password,\r\n \"UserTypeId\": userTypeId,\r\n \"LanguageCode\": languageCode\r\n }, { responseType: 'json' })\r\n .pipe(map(userToken => {\r\n const user = new User;\r\n localStorage.setItem('user', JSON.stringify(user));\r\n localStorage.setItem('loginUserType', this.getUserType(userTypeId));\r\n localStorage.setItem('userDetails', JSON.stringify(userToken));\r\n\r\n if(!!localStorage.getItem(\"isSamleikin\"))\r\n {\r\n localStorage.removeItem(\"isSamleikin\");\r\n }\r\n this.userSubject.next(user);\r\n\r\n if (!!(userToken as any).token)\r\n {\r\n this.cookieService.setCookie(\"token\", (userToken as any).token, 1440);\r\n }\r\n this.roleService.setRole(this.getUserType(userTypeId));\r\n return JSON.stringify(userToken);\r\n }));\r\n }\r\n\r\n samleikinLogin(userCredentials: SamleikinCredentials): Observable {\r\n return this.http.post(`${environment.apiUrl}/api/Authentication`, userCredentials, { responseType: 'json' })\r\n .pipe(map(userToken => {\r\n const user = new User;\r\n localStorage.setItem('user', JSON.stringify(user));\r\n localStorage.setItem('loginUserType', \"private\");\r\n localStorage.setItem('userDetails', JSON.stringify(userToken));\r\n localStorage.setItem('isSamleikin', \"true\");\r\n this.userSubject.next(user);\r\n this.cookieService.setCookie(\"token\", (userToken as any).token, 1440);\r\n this.roleService.setRole(\"private\");\r\n return userToken;\r\n }));\r\n }\r\n\r\n logout() {\r\n return this.http.get(`${environment.apiUrl}/api/Authentication`).pipe(map((response) => {\r\n this.stopRefreshTokenTimer();\r\n if (!!this.cookieService.getCookie('token')) {\r\n this.cookieService.deleteCookie('token');\r\n }\r\n localStorage.removeItem('user');\r\n localStorage.removeItem('userDetails');\r\n localStorage.removeItem(\"isSamleikin\");\r\n localStorage.removeItem('loginUserType');\r\n\r\n this.userSubject.next(null);\r\n // this.router.navigate([`../${this.translateService.currentLang}/private/home`])\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/home`])\r\n return response\r\n }, (err) => {\r\n if (!!this.cookieService.getCookie('token')) {\r\n this.cookieService.deleteCookie('token');\r\n }\r\n localStorage.removeItem('user');\r\n localStorage.removeItem('userDetails');\r\n localStorage.removeItem(\"isSamleikin\");\r\n localStorage.removeItem('loginUserType');\r\n }));\r\n }\r\n\r\n logoutShibboleth() {\r\n return this.http.get(`${window.location.href.split('/').slice(0, 3).join('/')}/Shibboleth.sso/Logout`);\r\n }\r\n\r\n validateToken() {\r\n return this.http.get(`/ConsumerServiceV2.svc/GetDataAsync`)\r\n .pipe(map((response) => {\r\n return response;\r\n }, (err) => {\r\n if (!!this.cookieService.getCookie('token')) {\r\n this.cookieService.deleteCookie('token');\r\n }\r\n localStorage.removeItem('user');\r\n localStorage.removeItem('userDetails');\r\n localStorage.removeItem(\"isSamleikin\");\r\n localStorage.removeItem('loginUserType');\r\n }));\r\n }\r\n\r\n resetPassword(forgottenInput: any) {\r\n return this.http.post(`${environment.apiUrl}/api/Authentication/ForgottenPassword`, forgottenInput) as Observable;\r\n }\r\n \r\n verifyAccount(input: any) {\r\n return this.http.put(`${environment.apiUrl}/api/Authentication/validatecodeandaction`, input);\r\n }\r\n\r\n resetPasswordRequest(input: any) {\r\n return this.http.put(`${environment.apiUrl}/api/Authentication/validatecodeandaction`, input);\r\n }\r\n\r\n getSessionData() {\r\n return this.http.get(`${window.location.href.split('/').slice(0, 3).join('/')}/Shibboleth.sso/Session`) as Observable;\r\n }\r\n\r\n getPreAuthSamleikin() {\r\n return this.http.get(`${environment.apiUrl}/api/Authentication/PreAuthGuid`) as Observable;\r\n }\r\n\r\n\r\n\r\n\r\n // helper methods\r\n\r\n private refreshTokenTimeout;\r\n\r\n // private startRefreshTokenTimer() {\r\n // // parse json object from base64 encoded token\r\n // const token = JSON.parse(atob(this.userValue().token.split('.')[1]));\r\n\r\n // // set a timeout to refresh the token a minute before it expires\r\n // const expires = new Date(token.exp * 1000);\r\n // const timeout = expires.getTime() - Date.now() - (60 * 1000);\r\n // this.refreshTokenTimeout = setTimeout(() => this.refreshToken().subscribe(), timeout);\r\n // }\r\n\r\n private stopRefreshTokenTimer() {\r\n clearTimeout(this.refreshTokenTimeout);\r\n }\r\n\r\n private getUserType(userTypeId: number)\r\n {\r\n if (userTypeId == 1)\r\n {\r\n return \"business\";\r\n }\r\n if (userTypeId == 2)\r\n {\r\n return \"private\";\r\n }\r\n }\r\n\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of } from \"rxjs\";\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MobileVerificationResolver implements Resolve {\r\n\r\n constructor (private authenticationService: AuthenticationService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n var verifyInput: any = {\r\n //4 is verifiy sms\r\n CodeType: 4,\r\n Code: route.paramMap.get('code')\r\n }\r\n\r\n // return this.authenticationService.verifyAccount(verifyInput).pipe(\r\n // map((x) => ( {any : x })),\r\n // catchError((error))\r\n // )\r\n\r\n return this.authenticationService.verifyAccount(verifyInput).pipe(\r\n map((x) => ({x})),\r\n catchError((error) => {\r\n console.log(\"Invalid verification code provided\");\r\n return of({ x: false});\r\n }),\r\n );\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { environment } from \"../../../environments/environment\";\r\nimport { CompanyAndUser } from \"../entities/companyAndUser\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RegisterService {\r\n\r\n constructor(\r\n private router: Router,\r\n private httpClient: HttpClient\r\n ) { }\r\n\r\n public registerCompanyAndUser(companyAndUser: CompanyAndUser): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/user/bu_register`, companyAndUser) as Observable;\r\n }\r\n\r\n public individualRegister(user: any): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/user/iu_register`, user) as Observable;\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { User } from \"../entities/user\";\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { environment } from \"../../../environments/environment\";\r\nimport { CookieService } from \"../../shared/services/cookie.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { SamleikinSession } from \"../entities/samleikinSession\";\r\nimport { SamleikinCredentials } from \"../entities/samleikinCredentials\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RoleService {\r\n public roleSubject = new BehaviorSubject(localStorage.getItem('role'));\r\n\r\n constructor()\r\n {\r\n }\r\n\r\n setRole(role: any) {\r\n localStorage.setItem('role', role);\r\n this.roleSubject.next(localStorage.getItem('role'));\r\n }\r\n\r\n role() {\r\n if (!!localStorage.getItem('role'))\r\n {\r\n return localStorage.getItem('role').toString();\r\n }\r\n return 'private';\r\n }\r\n\r\n isPrivateUser(): boolean\r\n {\r\n if (!!localStorage.getItem('role'))\r\n {\r\n return localStorage.getItem('role') === 'private';\r\n }\r\n return false;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { User } from '../entities/user';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Observable } from 'rxjs';\r\nimport { CustomerAccount } from '../entities/customerAccount';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n public getUserDetails(): Observable {\r\n return this.http.get(`${environment.apiUrl}/api/user/contactdetails`) as Observable;\r\n }\r\n\r\n getAll() {\r\n return this.http.get(`${environment.apiUrl}/users`);\r\n }\r\n\r\n changePassword(changeInput: any) {\r\n return this.http.put(`${environment.apiUrl}/api/user`, changeInput)\r\n }\r\n\r\n public getIndividualUserProfile() {\r\n return this.http.get(`${environment.apiUrl}/api/user/iu_getprofile`);\r\n }\r\n\r\n public getBusinessUserProfile() {\r\n return this.http.get(`${environment.apiUrl}/api/user/bu_getprofile`);\r\n }\r\n\r\n public updateBusinessProfile(input) {\r\n return this.http.put(`${environment.apiUrl}/api/user/bu_updateprofile`, input);\r\n }\r\n\r\n public updateIndividualProfile(input) {\r\n return this.http.put(`${environment.apiUrl}/api/user/iu_updateprofile`, input);\r\n }\r\n\r\n public migrateToSamleikin(ptal: string)\r\n {\r\n return this.http.put(`${environment.apiUrl}/api/user/${ptal}/MigrateUser`, null);\r\n }\r\n\r\n public getCustomerAccounts(){\r\n return this.http.get(`${environment.apiUrl}/api/customerAccount`) as Observable;\r\n }\r\n\r\n public getAccountStatement(customerAccountNo: string, fromDate?: string, toDate?: string){\r\n var url = `${environment.apiUrl}/api/customerAccount/statement/${customerAccountNo}`;\r\n if(fromDate){\r\n url = `${url}?fromDate=${fromDate}`\r\n if(toDate){\r\n url = `${url}&toDate=${toDate}`\r\n }\r\n }\r\n else{\r\n if(toDate){\r\n url = `${url}?toDate=${toDate}`\r\n }\r\n }\r\n return this.http.get(url, {responseType: 'text'});\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of } from \"rxjs\";\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserProfileResolver implements Resolve {\r\n\r\n constructor (private userService: UserService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n \r\n var role = route.paramMap.get('role');\r\n if (!role || (role != \"private\" && role != \"business\"))\r\n {\r\n return;\r\n }\r\n\r\n if (role == \"private\")\r\n {\r\n return this.userService.getIndividualUserProfile().pipe(\r\n map((x) => ({x})),\r\n catchError((error) => {\r\n console.log(\"No valid user found\");\r\n return of({ x: false});\r\n }),\r\n );\r\n }\r\n else{\r\n //We already done the check above so we know it'll be business if it's not private\r\n return this.userService.getBusinessUserProfile().pipe(\r\n map((x) => ({x})),\r\n catchError((error) => {\r\n console.log(\"No valid user found\");\r\n return of({ x: false});\r\n }),\r\n );\r\n }\r\n\r\n // return this.authenticationService.verifyAccount(verifyInput).pipe(\r\n // map((x) => ({x})),\r\n // catchError((error) => {\r\n // console.log(\"Invalid verification code provided\");\r\n // return of({ x: false});\r\n // }),\r\n // );\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of } from \"rxjs\";\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VerificationResolver implements Resolve {\r\n\r\n constructor (private authenticationService: AuthenticationService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n var verifyInput: any = {\r\n //3 is verifiy email\r\n CodeType: 3,\r\n Code: route.paramMap.get('code')\r\n }\r\n\r\n // return this.authenticationService.verifyAccount(verifyInput).pipe(\r\n // map((x) => ( {any : x })),\r\n // catchError((error))\r\n // )\r\n\r\n return this.authenticationService.verifyAccount(verifyInput).pipe(\r\n map((x) => ({x})),\r\n catchError((error) => {\r\n console.log(\"Invalid verification code provided\");\r\n return of({ x: false});\r\n }),\r\n );\r\n }\r\n}","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryService } from '../../shared/services/country.service';\r\nimport { Country } from '../entities/Country';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { UserService } from '../services/user.service';\r\nimport { CompanyAndUser } from '../entities/companyAndUser';\r\nimport { CompanyUser } from '../entities/companyUser';\r\nimport { User } from '../entities/user';\r\nimport { environment } from '../../../environments/environment';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-update-profile',\r\n templateUrl: './update-profile.component.html',\r\n styleUrls: ['./update-profile.component.scss']\r\n})\r\nexport class UpdateProfileComponent implements OnInit {\r\n\r\n samleikinMigrateUrl: string = `/migrate/samleikin`\r\n\r\n detailsForm: FormGroup;\r\n\r\n countries: Array = new Array();\r\n\r\n success: Boolean = false;\r\n\r\n userProfile: any;\r\n\r\n isPrivateUser: boolean = false;\r\n\r\n role: string;\r\n\r\n isSamleikin: boolean = false;\r\n\r\n saving: boolean = false;\r\n failed: boolean = false;\r\n interval: NodeJS.Timeout;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private _formBuilder: FormBuilder, private translateService: TranslateService,\r\n private countryService: CountryService, private errorHelper: ErrorHelper, private userService: UserService, private translateHelper: TranslationHelper,\r\n private titleService: Title, private staticContentService: StaticContentService, private ref: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n if (!!localStorage.getItem(\"isSamleikin\"))\r\n {\r\n this.isSamleikin = true;\r\n }\r\n\r\n this.userProfile = this.route.snapshot.data.userProfile.x;\r\n if (!this.userProfile && !this.userProfile.companyUser)\r\n {\r\n console.log(\"No user found, not loading anything\");\r\n }\r\n\r\n this.role = this.route.snapshot.paramMap.get('role');\r\n if (!!this.role)\r\n {\r\n if (this.role == \"business\")\r\n {\r\n this.isPrivateUser = false;\r\n this.detailsForm = this._formBuilder.group({\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n mobileCountryCode: ['', [Validators.required, ErrorHelper.countryCodeValidator]],\r\n mobileNum: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n instructions: [''],\r\n registerForSMS: [false],\r\n registerForEmail: [false],\r\n email: [{value:`${this.formatFieldValue(this.userProfile.companyUser.email)}`, disabled: true}],\r\n company_name: [{value:`${this.formatFieldValue(this.userProfile.company.companyName)}`, disabled: true}],\r\n company_vtal: [{value:`${this.formatFieldValue(this.userProfile.company.vtal)}`, disabled: true}],\r\n company_postcode: [{value:`${this.formatFieldValue(this.userProfile.company.postcode)}`, disabled: true}],\r\n company_email: [{value:`${this.formatFieldValue(this.userProfile.company.email)}`, disabled: true}],\r\n company_address1: [{value:`${this.formatFieldValue(this.userProfile.company.addressLine1)}`, disabled: true}],\r\n company_address2: [{value:`${this.formatFieldValue(this.userProfile.company.addressLine2)}`, disabled: true}],\r\n company_town_city: [{value:`${this.formatFieldValue(this.userProfile.company.townCity)}`, disabled: true}],\r\n company_country: [{value:`${this.formatFieldValue(this.getCountryNameForLanguage(this.setCountryByCode(this.userProfile.company.countryCode)))}`, disabled: true}],\r\n company_phone_country_code: [{value:`${this.formatFieldValue(this.userProfile.company.phoneCountryCode)}`, disabled: true}, [Validators.required, ErrorHelper.countryCodeValidator]],\r\n company_phone_number: [{value:`${this.formatFieldValue(this.userProfile.company.phoneNo)}`, disabled: true}, [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n });\r\n this.detailsForm.get(`company_phone_country_code`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.detailsForm.get('company_phone_country_code'));\r\n });\r\n this.detailsForm.get(`mobileCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.detailsForm.get('mobileCountryCode'));\r\n });\r\n\r\n this.detailsForm.get('firstName').setValue(this.userProfile.companyUser.firstName);\r\n this.detailsForm.get('lastName').setValue(this.userProfile.companyUser.lastName);\r\n this.detailsForm.get('mobileCountryCode').setValue(this.userProfile.companyUser.mobileCountryCode);\r\n this.detailsForm.get('mobileNum').setValue(this.userProfile.companyUser.mobileNo);\r\n this.detailsForm.get('instructions').setValue(this.userProfile.companyUser.specialInstructions);\r\n this.detailsForm.get('instructions').setValue(this.userProfile.companyUser.specialInstructions);\r\n this.detailsForm.get('registerForSMS').setValue(this.userProfile.companyUser.preferSMS);\r\n this.detailsForm.get('registerForEmail').setValue(this.userProfile.companyUser.preferEmail);\r\n\r\n // this.detailsForm.get('lastName').setValue(this.userProfile.companyUser.lastName);\r\n }\r\n\r\n if (this.role ==\"private\")\r\n {\r\n this.isPrivateUser = true;\r\n this.detailsForm = this._formBuilder.group({\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n addressLine1: ['', Validators.required],\r\n addressLine2: [''],\r\n townCity: ['', Validators.required],\r\n postcode: ['', Validators.required],\r\n country: ['', Validators.required],\r\n // phone: [''],\r\n mobileCountryCode: ['', [Validators.required, ErrorHelper.countryCodeValidator]],\r\n mobileNum: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n instructions: [''],\r\n registerForSMS: [false],\r\n registerForEmail: [false],\r\n email: ['', Validators.required],\r\n });\r\n this.detailsForm.get(`mobileCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.prependPlus(this.detailsForm.get('mobileCountryCode'));\r\n });\r\n\r\n this.detailsForm.get('email').setValue(this.userProfile.email);\r\n if (!!this.userProfile.email)\r\n {\r\n this.detailsForm.get(\"email\").disable();\r\n }\r\n\r\n this.detailsForm.get('firstName').setValue(this.userProfile.firstName);\r\n this.detailsForm.get('lastName').setValue(this.userProfile.lastName);\r\n this.detailsForm.get('addressLine1').setValue(this.userProfile.addressLine1);\r\n this.detailsForm.get('addressLine2').setValue(this.userProfile.addressLine2);\r\n this.detailsForm.get('townCity').setValue(this.userProfile.townCity);\r\n this.detailsForm.get('postcode').setValue(this.userProfile.postcode);\r\n this.detailsForm.get('mobileCountryCode').setValue(this.userProfile.mobileCountryCode);\r\n this.detailsForm.get('mobileNum').setValue(this.userProfile.mobileNo);\r\n this.detailsForm.get('instructions').setValue(this.userProfile.specialInstructions);\r\n this.detailsForm.get('registerForSMS').setValue(this.userProfile.preferSMS);\r\n this.detailsForm.get('registerForEmail').setValue(this.userProfile.preferEmail);\r\n }\r\n\r\n this.countryService.getAll().subscribe(x => {this.countries = x;\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n if (!!this.detailsForm.get('country'))\r\n {\r\n this.detailsForm.get('country').setValue(this.setCountryByCode(this.userProfile.countryCode));\r\n }\r\n \r\n if (!!this.detailsForm.get('company_country'))\r\n {\r\n var country = this.setCountryByCode(this.userProfile.company.countryCode);\r\n this.detailsForm.get('company_country').setValue(this.getCountryNameForLanguage(country));\r\n }\r\n });\r\n }\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n var tabTitle = this.staticContentService.getPageTabTitle();\r\n this.titleService.setTitle(tabTitle);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n var tabTitle = this.staticContentService.getPageTabTitle();\r\n this.titleService.setTitle(tabTitle);\r\n })\r\n this.ref.detectChanges();\r\n }\r\n }, 500);\r\n\r\n\r\n }\r\n\r\n private formatFieldValue(field: any) {\r\n if (!!field)\r\n {\r\n return field;\r\n }\r\n return '';\r\n }\r\n\r\n public isBusinessUser() {\r\n if (!!localStorage.getItem(\"loginUserType\") && localStorage.getItem(\"loginUserType\") == \"business\")\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public profileComplete() {\r\n var userDetails = localStorage.getItem(\"userDetails\");\r\n var userDetailsJson = JSON.parse(userDetails);\r\n if (!!userDetailsJson && userDetailsJson.isProfileComplete)\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.detailsForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.detailsForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n if (!country)\r\n {\r\n return;\r\n }\r\n\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setCountryByCode(countryCode: string): Country {\r\n return this.countries.find(x => x.countryCode == countryCode);\r\n }\r\n\r\n public save()\r\n {\r\n if (!this.detailsForm.valid)\r\n {\r\n this.detailsForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n var profileWillBeComplete: boolean = false;\r\n\r\n if (this.role ==\"business\")\r\n {\r\n var companyUser: CompanyUser = {\r\n firstName: this.detailsForm.get('firstName').value,\r\n lastName: this.detailsForm.get('lastName').value,\r\n mobileCountryCode: this.detailsForm.get('mobileCountryCode').value.substring(1),\r\n mobileNo: this.detailsForm.get('mobileNum').value,\r\n specialInstructions: this.detailsForm.get('instructions').value,\r\n languageCode: this.translateService.currentLang,\r\n preferSms: this.detailsForm.get('registerForSMS').value,\r\n preferEmail: this.detailsForm.get('registerForEmail').value,\r\n }\r\n \r\n var companyAndUser: CompanyAndUser = {\r\n company: this.userProfile.company,\r\n companyUser: companyUser\r\n }\r\n \r\n this.userService.updateBusinessProfile(companyAndUser).subscribe((x) => {\r\n this.failed = false;\r\n this.success = true;\r\n this.saving = false;\r\n var userDetails = localStorage.getItem(\"userDetails\");\r\n var userDetailsJson = JSON.parse(userDetails);\r\n userDetailsJson.isProfileComplete = true;\r\n localStorage.setItem('userDetails', JSON.stringify(userDetailsJson));\r\n }, (error) => {\r\n this.saving = false;\r\n this.failed = true;\r\n });\r\n }\r\n\r\n if (this.role == \"private\")\r\n {\r\n var privateUser: User = {\r\n firstName: this.detailsForm.get('firstName').value,\r\n lastName: this.detailsForm.get('lastName').value,\r\n addressLine1: this.detailsForm.get('addressLine1').value,\r\n addressLine2: this.detailsForm.get('addressLine2').value,\r\n townCity: this.detailsForm.get('townCity').value,\r\n postcode: this.detailsForm.get('postcode').value,\r\n countryCode: this.detailsForm.get('country').value.countryCode,\r\n mobileCountryCode: this.detailsForm.get('mobileCountryCode').value.substring(1),\r\n mobileNo: this.detailsForm.get('mobileNum').value,\r\n specialInstructions: this.detailsForm.get('instructions').value,\r\n isSamleikin: this.isSamleikin,\r\n languageCode: this.translateService.currentLang,\r\n preferSms: this.detailsForm.get('registerForSMS').value,\r\n preferEmail: this.detailsForm.get('registerForEmail').value,\r\n email: this.detailsForm.get(\"email\").value\r\n }\r\n\r\n this.userService.updateIndividualProfile(privateUser).subscribe((x) => {\r\n this.failed = false;\r\n this.success = true;\r\n this.saving = false;\r\n var userDetails = localStorage.getItem(\"userDetails\");\r\n var userDetailsJson = JSON.parse(userDetails);\r\n userDetailsJson.isProfileComplete = true;\r\n localStorage.setItem('userDetails', JSON.stringify(userDetailsJson));\r\n }, (error) => {\r\n this.saving = false;\r\n this.failed = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.my_details' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.first_name' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.last_name' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.email' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.address_line_1' |\r\n translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ 'update_profile.town_city' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.postcode' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.country' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ 'update_profile.mobile' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.instructions' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_name' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_vtal' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_postcode' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_email' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_address1' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_address2' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_town_city' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_country' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.company_phone_number' | translate }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ 'update_profile.notification_preferences' | translate }}

\r\n
\r\n
\r\n \r\n \r\n
{{ 'update_profile.email_pref' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{ 'update_profile.sms_pref' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-verification',\r\n templateUrl: './verification.component.html',\r\n styleUrls: ['./verification.component.scss']\r\n})\r\nexport class VerificationComponent implements OnInit {\r\n\r\n isVerified: boolean = false;\r\n\r\n successfulVerification: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.route.snapshot.data.verified.x)\r\n {\r\n this.successfulVerification = true;\r\n }\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'account_verification.verified_title' | translate }}

\r\n
{{'account_verification.verified_body' | translate }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'account_verification.invalid_code_title' | translate }}

\r\n
{{'account_verification.invalid_code_body' | translate }}
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomePersonalComponent } from './home/home-personal/home-personal.component';\r\nimport { StaticContentPageComponent } from './shared/static-content/static-content-page.component';\r\nimport { HomePageGuard } from './shared/guards/homepage.guard';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', component: HomePersonalComponent, canActivate: [HomePageGuard] },\r\n { path: ':lang/:role/home', component: HomePersonalComponent },\r\n\r\n { path: 'business', redirectTo: '/en/business/home', pathMatch: 'full' },\r\n { path: 'vinna', redirectTo: '/fo/business/home', pathMatch: 'full' },\r\n { path: 'privat', redirectTo: '/fo/private/home', pathMatch: 'full' },\r\n { path: 'pakkar', redirectTo: '/fo/private/help-information/pakkar', pathMatch: 'full' },\r\n \r\n { path: '**', component: StaticContentPageComponent },\r\n\r\n\r\n // resolve: { staticContent: StaticContentResolver }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { StaticContentService } from './shared/services/static-content.service';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n loading: boolean = false;\r\n constructor(private staticContentService: StaticContentService){}\r\n\r\n public ngOnInit() {\r\n\r\n this.loading = true;\r\n if (!this.staticContentService.staticContent) {\r\n this.setStaticContent();\r\n }\r\n else {\r\n this.staticContentService.getHash().subscribe(x => {\r\n if (this.staticContentService.staticContentHash != x) {\r\n this.setStaticContent();\r\n }\r\n });\r\n }\r\n}\r\n\r\n private setStaticContent() {\r\n this.staticContentService.getStaticContent().subscribe(x => {\r\n this.staticContentService.setStaticContent(x);\r\n this.loading = false;\r\n // this.staticContentHelper.setCdn(x);\r\n this.staticContentService.setStaticContentHash(x.Hash);\r\n }, error => {\r\n var test = error;\r\n });\r\n }\r\n}\r\n","","import { AuthenticationService } from \"./account/services/authentication.service\";\r\nimport { CookieService } from \"./shared/services/cookie.service\";\r\n\r\nexport function appInitializer(authenticationService: AuthenticationService, cookieService: CookieService) {\r\n if (!cookieService.getCookie('token')) {\r\n return() => Promise.resolve();\r\n }\r\n return () => new Promise(resolve => {\r\n // attempt to refresh token on app start up to auto authenticate\r\n authenticationService.validateToken()\r\n .subscribe()\r\n .add(resolve);\r\n });\r\n}","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER, LOCALE_ID } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { TranslateLoader, TranslateModule} from '@ngx-translate/core';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { HomePersonalComponent } from './home/home-personal/home-personal.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SendReceiveModule } from './send-receive/send-receive.module';\r\nimport { ShoppingServicesModule } from './shopping-services/shopping-services.module';\r\nimport { MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\r\nimport { JwtInterceptor } from './shared/jwt.interceptor';\r\nimport { AccountModule } from './account/account.module';\r\nimport { AuthenticationService } from './account/services/authentication.service';\r\nimport { appInitializer } from './app.initializer';\r\nimport { ImportServicesModule } from './import-services/import-services.module';\r\nimport { CookieService } from './shared/services/cookie.service';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeDk from '@angular/common/locales/fo-DK';\r\nimport { CustomTranslateLoader } from '../app/services/customTranslateLoader'\r\nimport { Routes, UrlSerializer } from '@angular/router';\r\nimport { BaseComponent } from '../app/base.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { CustomUrlSerializer } from './custom-url-serializer';\r\nimport { WaybillModule } from './waybill/waybill.module';\r\nimport { CcsModule } from './ccs/ccs.module';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToppyModule } from 'toppy';\r\n\r\n\r\nregisterLocaleData(localeDk);\r\n\r\n// export function httpLoaderFactory(http: HttpClient) {\r\n// return new TranslateHttpLoader(http, `${environment.apiUrl}/api/StaticContent/TranslationDictionary/`, \"\");\r\n// }\r\n\r\nexport const routes: Routes = [\r\n {path:''}\r\n]\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomePersonalComponent,\r\n BaseComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n ToppyModule,\r\n NgbModule,\r\n NgbTooltipModule,\r\n Ng2SearchPipeModule,\r\n SendReceiveModule,\r\n WaybillModule,\r\n CcsModule,\r\n ImportServicesModule,\r\n AccountModule,\r\n //TODO restore this when releasing Bera\r\n ShoppingServicesModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n // useFactory: httpLoaderFactory,\r\n useClass: CustomTranslateLoader,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n MatAutocompleteModule, MatButtonModule, MatCheckboxModule, MatFormFieldModule,\r\n MatIconModule, MatDatepickerModule, MatSidenavModule, MatCardModule,\r\n MatGridListModule, MatButtonToggleModule, MatInputModule, MatTableModule,\r\n MatPaginatorModule, MatSortModule, MatSelectModule, MatTreeModule, MatDialogModule,\r\n MatDividerModule, MatListModule, MatMenuModule, MatExpansionModule, MatSlideToggleModule,\r\n MatChipsModule, MatTooltipModule, MatRadioModule, MatMomentDateModule,\r\n ReactiveFormsModule, MatProgressSpinnerModule, MatBadgeModule, MatToolbarModule, MatSnackBarModule, SharedModule\r\n ],\r\n providers: [\r\n { provide: APP_INITIALIZER, useFactory: appInitializer, multi: true, deps: [AuthenticationService, CookieService] },\r\n { provide: LOCALE_ID, useValue: \"fo-DK\" },\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-GB'},\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: UrlSerializer, useClass: CustomUrlSerializer },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\r\n // fakeBackendProvider\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { \r\n}","import { AfterViewInit, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { AuthenticationService } from './account/services/authentication.service';\r\nimport { User } from './account/entities/user';\r\nimport { StaticContentService } from './shared/services/static-content.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { RoleService } from './account/services/role.service';\r\nimport { CookieService } from './shared/services/cookie.service';\r\n\r\n@Component({\r\n selector: 'app-base',\r\n templateUrl: './base.component.html',\r\n styleUrls: ['./base.component.scss']\r\n})\r\nexport class BaseComponent implements OnInit, OnDestroy {\r\n\r\n title = 'PostaWeb';\r\n\r\n user: User;\r\n\r\n showHeaderFooter: boolean = false;\r\n\r\n currentLang: any;\r\n\r\n interval: any;\r\n\r\n @Input()\r\n loading: boolean\r\n\r\n // setContent: boolean = false;\r\n\r\n role: string;\r\n\r\n constructor(private translate: TranslateService,\r\n private _router: Router,\r\n private accountService: AuthenticationService,\r\n private roleService: RoleService,\r\n private staticContentService: StaticContentService,\r\n private ref: ChangeDetectorRef,\r\n private cookieService: CookieService) {\r\n\r\n // this.translate.addLangs(['en', 'fo']);\r\n\r\n // const browserLang = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fo/) ? browserLang : 'en');\r\n\r\n this._router.events.pipe(\r\n filter(e => e instanceof NavigationEnd)).subscribe((val) => {\r\n //Don't set role if logged in and has role set\r\n if (this.accountService.isLoggedIn() && !!localStorage.getItem('role')) {\r\n return;\r\n }\r\n\r\n var splitPaths = this._router.url.split('/');\r\n if (!!splitPaths && splitPaths.length > 1) {\r\n //default to private if the path isn't known\r\n if (splitPaths[2] == \"private\" || splitPaths[2] == \"business\") {\r\n this.roleService.setRole(splitPaths[2]);\r\n }\r\n else {\r\n this.roleService.setRole(\"private\")\r\n }\r\n }\r\n else {\r\n this.roleService.setRole(\"private\");\r\n }\r\n\r\n // this.isLoggedIn = !!currentUser && !!this.cookieService.getCookie('token')\r\n });\r\n\r\n if (localStorage.getItem('language')) {\r\n this.translate.setDefaultLang(localStorage.getItem('language'));\r\n this.translate.use(localStorage.getItem('language'));\r\n } else {\r\n this.translate.setDefaultLang('fo');\r\n this.translate.use('fo');\r\n localStorage.setItem(\"language\", \"fo\");\r\n }\r\n\r\n this.accountService.user.subscribe(x => this.user = x);\r\n\r\n // on route change to '/login', set the variable showHead to false\r\n // _router.events.forEach((event) => {\r\n // if (event instanceof NavigationStart) {\r\n // if (event['url'].indexOf('/login') >= 0) {\r\n // this.showHeaderFooter = false;\r\n // } else {\r\n // this.showHeaderFooter = true;\r\n // }\r\n // }\r\n // });\r\n\r\n this.currentLang = this.translate.currentLang;\r\n }\r\n\r\n public ngOnInit() {\r\n\r\n this._router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n };\r\n\r\n this._router.events.subscribe((evt) => {\r\n if (evt instanceof NavigationEnd) {\r\n\r\n //if role doesn't match then redirect to correct role\r\n var urlSplit = this._router.url.split('/');\r\n var loggedInUserType = localStorage.getItem(\"loginUserType\");\r\n var loggedIn = !!this.cookieService.getCookie('token');\r\n\r\n if (loggedIn && !!urlSplit && urlSplit.length > 2 && loggedInUserType != urlSplit[2]) {\r\n //reconstruct the url with the current logged in role\r\n\r\n var url = `${urlSplit[1]}/${loggedInUserType}/`;\r\n for (let i = 3; i < urlSplit.length; i++) {\r\n url = url.concat(`${urlSplit[i]}/`);\r\n }\r\n this._router.navigate([`${url}`]);\r\n }\r\n\r\n if (!this.staticContentService.staticContent) {\r\n this.setStaticContent();\r\n }\r\n else {\r\n this.staticContentService.getHash().subscribe(x => {\r\n if (this.staticContentService.staticContentHash != x) {\r\n this.setStaticContent();\r\n }\r\n });\r\n }\r\n this._router.navigated = false;\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n\r\n //this.setStaticContent();\r\n\r\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n var path = location.pathname;\r\n const newLang = this.translate.currentLang;\r\n\r\n //Replace below with regExp in the future (i'm doing a demo the next day and I forgot how to regex!)\r\n if (path.length > 4 && this.currentLang != event.lang) {\r\n const pathSubString = path.substring(0, 4);\r\n\r\n if (pathSubString == \"/en/\" || pathSubString == \"/fo/\" || pathSubString == \"/gl/\" || pathSubString == \"/da/\") {\r\n path = path.replace(/^.{4}/g, `/${newLang}/`)\r\n\r\n window.history.pushState(\"\", \"\", path);\r\n this.currentLang = event.lang;\r\n }\r\n }\r\n else if (path.length > 4 && this.currentLang == event.lang) {\r\n var pathSubString = path.substring(0, 4);\r\n pathSubString = pathSubString.substring(1, pathSubString.length - 1);\r\n\r\n if (pathSubString == \"en\" || pathSubString == \"fo\" || pathSubString == \"gl\" || pathSubString == \"da\") {\r\n this.translate.use(pathSubString);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n clearInterval(this.interval);\r\n }\r\n\r\n public setStaticContent() {\r\n\r\n // this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n\r\n if (!!staticContent) // && !this.setContent\r\n {\r\n var axdFiles = staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n this.ref.detectChanges();\r\n });\r\n\r\n var jsAxdFiles = staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n this.ref.detectChanges();\r\n });\r\n // clearInterval(this.interval);\r\n // this.interval = undefined;\r\n //this.setContent = true;\r\n // }\r\n // }, 500);\r\n }\r\n }\r\n\r\n logout() {\r\n this.accountService.logout();\r\n }\r\n\r\n}\r\n\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from '../shared/guards/auth.guard';\r\nimport { CCSDetailComponent } from './ccsdetail/ccsdetail.component';\r\nimport { CCSOrderResolver } from './services/ccs-order.resolver';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role/ccs/:ccsId', component: CCSDetailComponent, resolve: { ccsSubmission: CCSOrderResolver }, canActivate: [AuthGuard] },];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CcsRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CcsRoutingModule } from './ccs-routing.module';\r\nimport { CCSDetailComponent } from './ccsdetail/ccsdetail.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { CCSConfirmationComponent } from './ccsconfirmation/ccsconfirmation.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [CCSDetailComponent, CCSConfirmationComponent],\r\n imports: [\r\n CommonModule,\r\n CcsRoutingModule,\r\n TranslateModule,\r\n MatFormFieldModule,\r\n SharedModule,\r\n MatInputModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class CcsModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaymentService } from '../../send-receive/services/payment.service';\r\nimport { ServiceType } from '../../shared/price-matrix/enums/ServiceType';\r\nimport { CCSSubmission } from '../entities/CCSSubmission';\r\n\r\n@Component({\r\n selector: 'app-ccsconfirmation',\r\n templateUrl: './ccsconfirmation.component.html',\r\n styleUrls: ['./ccsconfirmation.component.scss']\r\n})\r\nexport class CCSConfirmationComponent implements OnInit {\r\n\r\n @Input()\r\n transactionRef: string;\r\n\r\n @Input()\r\n ccsSubmission: CCSSubmission;\r\n\r\n downloadingInvoice: boolean = false;\r\n\r\n downloadingReceipt: boolean = false;\r\n\r\n constructor(private paymentService: PaymentService, private translateService: TranslateService) { }\r\n\r\n invoiceError: string;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public downloadInvoice()\r\n {\r\n this.invoiceError = undefined;\r\n this.downloadingInvoice = true;\r\n this.paymentService.downloadInvoice(ServiceType.Customs, this.ccsSubmission.wisePONumber, \" \").subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingInvoice = false;\r\n }, (y) => {\r\n this.downloadingInvoice = false;\r\n this.invoiceError = y.error;\r\n })\r\n }\r\n\r\n public downloadReceipt() {\r\n this.downloadingReceipt = true;\r\n //JT 2023 - CCS id is passed here to resolve an issue, despite passing PO number elsewhere\r\n this.paymentService.downloadReceipt(ServiceType.Customs, this.ccsSubmission.ccsId, \" \", this.translateService.currentLang).subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n}\r\n","
\r\n

{{'ccs_payment_confirmation.step_three_confirmation_page.thank_you_for_payment' | translate}}

\r\n

{{'pay_customs.step_three_confirmation_page.po_number' | translate}}: {{ccsSubmission.wisePONumber}}

\r\n
\r\n \r\n \r\n
\r\n \r\n
","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { interval, Subject } from 'rxjs';\r\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { environment } from '../../../environments/environment';\r\nimport { User } from '../../account/entities/user';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { UserService } from '../../account/services/user.service';\r\nimport { PaymentService } from '../../send-receive/services/payment.service';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { ServiceType } from '../../shared/price-matrix/enums/ServiceType';\r\nimport { CCSDocument } from '../entities/CCSDocument';\r\nimport { CCSInvoice } from '../entities/CCSInvoice';\r\nimport { CCSSubmission } from '../entities/CCSSubmission';\r\nimport { CCSService } from '../services/ccs.service';\r\n\r\n@Component({\r\n selector: 'app-ccsdetail',\r\n templateUrl: './ccsdetail.component.html',\r\n styleUrls: ['./ccsdetail.component.scss']\r\n})\r\nexport class CCSDetailComponent implements OnInit {\r\n\r\n @ViewChild(\"fileUpload\", {})\r\n fileUpload: ElementRef;\r\n\r\n public userDetails: User\r\n\r\n public ccsSubmission: CCSSubmission;\r\n public ccsInvoice: CCSInvoice;\r\n\r\n downloadingPrintLabel: boolean = false;\r\n downloadingCDS: boolean = false;\r\n countryName: string;\r\n\r\n iframeURL: any;\r\n intervalSet: boolean = false;\r\n private stopPolling = new Subject();\r\n public paymentSuccess: boolean = false;\r\n showPaymentScreen: boolean = false;\r\n showPaymentFailed: boolean = false;\r\n\r\n invoiceError: string;\r\n downloadingInvoice: boolean = false;\r\n downloadingReceipt: boolean = false;\r\n paymentCancelledOrFailed: boolean = false;\r\n\r\n constructor(private userAccountService: UserService,\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute,\r\n private paymentService: PaymentService,\r\n private router: Router,\r\n private roleService: RoleService,\r\n private translationHelper: TranslationHelper,\r\n private _sanitizer: DomSanitizer,\r\n private ccsService: CCSService) { }\r\n\r\n ngOnInit(): void {\r\n this.ccsSubmission = this.route.snapshot.data.ccsSubmission;\r\n this.ccsService.getCCSInvoice(this.ccsSubmission.ccsId, this.ccsSubmission.wisePONumber).subscribe(x => {\r\n this.ccsSubmission.customsAmount = x.totalAmount;\r\n this.ccsInvoice = x;\r\n //this.ccsSubmission.invoiceLines = x.invoiceLines;\r\n })\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.userDetails = x;\r\n this.getCountryName();\r\n });\r\n }\r\n\r\n public getCountryName() {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countryName = `${this.userDetails.country.countryNameEN}`;\r\n break;\r\n case \"fo\":\r\n this.countryName = `${this.userDetails.country.countryNameFO}`;\r\n break;\r\n }\r\n }\r\n\r\n public downloadDocument(file: CCSDocument){\r\n file.isDownloading = true;\r\n this.ccsService.downloadDocument(file.documentId).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = file.filename;\r\n link.click();\r\n file.isDownloading = false;\r\n }, (error) => {\r\n file.isDownloading = false;\r\n })\r\n }\r\n\r\n public uploadClick() {\r\n const fileUpload = this.fileUpload.nativeElement;\r\n fileUpload.onchange = () => {\r\n for (let index = 0; index < fileUpload.files.length; index++) {\r\n const file = fileUpload.files[index];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n //Upload file\r\n this.ccsService.uploadDocument(this.ccsSubmission.ccsId, file.name, (reader.result as string).split(',')[1]).subscribe(x => {\r\n this.ccsSubmission.documentList.push(x);\r\n }, (error) => {\r\n\r\n })\r\n };\r\n }\r\n };\r\n fileUpload.click();\r\n }\r\n\r\n public pay(){\r\n this.ccsService.getCCSInvoice(this.ccsSubmission.ccsId, this.ccsSubmission.wisePONumber).subscribe(x => {\r\n if(x.totalAmount > 0){\r\n this.showPaymentScreen = true;\r\n var endpoint = `${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=${ServiceType.Customs}&orderId=${this.ccsSubmission.ccsId}&amount=${x.totalAmount}`;\r\n this.paymentService.dibsPay(endpoint).subscribe( y => {\r\n this.iframeURL = this._sanitizer.bypassSecurityTrustResourceUrl(y)\r\n this.onFrameLoad();\r\n })\r\n }\r\n })\r\n \r\n }\r\n\r\n public onFrameLoad() {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n //JT 2023 - CCS id is passed here to resolve an issue, despite passing PO number elsewhere\r\n switchMap(() => this.paymentService.getReceipt(ServiceType.Customs, this.ccsSubmission.ccsId)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (!!x)\r\n {\r\n if (!!x && !!x.paymentRequestHeader && (x.paymentRequestHeader.isPaid || x.paymentRequestHeader.isPaidButUpdateFailed)) {\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentSuccess = true;\r\n return;\r\n }\r\n if (x.paymentRequestHeader.attemptedPaymentYN)\r\n {\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentSuccess = true;\r\n this.paymentCancelledOrFailed = true;\r\n return;\r\n }\r\n }\r\n }), (err) => { \r\n this.showPaymentScreen = false;\r\n document.getElementById(\"paymentFrame\").remove();\r\n console.log(\"Error getting order after payment: \" + err) \r\n };\r\n }\r\n }\r\n\r\n public downloadInvoice()\r\n {\r\n this.invoiceError = undefined;\r\n this.downloadingInvoice = true;\r\n this.paymentService.downloadInvoice(ServiceType.Customs, this.ccsSubmission.wisePONumber, \" \").subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingInvoice = false;\r\n }, (y) => {\r\n this.downloadingInvoice = false;\r\n this.invoiceError = y.error;\r\n })\r\n }\r\n\r\n public downloadReceipt() {\r\n this.downloadingReceipt = true;\r\n //JT 2023 - CCS id is passed here to resolve an issue, despite passing PO number elsewhere\r\n this.paymentService.downloadReceipt(ServiceType.Customs, this.ccsSubmission.ccsId, \" \", this.translateService.currentLang).subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n}\r\n","
\r\n

{{'view_ccs_submission.ccs_submission' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.ccs_submission' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.payment_failed' | translate}}: {{ccsSubmission.wisePONumber}}

\r\n
\r\n {{'view_ccs_submission.payment_failed_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.date' | translate}}

\r\n
\r\n

{{ccsSubmission.createDateTime | date:'dd/MM/yyyy, h:mm a'}}

\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.amount' | translate}}

\r\n
\r\n

{{ccsSubmission.customsAmount | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.colli' | translate}}

\r\n
\r\n

{{ccsSubmission.numberOfColli}}

\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.wise_po_number' | translate}}

\r\n
\r\n

{{ccsSubmission.wisePONumber}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.sender_details' | translate}}

\r\n
\r\n

{{ccsSubmission.senderName}}

\r\n
\r\n
\r\n

{{ccsSubmission.senderCountry}}

\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.receiver_details' | translate}}

\r\n
\r\n

{{ccsSubmission.receiverName}}

\r\n
\r\n
\r\n

{{ccsSubmission.receiverAddress}}

\r\n
\r\n
\r\n

{{ccsSubmission.receiverPostcode}}

\r\n
\r\n
\r\n

{{ccsSubmission.receiverVTAL}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.invoice_lines' | translate}}

\r\n
\r\n
\r\n
\r\n

{{invoiceLine.description}}

\r\n
\r\n
\r\n {{'view_ccs_submission.sku_no' | translate}}\r\n

{{invoiceLine.skuNo}}

\r\n
\r\n
\r\n {{'view_ccs_submission.quantity' | translate}}\r\n

{{invoiceLine.quantity | numberLocalization}} {{'view_ccs_submission.items' | translate}}

\r\n
\r\n
\r\n {{'view_ccs_submission.gross_amount' | translate}}\r\n

{{invoiceLine.grossAmount | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.tariffs' | translate}}

\r\n
\r\n
\r\n
\r\n

{{tariff.tariffNo}}

\r\n
\r\n
\r\n {{'view_ccs_submission.tariff_description' | translate}}\r\n

{{tariff.description}}

\r\n
\r\n
\r\n {{'view_ccs_submission.country_of_origin' | translate}}\r\n

{{tariff.countryOfOrigin}}

\r\n
\r\n
\r\n {{'view_ccs_submission.invoice_value' | translate}}\r\n

{{tariff.invoiceValue | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_ccs_submission.documents' | translate}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{file.filename}}\r\n
\r\n
\r\n {{file.uploadDateTime | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { CCSSubmission } from \"../entities/CCSSubmission\";\r\nimport { CCSService } from \"./ccs.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CCSOrderResolver implements Resolve {\r\n\r\n constructor (private ccsService: CCSService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.ccsService.getCCSSubmission(route.paramMap.get('ccsId'), route.paramMap.get('lang'));\r\n }\r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../environments/environment';\r\nimport { ServiceType } from \"../../shared/price-matrix/enums/ServiceType\";\r\nimport { CCSDocument } from \"../entities/CCSDocument\";\r\nimport { CCSInvoice } from \"../entities/CCSInvoice\";\r\nimport { CCSSubmission } from \"../entities/CCSSubmission\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CCSService{\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n getCCSSubmission(ccsId, languageCode){\r\n return this.httpClient.get(`${environment.apiUrl}/api/Customs/detail/${ccsId}/${languageCode}`) as Observable;\r\n }\r\n\r\n downloadDocument(documentId) {\r\n var body = {\r\n ServiceType: ServiceType.Customs,\r\n DocumentId: documentId\r\n }\r\n return this.httpClient.post(`${environment.apiUrl}/api/Customs/downloadDoc`, body, { responseType: 'text' }) as Observable;\r\n }\r\n\r\n uploadDocument(orderId: number, fileName, documentData) {\r\n var body = {\r\n ServiceType: ServiceType.Customs,\r\n OrderId: orderId.toString(),\r\n FileName: fileName,\r\n DocumentData: documentData\r\n }\r\n return this.httpClient.post(`${environment.apiUrl}/api/Customs/uploadDoc`, body) as Observable;\r\n }\r\n\r\n getCCSInvoice(ccsId, wisePONumber){\r\n var url = `${environment.apiUrl}/api/Customs/invoicedetail/${ccsId}`\r\n if(wisePONumber){\r\n url = `${url}?poNumber=${wisePONumber}`;\r\n }\r\n return this.httpClient.get(url) as Observable;\r\n }\r\n}","import {UrlSerializer, UrlTree, DefaultUrlSerializer} from '@angular/router';\r\n\r\nexport class CustomUrlSerializer implements UrlSerializer {\r\n parse(url: any): UrlTree {\r\n let dus = new DefaultUrlSerializer();\r\n return dus.parse(url);\r\n }\r\n\r\n serialize(tree: UrlTree): any {\r\n let dus = new DefaultUrlSerializer(),\r\n path = dus.serialize(tree);\r\n path = path.replace(/%3F/g,'?');\r\n path = path.replace(/%3D/g,'=');\r\n // use your regex to replace as per your requirement.\r\n return path;\r\n }\r\n}","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { StaticContent } from '../../shared/static-content/entities/staticContent';\r\n// import { LanguageService } from '../../shared/services/language.service';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { Page } from '../../shared/static-content/entities/page';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'app-home-personal',\r\n templateUrl: './home-personal.component.html',\r\n styleUrls: ['./home-personal.component.scss']\r\n})\r\nexport class HomePersonalComponent implements OnInit, AfterViewInit {\r\n\r\n public staticContent: StaticContent\r\n\r\n public modules: any;\r\n\r\n public mainImage: string;\r\n\r\n public imageUrlFormatted: boolean = false;\r\n\r\n public trackTraceInput: string;\r\n\r\n public pageHtml: string;\r\n\r\n public showHtmlModules: boolean;\r\n\r\n interval: any;\r\n\r\n public mainImageModule: any;\r\n\r\n public item1Icon: any;\r\n private item1DefaultIcon: any;\r\n private item1HoverIcon: any;\r\n\r\n public item2Icon: any;\r\n private item2DefaultIcon: any;\r\n private item2HoverIcon: any;\r\n\r\n public item3Icon: any;\r\n private item3DefaultIcon: any;\r\n private item3HoverIcon: any;\r\n\r\n onMouseOver(index: number): void {\r\n switch (index) {\r\n case 1:\r\n if(this.item1HoverIcon){\r\n this.item1Icon = this.item1HoverIcon;\r\n }\r\n break;\r\n case 1:\r\n if(this.item2HoverIcon){\r\n this.item2Icon = this.item2HoverIcon;\r\n }\r\n break;\r\n case 3:\r\n if(this.item3HoverIcon){\r\n this.item3Icon = this.item3HoverIcon;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onMouseOut(index: number): void {\r\n switch (index) {\r\n case 1:\r\n if(this.item1DefaultIcon){\r\n this.item1Icon = this.item1DefaultIcon;\r\n }\r\n break;\r\n case 1:\r\n if(this.item2DefaultIcon){\r\n this.item2Icon = this.item2DefaultIcon;\r\n }\r\n break;\r\n case 3:\r\n if(this.item3DefaultIcon){\r\n this.item3Icon = this.item3DefaultIcon;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public role: string;\r\n\r\n public cdnPath: string;\r\n observer: any;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private roleService: RoleService,\r\n private staticContentService: StaticContentService,\r\n private elRef: ElementRef,\r\n private titleService: Title) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.cdnPath = this.staticContentService.cdn();\r\n\r\n this.interval = setInterval(() => {\r\n this.staticContent = this.staticContentService.staticContent;\r\n if (!!this.staticContent) {\r\n var axdFiles = this.staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n this.setPageContentForLanguage();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\r\n this.setPageContentForLanguage();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public onTrackTraceEnter(){\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/send-receive/track-trace`, this.trackTraceInput]);\r\n }\r\n\r\n private setPageContentForLanguage() {\r\n var languageSection;\r\n var privateSection;\r\n var homeCategory;\r\n var homepage;\r\n\r\n var routeSplit = this.router.url.split(\"/\");\r\n if (!!routeSplit && routeSplit.length > 2)\r\n {\r\n this.role = routeSplit[2];\r\n }\r\n\r\n if (!!this.staticContent && !!this.role) {\r\n if (this.translateService.currentLang == \"en\") {\r\n languageSection = this.staticContent.Sections.find(x => x.Url = \"/en/\");\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/en/${this.role}/`);\r\n if (!!privateSection) {\r\n homeCategory = privateSection.Categories.find(x => x.Url == `/en/${this.role}/home/`);\r\n }\r\n if (!!homeCategory && !!homeCategory.Pages) {\r\n homepage = homeCategory.Pages.find(x => x.Url = `/en/${this.role}/home/home/`);\r\n }\r\n }\r\n }\r\n if (this.translateService.currentLang == \"fo\") {\r\n languageSection = this.staticContent.Sections.find(x => x.Url == \"/fo/\");\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/fo/${this.role}/`);\r\n if (!!privateSection) {\r\n homeCategory = privateSection.Categories.find(x => x.Url == `/fo/${this.role}/home/`);\r\n }\r\n if (!!homeCategory && !!homeCategory.Pages) {\r\n homepage = homeCategory.Pages.find(x => x.Url = `/fo/${this.role}/home/home/`);\r\n }\r\n }\r\n }\r\n\r\n if (!!homepage && !!homepage.Modules) {\r\n var seo = homepage.SEO;\r\n if(seo){\r\n var tabTitle = seo.MetaTitle;\r\n this.titleService.setTitle(tabTitle);\r\n }\r\n else{\r\n this.titleService.setTitle(\"Posta\");\r\n }\r\n\r\n this.modules = homepage.Modules;\r\n\r\n for (var i = 0; i < this.modules.length; i++) {\r\n if (!!this.modules[i].Content) {\r\n this.modules[i].Content.Image = this.formatImageUrl(this.modules[i].Content)\r\n }\r\n }\r\n\r\n this.mainImageModule = this.modules.find(x => x.ModuleType == \"psModule\");\r\n\r\n if (!!this.mainImageModule) {\r\n this.mainImage = this.mainImageModule.Content.Image;\r\n this.item1Icon = `${this.cdnPath}${this.mainImageModule.Content.Item1Icon}`;\r\n this.item1DefaultIcon = `${this.cdnPath}${this.mainImageModule.Content.Item1Icon}`;\r\n if(this.mainImageModule.Content.Item1HoverIcon)\r\n this.item1HoverIcon = `${this.cdnPath}${this.mainImageModule.Content.Item1HoverIcon}`;\r\n\r\n this.item2Icon = `${this.cdnPath}${this.mainImageModule.Content.Item2Icon}`;\r\n this.item2DefaultIcon = `${this.cdnPath}${this.mainImageModule.Content.Item2Icon}`;\r\n if(this.mainImageModule.Content.Item2HoverIcon)\r\n this.item2HoverIcon = `${this.cdnPath}${this.mainImageModule.Content.Item2HoverIcon}`;\r\n \r\n this.item3Icon = `${this.cdnPath}${this.mainImageModule.Content.Item3Icon}`;\r\n this.item3DefaultIcon = `${this.cdnPath}${this.mainImageModule.Content.Item3Icon}`;\r\n if(this.mainImageModule.Content.Item3HoverIcon)\r\n this.item3HoverIcon = `${this.cdnPath}${this.mainImageModule.Content.Item3HoverIcon}`;\r\n }\r\n\r\n this.setHtmlModulePages(homepage);\r\n }\r\n }\r\n\r\n // var columnModules = this.modules.filter(x => x.ModuleTypeId == 107);\r\n // if (!!columnModules) {\r\n // columnModules.forEach(x => x.Content.Image = this.formatImageUrl(x.Content.Image));\r\n // }\r\n\r\n return languageSection;\r\n }\r\n\r\n formatImageUrl(content: any) {\r\n if (!!content.Image && content.Image.includes(`${this.cdnPath}`)) {\r\n return content.Image;\r\n }\r\n else if (!!content.Image) {\r\n return `${this.cdnPath}/${content.Image}`;\r\n }\r\n return undefined;\r\n }\r\n\r\n public setHtmlModulePages(homepage: Page) {\r\n // if (!!homepage.Css) {\r\n // var cssFiles = homepage.Css.split(\";\");\r\n // cssFiles.forEach(x => this.staticContentHelper.loadjscssfile(x, \"css\"));\r\n // }\r\n\r\n //console.log(htmlPageString);\r\n\r\n // if (!!homepage.Js) {\r\n // homepage.Js = homepage.Js.replace('\\r\\n', '');\r\n // var jsFiles = homepage.Js.split(\";\");\r\n // jsFiles.forEach(x => this.staticContentHelper.loadjscssfile(x, \"js\"));\r\n // }\r\n\r\n var htmlPageString: string = \"\";\r\n\r\n var htmlModules = homepage.Modules.filter(x => x.ModuleType == \"moduleHtml\");\r\n htmlModules.forEach(x => htmlPageString = htmlPageString.concat(x.Html));\r\n htmlPageString = this.decodeHtml(htmlPageString);\r\n\r\n // var firstReg = /img src=\\\"/g;\r\n // htmlPageString = htmlPageString.replace(firstReg, `img src=\\\"${this.cdnPath}/\"`);\r\n // htmlPageString = htmlPageString.replace(\"img src='/\", `img src='${this.cdnPath}/`);\r\n\r\n // var secondReg = /img src=\\\\\\\"\"/g;\r\n // htmlPageString = htmlPageString.replace(secondReg, `img src=\\\\\\\"${this.cdnPath}/`);\r\n\r\n // var thirdReg = /background-image:url\\('\\//g;\r\n // htmlPageString = htmlPageString.replace(thirdReg, `background-image:url('${this.cdnPath}/`);\r\n // // htmlPageString = this.decodeHtml(htmlPageString);\r\n // this.pageHtml = htmlPageString;\r\n\r\n var firstReg = /img src=\\\"/g;\r\n htmlPageString = htmlPageString.replace(firstReg, `img src=\\\"${this.cdnPath}/`);\r\n\r\n var secondReg = /img src='\\//g;\r\n htmlPageString = htmlPageString.replace(secondReg, `img src='${this.cdnPath}/`);\r\n\r\n var thirdReg = /img src=\\\\\\\"\"/g;\r\n htmlPageString = htmlPageString.replace(thirdReg, `img src=\\\\\\\"${this.cdnPath}/`);\r\n\r\n var fourthReg = /background-image:url\\('\\//g;\r\n htmlPageString = htmlPageString.replace(fourthReg, `background-image:url('${this.cdnPath}/`);\r\n\r\n var pdfReg = /a href='\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg, `a href='${this.cdnPath}/media/`);\r\n\r\n var pdfReg2 = /a href=\"\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg2, `a href=\\\"${this.cdnPath}/media/`);\r\n // htmlPageString = this.decodeHtml(htmlPageString);\r\n this.pageHtml = htmlPageString;\r\n\r\n this.showHtmlModules = true;\r\n }\r\n\r\n public decodeHtml(html: string) {\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'homepage.personal.track_trace' | translate}}

\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'homepage.personal.track_trace' | translate}}

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'homepage.personal.find' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n

{{module.Content.Title}}\r\n
\r\n {{module.Content.Link.Title}}\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{module.Content.Title}}

\r\n

{{module.Content.Text}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
2\" class=\"container\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{module.Content.Modules[0].Content.Title}}

\r\n
\r\n {{module.Content.Modules[0].Content.Text}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{module.Content.Modules[1].Content.Title}}

\r\n
\r\n {{module.Content.Modules[1].Content.Text}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{module.Content.Modules[2].Content.Link.Title}}

\r\n
\r\n {{module.Content.Modules[2].Content.Text}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationString } from '../../shared/price-matrix/entities/TranslationString';\r\nimport { Category } from '../entities/category';\r\nimport { CustomsEstimate } from '../entities/CustomsEstimate';\r\nimport { CustomsInput } from '../entities/CustomsInput';\r\nimport { Subcategory } from '../entities/subCategory';\r\nimport { CustomsService } from '../services/customs.service';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper'\r\nimport { ScrollViewHelper } from '../../shared/helpers/scroll-view-helper'\r\nimport { CustomCalculatorExample } from '../entities/CustomCalculatorExample';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { StaticContentHelper } from '../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-customs-calculator',\r\n templateUrl: './customs-calculator.component.html',\r\n styleUrls: ['./customs-calculator.component.scss']\r\n})\r\nexport class CustomsCalculatorComponent implements OnInit, AfterViewInit {\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n customsCalculatorForm: FormGroup;\r\n\r\n originValue: any;\r\n\r\n typeOfGoods: Array = [];\r\n\r\n examples: Array = [];\r\n\r\n typeOfGoodSelected: boolean = false;\r\n\r\n selectedTypeOfGood: Category;\r\n\r\n showCalculateEstimateButtons: boolean = false;\r\n\r\n selectedSubcategory: Subcategory;\r\n\r\n showEstimate: boolean = false;\r\n\r\n enterWeight: boolean = false;\r\n\r\n unitOfMeasurement: string;\r\n\r\n otherSelected: boolean = false;\r\n\r\n categoryFromTaksCode: string;\r\n\r\n customsEstimate: CustomsEstimate;\r\n\r\n showHsCodeLookupError: boolean = false;\r\n\r\n validHsCode: string;\r\n\r\n showOriginError: boolean = false;\r\n\r\n interval: any;\r\n observer: MutationObserver;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private customsService: CustomsService,\r\n private translationHelper: TranslationHelper,\r\n private scrollViewHelper: ScrollViewHelper,\r\n private errorHelper: ErrorHelper,\r\n private staticContentService: StaticContentService,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.customsCalculatorForm = this._formBuilder.group({\r\n goodsValue: ['', [Validators.required, ErrorHelper.numberOnlyValidator]],\r\n restOfTheWorld: ['', Validators.required],\r\n eu: ['', Validators.required],\r\n weight: ['', [Validators.required, ErrorHelper.numberOnlyValidator]],\r\n taksCode: ['', Validators.required]\r\n });\r\n \r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translationHelper.convertNumberField(this.customsCalculatorForm.get(`goodsValue`));\r\n this.translationHelper.convertNumberField(this.customsCalculatorForm.get(`weight`));\r\n });\r\n \r\n this.customsCalculatorForm.get(`goodsValue`).valueChanges.subscribe(newValue => {\r\n this.translationHelper.formatNumberField(this.customsCalculatorForm.get('goodsValue'));\r\n });\r\n this.customsCalculatorForm.get(`weight`).valueChanges.subscribe(newValue => {\r\n this.translationHelper.formatNumberField(this.customsCalculatorForm.get('weight'));\r\n });\r\n\r\n this.customsCalculatorForm.get('goodsValue').valueChanges.subscribe\r\n\r\n this.typeOfGoods = this.route.snapshot.data.customCalculator.Categories;\r\n this.typeOfGoods.forEach(x => x.IconPath = `${this.staticContentService.cdn()}/${x.IconPath}`)\r\n this.examples = this.route.snapshot.data.customCalculator.Examples;\r\n this.examples.forEach(x => x.ImagePath = `${this.staticContentService.cdn()}/${x.ImagePath}`)\r\n\r\n\r\n this.examples.forEach(example => {\r\n\r\n var input: CustomsInput = {\r\n tarriffNumber: example.TariffNo.toString(),\r\n value: 0,\r\n isTradeDeal: true,\r\n weight: 0,\r\n }\r\n\r\n this.customsService.calculateEstimate(input).subscribe(x => {\r\n example.VatPercent = x.vatPercent;\r\n })\r\n })\r\n\r\n this.customsCalculatorForm.get('weight').disable();\r\n this.customsCalculatorForm.get('taksCode').disable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n \r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.customsCalculatorForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.customsCalculatorForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public euSelected(event: any) {\r\n this.customsCalculatorForm.get('restOfTheWorld').setValidators(null);\r\n }\r\n\r\n public restOfTheWorldSelected(event: any) {\r\n this.customsCalculatorForm.get('eu').setValidators(null);\r\n }\r\n\r\n public showSubCategoriesForSelectedGood(category: Category) {\r\n\r\n if (category.Name.EN !== \"Other\") {\r\n this.typeOfGoodSelected = true;\r\n }\r\n else {\r\n this.enableOtherCategoryFields();\r\n }\r\n\r\n this.selectedTypeOfGood = category;\r\n }\r\n\r\n public resetTypeOfGoods() {\r\n this.typeOfGoodSelected = false;\r\n this.showCalculateEstimateButtons = false;\r\n this.selectedTypeOfGood = null;\r\n this.selectedSubcategory = null;\r\n this.showEstimate = false;\r\n this.enterWeight = false;\r\n this.otherSelected = false;\r\n this.categoryFromTaksCode = null;\r\n this.customsCalculatorForm.get('weight').disable();\r\n this.customsCalculatorForm.get('taksCode').disable();\r\n }\r\n\r\n public showEstimatesSection(subcategory: Subcategory) {\r\n this.showCalculateEstimateButtons = true;\r\n this.selectedSubcategory = subcategory;\r\n\r\n if (subcategory.WeightRequired) {\r\n this.enterWeight = true;\r\n this.customsCalculatorForm.get('weight').enable();\r\n }\r\n else {\r\n this.enterWeight = false;\r\n this.customsCalculatorForm.get('weight').reset();\r\n this.customsCalculatorForm.get('weight').disable();\r\n }\r\n\r\n this.showEstimate = false;\r\n }\r\n\r\n public calculateEstimate() {\r\n this.customsCalculatorForm.markAllAsTouched();\r\n\r\n if (this.customsCalculatorForm.invalid) {\r\n if (this.customsCalculatorForm.get(\"eu\").invalid || this.customsCalculatorForm.get(\"restOfTheWorld\").invalid) {\r\n this.showOriginError = true;\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.showOriginError = false;\r\n\r\n var isTradeDeal: boolean = true;\r\n if (!!this.customsCalculatorForm.get(\"eu\").value) {\r\n isTradeDeal = false;\r\n }\r\n\r\n var tariffNum: string;\r\n if (this.otherSelected) {\r\n tariffNum = this.validHsCode\r\n }\r\n else {\r\n tariffNum = this.selectedSubcategory.TariffNo.toString();\r\n }\r\n\r\n if (this.customsCalculatorForm.valid && (!!this.selectedSubcategory || !!this.categoryFromTaksCode)) {\r\n //TODO call service to get estimate\r\n\r\n var input: CustomsInput = {\r\n tarriffNumber: tariffNum,\r\n value: this.translationHelper.getNumber(this.customsCalculatorForm.get(\"goodsValue\").value),\r\n isTradeDeal: isTradeDeal,\r\n weight: this.translationHelper.getNumber(this.customsCalculatorForm.get(\"weight\").value),\r\n }\r\n\r\n this.customsService.calculateEstimate(input).subscribe(estimate => {\r\n this.customsEstimate = estimate;\r\n this.showEstimate = true;\r\n })\r\n }\r\n }\r\n\r\n public clearAll() {\r\n this.resetTypeOfGoods();\r\n this.customsCalculatorForm.reset();\r\n }\r\n\r\n public getCategoryFromTaksCode() {\r\n if (!!this.customsCalculatorForm.get('taksCode').value) {\r\n //TODO call service to get category from code\r\n this.customsService.getCategoryByHsNumber(this.customsCalculatorForm.get('taksCode').value)\r\n .subscribe(x => {\r\n this.categoryFromTaksCode = `${x.foCaption}, ${x.daExtendedCaption}`\r\n this.showCalculateEstimateButtons = true;\r\n this.showHsCodeLookupError = false;\r\n this.validHsCode = this.customsCalculatorForm.get('taksCode').value;\r\n },\r\n (err) => {\r\n this.showHsCodeLookupError = true;\r\n this.categoryFromTaksCode = \"Invalid Taks code\"\r\n this.customsCalculatorForm.get('taksCode').setErrors({'invalidCode': true});\r\n })\r\n }\r\n }\r\n\r\n public openTaksSite() {\r\n window.open(\"https://voruskra.taks.fo/en/Sections\");\r\n }\r\n\r\n public getCurrentTranslation(translationString: TranslationString) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${translationString.EN}`;\r\n case \"fo\":\r\n return `${translationString.FO}`;\r\n }\r\n }\r\n\r\n public languageIsFO(): boolean {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return false;\r\n case \"fo\":\r\n return true;\r\n }\r\n }\r\n\r\n public getUnitOfMeasurement() {\r\n if (!!this.selectedSubcategory) {\r\n return this.translationHelper.getTranslation(this.selectedSubcategory.UnitOfMeasurement);\r\n }\r\n }\r\n\r\n public getStringForLanguage(translationString: TranslationString) {\r\n return this.translationHelper.getTranslation(translationString);\r\n }\r\n\r\n public getNestedStringForLanguage(example: CustomCalculatorExample) {\r\n return this.translationHelper.getNestedTranslation(example.Body, example);\r\n }\r\n\r\n public getDuty()\r\n {\r\n return this.customsEstimate.gatt + this.customsEstimate.dutyValue + this.customsEstimate.dutyUnits;\r\n }\r\n\r\n public inputFieldsForExample(example: CustomCalculatorExample) {\r\n\r\n const parentCategory = this.typeOfGoods.find(x => x.Subcategories?.find(y => y.TariffNo == Number(example.TariffNo)));\r\n\r\n if (!!parentCategory) {\r\n\r\n const subcategory = parentCategory.Subcategories.find(x => x.TariffNo == Number(example.TariffNo));\r\n\r\n if (!!subcategory) {\r\n if (this.otherSelected) {\r\n this.clearAll();\r\n }\r\n\r\n this.showSubCategoriesForSelectedGood(parentCategory);\r\n\r\n var checkExist = setInterval(function () {\r\n let temp = document.getElementById(subcategory.TariffNo.toString())\r\n if (!!temp) {\r\n temp.click();\r\n document.getElementById(\"restOfTheWorld\").click();\r\n temp.scrollIntoView({ behavior: \"smooth\", inline: \"center\", block: \"center\" });\r\n clearInterval(checkExist);\r\n }\r\n }, 100);\r\n }\r\n else {\r\n this.clearAll();\r\n this.selectOtherCategory();\r\n document.getElementById(\"restOfTheWorld\").click();\r\n this.customsCalculatorForm.get(\"taksCode\").setValue(example.TariffNo);\r\n this.scrollViewHelper.scrollIntoViewAndCenter(\"taksCode\");\r\n }\r\n }\r\n else {\r\n this.clearAll();\r\n this.selectOtherCategory();\r\n document.getElementById(\"restOfTheWorld\").click();\r\n this.customsCalculatorForm.get(\"taksCode\").setValue(example.TariffNo);\r\n this.scrollViewHelper.scrollIntoViewAndCenter(\"taksCode\");\r\n }\r\n\r\n }\r\n\r\n private selectOtherCategory() {\r\n const otherCategory = this.typeOfGoods.find(x => x.Name.EN == \"Other\");\r\n this.showSubCategoriesForSelectedGood(otherCategory);\r\n }\r\n\r\n private enableOtherCategoryFields() {\r\n this.otherSelected = true;\r\n this.enterWeight = true;\r\n this.customsCalculatorForm.get('weight').enable();\r\n this.customsCalculatorForm.get('taksCode').enable();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.value' | translate}}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n DKK\r\n
\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.origin' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.type_of_goods' | translate}}

\r\n \r\n

{{'customs_calculator.select_icon' | translate}}

\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.select_icon' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

{{getCurrentTranslation(selectedTypeOfGood.Name)}}

\r\n
\r\n \r\n
\r\n

{{'customs_calculator.select_category' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{getCurrentTranslation(selectedTypeOfGood.Name)}}

\r\n
\r\n \r\n
\r\n

{{'customs_calculator.other_categories' | translate}}{{'customs_calculator.taks_website' | translate}}\r\n {{'customs_calculator.enter_code' | translate}}

\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.taks_code' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

{{'customs_calculator.category' | translate}}: {{categoryFromTaksCode}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'customs_calculator.quantity' | translate}}

\r\n \r\n \r\n \r\n \r\n

{{getUnitOfMeasurement()}}

\r\n

Kg/L

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.customs_estimate' | translate}}

\r\n
\r\n {{'customs_calculator.estimate_warning' | translate}}{{'customs_calculator.estimate_warning_link' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n

{{'customs_calculator.vat' | translate}}{{ customsEstimate.vatPercent }}% = {{ customsEstimate.vat | currency: 'DKK':''}} DKK

\r\n

{{'customs_calculator.duty' | translate}} = {{ getDuty() | currency: 'DKK':''}} DKK

\r\n

{{'customs_calculator.total' | translate}} = {{ getDuty() + customsEstimate.vat | currency: 'DKK':''}} DKK

\r\n

{{'customs_calculator.duty_percent_freight_cost' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{'customs_calculator.typical_duty_costs' | translate}}

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{getStringForLanguage(example.Name)}}

\r\n
= 0\" [innerHTML]=\"getNestedStringForLanguage(example) | safeHtml\" style=\"white-space: pre-line\">
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { CustomsCalculatorComponent } from './customs-calculator/customs-calculator.component';\r\nimport { CategoryResolver } from './resolvers/category.resolver';\r\nimport { ValidateOrderResolver } from './resolvers/validate-order.resolver';\r\nimport { UploadMissingDocumentationComponent } from './upload-missing-documentation/upload-missing-documentation.component';\r\nimport { PayCustomsComponent } from './pay-customs/pay-customs.component';\r\nimport { PayInvoiceComponent } from './pay-customs/pay-invoice.component';\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role:/import/customs-calculator', component: CustomsCalculatorComponent, resolve: { customCalculator: CategoryResolver }},\r\n { path: ':lang/:role/import/pay-customs', component: PayCustomsComponent },\r\n { path: ':lang/:role/import/pay-invoice', component: PayInvoiceComponent },\r\n // { path: ':lang/:role:/import/upload-missing-documentation', component: UploadMissingDocumentationComponent},\r\n // { path: ':lang/:role:/import/upload-missing-documentation/:orderId/:refCode', component: UploadMissingDocumentationComponent, resolve: { validOrder: ValidateOrderResolver }}\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ImportServicesRoutingModule { \r\n \r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedRoutingModule } from '../shared/shared-routing.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\r\nimport { CustomsCalculatorComponent } from './customs-calculator/customs-calculator.component';\r\nimport { ImportServicesRoutingModule } from './import-services-routing.module';\r\nimport { BasePayCustomsComponent } from './pay-customs/base-pay-customs.component';\r\nimport { PayCustomsComponent } from './pay-customs/pay-customs.component';\r\nimport { PayInvoiceComponent } from './pay-customs/pay-invoice.component';\r\nimport { PayCustomsUserConfirmationComponent } from './pay-customs/user-confirmation/user-confirmation.component';\r\nimport { DetailsAndPaymentComponent } from './pay-customs/details-and-payment/details-and-payment.component';\r\nimport { CustomsConfirmationComponent } from './pay-customs/customs-confirmation/customs-confirmation.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { UploadMissingDocumentationComponent } from './upload-missing-documentation/upload-missing-documentation.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomsCalculatorComponent,\r\n BasePayCustomsComponent,\r\n PayCustomsComponent,\r\n PayInvoiceComponent,\r\n PayCustomsUserConfirmationComponent,\r\n DetailsAndPaymentComponent,\r\n CustomsConfirmationComponent,\r\n UploadMissingDocumentationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedRoutingModule,\r\n SharedModule,\r\n ImportServicesRoutingModule,\r\n TranslateModule,\r\n MatMenuModule,\r\n MatProgressSpinnerModule,\r\n RouterModule,\r\n MatProgressBarModule,\r\n MatCardModule,\r\n MatIconModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatSnackBarModule,\r\n Ng2SearchPipeModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatStepperModule\r\n ],\r\n exports: [\r\n ]\r\n})\r\nexport class ImportServicesModule { }\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ChangeDetectorRef, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaymentService } from '../../send-receive/services/payment.service';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { InvoiceCustom } from '.././entities/InvoiceCustom';\r\n\r\n@Component({\r\n selector: 'app-base-pay-customs',\r\n templateUrl: './base-pay-customs.component.html',\r\n styleUrls: ['./base-pay-customs.component.scss']\r\n})\r\nexport class BasePayCustomsComponent implements OnInit, AfterViewInit {\r\n\r\n @Input()\r\n image: string;\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n\r\n public customsFormGroup: FormGroup;\r\n\r\n public userConfirmationFormGroup: FormGroup;\r\n\r\n public paymentFormGroup: FormGroup;\r\n\r\n @Input()\r\n public numberInputFieldName: string;\r\n\r\n @Input()\r\n public serviceTypeId: number;\r\n\r\n @Input()\r\n public inputFieldNamePlaceholder: string;\r\n\r\n public customsRetrieved: boolean = false;\r\n \r\n public invoiceCustom: InvoiceCustom;\r\n\r\n public showPaymentScreen: boolean = false;\r\n\r\n public transactionRef: string;\r\n\r\n public failedToGetAmount: boolean = false;\r\n\r\n public loading: boolean = false;\r\n\r\n public loadingProceedToPayment: boolean = false;\r\n observer: MutationObserver;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private paymentService: PaymentService,\r\n private errorHelper: ErrorHelper,\r\n private ref: ChangeDetectorRef,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.customsFormGroup = this.formBuilder.group({\r\n invoicePoNumber: ['', Validators.required],\r\n refCode: ['', Validators.required],\r\n });\r\n\r\n this.userConfirmationFormGroup = this.formBuilder.group({\r\n email: ['', Validators.required],\r\n // password: ['', Validators.required],\r\n agreeToUseEmail: [false, Validators.requiredTrue],\r\n // hasPostaAccount: ['', Validators.required],\r\n // noPostaAccount: ['', Validators.required],\r\n })\r\n\r\n this.paymentFormGroup = this.formBuilder.group({\r\n hasPaid: ['', Validators.required],\r\n })\r\n\r\n //this.userConfirmationFormGroup.get(\"password\").disable();\r\n\r\n this.customsFormGroup.get(\"invoicePoNumber\").valueChanges.subscribe(x => {\r\n this.customsRetrieved = false;\r\n });\r\n\r\n this.customsFormGroup.get(\"refCode\").valueChanges.subscribe(x => {\r\n this.customsRetrieved = false;\r\n });\r\n\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.customsFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.customsFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public getCost() {\r\n if (!this.customsFormGroup.valid)\r\n {\r\n this.customsFormGroup.markAllAsTouched();\r\n this.customsRetrieved = false;\r\n return;\r\n }\r\n\r\n this.failedToGetAmount = false;\r\n this.loading = true;\r\n\r\n this.paymentService.validate(this.serviceTypeId, this.customsFormGroup.get(\"invoicePoNumber\").value, this.customsFormGroup.get(\"refCode\").value).subscribe(x => {\r\n this.getPaymentAmount();\r\n },(error) => {\r\n this.failedToGetAmount = true;\r\n this.loading = false;\r\n })\r\n \r\n }\r\n\r\n private getPaymentAmount() {\r\n this.paymentService.GetPaymentInfo(this.serviceTypeId, this.customsFormGroup.get(\"invoicePoNumber\").value, this.customsFormGroup.get(\"refCode\").value).subscribe(x => {\r\n\r\n var invoiceCustom: InvoiceCustom = {\r\n invoiceCustomNumber: this.customsFormGroup.get(\"invoicePoNumber\").value,\r\n referenceCode: this.customsFormGroup.get(\"refCode\").value,\r\n totalAmountIncVAT: x.totalAmountIncVAT,\r\n serviceTypeId: this.serviceTypeId,\r\n customerNumber: x.customerNumber,\r\n customerName: x.customerName,\r\n invoiceDate: x.invoiceDate,\r\n totalAmountExcVAT: x.totalAmountExcVAT,\r\n vatAmount: x.vatAmount,\r\n outstandingAmount: x.outstandingAmount,\r\n isPaidButUpdateFailed: x.isPaidButUpdateFailed\r\n };\r\n\r\n this.invoiceCustom = invoiceCustom;\r\n this.customsRetrieved = true;\r\n this.loading = false;\r\n }, (error) => {\r\n this.failedToGetAmount = true;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public proceedToPayment() {\r\n this.loadingProceedToPayment = true;\r\n\r\n //make service call again to get price before moving on\r\n this.paymentService.GetPaymentInfo(this.invoiceCustom.serviceTypeId, this.invoiceCustom.invoiceCustomNumber, this.invoiceCustom.referenceCode)\r\n .subscribe(x => {\r\n this.invoiceCustom.totalAmountIncVAT = x.totalAmountIncVAT;\r\n this.showPaymentScreen = true;\r\n this.loadingProceedToPayment = false;\r\n })\r\n }\r\n\r\n public openDetailsAndPaymentStep() {\r\n // complete the current step\r\n this.stepper.selected.completed = true;\r\n // move to next step\r\n this.stepper.selectedIndex = 1;\r\n\r\n //Email won't have been set to the object, set it now.\r\n this.invoiceCustom.email = this.userConfirmationFormGroup.get(\"email\").value;\r\n }\r\n\r\n public orderPaidForEvent(event: string) {\r\n\r\n this.transactionRef = event;\r\n // complete the current step\r\n this.stepper.selected.completed = true;\r\n // move to next step\r\n this.stepper.selectedIndex = 2;\r\n }\r\n}","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{numberInputFieldName}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'pay_customs.reference_code' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'pay_customs.warning' | translate}}\r\n No record\r\n found please check the input details are correct\r\n
\r\n
\r\n
\r\n

0\" >{{'pay_customs.total' | translate}}: {{invoiceCustom.outstandingAmount | currency: 'DKK':''}} DKK

\r\n

{{'pay_customs.customs_already_paid' | translate}}

\r\n

{{'pay_customs.invoice_already_paid' | translate}}

\r\n

{{'pay_customs.please_contact_posta' | translate}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n 1. {{'pay_customs.step_one_user_confirmation_page.stepper_title' | translate}}1\r\n \r\n
\r\n
\r\n \r\n 2. {{'pay_customs.step_two.stepper_title' | translate}}2\r\n \r\n \r\n \r\n \r\n 3. {{'pay_customs.step_three.stepper_title' | translate}}3\r\n \r\n \r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaymentService } from '../../../send-receive/services/payment.service';\r\n\r\n@Component({\r\n selector: 'app-customs-confirmation',\r\n templateUrl: './customs-confirmation.component.html',\r\n styleUrls: ['./customs-confirmation.component.scss']\r\n})\r\nexport class CustomsConfirmationComponent implements OnInit {\r\n\r\n @Input()\r\n transactionRef: string;\r\n\r\n @Input()\r\n serviceTypeId: number;\r\n\r\n @Input()\r\n customsFormGroup: FormGroup;\r\n\r\n downloadingInvoice: boolean = false;\r\n\r\n downloadingReceipt: boolean = false;\r\n\r\n constructor(private paymentService: PaymentService, private translateService: TranslateService) { }\r\n\r\n invoiceError: string;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //TODO refactor below\r\n public downloadInvoice()\r\n {\r\n this.invoiceError = undefined;\r\n this.downloadingInvoice = true;\r\n this.paymentService.downloadInvoice(this.serviceTypeId, this.customsFormGroup.get(\"invoicePoNumber\").value, this.customsFormGroup.get(\"refCode\").value).subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingInvoice = false;\r\n }, (y) => {\r\n this.downloadingInvoice = false;\r\n this.invoiceError = y.error;\r\n })\r\n }\r\n\r\n public downloadReceipt() {\r\n this.downloadingReceipt = true;\r\n this.paymentService.downloadReceipt(this.serviceTypeId, this.customsFormGroup.get(\"invoicePoNumber\").value, this.customsFormGroup.get(\"refCode\").value, this.translateService.currentLang).subscribe(x => {\r\n\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n}\r\n","
\r\n

{{'pay_customs.step_three_confirmation_page.thank_you_for_payment' | translate}}

\r\n

{{'pay_customs.step_three_confirmation_page.transaction_ref' | translate}}: {{transactionRef}}

\r\n
\r\n \r\n \r\n
\r\n \r\n
","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { interval, Subject } from 'rxjs';\r\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { InvoiceCustom } from '../../entities/InvoiceCustom';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { environment } from '../../../../environments/environment'\r\nimport { PaymentService } from '../../../send-receive/services/payment.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-details-and-payment',\r\n templateUrl: './details-and-payment.component.html',\r\n styleUrls: ['./details-and-payment.component.scss']\r\n})\r\nexport class DetailsAndPaymentComponent implements OnInit {\r\n\r\n @ViewChild('paymentFrame') iframe: ElementRef;\r\n\r\n @Input()\r\n userConfirmationFormGroup: FormGroup;\r\n\r\n @Input()\r\n customsFormGroup: FormGroup;\r\n\r\n @Input()\r\n invoiceCustom: InvoiceCustom;\r\n\r\n public intervalSet: boolean = false;\r\n\r\n private stopPolling = new Subject();\r\n\r\n public paymentSuccess: boolean = false;\r\n\r\n public isPaying: boolean = false;\r\n\r\n public loadingPayment: boolean = false;\r\n\r\n @Input()\r\n invoiceCustomFieldName: string;\r\n\r\n @Output()\r\n transactionRefOutput: EventEmitter = new EventEmitter();\r\n iframeURL: any;\r\n paymentCancelledOrFailed: boolean = false;\r\n\r\n constructor(private paymentService: PaymentService, private translateService: TranslateService, private _sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopPolling.next();\r\n }\r\n\r\n public payNow() {\r\n this.isPaying = true;\r\n this.loadingPayment = true;\r\n\r\n this.pay();\r\n }\r\n\r\n private pay() {\r\n this.paymentService.GetPaymentInfo(this.invoiceCustom.serviceTypeId, this.invoiceCustom.invoiceCustomNumber, this.invoiceCustom.referenceCode).subscribe(x => {\r\n\r\n if (x.outstandingAmount > 0) {\r\n this.paymentService.dibsPay(`${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=${this.invoiceCustom.serviceTypeId}&orderId=${this.invoiceCustom.invoiceCustomNumber}&amount=${this.invoiceCustom.outstandingAmount}&paidByEmail=${this.invoiceCustom.email}&referenceCode=${this.invoiceCustom.referenceCode}`).subscribe(\r\n y => {\r\n this.loadingPayment = false;\r\n this.iframeURL = this._sanitizer.bypassSecurityTrustResourceUrl(y)\r\n this.onFrameLoad();\r\n })\r\n }\r\n\r\n }, (error) => {\r\n console.log(\"Invoice no longer requires payment\");\r\n });\r\n }\r\n\r\n\r\n public onFrameLoad() {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n switchMap(() => this.paymentService.getReceipt(this.invoiceCustom.serviceTypeId, this.invoiceCustom.invoiceCustomNumber)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (!!x)\r\n {\r\n if (!!x && !!x.paymentRequestHeader && (x.paymentRequestHeader.isPaid || x.paymentRequestHeader.isPaidButUpdateFailed)) {\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentSuccess = true;\r\n if (!!x.payments && x.payments.length > 0)\r\n this.transactionRefOutput.emit(x.payments[0].transactionRef);\r\n this.isPaying = false;\r\n this.userConfirmationFormGroup.disable();\r\n return;\r\n }\r\n if (x.paymentRequestHeader.attemptedPaymentYN)\r\n {\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentSuccess = true;\r\n this.paymentCancelledOrFailed = true;\r\n this.paymentService.updatePaymentStatus({serviceTypeId: +this.invoiceCustom.serviceTypeId, orderReference: this.invoiceCustom.invoiceCustomNumber}).subscribe();\r\n return;\r\n }\r\n }\r\n }), (err) => { \r\n this.isPaying = false;\r\n document.getElementById(\"paymentFrame\").remove();\r\n console.log(\"Error getting order after payment: \" + err) \r\n };\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.email' | translate}}

\r\n {{userConfirmationFormGroup.get('email').value}}\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.customer_name' | translate}}

\r\n {{invoiceCustom.customerName}}\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.invoice_date' | translate}}

\r\n {{invoiceCustom.invoiceDate | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.invoice_number' | translate}}

\r\n {{invoiceCustom.invoiceCustomNumber}}\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.reference_code' | translate}}

\r\n {{invoiceCustom.referenceCode}}\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.total' | translate}}

\r\n {{invoiceCustom.totalAmountIncVAT | currency: 'DKK':''}} DKK\r\n
\r\n
\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.amount_due' | translate}}: {{invoiceCustom.outstandingAmount | currency: 'DKK':''}} DKK

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'pay_customs.step_two_details_payment_page.payment_failed' | translate}}: {{invoiceCustom.invoiceCustomNumber}}

\r\n
\r\n {{'pay_customs.step_two_details_payment_page.payment_failed_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Invoice } from '../../shared/entities/Invoice';\r\nimport { StaticContentHelper } from '../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { InvoiceCustom } from '../entities/InvoiceCustom';\r\n\r\n@Component({\r\n selector: 'app-pay-customs',\r\n templateUrl: './pay-customs.component.html',\r\n styleUrls: ['./base-pay-customs.component.scss']\r\n})\r\nexport class PayCustomsComponent implements OnInit {\r\n\r\n public image: string;\r\n\r\n interval: any;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n constructor(private staticContentService: StaticContentService, private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.image = this.staticContentService.getImageForPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.image = this.staticContentService.getImageForPsModule();\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule(); \r\n })\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StaticContentHelper } from '../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-pay-invoice',\r\n templateUrl: './pay-invoice.component.html',\r\n styleUrls: ['./base-pay-customs.component.scss']\r\n})\r\nexport class PayInvoiceComponent implements OnInit {\r\n\r\n public image: string;\r\n\r\n interval: any;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n constructor(private staticContentService: StaticContentService, private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.image = this.staticContentService.getImageForPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.image = this.staticContentService.getImageForPsModule();\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n}\r\n","\r\n
\r\n\r\n\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { AuthenticationService } from '../../../account/services/authentication.service';\r\nimport { User } from '../../../account/entities/user';\r\nimport { UserService } from '../../../account/services/user.service';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-user-confirmation',\r\n templateUrl: './user-confirmation.component.html',\r\n styleUrls: ['./user-confirmation.component.scss']\r\n})\r\nexport class PayCustomsUserConfirmationComponent implements OnInit {\r\n\r\n originValue: any;\r\n\r\n @Input()\r\n userConfirmationFormGroup: FormGroup;\r\n\r\n showAgreeToUseEmailError: boolean = false;\r\n\r\n showDibsPaymentScreen: boolean = false;\r\n\r\n user: User;\r\n\r\n @Output()\r\n proceedToDetailsAndPayment: EventEmitter = new EventEmitter();\r\n\r\n constructor(private authService: AuthenticationService, private userService: UserService, private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n // if (this.authService.isLoggedIn())\r\n // {\r\n // this.userService.getUserDetails().subscribe(x => {\r\n // this.user = x;\r\n\r\n // this.userConfirmationFormGroup.get(\"email\").setValue(this.user.email);\r\n // this.userConfirmationFormGroup.get(\"noPostaAccount\").disable();\r\n // this.userConfirmationFormGroup.get(\"hasPostaAccount\").disable();\r\n // })\r\n // }\r\n // this.userConfirmationFormGroup.disable();\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.userConfirmationFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.userConfirmationFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public isTouched(field){\r\n return this.userConfirmationFormGroup.get(field).touched\r\n }\r\n\r\n public postaAccountToggled(hasAccount: boolean)\r\n {\r\n const passwordInput = this.userConfirmationFormGroup.get(\"password\");\r\n\r\n if (hasAccount)\r\n {\r\n passwordInput.enable();\r\n passwordInput.setValidators(Validators.required);\r\n this.userConfirmationFormGroup.get(\"noPostaAccount\").setValidators(null);\r\n }\r\n else\r\n {\r\n this.userConfirmationFormGroup.get(\"hasPostaAccount\").setValidators(null);\r\n passwordInput.reset();\r\n passwordInput.disable();\r\n }\r\n }\r\n\r\n public openDibsPaymentScreen() {\r\n const form = this.userConfirmationFormGroup;\r\n\r\n if (!form.valid)\r\n {\r\n form.markAllAsTouched();\r\n\r\n if (form.get(\"agreeToUseEmail\").invalid)\r\n {\r\n this.showAgreeToUseEmailError = true;\r\n }\r\n return;\r\n }\r\n\r\n this.proceedToDetailsAndPayment.emit(true);\r\n }\r\n\r\n}\r\n","
\r\n

{{'pay_customs.step_one_user_confirmation_page.email' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
{{'pay_customs.step_one_user_confirmation_page.confirm_permission' | translate}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n ","import { Injectable } from \"@angular/core\";\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Category } from \"../entities/category\";\r\nimport { CategoryService } from \"../services/category-service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CategoryResolver implements Resolve> {\r\n\r\n constructor(private categoryService: CategoryService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.categoryService.getAll();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CustomsCalculator } from '../entities/customsCalculator';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CategoryService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getAll(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/customs/categories`).pipe(map((data: any) => {\r\n return data;\r\n }));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { CustomsInput } from '../entities/CustomsInput';\r\nimport { CustomsEstimate } from '../entities/CustomsEstimate';\r\nimport { HsCodeLookup } from '../entities/hsCodeLookup';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomsService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public calculateEstimate(customsInput: CustomsInput): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/customs`, customsInput);\r\n }\r\n\r\n public getCategoryByHsNumber(hsNumber: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/customs/?tariffCode=${hsNumber}`) as Observable;\r\n }\r\n\r\n \r\n}","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaymentService } from '../../send-receive/services/payment.service';\r\nimport { ErrorHelper } from '../../shared/helpers/error-helper';\r\nimport { StaticContentHelper } from '../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { CustomsRecord } from '../entities/CustomsRecord';\r\n\r\n@Component({\r\n selector: 'app-upload-missing-documentation',\r\n templateUrl: './upload-missing-documentation.component.html',\r\n styleUrls: ['./upload-missing-documentation.component.scss']\r\n})\r\nexport class UploadMissingDocumentationComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n\r\n public customsFormGroup: FormGroup;\r\n\r\n public uploadedDocumentsFormGroup: FormGroup;\r\n\r\n public paymentFormGroup: FormGroup;\r\n\r\n public customsRetrieved: boolean = false;\r\n \r\n public showUploadDocumentScreen: boolean = false;\r\n\r\n public transactionRef: string;\r\n\r\n public failedToGetOrder: boolean = false;\r\n\r\n public loading: boolean = false;\r\n\r\n public loadingProceedToPayment: boolean = false;\r\n\r\n public orderValidated: boolean;\r\n\r\n public showConfirmationScreen: boolean = false;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n public image: string;\r\n\r\n interval : any;\r\n observer: MutationObserver;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private paymentService: PaymentService,\r\n private route: ActivatedRoute,\r\n private errorHelper: ErrorHelper,\r\n private staticContentService: StaticContentService,\r\n private translateService: TranslateService,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.image = this.staticContentService.getImageForPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.orderValidated = this.route.snapshot.data.validOrder;\r\n\r\n if (!!this.orderValidated && this.orderValidated)\r\n {\r\n this.showUploadDocumentScreen = true;\r\n }\r\n\r\n this.customsFormGroup = this.formBuilder.group({\r\n invoicePoNumber: ['', Validators.required],\r\n refCode: ['', Validators.required],\r\n });\r\n\r\n this.uploadedDocumentsFormGroup = this.formBuilder.group({\r\n uploadedFiles: ['', Validators.required],\r\n })\r\n\r\n this.paymentFormGroup = this.formBuilder.group({\r\n hasPaid: ['', Validators.required],\r\n })\r\n\r\n this.customsFormGroup.get(\"invoicePoNumber\").valueChanges.subscribe(x => {\r\n this.customsRetrieved = false;\r\n });\r\n\r\n this.customsFormGroup.get(\"refCode\").valueChanges.subscribe(x => {\r\n this.customsRetrieved = false;\r\n });\r\n\r\n this.route.params.subscribe(params => {\r\n console.log(params['orderId']);\r\n console.log(params['refCode']);\r\n if (!!params['orderId'])\r\n {\r\n this.customsFormGroup.get(\"invoicePoNumber\").setValue(params['orderId']);\r\n }\r\n if (!!params['refCode'])\r\n {\r\n this.customsFormGroup.get(\"refCode\").setValue(params['refCode']);\r\n }\r\n })\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.customsFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.customsFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public getOrder() {\r\n if (!this.customsFormGroup.valid)\r\n {\r\n this.customsFormGroup.markAllAsTouched();\r\n this.customsRetrieved = false;\r\n return;\r\n }\r\n\r\n this.failedToGetOrder = false;\r\n this.loading = true;\r\n\r\n this.paymentService.validate(7, this.customsFormGroup.get(\"invoicePoNumber\").value, this.customsFormGroup.get(\"refCode\").value).subscribe(x => {\r\n this.showUploadDocumentScreen = true;\r\n },(error) => {\r\n this.failedToGetOrder = true;\r\n this.loading = false;\r\n })\r\n \r\n }\r\n\r\n public showConfirmation(event: any)\r\n {\r\n this.showConfirmationScreen = true;\r\n // complete the current step\r\n this.stepper.selected.completed = true;\r\n // move to next step\r\n this.stepper.selectedIndex = 1;\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'upload_missing_documentation.posta_id' | translate}}

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'upload_missing_documentation.reference_number' |\r\n translate}}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'upload_missing_documentation.order_via_my_posta' | translate}}\r\n {{'upload_missing_documentation.order_via_my_posta_link' | translate}}\r\n \r\n {{'upload_missing_documentation.no_record_found' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{'upload_missing_documentation.step_one_title' | translate}}1\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{'upload_missing_documentation.step_two_title' | translate}}2\r\n
\r\n
\r\n

{{'upload_missing_documentation.thank_you_for_your_documents' | translate}}

\r\n
\r\n {{'upload_missing_documentation.confirmation_body' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CookieService } from '../../../shared/services/cookie.service';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { PostageConfirmation } from '../../entities/postageConfirmation';\r\nimport { BuyPostageService } from '../../services/buy-postage.service';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-confirmation',\r\n templateUrl: './buy-postage-confirmation.component.html',\r\n styleUrls: ['./buy-postage-confirmation.component.scss']\r\n})\r\nexport class BuyPostageConfirmationComponent implements OnInit, OnDestroy {\r\n\r\n public psModuleContent: any;\r\n\r\n public item1Link: any;\r\n\r\n @Input()\r\n orderConfirmationDetails: PostageConfirmation;\r\n\r\n @Input()\r\n anonymousUserGuid: string;\r\n\r\n @Input()\r\n isGoods: boolean;\r\n\r\n email: string;\r\n\r\n cn22Email: string;\r\n\r\n emailSentTo: string;\r\n\r\n emailCN22SentTo: string;\r\n\r\n showEmailOrderSuccess: boolean = false;\r\n\r\n showEmailCN22Success: boolean = false;\r\n\r\n downloadingPdfOrder: boolean = false;\r\n\r\n downloadingCN22: boolean = false;\r\n\r\n sendingOrderEmail: boolean = false;\r\n\r\n sendingCN22Email: boolean = false;\r\n\r\n cdnPath: string;\r\n\r\n @Input()\r\n isDomestic: boolean;\r\n\r\n constructor(\r\n private buyPostageService: BuyPostageService, \r\n private translationService: TranslateService, \r\n private staticContentService: StaticContentService, \r\n private cookieService: CookieService, \r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.cdnPath = this.staticContentService.cdn();\r\n\r\n var mainWrapper = document.getElementsByClassName('main-content') as HTMLCollectionOf;\r\n\r\n if (mainWrapper.length != 0)\r\n {\r\n mainWrapper[0].style.background = \"#F1F2F2\";\r\n }\r\n\r\n this.psModuleContent = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/buy-postage')\r\n if (!!this.psModuleContent)\r\n {\r\n this.item1Link = this.psModuleContent.Item1Link;\r\n }\r\n }\r\n\r\n public ngOnDestroy()\r\n {\r\n var mainWrapper = document.getElementsByClassName('main-content') as HTMLCollectionOf;\r\n\r\n if (mainWrapper.length != 0)\r\n {\r\n mainWrapper[0].style.background = \"none\";\r\n }\r\n }\r\n\r\n\r\n public downloadReceipt()\r\n {\r\n this.downloadingPdfOrder = true;\r\n // this.cookieService.setCookie('tempToken', this.anonymousUserGuid, 560);\r\n this.buyPostageService.downloadReceipt(this.orderConfirmationDetails.orderReference, this.translationService.currentLang, this.anonymousUserGuid).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public downloadCN22()\r\n {\r\n this.downloadingCN22 = true;\r\n this.buyPostageService.downloadCDS(this.orderConfirmationDetails.barcode).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingCN22 = false;\r\n }, (error) => {\r\n this.downloadingCN22 = false;\r\n })\r\n // this.buyPostageService.downloadCN22(this.orderConfirmationDetails.orderReference).subscribe(x => {\r\n // const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n // const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n // const url = window.URL.createObjectURL(blob);\r\n // // window.open(url);\r\n // var link = document.createElement('a');\r\n // link.href = url;\r\n // link.download = x.fileName;\r\n // link.click();\r\n // this.downloadingCN22 = false;\r\n // // this.downloadingReceipt = false;\r\n // }, (error) => {\r\n // // this.downloadingReceipt = false;\r\n // this.downloadingCN22 = false;\r\n // })\r\n\r\n ////////////////\r\n\r\n //window.open(\"https://cdn.posta.fo/media/5s2n5wv0/cn22.pdf\", '_blank').focus();\r\n }\r\n\r\n public sendEmail()\r\n {\r\n if (!!this.email)\r\n {\r\n this.sendingOrderEmail = true;\r\n this.buyPostageService.emailOrder(this.orderConfirmationDetails.orderReference, this.translationService.currentLang, this.email).subscribe(x => {\r\n this.emailSentTo = this.email;\r\n this.showEmailOrderSuccess = true;\r\n this.sendingOrderEmail = false;\r\n })\r\n }\r\n }\r\n\r\n public sendCN22Email()\r\n {\r\n if (!!this.cn22Email)\r\n {\r\n this.sendingCN22Email = true;\r\n this.buyPostageService.emailCN22(this.cn22Email).subscribe(x => {\r\n this.emailCN22SentTo = this.cn22Email;\r\n this.showEmailCN22Success = true;\r\n this.sendingCN22Email = false;\r\n }, (error) => {\r\n this.sendingCN22Email = false;\r\n })\r\n }\r\n }\r\n\r\n public openRouteInNewWindow(route: string){\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n

{{'buy_postage.confirmation_page.posta_id' | translate}} {{orderConfirmationDetails.orderReference}}

\r\n
\r\n
\r\n
\r\n {{'buy_postage.confirmation_page.transaction_ref' | translate}}: \r\n
{{orderConfirmationDetails.transactionReference}}   
\r\n {{'buy_postage.confirmation_page.order_date' | translate}}: \r\n
{{orderConfirmationDetails.createdDateTime | date:'dd/MM/yyyy'}}   
\r\n {{'buy_postage.confirmation_page.expiry' | translate}}: \r\n
{{orderConfirmationDetails.expiryDate | date:'dd/MM/yyyy'}}   \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{'buy_postage.confirmation_page.custom_requirements' | translate}}

\r\n
\r\n

{{'buy_postage.confirmation_page.need_custom_forms' | translate}}

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'buy_postage.confirmation_page.order_sent_to' | translate}} {{emailCN22SentTo}}
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.confirmation_page.item' | translate}} {{i+1}} {{'buy_postage.confirmation_page.postage_code' | translate}}

\r\n
{{postageItem.customerReference}}
\r\n
\r\n

{{postageItem.postageCode}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{{'buy_postage.confirmation_page.order_sent_to' | translate}} {{emailSentTo}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'buy_postage.confirmation_page.use_code_instructions' | translate}}\r\n

\r\n {{'buy_postage.confirmation_page.view_codes_instructions' | translate}}{{'buy_postage.confirmation_page.orders' | translate}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationHelper } from '../../../shared/helpers/translation-helper';\r\nimport { TranslationString } from '../../../shared/price-matrix/entities/TranslationString';\r\nimport { TransportType } from '../../../shared/price-matrix/entities/TransportType';\r\nimport { PriceMatrixService } from '../../../shared/price-matrix/services/price-matrix.service';\r\nimport { StaticContentHelper } from '../../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-landing',\r\n templateUrl: './buy-postage-landing.component.html',\r\n styleUrls: ['./buy-postage-landing.component.scss']\r\n})\r\nexport class BuyPostageLandingComponent implements OnInit {\r\n\r\n constructor(private priceMatrixService: PriceMatrixService,\r\n private translationHelper: TranslationHelper,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private staticContentService: StaticContentService,\r\n private translateService: TranslateService) { }\r\n\r\n interval: any;\r\n\r\n image: string;\r\n\r\n quickBuyDomesticForm: FormGroup;\r\n\r\n quickBuyInternationalForm: FormGroup;\r\n\r\n transportType: TransportType;\r\n\r\n maxDomesticWeight: number = 0;\r\n\r\n maxInternationalWeight: number = 0;\r\n\r\n domesticPricePerUnit: number = 0;\r\n\r\n internationalPricePerUnit: number = 0;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.image = this.staticContentService.getImageForPsModule();\r\n // this.image = this.staticContentHelper.getImageForPsModule('import/pay-invoice');\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.image = this.staticContentService.getImageForPsModule();\r\n })\r\n\r\n this.quickBuyDomesticForm = this.formBuilder.group({\r\n quantity: ['', Validators.required]\r\n });\r\n\r\n this.quickBuyInternationalForm = this.formBuilder.group({\r\n internationalQuantity: ['', Validators.required]\r\n });\r\n\r\n this.quickBuyDomesticForm.get(\"quantity\").setValue(1);\r\n this.quickBuyInternationalForm.get(\"internationalQuantity\").setValue(1);\r\n\r\n this.priceMatrixService.getLetterSizes().subscribe(x => {\r\n this.transportType = x[0];\r\n\r\n var domesticOption = this.transportType.CountryGroups.find(x => x.LinkedGroupKey == 0);\r\n var maxDomesticWeights = domesticOption.ParcelRanges.map(x => x.MaxWeight);\r\n this.maxDomesticWeight = Math.max.apply(null, maxDomesticWeights);\r\n\r\n this.domesticPricePerUnit = domesticOption.ParcelRanges.find(x => x.MaxWeight == this.maxDomesticWeight).BaseCostOverride;\r\n\r\n var international = this.transportType.CountryGroups.find(x => x.LinkedGroupKey == 1);\r\n var maxInternationalWeights = international.ParcelRanges.map(x => x.MaxWeight);\r\n this.maxInternationalWeight = Math.max.apply(null, maxInternationalWeights);\r\n\r\n this.internationalPricePerUnit = international.ParcelRanges.find(x => x.MaxWeight == this.maxDomesticWeight).BaseCostOverride;\r\n })\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n public getTranslation(translationString: TranslationString) {\r\n return this.translationHelper.getTranslation(translationString);\r\n }\r\n\r\n public incrementDomesticItemCount() {\r\n var itemCount = this.quickBuyDomesticForm.get(\"quantity\").value;\r\n this.quickBuyDomesticForm.get(\"quantity\").setValue(Number(itemCount) + 1);\r\n }\r\n\r\n public decreaseDomesticItemCount() {\r\n var itemCount = this.quickBuyDomesticForm.get(\"quantity\").value;\r\n\r\n if (itemCount == 0) {\r\n return;\r\n }\r\n this.quickBuyDomesticForm.get(\"quantity\").setValue(Number(itemCount) - 1);\r\n }\r\n\r\n public incrementInternationalItemCount() {\r\n var itemCount = this.quickBuyInternationalForm.get(\"internationalQuantity\").value;\r\n this.quickBuyInternationalForm.get(\"internationalQuantity\").setValue(Number(itemCount) + 1);\r\n }\r\n\r\n public decreaseInternationalItemCount() {\r\n var itemCount = this.quickBuyInternationalForm.get(\"internationalQuantity\").value;\r\n\r\n if (itemCount == 0) {\r\n return;\r\n }\r\n\r\n this.quickBuyInternationalForm.get(\"internationalQuantity\").setValue(Number(itemCount) - 1);\r\n }\r\n\r\n public getInternationalPrice() {\r\n return this.internationalPricePerUnit * this.quickBuyInternationalForm.get(\"internationalQuantity\").value;\r\n }\r\n\r\n public getDomesticPrice() {\r\n return this.domesticPricePerUnit * this.quickBuyDomesticForm.get(\"quantity\").value;\r\n }\r\n\r\n public navigatetoBuyPostage(isDomestic: boolean) {\r\n\r\n if ((isDomestic && !this.quickBuyDomesticForm.valid) || (!isDomestic && !this.quickBuyInternationalForm.valid)) {\r\n return;\r\n }\r\n\r\n var itemCount = isDomestic ? this.quickBuyDomesticForm.get(\"quantity\").value : this.quickBuyInternationalForm.get(\"internationalQuantity\").value;\r\n var zoneId = isDomestic ? 0 : 1;\r\n var transportTypeKey = this.transportType.Key\r\n var maxWeight = isDomestic ? this.maxDomesticWeight : this.maxInternationalWeight;\r\n\r\n let navigationExtras: NavigationExtras = {\r\n queryParams: {\r\n \"itemCount\": itemCount,\r\n \"zoneId\": zoneId,\r\n \"id\": transportTypeKey,\r\n \"maxWeight\": maxWeight\r\n },\r\n };\r\n\r\n this.router.navigate([`../${this.translate.currentLang}/private/send-receive/buy-postage`], navigationExtras);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.landing_page.specify' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.landing_page.all_options' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{getDomesticPrice() | currency: 'DKK':''}}Kr.

\r\n
\r\n
\r\n
\r\n

{{'buy_postage.landing_page.domestic_post' | translate}} ({{getTranslation(transportType.Name)}})\r\n

\r\n

{{'buy_postage.landing_page.max' | translate}}: {{maxDomesticWeight}}g

\r\n

{{getTranslation(transportType.Description)}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{getInternationalPrice() | currency: 'DKK':''}}Kr.

\r\n
\r\n
\r\n
\r\n

{{'buy_postage.landing_page.international_post' | translate}}\r\n ({{getTranslation(transportType.Name)}})

\r\n

{{'buy_postage.landing_page.max' | translate}}: {{maxInternationalWeight}}g

\r\n

{{getTranslation(transportType.Description)}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { AuthenticationService } from '../../../account/services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-login',\r\n templateUrl: './buy-postage-login.component.html',\r\n styleUrls: ['./buy-postage-login.component.scss']\r\n})\r\nexport class BuyPostageLoginComponent implements OnInit {\r\n\r\n @Input() emailForm: FormGroup;\r\n isLoggedIn: boolean;\r\n\r\n @Output()\r\n backButtonSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n proceedButtonSelected: EventEmitter = new EventEmitter();\r\n\r\n constructor(private authService: AuthenticationService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public goBack()\r\n {\r\n this.backButtonSelected.emit(true);\r\n }\r\n\r\n public proceedToNextPage(){\r\n this.proceedButtonSelected.emit(true);\r\n }\r\n\r\n public onLoggedIn(status: boolean){\r\n if(status){\r\n //check logged in state\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n if(this.emailForm){\r\n this.emailForm.get('email').disable();\r\n }\r\n this.proceedToNextPage();\r\n \r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { TranslationHelper } from '../../../shared/helpers/translation-helper';\r\nimport { CountryGroup } from '../../../shared/price-matrix/entities/CountryGroup';\r\nimport { TransportType } from '../../../shared/price-matrix/entities/TransportType';\r\nimport { Postage } from '../../entities/postage';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-secondary',\r\n templateUrl: './buy-postage-secondary.component.html',\r\n styleUrls: ['./buy-postage-secondary.component.scss']\r\n})\r\nexport class BuyPostageSecondaryComponent implements OnInit {\r\n\r\n @Input()\r\n buyPostageForm: FormGroup;\r\n\r\n @Input()\r\n fromTo: CountryGroup;\r\n\r\n @Input()\r\n size: TransportType;\r\n\r\n @Input()\r\n price: number;\r\n\r\n totalPrice: number = 0;\r\n\r\n @Input()\r\n postageItems: Array = new Array();\r\n\r\n @Output()\r\n paymentEvent: EventEmitter> = new EventEmitter();\r\n\r\n @Output()\r\n backButtonSelected: EventEmitter = new EventEmitter();\r\n\r\n loadingPayment: boolean = false;\r\n\r\n @Input()\r\n selectedOptionIndex: number;\r\n\r\n domestic: boolean;\r\n\r\n constructor(private translateHelper: TranslationHelper) { }\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.selectedOptionIndex === 0)\r\n {\r\n this.domestic = true;\r\n this.buyPostageForm.get('agreeToTermsConditions').clearValidators();\r\n }\r\n else {\r\n this.buyPostageForm.get('agreeToTermsConditions').setValidators([Validators.requiredTrue]);\r\n }\r\n\r\n if (!!this.buyPostageForm.get('itemCount')) {\r\n for (let i = 0; i < this.buyPostageForm.get('itemCount').value; i++) {\r\n\r\n var newPostageItem: Postage = {\r\n fromTo: this.translateHelper.getTranslation(this.fromTo.Name),\r\n weight: this.buyPostageForm.get('weight').value,\r\n sizeName: this.translateHelper.getTranslation(this.size.Name),\r\n sizeDescription: this.translateHelper.getTranslation(this.size.Description),\r\n price: this.price,\r\n reference: \"\"\r\n }\r\n\r\n this.totalPrice += newPostageItem.price;\r\n this.postageItems.push(newPostageItem);\r\n }\r\n }\r\n }\r\n\r\n public deleteItem(postageItem: Postage) {\r\n const index = this.postageItems.indexOf(postageItem, 0);\r\n if (index > -1) {\r\n this.postageItems.splice(index, 1);\r\n this.totalPrice -= postageItem.price;\r\n this.buyPostageForm.get(\"itemCount\")?.setValue(this.postageItems.length);\r\n }\r\n }\r\n\r\n public logItems()\r\n {\r\n console.log(this.postageItems);\r\n }\r\n\r\n public proceedToPayment()\r\n {\r\n this.paymentEvent.emit(this.postageItems);\r\n }\r\n\r\n public goToPreviousPage()\r\n {\r\n this.backButtonSelected.emit(true);\r\n }\r\n\r\n public incrementItemCount() {\r\n var itemCount = this.buyPostageForm.get(\"itemCount\").value;\r\n this.buyPostageForm.get(\"itemCount\").setValue(Number(itemCount) + 1);\r\n var newPostageItem: Postage = {\r\n fromTo: this.translateHelper.getTranslation(this.fromTo.Name),\r\n weight: this.buyPostageForm.get('weight').value,\r\n sizeName: this.translateHelper.getTranslation(this.size.Name),\r\n sizeDescription: this.translateHelper.getTranslation(this.size.Description),\r\n price: this.price,\r\n reference: \"\"\r\n }\r\n\r\n this.totalPrice += newPostageItem.price;\r\n this.postageItems.push(newPostageItem);\r\n }\r\n\r\n public decreaseItemCount() {\r\n var itemCount = this.buyPostageForm.get(\"itemCount\").value;\r\n this.buyPostageForm.get(\"itemCount\").setValue(Number(itemCount) - 1);\r\n var lastPostageItem = this.postageItems[this.postageItems.length - 1];\r\n this.totalPrice -= lastPostageItem.price;\r\n this.postageItems.pop();\r\n }\r\n\r\n public itemCountChange(){\r\n var itemCount = this.buyPostageForm.get(\"itemCount\").value;\r\n var currentItems = this.postageItems.length;\r\n if(itemCount > currentItems){\r\n var itemsToAdd = itemCount - currentItems;\r\n for (let i = 0; i < itemsToAdd; i++) {\r\n\r\n var newPostageItem: Postage = {\r\n fromTo: this.translateHelper.getTranslation(this.fromTo.Name),\r\n weight: this.buyPostageForm.get('weight').value,\r\n sizeName: this.translateHelper.getTranslation(this.size.Name),\r\n sizeDescription: this.translateHelper.getTranslation(this.size.Description),\r\n price: this.price,\r\n reference: \"\"\r\n }\r\n\r\n this.totalPrice += newPostageItem.price;\r\n this.postageItems.push(newPostageItem);\r\n }\r\n }\r\n else if(itemCount < currentItems){\r\n var itemsToRemove = currentItems - itemCount;\r\n for (let i = 0; i < itemsToRemove; i++) {\r\n this.postageItems.pop();\r\n }\r\n }\r\n }\r\n\r\n}","
\r\n
\r\n \r\n

{{'buy_postage.secondary_page.item' | translate}} {{i + 1}}

\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.to' | translate}}
\r\n
\r\n
\r\n {{postageItem.fromTo}}\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.weight' | translate}}
\r\n
\r\n
\r\n {{postageItem.weight}}\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.size' | translate}}
\r\n
\r\n
\r\n {{postageItem.sizeName}}: {{postageItem.sizeDescription}}\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.price' | translate}}
\r\n
\r\n
\r\n {{postageItem.price | currency: 'DKK':''}} DKK\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.your_ref' | translate}}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.secondary_page.quantity' | translate}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'buy_postage.secondary_page.total' | translate}} {{totalPrice | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n
\r\n \r\n
{{'buy_postage.secondary_page.agree_to_terms_conditions' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, ApplicationRef, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryGroup } from '../../../shared/price-matrix/entities/CountryGroup';\r\nimport { ParcelRange } from '../../../shared/price-matrix/entities/parcelRange';\r\nimport { PriceCountryGroup } from '../../../shared/price-matrix/entities/pricedCountryGroup';\r\nimport { TranslationString } from '../../../shared/price-matrix/entities/TranslationString';\r\nimport { TransportType } from '../../../shared/price-matrix/entities/TransportType';\r\nimport { PriceMatrixService } from '../../../shared/price-matrix/services/price-matrix.service';\r\nimport { PostageItem } from '../../entities/postageItem';\r\nimport { PostageOrder } from '../../entities/postageOrder';\r\nimport { BuyPostageService } from '../../services/buy-postage.service'\r\nimport { TranslationHelper } from '../../../shared/helpers/translation-helper';\r\nimport { Postage } from '../../entities/postage';\r\nimport { PaymentService } from '../../services/payment.service';\r\nimport { interval } from 'rxjs/internal/observable/interval';\r\nimport { startWith } from 'rxjs/internal/operators/startWith';\r\nimport { switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { Property } from '../../../shared/price-matrix/entities/property';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { environment } from '../../../../environments/environment'\r\nimport { Pricing } from '../../../shared/price-matrix/entities/pricing';\r\nimport { IncoTermsGroup } from '../../../shared/price-matrix/entities/incoTermsGroup';\r\nimport { Guid } from '../../../shared/guid/guid';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BuyPostageSecondaryComponent } from '../buy-postage-secondary/buy-postage-secondary.component';\r\nimport { AuthenticationService } from '../../../account/services/authentication.service';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { CustomsItemType } from '../../entities/CustomsItemType';\r\nimport { BuyPostageCustomsComponent } from '../international-goods/buy-postage-customs/buy-postage-customs.component';\r\n\r\n@Component({\r\n selector: 'app-buy-postage',\r\n templateUrl: './buy-postage.component.html',\r\n styleUrls: ['./buy-postage.component.scss']\r\n})\r\nexport class BuyPostageComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('paymentFrame') iframe: ElementRef;\r\n\r\n @ViewChild(BuyPostageSecondaryComponent) buyPostageSecondary!: BuyPostageSecondaryComponent;\r\n @ViewChild(BuyPostageCustomsComponent) buyPostageCustoms!: BuyPostageCustomsComponent;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n intervalSet: boolean = false;\r\n\r\n buyPostageForm: FormGroup;\r\n buyPostageAddressesForm: FormGroup;\r\n buyPostageCustomsForm: FormGroup;\r\n emailForm: FormGroup;\r\n\r\n itemTypes: CustomsItemType[] = [new CustomsItemType()];\r\n\r\n weightBoundariesRawValues: Array;\r\n\r\n weightBoundaries: Array = new Array();\r\n\r\n chosenWeightBoundary: string;\r\n\r\n fromToValue: number;\r\n\r\n isGoods: boolean;\r\n\r\n sizeValue: number = 0;\r\n\r\n fromToOptionIndexSelected: number = 0;\r\n\r\n fromToOptions: Array;\r\n\r\n showSizeOptions: boolean = false;\r\n\r\n showWeightExceedsNotice: boolean = false;\r\n\r\n sizeOptions: Array;\r\n\r\n showSecondPage: boolean = false;\r\n\r\n showAddressesPage: boolean = false;\r\n\r\n showCustomsPage: boolean = false;\r\n\r\n showLoginPage: boolean = false;\r\n\r\n price: number = 0;\r\n\r\n pricePerItem: number;\r\n showPaymentScreen: boolean = false;\r\n\r\n private stopPolling = new Subject();\r\n\r\n public paymentSuccess: boolean = false;\r\n\r\n public showXLErrorMessage: boolean = false;\r\n\r\n public anonymousUserGuid: string;\r\n\r\n public postageConfirmationDetails: PostageOrder;\r\n orderRef: string;\r\n isDomestic: boolean = false;\r\n\r\n interval: any;\r\n showPaymentFailed: boolean = false;\r\n observer: MutationObserver;\r\n iframeURL: any;\r\n isLoggedIn: boolean;\r\n\r\n constructor(private priceMatrixService: PriceMatrixService,\r\n private buyPostageService: BuyPostageService,\r\n private translateService: TranslateService,\r\n private formBuilder: FormBuilder,\r\n private translationHelper: TranslationHelper,\r\n private paymentService: PaymentService,\r\n private cd: ChangeDetectorRef,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private staticContentService: StaticContentService,\r\n private elRef: ElementRef,\r\n private _sanitizer: DomSanitizer,\r\n private authService: AuthenticationService,\r\n private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.isLoggedIn = this.authService.isLoggedIn()\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.buyPostageForm = this.formBuilder.group({\r\n fromTo: ['', Validators.required],\r\n weight: ['', Validators.required],\r\n size: ['', Validators.required],\r\n itemCount: [Validators.required, Validators.min(1)],\r\n agreeToTermsConditions: [''],\r\n isGoods: ['', Validators.required]\r\n });\r\n\r\n if(!this.isLoggedIn){\r\n this.emailForm = this.formBuilder.group({\r\n email: ['', [Validators.required, ErrorHelper.emailValidator]]\r\n })\r\n }\r\n\r\n this.buyPostageAddressesForm = this.formBuilder.group({\r\n fromFirstName: ['', Validators.required],\r\n fromLastName: ['', Validators.required],\r\n fromContactCountryCode: ['', ErrorHelper.countryCodeValidator],\r\n fromContactNum: ['', ErrorHelper.integerOnlyValidator],\r\n fromAddressLine1: ['', Validators.required],\r\n fromPostcode: ['', Validators.required],\r\n fromTownCity: ['', Validators.required],\r\n registerForEmail: [''],\r\n registerForSMS: [''],\r\n toFirstName: ['', Validators.required],\r\n toLastName: ['', Validators.required],\r\n toContactCountryCode: ['', ErrorHelper.countryCodeValidator],\r\n toContactNum: ['', ErrorHelper.integerOnlyValidator],\r\n toAddressLine1: ['', Validators.required],\r\n toAddressLine2: [''],\r\n toPostcode: ['', Validators.required],\r\n toTownCity: ['', Validators.required],\r\n toCountry: ['', Validators.required]\r\n });\r\n this.buyPostageAddressesForm.get(`fromContactCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translationHelper.prependPlus(this.buyPostageAddressesForm.get('fromContactCountryCode'));\r\n });\r\n this.buyPostageAddressesForm.get(`toContactCountryCode`).valueChanges.subscribe(newValue => {\r\n this.translationHelper.prependPlus(this.buyPostageAddressesForm.get('toContactCountryCode'));\r\n });\r\n\r\n this.buyPostageCustomsForm = this.formBuilder.group({\r\n shipmentType: ['', Validators.required],\r\n shipmentTypeOther: ['', Validators.required]\r\n });\r\n\r\n this.buyPostageForm.get(\"itemCount\").setValue(\"1\");\r\n\r\n this.priceMatrixService.getBuyPostageCountrySchemes().subscribe(x => {\r\n this.fromToOptions = x;\r\n this.route.queryParams.subscribe(params => {\r\n\r\n const zoneId = params['zoneId'];\r\n if (!!zoneId) {\r\n var matchingZoneIndex = x.findIndex(x => x.Key == zoneId);\r\n this.fromToValue = matchingZoneIndex;\r\n\r\n this.fromToOptionIndexSelected = matchingZoneIndex;\r\n if (!!this.chosenWeightBoundary) {\r\n this.getSizeForOptions();\r\n }\r\n }\r\n });\r\n })\r\n\r\n // this.buyPostageService.getOrderConfirmation(\"SX10000041\").subscribe(y => {\r\n // this.postageConfirmationDetails = y;\r\n // });\r\n\r\n this.priceMatrixService.getPostageWeightBoundaries().subscribe(x => {\r\n this.weightBoundariesRawValues = x;\r\n for (let i = 0; i <= x.length; i++) {\r\n //first item so prefix with 0\r\n if (i == 0) {\r\n this.weightBoundaries.push(`0-${x[i]}g`);\r\n }\r\n else if (i == x.length) {\r\n this.weightBoundaries.push(`${x[i - 1] + 1}g +`)\r\n }\r\n else {\r\n this.weightBoundaries.push(`${x[i - 1] + 1}-${x[i]}g`)\r\n }\r\n }\r\n this.route.queryParams.subscribe(params => {\r\n\r\n const maxWeight = params['maxWeight'];\r\n if (!!maxWeight) {\r\n var matchingWeightIndex = x.findIndex(x => x == maxWeight);\r\n this.chosenWeightBoundary = this.weightBoundaries[matchingWeightIndex];\r\n this.setDefaultWeight();\r\n }\r\n });\r\n })\r\n\r\n this.route.queryParams.subscribe(params => {\r\n\r\n const itemCount = params['itemCount'];\r\n\r\n if (!!itemCount && itemCount) {\r\n this.buyPostageForm.get(\"itemCount\").setValue(itemCount);\r\n }\r\n // if (!!isLargeShipment && isLargeShipment) {\r\n // this.findPricesisLargeShipment = isLargeShipment;\r\n // }\r\n // if (!!numberOfPalettes && numberOfPalettes > 0) {\r\n // this.numberOfPalettes = +numberOfPalettes;\r\n // }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.buyPostageForm?.get(field)?.errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.buyPostageForm?.get(field)?.errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public setWeight(event: any) {\r\n this.showXLErrorMessage = false;\r\n this.showWeightExceedsNotice = false;\r\n this.chosenWeightBoundary = event.value;\r\n if (!!this.chosenWeightBoundary) {\r\n this.getSizeForOptions();\r\n }\r\n }\r\n\r\n public setDefaultWeight() {\r\n this.showXLErrorMessage = false;\r\n this.showWeightExceedsNotice = false;\r\n if (!!this.chosenWeightBoundary) {\r\n this.getSizeForOptions();\r\n }\r\n }\r\n\r\n private getSizeForOptions() {\r\n var index = this.weightBoundaries.indexOf(this.chosenWeightBoundary);\r\n if (index == this.weightBoundariesRawValues.length) {\r\n //Show weight exceeds and use send receive\r\n this.showWeightExceedsNotice = true;\r\n this.showSizeOptions = false;\r\n this.sizeOptions = new Array();\r\n return;\r\n }\r\n var weightValue = this.weightBoundariesRawValues[index];\r\n\r\n this.priceMatrixService.getBuyPostageSizeOptions(this.fromToOptionIndexSelected, weightValue).subscribe(x => {\r\n this.route.queryParams.subscribe(params => {\r\n\r\n const transportTypeId = params['id'];\r\n\r\n if (!!transportTypeId) {\r\n this.sizeValue = Number(transportTypeId);\r\n }\r\n });\r\n\r\n this.sizeOptions = x;\r\n this.showSizeOptions = true;\r\n\r\n var nameTranslation: TranslationString = {\r\n EN: \"XL\",\r\n GL: \"XL\",\r\n FO: \"XL\",\r\n DA: \"XL\"\r\n }\r\n\r\n var extraLargeTransportType: TransportType = {\r\n Name: nameTranslation,\r\n Description: this.translateService.instant('buy_postage.extra_large_description'),\r\n Key: 999,\r\n DefaultExtras: new Array(),\r\n IncoTermsGroups: new Array(),\r\n CountryGroups: new Array(),\r\n Tag: \"\",\r\n BuyPostageIconPath: \"/assets/icons/buy-postage/extraLarge@3x.png\",\r\n Properties: new Array(),\r\n MinimumDeliveryDays: 0,\r\n MaximumDeliveryDays: 0,\r\n SpecialExtras: new Array(),\r\n IsAvailableForBulk: false,\r\n ProductTypeId: 0,\r\n BarcodePrefix: null,\r\n }\r\n\r\n this.sizeOptions.push(extraLargeTransportType);\r\n this.cd.detectChanges();\r\n })\r\n }\r\n\r\n public getTranslation(stringToBeTranslated: TranslationString) {\r\n if(stringToBeTranslated){\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n if(stringToBeTranslated.EN && stringToBeTranslated.EN != \"undefined\"){\r\n return `${stringToBeTranslated.EN}`;\r\n }\r\n case \"fo\":\r\n if(stringToBeTranslated.FO && stringToBeTranslated.FO != \"undefined\"){\r\n return `${stringToBeTranslated.FO}`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public destinationSelected(index: number) {\r\n this.fromToOptionIndexSelected = index;\r\n if (!!this.chosenWeightBoundary) {\r\n this.getSizeForOptions();\r\n }\r\n }\r\n\r\n public showSecondaryPage() {\r\n if (!this.buyPostageForm.valid) {\r\n this.buyPostageForm.markAllAsTouched();\r\n return;\r\n }\r\n if(this.buyPostageForm.get('isGoods').value === true && this.fromToOptionIndexSelected != 0){\r\n this.showAddressesPage = true;\r\n this.showLoginPage = false;\r\n this.showSecondPage = false;\r\n }\r\n else{\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n if(this.isLoggedIn || this.emailForm.valid){\r\n this.showSecondPage = true;\r\n this.showLoginPage = false;\r\n this.showAddressesPage = false;\r\n }\r\n else{\r\n this.showLoginPage = true;\r\n this.showSecondPage = false;\r\n this.showAddressesPage = false;\r\n }\r\n }\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n public returnToAddressesPage(){\r\n this.showAddressesPage = true;\r\n this.showCustomsPage = false;\r\n this.showSecondPage = false;\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n public proceedToCustomsPage(){\r\n if(!this.buyPostageAddressesForm.valid){\r\n this.buyPostageAddressesForm.markAllAsTouched();\r\n return;\r\n }\r\n this.showAddressesPage = false;\r\n this.showCustomsPage = true;\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n public getItemPrice() {\r\n if (!this.buyPostageForm.valid) {\r\n return this.price;\r\n }\r\n\r\n var itemCount = this.buyPostageForm.get(\"itemCount\").value;\r\n\r\n var index = this.weightBoundaries.indexOf(this.chosenWeightBoundary);\r\n var weightValue = this.weightBoundariesRawValues[index];\r\n\r\n var selectedTransportTypeIndex: number = this.buyPostageForm.get(\"size\").value;\r\n var selectedTransportType: TransportType = this.sizeOptions[selectedTransportTypeIndex];\r\n\r\n if (selectedTransportType.Name.EN == \"XL\") {\r\n return;\r\n }\r\n\r\n var validCountryGroup: PriceCountryGroup = selectedTransportType.CountryGroups.find(x => x.LinkedGroupKey == this.fromToOptionIndexSelected);\r\n\r\n var basePrice: number = validCountryGroup.BasePriceWeight;\r\n\r\n var validParcelRange: ParcelRange = validCountryGroup.ParcelRanges.find(x => x.MinVolume < weightValue && x.MaxWeight >= weightValue);\r\n if (!!validParcelRange && validParcelRange.BaseCostOverride > 0) {\r\n this.pricePerItem = validParcelRange.BaseCostOverride;\r\n basePrice = validParcelRange.BaseCostOverride * itemCount;\r\n }\r\n\r\n this.price = basePrice;\r\n return this.price;\r\n }\r\n\r\n public paymentScreenEvent(items: Array) {\r\n if(this.buyPostageSecondary){\r\n this.buyPostageSecondary.loadingPayment = true;\r\n }\r\n else if(this.buyPostageCustoms){\r\n this.buyPostageCustoms.loadingPayment = true;\r\n }\r\n var orderDetail = new Array();\r\n var itemCount = items.length;\r\n\r\n if (this.fromToOptionIndexSelected == 0) {\r\n this.isDomestic = true;\r\n }\r\n\r\n for (let i = 0; i < itemCount; i++) {\r\n var weightIndex = this.weightBoundaries.indexOf(this.chosenWeightBoundary);\r\n\r\n var postageItem: PostageItem = {\r\n ZoneId: this.fromToOptionIndexSelected,\r\n ZoneText: this.translationHelper.getTranslation(this.fromToOptions[this.fromToOptionIndexSelected].Name),\r\n WeightId: weightIndex,\r\n WeightText: this.weightBoundaries[weightIndex],\r\n SizeCategoryId: Number(this.buyPostageForm.get(\"size\").value),\r\n SizeCategoryText: this.translationHelper.getTranslation(this.sizeOptions[this.buyPostageForm.get('size').value].Name),\r\n Quantity: 1,\r\n UnitPrice: this.pricePerItem,\r\n netAmount: this.pricePerItem,\r\n GrossAmount: this.pricePerItem,\r\n CustomerReference: items[i].reference\r\n }\r\n\r\n orderDetail.push(postageItem);\r\n }\r\n\r\n this.anonymousUserGuid = Guid.newGuid();\r\n\r\n var transportType = this.sizeOptions[this.buyPostageForm.get('size').value]\r\n\r\n var isGoodsInternational = this.isGoods === true && this.fromToOptionIndexSelected != 0;\r\n\r\n var postageOrder: PostageOrder = {\r\n ananymousUserGuid: this.anonymousUserGuid,\r\n orderDetail: orderDetail,\r\n languageCode: this.translateService.currentLang,\r\n isGoodsInternational: isGoodsInternational,\r\n barcodePrefix: transportType.BarcodePrefix\r\n }\r\n\r\n if(isGoodsInternational){\r\n postageOrder.customsItemTypes = this.itemTypes;\r\n postageOrder.fromFirstName = this.buyPostageAddressesForm.get('fromFirstName').value;\r\n postageOrder.fromLastName = this.buyPostageAddressesForm.get('fromLastName').value;\r\n postageOrder.fromContactNumber = this.buyPostageAddressesForm.get('fromContactNum').value;\r\n postageOrder.fromLastName = this.buyPostageAddressesForm.get('fromLastName').value;\r\n postageOrder.fromAddressLine1 = this.buyPostageAddressesForm.get('fromAddressLine1').value;\r\n postageOrder.fromPostcode = this.buyPostageAddressesForm.get('fromPostcode').value;\r\n postageOrder.fromTownCity = this.buyPostageAddressesForm.get('fromTownCity').value;\r\n postageOrder.fromCountryCode = \"FO\"; //always FO for Buy Postage\r\n\r\n postageOrder.isPreferEmail = this.buyPostageAddressesForm.get('registerForEmail').value === true;\r\n postageOrder.isPreferSMS = this.buyPostageAddressesForm.get('registerForSMS').value === true;\r\n\r\n postageOrder.toFirstName = this.buyPostageAddressesForm.get('toFirstName').value;\r\n postageOrder.toLastName = this.buyPostageAddressesForm.get('toLastName').value;\r\n postageOrder.toContactNumber = this.buyPostageAddressesForm.get('toContactNum').value;\r\n postageOrder.toAddressLine1 = this.buyPostageAddressesForm.get('toAddressLine1').value;\r\n postageOrder.toAddressLine2 = this.buyPostageAddressesForm.get('toAddressLine2').value;\r\n postageOrder.toPostcode = this.buyPostageAddressesForm.get('toPostcode').value;\r\n postageOrder.toTownCity = this.buyPostageAddressesForm.get('toTownCity').value;\r\n postageOrder.toCountryCode = this.buyPostageAddressesForm.get('toCountry').value.countryCode;\r\n\r\n postageOrder.customsShipmentTypeId = this.buyPostageCustomsForm.get('shipmentType').value;\r\n postageOrder.customsOtherDescription = this.buyPostageCustomsForm.get('shipmentTypeOther').value;\r\n }\r\n\r\n this.buyPostageService.createPostageOrder(postageOrder).subscribe(x => {\r\n this.showPaymentScreen = true;\r\n this.isLoggedIn = this.authService.isLoggedIn()\r\n if (localStorage.getItem(\"role\") !== \"private\" && this.authService.isLoggedIn()) {\r\n this.poll(x);\r\n }\r\n var endpoint = `${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=5&orderId=${x}&amount=${this.getItemPrice()}`;\r\n if(!this.isLoggedIn){\r\n endpoint = `${endpoint}&paidByEmail=${this.emailForm.get(\"email\").value}`\r\n }\r\n\r\n this.paymentService.dibsPay(endpoint).subscribe(\r\n y => {\r\n this.iframeURL = this._sanitizer.bypassSecurityTrustResourceUrl(y)\r\n this.onFrameLoad(x);\r\n })\r\n this.buyPostageSecondary.loadingPayment = false;\r\n }, (error) => {\r\n this.buyPostageSecondary.loadingPayment = false;\r\n })\r\n }\r\n\r\n public onFrameLoad(orderRef: string) {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n switchMap(() => this.buyPostageService.getOrder(orderRef, this.anonymousUserGuid)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (x.isPaid) {\r\n\r\n //call confirmation endpoint\r\n this.buyPostageService.getOrderConfirmation(orderRef, this.anonymousUserGuid).subscribe(y => {\r\n y.isGoodsInternational = this.isGoods;\r\n this.postageConfirmationDetails = y;\r\n this.postageConfirmationDetails.barcode = x.barcode;\r\n this.postageConfirmationDetails.isCDSFiled = x.isCDSFiled;\r\n });\r\n\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentSuccess = true;\r\n return;\r\n }\r\n if (x.attemptedPaymentYN) {\r\n //Throw an error saying paymnet has failed.\r\n this.showPaymentFailed = true;\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.stopPolling.next();\r\n this.paymentService.updatePaymentStatus({serviceTypeId: 5, orderReference: orderRef}).subscribe();\r\n return;\r\n }\r\n }), (err) => { this.showPaymentFailed = true;\r\n console.log(\"Error getting order after payment: \" + err) };\r\n }\r\n }\r\n\r\n public poll(orderRef: string) {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n switchMap(() => this.buyPostageService.getOrder(orderRef, this.anonymousUserGuid)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (!!document.getElementById(\"paymentFrame\"))\r\n {\r\n document.getElementById(\"paymentFrame\").remove();\r\n }\r\n if (x.isPaid) {\r\n\r\n //call confirmation endpoint\r\n this.buyPostageService.getOrderConfirmation(orderRef, this.anonymousUserGuid).subscribe(y => {\r\n this.postageConfirmationDetails = y;\r\n this.postageConfirmationDetails.barcode = x.barcode;\r\n this.postageConfirmationDetails.isCDSFiled = x.isCDSFiled;\r\n });\r\n\r\n this.stopPolling.next();\r\n this.paymentSuccess = true;\r\n return;\r\n }\r\n if (x.attemptedPaymentYN) {\r\n //Throw an error saying paymnet has failed.\r\n this.showPaymentFailed = true;\r\n this.paymentService.updatePaymentStatus({serviceTypeId: 5, orderReference: orderRef}).subscribe();\r\n this.stopPolling.next();\r\n return;\r\n }\r\n }), (err) => { this.showPaymentFailed = true;\r\n console.log(\"Error getting order after payment: \" + err) };\r\n }\r\n }\r\n\r\n public clearAll() {\r\n this.buyPostageForm.reset();\r\n this.showSizeOptions = false;\r\n this.buyPostageForm.get(\"itemCount\").setValue(\"1\");\r\n this.showWeightExceedsNotice = false;\r\n this.showXLErrorMessage = false;\r\n }\r\n\r\n public getIconForSize(transportTypeId: number) {\r\n return \"/assets/icons/find-prices/Parcel_blue2@3x.png\";\r\n }\r\n\r\n public showFirstScreen() {\r\n this.showSecondPage = false;\r\n this.showLoginPage = false;\r\n this.showAddressesPage = false;\r\n this.showCustomsPage = false;\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n public checkIsNotXL(event: any) {\r\n var sizeIndex = this.buyPostageForm.get(\"size\").value;\r\n\r\n if (this.sizeOptions[sizeIndex].Name.EN != \"XL\") {\r\n this.showXLErrorMessage = false;\r\n this.showSizeOptions = true;\r\n return;\r\n }\r\n\r\n this.showXLErrorMessage = true;\r\n }\r\n\r\n public navigateToSendReceive() {\r\n this.router.navigate([`${this.translateService.currentLang}/private/send-receive/send-receive`]);\r\n }\r\n\r\n public getPageTitle() {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'buy_postage.to' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.contents' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.weight' | translate}}

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{weightBoundary}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.size' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{getTranslation(sizeOption.Description)}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'buy_postage.total' | translate}} {{getItemPrice() | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

{{'buy_postage.payment_failed' | translate}}

\r\n
\r\n\r\n\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Country } from '../../../../account/entities/Country';\r\nimport { ErrorHelper } from '../../../../shared/helpers/error-helper';\r\nimport { AddressService } from '../../../../shared/services/address-service';\r\nimport { CountryService } from '../../../../shared/services/country.service';\r\nimport { AuthenticationService } from '../../../../account/services/authentication.service';\r\nimport { RoleService } from '../../../../account/services/role.service';\r\nimport { CookieService } from '../../../../shared/services/cookie.service';\r\nimport { Observable } from 'rxjs';\r\nimport { Address } from '../../../../account/entities/address';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { User } from '../../../../account/entities/user';\r\nimport { UserService } from '../../../../account/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-addresses',\r\n templateUrl: './buy-postage-addresses.component.html',\r\n styleUrls: ['./buy-postage-addresses.component.scss']\r\n})\r\nexport class BuyPostageAddressesComponent implements OnInit {\r\n\r\n\r\n public addresses: Array
= new Array
();\r\n public fromFilteredAddresses: Observable>;\r\n public toFilteredAddresses: Observable>;\r\n\r\n @Input()\r\n buyPostageForm: FormGroup;\r\n @Input()\r\n buyPostageAddressesForm: FormGroup;\r\n @Input() emailForm: FormGroup;\r\n\r\n @Output()\r\n backButtonSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n proceedButtonSelected: EventEmitter = new EventEmitter();\r\n\r\n postcodes: any[];\r\n\r\n countries: Array;\r\n isLoggedIn: boolean;\r\n isAccountAddress: boolean = true;\r\n isNewAddress: boolean = true;\r\n\r\n fromAddressControl = new FormControl();\r\n toAddressControl = new FormControl();\r\n user: User;\r\n\r\n constructor(\r\n private errorHelper: ErrorHelper, \r\n public translate: TranslateService, \r\n private countryService: CountryService,\r\n private addressService: AddressService,\r\n private cookieService: CookieService,\r\n private authService: AuthenticationService,\r\n private router: Router,\r\n public roleService: RoleService,\r\n public userAccountService: UserService) \r\n {\r\n this.addressService.getPostcodes().subscribe((x) => {\r\n this.postcodes = x;\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.user = x;\r\n if(this.isLoggedIn && this.user){\r\n this.accountAddressClick();\r\n }\r\n });\r\n });\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x;\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n this.countries.sort((a, b) => a.countryNameEN.localeCompare(b.countryNameEN))\r\n case \"fo\":\r\n this.countries.sort((a, b) => a.countryNameFO.localeCompare(b.countryNameFO))\r\n }\r\n //International, so never sending to FO here\r\n var foIndex = this.countries.findIndex(x => x.countryCode == \"FO\");\r\n this.countries.splice(foIndex, 1);\r\n\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n });\r\n }\r\n \r\n public hasErrors(field){\r\n var errors = this.buyPostageAddressesForm.get(field)?.errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.buyPostageAddressesForm.get(field)?.errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public setSelectedPostcodeFO(event)\r\n {\r\n if(event.source.id == \"fromTownCity\"){\r\n var selectedPostcode = this.postcodes.find(pc => pc.city == event.value);\r\n this.buyPostageAddressesForm.get(\"fromPostcode\").setValue(selectedPostcode.postcode, { emitEvent: false });\r\n }\r\n else{\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == event.value);\r\n this.buyPostageAddressesForm.get(\"fromTownCity\").setValue(selectedPostcode.city, { emitEvent: false });\r\n }\r\n }\r\n \r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setCountryByCode(country: Country): Country {\r\n var countryControl: Country = this.buyPostageAddressesForm.get(\"toCountry\").value;\r\n if (!!countryControl)\r\n {\r\n var countryCodeByControl = countryControl.countryCode;\r\n\r\n if (country.countryCode == countryCodeByControl)\r\n {\r\n this.buyPostageAddressesForm.get(\"toCountry\").setValue(country, {emitEvent: false});\r\n }\r\n }\r\n return country;\r\n }\r\n\r\n public goToPreviousPage()\r\n {\r\n this.backButtonSelected.emit(true);\r\n }\r\n\r\n public goToNextPage(){\r\n if(this.checkProceedDisabled()){\r\n this.buyPostageAddressesForm.markAllAsTouched();\r\n this.attemptedToProgress = true;\r\n return;\r\n }\r\n this.proceedButtonSelected.emit(true);\r\n }\r\n\r\n public clearAll(){\r\n this.buyPostageAddressesForm.reset();\r\n }\r\n\r\n public onLoggedIn(status: boolean){\r\n if(status){\r\n //check logged in state\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n if(this.emailForm){\r\n this.emailForm.get('email').disable();\r\n }\r\n this.isAccountAddress = true;\r\n \r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.user = x;\r\n this.accountAddressClick();\r\n });\r\n }\r\n }\r\n\r\n navigateTo(target: string){\r\n this.router.navigateByUrl(`/${this.translate.currentLang}/${this.roleService.role()}/${target}`);\r\n }\r\n\r\n getPrivacyLink(){\r\n return [\"/\", this.translate.currentLang, this.roleService.role(), `help-information`,`privacy-cookies`];\r\n }\r\n\r\n checkProceedDisabled(){\r\n if(!this.buyPostageAddressesForm.valid){\r\n return true;\r\n }\r\n if(this.isLoggedIn){\r\n // No need to check guest email valid if logged in\r\n return false;\r\n }\r\n if(this.emailForm && !this.emailForm.valid){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n setFromAddressFields(){\r\n this.buyPostageAddressesForm.get('fromFirstName').setValue(this.selectedFromAddress.firstName);\r\n this.buyPostageAddressesForm.get('fromLastName').setValue(this.selectedFromAddress.lastName);\r\n this.buyPostageAddressesForm.get('fromContactCountryCode').reset();\r\n this.buyPostageAddressesForm.get('fromContactNum').setValue(this.selectedFromAddress.contactNumber);\r\n this.buyPostageAddressesForm.get('fromAddressLine1').setValue(this.selectedFromAddress.addressLine1);\r\n\r\n var postcode = this.postcodes.find(pc => pc.postcode == this.selectedFromAddress.postcode);\r\n if(postcode){\r\n this.buyPostageAddressesForm.get('fromTownCity').setValue(postcode.city, { emitEvent: false });\r\n this.buyPostageAddressesForm.get('fromPostcode').setValue(postcode.postcode, { emitEvent: false });\r\n }\r\n }\r\n\r\n setToAddressFields(){\r\n this.buyPostageAddressesForm.get('toFirstName').setValue(this.selectedToAddress.firstName);\r\n this.buyPostageAddressesForm.get('toLastName').setValue(this.selectedToAddress.lastName);\r\n this.buyPostageAddressesForm.get('toContactCountryCode').reset();\r\n this.buyPostageAddressesForm.get('toContactNum').setValue(this.selectedToAddress.contactNumber);\r\n this.buyPostageAddressesForm.get('toAddressLine1').setValue(this.selectedToAddress.addressLine1);\r\n this.buyPostageAddressesForm.get('toAddressLine2').setValue(this.selectedToAddress.addressLine2);\r\n var country = this.countries.find(c => c.countryCode == this.selectedToAddress.countryCode);\r\n this.buyPostageAddressesForm.get('toCountry').setValue(country);\r\n this.buyPostageAddressesForm.get('toPostcode').setValue(this.selectedToAddress.postcode);\r\n this.buyPostageAddressesForm.get('toTownCity').setValue(this.selectedToAddress.townCity);\r\n }\r\n\r\n selectedFromAddress: Address;\r\n setFromSelectedAddress(address: Address){\r\n this.selectedFromAddress = address;\r\n }\r\n\r\n selectedToAddress: Address;\r\n setToSelectedAddress(address: Address){\r\n this.selectedToAddress = address;\r\n }\r\n\r\n accountAddressClick(){\r\n if(this.isAccountAddress){\r\n //Set from account address\r\n this.buyPostageAddressesForm.get('fromFirstName').setValue(this.user.firstName);\r\n this.buyPostageAddressesForm.get('fromFirstName').disable();\r\n\r\n this.buyPostageAddressesForm.get('fromLastName').setValue(this.user.lastName);\r\n this.buyPostageAddressesForm.get('fromLastName').disable();\r\n \r\n this.buyPostageAddressesForm.get('fromContactCountryCode').setValue(this.user.mobileCountryCode);\r\n this.buyPostageAddressesForm.get('fromContactCountryCode').disable();\r\n \r\n this.buyPostageAddressesForm.get('fromContactNum').setValue(this.user.mobileNo);\r\n this.buyPostageAddressesForm.get('fromContactNum').disable();\r\n \r\n this.buyPostageAddressesForm.get('fromAddressLine1').setValue(this.user.addressLine1);\r\n this.buyPostageAddressesForm.get('fromAddressLine1').disable();\r\n\r\n var postcode = this.postcodes.find(pc => pc.postcode == this.user.postcode);\r\n if(postcode){\r\n this.buyPostageAddressesForm.get('fromTownCity').setValue(postcode.city, { emitEvent: false });\r\n this.buyPostageAddressesForm.get('fromTownCity').disable();\r\n\r\n this.buyPostageAddressesForm.get('fromPostcode').setValue(postcode.postcode, { emitEvent: false });\r\n this.buyPostageAddressesForm.get('fromPostcode').disable();\r\n }\r\n }\r\n else{\r\n this.buyPostageAddressesForm.get('fromFirstName').enable();\r\n this.buyPostageAddressesForm.get('fromLastName').enable();\r\n this.buyPostageAddressesForm.get('fromContactCountryCode').enable();\r\n this.buyPostageAddressesForm.get('fromContactNum').enable();\r\n this.buyPostageAddressesForm.get('fromAddressLine1').enable();\r\n this.buyPostageAddressesForm.get('fromPostcode').enable();\r\n this.buyPostageAddressesForm.get('fromTownCity').enable();\r\n this.buyPostageAddressesForm.get('fromContactCountryCode').enable();\r\n }\r\n }\r\n\r\n public addressFieldClick(isToAddress: boolean) {\r\n this.addressService.getAll().subscribe((x) => {\r\n this.addresses = x;\r\n if(isToAddress){\r\n this.toFilteredAddresses = this.toAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n ) \r\n }\r\n else{\r\n this.fromFilteredAddresses = this.fromAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n ) \r\n }\r\n });\r\n }\r\n private _filter(value: string): Array
{\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.addresses.filter(option => `${option.firstName} ${option.lastName}, ${option.postcode}`.toLowerCase().includes(filterValue));\r\n }\r\n \r\n displayAddress(address: Address): string {\r\n return address && `${address.firstName} ${address.lastName}, ${address.postcode}` ? `${address.firstName} ${address.lastName}, ${address.postcode}` : '';\r\n }\r\n\r\n attemptedToProgress: boolean;\r\n\r\n noEmailOrAccount(){\r\n return !(this.isLoggedIn || this.emailForm.valid) && this.attemptedToProgress;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.from' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{address.firstName}} {{address.lastName}}, {{address.postcode}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {{postcode.postcode}}\r\n \r\n \r\n \r\n \r\n \r\n {{postcode.city}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'buy_postage.notification_preferences' | translate}}

\r\n
\r\n
\r\n \r\n \r\n
{{ 'buy_postage.email_pref' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{ 'buy_postage.sms_pref' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.to' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{address.firstName}} {{address.lastName}}, {{address.postcode}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n *{{'buy_postage.privacy_policy_label' | translate}} {{'buy_postage.privacy_policy_link' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { last } from 'lodash';\r\nimport { Country } from './../../../../account/entities/Country';\r\nimport { Postage } from './../../../entities/postage';\r\nimport { CustomShipmentType } from './../../../../shared/entities/customShipmentType';\r\nimport { TranslationHelper } from './../../../../shared/helpers/translation-helper';\r\nimport { CountryGroup } from './../../../../shared/price-matrix/entities/CountryGroup';\r\nimport { TransportType } from './../../../../shared/price-matrix/entities/TransportType';\r\nimport { CustomsItemType } from './../../../entities/CustomsItemType';\r\nimport { CustomShipmentTypeService } from './../../../../shared/services/custom-shipment-types.service';\r\nimport { CountryService } from './../../../../shared/services/country.service';\r\nimport { BuyPostageItemTypesComponent } from '../buy-postage-item-types/buy-postage-item-types.component';\r\nimport { ErrorHelper } from '../../../../shared/helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-buy-postage-customs',\r\n templateUrl: './buy-postage-customs.component.html',\r\n styleUrls: ['./buy-postage-customs.component.scss']\r\n})\r\nexport class BuyPostageCustomsComponent implements OnInit {\r\n\r\n @Input()\r\n buyPostageForm: FormGroup;\r\n @Input()\r\n buyPostageAddressesForm: FormGroup;\r\n @Input()\r\n buyPostageCustomsForm: FormGroup;\r\n \r\n @Input()\r\n fromTo: CountryGroup;\r\n @Input()\r\n size: TransportType;\r\n @Input()\r\n price: number;\r\n\r\n postageItem: Postage;\r\n\r\n loadingPayment: boolean = false;\r\n\r\n @Input()\r\n itemTypes: CustomsItemType[];\r\n\r\n weightLimit: number;\r\n weightIsKg: boolean;\r\n\r\n @Output()\r\n backButtonSelected: EventEmitter = new EventEmitter();\r\n @Output()\r\n paymentEvent: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild(BuyPostageItemTypesComponent) itemTypesComponent!: BuyPostageItemTypesComponent;\r\n\r\n public shipmentTypes: Array;\r\n selectedShipmentType: CustomShipmentType;\r\n otherSelected: boolean;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private translateHelper: TranslationHelper,\r\n private customShipmentTypeService: CustomShipmentTypeService,\r\n private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n this.postageItem = {\r\n fromTo: this.translateHelper.getTranslation(this.fromTo.Name),\r\n weight: this.buyPostageForm.get('weight').value,\r\n sizeName: this.translateHelper.getTranslation(this.size.Name),\r\n sizeDescription: this.translateHelper.getTranslation(this.size.Description),\r\n price: this.price,\r\n reference: \"\"\r\n }\r\n\r\n var weightText : string = this.buyPostageForm.get('weight').value;\r\n var hyphenIndex = weightText.indexOf('-');\r\n if(hyphenIndex){\r\n weightText = weightText.substring(hyphenIndex + 1);\r\n }\r\n if(weightText.endsWith('kg')){\r\n weightText = weightText.substring(0, weightText.length - 2);\r\n this.weightIsKg = true;\r\n }\r\n else if(weightText.endsWith('g')){\r\n weightText = weightText.substring(0, weightText.length - 1)\r\n }\r\n this.weightLimit = parseInt(weightText);\r\n if(!this.weightIsKg){\r\n this.weightLimit = this.weightLimit / 1000;\r\n }\r\n\r\n this.customShipmentTypeService.getAll().subscribe(x => {\r\n this.shipmentTypes = x;\r\n });\r\n \r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.buyPostageCustomsForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.buyPostageCustomsForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n getAddressValue(fieldId){\r\n if(fieldId == 'fromContactName'){\r\n var first = this.buyPostageAddressesForm.get('fromFirstName')?.value;\r\n var second = this.buyPostageAddressesForm.get('fromLastName')?.value;\r\n return `${first} ${second}`;\r\n }\r\n else if(fieldId == 'toContactName'){\r\n var first = this.buyPostageAddressesForm.get('toFirstName')?.value;\r\n var second = this.buyPostageAddressesForm.get('toLastName')?.value;\r\n return `${first} ${second}`;\r\n } \r\n else if(fieldId == 'toCountry'){\r\n var country = this.buyPostageAddressesForm.get('toCountry')?.value;\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n } \r\n return this.buyPostageAddressesForm.get(fieldId)?.value;\r\n }\r\n\r\n public getCustomsShipmentTypeName(shipmentType: CustomShipmentType) {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return `${shipmentType.customsShipmentTypeNameEN}`;\r\n case \"fo\":\r\n return `${shipmentType.customsShipmentTypeNameFO}`;\r\n }\r\n }\r\n\r\n goToPreviousPage(){\r\n this.backButtonSelected.emit(true);\r\n }\r\n\r\n goToNextPage(){\r\n if(this.checkProceedDisabled() || this.loadingPayment){\r\n this.buyPostageCustomsForm.markAllAsTouched();\r\n return;\r\n }\r\n this.paymentEvent.emit([this.postageItem]);\r\n }\r\n\r\n getTotalWeight(){\r\n var weight = 0;\r\n this.itemTypes.forEach(element => {\r\n if(+element.netWeight){\r\n weight += (+element.netWeight);\r\n }\r\n });\r\n if(weight){\r\n return weight;\r\n }\r\n return 0;\r\n }\r\n getTotalWeightText(){\r\n return this.translateHelper.getNumberString(this.getTotalWeight());\r\n }\r\n\r\n getTotalValue(){\r\n var value = 0;\r\n this.itemTypes.forEach(element => {\r\n if(+element.value){\r\n value += element.value;\r\n }\r\n });\r\n if(value){\r\n return value;\r\n }\r\n return 0;\r\n }\r\n\r\n getTotalValueText(){\r\n return this.translateHelper.getNumberString(this.getTotalValue());\r\n }\r\n\r\n public onSelectCommerical(event: any, shipmentType: CustomShipmentType) {\r\n //If purchase / commerical\r\n if (shipmentType.customsShipmentTypeId == 999) {\r\n this.otherSelected = true;\r\n this.buyPostageCustomsForm.get('shipmentTypeOther').enable();\r\n }\r\n else{\r\n this.otherSelected = false;\r\n this.buyPostageCustomsForm.get('shipmentTypeOther').disable();\r\n }\r\n this.buyPostageCustomsForm.get('shipmentType').setValue(shipmentType.customsShipmentTypeId)\r\n }\r\n\r\n public checkPurchaseCommercial(shipmentType: CustomShipmentType) {\r\n var field = this.buyPostageCustomsForm.get('shipmentType');\r\n if (!!field) {\r\n if (field.value == shipmentType.customsShipmentTypeId) {\r\n return true;\r\n }\r\n }\r\n else if (shipmentType.customsShipmentTypeId == 1) {\r\n return true;\r\n }\r\n return undefined;\r\n }\r\n\r\n clearAll(){\r\n this.itemTypes = [new CustomsItemType()];\r\n }\r\n\r\n checkProceedDisabled(){\r\n var disabled = (!this.buyPostageCustomsForm.valid) || this.weightTooHigh();\r\n if(!this.itemTypesComponent.CheckValid()){\r\n disabled = true;\r\n }\r\n return disabled;\r\n }\r\n\r\n weightTooHigh(){\r\n return this.weightLimit < this.getTotalWeight();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'buy_postage.postage_one' | translate}}

\r\n
\r\n
\r\n
\r\n

{{'buy_postage.from_to' | translate}}

\r\n
\r\n
\r\n {{'buy_postage.international' | translate}}\r\n
\r\n
\r\n

{{'buy_postage.from' | translate}}

\r\n
{{getAddressValue('fromContactName')}}
\r\n
{{getAddressValue('fromAddressLine1')}}
\r\n
\r\n
{{getAddressValue('fromTownCity')}}
\r\n
{{getAddressValue('fromPostcode')}}
\r\n
{{'buy_postage.faroe_islands' | translate}}
\r\n
{{getAddressValue('fromContactNum')}}
\r\n
\r\n
\r\n

{{'buy_postage.to' | translate}}

\r\n
{{getAddressValue('toContactName')}}
\r\n
{{getAddressValue('toAddressLine1')}}
\r\n
{{getAddressValue('toAddressLine2')}}
\r\n
{{getAddressValue('toTownCity')}}
\r\n
{{getAddressValue('toPostcode')}}
\r\n
{{getAddressValue('toCountry')}}
\r\n
{{getAddressValue('toContactNum')}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.contents' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.type' | translate}}

\r\n
{{'buy_postage.goods' | translate}}
\r\n
\r\n
\r\n

{{'buy_postage.weight' | translate}}

\r\n
{{postageItem.weight}}
\r\n
\r\n
\r\n

{{'buy_postage.size' | translate}}

\r\n
{{postageItem.sizeName}}: {{postageItem.sizeDescription}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.secondary_page.price' | translate}}

\r\n
\r\n
\r\n {{postageItem.price | currency: 'DKK':''}} DKK\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.secondary_page.your_ref' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.customs_information' | translate}}

\r\n \r\n
\r\n
\r\n

{{'buy_postage.type_of_shipment' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'buy_postage.total_gross_weight' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
kg
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{'buy_postage.total_value' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n DKK\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{'buy_postage.secondary_page.total' | translate}} {{postageItem.price | currency: 'DKK':''}} DKK

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Country } from './../../../../account/entities/Country';\r\nimport { CustomsItemType } from './../../../entities/CustomsItemType';\r\nimport { CountryService } from './../../../../shared/services/country.service';\r\nimport { ItemTypeComponent } from './item-type/item-type.component'\r\n\r\n@Component({\r\n selector: 'app-buy-postage-item-types',\r\n templateUrl: './buy-postage-item-types.component.html',\r\n styleUrls: ['./buy-postage-item-types.component.scss']\r\n})\r\nexport class BuyPostageItemTypesComponent implements OnInit {\r\n\r\n _itemTypes: CustomsItemType[];\r\n @Output() itemTypesChange: EventEmitter = new EventEmitter();\r\n @Input() \r\n set itemTypes(value : CustomsItemType[]) {\r\n this._itemTypes = value;\r\n } \r\n get itemTypes() : CustomsItemType[]{\r\n return this._itemTypes;\r\n }\r\n\r\n @ViewChildren(ItemTypeComponent) itemTypeComponents!: QueryList;\r\n\r\n public CheckValid(){\r\n var isValid = true;\r\n if(this.itemTypeComponents){\r\n this.itemTypeComponents.forEach(child => {\r\n isValid = isValid && child.CheckValidity();\r\n });\r\n }\r\n return isValid;\r\n }\r\n\r\n countries: Array;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private countryService: CountryService,) { }\r\n\r\n ngOnInit(): void {\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x;\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n this.countries.sort((a, b) => a.countryNameEN.localeCompare(b.countryNameEN))\r\n case \"fo\":\r\n this.countries.sort((a, b) => a.countryNameFO.localeCompare(b.countryNameFO))\r\n }\r\n\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n });\r\n }\r\n\r\n addItemType(){\r\n this.itemTypes.push(new CustomsItemType());\r\n this.itemTypesChange.emit(this.itemTypes);\r\n }\r\n\r\n deleteItemType(index){\r\n this.itemTypes.splice(index, 1);\r\n }\r\n\r\n}\r\n","

{{'send_receive.send_receive.step_three.item_specification' | translate}}

\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Country } from './../../../../../account/entities/Country';\r\nimport { CustomsItemType } from './../../../../../send-receive/entities/CustomsItemType';\r\nimport { ErrorHelper } from './../../../../../shared/helpers/error-helper';\r\nimport { TranslationHelper } from './../../../../../shared/helpers/translation-helper';\r\n\r\n@Component({\r\n selector: 'app-item-type',\r\n templateUrl: './item-type.component.html',\r\n styleUrls: ['./item-type.component.scss']\r\n})\r\nexport class ItemTypeComponent implements OnInit {\r\n\r\n constructor(private formBuilder: FormBuilder, private errorHelper: ErrorHelper,\r\n private translate: TranslateService, private translateHelper: TranslationHelper) { }\r\n\r\n @Input()\r\n countries: Array;\r\n\r\n @Input()\r\n index: number;\r\n \r\n @Input() itemType!: CustomsItemType;\r\n @Output() itemTypeChange = new EventEmitter();\r\n @Output() delete = new EventEmitter();\r\n\r\n public CheckValidity(){\r\n this.itemTypeForm.markAllAsTouched();\r\n return this.itemTypeForm.valid;\r\n }\r\n\r\n itemTypeForm: FormGroup;\r\n\r\n public hasErrors(field) {\r\n var errors = this.itemTypeForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.itemTypeForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.itemTypeForm = this.formBuilder.group({\r\n description: [this.itemType.description, [Validators.required, Validators.maxLength(100)]],\r\n quantity: [this.itemType.quantity, [Validators.required, Validators.min(1), ErrorHelper.integerOnlyValidator]],\r\n weight: [this.itemType.netWeight, [Validators.required, ErrorHelper.numberOnlyValidator]],\r\n value: [this.itemType.value, [Validators.required, ErrorHelper.numberOnlyValidator]],\r\n country: [this.itemType.countryOfOrigin, []],\r\n tariffNo: [this.itemType.hsTariffNo, []]\r\n });\r\n\r\n this.translate.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.itemTypeForm.get(`weight`));\r\n this.translateHelper.convertNumberField(this.itemTypeForm.get(`value`));\r\n });\r\n\r\n this.itemTypeForm.get('description').valueChanges.subscribe((newValue) => this.itemType.description = newValue);\r\n this.itemTypeForm.get('quantity').valueChanges.subscribe((newValue) => this.itemType.quantity = newValue);\r\n this.itemTypeForm.get('weight').valueChanges.subscribe((newValue) => \r\n {\r\n this.translateHelper.formatNumberField(this.itemTypeForm.get('weight'));\r\n var weight = this.translateHelper.getNumber(newValue);\r\n this.itemType.netWeight = +(this.itemType.isKg ? weight : weight / 1000);\r\n \r\n });\r\n this.itemTypeForm.get('value').valueChanges.subscribe((newValue) => \r\n {\r\n this.translateHelper.formatNumberField(this.itemTypeForm.get('value'));\r\n this.itemType.value = this.translateHelper.getNumber(newValue);\r\n });\r\n this.itemTypeForm.get('country').valueChanges.subscribe((newValue) => this.itemType.countryOfOrigin = newValue);\r\n this.itemTypeForm.get('tariffNo').valueChanges.subscribe((newValue) => this.itemType.hsTariffNo = newValue);\r\n }\r\n \r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n toggleKg(isKG: boolean){\r\n this.itemType.isKg = isKG;\r\n var weight = this.translateHelper.getNumber(this.itemTypeForm.get('weight').value);\r\n this.itemType.netWeight = +(this.itemType.isKg ? weight : weight / 1000);\r\n }\r\n\r\n public deleteType(){\r\n this.delete.emit();\r\n }\r\n \r\n\r\n}\r\n","
\r\n
\r\n
\r\n
{{'buy_postage.item_type' | translate}} {{index + 1}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
{{'buy_postage.description_of_content' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'buy_postage.quantity' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'buy_postage.net_weight' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'buy_postage.value' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n DKK\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'buy_postage.country_of_origin' | translate}}\r\n \r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n
\r\n
\r\n {{'buy_postage.tariff_no' | translate}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from './../../../../account/services/authentication.service';\r\nimport { RoleService } from './../../../../account/services/role.service';\r\nimport { ErrorHelper } from './../../../../shared/helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-inline-login',\r\n templateUrl: './inline-login.component.html',\r\n styleUrls: ['./inline-login.component.scss']\r\n})\r\nexport class InlineLoginComponent implements OnInit {\r\n\r\n @Input() buyPostageForm: FormGroup;\r\n @Output() onLoggedIn: EventEmitter = new EventEmitter();\r\n isLoggedIn: boolean;\r\n \r\n isGuest: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n public translate: TranslateService,\r\n private roleService: RoleService,\r\n private _formBuilder: FormBuilder,\r\n private errorHelper: ErrorHelper,\r\n private authenticationService: AuthenticationService,) { }\r\n\r\n ngOnInit(): void {\r\n this.roleService.roleSubject.subscribe(x => {\r\n this.role = x;\r\n });\r\n\r\n this.passwordForm = this._formBuilder.group({\r\n email: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n }\r\n\r\n public role: string;\r\n public passwordForm: FormGroup;\r\n\r\n public navigateToForgottenPassword()\r\n {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/forgotten-password`]);\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.passwordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.passwordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public login() {\r\n if (!this.passwordForm.valid) {\r\n this.passwordForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.role == \"private\") {\r\n this.authenticationService.login(this.passwordForm.get(\"email\").value, this.passwordForm.get(\"password\").value, 2, this.translate.currentLang).subscribe\r\n (x => {\r\n this.passwordForm.reset();\r\n this.onLoggedIn.emit(true);\r\n var userDetails = JSON.parse(x.toString());\r\n if (!userDetails.isVerified) {\r\n if (userDetails.isEmailVerificationMessageJustBeenSent)\r\n {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/awaiting-verification/email-sent`]);\r\n return;\r\n }\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/awaiting-verification/`]);\r\n return;\r\n }\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/update-profile`]);\r\n return;\r\n }\r\n this.isLoggedIn = true;\r\n }, (error) => {\r\n this.passwordForm.get(\"password\").setErrors({ 'incorrectCredentials': true })\r\n })\r\n }\r\n\r\n if (this.role == \"business\") {\r\n this.authenticationService.login(this.passwordForm.get(\"email\").value, this.passwordForm.get(\"password\").value, 1, this.translate.currentLang).subscribe\r\n (x => {\r\n this.passwordForm.reset();\r\n this.onLoggedIn.emit(true);\r\n var userDetails = JSON.parse(x.toString());\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translate.currentLang}/business/my-posta/update-profile`]);\r\n return;\r\n }\r\n this.isLoggedIn = true;\r\n }, (error) => {\r\n if (error.status == 403)\r\n {\r\n this.router.navigate([`${this.translate.currentLang}/business/awaiting-approval`]);\r\n return;\r\n }\r\n this.passwordForm.get(\"password\").setErrors({ 'incorrectCredentials': true })\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.existing_users_description' | translate}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.existing_users_instruction' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'buy_postage.guest_description' | translate}}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","export class CustomsItemType{\r\n itemTypeId: number;\r\n itemId: number;\r\n description: string;\r\n quantity: number;\r\n netWeight: number;\r\n value: number;\r\n countryOfOrigin: string;\r\n hsTariffNo: string;\r\n isKg: boolean;\r\n}","export class DefaultShipmentDimensions\r\n{\r\n length: number;\r\n width: number;\r\n height: number;\r\n volume: number;\r\n}","import { Invoice } from \"../../shared/entities/Invoice\";\r\nimport { OrderService } from \"./OrderService\";\r\nimport { Parcel } from \"./parcel\";\r\nimport { InvoiceLine } from \"./InvoiceLine\";\r\nimport { OrderLetter } from \"./OrderLetter\";\r\nimport { CustomsItemType } from \"./CustomsItemType\";\r\n\r\nexport class Order {\r\n orderStateId: number;\r\n orderReference?: string;\r\n customsShipmentTypeId?: number;\r\n productTypeId: number;\r\n isPaid?: boolean;\r\n externalId?: string;\r\n isDirectBooking?: boolean;\r\n trackingCode?: string;\r\n paymentCodes?: Array;\r\n\r\n fromTitle: string;\r\n fromFirstName: string;\r\n fromLastName: string;\r\n fromCompanyName: string;\r\n fromAddressLine1: string;\r\n fromAddressLine2: string;\r\n fromTownCity: string;\r\n fromPostcode: string;\r\n fromCountryCode: string;\r\n fromContactNumber: string;\r\n fromContactEmail: string;\r\n fromSpecialInstructions: string;\r\n\r\n toTitle: string;\r\n toFirstName: string;\r\n toLastName: string;\r\n toCompanyName: string;\r\n toAddressLine1: string;\r\n toAddressLine2: string;\r\n toTownCity: string;\r\n toPostcode: string;\r\n toCountryCode: string;\r\n toContactNumber: string;\r\n toContactEmail: string;\r\n toSpecialInstructions: string;\r\n\r\n senderNamePostaDepot: string;\r\n isFromPostaDepot: boolean;\r\n isToPostaDepot: boolean;\r\n isFromAccountAddress: boolean;\r\n isToAccountAddress: boolean;\r\n insuranceSelected: boolean;\r\n\r\n customerReference: string;\r\n weight: number;\r\n valueOfGoods: number;\r\n volume: number;\r\n collectionDate?: Date;\r\n definitionOfGoods?: string;\r\n comments?: string;\r\n domesticPackageContents?: string;\r\n \r\n estimatedDeliveryDate?: Date;\r\n isInvoiceRequired?: boolean;\r\n totalCost?: number;\r\n customsClearanceExtraJson?: string;\r\n incoTermsCode?: string;\r\n\r\n service: OrderService;\r\n parcels: Array;\r\n letters?: Array;\r\n invoices?: Array;\r\n invoiceLines?: Array;\r\n\r\n attemptedPaymentYN: boolean;\r\n barcodePrefix: string;\r\n isCreateTrackTraceRegistration?: boolean;\r\n isVatIncluded: boolean;\r\n vatAmount?: number;\r\n\r\n languageCode: string;\r\n orderReferenceOther?: string;\r\n\r\n isCDSFiled?: boolean;\r\n barcode?: string;\r\n\r\n customsItemTypes: CustomsItemType[]\r\n}","export class Parcel {\r\n length?: number;\r\n width?: number;\r\n height?: number;\r\n parcelNo: number;\r\n sameAsPrevious?: boolean;\r\n unknownDimensions?: boolean;\r\n}\r\n","import { Property } from \"../../shared/price-matrix/entities/property\";\r\nimport { TranslationString } from \"../../shared/price-matrix/entities/TranslationString\";\r\nimport { ProductType } from \"../../shared/price-matrix/enums/ProductType\";\r\n\r\n\r\nexport class ServiceOption {\r\n Key: number;\r\n Name: TranslationString;\r\n Cost: number;\r\n VATCost: number;\r\n InsuranceCost?: number;\r\n DeliveryDays: string;\r\n Description: TranslationString;\r\n IconPath: string;\r\n Properties: Array;\r\n MinDeliveryDays: number;\r\n ProductType: ProductType;\r\n ManagedCustomCost?: number;\r\n ManagedCustomCostJson?: string;\r\n BarcodePrefix: string;\r\n isVatIncluded: boolean;\r\n}\r\n\r\nexport class TestServiceOption {\r\n Key: number;\r\n Name: TranslationString;\r\n Cost: number;\r\n InsuranceCost?: number;\r\n DeliveryDays: string;\r\n Description: TranslationString;\r\n IconPath: string;\r\n KeyIconPaths: Array;\r\n MinDeliveryDays: number;\r\n ProductType: ProductType;\r\n ManagedCustomCost?: number;\r\n ManagedCustomCostJson?: string;\r\n BarcodePrefix: string;\r\n UsingWeightPivotPoint: boolean;\r\n BaseIncludeVAT: boolean;\r\n BasePrice: number;\r\n BasePriceVAT: number = 0;\r\n BaseCostOverride: number;\r\n AdditionalVolumeCost: number;\r\n AdditionalWeightCost: any;\r\n IncoTermBasePrice: Array = new Array();\r\n IncoTermWeightCost: Array = new Array();\r\n IncoTermVATCost: Array = new Array();\r\n IncoTermVolumeCost: Array = new Array();\r\n IncoTermValueCost: Array = new Array();\r\n TotalIncoTermCost: number = 0;\r\n InsuranceWeightCost: Array = new Array();\r\n InsuranceValueCost: Array = new Array();\r\n InsuranceVolumeCost: Array = new Array();\r\n TotalInsuranceCost: number = 0;\r\n InsuranceVAT: number = 0;\r\n InsuranceBasePrice: Array = new Array();\r\n TotalBaseCost: number;\r\n IsDHL?: boolean;\r\n}\r\n","import { TrackTraceItem } from './trackTraceItem'\r\n\r\nexport class TrackTraceItemArray {\r\n showItem: boolean;\r\n items: Array> = new Array>();\r\n\r\n}","export enum OrderState {\r\n Quote = 1,\r\n Order,\r\n Paid,\r\n Shipped,\r\n Delivered\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FindServiceOptionDetails } from '../../../../shared/price-matrix/entities/FindServiceOptionDetails';\r\nimport { TranslationString } from '../../../../shared/price-matrix/entities/TranslationString';\r\nimport { TransportType } from '../../../../shared/price-matrix/entities/TransportType';\r\nimport { ProductType } from '../../../../shared/price-matrix/enums/ProductType';\r\nimport { WeightBoundary } from '../../entities/weightBoundary';\r\nimport { ServiceType } from '../../../../shared/price-matrix/enums/ServiceType';\r\nimport { PriceMatrixService } from '../../../../shared/price-matrix/services/price-matrix.service';\r\nimport { Country } from '../../../../account/entities/Country';\r\nimport { ServiceOption } from '../../../entities/serviceOption';\r\nimport { ErrorHelper } from '../../../../shared/helpers/error-helper'\r\nimport { TranslationHelper } from '../../../../shared/helpers/translation-helper';\r\nimport { StaticContentHelper } from '../../../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../../../shared/services/static-content.service';\r\nimport { RoleService } from '../../../../account/services/role.service';\r\nimport { Role } from '../../../../shared/price-matrix/enums/Role';\r\n\r\n@Component({\r\n selector: 'app-find-prices',\r\n templateUrl: './find-prices.component.html',\r\n styleUrls: ['./find-prices.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FindPricesComponent implements OnInit, AfterViewInit {\r\n vatCost: number = 0;\r\n observer: MutationObserver;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private priceMatrixService: PriceMatrixService,\r\n private route: ActivatedRoute,\r\n private translateHelper: TranslationHelper,\r\n private translateService: TranslateService,\r\n private errorHelper: ErrorHelper,\r\n private staticContentService: StaticContentService,\r\n private ref: ChangeDetectorRef,\r\n private roleService: RoleService,\r\n private elRef: ElementRef) { }\r\n\r\n findPriceFormGroup: FormGroup;\r\n\r\n countries: Array = new Array();\r\n\r\n public isParcelSelected: boolean = false;\r\n\r\n public isShipmentSelected: boolean = false;\r\n\r\n public isLetterSelected: boolean = false;\r\n\r\n public showPrices: boolean = false;\r\n\r\n public numberOfPalettesSelected: boolean = false;\r\n\r\n public serviceOptions: Array = new Array();\r\n\r\n public productType: ProductType;\r\n\r\n public weightOptions: Array = new Array();\r\n\r\n weightBoundariesRawValues: Array = new Array();\r\n\r\n weightBoundaries: Array = new Array();\r\n\r\n parcelWeightBoundariesRawValues: Array = new Array();\r\n\r\n parcelWeightBoundaries: Array = new Array();\r\n\r\n public letterSizes: Array = new Array();\r\n\r\n public selectedWeightIndex: Number;\r\n\r\n public currentFromCountryCode: string = \"FO\";\r\n\r\n public palleteSelected: boolean = false;\r\n\r\n public image: string;\r\n\r\n interval: any;\r\n\r\n pageTitle: string;\r\n\r\n pageModules: string;\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.image = this.staticContentService.getImageForPsModule();\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n if (!!this.image)\r\n {\r\n clearInterval(this.interval);\r\n }\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.image = this.staticContentService.getImageForPsModule();\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n this.ref.detectChanges();\r\n }\r\n }, 500);\r\n\r\n this.priceMatrixService.getLetterSizes().subscribe(x => {\r\n this.letterSizes = x;\r\n });\r\n\r\n this.priceMatrixService.getBuyPostageWeightBoundaries().subscribe(x => {\r\n for (let i = 0; i < x.length; i++) {\r\n\r\n //first item so prefix with 0\r\n if (i == 0) {\r\n var weightBoundary: WeightBoundary = {\r\n name: `0-${x[i]}g`,\r\n index: i\r\n }\r\n\r\n this.weightBoundaries.push(weightBoundary);\r\n }\r\n else {\r\n var weightBoundary: WeightBoundary = {\r\n name: `${x[i - 1] + 1}-${x[i]}g`,\r\n index: i\r\n }\r\n\r\n this.weightBoundaries.push(weightBoundary)\r\n }\r\n }\r\n this.weightBoundariesRawValues = x;\r\n this.weightBoundariesRawValues.unshift(0);\r\n })\r\n\r\n this.priceMatrixService.getBuyPostageWeightBoundaries().subscribe(x => {\r\n var weightInKgValues = x.map(function (x) { return x / 1000; });\r\n for (let i = 0; i < x.length; i++) {\r\n //first item so prefix with 0\r\n if (i == 0) {\r\n var weightBoundary: WeightBoundary = {\r\n name: `0-${weightInKgValues[i]}kg`,\r\n index: i\r\n }\r\n\r\n this.parcelWeightBoundaries.push(weightBoundary);\r\n }\r\n else {\r\n var weightBoundary: WeightBoundary = {\r\n name: `${(weightInKgValues[i - 1] + 0.01).toFixed(2)}-${weightInKgValues[i]}kg`,\r\n index: i\r\n }\r\n\r\n this.parcelWeightBoundaries.push(weightBoundary)\r\n }\r\n }\r\n this.parcelWeightBoundariesRawValues = x;\r\n this.parcelWeightBoundariesRawValues.unshift(0);\r\n })\r\n\r\n this.countries = this.route.snapshot.data.countries;\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countries.sort((a, b) => a.countryNameEN.localeCompare(b.countryNameEN))\r\n case \"fo\":\r\n this.countries.sort((a, b) => a.countryNameFO.localeCompare(b.countryNameFO))\r\n }\r\n this.countries.sort(function (x, y) { return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function (x, y) { return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n\r\n this.findPriceFormGroup = this._formBuilder.group({\r\n fromCountry: ['', Validators.required],\r\n toCountry: ['', Validators.required],\r\n parcel: ['', Validators.required],\r\n largeShipment: ['', Validators.required],\r\n letter: ['', Validators.required],\r\n // min validator removed due to dropdown input giving error when range starts at 0\r\n weight: ['', Validators.required],\r\n // volume: ['', Validators.required],\r\n numberOfPalettes: ['', Validators.required]\r\n });\r\n\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.findPriceFormGroup.get(`weight`));\r\n });\r\n\r\n this.findPriceFormGroup.get(`weight`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.findPriceFormGroup.get('weight'));\r\n });\r\n\r\n this.findPriceFormGroup.valueChanges.subscribe(value => {\r\n if (this.showPrices = true) {\r\n this.showPrices = false;\r\n }\r\n });\r\n\r\n this.findPriceFormGroup.get(\"numberOfPalettes\").disable();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.findPriceFormGroup.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.findPriceFormGroup.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public getLetterSizeNameForLanguage(letterName: TranslationString, description: TranslationString): string {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${letterName.EN} (${description.EN})`;\r\n case \"fo\":\r\n return `${letterName.FO} (${description.FO})`;\r\n }\r\n }\r\n\r\n public getPrices() {\r\n\r\n this.serviceOptions = new Array();\r\n\r\n const letterControl = this.findPriceFormGroup.get(\"letter\");\r\n const parcelControl = this.findPriceFormGroup.get('parcel');\r\n const shipmentControl = this.findPriceFormGroup.get(\"largeShipment\");\r\n\r\n this.findPriceFormGroup.markAllAsTouched();\r\n\r\n if (this.isParcelSelected) {\r\n letterControl.disable();\r\n shipmentControl.disable();\r\n parcelControl.setErrors(null);\r\n letterControl.markAsUntouched();\r\n }\r\n if (this.isShipmentSelected) {\r\n letterControl.disable();\r\n parcelControl.disable();\r\n shipmentControl.setErrors(null);\r\n letterControl.markAsUntouched();\r\n }\r\n if (this.isLetterSelected) {\r\n shipmentControl.disable();\r\n parcelControl.disable();\r\n }\r\n\r\n if (this.findPriceFormGroup.valid) {\r\n\r\n letterControl.enable();\r\n shipmentControl.enable();\r\n parcelControl.enable();\r\n this.findPriceFormGroup.markAsUntouched();\r\n }\r\n else {\r\n letterControl.enable();\r\n shipmentControl.enable();\r\n parcelControl.enable();\r\n }\r\n\r\n var letterSizeTransportId;\r\n var weight = this.translateHelper.getNumber(this.findPriceFormGroup.get(\"weight\").value);\r\n const letterSizeFormControl = this.findPriceFormGroup.get(\"letter\");\r\n if (!!letterSizeFormControl && !!letterSizeFormControl.value) {\r\n const letterSizeTransportType: TransportType = letterSizeFormControl.value;\r\n letterSizeTransportId = letterSizeTransportType.Key;\r\n weight = this.translateHelper.getNumber(this.weightBoundariesRawValues[this.findPriceFormGroup.get(\"weight\").value.index + 1]);\r\n }\r\n else {\r\n weight = this.translateHelper.getNumber(this.parcelWeightBoundariesRawValues[this.findPriceFormGroup.get(\"weight\").value.index + 1]);\r\n }\r\n //weight += 1;\r\n weight /= 1000;\r\n\r\n var serviceOptionDetails: FindServiceOptionDetails = {\r\n FromCountry: this.findPriceFormGroup.get(\"fromCountry\").value.countryCode,\r\n ToCountry: this.findPriceFormGroup.get(\"toCountry\").value.countryCode,\r\n Weight: weight,\r\n ProductType: this.productType,\r\n Value: 0,\r\n // Volume: Number(this.findPriceFormGroup.get('volume').value),\r\n LetterSizeTransportTypeId: letterSizeTransportId,\r\n IsOneParcel: true,\r\n Role: this.roleService.role()\r\n }\r\n\r\n this.priceMatrixService.getServiceOptions(serviceOptionDetails).subscribe(transportTypes => {\r\n //loop through transport types and set fields\r\n\r\n var i: number;\r\n for (i = 0; i < transportTypes.length; i++) {\r\n\r\n // var insuranceCost: number;\r\n // if (!!transportTypes[i].SpecialExtras) {\r\n\r\n // var insuranceExtra = transportTypes[i].SpecialExtras.find(x => x.Key == \"0\");\r\n // if (!!insuranceExtra) {\r\n // insuranceCost = insuranceExtra.BasePrice;\r\n // }\r\n // }\r\n\r\n var minDays = !!transportTypes[i].MinimumDeliveryDays ? transportTypes[i].MinimumDeliveryDays : transportTypes[i].CountryGroups[0].MinimumDeliveryDays;\r\n var maxDays = !!transportTypes[i].MaximumDeliveryDays ? transportTypes[i].MaximumDeliveryDays : transportTypes[i].CountryGroups[0].MaximumDeliveryDays;\r\n\r\n var serviceOption = new ServiceOption();\r\n serviceOption.IconPath = transportTypes[i].IconPath;\r\n serviceOption.Name = transportTypes[i].Name;\r\n serviceOption.Cost = this.getCostForTransportType(transportTypes[i]);\r\n serviceOption.DeliveryDays = `${minDays} - ${maxDays}`;\r\n serviceOption.Description = transportTypes[i].Description;\r\n serviceOption.Properties = transportTypes[i].Properties;\r\n serviceOption.Key = transportTypes[i].Key;\r\n serviceOption.MinDeliveryDays = minDays;\r\n serviceOption.ProductType = transportTypes[i].ProductTypeId;\r\n serviceOption.VATCost = this.vatCost;\r\n // serviceOption.InsuranceCost = insuranceCost;\r\n this.vatCost = 0;\r\n\r\n this.serviceOptions.push(serviceOption);\r\n }\r\n\r\n this.showPrices = true;\r\n });\r\n }\r\n\r\n private getCostForTransportType(transportType: TransportType): number {\r\n //From the backend the country group should only return one item so just look at the first item\r\n if (!!transportType.CountryGroups && transportType.CountryGroups.length > 0) {\r\n const countryGroup = transportType.CountryGroups[0];\r\n var totalCost: number = 0;\r\n //If has base price set it to that otherwise look for the specific parcel range and use the base cost override\r\n if (countryGroup.BasePriceWeight !== 0) {\r\n totalCost = countryGroup.BasePriceWeight\r\n }\r\n else if (countryGroup.BasePriceVolume !== 0) {\r\n totalCost = countryGroup.BasePriceVolume\r\n }\r\n\r\n var weightControl = this.findPriceFormGroup.get(\"weight\").value;\r\n var weightValue;\r\n var indexValue = weightControl.index;\r\n if (this.isLetterSelected)\r\n {\r\n weightValue = this.weightBoundariesRawValues[indexValue];\r\n }\r\n else {\r\n weightValue = this.parcelWeightBoundariesRawValues[indexValue]\r\n }\r\n weightValue += 1;\r\n weightValue /= 1000;\r\n var inputWeight = this.translateHelper.getNumber(weightValue);\r\n\r\n //We can't take into account volume costs as we don't ask for them in find prices\r\n if (!!countryGroup.ParcelRanges) {\r\n var i: number;\r\n for (i = 0; i < countryGroup.ParcelRanges.length; i++) {\r\n const currentParcelRange = countryGroup.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (currentParcelRange.BaseCostOverride > 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n break;\r\n }\r\n }\r\n\r\n //At this point we have the totalcost not including incoterms so now work out if VAT needs to be added on.\r\n //This needs to be done seperately to incoterms as they have VATIncluded as its own flag\r\n if (countryGroup.IncludeVAT || transportType.IncludeVAT)\r\n {\r\n this.vatCost += totalCost*transportType.VATPercentage;\r\n totalCost *= (1+transportType.VATPercentage);\r\n }\r\n }\r\n }\r\n else {\r\n //if no country groups then it's domestic transport or proxy shopping\r\n if (!!transportType.ParcelRanges) {\r\n var i: number;\r\n for (i = 0; i < transportType.ParcelRanges.length; i++) {\r\n const currentParcelRange = transportType.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (totalCost == 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n }\r\n }\r\n\r\n if (transportType.IncludeVAT)\r\n {\r\n this.vatCost += transportType.VATPercentage*totalCost;\r\n totalCost *= (1+transportType.VATPercentage);\r\n }\r\n }\r\n }\r\n\r\n // if (!!insuranceCost) {\r\n // totalCost += insuranceCost;\r\n // }\r\n return totalCost;\r\n }\r\n\r\n public isFromFO() {\r\n if ((this.isParcelSelected || this.isShipmentSelected) && this.currentFromCountryCode !== \"FO\") {\r\n return false;\r\n }\r\n if (!this.findPriceFormGroup.get(\"fromCountry\").value) {\r\n return true;\r\n }\r\n\r\n if (this.findPriceFormGroup.get(\"fromCountry\").value.countryCode == \"FO\") {\r\n return true;\r\n }\r\n else {\r\n this.isLetterSelected = false;\r\n this.findPriceFormGroup.get(\"letter\").reset();\r\n return false;\r\n }\r\n }\r\n\r\n public isFromToCountryFO() {\r\n return (this.findPriceFormGroup.get(\"fromCountry\").value.countryCode == \"FO\" && this.findPriceFormGroup.get(\"toCountry\").value.countryCode == \"FO\")\r\n }\r\n\r\n public enableLetterOptionIfFO(event: Country) {\r\n this.currentFromCountryCode = event.countryCode;\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public clearAll() {\r\n this.findPriceFormGroup.reset();\r\n this.isShipmentSelected = false;\r\n this.isParcelSelected = false;\r\n this.isLetterSelected = false;\r\n }\r\n\r\n public setParcelType(event: any) {\r\n this.isParcelSelected = true;\r\n this.isShipmentSelected = false;\r\n this.isLetterSelected = false;\r\n this.findPriceFormGroup.get('largeShipment').reset();\r\n this.findPriceFormGroup.get('letter').reset();\r\n this.productType = ProductType.Parcel;\r\n }\r\n\r\n public setShipmentType(event: any) {\r\n this.isParcelSelected = false;\r\n this.isShipmentSelected = true;\r\n this.isLetterSelected = false;\r\n this.findPriceFormGroup.get('parcel').reset();\r\n this.findPriceFormGroup.get('letter').reset();\r\n // this.productType = ServiceType.LargeShipment;\r\n }\r\n\r\n public setSizeValue(value: any) {\r\n this.findPriceFormGroup.get('letter').enable();\r\n this.findPriceFormGroup.get('letter').setValue(value.value);\r\n this.isParcelSelected = false;\r\n this.isShipmentSelected = false;\r\n this.isLetterSelected = true;\r\n this.findPriceFormGroup.get('parcel').reset();\r\n this.findPriceFormGroup.get('largeShipment').reset();\r\n this.productType = ProductType.Postage;\r\n\r\n //the volume will be the same no matter which country group or parcel range so just take the first of both.\r\n // this.findPriceFormGroup.get('volume').setValue((this.findPriceFormGroup.get('letter').value as TransportType).CountryGroups[0].ParcelRanges[0].MaxVolume)\r\n }\r\n\r\n public numberPalleteSelected() {\r\n this.findPriceFormGroup.get(\"numberOfPalettes\").enable();\r\n this.palleteSelected = true;\r\n }\r\n\r\n public halfPaletteSelected() {\r\n this.findPriceFormGroup.get(\"numberOfPalettes\").reset();\r\n this.findPriceFormGroup.get(\"numberOfPalettes\").disable();\r\n this.palleteSelected = true;\r\n }\r\n\r\n public getPageTitle() {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'find_prices.from' | translate}}

\r\n
\r\n \r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n

{{'find_prices.to' | translate}}

\r\n
\r\n \r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'find_prices.size' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{getLetterSizeNameForLanguage(letterSize.Name, letterSize.Description)}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'find_prices.size' | translate}}

\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'find_prices.weight' | translate}}

\r\n \r\n
\r\n \r\n \r\n \r\n {{weightOption.name}}\r\n \r\n \r\n \r\n {{parcelWeightOption.name}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { ServiceOption } from '../../../entities/serviceOption';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationString } from '../../../../shared/price-matrix/entities/TranslationString';\r\nimport { AuthenticationService } from '../../../../account/services/authentication.service';\r\nimport { StaticContentService } from '../../../../shared/services/static-content.service';\r\nimport { RoleService } from '../../../../account/services/role.service';\r\nimport { ProductType } from '../../../../shared/price-matrix/enums/ProductType';\r\n\r\n@Component({\r\n selector: 'app-view-prices',\r\n templateUrl: './view-prices.component.html',\r\n styleUrls: ['./view-prices.component.scss']\r\n})\r\nexport class ViewPricesComponent implements OnInit {\r\n\r\n @Input()\r\n findPriceFormGroup: FormGroup;\r\n\r\n @Input()\r\n isShipmentSelected: boolean = false;\r\n\r\n @Input()\r\n isParcelSelected: boolean = false;\r\n\r\n @Input()\r\n serviceOptions: Array;\r\n\r\n @Input()\r\n insuranceSelected: boolean;\r\n\r\n @Input()\r\n stepper: MatStepper\r\n\r\n @Input()\r\n toFromFO: boolean;\r\n\r\n @Output()\r\n chosenServiceOption: EventEmitter = new EventEmitter();\r\n\r\n isLoggedIn: boolean;\r\n\r\n public psModuleContent: any;\r\n\r\n public item1Link: any;\r\n\r\n public item2Link: any;\r\n public item3Link: any;\r\n public item4Link: any;\r\n\r\n interval: any;\r\n\r\n //add PriceMatrixService\r\n constructor(public router: Router,\r\n private translateService: TranslateService,\r\n private authService: AuthenticationService,\r\n private staticContentService: StaticContentService,\r\n private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n console.log(this.serviceOptions);\r\n \r\n this.psModuleContent = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/find-prices')\r\n if (!!this.psModuleContent)\r\n {\r\n this.item1Link = this.psModuleContent.Item1Link;\r\n this.item2Link = this.psModuleContent.Item2Link;\r\n this.item3Link = this.psModuleContent.Item3Link;\r\n this.item4Link = this.psModuleContent.Item4Link;\r\n }\r\n\r\n this.interval = setInterval(() => {\r\n var el = document.getElementsByClassName(\"key-background-container\");\r\n if (!!el && el.length > 0)\r\n {\r\n el[0].scrollIntoView(true);\r\n clearInterval(this.interval);\r\n }\r\n }, 200);\r\n }\r\n\r\n public chooseServiceOption(serviceOption: ServiceOption) {\r\n this.chosenServiceOption.emit(serviceOption);\r\n }\r\n\r\n public navigatetoSendAndReceive() {\r\n\r\n let navigationExtras: NavigationExtras = {\r\n queryParams: {\r\n \"fromCountry\": this.findPriceFormGroup.get(\"fromCountry\").value,\r\n \"toCountry\": this.findPriceFormGroup.get(\"toCountry\").value,\r\n \"isParcel\": this.isParcelSelected,\r\n \"isLargeShipment\": this.isShipmentSelected,\r\n \"letter\": this.findPriceFormGroup.get(\"letter\").value,\r\n \"weight\": this.findPriceFormGroup.get(\"weight\").value,\r\n \"numberOfPalettes\": this.findPriceFormGroup.get(\"numberOfPalettes\").value,\r\n },\r\n };\r\n\r\n if (this.isParcelSelected) {\r\n navigationExtras.queryParams\r\n }\r\n\r\n this.router.navigate([`../${this.translateService.currentLang}/${this.roleService.role()}/send-receive/send-receive`], navigationExtras);\r\n }\r\n\r\n public getNameByLanguage(transportTypeName: TranslationString): string {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return transportTypeName.EN;\r\n case \"fo\":\r\n return transportTypeName.FO;\r\n }\r\n }\r\n\r\n public getIconTextByLanguage(translationName: TranslationString)\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return translationName.EN;\r\n case \"fo\":\r\n return translationName.FO;\r\n }\r\n }\r\n\r\n public openRouteInNewWindow(route: string){\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n\r\n public showPostOfficeButton(productType: ProductType)\r\n {\r\n if (productType == ProductType.Air_Freight || productType == ProductType.Sea_Freight || productType == ProductType.DomesticTransport)\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","
\r\n
\r\n

{{'send_receive.send_receive.service_options.title' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n {{'send_receive.send_receive.service_options.key' | translate}}

\r\n
\r\n \r\n
\r\n
{{'send_receive.send_receive.service_options.drop_off_collection_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.drop_off_name' | translate}}

\r\n {{'send_receive.send_receive.service_options.drop_off_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.collection_name' | translate}}

\r\n {{'send_receive.send_receive.service_options.collection_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{'send_receive.send_receive.service_options.delivery_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

{{'send_receive.send_receive.service_options.delivery_attempt' | translate}}

\r\n {{'send_receive.send_receive.service_options.collect_from_depot' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{'send_receive.send_receive.service_options.guaranteed_delivery' | translate}}

\r\n {{'send_receive.send_receive.service_options.unlimited_attempts_collection' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{'send_receive.send_receive.service_options.track_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

{{'send_receive.send_receive.service_options.track_trace' | translate}}

\r\n {{'send_receive.send_receive.service_options.track_trace_description' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{'send_receive.send_receive.service_options.signature_on_receipt' | translate}}

\r\n {{'send_receive.send_receive.service_options.signature_on_receipt_description' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.service_options.no_service_options_found' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{serviceOption.DeliveryDays}}

\r\n {{'send_receive.send_receive.service_options.days' | translate}}

\r\n \r\n
\r\n \r\n\r\n
\r\n

\r\n {{getNameByLanguage(serviceOption.Name)}}

\r\n
\r\n
\r\n \r\n {{getNameByLanguage(serviceOption.Description)}}\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.from_price_title' |\r\n translate}} {{serviceOption.Cost | numberFormat}}\r\n {{'send_receive.send_receive.service_options.price_per_unit_text' |\r\n translate}}

\r\n

\r\n {{'send_receive.send_receive.service_options.from_price_title' |\r\n translate}} {{serviceOption.Cost | numberFormat}} Kr.

\r\n
\r\n
\r\n 0; else emptyRow\"\r\n class=\"col-lg-9 col-md-9 col-9\">{{'send_receive.send_receive.service_options.include_vat' |\r\n translate}} {{serviceOption.VATCost | numberFormat}} Kr.\r\n  \r\n
\r\n \r\n  \r\n
\r\n
\r\n
\r\n \r\n {{getIconTextByLanguage(property.Name)}}\r\n
\r\n
\r\n \r\n {{'send_receive.send_receive.service_options.no_key_text_1'\r\n | translate}}\r\n
\r\n
\r\n \r\n {{'send_receive.send_receive.service_options.no_key_text_2'\r\n | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectorRef, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CustomShipmentType } from '../../../shared/entities/customShipmentType';\r\nimport { Invoice } from '../../../shared/entities/Invoice';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { StaticContentHelper } from '../../../shared/helpers/static-content-helper';\r\nimport { ProductType } from '../../../shared/price-matrix/enums/ProductType';\r\nimport { CustomShipmentTypeService } from '../../../shared/services/custom-shipment-types.service';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { Order } from '../../entities/Order';\r\nimport { ServiceOption } from '../../entities/serviceOption';\r\nimport { CustomsItemType } from '../../entities/CustomsItemType';\r\nimport { BuyPostageItemTypesComponent } from '../../buy-postage/international-goods/buy-postage-item-types/buy-postage-item-types.component';\r\n\r\n@Component({\r\n selector: 'app-order-details',\r\n templateUrl: './order-details.component.html',\r\n styleUrls: ['./order-details.component.scss']\r\n})\r\nexport class OrderDetailsComponent implements OnInit {\r\n\r\n @Input()\r\n stepper: MatStepper;\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup;\r\n\r\n @Input()\r\n toFromAddressFormGroup: FormGroup;\r\n\r\n @Input()\r\n order: Order;\r\n\r\n @Input()\r\n itemTypes: CustomsItemType[]\r\n\r\n public readyForCollection: boolean = null;\r\n\r\n public otherSelected: boolean = false;\r\n\r\n public today: Date = new Date();\r\n\r\n public clearFiles: boolean = false;\r\n\r\n public shipmentTypes: Array;\r\n\r\n public existingOrderNotReadyForCollection: boolean;\r\n\r\n public existingOrderReadyForCollection: boolean;\r\n\r\n public existingOrderInvoices: Array;\r\n\r\n public managedCustomsClearanceChecked: boolean = false;\r\n\r\n public filesToRemove: Array;\r\n\r\n public filesToAdd: Array;\r\n\r\n public linkItem1: any;\r\n\r\n public linkItem2: any;\r\n\r\n public collectionOption: any;\r\n\r\n public showCustomsInformation1: boolean = true;\r\n public showTypeOfShipment: boolean = true;\r\n public showUploadInvoice: boolean = true;\r\n public showIsReadyForCollection: boolean = true;\r\n public showManagedCustomsClearance: boolean = true;\r\n public showItemTypes: boolean = true;\r\n\r\n @ViewChild(BuyPostageItemTypesComponent) itemTypesComponent!: BuyPostageItemTypesComponent;\r\n\r\n @Output()\r\n public onClear: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n showRequiredError: boolean;\r\n\r\n @Input()\r\n fromDepot: boolean;\r\n\r\n @Input()\r\n toDepot: boolean;\r\n\r\n @Input()\r\n serviceOption: ServiceOption;\r\n\r\n @Input()\r\n hideOrderDetails: boolean;\r\n\r\n managedCustomCost: number;\r\n\r\n toFromIsFO: boolean = false;\r\n\r\n currentToCountryCode: string;\r\n\r\n currentFromCountryCode: string;\r\n\r\n @Output()\r\n public customsClearanceSelected: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public uploadedFiles: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public selectedShipmentType: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n psModule: any;\r\n\r\n @Input()\r\n totalCost: number;\r\n\r\n constructor(private customShipmentTypeService: CustomShipmentTypeService, private translateService: TranslateService, private errorHelper: ErrorHelper, private staticContentService: StaticContentService, private router: Router) {\r\n const newDate = new Date();\r\n this.today.setDate(newDate.getDate());\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.sendReceiveForm.get(\"shipmentTypeOther\").disable();\r\n\r\n this.customShipmentTypeService.getAll().subscribe(x => {\r\n this.shipmentTypes = x;\r\n\r\n // Any status above 1 means it's not a quote and will have a value\r\n if (!!this.order && this.order.orderStateId > 1) {\r\n var orderShipmentType = this.shipmentTypes.find(x => x.customsShipmentTypeId == this.order.customsShipmentTypeId);\r\n this.selectedShipmentType.emit(orderShipmentType);\r\n }\r\n else {\r\n //If not an order emit purchase/commercial as default\r\n this.selectedShipmentType.emit(this.shipmentTypes.find(x => x.customsShipmentTypeId == 1));\r\n }\r\n })\r\n\r\n if (!!this.order && this.order.orderStateId > 1) {\r\n if (!!this.order.collectionDate) {\r\n if (new Date() < new Date(this.order.collectionDate)) {\r\n this.onSelectNotReadyForCollection(null);\r\n this.existingOrderNotReadyForCollection = true;\r\n this.sendReceiveForm.get(\"collectionDate\").setValue(this.order.collectionDate);\r\n }\r\n else {\r\n this.existingOrderReadyForCollection = true;\r\n this.readyForCollection = true;\r\n }\r\n }\r\n this.sendReceiveForm.get(\"definitionOfGoods\").setValue(this.order.definitionOfGoods);\r\n this.sendReceiveForm.get(\"comments\").setValue(this.order.comments);\r\n\r\n if (!!this.order.invoices) {\r\n this.existingOrderInvoices = this.order.invoices;\r\n }\r\n\r\n if (!!this.order.customsClearanceExtraJson) {\r\n this.managedCustomsClearanceChecked = true;\r\n }\r\n }\r\n\r\n // this.showHideFields();\r\n\r\n // this.sendReceiveForm.valueChanges.subscribe(x => {\r\n // this.showHideFields();\r\n // })\r\n\r\n this.toFromAddressFormGroup.valueChanges.subscribe(x => {\r\n if (this.isDomestic())\r\n {\r\n this.sendReceiveForm.get(\"domesticPackageContents\").setValidators([Validators.required, Validators.maxLength(255)]);\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"domesticPackageContents\").clearValidators();\r\n }\r\n })\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['psModule']){\r\n this.linkItem1 = this.psModule.Item3Link;\r\n this.linkItem2 = this.psModule.Item4Link;\r\n }\r\n\r\n \r\n // if (this.isDomestic())\r\n // {\r\n // this.sendReceiveForm.get(\"domesticPackageContents\").setValidators([Validators.required]);\r\n // }\r\n // else {\r\n // this.sendReceiveForm.get(\"domesticPackageContents\").clearValidators();\r\n // }\r\n\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.sendReceiveForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.sendReceiveForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public setCustomsClearance() {\r\n this.managedCustomsClearanceChecked = !this.managedCustomsClearanceChecked;\r\n this.customsClearanceSelected.emit(this.managedCustomsClearanceChecked);\r\n }\r\n\r\n public getManagedCustomCost() {\r\n\r\n if (!!this.serviceOption) {\r\n if (this.serviceOption.ManagedCustomCost > 0) {\r\n this.managedCustomCost = this.serviceOption.ManagedCustomCost;\r\n return this.managedCustomCost;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public setFilesToAdd(invoices: Array) {\r\n this.filesToAdd = invoices;\r\n }\r\n\r\n public setFilesToRemove(invoices: Array) {\r\n this.filesToRemove = invoices;\r\n }\r\n\r\n public getFilesToRemove() {\r\n return this.filesToRemove;\r\n }\r\n\r\n public getFilesToAdd() {\r\n return this.filesToAdd;\r\n }\r\n\r\n public onSelectReadyForCollection(event: any) {\r\n this.collectionOption = \"yes\";\r\n const today = new Date();\r\n // const tomorrow = new Date(today.setDate(today.getDate()));\r\n this.sendReceiveForm.get(\"collectionDate\").setValue(new Date());\r\n this.readyForCollection = true;\r\n }\r\n\r\n public onSelectNotReadyForCollection(event: any) {\r\n this.collectionOption = \"no\";\r\n const today = new Date();\r\n // const tomorrow = new Date(today.setDate(today.getDate()));\r\n this.sendReceiveForm.get(\"collectionDate\").setValue(new Date());\r\n this.readyForCollection = false;\r\n }\r\n\r\n public onSelectCommerical(event: any, shipmentType: CustomShipmentType) {\r\n //If purchase / commerical\r\n if (shipmentType.customsShipmentTypeId == 999) {\r\n this.otherSelected = true;\r\n this.sendReceiveForm.get(\"shipmentTypeOther\").enable();\r\n }\r\n else{\r\n this.otherSelected = false;\r\n this.sendReceiveForm.get(\"shipmentTypeOther\").disable();\r\n }\r\n this.selectedShipmentType.emit(shipmentType);\r\n }\r\n\r\n public checkPurchaseCommercial(shipmentType: CustomShipmentType) {\r\n if (!!this.order && this.order.orderStateId > 1) {\r\n if (this.order.customsShipmentTypeId == shipmentType.customsShipmentTypeId) {\r\n return true;\r\n }\r\n }\r\n else if (shipmentType.customsShipmentTypeId == 1) {\r\n return true;\r\n }\r\n return undefined;\r\n }\r\n\r\n public setUploadedFiles(event: any) {\r\n this.uploadedFiles.emit(event);\r\n this.clearFiles = false;\r\n }\r\n\r\n public setShowRequiredError(): boolean {\r\n return this.showRequiredError;\r\n }\r\n\r\n public checkFilesUploaded() {\r\n console.log(this.sendReceiveForm);\r\n console.log(this.toFromAddressFormGroup);\r\n\r\n if (!this.sendReceiveForm.get('uploadedFiles').valid) {\r\n this.showRequiredError = true;\r\n }\r\n if(this.itemTypesComponent && !this.itemTypesComponent.CheckValid()){\r\n this.showRequiredError = true;\r\n }\r\n }\r\n\r\n checkProceedDisabled(){\r\n if(this.itemTypesComponent && !this.itemTypesComponent.CheckValid()){\r\n return true;\r\n }\r\n }\r\n\r\n public clearAll() {\r\n this.sendReceiveForm.get(\"comments\").reset();\r\n this.collectionOption = undefined;\r\n this.onClear.emit(true);\r\n this.clearFiles = true;\r\n }\r\n\r\n public navigateToPreviousPage() {\r\n this.stepper.selectedIndex = 1;\r\n }\r\n\r\n public getCustomsShipmentTypeName(shipmentType: CustomShipmentType) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${shipmentType.customsShipmentTypeNameEN}`;\r\n case \"fo\":\r\n return `${shipmentType.customsShipmentTypeNameFO}`;\r\n }\r\n }\r\n\r\n public isFromFo() {\r\n return !this.toFromAddressFormGroup.get(\"fromCountry\").disabled && !!this.toFromAddressFormGroup.get(\"fromCountry\").value && this.toFromAddressFormGroup.get(\"fromCountry\").value.countryCode === \"FO\";\r\n }\r\n\r\n public isFromDk() {\r\n return !!this.toFromAddressFormGroup.get(\"fromCountry\").value && this.toFromAddressFormGroup.get(\"fromCountry\").value.countryCode === \"DK\";\r\n }\r\n\r\n public isToFo() {\r\n return !this.toFromAddressFormGroup.get(\"toCountry\").disabled && !!this.toFromAddressFormGroup.get(\"toCountry\").value && this.toFromAddressFormGroup.get(\"toCountry\").value.countryCode === \"FO\";\r\n }\r\n\r\n public isDomestic() {\r\n return !this.toFromAddressFormGroup.get(\"fromCountry\").disabled && !this.toFromAddressFormGroup.get(\"toCountry\").disabled && !!this.toFromAddressFormGroup.get(\"fromCountry\").value &&\r\n !!this.toFromAddressFormGroup.get(\"toCountry\").value &&\r\n this.toFromAddressFormGroup.get(\"fromCountry\").value.countryCode === this.toFromAddressFormGroup.get(\"toCountry\").value.countryCode;\r\n }\r\n\r\n public openRouteInNewWindow(route: string) {\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n\r\n public isBuyPostage(serviceOption: ServiceOption): boolean{\r\n return true; //DEV\r\n }\r\n\r\n public isPostParcel(serviceOption: ServiceOption): boolean {\r\n return (serviceOption.ProductType == ProductType.Postage ||\r\n serviceOption.ProductType == ProductType.Postage_Plus || serviceOption.ProductType == ProductType.Parcel)\r\n }\r\n\r\n public showHideFields(serviceOption: ServiceOption) {\r\n var value = +this.sendReceiveForm.get(\"valueOfGoods\")?.value;\r\n\r\n this.sendReceiveForm.get(\"comments\").enable();\r\n this.sendReceiveForm.get(\"domesticPackageContents\").enable();\r\n if (!serviceOption || !serviceOption.ProductType) {\r\n return;\r\n }\r\n if (this.toDepot && this.isFromFo() && !this.isPostParcel(serviceOption)) {\r\n this.showCustomsInformation1 = true;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = true;\r\n this.showManagedCustomsClearance = false;\r\n this.showIsReadyForCollection = true;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").enable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").enable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").setValidators([Validators.required]);\r\n this.sendReceiveForm.get(\"uploadedFiles\").updateValueAndValidity();\r\n return;\r\n }\r\n if (this.isFromFo() && this.isToFo()) {\r\n this.showCustomsInformation1 = false;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = false;\r\n this.showManagedCustomsClearance = false;\r\n this.showIsReadyForCollection = false;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").disable();\r\n if (serviceOption.ProductType == ProductType.DomesticTransport) {\r\n this.showIsReadyForCollection = true;\r\n this.sendReceiveForm.get(\"collectionDate\").enable();\r\n }\r\n this.sendReceiveForm.get(\"definitionOfGoods\").disable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").disable();\r\n\r\n return;\r\n }\r\n if (this.isFromFo() && this.toDepot && !this.isPostParcel(serviceOption)) {\r\n this.showCustomsInformation1 = false;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = false;\r\n this.showManagedCustomsClearance = false;\r\n this.showIsReadyForCollection = true;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").enable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").disable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").setValidators(null);\r\n this.sendReceiveForm.get(\"uploadedFiles\").updateValueAndValidity();\r\n return;\r\n }\r\n if (this.fromDepot && this.isToFo() && !this.isPostParcel(serviceOption)) {\r\n this.showCustomsInformation1 = true;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = true;\r\n this.showManagedCustomsClearance = true;\r\n this.showIsReadyForCollection = false;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").disable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").enable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").setValidators([Validators.required]);\r\n this.sendReceiveForm.get(\"uploadedFiles\").updateValueAndValidity();\r\n return;\r\n }\r\n if (this.isFromDk() && this.isToFo() && !this.isPostParcel(serviceOption)) {\r\n this.showCustomsInformation1 = true;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = true;\r\n this.showManagedCustomsClearance = true;\r\n this.showIsReadyForCollection = true;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").enable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").enable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").setValidators([Validators.required]);\r\n this.sendReceiveForm.get(\"uploadedFiles\").updateValueAndValidity();\r\n return;\r\n }\r\n if (this.isFromFo() && !this.isToFo()) {\r\n if (this.isPostParcel(serviceOption)) {\r\n this.showCustomsInformation1 = true;\r\n this.showTypeOfShipment = true;\r\n this.showUploadInvoice = false;\r\n this.showManagedCustomsClearance = false;\r\n this.showIsReadyForCollection = false;\r\n this.showItemTypes = true;\r\n this.sendReceiveForm.get(\"collectionDate\").disable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").enable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").disable();\r\n }\r\n else {\r\n this.showCustomsInformation1 = true;\r\n this.showTypeOfShipment = false;\r\n this.showUploadInvoice = true;\r\n this.showManagedCustomsClearance = false;\r\n this.showIsReadyForCollection = true;\r\n this.showItemTypes = false;\r\n this.sendReceiveForm.get(\"collectionDate\").enable();\r\n this.sendReceiveForm.get(\"definitionOfGoods\").enable();\r\n this.sendReceiveForm.get(\"uploadedFiles\").setValidators([Validators.required]);\r\n this.sendReceiveForm.get(\"uploadedFiles\").updateValueAndValidity();\r\n }\r\n return;\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.ready_for_collection_one' |\r\n translate}}

\r\n \r\n {{'send_receive.send_receive.step_three.ready_for_collection_two' | translate}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.definition_of_goods' | translate}}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.customs_info' | translate}}

\r\n \r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.file_upload' | translate}}

\r\n \r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.type_of_shipment' | translate}}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.step_three.upload_invoice' | translate}}

\r\n

 {{'send_receive.send_receive.step_three.required' |\r\n translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.step_three.managed_customs_clearance' | translate}}

\r\n
\r\n
\r\n {{'send_receive.send_receive.step_three.customs_clearance_info' | translate}}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{getManagedCustomCost()}} DKK

\r\n
\r\n
\r\n {{'send_receive.send_receive.step_three.duty_cost_not_included' | translate}}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.comments' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_three.domestic_contents' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.total' | translate}}: {{totalCost | currency: 'DKK':''}} DKK\r\n

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{'send_receive.send_receive.step_three.step_not_required' | translate}}\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UserService } from '../../../../../account/services/user.service';\r\nimport { User } from '../../../../../account/entities/user';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-from-account-address',\r\n templateUrl: './from-account-address.component.html',\r\n styleUrls: ['./from-account-address.component.scss']\r\n})\r\nexport class FromAccountAddressComponent implements OnInit {\r\n\r\n @Input()\r\n toFromAddressform: FormGroup\r\n\r\n @Input()\r\n public currentUser: User;\r\n\r\n public countryName: string;\r\n\r\n constructor(private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.getCountryName();\r\n }\r\n\r\n public getCountryName() {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countryName = `${this.currentUser.country.countryNameEN}`;\r\n break;\r\n case \"fo\":\r\n this.countryName = `${this.currentUser.country.countryNameFO}`;\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.title' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.first_name' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.last_name' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.address_line_1' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.town_city' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.postcode' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.country' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.contact_number' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UserService } from '../../../../../account/services/user.service';\r\nimport { User } from '../../../../../account/entities/user';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-to-account-address',\r\n templateUrl: './to-account-address.component.html',\r\n styleUrls: ['./to-account-address.component.scss']\r\n})\r\nexport class ToAccountAddressComponent implements OnInit {\r\n\r\n @Input()\r\n toFromAddressform: FormGroup;\r\n\r\n @Input()\r\n public currentUser: User;\r\n\r\n public countryName: string;\r\n\r\n constructor(private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.getCountryName();\r\n }\r\n\r\n public getCountryName() {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countryName = `${this.currentUser.country.countryNameEN}`;\r\n break;\r\n case \"fo\":\r\n this.countryName = `${this.currentUser.country.countryNameFO}`;\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.title' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.first_name' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.last_name' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.address_line_1' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.town_city' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.postcode' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.country' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.account_address.contact_number' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ErrorHelper } from 'src/app/shared/helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-posta-depot-address',\r\n templateUrl: './posta-depot-address.component.html',\r\n styleUrls: ['./posta-depot-address.component.scss']\r\n})\r\nexport class PostaDepotAddressComponent implements OnInit {\r\n\r\n @Input()\r\n toFromAddressform: FormGroup\r\n\r\n @Input()\r\n isSender: boolean\r\n\r\n constructor(private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.toFromAddressform.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.toFromAddressform.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

{{'send_receive.send_receive.step_one.sender_name' | translate}}

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.from_to_depot_header' | translate}}

\r\n
    \r\n
  • {{'send_receive.send_receive.step_one.from_to_depot_description_one' | translate}}
  • \r\n
  • {{'send_receive.send_receive.step_one.from_to_depot_description_two' | translate}}
  • \r\n
\r\n
{{'send_receive.send_receive.step_one.from_to_depot_nb' | translate}}
\r\n
\r\n
","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { AddressService } from '../../../../shared/services/address-service';\r\nimport { Address } from '../../../../account/entities/address';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { UserService } from '../../../../account/services/user.service';\r\nimport { User } from '../../../../account/entities/user';\r\nimport { Order } from '../../../entities/Order';\r\n\r\n@Component({\r\n selector: 'app-send-and-receive-addresses',\r\n templateUrl: './send-and-receive-addresses.component.html',\r\n styleUrls: ['./send-and-receive-addresses.component.scss']\r\n})\r\nexport class SendAndReceiveAddressesComponent implements OnInit, AfterViewInit {\r\n\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup\r\n\r\n @Input()\r\n specificationForm: FormGroup\r\n\r\n public fromDepotAddressChecked = false;\r\n public fromAccountAddressChecked = false;\r\n public fromNewAddressChecked = false;\r\n\r\n\r\n public toAccountAddressChecked = false;\r\n public toDepotAddressChecked = false;\r\n public toNewAddressChecked = false;\r\n\r\n public fromAccountDisabled: boolean = false;\r\n public fromDepotDisabled: boolean = false;\r\n public toAccountDisabled: boolean = false;\r\n public toDepotDisabled: boolean = false;\r\n\r\n public addToFavourite: boolean = false;\r\n\r\n public addresses: Array
= new Array
();\r\n\r\n public fromFilteredAddresses: Observable>;\r\n\r\n public toFilteredAddresses: Observable>;\r\n\r\n fromAddressControl = new FormControl();\r\n\r\n toAddressControl = new FormControl();\r\n\r\n public fromAddressSelected: Address;\r\n\r\n public toAddressSelected: Address;\r\n\r\n public currentUser: User;\r\n\r\n public postcodes: any;\r\n\r\n public fromOption: any;\r\n\r\n public toOption: any;\r\n \r\n public showNoSelectionError: boolean;\r\n\r\n @Input()\r\n order: Order\r\n\r\n @Output()\r\n fromDepot: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n toDepot: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n fromAccountAddress: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n toAccountAddress: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n nextClicked: EventEmitter = new EventEmitter();\r\n \r\n addressesFooter: any;\r\n \r\n @Input()\r\n psModule: any;\r\n observer: MutationObserver;\r\n\r\n constructor(private addressService: AddressService, \r\n private userAccountService: UserService,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.getAddresses();\r\n this.getPostcodes();\r\n\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.currentUser = x;\r\n })\r\n\r\n\r\n if (!!this.order) {\r\n if (!!this.order.fromFirstName && !this.order.isFromAccountAddress) {\r\n this.fromOption = \"fromNewAddress\";\r\n this.fromNewAddressChecked = true;\r\n }\r\n else if (this.order.isFromAccountAddress) {\r\n this.fromOption = \"fromAccount\";\r\n this.onSelectFromAccountAddress(null);\r\n }\r\n\r\n\r\n if (!!this.order.toFirstName && !this.order.isToAccountAddress) {\r\n this.toOption = \"toNewAddress\";\r\n this.toNewAddressChecked = true;\r\n }\r\n else if (this.order.isToAccountAddress) {\r\n this.onSelectToAccountAddress(null);\r\n // this.checkToAccountAddressOption = true;\r\n this.toOption = \"toAccount\";\r\n\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['psModule']){\r\n this.addressesFooter = this.psModule.AddressesFooter;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public notSelectedCountry(){\r\n if(this.sendReceiveForm.get(\"fromCountry\").valid || this.sendReceiveForm.get(\"toCountry\").valid)\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public onSelectFromAccountAddress(event: any) {\r\n this.showNoSelectionError = false;\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.currentUser = x;\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").enable();\r\n this.sendReceiveForm.get(\"fromFirstName\").enable();\r\n this.sendReceiveForm.get(\"fromLastName\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"fromTownCity\").enable();\r\n this.sendReceiveForm.get(\"fromPostcode\").enable();\r\n this.sendReceiveForm.get(\"fromCountry\").enable();\r\n this.sendReceiveForm.get(\"fromContactNumber\").enable();\r\n \r\n this.sendReceiveForm.get(\"logisticsSenderName\").reset();\r\n this.sendReceiveForm.get(\"logisticsSenderName\").disable();\r\n \r\n this.sendReceiveForm.get(\"fromTitle\").setValue(this.currentUser.title)\r\n this.sendReceiveForm.get(\"fromFirstName\").setValue(this.currentUser.firstName);\r\n this.sendReceiveForm.get(\"fromLastName\").setValue(this.currentUser.lastName);\r\n this.sendReceiveForm.get(\"fromAddressLine1\").setValue(this.currentUser.addressLine1);\r\n this.sendReceiveForm.get(\"fromAddressLine2\").setValue(this.currentUser.addressLine2);\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(this.currentUser.townCity);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(this.currentUser.postcode);\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(this.currentUser.country);\r\n this.sendReceiveForm.get(\"fromContactNumber\").setValue(this.currentUser.mobileNo);\r\n \r\n this.fromAccountDisabled = false;\r\n \r\n if (event !== \"swap\") {\r\n this.fromDepotAddressChecked = false;\r\n this.fromNewAddressChecked = false;\r\n }\r\n \r\n this.fromAccountAddressChecked = true;\r\n this.fromOption = \"fromAccount\";\r\n this.toAccountDisabled = true;\r\n this.fromDepotDisabled = false;\r\n this.toDepotDisabled = false;\r\n \r\n this.fromDepot.emit(false);\r\n this.fromAccountAddress.emit(true);\r\n })\r\n }\r\n\r\n public onSelectFromDepot(event: any) {\r\n this.showNoSelectionError = false;\r\n if (event !== \"swap\") {\r\n this.fromNewAddressChecked = false;\r\n this.fromAccountAddressChecked = false;\r\n }\r\n this.fromDepotAddressChecked = true;\r\n // this.fromAccountAddressChecked = false;\r\n // this.fromNewAddressChecked = false;\r\n this.fromOption = \"fromDepot\";\r\n\r\n // this.sendReceiveForm.get(\"fromCountry\").setValue(this,countr)\r\n\r\n this.toDepotDisabled = true;\r\n if (!this.toAccountAddressChecked) {\r\n this.fromAccountDisabled = false;\r\n\r\n }\r\n this.toAccountDisabled = false;\r\n // this.sendReceiveForm.get(\"fromCountry\").setValue(\"DK\");\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").disable();\r\n this.sendReceiveForm.get(\"fromFirstName\").disable();\r\n this.sendReceiveForm.get(\"fromLastName\").disable();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").disable();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").disable();\r\n this.sendReceiveForm.get(\"fromTownCity\").disable();\r\n this.sendReceiveForm.get(\"fromPostcode\").disable();\r\n this.sendReceiveForm.get(\"fromCountry\").disable();\r\n\r\n this.sendReceiveForm.get(\"logisticsSenderName\").enable();\r\n\r\n this.fromDepot.emit(true);\r\n this.fromAccountAddress.emit(false);\r\n }\r\n\r\n public onSelectFromNewAddress(event: any) {\r\n this.showNoSelectionError = false;\r\n if (event !== \"swap\") {\r\n this.fromAccountAddressChecked = false;\r\n this.fromDepotAddressChecked = false;\r\n }\r\n\r\n this.fromNewAddressChecked = true;\r\n\r\n this.toAccountDisabled = false;\r\n this.toDepotDisabled = false;\r\n\r\n if (this.toAccountAddressChecked) {\r\n this.fromAccountDisabled = true;\r\n }\r\n if (this.toDepotAddressChecked) {\r\n this.fromDepotDisabled = true;\r\n }\r\n\r\n this.fromOption = \"fromNewAddress\";\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").enable();\r\n this.sendReceiveForm.get(\"fromFirstName\").enable();\r\n this.sendReceiveForm.get(\"fromLastName\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"fromTownCity\").enable();\r\n this.sendReceiveForm.get(\"fromPostcode\").enable();\r\n this.sendReceiveForm.get(\"fromCountry\").enable();\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").enable();\r\n this.sendReceiveForm.get(\"fromContactNumber\").enable();\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").enable();\r\n\r\n this.sendReceiveForm.get(\"logisticsSenderName\").reset();\r\n this.sendReceiveForm.get(\"logisticsSenderName\").disable();\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").reset();\r\n this.sendReceiveForm.get(\"fromFirstName\").reset();\r\n this.sendReceiveForm.get(\"fromLastName\").reset();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").reset();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").reset();\r\n this.sendReceiveForm.get(\"fromTownCity\").reset();\r\n this.sendReceiveForm.get(\"fromPostcode\").reset();\r\n this.sendReceiveForm.get(\"fromCountry\").reset();\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").reset();\r\n this.sendReceiveForm.get(\"fromContactNumber\").reset();\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").reset();\r\n\r\n\r\n this.fromDepot.emit(false);\r\n this.fromAccountAddress.emit(false);\r\n }\r\n\r\n public onSelectToAccountAddress(event: any) {\r\n this.showNoSelectionError = false;\r\n\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.currentUser = x;\r\n\r\n this.sendReceiveForm.get(\"toTitle\").enable();\r\n this.sendReceiveForm.get(\"toFirstName\").enable();\r\n this.sendReceiveForm.get(\"toLastName\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"toTownCity\").enable();\r\n this.sendReceiveForm.get(\"toPostcode\").enable();\r\n this.sendReceiveForm.get(\"toCountry\").enable();\r\n \r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.currentUser.title)\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.currentUser.firstName);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.currentUser.lastName);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.currentUser.addressLine1);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.currentUser.addressLine2);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.currentUser.townCity);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.currentUser.postcode);\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.currentUser.country);\r\n if (!!this.currentUser.mobileNo) {\r\n this.sendReceiveForm.get(\"toContactNumber\").enable();\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.currentUser.mobileNo);\r\n }\r\n \r\n if (event !== \"swap\") {\r\n this.toDepotAddressChecked = false;\r\n this.toNewAddressChecked = false;\r\n }\r\n \r\n this.toAccountDisabled = false;\r\n this.toAccountAddressChecked = true;\r\n this.toOption = \"toAccount\";\r\n \r\n this.fromAccountDisabled = true;\r\n this.fromDepotDisabled = false;\r\n if (!this.fromDepotAddressChecked) {\r\n this.toDepotDisabled = false;\r\n }\r\n \r\n this.toDepot.emit(false);\r\n this.toAccountAddress.emit(true);\r\n })\r\n }\r\n\r\n public onSelectToDepot(event: any) {\r\n this.showNoSelectionError = false;\r\n if (event !== \"swap\") {\r\n this.toAccountAddressChecked = false;\r\n this.toNewAddressChecked = false;\r\n }\r\n this.toDepotAddressChecked = true;\r\n\r\n this.fromDepotDisabled = true;\r\n if (!this.fromAccountAddressChecked) {\r\n this.toAccountDisabled = false;\r\n\r\n }\r\n this.fromAccountDisabled = false;\r\n this.toOption = \"toDepot\";\r\n\r\n this.sendReceiveForm.get(\"toTitle\").disable();\r\n this.sendReceiveForm.get(\"toFirstName\").disable();\r\n this.sendReceiveForm.get(\"toLastName\").disable();\r\n this.sendReceiveForm.get(\"toAddressLine1\").disable();\r\n this.sendReceiveForm.get(\"toAddressLine2\").disable();\r\n this.sendReceiveForm.get(\"toTownCity\").disable();\r\n this.sendReceiveForm.get(\"toPostcode\").disable();\r\n this.sendReceiveForm.get(\"toCountry\").disable();\r\n\r\n this.toDepot.emit(true);\r\n this.toAccountAddress.emit(false);\r\n }\r\n\r\n private _filter(value: string): Array
{\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.addresses.filter(option => `${option.firstName} ${option.lastName}, ${option.postcode}`.toLowerCase().includes(filterValue));\r\n }\r\n\r\n displayFn(address: Address): string {\r\n return address && `${address.firstName} ${address.lastName}, ${address.postcode}` ? `${address.firstName} ${address.lastName}, ${address.postcode}` : '';\r\n }\r\n\r\n public onSelectToNewAddress(event: any) {\r\n this.showNoSelectionError = false;\r\n if (event !== \"swap\") {\r\n this.toAccountAddressChecked = false;\r\n this.toDepotAddressChecked = false;\r\n }\r\n this.toNewAddressChecked = true;\r\n\r\n this.fromAccountDisabled = false;\r\n this.fromDepotDisabled = false;\r\n if (this.fromAccountAddressChecked) {\r\n this.toAccountDisabled = true;\r\n }\r\n if (this.fromDepotAddressChecked) {\r\n this.toDepotDisabled = true;\r\n }\r\n\r\n this.toOption = \"toNewAddress\";\r\n\r\n this.sendReceiveForm.get(\"toTitle\").enable();\r\n this.sendReceiveForm.get(\"toFirstName\").enable();\r\n this.sendReceiveForm.get(\"toLastName\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"toTownCity\").enable();\r\n this.sendReceiveForm.get(\"toPostcode\").enable();\r\n this.sendReceiveForm.get(\"toCountry\").enable();\r\n this.sendReceiveForm.get(\"toOptionalCompany\").enable();\r\n this.sendReceiveForm.get(\"toContactNumber\").enable();\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").enable();\r\n\r\n this.sendReceiveForm.get(\"toTitle\").reset();\r\n this.sendReceiveForm.get(\"toFirstName\").reset();\r\n this.sendReceiveForm.get(\"toLastName\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine1\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine2\").reset();\r\n this.sendReceiveForm.get(\"toTownCity\").reset();\r\n this.sendReceiveForm.get(\"toPostcode\").reset();\r\n this.sendReceiveForm.get(\"toCountry\").reset();\r\n this.sendReceiveForm.get(\"toOptionalCompany\").reset();\r\n this.sendReceiveForm.get(\"toContactNumber\").reset();\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").reset();\r\n this.toDepot.emit(false);\r\n this.toAccountAddress.emit(false);\r\n }\r\n\r\n public swapFromTo() {\r\n \r\n this.swapAddressFormFields();\r\n\r\n if (this.fromDepotAddressChecked || this.toDepotAddressChecked) {\r\n this.fromDepotAddressChecked = this.toDepotAddressChecked;\r\n this.toDepotAddressChecked = !this.fromDepotAddressChecked;\r\n if (this.fromDepotAddressChecked) {\r\n this.toDepot.emit(false);\r\n this.onSelectFromDepot(\"swap\");\r\n }\r\n if (this.toDepotAddressChecked) {\r\n this.fromDepot.emit(false);\r\n this.onSelectToDepot(\"swap\");\r\n }\r\n }\r\n\r\n if (this.fromAccountAddressChecked || this.toAccountAddressChecked) {\r\n this.fromAccountAddressChecked = this.toAccountAddressChecked;\r\n this.toAccountAddressChecked = !this.fromAccountAddressChecked;\r\n if (this.fromAccountAddressChecked) {\r\n this.onSelectFromAccountAddress(\"swap\");\r\n }\r\n if (this.toAccountAddressChecked) {\r\n this.onSelectToAccountAddress(\"swap\");\r\n }\r\n }\r\n\r\n if (this.fromNewAddressChecked || this.toNewAddressChecked) {\r\n\r\n //If both are from new address - do nothing for now\r\n if (this.fromNewAddressChecked && this.toNewAddressChecked) {\r\n return;\r\n }\r\n\r\n if (this.fromNewAddressChecked)\r\n {\r\n this.toOption = \"toNewAddress\";\r\n this.sendReceiveForm.get(\"toTitle\").enable();\r\n this.sendReceiveForm.get(\"toFirstName\").enable();\r\n this.sendReceiveForm.get(\"toLastName\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"toTownCity\").enable();\r\n this.sendReceiveForm.get(\"toPostcode\").enable();\r\n this.sendReceiveForm.get(\"toCountry\").enable();\r\n }\r\n if (!this.fromNewAddressChecked)\r\n {\r\n this.fromOption = \"fromNewAddress\";\r\n this.sendReceiveForm.get(\"fromTitle\").enable();\r\n this.sendReceiveForm.get(\"fromFirstName\").enable();\r\n this.sendReceiveForm.get(\"fromLastName\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"fromTownCity\").enable();\r\n this.sendReceiveForm.get(\"fromPostcode\").enable();\r\n this.sendReceiveForm.get(\"fromCountry\").enable();\r\n }\r\n this.fromNewAddressChecked = this.toNewAddressChecked;\r\n this.toNewAddressChecked = !this.fromNewAddressChecked;\r\n }\r\n }\r\n\r\n public addressFieldClick() {\r\n this.addressService.getAll().subscribe((x) => {\r\n this.addresses = x;\r\n\r\n this.fromFilteredAddresses = this.fromAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n )\r\n\r\n this.toFilteredAddresses = this.toAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice())\r\n );\r\n });\r\n }\r\n\r\n public getAddresses() {\r\n this.addressService.getAll().subscribe((x) => {\r\n this.addresses = x\r\n\r\n this.fromFilteredAddresses = this.fromAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n )\r\n\r\n this.toFilteredAddresses = this.toAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice())\r\n );\r\n });\r\n\r\n this.fromAddressControl\r\n }\r\n\r\n public getPostcodes() {\r\n this.addressService.getPostcodes().subscribe((x) => {\r\n this.postcodes = x\r\n });\r\n }\r\n\r\n public setFromSelectedAddress(address) {\r\n this.fromAddressSelected = address;\r\n }\r\n\r\n public setToSelectedAddress(address) {\r\n this.toAddressSelected = address;\r\n }\r\n\r\n public setToAddressFields() {\r\n if (!!this.toAddressSelected) {\r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.toAddressSelected.title);\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.toAddressSelected.firstName);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.toAddressSelected.lastName);\r\n this.sendReceiveForm.get(\"toOptionalCompany\").setValue(this.toAddressSelected.companyName);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.toAddressSelected.addressLine1);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.toAddressSelected.addressLine2);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.toAddressSelected.townCity);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.toAddressSelected.postcode);\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.toAddressSelected.country);\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.toAddressSelected.contactNumber);\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").setValue(this.toAddressSelected.specialInstructions);\r\n this.addToFavourite = this.toAddressSelected.isFavourite;\r\n }\r\n }\r\n\r\n public setFromAddressFields() {\r\n if (!!this.fromAddressSelected) {\r\n this.sendReceiveForm.get(\"fromTitle\").setValue(this.fromAddressSelected.title);\r\n this.sendReceiveForm.get(\"fromFirstName\").setValue(this.fromAddressSelected.firstName);\r\n this.sendReceiveForm.get(\"fromLastName\").setValue(this.fromAddressSelected.lastName);\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").setValue(this.fromAddressSelected.companyName);\r\n this.sendReceiveForm.get(\"fromAddressLine1\").setValue(this.fromAddressSelected.addressLine1);\r\n this.sendReceiveForm.get(\"fromAddressLine2\").setValue(this.fromAddressSelected.addressLine2);\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(this.fromAddressSelected.townCity);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(this.fromAddressSelected.postcode);\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(this.fromAddressSelected.country);\r\n this.sendReceiveForm.get(\"fromContactNumber\").setValue(this.fromAddressSelected.contactNumber);\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").setValue(this.fromAddressSelected.specialInstructions);\r\n }\r\n }\r\n\r\n public swapAddressFormFields() {\r\n\r\n const toTitleValueBeforeChange = this.sendReceiveForm.get(\"toTitle\").value;\r\n const toFirstNameValueBeforeChange = this.sendReceiveForm.get(\"toFirstName\").value;\r\n const toLastNameValueBeforeChange = this.sendReceiveForm.get(\"toLastName\").value;\r\n const toOptionalCompanyBeforeChange = this.sendReceiveForm.get(\"toOptionalCompany\").value;\r\n const toAddressLine1BeforeChange = this.sendReceiveForm.get(\"toAddressLine1\").value;\r\n const toAddressLine2BeforeChange = this.sendReceiveForm.get(\"toAddressLine2\").value;\r\n const toTownCityBeforeChange = this.sendReceiveForm.get(\"toTownCity\").value;\r\n const toPostcodeBeforeChange = this.sendReceiveForm.get(\"toPostcode\").value;\r\n const toCountryBeforeChange = this.sendReceiveForm.get(\"toCountry\").value;\r\n const toContactNumberBeforeChange = this.sendReceiveForm.get(\"toContactNumber\").value;\r\n\r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.sendReceiveForm.get(\"fromTitle\").value);\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.sendReceiveForm.get(\"fromFirstName\").value);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.sendReceiveForm.get(\"fromLastName\").value);\r\n this.sendReceiveForm.get(\"toOptionalCompany\").setValue(this.sendReceiveForm.get(\"fromOptionalCompany\").value);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.sendReceiveForm.get(\"fromAddressLine1\").value);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.sendReceiveForm.get(\"fromAddressLine2\").value);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.sendReceiveForm.get(\"fromTownCity\").value);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.sendReceiveForm.get(\"fromPostcode\").value);\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.sendReceiveForm.get(\"fromCountry\").value, {emitEvent: true});\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.sendReceiveForm.get(\"fromContactNumber\").value);\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").setValue(toTitleValueBeforeChange);\r\n this.sendReceiveForm.get(\"fromFirstName\").setValue(toFirstNameValueBeforeChange);\r\n this.sendReceiveForm.get(\"fromLastName\").setValue(toLastNameValueBeforeChange);\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").setValue(toOptionalCompanyBeforeChange);\r\n this.sendReceiveForm.get(\"fromAddressLine1\").setValue(toAddressLine1BeforeChange);\r\n this.sendReceiveForm.get(\"fromAddressLine2\").setValue(toAddressLine2BeforeChange);\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(toTownCityBeforeChange);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(toPostcodeBeforeChange);\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(toCountryBeforeChange, {emitEvent: true});\r\n this.sendReceiveForm.get(\"fromContactNumber\").setValue(toContactNumberBeforeChange);\r\n\r\n this.sendReceiveForm.markAsUntouched();\r\n }\r\n\r\n public markRequiredFieldsAsTouchedAndProceed() {\r\n this.sendReceiveForm.markAllAsTouched();\r\n \r\n var hasSender = this.fromAccountAddressChecked || this.fromDepotAddressChecked || this.fromNewAddressChecked;\r\n var hasRecipient = this.toAccountAddressChecked || this.toDepotAddressChecked || this.toNewAddressChecked;\r\n\r\n this.showNoSelectionError = !hasSender || !hasRecipient;\r\n \r\n if (this.sendReceiveForm.invalid) {\r\n return;\r\n }\r\n this.nextClicked.emit(true);\r\n }\r\n\r\n public clearAll() {\r\n this.fromAccountAddressChecked = false;\r\n this.fromDepotAddressChecked = false;\r\n this.fromNewAddressChecked = false;\r\n this.toAccountAddressChecked = false;\r\n this.toDepotAddressChecked = false;\r\n this.toNewAddressChecked = false;\r\n this.toOption = undefined;\r\n this.fromOption = undefined;\r\n\r\n this.fromDepot.emit(false);\r\n this.toDepot.emit(false);\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").enable();\r\n this.sendReceiveForm.get(\"fromFirstName\").enable();\r\n this.sendReceiveForm.get(\"fromLastName\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"fromTownCity\").enable();\r\n this.sendReceiveForm.get(\"fromPostcode\").enable();\r\n this.sendReceiveForm.get(\"fromCountry\").enable();\r\n this.sendReceiveForm.get(\"toTitle\").enable();\r\n this.sendReceiveForm.get(\"toFirstName\").enable();\r\n this.sendReceiveForm.get(\"toLastName\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine1\").enable();\r\n this.sendReceiveForm.get(\"toAddressLine2\").enable();\r\n this.sendReceiveForm.get(\"toTownCity\").enable();\r\n this.sendReceiveForm.get(\"toPostcode\").enable();\r\n this.sendReceiveForm.get(\"toCountry\").enable();\r\n\r\n this.sendReceiveForm.reset();\r\n }\r\n}","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.from' | translate}}

\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.to' | translate}}

\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ServiceType } from '../../../shared/price-matrix/enums/ServiceType';\r\nimport { IncoTermsInput } from '../../../shared/entities/IncoTermsInput';\r\nimport { Country } from '../../../account/entities/Country';\r\nimport { IncoTermsService } from '../../../shared/services/inco-terms.service';\r\nimport { Order } from '../../entities/Order';\r\nimport { CustomShipmentType } from '../../../shared/entities/customShipmentType';\r\nimport { SendReceiveService } from './services/send-receive.service';\r\nimport { Invoice } from '../../../shared/entities/Invoice';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, Title } from '@angular/platform-browser';\r\nimport { OrderDetailsComponent } from '../order-details/order-details.component';\r\nimport { UploadFileService } from '../../../shared/services/upload-file.service';\r\nimport { interval, Subject, timer } from 'rxjs';\r\nimport { startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { Parcel } from '../../entities/parcel';\r\nimport { ServiceOption } from '../../entities/serviceOption';\r\nimport { OrderLetter } from '../../entities/OrderLetter';\r\nimport { OrderService } from '../../entities/OrderService';\r\nimport { OrderState } from '../../enums/OrderState';\r\nimport { InvoiceLine } from '../../entities/InvoiceLine';\r\nimport { environment } from '../../../../environments/environment'\r\nimport { ProductType } from '../../../shared/price-matrix/enums/ProductType';\r\nimport { TranslationHelper } from '../../../shared/helpers/translation-helper';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { AddressService } from '../../../shared/services/address-service';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { throwToolbarMixedModesError } from '@angular/material/toolbar';\r\nimport { PaymentService } from '../../services/payment.service';\r\nimport { CustomsItemType } from '../../entities/CustomsItemType';\r\nimport { BuyPostageService } from '../../services/buy-postage.service';\r\n\r\n@Component({\r\n selector: 'app-send-and-receive',\r\n templateUrl: './send-and-receive.component.html',\r\n styleUrls: ['./send-and-receive.component.scss']\r\n})\r\nexport class SendAndReceiveComponent implements OnInit {\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n @ViewChild(OrderDetailsComponent) child: OrderDetailsComponent;\r\n @ViewChild('paymentFrame') iframe: ElementRef;\r\n\r\n toFromAddressFormGroup: FormGroup;\r\n specificationsFormGroup: FormGroup;\r\n orderDetailsFormGroup: FormGroup;\r\n confirmationFormGroup: FormGroup;\r\n\r\n public itemTypes: CustomsItemType[] = [];\r\n\r\n public showPrices: boolean = false;\r\n\r\n public serviceOption: ServiceOption;\r\n\r\n public parcels: Array;\r\n\r\n public shipmentType: CustomShipmentType;\r\n\r\n public uploadedFiles: Array;\r\n\r\n public insurance: boolean;\r\n\r\n public downloadingReceipt: boolean = false;\r\n\r\n public productType: ProductType;\r\n\r\n public totalVolume: number;\r\n\r\n public fromDepot: boolean = false;\r\n\r\n public toDepot: boolean = false;\r\n\r\n public fromAccountAddress: boolean = false;\r\n\r\n public toAccountAddress: boolean = false;\r\n\r\n //This is only used for routing from Find prices\r\n public findPricesisParcel: boolean = false;\r\n\r\n public resetAddress: boolean = false;\r\n\r\n public numberOfPalettes: number;\r\n\r\n public incoTerms: string;\r\n\r\n public order: Order = new Order();\r\n\r\n public orderReference: string;\r\n\r\n public customsClearanceSelected: boolean;\r\n\r\n public orderReferenceCallBackId: string;\r\n\r\n public orderBarCode: string;\r\n public isCDSFiled: boolean;\r\n\r\n public isPaying: boolean = false;\r\n\r\n public htmlSrc: SafeHtml;\r\n\r\n public intervalSet: boolean = false;\r\n\r\n public paymentSuccess: boolean = false;\r\n\r\n public paymentFailed: boolean = false;\r\n\r\n public quoteId: string;\r\n\r\n private stopPolling = new Subject();\r\n\r\n public loading: boolean = false;\r\n\r\n public displayScreen: boolean = false;\r\n\r\n public paymentCodes: string;\r\n\r\n public hideOrderDetails: boolean = false;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n public psModule: string;\r\n\r\n interval: any;\r\n\r\n // public paymentUrl: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl(`/payment/WebPay?locale=en&systemType=5&serviceType=2&orderId=SR10000049&amount=25&test=true`);\r\n\r\n public paymentUrl: SafeResourceUrl;\r\n downloadingPrintLabel: boolean;\r\n downloadingCDS: boolean;\r\n orderReferenceOther: string;\r\n previousVolume: number = 0;\r\n contactPostaScreen: boolean = false;\r\n createOrderFailed: boolean = false;\r\n iframeURL: any;\r\n showCustomsRequirements: any;\r\n downloadingCN22: boolean;\r\n cn22Email: any;\r\n sendingCN22Email: boolean;\r\n emailCN22SentTo: any;\r\n showEmailCN22Success: boolean;\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private _route: ActivatedRoute,\r\n private incoTermsService: IncoTermsService,\r\n private sendReceiveService: SendReceiveService,\r\n private uploadFileService: UploadFileService,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private translateHelper: TranslationHelper,\r\n private staticContentService: StaticContentService,\r\n private _sanitizer: DomSanitizer,\r\n private paymentService: PaymentService,\r\n private buyPostageService: BuyPostageService) { }\r\n\r\n ngOnDestroy() {\r\n this.stopPolling.next();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.psModule = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/send-receive');\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n this.psModule = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/send-receive');\r\n })\r\n\r\n this.order = this._route.snapshot.data.order;\r\n if(this.order){\r\n this.itemTypes = this.order.customsItemTypes;\r\n }\r\n\r\n if (!!this.order && this.order.isPaid) {\r\n this.router.navigate([`orders/${this.order.orderReference}`]);\r\n }\r\n\r\n this.toFromAddressFormGroup = this._formBuilder.group({\r\n toTitle: ['', Validators.maxLength(10)],\r\n toFirstName: ['', [Validators.required, Validators.maxLength(50)]],\r\n toLastName: ['', [Validators.required, Validators.maxLength(50)]],\r\n toOptionalCompany: ['', Validators.maxLength(50)],\r\n toAddressLine1: ['', [Validators.required, Validators.maxLength(100)]],\r\n toAddressLine2: ['', Validators.maxLength(100)],\r\n toTownCity: ['', [Validators.required, Validators.maxLength(50)]],\r\n toPostcode: ['', [Validators.required, Validators.maxLength(20)]],\r\n toContactNumber: ['', Validators.maxLength(20)],\r\n toEmail: ['', ErrorHelper.nullableEmailValidator],\r\n toCountry: ['', Validators.required],\r\n toSpecialInstructions: ['', Validators.maxLength(255)],\r\n toSaveAddress: [''],\r\n toIsFavouriteAddress: [''],\r\n fromTitle: ['', Validators.maxLength(10)],\r\n fromFirstName: ['', [Validators.required, Validators.maxLength(50)]],\r\n fromLastName: ['', [Validators.required, Validators.maxLength(50)]],\r\n fromOptionalCompany: ['', Validators.maxLength(50)],\r\n fromAddressLine1: ['', [Validators.required, Validators.maxLength(100)]],\r\n fromAddressLine2: ['', Validators.maxLength(100)],\r\n fromTownCity: ['', [Validators.required, Validators.maxLength(50)]],\r\n fromPostcode: ['', [Validators.required, Validators.maxLength(20)]],\r\n fromCountry: ['', Validators.required],\r\n fromContactNumber: ['', Validators.maxLength(20)],\r\n fromEmail: ['', ErrorHelper.nullableEmailValidator],\r\n fromSpecialInstructions: ['', Validators.maxLength(255)],\r\n fromSaveAddress: [''],\r\n fromIsFavouriteAddress: [''],\r\n logisticsSenderName: ['', Validators.required]\r\n });\r\n\r\n this.specificationsFormGroup = this._formBuilder.group({\r\n referenceNumber: ['', Validators.maxLength(100)],\r\n noOfItems: ['', [Validators.required, ErrorHelper.integerOnlyValidator]],\r\n totalWeight: ['', [Validators.required, ErrorHelper.numberOnlyValidator, ErrorHelper.greaterThanZeroValidator]],\r\n parcel: [''],\r\n valueOfGoods: ['', [Validators.required, ErrorHelper.numberOnlyValidator, ErrorHelper.greaterThanZeroValidator]],\r\n isKg: [''],\r\n isItems: ['']\r\n });\r\n\r\n this.orderDetailsFormGroup = this._formBuilder.group({\r\n definitionOfGoods: ['', Validators.maxLength(255)],\r\n shipmentTypeOther: ['', [Validators.required]],\r\n uploadedFiles: ['', Validators.required],\r\n collectionDate: ['', Validators.required],\r\n comments: ['', Validators.maxLength(255)],\r\n domesticPackageContents: ['', [Validators.required, Validators.maxLength(255)]]\r\n });\r\n\r\n this.confirmationFormGroup = this._formBuilder.group({\r\n agreeToTermsAndConditions: [false, Validators.requiredTrue],\r\n registerForNotifications: [false]\r\n });\r\n\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.specificationsFormGroup.get(`totalWeight`));\r\n this.translateHelper.convertNumberField(this.specificationsFormGroup.get(`valueOfGoods`));\r\n });\r\n\r\n this.specificationsFormGroup.get(`totalWeight`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.specificationsFormGroup.get('totalWeight'));\r\n });\r\n this.specificationsFormGroup.get(`valueOfGoods`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.specificationsFormGroup.get('valueOfGoods'));\r\n });\r\n\r\n this._route.queryParams.subscribe(params => {\r\n\r\n this.setFindPriceFields(params);\r\n\r\n const id = this._route.snapshot.paramMap.get('orderReferenceId');\r\n if (!!id) {\r\n this.orderReference = id;\r\n }\r\n });\r\n\r\n this.displayScreen = true;\r\n }\r\n\r\n reset($event?: any) {\r\n this.toFromAddressFormGroup.reset();\r\n this.specificationsFormGroup.reset();\r\n this.orderDetailsFormGroup.reset();\r\n this.confirmationFormGroup.reset();\r\n }\r\n\r\n getOrderWeight(){\r\n var weightInKg = +this.translateHelper.getNumber(this.specificationsFormGroup.get(\"totalWeight\").value);\r\n return this.specificationsFormGroup.get('isKg').value == 'true' ? weightInKg : weightInKg/1000\r\n }\r\n\r\n private setFindPriceFields(params) {\r\n const isParcel = params['isParcel'];\r\n const numberOfPalettes = params['numberOfPalettes'];\r\n\r\n if (!!isParcel && isParcel) {\r\n this.findPricesisParcel = isParcel;\r\n }\r\n if (!!numberOfPalettes && numberOfPalettes > 0) {\r\n this.numberOfPalettes = +numberOfPalettes;\r\n }\r\n }\r\n\r\n public isDomestic() {\r\n if (this.fromDepot || this.toDepot) {\r\n //Depot is DK, so won't be from FO\r\n return false;\r\n }\r\n\r\n var fromCountryControl = this.toFromAddressFormGroup.get('fromCountry');\r\n var toCountryControl = this.toFromAddressFormGroup.get('toCountry');\r\n\r\n if ((!!fromCountryControl && !!fromCountryControl.value && (fromCountryControl.value.countryCode == \"FO\"\r\n || fromCountryControl.value == \"Faroe Islands\")) && (!!toCountryControl && !!toCountryControl.value && (toCountryControl.value.countryCode == \"FO\"\r\n || toCountryControl.value == \"Faroe Islands\"))) {\r\n if (!this.specificationsFormGroup.get(\"valueOfGoods\").disabled) {\r\n this.specificationsFormGroup.get(\"valueOfGoods\").disable();\r\n }\r\n }\r\n else {\r\n if (this.specificationsFormGroup.get(\"valueOfGoods\").disabled) {\r\n this.specificationsFormGroup.get(\"valueOfGoods\").enable();\r\n }\r\n }\r\n\r\n if (!!fromCountryControl && !!fromCountryControl.value && !!toCountryControl && !!toCountryControl.value && fromCountryControl.value.countryCode == toCountryControl.value.countryCode) {\r\n return true\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public onStepChange(event: any, stepper: MatStepper) {\r\n this.showPrices = false;\r\n\r\n if (stepper.selectedIndex != 1) {\r\n this.getIncoTerms();\r\n }\r\n }\r\n\r\n private getIncoTerms() {\r\n var incoTermsInput: IncoTermsInput = {\r\n isFromPostaDepot: this.fromDepot,\r\n isToCountryFO: false,\r\n isFromCountryFO: false\r\n }\r\n\r\n const toCountryFormControl = this.toFromAddressFormGroup.get(\"toCountry\");\r\n if (!!toCountryFormControl && !!toCountryFormControl.value) {\r\n if ((toCountryFormControl.value as Country).countryCode == \"FO\") {\r\n incoTermsInput.isToCountryFO = true;\r\n }\r\n }\r\n\r\n const fromCountryFormControl = this.toFromAddressFormGroup.get(\"fromCountry\");\r\n if (!!fromCountryFormControl && !!fromCountryFormControl.value) {\r\n if (((fromCountryFormControl.value as Country).countryCode == \"FO\" || fromCountryFormControl.value == \"Faroe Islands\") && !this.fromDepot) {\r\n incoTermsInput.isFromCountryFO = true;\r\n }\r\n }\r\n\r\n this.incoTermsService.GetIncoTerm(incoTermsInput).subscribe(x => this.incoTerms = x.incoTermsTypeCode);\r\n }\r\n\r\n public setCustomsClearanceSelected(isSelected: boolean) {\r\n this.customsClearanceSelected = isSelected;\r\n }\r\n\r\n public setServiceOption(serviceOption: ServiceOption) {\r\n if(!serviceOption){\r\n this.productType = undefined;\r\n }\r\n this.serviceOption = serviceOption;\r\n this.productType = this.serviceOption.ProductType;\r\n this.child.showHideFields(this.serviceOption);\r\n }\r\n\r\n public proceedToOrderDetailsScreen(event: boolean) {\r\n if (event) {\r\n if(this.itemTypes && this.itemTypes.length == 0){\r\n var firstItemType = new CustomsItemType();\r\n firstItemType.netWeight = this.getOrderWeight();\r\n firstItemType.isKg = this.specificationsFormGroup.get('isKg').value;\r\n this.itemTypes.push(firstItemType);\r\n }\r\n this.stepper.selected.completed = event;\r\n this.stepper.selectedIndex = 2;\r\n this.hideOrderDetails = false;\r\n }\r\n }\r\n\r\n public proceedToConfirmationPage(event: boolean) {\r\n if (event) {\r\n this.stepper.selected.completed = event;\r\n this.orderDetailsFormGroup.disable();\r\n this.stepper.selectedIndex = 2;\r\n this.stepper.selectedIndex = 3;\r\n this.hideOrderDetails = true;\r\n }\r\n }\r\n\r\n public setFromDepot(fromDepot: boolean) {\r\n this.fromDepot = fromDepot;\r\n }\r\n\r\n public setToDepot(toDepot: boolean) {\r\n this.toDepot = toDepot;\r\n }\r\n\r\n public setFromAccountAddress(fromAccount: boolean) {\r\n this.fromAccountAddress = fromAccount\r\n }\r\n\r\n public setToAccountAddress(toAccount: boolean) {\r\n this.toAccountAddress = toAccount\r\n }\r\n\r\n public setParcels(items: Array) {\r\n this.showPrices = false;\r\n var currentVolume = this.specificationsFormGroup.get(\"noOfItems\").value;\r\n if (!!items && items.length > 0 && this.totalVolume > 0) {\r\n this.previousVolume = currentVolume;\r\n this.showPrices = true;\r\n this.parcels = items;\r\n }\r\n else {\r\n this.parcels = null;\r\n this.showPrices = false;\r\n this.productType = null;\r\n }\r\n }\r\n\r\n public setTotalVolume(totalVolume: number) {\r\n if (!!totalVolume && totalVolume > 0) {\r\n this.showPrices = true;\r\n this.totalVolume = totalVolume;\r\n }\r\n else {\r\n this.totalVolume = totalVolume;\r\n this.showPrices = false;\r\n }\r\n }\r\n\r\n public setServiceType(productType: ProductType) {\r\n this.productType = productType;\r\n }\r\n\r\n public setSelectedShipmentType(shipmentType: CustomShipmentType) {\r\n this.shipmentType = shipmentType;\r\n }\r\n\r\n public setUploadedFiles(uploadedFiles: any) {\r\n this.uploadedFiles = uploadedFiles;\r\n }\r\n\r\n public setInsurance(setInsurance: boolean) {\r\n this.insurance = setInsurance;\r\n }\r\n\r\n public addressNextClicked(clicked: boolean) {\r\n // complete the current step\r\n this.stepper.selected.completed = true;\r\n // move to next step\r\n this.stepper.selectedIndex = 1;\r\n }\r\n\r\n\r\n public navigateToPreviousPage(event: any) {\r\n this.stepper.selectedIndex = this.stepper.selectedIndex - 1;\r\n }\r\n\r\n public wholeFormValid(): boolean {\r\n if (this.confirmationFormGroup.valid && this.toFromAddressFormGroup.valid && this.specificationsFormGroup.valid && (this.hideOrderDetails || this.orderDetailsFormGroup.valid) && !this.loading) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public CreateUpdateOrder() {\r\n var orderService: OrderService = {\r\n transportTypeId: this.serviceOption.Key,\r\n transportTypeJson: JSON.stringify(this.serviceOption)\r\n }\r\n\r\n var collectionDate: Date\r\n const collectionDateFormControl = this.orderDetailsFormGroup.get(\"collectionDate\");\r\n if (!!collectionDateFormControl && !!collectionDateFormControl.value) {\r\n collectionDate = new Date(collectionDateFormControl.value);\r\n }\r\n\r\n var comments: string;\r\n const commentsFormControl = this.orderDetailsFormGroup.get(\"comments\");\r\n if (!!commentsFormControl && !!commentsFormControl.value) {\r\n comments = commentsFormControl.value\r\n }\r\n\r\n var domesticPackageContents: string;\r\n const domesticContentsFormControl = this.orderDetailsFormGroup.get(\"domesticPackageContents\");\r\n if (!!domesticContentsFormControl && !!domesticContentsFormControl.value) {\r\n domesticPackageContents = domesticContentsFormControl.value\r\n }\r\n else{\r\n const shipmentTypeOtherField = this.orderDetailsFormGroup.get('shipmentTypeOther');\r\n if(!!shipmentTypeOtherField && !!shipmentTypeOtherField.value){\r\n domesticPackageContents = shipmentTypeOtherField.value\r\n }\r\n }\r\n\r\n var estimatedDate: Date\r\n if (!collectionDate) {\r\n estimatedDate = new Date();\r\n }\r\n else {\r\n const collectionDateClone = new Date(collectionDate);\r\n estimatedDate = collectionDateClone;\r\n }\r\n estimatedDate.setDate(estimatedDate.getDate() + this.serviceOption.MinDeliveryDays);\r\n\r\n var isInvoiceRequired: boolean = true;\r\n if (!!this.uploadedFiles && this.uploadedFiles.length > 0) {\r\n isInvoiceRequired = false;\r\n }\r\n\r\n var managedCustomsCost: number = 0;\r\n var managedCustomsJSON: string;\r\n if (!!this.customsClearanceSelected) {\r\n managedCustomsCost = this.serviceOption.ManagedCustomCost;\r\n managedCustomsJSON = this.serviceOption.ManagedCustomCostJson;\r\n }\r\n\r\n var letter: OrderLetter\r\n var letters = new Array();\r\n if (this.serviceOption.ProductType == ProductType.Postage || this.serviceOption.ProductType == ProductType.Postage_Plus) {\r\n var productType = this.productType;\r\n this.specificationsFormGroup.get(\"valueOfGoods\").setValue(undefined);\r\n this.productType = productType;\r\n if (!!this.parcels && this.parcels.length > 0)\r\n {\r\n for (let i = 0; i < this.parcels.length; i++) {\r\n letter = {\r\n transportTypeId: this.serviceOption.Key,\r\n transportTypeJson: JSON.stringify(this.serviceOption),\r\n transportTypeName: this.serviceOption.Name.EN\r\n }\r\n letters.push(letter);\r\n }\r\n }\r\n else {\r\n letter = {\r\n transportTypeId: this.serviceOption.Key,\r\n transportTypeJson: JSON.stringify(this.serviceOption),\r\n transportTypeName: this.serviceOption.Name.EN\r\n }\r\n letters.push(letter);\r\n }\r\n this.parcels = null;\r\n }\r\n\r\n //In the future this may be more than one but for now it's just one\r\n var invoiceLine: InvoiceLine = {\r\n sequenceNo: 0,\r\n quantity: !!this.parcels && this.parcels.length > 0 ? this.parcels.length : 1,\r\n unitPrice: this.serviceOption.Cost,\r\n grossAmount: this.isDomestic() == true ? this.getCostTotalCost(letters, false) : this.serviceOption.Cost + managedCustomsCost,\r\n netAmount: this.isDomestic() == true ? this.getCostTotalCost(letters, true) : this.serviceOption.Cost-this.serviceOption.VATCost,\r\n }\r\n\r\n\r\n var parcelNumericValues = new Array();\r\n\r\n if (!!this.parcels) {\r\n for (i = 0; i < this.parcels.length; i++) {\r\n var parcel: Parcel = {\r\n length: +this.parcels[i].length,\r\n width: +this.parcels[i].width,\r\n height: +this.parcels[i].height,\r\n parcelNo: +this.parcels[i].parcelNo\r\n }\r\n parcelNumericValues.push(parcel);\r\n }\r\n }\r\n\r\n var weightInKg = +this.translateHelper.getNumber(this.specificationsFormGroup.get(\"totalWeight\").value);\r\n\r\n var order: Order = {\r\n orderStateId: OrderState.Order as number,\r\n customsShipmentTypeId: !!this.shipmentType ? this.shipmentType.customsShipmentTypeId : undefined,\r\n productTypeId: this.productType,\r\n fromTitle: this.toFromAddressFormGroup.get(\"fromTitle\").value,\r\n fromFirstName: this.toFromAddressFormGroup.get(\"fromFirstName\").value,\r\n fromLastName: this.toFromAddressFormGroup.get(\"fromLastName\").value,\r\n fromCompanyName: this.toFromAddressFormGroup.get(\"fromOptionalCompany\").value,\r\n fromAddressLine1: this.toFromAddressFormGroup.get(\"fromAddressLine1\").value,\r\n fromAddressLine2: this.toFromAddressFormGroup.get(\"fromAddressLine2\").value,\r\n fromTownCity: this.toFromAddressFormGroup.get(\"fromTownCity\").value,\r\n fromPostcode: this.toFromAddressFormGroup.get(\"fromPostcode\").value,\r\n fromCountryCode: this.fromDepot ? 'DK' : (this.toFromAddressFormGroup.get(\"fromCountry\").value as Country).countryCode,\r\n fromContactNumber: this.toFromAddressFormGroup.get(\"fromContactNumber\").value,\r\n fromContactEmail: this.toFromAddressFormGroup.get(\"fromEmail\").value,\r\n fromSpecialInstructions: this.toFromAddressFormGroup.get(\"fromSpecialInstructions\").value,\r\n toTitle: this.toFromAddressFormGroup.get(\"toTitle\").value,\r\n toFirstName: this.toFromAddressFormGroup.get(\"toFirstName\").value,\r\n toLastName: this.toFromAddressFormGroup.get(\"toLastName\").value,\r\n toCompanyName: this.toFromAddressFormGroup.get(\"toOptionalCompany\").value,\r\n toAddressLine1: this.toFromAddressFormGroup.get(\"toAddressLine1\").value,\r\n toAddressLine2: this.toFromAddressFormGroup.get(\"toAddressLine2\").value,\r\n toTownCity: this.toFromAddressFormGroup.get(\"toTownCity\").value,\r\n toPostcode: this.toFromAddressFormGroup.get(\"toPostcode\").value,\r\n toCountryCode: this.toDepot ? 'DK' : (this.toFromAddressFormGroup.get(\"toCountry\").value as Country).countryCode,\r\n toContactNumber: this.toFromAddressFormGroup.get(\"toContactNumber\").value,\r\n toContactEmail: this.toFromAddressFormGroup.get(\"toEmail\").value,\r\n toSpecialInstructions: this.toFromAddressFormGroup.get(\"toSpecialInstructions\").value,\r\n senderNamePostaDepot: this.toFromAddressFormGroup.get(\"logisticsSenderName\").value,\r\n isFromPostaDepot: this.fromDepot,\r\n isToPostaDepot: this.toDepot,\r\n isFromAccountAddress: this.fromAccountAddress,\r\n isToAccountAddress: this.toAccountAddress,\r\n insuranceSelected: this.insurance,\r\n customerReference: this.specificationsFormGroup.get(\"referenceNumber\").value,\r\n weight: this.specificationsFormGroup.get('isKg').value == 'true' ? weightInKg : weightInKg/1000,\r\n valueOfGoods: this.translateHelper.getNumber(this.specificationsFormGroup.get(\"valueOfGoods\").value),\r\n volume: this.translateHelper.getNumber(this.totalVolume),\r\n collectionDate: collectionDate,\r\n definitionOfGoods: this.orderDetailsFormGroup.get(\"definitionOfGoods\").value,\r\n comments: comments,\r\n domesticPackageContents: domesticPackageContents,\r\n estimatedDeliveryDate: estimatedDate,\r\n service: orderService,\r\n isInvoiceRequired: isInvoiceRequired,\r\n customsClearanceExtraJson: managedCustomsJSON,\r\n totalCost: this.isDomestic() == true ? this.getCostForDomestic(letters, managedCustomsCost, false) : this.serviceOption.Cost + managedCustomsCost,\r\n incoTermsCode: this.incoTerms,\r\n parcels: !!parcelNumericValues && parcelNumericValues.length > 0 ? parcelNumericValues : null,\r\n letters: !!letter ? letters : null,\r\n orderReference: this.orderReference,\r\n attemptedPaymentYN: false,\r\n invoiceLines: [invoiceLine],\r\n barcodePrefix: this.serviceOption.BarcodePrefix,\r\n isCreateTrackTraceRegistration: this.confirmationFormGroup.get('registerForNotifications').value,\r\n isVatIncluded: this.serviceOption.isVatIncluded,\r\n languageCode: this.translateService.currentLang,\r\n customsItemTypes: null\r\n }\r\n\r\n if(!!this.itemTypes && !!this.itemTypes.length){\r\n if(this.itemTypes.length > 1){\r\n order.customsItemTypes = this.itemTypes;\r\n }\r\n else{\r\n if(this.itemTypes[0].description){\r\n order.customsItemTypes = this.itemTypes;\r\n }\r\n }\r\n }\r\n\r\n if (this.loading) {\r\n // Call in progress, do not try another\r\n return;\r\n }\r\n\r\n if (!this.order) {\r\n this.loading = true;\r\n order.invoices = this.uploadedFiles;\r\n this.sendReceiveService.CreateOrder(order).subscribe(x => {\r\n this.isPaying = true;\r\n this.orderReferenceCallBackId = x;\r\n if (localStorage.getItem(\"role\") !== \"private\") {\r\n this.poll();\r\n }\r\n else {\r\n //this.sendReceiveService.dibsPay(`${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=6&orderId=${this.orderReferenceCallBackId}&amount=${this.getCostTotalCost(letters, false)}&test=true`).subscribe(\r\n this.sendReceiveService.dibsPay(`${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=6&orderId=${this.orderReferenceCallBackId}&amount=${this.getCostTotalCost(letters, false)}`).subscribe(\r\n y => {\r\n this.iframeURL = this._sanitizer.bypassSecurityTrustResourceUrl(y)\r\n this.onFrameLoad();\r\n })\r\n }\r\n }, (error) => {\r\n if (error.status == 501) {\r\n this.contactPostaScreen = true;\r\n this.orderReferenceCallBackId = error.error;\r\n }\r\n else {\r\n this.createOrderFailed = true;\r\n }\r\n })\r\n //this.loading = false;\r\n }\r\n else {\r\n var filesToRemove = this.child.getFilesToRemove();\r\n var filesToAdd = this.child.getFilesToAdd();\r\n\r\n //use a forkjoin or something to wait for invoice calls to finish before updating the order\r\n if (!!filesToRemove && filesToRemove.length > 0) {\r\n for (var i = 0; i < filesToRemove.length; i++) {\r\n this.uploadFileService.removeInvoice(filesToRemove[i], order.orderReference).subscribe();\r\n }\r\n }\r\n if (!!filesToAdd && filesToAdd.length > 0) {\r\n for (var i = 0; i < filesToAdd.length; i++) {\r\n this.uploadFileService.addInvoice(filesToAdd[i], order.orderReference).subscribe();\r\n }\r\n }\r\n this.sendReceiveService.UpdateOrder(order).subscribe(x => {\r\n this.orderReferenceCallBackId = order.orderReference;\r\n this.isPaying = true;\r\n this.loading = true;\r\n if (localStorage.getItem(\"role\") === \"private\") {\r\n this.sendReceiveService.dibsPay(`${environment.dibsUrl}/payment/WebPay?locale=${this.translateService.currentLang}&systemType=5&serviceType=6&orderId=${this.orderReferenceCallBackId}&amount=${this.getCostTotalCost(letters, false)}`).subscribe(\r\n y => {\r\n this.iframeURL = this._sanitizer.bypassSecurityTrustResourceUrl(y)\r\n this.onFrameLoad();\r\n })\r\n }\r\n else {\r\n this.onFrameLoad();\r\n }\r\n });\r\n this.loading = false;\r\n }\r\n }\r\n\r\n getCostTotalCost(letters: Array, calculateNet: boolean) {\r\n var customCost = 0;\r\n if (!!this.customsClearanceSelected) {\r\n customCost = this.serviceOption.ManagedCustomCost;\r\n }\r\n\r\n if (this.isDomestic()) {\r\n return this.getCostForDomestic(letters, customCost, calculateNet);\r\n }\r\n return (this.serviceOption.Cost + customCost);\r\n }\r\n\r\n public getCostForDomestic(letters: Array, managedCustomsCost: number, calculateNet: boolean) {\r\n if (!!letters && letters.length > 0) {\r\n if (calculateNet)\r\n {\r\n return (this.serviceOption.Cost * letters.length) + managedCustomsCost - (this.serviceOption.VATCost * letters.length);\r\n }\r\n return (this.serviceOption.Cost * letters.length) + managedCustomsCost;\r\n }\r\n if (calculateNet)\r\n {\r\n return ((this.serviceOption.Cost) * this.parcels.length) + managedCustomsCost - (this.serviceOption.VATCost * this.parcels.length);\r\n }\r\n return (this.serviceOption.Cost * this.parcels.length) + managedCustomsCost;\r\n }\r\n\r\n public getTotalCost(): number {\r\n if (!!this.serviceOption && !!this.parcels) {\r\n if (!!this.serviceOption.ManagedCustomCost && this.customsClearanceSelected) {\r\n if (this.isDomestic()) {\r\n return (this.serviceOption.ManagedCustomCost + (this.serviceOption.Cost * this.parcels.length));\r\n }\r\n return (this.serviceOption.ManagedCustomCost + this.serviceOption.Cost);\r\n }\r\n\r\n\r\n if (this.isDomestic()) {\r\n return this.serviceOption.Cost * this.parcels.length;\r\n }\r\n return this.serviceOption.Cost\r\n }\r\n return 0;\r\n }\r\n\r\n public onFrameLoad() {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n switchMap(() => this.sendReceiveService.GetOrder(this.orderReferenceCallBackId)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (x.isPaid) {\r\n this.stopPolling.next();\r\n document.getElementById(\"paymentFrame\").remove();\r\n\r\n this.isCDSFiled = x.isCDSFiled;\r\n this.orderBarCode = x.barcode;\r\n\r\n this.sendReceiveService.getPaymentCodes(x.productTypeId, this.orderReferenceCallBackId).subscribe(y => {\r\n //Only show parcel codes for postage/parcel\r\n if (x.productTypeId == 4 || x.productTypeId == 10) {\r\n this.paymentCodes = y;\r\n }\r\n this.paymentSuccess = true;\r\n if(this.productType == ProductType.Postage && !this.isDomestic()){\r\n this.showCustomsRequirements = true;\r\n }\r\n else{\r\n this.showCustomsRequirements = false;\r\n }\r\n this.orderReferenceOther = x.orderReferenceOther;\r\n })\r\n //this.orderBarCode = x.\r\n return;\r\n }\r\n if (x.attemptedPaymentYN) {\r\n this.paymentFailed = true;\r\n document.getElementById(\"paymentFrame\").remove();\r\n this.paymentService.updatePaymentStatus({serviceTypeId: 6, orderReference: this.orderReferenceCallBackId}).subscribe();\r\n this.stopPolling.next();\r\n return;\r\n }\r\n }), (err) => { console.log(\"Error getting order after payment: \" + err) };\r\n }\r\n }\r\n\r\n public poll() {\r\n if (!this.intervalSet) {\r\n this.intervalSet = true;\r\n interval(5000).pipe(\r\n startWith(0),\r\n switchMap(() => this.sendReceiveService.GetOrder(this.orderReferenceCallBackId)),\r\n takeUntil(this.stopPolling)).subscribe(x => {\r\n if (!!document.getElementById(\"paymentFrame\"))\r\n {\r\n document.getElementById(\"paymentFrame\").remove();\r\n }\r\n\r\n if (x.isPaid) {\r\n this.stopPolling.next();\r\n this.isCDSFiled = x.isCDSFiled;\r\n this.orderBarCode = x.barcode;\r\n this.sendReceiveService.getPaymentCodes(x.productTypeId, this.orderReferenceCallBackId).subscribe(y => {\r\n //Only show parcel codes for postage/parcel\r\n if (x.productTypeId == 4 || x.productTypeId == 10) {\r\n this.paymentCodes = y;\r\n }\r\n this.paymentSuccess = true;\r\n if(this.productType == ProductType.Postage && !this.isDomestic()){\r\n this.showCustomsRequirements = true;\r\n }\r\n else{\r\n this.showCustomsRequirements = false;\r\n }\r\n this.orderReferenceOther = x.orderReferenceOther;\r\n })\r\n return;\r\n }\r\n if (x.attemptedPaymentYN) {\r\n this.paymentFailed = true;\r\n this.stopPolling.next();\r\n this.paymentService.updatePaymentStatus({serviceTypeId: 6, orderReference: this.orderReferenceCallBackId}).subscribe();\r\n return;\r\n }\r\n }), (err) => { console.log(\"Error getting order after payment: \" + err) };\r\n }\r\n }\r\n\r\n public downloadReceipt() {\r\n // this.downloadingPdfOrder = true;\r\n this.downloadingReceipt = true;\r\n if (this.productType == 4) {\r\n this.productType = ProductType.Postage\r\n }\r\n\r\n this.sendReceiveService.downloadReceipt(this.productType, this.orderReferenceCallBackId, this.translateService.currentLang).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingReceipt = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingReceipt = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public downloadPrintLabel() {\r\n this.downloadingPrintLabel = true;\r\n this.sendReceiveService.downloadPrintLabel(this.orderReferenceCallBackId).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingPrintLabel = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingPrintLabel = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public downloadCDS() {\r\n this.downloadingCDS = true;\r\n this.sendReceiveService.downloadCDS(this.orderBarCode).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingCDS = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingCDS = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public getPageTitle() {\r\n var temp = this.staticContentService.getPageTitle();\r\n return temp;\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n public quoteSaved(event: string) {\r\n this.quoteId = event;\r\n }\r\n\r\n public downloadCN22()\r\n {\r\n this.downloadingCN22 = true;\r\n // this.buyPostageService.downloadCN22(this.orderConfirmationDetails.orderReference).subscribe(x => {\r\n // const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n // const blob = new Blob([byteArray], {type: 'application/pdf'});\r\n // const url = window.URL.createObjectURL(blob);\r\n // // window.open(url);\r\n // var link = document.createElement('a');\r\n // link.href = url;\r\n // link.download = x.fileName;\r\n // link.click();\r\n // this.downloadingCN22 = false;\r\n // // this.downloadingReceipt = false;\r\n // }, (error) => {\r\n // // this.downloadingReceipt = false;\r\n // this.downloadingCN22 = false;\r\n // })\r\n window.open(\"https://cdn.posta.fo/media/5s2n5wv0/cn22.pdf\", '_blank').focus();\r\n this.downloadingCN22 = false;\r\n }\r\n\r\n public sendCN22Email()\r\n {\r\n if (!!this.cn22Email)\r\n {\r\n this.sendingCN22Email = true;\r\n this.buyPostageService.emailCN22(this.cn22Email).subscribe(x => {\r\n this.emailCN22SentTo = this.cn22Email;\r\n this.showEmailCN22Success = true;\r\n this.sendingCN22Email = false;\r\n }, (error) => {\r\n this.sendingCN22Email = false;\r\n })\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n 1. {{'send_receive.send_receive.step_one.step_one_title' | translate}}1\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n 2. {{'send_receive.send_receive.step_two.step_two_title' | translate}}2\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n 3. {{'send_receive.send_receive.step_three.step_three_title' | translate}}3\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 4. {{'send_receive.send_receive.step_four.step_four_title' | translate}}4\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.confirmation.posta_id' | translate}}: {{orderReferenceCallBackId}}

\r\n
\r\n
\r\n
\r\n {{'send_receive.send_receive.confirmation.confirmation_body' | translate}}\r\n
\r\n
0\" class=\"paid-order-codes\">\r\n {{'send_receive.send_receive.confirmation.payment_codes_title' | translate}}:\r\n
    \r\n
  • {{paymentCodes}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'buy_postage.confirmation_page.custom_requirements' | translate}}

\r\n
\r\n

{{'buy_postage.confirmation_page.need_custom_forms' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.confirmation.payment_failed' | translate}}: {{orderReferenceCallBackId}}

\r\n
\r\n {{'send_receive.send_receive.confirmation.payment_failed_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.confirmation.contact_posta_title' | translate}}: {{orderReferenceCallBackId}}

\r\n
\r\n {{'send_receive.send_receive.confirmation.contact_posta_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.confirmation.create_order_failed_title' | translate}}

\r\n
\r\n {{'send_receive.send_receive.confirmation.create_order_failed_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.quote.posta_id' | translate}}: {{quoteId}}

\r\n
\r\n {{'send_receive.send_receive.quote.quote_body' | translate}}\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UserService } from '../../../../account/services/user.service';\r\nimport { User } from '../../../../account/entities/user';\r\nimport { IncoTermsService } from '../../../../shared/services/inco-terms.service';\r\nimport { Country } from '../../../../account/entities/Country';\r\nimport { IncoTermsInput } from '../../../../shared/entities/IncoTermsInput';\r\nimport { TransportType } from '../../../../shared/price-matrix/entities/TransportType';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CustomShipmentType } from '../../../../shared/entities/customShipmentType';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SendReceiveService } from '../services/send-receive.service';\r\nimport { Address } from '../../../../account/entities/address';\r\nimport { CountryService } from '../../../../shared/services/country.service';\r\nimport { Parcel } from '../../../entities/parcel';\r\nimport { ServiceOption } from '../../../entities/serviceOption';\r\nimport { Shipment } from '../../../entities/shipment';\r\nimport { StaticContentHelper } from '../../../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../../../shared/services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-send-receive-confirmation',\r\n templateUrl: './send-receive-confirmation.component.html',\r\n styleUrls: ['./send-receive-confirmation.component.scss']\r\n})\r\nexport class SendReceiveConfirmationComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n addressForm: FormGroup\r\n\r\n @Input()\r\n specificationForm: FormGroup\r\n\r\n @Input()\r\n orderDetailsForm: FormGroup\r\n\r\n @Input()\r\n confirmationForm: FormGroup\r\n\r\n @Input()\r\n serviceOption: ServiceOption\r\n\r\n @Input()\r\n items: Array;\r\n\r\n @Input()\r\n shipmentType: CustomShipmentType;\r\n\r\n @Input()\r\n uploadedFiles: any;\r\n\r\n @Input()\r\n insuranceSelected: boolean;\r\n\r\n @Input()\r\n parcelVolume: number;\r\n\r\n @Input()\r\n fromDepot: boolean;\r\n\r\n @Input()\r\n toDepot: boolean;\r\n\r\n @Input()\r\n fromAccountAddress: boolean;\r\n\r\n @Input()\r\n toAccountAddress: boolean;\r\n\r\n @Input()\r\n incoTerms: string;\r\n\r\n @Input()\r\n customsClearanceSelected: boolean;\r\n\r\n @Input()\r\n psModule: any;\r\n\r\n @Input()\r\n totalCost: number;\r\n\r\n @Input()\r\n isDomestic: boolean;\r\n\r\n depotAddress: Address;\r\n\r\n userDetails: User;\r\n\r\n userProfile: any;\r\n\r\n countries: Array = new Array();\r\n\r\n public psModuleContent: any;\r\n\r\n item1Link: any;\r\n\r\n item2Link: any;\r\n\r\n item3Link: any;\r\n\r\n getFromName(){\r\n if(this.fromAccountAddress && localStorage.getItem(\"role\") != \"private\" && this.userProfile.company){\r\n return this.userProfile.company.companyName;\r\n }\r\n else{\r\n return `${this.addressForm.get('fromFirstName').value} ${this.addressForm.get('fromLastName').value}`\r\n }\r\n }\r\n\r\n constructor(\r\n private userAccountService: UserService,\r\n private translateService: TranslateService,\r\n private sendReceiveService: SendReceiveService,\r\n private countryService: CountryService,\r\n private staticContentService: StaticContentService,\r\n private router: Router,\r\n private userService: UserService) { }\r\n\r\n ngOnInit(): void {\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.userDetails = x;\r\n })\r\n\r\n var role = localStorage.getItem(\"role\");\r\n if (role == \"private\")\r\n {\r\n this.userService.getIndividualUserProfile().subscribe(x =>{\r\n this.userProfile = x;\r\n })\r\n }\r\n else{\r\n this.userService.getBusinessUserProfile().subscribe(x =>{\r\n this.userProfile = x;\r\n })\r\n }\r\n\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x;\r\n // this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n // this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n })\r\n\r\n this.psModuleContent = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/send-receive');\r\n if (!!this.psModuleContent) {\r\n this.item1Link = this.psModuleContent.Item5Link;\r\n this.item2Link = this.psModuleContent.Item1Link; //Item6Link;\r\n this.item3Link = this.psModuleContent.Item2Link; //Item7Link;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.log(\"current items\" + this.items);\r\n if (this.fromDepot) {\r\n this.getDepotAddress();\r\n }\r\n if (changes['psModule']) {\r\n this.item1Link = this.psModule.Item5Link;\r\n this.item2Link = this.psModule.Item1Link; //Item6Link;\r\n this.item3Link = this.psModule.Item2Link; //Item7Link;\r\n }\r\n }\r\n\r\n public getLetterSizeName(): string {\r\n var letterSizeControl = this.specificationForm.get(\"letterSize\");\r\n if (!!letterSizeControl && !!letterSizeControl.value) {\r\n var letterSizeControlValue: TransportType = letterSizeControl.value;\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${letterSizeControlValue.Name.EN}`;\r\n case \"fo\":\r\n return `${letterSizeControlValue.Name.FO}`;\r\n }\r\n }\r\n }\r\n\r\n public getDepotAddress() {\r\n if (!!this.serviceOption) {\r\n if (this.serviceOption.Name.EN.toLocaleLowerCase().includes('sea')) {\r\n this.sendReceiveService.getDepotAddress(true).subscribe(x => {\r\n this.depotAddress = x;\r\n })\r\n }\r\n else {\r\n this.sendReceiveService.getDepotAddress(false).subscribe(x => {\r\n this.depotAddress = x;\r\n })\r\n }\r\n }\r\n }\r\n\r\n public getCountryName(controlFormValue: Country) {\r\n if (!!controlFormValue) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${controlFormValue.countryNameEN}`;\r\n case \"fo\":\r\n return `${controlFormValue.countryNameFO}`;\r\n }\r\n }\r\n }\r\n\r\n public getCountryNameByCode(countryCode: string) {\r\n var country = this.countries.find(x => x.countryCode == countryCode);\r\n\r\n if (!!country) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n }\r\n\r\n public getCostPerItem(): number {\r\n if (!!this.serviceOption)\r\n {\r\n if (!!this.serviceOption.ManagedCustomCost && this.customsClearanceSelected)\r\n {\r\n return (this.serviceOption.ManagedCustomCost + this.serviceOption.Cost);\r\n }\r\n return this.serviceOption.Cost;\r\n }\r\n return 0;\r\n }\r\n\r\n public getVATCost(): number {\r\n if (!!this.serviceOption)\r\n {\r\n if (this.isDomestic) {\r\n return this.serviceOption.VATCost * this.items.length;\r\n }\r\n return this.serviceOption.VATCost;\r\n }\r\n }\r\n\r\n public deleteFile(file: any) {\r\n this.uploadedFiles = this.uploadedFiles.filter(x => x !== file);\r\n }\r\n\r\n public getCollectionDate() {\r\n if (!this.orderDetailsForm.get('collectionDate').value)\r\n {\r\n return \r\n }\r\n const date = new Date(this.orderDetailsForm.get('collectionDate').value).toLocaleString('en-GB', { timeZone: 'UTC' });\r\n return date.split(',')[0];\r\n }\r\n\r\n public getEstimatedDeliveryDate() {\r\n var dateString: string = \"\";\r\n\r\n if (!!this.serviceOption) {\r\n var estimatedDeliveryDays = this.serviceOption.MinDeliveryDays + 1;\r\n\r\n if (!!this.orderDetailsForm.get('collectionDate').value)\r\n {\r\n var date = new Date(this.orderDetailsForm.get('collectionDate').value)\r\n date = this.addDays(date, estimatedDeliveryDays);\r\n \r\n dateString = date.toLocaleString('en-GB', { timeZone: 'UTC' });\r\n }\r\n else {\r\n var todaysDate = new Date();\r\n date = this.addDays(todaysDate, estimatedDeliveryDays);\r\n dateString = date.toLocaleString('en-GB', { timeZone: 'UTC' });\r\n }\r\n return dateString.split(',')[0];\r\n }\r\n }\r\n\r\n public getVolume() {\r\n var volume: number = 0;\r\n if (!!this.items) {\r\n for (let i = 0; i < this.items.length; i++) {\r\n volume += this.items[i].length * this.items[i].width * this.items[i].height;\r\n }\r\n }\r\n if (!!this.parcelVolume) {\r\n volume = this.parcelVolume;\r\n }\r\n if (!!this.specificationForm.get(\"totalParcelVolume\") && !!this.specificationForm.get(\"totalParcelVolume\").value) {\r\n volume = this.specificationForm.get(\"totalParcelVolume\").value;\r\n }\r\n return volume;\r\n\r\n }\r\n\r\n public getWeightMeasurement() {\r\n if(!!this.specificationForm.get('isKg') && this.specificationForm.get('isKg').value == \"false\"){\r\n return \"g\";\r\n }\r\n if (!!this.items && this.items.length > 0) {\r\n return \"kg\"\r\n }\r\n return \"g\";\r\n }\r\n\r\n public getServiceOptionName(): string {\r\n if (!!this.serviceOption) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${this.serviceOption.Name.EN}`;\r\n case \"fo\":\r\n return `${this.serviceOption.Name.FO}`;\r\n }\r\n }\r\n }\r\n\r\n private addDays(date: Date, days: number): Date {\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n public getCustomsShipmentTypeName(shipmentType: CustomShipmentType) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${this.shipmentType.customsShipmentTypeNameEN}`;\r\n case \"fo\":\r\n return `${this.shipmentType.customsShipmentTypeNameFO}`;\r\n }\r\n }\r\n\r\n public openRouteInNewWindow(route: string) {\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.your_details' | translate}}

\r\n

{{userDetails.title}} {{userDetails.firstName}} {{userDetails.lastName}}

\r\n

{{userDetails.addressLine1}}

\r\n \r\n

{{userDetails.townCity}}

\r\n

{{userDetails.postcode}}

\r\n

{{getCountryNameByCode(userDetails.country.countryCode)}}

\r\n {{userDetails.contactNumber}}\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.service' | translate}}

\r\n
\r\n

{{getServiceOptionName()}}

\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.from' | translate}}

\r\n

{{getFromName()}}

\r\n

{{addressForm.get('fromAddressLine1').value}}

\r\n \r\n

{{addressForm.get('fromTownCity').value}}

\r\n

{{addressForm.get('fromPostcode').value}}

\r\n

{{getCountryName(addressForm.get('fromCountry').value)}}

\r\n

{{addressForm.get('fromContactNumber').value}}

\r\n \r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.from' | translate}}

\r\n

{{depotAddress.firstName}}

\r\n

{{depotAddress.addressLine1}}

\r\n

{{depotAddress.townCity}}

\r\n

{{depotAddress.postcode}}

\r\n

{{getCountryNameByCode(depotAddress.countryCode)}}

\r\n

{{depotAddress.contactNumber}}

\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.to' | translate}}

\r\n

{{addressForm.get('toFirstName').value}}\r\n {{addressForm.get('toLastName').value}}\r\n

\r\n

{{addressForm.get('toAddressLine1').value}}

\r\n \r\n

{{addressForm.get('toTownCity').value}}

\r\n

{{addressForm.get('toPostcode').value}}

\r\n

{{getCountryName(addressForm.get('toCountry').value)}}

\r\n

{{addressForm.get('toContactNumber').value}}

\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.to' | translate}}

\r\n {{'send_receive.send_receive.step_four.depot' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.your_ref' | translate}}

\r\n
{{specificationForm.get('referenceNumber').value}}
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.collection_date' | translate}}

\r\n
{{getCollectionDate()}}
\r\n
\r\n

{{'send_receive.send_receive.step_four.estimated_delivery_date' | translate}}\r\n

\r\n

{{getEstimatedDeliveryDate()}}

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.size' | translate}}

\r\n
{{items.length}} x {{'send_receive.send_receive.step_four.parcels'\r\n | translate}} ({{getCostPerItem()}}\r\n {{'send_receive.send_receive.service_options.price_per_unit_text' |\r\n translate}})
\r\n
\r\n
\r\n

L{{item.length}}cm W{{item.width}}cm H{{item.height}}cm

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.volume' | translate}}

\r\n {{this.specificationForm.get('totalParcelVolume').value}}m³\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.weight' | translate}}

\r\n
{{specificationForm.get('totalWeight').value}}\r\n {{getWeightMeasurement()}}
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.managed_customs_clearance' |\r\n translate}}

\r\n

{{'send_receive.send_receive.step_four.managed_customs_clearance_included' |\r\n translate}} - {{serviceOption.ManagedCustomCost}} DKK

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.key_terms' | translate}}\r\n

\r\n \r\n
\r\n

{{'send_receive.send_receive.step_four.description' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.insurance' | translate}}

\r\n {{'send_receive.send_receive.step_four.insurance_tooltip' |\r\n translate}}\r\n
\r\n

= 0;else nocover\">\r\n {{this.serviceOption.InsuranceCost}} DKK

\r\n \r\n

{{'send_receive.send_receive.step_four.no_insurance_cover' | translate}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.comments' | translate}}

\r\n

{{orderDetailsForm.get('comments').value}}

\r\n
\r\n
\r\n \r\n

{{'send_receive.send_receive.step_four.shipment_type' | translate}}

\r\n
{{getCustomsShipmentTypeName(shipmentType)}}\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.customs_uploads' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.company_name_seller_of_goods' | translate}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{file.fileName}}\r\n
\r\n
\r\n {{file.companyName}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.total' | translate}}: {{totalCost | currency: 'DKK':''}} DKK\r\n

\r\n
\r\n
0\" class=\"row flex-end col-lg-12\">\r\n

{{'send_receive.send_receive.step_four.total_vat' | translate}}: {{getVATCost() | currency: 'DKK':''}} DKK\r\n

\r\n
\r\n
\r\n \r\n
{{'send_receive.send_receive.step_four.register_notifications' | translate}}
\r\n
\r\n
\r\n
\r\n \r\n
{{'send_receive.send_receive.step_four.agree_terms_and_conditions' | translate}}\r\n
\r\n
\r\n
\r\n
","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { CountryService } from \"../../../../shared/services/country.service\";\r\nimport { Country } from \"../../../../account/entities/Country\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CountryResolver implements Resolve> {\r\n\r\n constructor(private countryService: CountryService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.countryService.getAll();\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Order } from \"../../../entities/Order\";\r\nimport { SendReceiveService } from \"./send-receive.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OrderResolver implements Resolve {\r\n\r\n constructor(private sendReceiveService: SendReceiveService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.sendReceiveService.GetOrder(route.paramMap.get('orderReferenceId'));\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, NgModule } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Address } from '../../../../account/entities/address';\r\nimport { DefaultShipmentDimensions } from '../../../entities/DefaultShipmentDimensions';\r\nimport { Order } from '../../../entities/Order';\r\nimport { environment } from '../../../../../environments/environment'\r\nimport { DownloadOutput } from '../../../entities/DownloadOutput'\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SendReceiveService {\r\n\r\n constructor(private httpClient: HttpClient, private translateService: TranslateService) {\r\n }\r\n\r\n public GetDefaultShipmentDimensions(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/DefaultShipmentDimensions`) as Observable;\r\n }\r\n\r\n public CreateOrder(order: Order): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/SendReceiveOrder`, order, { responseType: 'text' }) as Observable;\r\n }\r\n\r\n public GetOrder(orderReference: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder?orderReference=${orderReference}&languageCode=${this.translateService.currentLang}`) as Observable;\r\n }\r\n\r\n public UpdateOrder(order: Order): Observable {\r\n return this.httpClient.put(`${environment.apiUrl}/api/SendReceiveOrder`, order) as Observable;\r\n }\r\n\r\n public dibsPay(url: string): Observable {\r\n return this.httpClient.get(url) as Observable;\r\n }\r\n\r\n public getDepotAddress(isSea: boolean): Observable
{\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/DepotAddress?isSea=${isSea}`) as Observable
;\r\n }\r\n\r\n public getPaymentCodes(serviceTypeId: number, orderRef: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/PaymentCodes?serviceId=${serviceTypeId}&orderRef=${orderRef}`) as Observable;\r\n }\r\n\r\n public downloadReceipt(serviceTypeId: number, orderRef: string, langCode: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/DownloadReceipt?serviceType=${serviceTypeId}&orderReference=${orderRef}&languageCode=${langCode}`) as Observable;\r\n }\r\n\r\n public downloadPrintLabel(orderRef: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/DownloadPrintLabel?orderRef=${orderRef}`) as Observable;\r\n }\r\n\r\n public downloadCDS(orderBarcode: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/CDSPrint?barCode=${orderBarcode}`) as Observable;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { CustomShipmentType } from \"../../../../shared/entities/customShipmentType\";\r\nimport { CustomShipmentTypeService } from \"../../../../shared/services/custom-shipment-types.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ShipmentTypesResolver implements Resolve> {\r\n\r\n constructor(private shipmentTypeService: CustomShipmentTypeService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.shipmentTypeService.getAll();\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { PriceMatrixService } from '../../../../shared/price-matrix/services/price-matrix.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TaxResolver implements Resolve {\r\n\r\n constructor(private priceMatrixService: PriceMatrixService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.priceMatrixService.getTaxPercentage();\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Address } from '../../../../account/entities/address';\r\nimport { DefaultShipmentDimensions } from '../../../entities/DefaultShipmentDimensions';\r\nimport { Order } from '../../../entities/Order';\r\nimport { TrackTraceItem } from '../../../entities/trackTraceItem';\r\nimport { environment } from '../../../../../environments/environment'\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TrackTraceService {\r\n\r\n constructor(private httpClient: HttpClient, private translateService: TranslateService) {\r\n }\r\n\r\n public getTrackTraceDetailsByCode(code: string): Observable> {\r\n return this.httpClient.get(`${environment.apiUrl}/api/TrackTrace?trackTraceCode=${code}&languageCode=${this.translateService.currentLang}`) as Observable>;\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit, OnChanges } from '@angular/core';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { PriceMatrixService } from '../../../../shared/price-matrix/services/price-matrix.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TranslationString } from '../../../../shared/price-matrix/entities/TranslationString';\r\nimport { ServiceType } from '../../../../shared/price-matrix/enums/ServiceType';\r\nimport { SendReceiveService } from '../services/send-receive.service';\r\nimport { Order } from '../../../entities/Order';\r\nimport { Parcel } from '../../../entities/parcel';\r\nimport { DefaultShipmentDimensions } from '../../../entities/DefaultShipmentDimensions';\r\nimport { ErrorHelper } from '../../../../shared/helpers/error-helper';\r\nimport { TranslationHelper } from '../../../../shared/helpers/translation-helper';\r\nimport { DefaultWeightInterval } from '../../../../shared/price-matrix/entities/DefaultWeightInterval';\r\n\r\n@Component({\r\n selector: 'app-send-and-receive-specification',\r\n templateUrl: './send-and-receive-specification.component.html',\r\n styleUrls: ['./send-and-receive-specification.component.scss', './send-receive-styles.scss']\r\n})\r\nexport class SendAndReceiveSpecificationComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup\r\n\r\n @Input()\r\n order: Order;\r\n\r\n @Output()\r\n items: EventEmitter> = new EventEmitter();\r\n\r\n @Output()\r\n totalVolume: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n goBackToAddress: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n serviceType: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n incoTerms: string;\r\n\r\n public parcels: Array = new Array();\r\n\r\n public numberOfItems: number;\r\n\r\n public isParcelsSelected: boolean = true;\r\n\r\n public insuranceSelected: boolean = true;\r\n\r\n public unknownVolume: boolean = false;\r\n\r\n public parcelTotalVolumeUnknown: boolean = false;\r\n\r\n public itemNumberUnknown: boolean = false;\r\n\r\n public sizeTitle: string = \"\";\r\n\r\n public insuranceNotSelected: boolean = true;\r\n\r\n public insuranceIsSelected: any = true;\r\n\r\n public isKg: boolean = true;\r\n\r\n public isItems: boolean = true;\r\n\r\n @Input()\r\n fromCountryControl: FormControl;\r\n\r\n @Input()\r\n toCountryControl: FormControl;\r\n\r\n @Input()\r\n isParcel: string;\r\n\r\n @Input()\r\n fromDepot: boolean;\r\n\r\n @Input()\r\n toDepot: boolean;\r\n\r\n parcelValue: any;\r\n\r\n @Output()\r\n insurance: EventEmitter = new EventEmitter();\r\n\r\n unknownParcelDimensions: boolean = false;\r\n\r\n attemptedToGetPrices: boolean = false;\r\n\r\n defaultShipmentDimensions: DefaultShipmentDimensions = new DefaultShipmentDimensions();\r\n\r\n //This is used to populate LWH fields upon weight input\r\n defaultWeightValues: Array;\r\n\r\n @Output()\r\n onClear: EventEmitter = new EventEmitter();\r\n\r\n constructor(private priceMatrixService: PriceMatrixService,\r\n private translateService: TranslateService,\r\n private translateHelper: TranslationHelper,\r\n private errorHelper: ErrorHelper) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n Object.keys(this.sendReceiveForm.controls).forEach(key => {\r\n this.sendReceiveForm.get(key).valueChanges.subscribe(() => {\r\n this.items.emit(null);\r\n });\r\n });\r\n\r\n this.priceMatrixService.getDefaultWeightIntervals().subscribe(x => {this.defaultWeightValues = x; console.log(this.defaultWeightValues)});\r\n\r\n this.sendReceiveForm.get('isItems').setValue('true');\r\n this.sendReceiveForm.get('isKg').setValue('true');\r\n\r\n //TODO catch error\r\n\r\n //When viewing order\r\n if (!!this.order) {\r\n this.sendReceiveForm.get(\"referenceNumber\").setValue(this.order.customerReference);\r\n // this.setParcelsForExistingOrder();\r\n if (this.order.insuranceSelected) {\r\n this.insuranceIsSelected = true;\r\n }\r\n else {\r\n this.insuranceNotSelected = true;\r\n }\r\n\r\n this.sendReceiveForm.get(\"totalWeight\").setValue(this.order.weight);\r\n this.sendReceiveForm.get(\"valueOfGoods\").setValue(this.order.valueOfGoods);\r\n }\r\n else {\r\n this.insuranceIsSelected = true;\r\n }\r\n\r\n this.sendReceiveForm.get(\"valueOfGoods\").valueChanges.subscribe(x => {\r\n this.items.emit(null);\r\n });\r\n this.sendReceiveForm.get(\"totalWeight\").valueChanges.subscribe(x => {\r\n this.items.emit(null);\r\n\r\n //Set default LWH if fields haven't been touched and is currently set to items instead of volume.\r\n if (this.isItems && !this.parcelInputsTouched())\r\n {\r\n setTimeout(() => {\r\n this.setParcelDefaultDimensions(+x)\r\n }, 600);\r\n }\r\n });\r\n this.sendReceiveForm.get(\"noOfItems\").valueChanges.subscribe(x => {\r\n this.items.emit(null);\r\n this.onChange();\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('noOfItems'));\r\n });\r\n\r\n this.toggleIsItems(true);\r\n }\r\n\r\n\r\n\r\n public hasErrors(field) {\r\n var errors = this.sendReceiveForm?.get(field)?.errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.sendReceiveForm?.get(field)?.errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public isFromToCountryFO() {\r\n if(this.fromDepot || this.toDepot){\r\n if (this.sendReceiveForm.get(\"valueOfGoods\").disabled)\r\n {\r\n this.sendReceiveForm.get(\"valueOfGoods\").enable();\r\n }\r\n return false;\r\n }\r\n\r\n if ((!!this.fromCountryControl && !!this.fromCountryControl.value && (this.fromCountryControl.value.countryCode == \"FO\"\r\n || this.fromCountryControl.value == \"Faroe Islands\")) && (!!this.toCountryControl && !!this.toCountryControl.value && (this.toCountryControl.value.countryCode == \"FO\"\r\n || this.toCountryControl.value == \"Faroe Islands\"))) {\r\n if (!this.sendReceiveForm.get(\"valueOfGoods\").disabled)\r\n {\r\n this.sendReceiveForm.get(\"valueOfGoods\").disable();\r\n }\r\n return true;\r\n }\r\n\r\n if (this.sendReceiveForm.get(\"valueOfGoods\").disabled)\r\n {\r\n this.sendReceiveForm.get(\"valueOfGoods\").enable();\r\n }\r\n return false;\r\n }\r\n\r\n private setParcelsForExistingOrder() {\r\n if (!!this.order.parcels && this.order.parcels.length > 0) {\r\n this.isParcelsSelected = true;\r\n this.sendReceiveForm.get(\"numberOfPalettes\").disable();\r\n this.sendReceiveForm.get(\"letterSize\").setValidators(null);\r\n this.sendReceiveForm.get(\"letterSize\").reset();\r\n this.sendReceiveForm.get(\"shipmentVolume\").reset();\r\n this.parcelValue = 0;\r\n\r\n var parcels = this.order.parcels;\r\n\r\n //Add the first parcel and then the remaining using the functions we already have\r\n this.addInitialParcels();\r\n this.sendReceiveForm.get(`parcelLength0`).setValue(parcels[0].length);\r\n this.sendReceiveForm.get(`parcelWidth0`).setValue(parcels[0].width);\r\n this.sendReceiveForm.get(`parcelHeight0`).setValue(parcels[0].height);\r\n if (this.parcels[0].length == 0 || this.parcels[0].width == 0 || this.parcels[0].height == 0) {\r\n this.parcels[0].unknownDimensions = true;\r\n this.sendReceiveForm.addControl(\"totalParcelVolume\", new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('totalParcelVolume'));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`totalParcelVolume`));\r\n });\r\n \r\n\r\n var volumeFormControl = this.sendReceiveForm.get(\"totalParcelVolume\")\r\n volumeFormControl.enable();\r\n volumeFormControl.setValue(this.order.volume);\r\n this.unknownParcelDimensions = true;\r\n this.disableAllParcelControls();\r\n }\r\n\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(parcels.length);\r\n this.numberOfItems = parcels.length;\r\n this.addAdditionalParcels();\r\n var i: number;\r\n for (i = 1; i < this.parcels.length; i++) {\r\n var currentParcel = parcels[i];\r\n this.sendReceiveForm.get(`parcelLength${i}`).setValue(currentParcel.length);\r\n this.sendReceiveForm.get(`parcelWidth${i}`).setValue(currentParcel.width);\r\n this.sendReceiveForm.get(`parcelHeight${i}`).setValue(currentParcel.height);\r\n if (!currentParcel.length || !currentParcel.width || !currentParcel.height) {\r\n this.parcels[i].unknownDimensions = true;\r\n if (!this.sendReceiveForm.get(\"totalParcelVolume\")) {\r\n this.sendReceiveForm.addControl(\"totalParcelVolume\", new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('totalParcelVolume'));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`totalParcelVolume`));\r\n });\r\n var volumeFormControl = this.sendReceiveForm.get(\"totalParcelVolume\")\r\n volumeFormControl.enable();\r\n volumeFormControl.setValue(this.order.volume);\r\n this.unknownParcelDimensions = true;\r\n this.disableAllParcelControls();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setParcelDefaultDimensions(weight: number) {\r\n if(!this.isKg){\r\n weight = weight / 1000;\r\n }\r\n var interval = this.defaultWeightValues.find(x => weight <= x.to);\r\n if (!!interval)\r\n {\r\n for (let i = 0; i < this.parcels.length; i++) {\r\n this.sendReceiveForm.get(`parcelLength${i}`).setValue(interval.length);\r\n this.sendReceiveForm.get(`parcelWidth${i}`).setValue(interval.width);\r\n this.sendReceiveForm.get(`parcelHeight${i}`).setValue(interval.height);\r\n }\r\n }\r\n }\r\n\r\n parcelInputsTouched(): boolean {\r\n for (let i = 0; i < this.parcels.length; i++) {\r\n if (!!this.sendReceiveForm.get(`parcelLength${i}`).value || !!this.sendReceiveForm.get(`parcelWidth${i}`).value || !!this.sendReceiveForm.get(`parcelHeight${i}`).value)\r\n {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n ngOnChanges(): void {\r\n }\r\n\r\n public parcelsSelected(event: any) {\r\n this.isParcelsSelected = true;\r\n this.sendReceiveForm.get(\"numberOfPalettes\").disable();\r\n this.sendReceiveForm.get(\"shipmentVolume\").reset();\r\n\r\n if (!this.sendReceiveForm.get(\"noOfItems\").value || this.sendReceiveForm.get(\"noOfItems\").value === \"0\") {\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(\"1\");\r\n this.numberOfItems = 1;\r\n }\r\n\r\n if (this.isParcelsSelected) {\r\n if (this.parcels.length === 0) {\r\n this.addInitialParcels();\r\n }\r\n }\r\n this.sendReceiveForm.get(\"shipmentLength\").disable();\r\n this.sendReceiveForm.get(\"shipmentWidth\").disable();\r\n this.sendReceiveForm.get(\"shipmentHeight\").disable();\r\n this.sendReceiveForm.get(\"shipmentVolume\").disable();\r\n\r\n }\r\n\r\n public setParcelTotalVolumeUnknown() {\r\n this.unknownVolume = !this.unknownVolume;\r\n this.parcelTotalVolumeUnknown = !this.parcelTotalVolumeUnknown;\r\n const volumeControl = this.sendReceiveForm.get(\"totalParcelVolume\");\r\n\r\n if (this.parcelTotalVolumeUnknown)\r\n {\r\n volumeControl.reset();\r\n volumeControl.disable();\r\n }\r\n else\r\n {\r\n volumeControl.enable();\r\n }\r\n }\r\n\r\n private setDefaultVolumeShipment() {\r\n if (!!this.sendReceiveForm.get(\"numberOfPalettes\")) {\r\n if (Number(this.sendReceiveForm.get(\"numberOfPalettes\").value > 1)) {\r\n this.sendReceiveForm.get(\"shipmentVolume\").setValue(this.defaultShipmentDimensions.volume * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"shipmentVolume\").setValue(this.defaultShipmentDimensions.volume);\r\n }\r\n }\r\n\r\n this.sendReceiveForm.get(\"numberOfPalettes\").valueChanges.subscribe(x => {\r\n if (!this.sendReceiveForm.get(\"shipmentVolume\").touched) {\r\n this.sendReceiveForm.get(\"shipmentVolume\").setValue(this.defaultShipmentDimensions.volume * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n });\r\n }\r\n\r\n private setDefaultShipmentDimensions() {\r\n if (!!this.sendReceiveForm.get(\"numberOfPalettes\")) {\r\n if (Number(this.sendReceiveForm.get(\"numberOfPalettes\").value > 1)) {\r\n this.sendReceiveForm.get(\"shipmentLength\").setValue(this.defaultShipmentDimensions.length * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"shipmentLength\").setValue(this.defaultShipmentDimensions.length);\r\n }\r\n }\r\n\r\n if (!!this.sendReceiveForm.get(\"numberOfPalettes\")) {\r\n if (Number(this.sendReceiveForm.get(\"numberOfPalettes\").value > 1)) {\r\n this.sendReceiveForm.get(\"shipmentWidth\").setValue(this.defaultShipmentDimensions.width * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"shipmentWidth\").setValue(this.defaultShipmentDimensions.width);\r\n }\r\n }\r\n\r\n if (!!this.sendReceiveForm.get(\"numberOfPalettes\")) {\r\n if (Number(this.sendReceiveForm.get(\"numberOfPalettes\").value > 1)) {\r\n this.sendReceiveForm.get(\"shipmentHeight\").setValue(this.defaultShipmentDimensions.height * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"shipmentHeight\").setValue(this.defaultShipmentDimensions.height);\r\n }\r\n }\r\n\r\n this.sendReceiveForm.get(\"numberOfPalettes\").valueChanges.subscribe(x => {\r\n if (!this.sendReceiveForm.get(\"shipmentLength\").touched) {\r\n this.sendReceiveForm.get(\"shipmentLength\").setValue(this.defaultShipmentDimensions.length * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n if (!this.sendReceiveForm.get(\"shipmentWidth\").touched) {\r\n this.sendReceiveForm.get(\"shipmentWidth\").setValue(this.defaultShipmentDimensions.width * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n if (!this.sendReceiveForm.get(\"shipmentHeight\").touched) {\r\n this.sendReceiveForm.get(\"shipmentHeight\").setValue(this.defaultShipmentDimensions.height * Number(this.sendReceiveForm.get(\"numberOfPalettes\").value));\r\n }\r\n });\r\n }\r\n\r\n public shipmentVolumeSelected(event: any, existingOrder: boolean) {\r\n this.sendReceiveForm.get(\"shipmentHeight\").reset();\r\n this.sendReceiveForm.get(\"shipmentLength\").reset();\r\n this.sendReceiveForm.get(\"shipmentWidth\").reset();\r\n this.sendReceiveForm.get(\"shipmentHeight\").disable();\r\n this.sendReceiveForm.get(\"shipmentLength\").disable();\r\n this.sendReceiveForm.get(\"shipmentWidth\").disable();\r\n\r\n var shipmentVolumeControl = this.sendReceiveForm.get(\"shipmentVolume\");\r\n shipmentVolumeControl.enable();\r\n\r\n if (!shipmentVolumeControl.value && !existingOrder) {\r\n this.setDefaultVolumeShipment();\r\n }\r\n }\r\n\r\n public setSizeValue(value) {\r\n //remove don't know flags for parcels on selecting a letter size\r\n this.unknownParcelDimensions = false;\r\n this.parcelTotalVolumeUnknown = false;\r\n this.sendReceiveForm.get(\"noOfItems\").disable();\r\n this.sendReceiveForm.get(\"shipmentVolume\").reset();\r\n\r\n if (this.isParcelsSelected) {\r\n this.isParcelsSelected = false;\r\n this.sendReceiveForm.get(\"parcel\").reset();\r\n this.removeAllParcelRows();\r\n }\r\n this.items.emit(null);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.addAdditionalParcels();\r\n });\r\n }\r\n\r\n public parcelDimensionsUnknown() {\r\n this.unknownParcelDimensions = true;\r\n this.sendReceiveForm.addControl(\"totalParcelVolume\", new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('totalParcelVolume'));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`totalParcelVolume`));\r\n });\r\n this.disableAllParcelControls();\r\n }\r\n\r\n public setParcelDimensionsKnownUnknown(event: any, i: number) {\r\n this.parcels[i].unknownDimensions = true;\r\n if (this.parcels[i].unknownDimensions) {\r\n if (!this.sendReceiveForm.get(\"totalParcelVolume\"))\r\n {\r\n this.sendReceiveForm.addControl(\"totalParcelVolume\", new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('totalParcelVolume'));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`totalParcelVolume`));\r\n });\r\n }\r\n if (!this.parcelTotalVolumeUnknown)\r\n {\r\n this.sendReceiveForm.get(\"totalParcelVolume\").enable();\r\n }\r\n this.disableAllParcelControls();\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"totalParcelVolume\").disable();\r\n this.enableAllParcelControls();\r\n }\r\n }\r\n\r\n public getPrices() {\r\n\r\n if(this.parcelTotalVolumeUnknown)\r\n {\r\n return;\r\n }\r\n \r\n this.sendReceiveForm.markAllAsTouched();\r\n this.attemptedToGetPrices = true;\r\n if (!this.sendReceiveForm.valid) {\r\n //temp work around for letter being required when coming from find prices\r\n this.items.emit(null);\r\n this.insurance.emit(null);\r\n this.totalVolume.emit(null);\r\n return;\r\n }\r\n\r\n //Emit Volume for letter, parcel or shipment\r\n this.EmitTotalVolumeForSizeSelected();\r\n\r\n if (!this.isItems)\r\n {\r\n if (!!this.sendReceiveForm.get(\"totalParcelVolume\"))\r\n {\r\n this.sendReceiveForm.get(\"totalParcelVolume\").reset();\r\n this.sendReceiveForm.get(\"totalParcelVolume\").disable();\r\n }\r\n this.unknownParcelDimensions = false;\r\n this.items.emit(new Array(new Parcel()));\r\n }else {\r\n this.items.emit(this.parcels);\r\n }\r\n this.insurance.emit(this.insuranceSelected);\r\n this.sendReceiveForm.markAsPristine();\r\n }\r\n\r\n private EmitTotalVolumeForSizeSelected() {\r\n\r\n if (!this.isItems)\r\n {\r\n this.totalVolume.emit(+this.translateHelper.getNumber(this.sendReceiveForm.get(\"noOfItems\").value));\r\n }\r\n //TODO remove anything related to service type as it's now redunant\r\n if (!!this.parcels && this.parcels.length > 0) {\r\n var totalParcelVolume: number = 0;\r\n \r\n //If to and from FO then we need to calculate per item basis so instead of the sum of all parcels, send the highest volume and see if it's within the constraints.\r\n // if (this.isFromToCountryFO())\r\n // {\r\n // for (let i = 0; i < this.parcels.length; i++) {\r\n // var parcelVolume = this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelLength${i}`).value) * this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelWidth${i}`).value) * this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelHeight${i}`).value);\r\n // if (totalParcelVolume < parcelVolume)\r\n // {\r\n // totalParcelVolume = parcelVolume;\r\n // }\r\n // }\r\n // }\r\n // else {\r\n for (let i = 0; i < this.parcels.length; i++) {\r\n totalParcelVolume += (this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelLength${i}`).value) * this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelWidth${i}`).value) * this.translateHelper.getNumber(this.sendReceiveForm.get(`parcelHeight${i}`).value));\r\n }\r\n // }\r\n\r\n //Divide by 1000000 to convert to m cubed\r\n var mCubed = totalParcelVolume / 1000000;\r\n this.totalVolume.emit(mCubed);\r\n //this.serviceType.emit(ServiceType.Parcel);\r\n }\r\n if (!!this.sendReceiveForm.get(\"totalParcelVolume\") && this.sendReceiveForm.get(\"totalParcelVolume\").value != null && this.isParcelsSelected) {\r\n this.totalVolume.emit(this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalParcelVolume\").value));\r\n //this.serviceType.emit(ServiceType.Parcel);\r\n }\r\n }\r\n\r\n public setSameAsPreviousParcel(event: any, i: number) {\r\n this.parcels[i].sameAsPrevious = true;\r\n\r\n if (i !== 0) {\r\n this.parcels[i].length = this.parcels[i - 1].length;\r\n this.parcels[i].width = this.parcels[i - 1].width;\r\n this.parcels[i].height = this.parcels[i - 1].height;\r\n }\r\n }\r\n\r\n public setItemNumberUnknown() {\r\n this.itemNumberUnknown = !this.itemNumberUnknown;\r\n\r\n if (this.itemNumberUnknown) {\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(\"1\");\r\n // this.sendReceiveForm.get(\"noOfItems\").setValue(\"-\");\r\n this.sendReceiveForm.get(\"noOfItems\").disable();\r\n if(!this.isItems)\r\n {\r\n this.parcelTotalVolumeUnknown = true;\r\n }\r\n }\r\n else {\r\n this.parcelTotalVolumeUnknown = false;\r\n this.sendReceiveForm.get(\"noOfItems\").enable();\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(\"1\");\r\n // this.parcelTotalVolumeUnknown = false;\r\n }\r\n }\r\n\r\n public setItemNumberUnknownFalse() {\r\n this.itemNumberUnknown = false;\r\n if (this.sendReceiveForm.get(\"noOfItems\").disabled)\r\n {\r\n this.sendReceiveForm.get(\"noOfItems\").enable();\r\n }\r\n }\r\n\r\n public changeSetAsPrevious(i: number) {\r\n this.parcels[i].sameAsPrevious = !this.parcels[i].sameAsPrevious;\r\n }\r\n\r\n public setUnknownVolume()\r\n {\r\n this.unknownVolume = !this.unknownVolume;\r\n this.parcelTotalVolumeUnknown = !this.parcelTotalVolumeUnknown\r\n\r\n const volumeControl = this.sendReceiveForm.get(\"totalParcelVolume\");\r\n if (!this.parcelTotalVolumeUnknown)\r\n {\r\n volumeControl.enable();\r\n }\r\n else {\r\n volumeControl.disable();\r\n }\r\n }\r\n\r\n public changeSetAsKnownUnknown(i: number) {\r\n this.parcels[i].unknownDimensions = !this.parcels[i].unknownDimensions;\r\n\r\n if (this.parcels[i].unknownDimensions) {\r\n // if (this.itemNumberUnknown)\r\n // {\r\n // this.parcelTotalVolumeUnknown = true;\r\n // return;\r\n // }\r\n\r\n //Reset any values which may have been entered for the parcel row which has 'don't know' selected.\r\n this.sendReceiveForm.get(`parcelLength${i}`).reset();\r\n this.sendReceiveForm.get(`parcelWidth${i}`).reset();\r\n this.sendReceiveForm.get(`parcelHeight${i}`).reset();\r\n\r\n this.sendReceiveForm.addControl(\"totalParcelVolume\", new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('totalParcelVolume'));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`totalParcelVolume`));\r\n });\r\n this.sendReceiveForm.get(\"totalParcelVolume\").enable();\r\n\r\n this.sendReceiveForm.get(`totalParcelVolume`).valueChanges.subscribe(value => {\r\n this.items.emit(null);\r\n });\r\n this.disableAllParcelControls();\r\n }\r\n else {\r\n this.sendReceiveForm.get(`parcelLength${i}`).disable();\r\n this.sendReceiveForm.get(`parcelWidth${i}`).disable();\r\n this.sendReceiveForm.get(`parcelHeight${i}`).disable();\r\n this.sendReceiveForm.get(\"totalParcelVolume\").reset();\r\n this.sendReceiveForm.get(\"totalParcelVolume\").disable();\r\n // this.enableAllParcelControls();\r\n // this.parcelTotalVolumeUnknown = false;\r\n }\r\n\r\n if (this.parcels.filter(x => x.unknownDimensions).length > 0) {\r\n this.unknownParcelDimensions = true;\r\n }\r\n else {\r\n this.unknownParcelDimensions = false;\r\n this.enableAllParcelControls();\r\n }\r\n }\r\n\r\n public onChange() {\r\n if (this.isItems)\r\n {\r\n var noOfItemControl = this.sendReceiveForm.get(\"noOfItems\");\r\n if (noOfItemControl.disabled)\r\n {\r\n noOfItemControl.enable();\r\n }\r\n if (this.isParcelsSelected) {\r\n if (this.parcels.length === 0 && !noOfItemControl.value) {\r\n this.addInitialParcels();\r\n }\r\n else if (this.parcels.length < noOfItemControl.value) {\r\n this.setItemNumberUnknownFalse();\r\n this.addAdditionalParcels();\r\n }\r\n else if (this.parcels.length >= noOfItemControl.value && +noOfItemControl.value != 0)\r\n {\r\n this.removeParcelRows();\r\n }\r\n else {\r\n this.removeAllParcelRows();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public addInitialParcels() {\r\n this.numberOfItems = 1;\r\n for (let i = 0; i < this.numberOfItems; i++) {\r\n\r\n this.sendReceiveForm.addControl(`parcelLength${i}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelLength${i}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelLength${i}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelLength${i}`));\r\n });\r\n this.sendReceiveForm.addControl(`parcelWidth${i}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelWidth${i}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelWidth${i}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelWidth${i}`));\r\n });\r\n this.sendReceiveForm.addControl(`parcelHeight${i}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelHeight${i}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelHeight${i}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelHeight${i}`));\r\n });\r\n\r\n var parcel = new Parcel();\r\n parcel.parcelNo = i + 1;\r\n this.parcels.push(parcel);\r\n\r\n this.sendReceiveForm.get(`parcelLength${i}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[i].length = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n this.sendReceiveForm.get(`parcelWidth${i}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[i].width = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n this.sendReceiveForm.get(`parcelHeight${i}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[i].height = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n }\r\n }\r\n\r\n public addAdditionalParcels() {\r\n const numDiff = +this.sendReceiveForm.get(\"noOfItems\").value - this.parcels.length;\r\n for (let i = 0; i < numDiff; i++) {\r\n\r\n const newParcelIndex = this.parcels.length;\r\n\r\n this.sendReceiveForm.addControl(`parcelLength${newParcelIndex}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelLength${newParcelIndex}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelLength${newParcelIndex}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelLength${newParcelIndex}`));\r\n });\r\n this.sendReceiveForm.addControl(`parcelWidth${newParcelIndex}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelWidth${newParcelIndex}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelWidth${newParcelIndex}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelWidth${newParcelIndex}`));\r\n });\r\n this.sendReceiveForm.addControl(`parcelHeight${newParcelIndex}`, new FormControl('', [Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]));\r\n this.sendReceiveForm.get(`parcelHeight${newParcelIndex}`).valueChanges.subscribe(newValue => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get(`parcelHeight${newParcelIndex}`));\r\n });\r\n this.translateService.onLangChange.subscribe(x => {\r\n this.translateHelper.convertNumberField(this.sendReceiveForm.get(`parcelHeight${newParcelIndex}`));\r\n });\r\n if (this.unknownParcelDimensions) {\r\n this.sendReceiveForm.get(`parcelLength${newParcelIndex}`).disable();\r\n this.sendReceiveForm.get(`parcelWidth${newParcelIndex}`).disable();\r\n this.sendReceiveForm.get(`parcelHeight${newParcelIndex}`).disable();\r\n }\r\n\r\n var parcel = new Parcel();\r\n parcel.parcelNo = newParcelIndex + 1;\r\n this.parcels.push(parcel);\r\n\r\n this.sendReceiveForm.get(`parcelLength${newParcelIndex}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[newParcelIndex].length = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n this.sendReceiveForm.get(`parcelWidth${newParcelIndex}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[newParcelIndex].width = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n this.sendReceiveForm.get(`parcelHeight${newParcelIndex}`).valueChanges.subscribe(value => {\r\n if (!!value) {\r\n this.parcels[newParcelIndex].height = this.translateHelper.getNumber(value);\r\n }\r\n this.items.emit(null);\r\n });\r\n }\r\n }\r\n\r\n public removeParcelRows() {\r\n const numDiff = this.parcels.length - +this.sendReceiveForm.get(\"noOfItems\").value;\r\n var j = this.parcels.length;\r\n for (let i = 0; i < numDiff; i++) {\r\n this.parcels.splice(this.parcels.length - 1, 1);\r\n this.sendReceiveForm.removeControl(`parcelLength${j - 1}`)\r\n this.sendReceiveForm.removeControl(`parcelWidth${j - 1}`)\r\n this.sendReceiveForm.removeControl(`parcelHeight${j - 1}`)\r\n j--;\r\n }\r\n }\r\n\r\n public removeAllParcelRows() {\r\n for (let i = 0; i <= this.parcels.length; i++) {\r\n this.sendReceiveForm.removeControl(`parcelLength${i}`)\r\n this.sendReceiveForm.removeControl(`parcelWidth${i}`)\r\n this.sendReceiveForm.removeControl(`parcelHeight${i}`)\r\n }\r\n this.parcels = new Array();\r\n }\r\n\r\n public disableAllParcelControls() {\r\n const parcelLength = this.parcels.length;\r\n if (parcelLength > 0) {\r\n for (let i = 0; i < parcelLength; i++) {\r\n this.sendReceiveForm.get(`parcelLength${i}`).disable();\r\n this.sendReceiveForm.get(`parcelWidth${i}`).disable();\r\n this.sendReceiveForm.get(`parcelHeight${i}`).disable();\r\n }\r\n }\r\n }\r\n\r\n public enableAllParcelControls() {\r\n const parcelLength = this.parcels.length;\r\n if (parcelLength > 0) {\r\n for (let i = 0; i < parcelLength; i++) {\r\n this.sendReceiveForm.get(`parcelLength${i}`).enable();\r\n this.sendReceiveForm.get(`parcelWidth${i}`).enable();\r\n this.sendReceiveForm.get(`parcelHeight${i}`).enable();\r\n\r\n this.sendReceiveForm.get(`parcelLength${i}`).markAsUntouched();\r\n this.sendReceiveForm.get(`parcelWidth${i}`).markAsUntouched();\r\n this.sendReceiveForm.get(`parcelHeight${i}`).markAsUntouched();\r\n }\r\n }\r\n }\r\n\r\n public setInsuranceTrue() {\r\n this.insuranceSelected = true;\r\n this.items.emit(null);\r\n }\r\n\r\n public setInsuranceFalse() {\r\n this.insuranceSelected = false;\r\n this.items.emit(null);\r\n }\r\n\r\n public toggleIsKg(isKg: boolean)\r\n {\r\n this.isKg = isKg;\r\n this.sendReceiveForm.get('isKg').setValue(String(isKg));\r\n }\r\n\r\n public toggleIsItems(isItems: boolean)\r\n {\r\n this.itemNumberUnknown = false;\r\n if (this.sendReceiveForm.get(\"noOfItems\").disabled)\r\n {\r\n this.sendReceiveForm.get(\"noOfItems\").enable();\r\n }\r\n this.parcelTotalVolumeUnknown = false;\r\n const volumeControl = this.sendReceiveForm.get(\"totalParcelVolume\");\r\n if (!isItems)\r\n {\r\n this.totalVolume.emit(null);\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(\"0\");\r\n this.sendReceiveForm.get(\"noOfItems\").setValidators([Validators.required, ErrorHelper.greaterThanZeroValidator, ErrorHelper.numberOnlyValidator]);\r\n this.sendReceiveForm.get(\"noOfItems\").updateValueAndValidity();\r\n this.removeAllParcelRows();\r\n var temp = this.parcels;\r\n // if (!!volumeControl)\r\n // {\r\n // volumeControl.reset();\r\n // volumeControl.disable();\r\n // }\r\n this.unknownParcelDimensions = false;\r\n this.unknownVolume = false;\r\n }\r\n else {\r\n this.sendReceiveForm.get(\"noOfItems\").setValue(\"1\");\r\n this.numberOfItems = 1;\r\n if (this.isParcelsSelected) {\r\n if (this.parcels.length === 0) {\r\n this.addInitialParcels();\r\n }\r\n else if (this.parcels.length < this.sendReceiveForm.get(\"noOfItems\").value) {\r\n this.addAdditionalParcels();\r\n this.setItemNumberUnknownFalse();\r\n }\r\n else if (this.parcels.length >= this.sendReceiveForm.get(\"noOfItems\").value)\r\n {\r\n this.removeParcelRows();\r\n }\r\n else {\r\n this.removeAllParcelRows();\r\n }\r\n }\r\n this.sendReceiveForm.get(\"noOfItems\").setValidators([Validators.required, ErrorHelper.integerOnlyValidator]);\r\n this.sendReceiveForm.get(\"noOfItems\").updateValueAndValidity();\r\n this.sendReceiveForm.get(\"noOfItems\").valueChanges.subscribe(x => {\r\n this.translateHelper.formatNumberField(this.sendReceiveForm.get('noOfItems'));\r\n });\r\n // if (!!volumeControl)\r\n // {\r\n // volumeControl.enable();\r\n // }\r\n }\r\n this.isItems = isItems;\r\n this.sendReceiveForm.get('isItems').setValue(String(isItems));\r\n }\r\n\r\n public clearAll() {\r\n this.isParcelsSelected = false;\r\n this.insuranceSelected = true;\r\n this.itemNumberUnknown = false;\r\n this.parcelTotalVolumeUnknown = false;\r\n this.unknownParcelDimensions = false;\r\n this.parcelTotalVolumeUnknown = false;\r\n this.removeAllParcelRows();\r\n this.onClear.emit(true);\r\n\r\n this.sendReceiveForm.get(\"shipmentHeight\").disable();\r\n this.sendReceiveForm.get(\"shipmentLength\").disable();\r\n this.sendReceiveForm.get(\"shipmentWidth\").disable();\r\n this.sendReceiveForm.get(\"shipmentVolume\").disable();\r\n }\r\n\r\n public navigateToAddresses() {\r\n this.goBackToAddress.emit(true);\r\n }\r\n\r\n public otherSelected() {\r\n if (!!this.sendReceiveForm.get(\"selectTypeOfGoods\") && this.sendReceiveForm.get(\"selectTypeOfGoods\").value === \"Other\") {\r\n if (!this.sendReceiveForm.get(\"otherTypeGoods\")) {\r\n this.sendReceiveForm.addControl(\"otherTypeGoods\", new FormControl('', Validators.required))\r\n }\r\n return true;\r\n }\r\n if (!!this.sendReceiveForm.get(\"otherTypeGoods\")) {\r\n this.sendReceiveForm.get(\"otherTypeGoods\").reset();\r\n }\r\n return false;\r\n }\r\n\r\n private setFromPriceItemSelection() {\r\n if (this.isParcel === \"true\") {\r\n this.isParcelsSelected = true;\r\n this.parcelValue = 0;\r\n this.parcelsSelected(null);\r\n this.sendReceiveForm.get(\"letterSize\").clearValidators();\r\n this.sendReceiveForm.get(\"letterSize\").updateValueAndValidity();\r\n\r\n }\r\n }\r\n\r\n public getLetterSizeNameForLanguage(letterName: TranslationString, description: TranslationString): string {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${letterName.EN} (${description.EN})`;\r\n case \"fo\":\r\n return `${letterName.FO} (${description.FO})`;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_two.your_ref' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_two.total_weight' | translate}}

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n

{{'send_receive.send_receive.step_two.size' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.step_two.total' | translate}}

\r\n
\r\n

1\" class=\"primary index\" style=\"font-weight: bold; font-size: 18px;\">{{i + 1}}

\r\n

\r\n {{'send_receive.send_receive.step_two.total' | translate}}

\r\n \r\n
\r\n

{{'send_receive.send_receive.step_two.enter_size' | translate}}\r\n

\r\n

{{'send_receive.send_receive.step_two.length' | translate}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

cm

\r\n

{{'send_receive.send_receive.step_two.width' | translate}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

cm

\r\n

{{'send_receive.send_receive.step_two.height' | translate}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

cm

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'send_receive.send_receive.step_two.parcel_unknown_dimensions' | translate}}\r\n
\r\n

{{'send_receive.send_receive.step_two.total_volume' | translate}}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_two.value' | translate}}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n DKK\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { PriceMatrixService } from '../../../../../shared/price-matrix/services/price-matrix.service';\r\nimport { FindServiceOptionDetails } from '../../../../../shared/price-matrix/entities/FindServiceOptionDetails';\r\nimport { TransportType } from '../../../../../shared/price-matrix/entities/TransportType';\r\nimport { ServiceType } from '../../../../../shared/price-matrix/enums/ServiceType';\r\nimport { TranslationString } from '../../../../../shared/price-matrix/entities/TranslationString';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SendReceiveService } from '../../services/send-receive.service';\r\nimport { Country } from '../../../../../account/entities/Country';\r\nimport { Variable } from '@angular/compiler/src/render3/r3_ast';\r\nimport { OrderState } from '../../../../enums/OrderState';\r\nimport { Order } from '../../../../entities/Order';\r\nimport { OrderLetter } from '../../../../entities/OrderLetter';\r\nimport { OrderService } from '../../../../entities/OrderService';\r\nimport { Parcel } from '../../../../entities/parcel';\r\nimport { ServiceOption } from '../../../../entities/serviceOption';\r\nimport { InvoiceLine } from '../../../../entities/InvoiceLine';\r\nimport { IncoTerm } from '../../../../../shared/price-matrix/entities/incoTerm';\r\nimport { ProductType } from '../../../../../shared/price-matrix/enums/ProductType';\r\nimport { Pricing } from '../../../../../shared/price-matrix/entities/pricing';\r\nimport { IncoTermsGroup } from '../../../../../shared/price-matrix/entities/incoTermsGroup';\r\nimport { TranslationHelper } from '../../../../../shared/helpers/translation-helper';\r\nimport { StaticContentHelper } from '../../../../../shared/helpers/static-content-helper';\r\nimport { Router } from '@angular/router';\r\nimport { StaticContentService } from '../../../../../shared/services/static-content.service';\r\nimport { RoleService } from '../../../../../account/services/role.service';\r\nimport { Role } from '../../../../../shared/price-matrix/enums/Role';\r\n\r\n@Component({\r\n selector: 'app-send-receive-prices',\r\n templateUrl: './send-receive-prices.component.html',\r\n styleUrls: ['./send-receive-prices.component.scss', '../send-receive-styles.scss']\r\n})\r\nexport class SendReceivePricesComponent implements OnInit {\r\n\r\n public linkItem1: any;\r\n\r\n public linkItem2: any;\r\n public linkItem3: any;\r\n public linkItem4: any;\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup;\r\n\r\n @Input()\r\n addressForm: FormGroup;\r\n\r\n @Input()\r\n isDomestic: boolean;\r\n\r\n @Input()\r\n public incoTerms: string;\r\n\r\n public serviceOptions: Array = new Array();\r\n\r\n @Input()\r\n insuranceSelected: boolean;\r\n\r\n @Input()\r\n totalVolume: number;\r\n\r\n @Input()\r\n productType: ProductType;\r\n\r\n @Input()\r\n fromDepot: boolean;\r\n\r\n @Input()\r\n toDepot: boolean;\r\n\r\n @Input()\r\n fromAccountAddress: boolean;\r\n\r\n @Input()\r\n toAccountAddress: boolean;\r\n\r\n @Input()\r\n parcels: Array;\r\n\r\n @Input()\r\n order: Order;\r\n\r\n interval: any;\r\n\r\n @Output()\r\n chosenServiceOption: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n proceedToOrderDetailsScreen: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n proceedToConfirmationPage: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n quoteId: EventEmitter = new EventEmitter();\r\n\r\n savedServiceOption: ServiceOption;\r\n\r\n savedServiceOptionIndex: number;\r\n vatCost: number = 0;\r\n\r\n constructor(private priceMatrixService: PriceMatrixService,\r\n private translateService: TranslateService,\r\n private translateHelper: TranslationHelper,\r\n private sendReceiveService: SendReceiveService,\r\n private staticContentService: StaticContentService,\r\n private roleService: RoleService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n \r\n var vol = this.totalVolume;\r\n\r\n var quantity = this.sendReceiveForm.get(\"noOfItems\").value;\r\n var isItems = this.sendReceiveForm.get(\"isItems\").value;\r\n\r\n if (isItems != 'true')\r\n {\r\n vol = this.sendReceiveForm.get(\"noOfItems\").value;\r\n quantity = 1;\r\n }\r\n\r\n var weight = this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalWeight\").value);\r\n\r\n if (this.sendReceiveForm.get(\"isKg\").value == 'false')\r\n {\r\n weight /= 1000;\r\n }\r\n\r\n var isOneParcel: boolean = false;\r\n if (this.sendReceiveForm.get(\"noOfItems\").value == 1)\r\n {\r\n isOneParcel = true;\r\n }\r\n \r\n if (this.isDomestic)\r\n {\r\n vol = this.totalVolume/+quantity;\r\n }\r\n\r\n var serviceOptionDetails: FindServiceOptionDetails = {\r\n FromCountry: this.fromDepot ? \"DK\" : this.addressForm.get(\"fromCountry\").value.countryCode,\r\n ToCountry: this.toDepot ? \"DK\" : this.addressForm.get(\"toCountry\").value.countryCode,\r\n FromPostcode: this.addressForm.get(\"fromPostcode\").value,\r\n ToPostcode: this.addressForm.get(\"toPostcode\").value,\r\n Volume: this.translateHelper.getNumber(vol),\r\n Weight: weight,\r\n Value: this.translateHelper.getNumber(this.sendReceiveForm.get(\"valueOfGoods\").value),\r\n IsInsurance: this.insuranceSelected,\r\n ProductType: this.productType,\r\n IsOneParcel: isOneParcel,\r\n IncoTerms: this.incoTerms,\r\n Quantity: +quantity,\r\n Role: this.roleService.role()\r\n }\r\n\r\n this.priceMatrixService.getServiceOptions(serviceOptionDetails).subscribe(transportTypes => {\r\n //loop through transport types and set fields\r\n\r\n var i: number;\r\n for (i = 0; i < transportTypes.length; i++) {\r\n\r\n var managedCustomCost: number = undefined;\r\n var managedCustomCostJson: string = undefined;\r\n var insuranceCost: number = undefined;\r\n var insuranceExtra = undefined;\r\n var managedCustomExtra = undefined;\r\n var specialExtrasOverrides = undefined;\r\n if (!!transportTypes[i].CountryGroups)\r\n {\r\n specialExtrasOverrides = transportTypes[i].CountryGroups[0].SpecialExtrasOverrides;\r\n }\r\n\r\n if (!!transportTypes[i].SpecialExtras) {\r\n insuranceExtra = transportTypes[i].SpecialExtras.find(x => x.Key == \"0\");\r\n managedCustomExtra = transportTypes[i].SpecialExtras.find(x => x.Key == \"1\");\r\n }\r\n\r\n //Clean this up\r\n if (!!transportTypes[i].SpecialExtras || !!specialExtrasOverrides) {\r\n //use first country group as it's the only one returned from the backend\r\n\r\n if (!!specialExtrasOverrides) {\r\n var insuranceOverride = specialExtrasOverrides.find(x => x.Key == \"0\")\r\n if (!!insuranceOverride && this.insuranceSelected) {\r\n // insuranceCost = this.getSpecialExtraCost(insuranceOverride, serviceOptionDetails.Value, serviceOptionDetails.Weight, serviceOptionDetails.Volume);\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceOverride), false, transportTypes[i].VATPercentage, true)\r\n }\r\n else if (!!insuranceExtra && this.insuranceSelected) {\r\n // insuranceCost = this.getSpecialExtraCost(insuranceExtra, serviceOptionDetails.Value, serviceOptionDetails.Weight, serviceOptionDetails.Volume);\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceExtra), false, transportTypes[i].VATPercentage, true);\r\n }\r\n\r\n var managedCustomOverride = specialExtrasOverrides.find(x => x.Key == \"1\");\r\n if (!!managedCustomOverride) {\r\n // managedCustomCost = this.getSpecialExtraCost(managedCustomOverride, serviceOptionDetails.Value, serviceOptionDetails.Weight, serviceOptionDetails.Volume);\r\n managedCustomCost = this.getPricingForTransportType(new Array(managedCustomOverride), false, transportTypes[i].VATPercentage, false);\r\n managedCustomCostJson = JSON.stringify(managedCustomExtra);\r\n }\r\n else if (!!managedCustomExtra) {\r\n // managedCustomCost = this.getSpecialExtraCost(managedCustomExtra, serviceOptionDetails.Value, serviceOptionDetails.Weight, serviceOptionDetails.Volume);\r\n managedCustomCost = this.getPricingForTransportType(new Array(managedCustomExtra), false, transportTypes[i].VATPercentage, false);\r\n managedCustomCostJson = JSON.stringify(managedCustomExtra);\r\n }\r\n }\r\n else if (!!transportTypes[i].SpecialExtras) {\r\n\r\n if (!!managedCustomExtra) {\r\n managedCustomCost = this.getPricingForTransportType(new Array(managedCustomExtra), false, transportTypes[i].VATPercentage, false);\r\n managedCustomCostJson = JSON.stringify(managedCustomExtra);\r\n }\r\n\r\n if (!!insuranceExtra && this.insuranceSelected) {\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceExtra), false, transportTypes[i].VATPercentage, true);\r\n }\r\n }\r\n }\r\n\r\n //You can only buy 1 stamp per send receive order so having multiple parcels defined goes against this logic.\r\n // if ((transportTypes[i].ProductTypeId == ProductType.Postage || transportTypes[i].ProductTypeId == ProductType.Postage_Plus || transportTypes[i].ProductTypeId == ProductType.Parcel) && this.sendReceiveForm.get('noOfItems').value > 1) {\r\n // continue;\r\n // }\r\n\r\n //If transport type has a country group then it's not domestic otherwise it is.\r\n var vatIncluded = !!transportTypes[i].CountryGroups ? transportTypes[i].CountryGroups[0].IncludeVAT : transportTypes[i].IncludeVAT;\r\n var minDays = !!transportTypes[i].MinimumDeliveryDays ? transportTypes[i].MinimumDeliveryDays : transportTypes[i].CountryGroups[0].MinimumDeliveryDays;\r\n var maxDays = !!transportTypes[i].MaximumDeliveryDays ? transportTypes[i].MaximumDeliveryDays : transportTypes[i].CountryGroups[0].MaximumDeliveryDays;\r\n\r\n var serviceOption = new ServiceOption();\r\n serviceOption.IconPath = transportTypes[i].IconPath;\r\n serviceOption.Name = transportTypes[i].Name;\r\n serviceOption.Cost = this.getCostForTransportType(transportTypes[i], insuranceCost);\r\n serviceOption.DeliveryDays = `${minDays} - ${maxDays}`;\r\n serviceOption.Description = transportTypes[i].Description;\r\n serviceOption.Properties = transportTypes[i].Properties;\r\n serviceOption.Key = transportTypes[i].Key;\r\n serviceOption.MinDeliveryDays = minDays;\r\n serviceOption.ProductType = transportTypes[i].ProductTypeId;\r\n serviceOption.InsuranceCost = insuranceCost ? +insuranceCost.toFixed(2) : 0;\r\n serviceOption.ManagedCustomCost = managedCustomCost;\r\n serviceOption.ManagedCustomCostJson = managedCustomCostJson;\r\n serviceOption.BarcodePrefix = transportTypes[i].BarcodePrefix;\r\n serviceOption.isVatIncluded = vatIncluded;\r\n serviceOption.VATCost = +this.vatCost.toFixed(2);\r\n\r\n this.serviceOptions.push(serviceOption);\r\n this.vatCost = 0;\r\n }\r\n\r\n if (!!this.order) {\r\n this.serviceOptions = this.serviceOptions.filter(x => Number(x.ProductType) == this.order.productTypeId);\r\n var orderServiceOption = this.serviceOptions.find(x => Number(x.ProductType) == this.order.productTypeId);\r\n if (!!orderServiceOption) {\r\n this.chosenServiceOption.emit(orderServiceOption);\r\n }\r\n\r\n var transportType = JSON.parse(this.order.service.transportTypeJson);\r\n\r\n this.savedServiceOption = this.serviceOptions.find(x => x.Name.EN == transportType.Name.EN);\r\n\r\n if (!!this.savedServiceOption) {\r\n this.savedServiceOptionIndex = this.serviceOptions.indexOf(this.savedServiceOption);\r\n console.log(`Found matching service option:${this.savedServiceOption.Name.EN}`);\r\n\r\n }\r\n }\r\n })\r\n\r\n var psModule = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/send-receive');\r\n if (!!psModule) {\r\n this.linkItem1 = psModule.Item1Link;\r\n this.linkItem2 = psModule.Item2Link;\r\n this.linkItem3 = psModule.Item6Link;\r\n this.linkItem4 = psModule.Item7Link;\r\n }\r\n\r\n this.interval = setInterval(() => {\r\n var el = document.getElementsByClassName(\"key-background-container\");\r\n if (!!el && el.length > 0)\r\n {\r\n el[0].scrollIntoView(true);\r\n clearInterval(this.interval);\r\n }\r\n }, 200);\r\n }\r\n\r\n public isToFromFo() {\r\n if (this.fromDepot || this.toDepot) {\r\n //Depot is DK, so won't be from FO\r\n return false;\r\n }\r\n\r\n var fromCountryControl = this.addressForm.get('fromCountry');\r\n var toCountryControl = this.addressForm.get('toCountry');\r\n\r\n if ((!!fromCountryControl && !!fromCountryControl.value && (fromCountryControl.value.countryCode == \"FO\"\r\n || fromCountryControl.value == \"Faroe Islands\")) && (!!toCountryControl && !!toCountryControl.value && (toCountryControl.value.countryCode == \"FO\"\r\n || toCountryControl.value == \"Faroe Islands\"))) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isInternationalGoods(){\r\n var valueControl = this.sendReceiveForm.get('valueOfGoods');\r\n if(!!valueControl && !!valueControl.value && valueControl.value <= 0){\r\n //No value, so not goods\r\n return false;\r\n }\r\n\r\n var fromCountryControl = this.addressForm.get('fromCountry');\r\n if(!!fromCountryControl && !!fromCountryControl.value && fromCountryControl.value.countryCode == \"FO\" || fromCountryControl.value == \"Faroe Islands\"){\r\n if(this.toDepot) {\r\n //Depot is DK, so won't be to FO\r\n return true;\r\n }\r\n var toCountryControl = this.addressForm.get('toCountry');\r\n if(toCountryControl && toCountryControl.value && toCountryControl.value.countryCode != \"FO\" && toCountryControl.value != \"Faroe Islands\"){\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public chooseServiceOption(serviceOption: ServiceOption) {\r\n this.chosenServiceOption.emit(serviceOption);\r\n if ((serviceOption.ProductType == 4 && !this.isInternationalGoods()) || serviceOption.ProductType == 8 || serviceOption.ProductType == 10 && this.isToFromFo()) {\r\n this.proceedToConfirmationPage.emit(true);\r\n this.proceedToOrderDetailsScreen.emit(false);\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n else {\r\n this.proceedToOrderDetailsScreen.emit(true);\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n }\r\n }\r\n\r\n public getDeliveryDays(minDays: any, maxDays: any): string {\r\n return `${minDays} - ${maxDays}`;\r\n }\r\n\r\n public getIconTextByLanguage(translationName: TranslationString)\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return translationName.EN;\r\n case \"fo\":\r\n return translationName.FO;\r\n }\r\n }\r\n\r\n public getNameByLanguage(transportTypeName: TranslationString): string {\r\n if (!!transportTypeName)\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return transportTypeName.EN;\r\n case \"fo\":\r\n return transportTypeName.FO;\r\n }\r\n }\r\n }\r\n\r\n\r\n public getSpecialExtraCost(extra: Pricing, inputValue?: number, inputWeight?: number, inputVolume?: number): number {\r\n var extraCost = extra.BasePrice;\r\n if (extra.ValueInterval > 0 && extra.PricePerValueInterval > 0) {\r\n if (extra.StartValue > 0 && inputValue > extra.StartValue) {\r\n extraCost += Math.ceil((inputValue - extra.StartValue) / extra.ValueInterval) * extra.PricePerValueInterval;\r\n }\r\n else if (extra.StartValue < 0) {\r\n extraCost += Math.ceil(inputValue / extra.ValueInterval) * extra.PricePerValueInterval;\r\n }\r\n }\r\n\r\n if (extra.WeightInterval > 0 && extra.PricePerWeightInterval > 0) {\r\n if (extra.StartWeight > 0 && inputWeight > extra.StartWeight) {\r\n extraCost += Math.ceil((inputWeight - extra.StartWeight) / extra.WeightInterval) * extra.PricePerWeightInterval;\r\n }\r\n else if (extra.StartWeight < 0) {\r\n extraCost += Math.ceil(inputWeight / extra.WeightInterval) * extra.PricePerWeightInterval;\r\n }\r\n }\r\n\r\n if (extra.VolumeInterval > 0 && extra.PricePerVolumeInterval > 0) {\r\n if (extra.StartVolume > 0 && inputVolume > extra.StartVolume) {\r\n extraCost += Math.ceil((inputVolume - extra.StartVolume) / extra.VolumeInterval) * extra.PricePerVolumeInterval;\r\n }\r\n else if (extra.StartVolume < 0) {\r\n extraCost += Math.ceil(inputVolume / extra.VolumeInterval) * extra.PricePerVolumeInterval;\r\n }\r\n }\r\n if (!extraCost) {\r\n return 0;\r\n }\r\n return +extraCost.toFixed(2);\r\n }\r\n\r\n public saveQuote(serviceOptionSelected: ServiceOption) {\r\n var orderService: OrderService = {\r\n transportTypeId: serviceOptionSelected.Key,\r\n transportTypeJson: null\r\n }\r\n\r\n var weight = this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalWeight\").value);\r\n\r\n var letter: OrderLetter\r\n var parcel: Parcel\r\n const letterFormControl = this.sendReceiveForm.get(\"letterSize\");\r\n if (!!letterFormControl && !!letterFormControl.value) {\r\n if (serviceOptionSelected.ProductType == ProductType.Postage) {\r\n const letterTransportType = letterFormControl.value as TransportType;\r\n letter = {\r\n transportTypeId: letterTransportType.Key,\r\n transportTypeJson: null,\r\n transportTypeName: letterTransportType.Name.EN\r\n }\r\n //if letter then weight is defined in grams, divide by 1000 to pass to backend in kg\r\n weight /= 1000;\r\n }\r\n else if (serviceOptionSelected.ProductType == ProductType.Parcel) {\r\n //letter option selected but it's being sent as a parcel therefore save as parcel instead.\r\n parcel = {\r\n parcelNo: 1\r\n }\r\n this.parcels = new Array(parcel);\r\n }\r\n }\r\n\r\n //In the future this may be more than one but for now it's just one\r\n var invoiceLine: InvoiceLine = {\r\n sequenceNo: 0,\r\n quantity: 1,\r\n unitPrice: serviceOptionSelected.Cost,\r\n netAmount: serviceOptionSelected.Cost,\r\n grossAmount: serviceOptionSelected.Cost //*this._route.snapshot.data.order;\r\n }\r\n\r\n\r\n var order: Order = {\r\n orderStateId: OrderState.Quote as number,\r\n productTypeId: serviceOptionSelected.ProductType,\r\n fromTitle: this.addressForm.get(\"fromTitle\").value,\r\n fromFirstName: this.addressForm.get(\"fromFirstName\").value,\r\n fromLastName: this.addressForm.get(\"fromLastName\").value,\r\n fromCompanyName: this.addressForm.get(\"fromOptionalCompany\").value,\r\n fromAddressLine1: this.addressForm.get(\"fromAddressLine1\").value,\r\n fromAddressLine2: this.addressForm.get(\"fromAddressLine2\").value,\r\n fromTownCity: this.addressForm.get(\"fromTownCity\").value,\r\n fromPostcode: this.addressForm.get(\"fromPostcode\").value,\r\n fromCountryCode: (this.addressForm.get(\"fromCountry\").value as Country).countryCode,\r\n fromContactNumber: this.addressForm.get(\"fromContactNumber\").value,\r\n fromContactEmail: this.addressForm.get(\"fromEmail\").value,\r\n fromSpecialInstructions: this.addressForm.get(\"fromSpecialInstructions\").value,\r\n toTitle: this.addressForm.get(\"toTitle\").value,\r\n toFirstName: this.addressForm.get(\"toFirstName\").value,\r\n toLastName: this.addressForm.get(\"toLastName\").value,\r\n toCompanyName: this.addressForm.get(\"toOptionalCompany\").value,\r\n toAddressLine1: this.addressForm.get(\"toAddressLine1\").value,\r\n toAddressLine2: this.addressForm.get(\"toAddressLine2\").value,\r\n toTownCity: this.addressForm.get(\"toTownCity\").value,\r\n toPostcode: this.addressForm.get(\"toPostcode\").value,\r\n toCountryCode: (this.addressForm.get(\"toCountry\").value as Country).countryCode,\r\n toContactNumber: this.addressForm.get(\"toContactNumber\").value,\r\n toContactEmail: this.addressForm.get(\"toEmail\").value,\r\n toSpecialInstructions: this.addressForm.get(\"toSpecialInstructions\").value,\r\n senderNamePostaDepot: this.addressForm.get(\"logisticsSenderName\").value,\r\n isFromPostaDepot: this.fromDepot,\r\n isToPostaDepot: this.toDepot,\r\n isFromAccountAddress: this.fromAccountAddress,\r\n isToAccountAddress: this.toAccountAddress,\r\n insuranceSelected: this.insuranceSelected,\r\n customerReference: this.sendReceiveForm.get(\"referenceNumber\").value,\r\n weight: weight,\r\n valueOfGoods: this.translateHelper.getNumber(this.sendReceiveForm.get(\"valueOfGoods\").value),\r\n volume: this.translateHelper.getNumber(this.totalVolume),\r\n service: orderService,\r\n parcels: this.parcels,\r\n invoices: null,\r\n attemptedPaymentYN: false,\r\n invoiceLines: [invoiceLine],\r\n barcodePrefix: serviceOptionSelected.BarcodePrefix,\r\n isVatIncluded: serviceOptionSelected.isVatIncluded,\r\n languageCode: this.translateService.currentLang,\r\n customsItemTypes: null\r\n }\r\n\r\n //TODO catch error\r\n this.sendReceiveService.CreateOrder(order).subscribe(x => {\r\n this.quoteId.emit(x);\r\n });\r\n }\r\n\r\n private getPricingForTransportType(pricings: Array, isIncoTerms: boolean, vat: number, addVatCost: boolean): number {\r\n if (!pricings) {\r\n return 0;\r\n }\r\n\r\n var inputWeight = this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalWeight\").value);\r\n const letterFormControl = this.sendReceiveForm.get(\"letterSize\");\r\n if (!!letterFormControl && !!letterFormControl.value) {\r\n inputWeight /= 1000;\r\n }\r\n var inputVolume = this.translateHelper.getNumber(this.totalVolume);\r\n var inputValue = this.translateHelper.getNumber(this.sendReceiveForm.get(\"valueOfGoods\").value);\r\n var totalCost = 0;\r\n\r\n for (var i = 0; i < pricings.length; i++) {\r\n var weightCost = 0;\r\n var valueCost = 0;\r\n var volumeCost = 0;\r\n\r\n if (pricings[i].BasePriceOnly) {\r\n if (pricings[i].IncludeVAT)\r\n {\r\n var vatToAdd = pricings[i].BasePrice*vat;\r\n if (addVatCost)\r\n {\r\n this.vatCost += vatToAdd;\r\n }\r\n totalCost += vatToAdd;\r\n }\r\n else {\r\n totalCost += pricings[i].BasePrice\r\n }\r\n continue;\r\n }\r\n\r\n if (!pricings[i].Fragmented) {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (inputWeight == pricings[i].StartWeight) {\r\n weightDif = 1;\r\n }\r\n var absValWeightIntervals = Math.ceil(weightDif / pricings[i].WeightInterval);\r\n //check if it's a whole number after being divided\r\n // if (weightDif / pricings[i].WeightInterval - Math.floor(weightDif / pricings[i].WeightInterval) == 0 && inputWeight - pricings[i].StartWeight != 0) {\r\n // absValWeightIntervals += 1;\r\n // }\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (inputVolume == pricings[i].StartVolume) {\r\n volumeDif = 1;\r\n }\r\n var absValVolumeIntervals = Math.ceil(volumeDif / pricings[i].VolumeInterval);\r\n //check if it's a whole number after being divided\r\n // if (volumeDif / pricings[i].VolumeInterval - Math.floor(volumeDif / pricings[i].VolumeInterval) == 0 && inputVolume - pricings[i].StartVolume != 0) {\r\n // absValVolumeIntervals += 1;\r\n // }\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (inputValue == pricings[i].StartValue) {\r\n valueDif = 1;\r\n }\r\n var absValValueIntervals = Math.ceil(valueDif / pricings[i].ValueInterval);\r\n //check if it's a whole number after being divided\r\n // if (valueDif / pricings[i].ValueInterval - Math.floor(valueDif / pricings[i].ValueInterval) == 0 && inputValue - pricings[i].StartValue != 0) {\r\n // absValValueIntervals += 1;\r\n // }\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n }\r\n var costToAdd = pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n if (pricings[i].IncludeVAT)\r\n {\r\n if (addVatCost)\r\n {\r\n this.vatCost += costToAdd*vat;\r\n }\r\n costToAdd *= (1+vat);\r\n }\r\n totalCost += costToAdd;\r\n }\r\n else {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (isIncoTerms) {\r\n weightDif += 1;\r\n }\r\n var absValWeightIntervals = weightDif / pricings[i].WeightInterval;\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (isIncoTerms) {\r\n volumeDif += 1;\r\n }\r\n var absValVolumeIntervals = volumeDif / pricings[i].VolumeInterval;\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (isIncoTerms) {\r\n valueDif += 1;\r\n }\r\n var absValValueIntervals = valueDif / pricings[i].ValueInterval;\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n }\r\n var costToAdd = pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n if (pricings[i].IncludeVAT)\r\n {\r\n if (addVatCost)\r\n {\r\n this.vatCost += costToAdd*vat;\r\n }\r\n costToAdd *= (1+vat);\r\n }\r\n totalCost += costToAdd;\r\n }\r\n }\r\n return totalCost;\r\n\r\n }\r\n\r\n private getCostForTransportType(transportType: TransportType, insuranceCost: number): number {\r\n //From the backend the country group should only return one item so just look at the first item\r\n var totalCost: number = 0;\r\n var incoTermCostSet: boolean = false;\r\n if (!!transportType.CountryGroups && transportType.CountryGroups.length > 0) {\r\n const countryGroup = transportType.CountryGroups[0];\r\n //If has base price set it to that otherwise look for the specific parcel range and use the base cost override\r\n\r\n var inputWeight = this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalWeight\").value);\r\n if (!!transportType.BoundedWeightValue)\r\n {\r\n inputWeight = transportType.BoundedWeightValue;\r\n }\r\n else if (this.sendReceiveForm.get(\"isKg\").value == 'false')\r\n {\r\n inputWeight /= 1000;\r\n }\r\n\r\n var useWeight = ((inputWeight / this.totalVolume) / 1000) > countryGroup.FreightPivotPoint;\r\n\r\n if (countryGroup.BasePriceWeight !== 0 && useWeight) {\r\n totalCost = countryGroup.BasePriceWeight;\r\n }\r\n else if (countryGroup.BasePriceVolume !== 0) {\r\n totalCost = countryGroup.BasePriceVolume;\r\n }\r\n\r\n if (!!countryGroup.ParcelRanges) {\r\n var i: number;\r\n for (i = 0; i < countryGroup.ParcelRanges.length; i++) {\r\n const currentParcelRange = countryGroup.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight\r\n && this.translateHelper.getNumber(this.totalVolume) >= currentParcelRange.MinVolume\r\n && (this.translateHelper.getNumber(this.totalVolume) <= currentParcelRange.MaxVolume || currentParcelRange.MaxVolume == 0)) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (!!currentParcelRange.BaseCostOverride && currentParcelRange.BaseCostOverride > 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n if (countryGroup.FreightPivotPoint > -1) {\r\n\r\n // //we add the weight on at the start and use that as the default but subtract it here if we now want to use volume weight.\r\n // if (!useWeight && countryGroup.BasePriceWeight !== 0) {\r\n // costForParcelRange -= countryGroup.BasePriceWeight;\r\n // costForParcelRange += countryGroup.BasePriceVolume;\r\n // }\r\n if (!currentParcelRange.Fragmented) {\r\n if (useWeight) {\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n }\r\n else {\r\n //Add volume unit costs\r\n const volumeRoundedUp = Math.ceil(this.totalVolume);\r\n const additionaVolumeCost = volumeRoundedUp * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n }\r\n }\r\n else {\r\n if (useWeight) {\r\n //Add weight unit costs\r\n const additionalWeightCost = inputWeight * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n }\r\n else {\r\n //Add volume unit costs\r\n const additionaVolumeCost = this.totalVolume * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n }\r\n }\r\n }\r\n else {\r\n if (!currentParcelRange.Fragmented) {\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n\r\n //Add volume unit costs\r\n const volumeRoundedUp = Math.ceil(this.totalVolume);\r\n const additionaVolumeCost = volumeRoundedUp * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n }\r\n else {\r\n //Add weight unit costs\r\n const additionalWeightCost = inputWeight * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n\r\n //Add volume unit costs\r\n const additionaVolumeCost = this.totalVolume * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n }\r\n\r\n //At this point we have the totalcost not including incoterms so now work out if VAT needs to be added on.\r\n //This needs to be done seperately to incoterms as they have VATIncluded as its own flag\r\n if (countryGroup.IncludeVAT || transportType.IncludeVAT)\r\n {\r\n this.vatCost += totalCost*transportType.VATPercentage;\r\n totalCost *= (1+transportType.VATPercentage);\r\n }\r\n\r\n //We assume if a single incoterm is defined for a transport type then VAT is included\r\n if (!!transportType.IncoTerm && !!transportType.IncoTerm.BasePrice) {\r\n this.vatCost += transportType.IncoTerm.BasePrice*transportType.VATPercentage;\r\n totalCost += transportType.IncoTerm.BasePrice;\r\n }\r\n }\r\n\r\n if (!!countryGroup.IncoTermsOverrides && countryGroup.IncoTermsOverrides.length > 0) {\r\n var incoTermCostSet = true;\r\n if (!!countryGroup.IncoTermsOverrides[0])\r\n {\r\n totalCost += this.getPricingForTransportType(countryGroup.IncoTermsOverrides[0].IncoTerms, true, transportType.VATPercentage, true);\r\n }\r\n }\r\n }\r\n else {\r\n //if no country groups then it's domestic transport or proxy shopping\r\n if (!!transportType.ParcelRanges) {\r\n var i: number;\r\n var inputWeight = this.translateHelper.getNumber(this.sendReceiveForm.get(\"totalWeight\").value);\r\n if (this.sendReceiveForm.get(\"isKg\").value == 'false')\r\n {\r\n inputWeight /= 1000;\r\n }\r\n for (i = 0; i < transportType.ParcelRanges.length; i++) {\r\n const currentParcelRange = transportType.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (totalCost == 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (transportType.IncludeVAT)\r\n {\r\n this.vatCost += transportType.VATPercentage*totalCost;\r\n totalCost *= (1+transportType.VATPercentage);\r\n }\r\n\r\n if (!incoTermCostSet && !!transportType.IncoTermsGroups && transportType.IncoTermsGroups.length > 0) {\r\n //The service will only ever return the single valid incoterm for the transport type.\r\n if (!!transportType.IncoTermsGroups[0])\r\n {\r\n totalCost += this.getPricingForTransportType(transportType.IncoTermsGroups[0].IncoTerms, true, transportType.VATPercentage, true);\r\n }\r\n }\r\n\r\n if (!!insuranceCost) {\r\n totalCost += insuranceCost;\r\n }\r\n\r\n if (!!transportType.IsDHL && transportType.IsDHL)\r\n {\r\n totalCost = Math.ceil(totalCost);\r\n }\r\n \r\n return +totalCost.toFixed(2);\r\n }\r\n\r\n public openRouteInNewWindow(route: string){\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n\r\n public showPostOfficeButton(productType: ProductType)\r\n {\r\n if (productType == ProductType.Air_Freight || productType == ProductType.Sea_Freight || productType == ProductType.DomesticTransport)\r\n {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}","
\r\n
\r\n

{{'send_receive.send_receive.service_options.title' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.key' | translate}}

\r\n
\r\n
\r\n
{{'send_receive.send_receive.service_options.drop_off_collection_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.drop_off_name' | translate}}

\r\n {{'send_receive.send_receive.service_options.drop_off_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.collection_name' | translate}}

\r\n {{'send_receive.send_receive.service_options.collection_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{'send_receive.send_receive.service_options.delivery_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.delivery_attempt' | translate}}

\r\n {{'send_receive.send_receive.service_options.collect_from_depot' |\r\n translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.guaranteed_delivery' | translate}}

\r\n {{'send_receive.send_receive.service_options.unlimited_attempts_collection'\r\n | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{'send_receive.send_receive.service_options.track_title' |\r\n translate}}
\r\n
\r\n \r\n
\r\n

{{'send_receive.send_receive.service_options.track_trace'\r\n | translate}}

\r\n {{'send_receive.send_receive.service_options.track_trace_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{'send_receive.send_receive.service_options.signature_on_receipt' | translate}}

\r\n {{'send_receive.send_receive.service_options.signature_on_receipt_description'\r\n | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.service_options.no_service_options_found' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{serviceOption.DeliveryDays}}

\r\n {{'send_receive.send_receive.service_options.days' | translate}}

\r\n \r\n
\r\n
\r\n

\r\n {{getNameByLanguage(serviceOption.Name)}}

\r\n
\r\n
\r\n \r\n {{getNameByLanguage(serviceOption.Description)}}\r\n
\r\n
\r\n

\r\n {{serviceOption.Cost | numberFormat}}\r\n {{'send_receive.send_receive.service_options.price_per_unit_text' |\r\n translate}}

\r\n

\r\n {{serviceOption.Cost | numberFormat}} Kr.

\r\n
\r\n
\r\n 0; else emptyRow\"\r\n class=\"col-lg-9 col-md-9 col-9\">{{'send_receive.send_receive.service_options.include_vat' |\r\n translate}} {{serviceOption.VATCost | numberFormat}} Kr.\r\n  \r\n
\r\n \r\n  \r\n
0; else noInsurance\">\r\n
\r\n
{{'send_receive.send_receive.service_options.include'\r\n | translate}} {{serviceOption.InsuranceCost | numberFormat}}\r\n Kr.
\r\n
\r\n
\r\n  \r\n
0; else noInsurance2\">\r\n
\r\n
\r\n {{'send_receive.send_receive.service_options.insurance_cover' | translate}}
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n \r\n {{getIconTextByLanguage(property.Name)}}\r\n
\r\n
\r\n \r\n {{'send_receive.send_receive.service_options.no_key_text_1'\r\n | translate}}\r\n
\r\n
\r\n \r\n {{'send_receive.send_receive.service_options.no_key_text_2'\r\n | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { SendAndReceiveComponent } from './new-order/send-and-receive/send-and-receive.component';\r\nimport { FindPricesComponent } from './new-order/find-prices/find-prices/find-prices.component';\r\nimport { AuthGuard } from '../shared/guards/auth.guard';\r\nimport { ProfileCompleteGuard } from '../shared/guards/profileComplete.guard';\r\nimport { OrderResolver } from './new-order/send-and-receive/services/order.resolver';\r\nimport { TaxResolver } from './new-order/send-and-receive/services/tax.resolver';\r\nimport { ViewOrderComponent } from './view-order/view-order.component';\r\nimport { ShipmentTypesResolver } from './new-order/send-and-receive/services/shipmentTypes.resolver';\r\nimport { CountryResolver } from './new-order/send-and-receive/services/country.resolver';\r\nimport { BuyPostageComponent } from './buy-postage/buy-postage/buy-postage.component';\r\nimport { BuyPostageLandingComponent } from './buy-postage/buy-postage-landing/buy-postage-landing.component';\r\nimport { TrackAndTraceComponent } from './track-and-trace/track-and-trace.component';\r\nimport { ViewPostageOrderComponent } from './view-order/view-postage-order/view-postage-order.component';\r\nimport { UserDetailsResolver } from './services/user-details.resolver';\r\nimport { BuyPostageOrderResolver } from './services/buy-postage-order.resolver';\r\nimport { TestComponent } from './test/test.component';\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role/send-receive/track-trace', component: TrackAndTraceComponent},\r\n { path: ':lang/:role/send-receive/track-trace/:trackTraceId', component: TrackAndTraceComponent },\r\n { path: ':lang/:role/send-receive/send-receive', component: SendAndReceiveComponent,canActivate: [AuthGuard, ProfileCompleteGuard]},\r\n { path: ':lang/:role/my-posta/orders/send-receive/:orderReferenceId', component: ViewOrderComponent, resolve: { countries: CountryResolver, order: OrderResolver, shipmentTypes: ShipmentTypesResolver, taxPercentage: TaxResolver }},\r\n { path: ':lang/:role/send-receive/send-receive/:orderReferenceId', component: SendAndReceiveComponent, resolve: { order: OrderResolver }, canActivate: [AuthGuard, ProfileCompleteGuard]},\r\n { path: ':lang/send-receive/:findPriceFormGroup', component: SendAndReceiveComponent},\r\n { path: ':lang/:role/send-receive/find-prices', component: FindPricesComponent, resolve: { countries: CountryResolver} },\r\n { path: ':lang/:role/send-receive/buy-postage', component: BuyPostageComponent },\r\n { path: ':lang/:role/send-receive/buy-postage-home', component: BuyPostageLandingComponent },\r\n { path: ':lang/:role/my-posta/orders/buy-postage/:orderId', component: ViewPostageOrderComponent, resolve: { userDetails: UserDetailsResolver, order: BuyPostageOrderResolver } },\r\n { path: ':lang/:role/send-receive/test', component: TestComponent, canActivate: [AuthGuard]},\r\n {\r\n path: 'cn22',\r\n component: SendAndReceiveComponent,\r\n resolve: {\r\n url: 'externalUrlRedirectResolver'\r\n },\r\n data: {\r\n externalUrl: 'https://cdn.posta.fo/media/5s2n5wv0/cn22.pdf'\r\n }\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: 'externalUrlRedirectResolver',\r\n useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) =>\r\n {\r\n window.location.href = (route.data as any).externalUrl;\r\n }\r\n }\r\n]\r\n})\r\nexport class SendReceiveRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SendReceiveRoutingModule } from './send-receive-routing.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SendAndReceiveComponent } from './new-order/send-and-receive/send-and-receive.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SendAndReceiveAddressesComponent } from './new-order/send-and-receive/addresses/send-and-receive-addresses.component';\r\nimport { SendAndReceiveSpecificationComponent } from './new-order/send-and-receive/specification/send-and-receive-specification.component';\r\nimport { SendReceivePricesComponent } from './new-order/send-and-receive/specification/send-receive-prices/send-receive-prices.component';\r\nimport { OrderDetailsComponent } from './new-order/order-details/order-details.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { SendReceiveConfirmationComponent } from './new-order/send-and-receive/send-receive-confirmation/send-receive-confirmation.component';\r\nimport { FromAccountAddressComponent } from './new-order/send-and-receive/addresses/account-address/from-account-address.component';\r\nimport { ToAccountAddressComponent } from './new-order/send-and-receive/addresses/account-address/to-account-address.component';\r\nimport { PostaDepotAddressComponent } from './new-order/send-and-receive/addresses/posta-depot-address/posta-depot-address.component';\r\nimport { FindPricesComponent } from './new-order/find-prices/find-prices/find-prices.component';\r\nimport { ViewPricesComponent } from './new-order/find-prices/view-prices/view-prices.component';\r\nimport { ViewOrderComponent } from './view-order/view-order.component';\r\nimport { BuyPostageComponent } from './buy-postage/buy-postage/buy-postage.component';\r\nimport { BuyPostageSecondaryComponent } from './buy-postage/buy-postage-secondary/buy-postage-secondary.component';\r\nimport { BuyPostageConfirmationComponent } from './buy-postage/buy-postage-confirmation/buy-postage-confirmation.component';\r\nimport { BuyPostageLandingComponent } from './buy-postage/buy-postage-landing/buy-postage-landing.component';\r\nimport { TrackAndTraceComponent } from './track-and-trace/track-and-trace.component';\r\nimport { ViewPostageOrderComponent } from './view-order/view-postage-order/view-postage-order.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TestComponent } from './test/test.component';\r\nimport { BuyPostageAddressesComponent } from './buy-postage/international-goods/buy-postage-addresses/buy-postage-addresses.component';\r\nimport { BuyPostageCustomsComponent } from './buy-postage/international-goods/buy-postage-customs/buy-postage-customs.component';\r\nimport { BuyPostageItemTypesComponent } from './buy-postage/international-goods/buy-postage-item-types/buy-postage-item-types.component';\r\nimport { InlineLoginComponent } from './buy-postage/international-goods/inline-login/inline-login.component';\r\nimport { ItemTypeComponent } from './buy-postage/international-goods/buy-postage-item-types/item-type/item-type.component';\r\nimport { BuyPostageLoginComponent } from './buy-postage/buy-postage-login/buy-postage-login.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SendAndReceiveSpecificationComponent,\r\n SendAndReceiveComponent,\r\n SendAndReceiveAddressesComponent,\r\n FromAccountAddressComponent,\r\n ToAccountAddressComponent,\r\n SendReceivePricesComponent,\r\n OrderDetailsComponent,\r\n SendReceiveConfirmationComponent,\r\n PostaDepotAddressComponent,\r\n FindPricesComponent,\r\n ViewPricesComponent,\r\n ViewOrderComponent,\r\n BuyPostageComponent,\r\n BuyPostageSecondaryComponent,\r\n BuyPostageConfirmationComponent,\r\n BuyPostageLandingComponent,\r\n TrackAndTraceComponent,\r\n ViewPostageOrderComponent,\r\n TestComponent,\r\n BuyPostageAddressesComponent,\r\n BuyPostageCustomsComponent,\r\n BuyPostageItemTypesComponent,\r\n InlineLoginComponent,\r\n ItemTypeComponent,\r\n BuyPostageLoginComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SendReceiveRoutingModule,\r\n TranslateModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatStepperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatCardModule,\r\n MatProgressBarModule,\r\n SharedModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n TranslateModule\r\n ]\r\n})\r\nexport class SendReceiveModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { PostageOrder } from \"../entities/postageOrder\";\r\nimport { BuyPostageService } from \"./buy-postage.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BuyPostageOrderResolver implements Resolve {\r\n\r\n constructor (private buyPostageService: BuyPostageService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.buyPostageService.getOrder(route.paramMap.get('orderId'));\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { PostageOrder } from '../entities/postageOrder';\r\nimport { PostageConfirmation } from '../entities/postageConfirmation';\r\nimport { DownloadOutput } from '../entities/DownloadOutput';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n//TODO change this PayCustomsService\r\nexport class BuyPostageService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public createPostageOrder(buyPostageUpsert: PostageOrder): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/BuyPostage`, buyPostageUpsert, { responseType: 'text' }) as Observable;\r\n }\r\n\r\n public getOrder(orderRef: string, userId?: string): Observable {\r\n if (!!userId)\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage?orderReference=${orderRef}&creatorGuid=${userId}`) as Observable;\r\n }\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage?orderReference=${orderRef}`) as Observable;\r\n }\r\n\r\n public getOrderConfirmation(orderRef: string, userId?: string): Observable \r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/OrderConfirmation?orderRef=${orderRef}&creatorGuid=${userId}`) as Observable;\r\n }\r\n\r\n // public getOrderConfirmation(orderRef: string): Observable {\r\n // return this.httpClient.get(`/api/BuyPostage/OrderConfirmation?orderRef=ST10000007`) as Observable;\r\n // }\r\n\r\n public downloadReceipt(orderRef: string, langCode: string, creatorGuid?: string): Observable\r\n {\r\n if(creatorGuid){\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/${orderRef}/${langCode}/${creatorGuid}/DownloadReceipt`) as Observable;\r\n }\r\n else{\r\n //Random GUID to be accepted by service - GUID is not used for logged in users\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/${orderRef}/${langCode}/eec1179f-a913-471b-8590-d77d599c6ebf/DownloadReceipt`) as Observable;\r\n }\r\n }\r\n\r\n public downloadCN22(orderRef: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/${orderRef}/DownloadCN22`) as Observable;\r\n }\r\n\r\n public emailOrder(orderRef: string, langCode: string, toEmail: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/${orderRef}/${langCode}/${toEmail}/EmailOrder`) as Observable\r\n }\r\n\r\n public emailCN22(toEmail: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/BuyPostage/${toEmail}/EmailCN22`) as Observable\r\n }\r\n\r\n public downloadCDS(orderBarcode: string): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/CDSPrint?barCode=${orderBarcode}`) as Observable;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { PaymentRequest } from '.././entities/PaymentRequest'\r\nimport { DownloadOutput } from '.././entities/DownloadOutput'\r\nimport { PaymentInfo } from '.././entities/PaymentInfo'\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n//TODO change this PayCustomsService\r\nexport class PaymentService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public validate(paymentType: number, invoicePoNumber: string, refCode: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/Payment/${paymentType}/${invoicePoNumber}/${refCode}/validate`) as Observable;\r\n }\r\n\r\n public GetPaymentInfo(paymentType: number, invoicePoNumber: string, refCode: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/Payment/${paymentType}/${invoicePoNumber}/${refCode}`) as Observable;\r\n }\r\n\r\n public dibsPay(url: string): Observable {\r\n return this.httpClient.get(url);\r\n }\r\n\r\n public getReceipt(paymentType: number, invoicePoNumber): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/payment/${paymentType}/${invoicePoNumber}/GetReceipt`) as Observable\r\n }\r\n \r\n public downloadInvoice(paymentType: number, invoicePoNumber: string, refCode: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/Payment/${paymentType}/${invoicePoNumber}/${refCode}/DownloadInvoice`) as Observable;\r\n }\r\n\r\n public downloadReceipt(paymentType: number, invoicePoNumber, refCode: string, languageCode: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/Payment/${paymentType}/${invoicePoNumber}/${refCode}/${languageCode}/DownloadReceipt`) as Observable;\r\n }\r\n\r\n public updatePaymentStatus(statusUpdateObj: any)\r\n {\r\n return this.httpClient.put(`${environment.apiUrl}/api/Payment/`, statusUpdateObj) as Observable;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { UserService } from '../../account/services/user.service';\r\nimport { User } from \"../../shared/entities/user\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserDetailsResolver implements Resolve {\r\n\r\n constructor(private userService: UserService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.userService.getUserDetails();\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { FindServiceOptionDetails } from '../../shared/price-matrix/entities/FindServiceOptionDetails';\r\nimport { Pricing } from '../../shared/price-matrix/entities/pricing';\r\nimport { TransportType } from '../../shared/price-matrix/entities/TransportType';\r\nimport { ProductType } from '../../shared/price-matrix/enums/ProductType';\r\nimport { PriceMatrixService } from '../../shared/price-matrix/services/price-matrix.service';\r\nimport { ServiceOption, TestServiceOption } from '../entities/serviceOption';\r\n\r\n@Component({\r\n selector: 'app-test',\r\n templateUrl: './test.component.html',\r\n styleUrls: ['./test.component.scss']\r\n})\r\nexport class TestComponent implements OnInit {\r\n\r\n public jsonInput: string;\r\n\r\n public serviceOptionDetails: FindServiceOptionDetails;\r\n\r\n public serviceOptions: Array = new Array();\r\n\r\n insuranceVat: number;\r\n\r\n constructor(private priceMatrixService: PriceMatrixService, private translateHelper: TranslationHelper) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getPrices() {\r\n this.serviceOptions = new Array();\r\n this.serviceOptionDetails = JSON.parse(this.jsonInput);\r\n console.log(`Parsed object: ${this.serviceOptionDetails}`);\r\n\r\n this.priceMatrixService.getServiceOptions(this.serviceOptionDetails).subscribe(transportTypes => {\r\n //loop through transport types and set fields\r\n\r\n var i: number;\r\n for (i = 0; i < transportTypes.length; i++) {\r\n\r\n this.insuranceVat = 0;\r\n\r\n var managedCustomCost: number;\r\n var managedCustomCostJson: string;\r\n var insuranceCost: number;\r\n var insuranceExtra;\r\n var managedCustomExtra;\r\n var specialExtrasOverrides;\r\n if (!!transportTypes[i].CountryGroups) {\r\n specialExtrasOverrides = transportTypes[i].CountryGroups[0].SpecialExtrasOverrides;\r\n }\r\n\r\n if (!!transportTypes[i].SpecialExtras) {\r\n insuranceExtra = transportTypes[i].SpecialExtras.find(x => x.Key == \"0\");\r\n managedCustomExtra = transportTypes[i].SpecialExtras.find(x => x.Key == \"1\");\r\n }\r\n\r\n var serviceOption = new TestServiceOption();\r\n\r\n //Clean this up\r\n if (!!transportTypes[i].SpecialExtras || !!specialExtrasOverrides) {\r\n //use first country group as it's the only one returned from the backend\r\n\r\n if (!!specialExtrasOverrides) {\r\n var insuranceOverride = specialExtrasOverrides.find(x => x.Key == \"0\")\r\n if (!!insuranceOverride && this.serviceOptionDetails.IsInsurance) {\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceOverride), false, serviceOption, transportTypes[i].VATPercentage);\r\n if (insuranceOverride.IncludeVAT)\r\n {\r\n this.insuranceVat = insuranceCost*transportTypes[i].VATPercentage;\r\n insuranceCost *= 1+transportTypes[i].VATPercentage;\r\n }\r\n }\r\n else if (!!insuranceExtra && this.serviceOptionDetails.IsInsurance) {\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceExtra), false, serviceOption, transportTypes[i].VATPercentage);\r\n if (insuranceExtra.IncludeVAT)\r\n {\r\n this.insuranceVat = insuranceCost*transportTypes[i].VATPercentage;\r\n insuranceCost *= 1+transportTypes[i].VATPercentage;\r\n }\r\n }\r\n }\r\n else if (!!transportTypes[i].SpecialExtras) {\r\n\r\n if (!!insuranceExtra && this.serviceOptionDetails.IsInsurance) {\r\n insuranceCost = this.getPricingForTransportType(new Array(insuranceExtra), false, serviceOption, transportTypes[i].VATPercentage);\r\n if (insuranceExtra.IncludeVAT)\r\n {\r\n this.insuranceVat = insuranceCost*transportTypes[i].VATPercentage;\r\n insuranceCost *= 1+transportTypes[i].VATPercentage;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //You can only buy 1 stamp per send receive order so having multiple parcels defined goes against this logic.\r\n var isOneItem = this.serviceOptionDetails.IsOneParcel;\r\n if (transportTypes[i].ProductTypeId == ProductType.Postage && !isOneItem) {\r\n continue;\r\n }\r\n\r\n var minDays = !!transportTypes[i].MinimumDeliveryDays ? transportTypes[i].MinimumDeliveryDays : transportTypes[i].CountryGroups[0].MinimumDeliveryDays;\r\n var maxDays = !!transportTypes[i].MaximumDeliveryDays ? transportTypes[i].MaximumDeliveryDays : transportTypes[i].CountryGroups[0].MaximumDeliveryDays;\r\n\r\n serviceOption.IconPath = transportTypes[i].IconPath;\r\n serviceOption.Name = transportTypes[i].Name;\r\n serviceOption.Cost = this.getCostForTransportType(transportTypes[i], insuranceCost, serviceOption);\r\n serviceOption.DeliveryDays = `${minDays} - ${maxDays}`;\r\n serviceOption.Description = transportTypes[i].Description;\r\n serviceOption.KeyIconPaths = transportTypes[i].Properties.map(x => x.IconPath);\r\n serviceOption.Key = transportTypes[i].Key;\r\n serviceOption.MinDeliveryDays = minDays;\r\n serviceOption.ProductType = transportTypes[i].ProductTypeId;\r\n serviceOption.InsuranceCost = insuranceCost;\r\n serviceOption.ManagedCustomCost = managedCustomCost;\r\n serviceOption.ManagedCustomCostJson = managedCustomCostJson;\r\n serviceOption.BarcodePrefix = transportTypes[i].BarcodePrefix\r\n serviceOption.InsuranceVAT = this.insuranceVat;\r\n\r\n this.serviceOptions.push(serviceOption);\r\n }\r\n console.log(this.serviceOptions);\r\n })\r\n }\r\n\r\n private getCostForTransportType(transportType: TransportType, insuranceCost: number, serviceOption: TestServiceOption): number {\r\n //From the backend the country group should only return one item so just look at the first item\r\n var totalCost: number = 0;\r\n var incoTermCostSet: boolean = false;\r\n if (!!transportType.CountryGroups && transportType.CountryGroups.length > 0) {\r\n const countryGroup = transportType.CountryGroups[0];\r\n //If has base price set it to that otherwise look for the specific parcel range and use the base cost override\r\n\r\n var inputWeight = this.translateHelper.getNumber(this.serviceOptionDetails.Weight);\r\n if (!!transportType.BoundedWeightValue)\r\n {\r\n inputWeight = transportType.BoundedWeightValue;\r\n }\r\n var letterSize = this.serviceOptionDetails.LetterSizeTransportTypeId;\r\n if (!!letterSize && letterSize > 0) {\r\n inputWeight /= 1000;\r\n }\r\n var useWeight = ((inputWeight / this.serviceOptionDetails.Volume) / 1000) > countryGroup.FreightPivotPoint;\r\n\r\n serviceOption.UsingWeightPivotPoint = useWeight;\r\n\r\n if (countryGroup.BasePriceWeight !== 0 && useWeight) {\r\n totalCost = countryGroup.BasePriceWeight;\r\n serviceOption.BasePrice = totalCost;\r\n }\r\n else if (countryGroup.BasePriceVolume !== 0) {\r\n totalCost = countryGroup.BasePriceVolume;\r\n serviceOption.BasePrice = totalCost;\r\n }\r\n\r\n if (!!countryGroup.ParcelRanges) {\r\n var i: number;\r\n for (i = 0; i < countryGroup.ParcelRanges.length; i++) {\r\n const currentParcelRange = countryGroup.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight\r\n && this.translateHelper.getNumber(this.serviceOptionDetails.Volume) >= currentParcelRange.MinVolume\r\n && (this.translateHelper.getNumber(this.serviceOptionDetails.Volume) <= currentParcelRange.MaxVolume || currentParcelRange.MaxVolume == 0)) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (!!currentParcelRange.BaseCostOverride && currentParcelRange.BaseCostOverride > 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n serviceOption.BasePrice = undefined;\r\n serviceOption.BaseCostOverride = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n if (countryGroup.FreightPivotPoint > -1) {\r\n\r\n if (!currentParcelRange.Fragmented) {\r\n if (useWeight) {\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n serviceOption.AdditionalWeightCost = additionalWeightCost;\r\n }\r\n else {\r\n //Add volume unit costs\r\n const volumeRoundedUp = Math.ceil(this.serviceOptionDetails.Volume);\r\n const additionaVolumeCost = volumeRoundedUp * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n serviceOption.AdditionalVolumeCost = additionaVolumeCost;\r\n }\r\n }\r\n else {\r\n if (useWeight) {\r\n //Add weight unit costs\r\n const additionalWeightCost = inputWeight * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n serviceOption.AdditionalWeightCost = additionalWeightCost;\r\n }\r\n else {\r\n //Add volume unit costs\r\n const additionaVolumeCost = this.serviceOptionDetails.Volume * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n serviceOption.AdditionalVolumeCost = additionaVolumeCost;\r\n }\r\n }\r\n }\r\n else {\r\n if (!currentParcelRange.Fragmented) {\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n serviceOption.AdditionalWeightCost = additionalWeightCost;\r\n\r\n //Add volume unit costs\r\n const volumeRoundedUp = Math.ceil(this.serviceOptionDetails.Volume);\r\n const additionaVolumeCost = volumeRoundedUp * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n serviceOption.AdditionalVolumeCost = additionaVolumeCost;\r\n }\r\n else {\r\n //Add weight unit costs\r\n const additionalWeightCost = inputWeight * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n serviceOption.AdditionalWeightCost = additionalWeightCost;\r\n\r\n //Add volume unit costs\r\n const additionaVolumeCost = this.serviceOptionDetails.Volume * currentParcelRange.CostPerUnitVolume;\r\n totalCost += additionaVolumeCost;\r\n serviceOption.AdditionalVolumeCost = additionaVolumeCost;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n \r\n if (!!transportType.IsDHL && transportType.IsDHL)\r\n {\r\n // totalCost -= serviceOption.AdditionalWeightCost;\r\n // serviceOption.AdditionalWeightCost = Math.ceil(serviceOption.AdditionalWeightCost);\r\n // totalCost += serviceOption.AdditionalWeightCost\r\n totalCost = Math.ceil(totalCost);\r\n serviceOption.IsDHL = true;\r\n }\r\n if (countryGroup.IncludeVAT)\r\n {\r\n serviceOption.BasePriceVAT = totalCost*transportType.VATPercentage;\r\n }\r\n totalCost += serviceOption.BasePriceVAT\r\n serviceOption.TotalBaseCost = totalCost;\r\n serviceOption.BaseIncludeVAT = countryGroup.IncludeVAT;\r\n\r\n\r\n if (!!transportType.IncoTerm && !!transportType.IncoTerm.BasePrice) {\r\n totalCost += transportType.IncoTerm.BasePrice;\r\n serviceOption.IncoTermBasePrice.push(transportType.IncoTerm.BasePrice);\r\n }\r\n }\r\n\r\n if (!!countryGroup.IncoTermsOverrides && countryGroup.IncoTermsOverrides.length > 0) {\r\n var incoTermCostSet = true;\r\n if (!!countryGroup.IncoTermsOverrides[0]) {\r\n totalCost += this.getPricingForTransportType(countryGroup.IncoTermsOverrides[0].IncoTerms, true, serviceOption, transportType.VATPercentage);\r\n }\r\n }\r\n }\r\n else {\r\n //if no country groups then it's domestic transport or proxy shopping\r\n if (!!transportType.ParcelRanges) {\r\n var i: number;\r\n var inputWeight = this.translateHelper.getNumber(this.serviceOptionDetails.Weight);\r\n\r\n var letterSize = this.serviceOptionDetails.LetterSizeTransportTypeId;\r\n if (!!letterSize && letterSize > 0) {\r\n inputWeight /= 1000;\r\n }\r\n for (i = 0; i < transportType.ParcelRanges.length; i++) {\r\n const currentParcelRange = transportType.ParcelRanges[i];\r\n if (inputWeight >= currentParcelRange.MinWeight\r\n && inputWeight <= currentParcelRange.MaxWeight) {\r\n //Valid parcel range found, now assign the override cost if it's still 0\r\n if (totalCost == 0) {\r\n totalCost = currentParcelRange.BaseCostOverride;\r\n }\r\n\r\n //Add weight unit costs\r\n const weightRoundedUp = Math.ceil(inputWeight);\r\n const additionalWeightCost = weightRoundedUp * currentParcelRange.CostPerUnitWeight;\r\n totalCost += additionalWeightCost;\r\n }\r\n }\r\n serviceOption.TotalBaseCost = totalCost;\r\n }\r\n }\r\n\r\n if (!incoTermCostSet && !!transportType.IncoTermsGroups && transportType.IncoTermsGroups.length > 0) {\r\n //The service will only ever return the single valid incoterm for the transport type.\r\n if (!!transportType.IncoTermsGroups[0]) {\r\n totalCost += this.getPricingForTransportType(transportType.IncoTermsGroups[0].IncoTerms, true, serviceOption, transportType.VATPercentage);\r\n }\r\n }\r\n\r\n if (!!insuranceCost) {\r\n totalCost += insuranceCost;\r\n }\r\n return +totalCost.toFixed(2);\r\n }\r\n\r\n private getPricingForTransportType(pricings: Array, isIncoTerms: boolean, serviceOption: TestServiceOption, vatPercentage: number): number {\r\n if (!pricings) {\r\n return 0;\r\n }\r\n\r\n var inputWeight = this.translateHelper.getNumber(this.serviceOptionDetails.Weight);\r\n var letterSize = this.serviceOptionDetails.LetterSizeTransportTypeId;\r\n if (!!letterSize && letterSize > 0) {\r\n inputWeight /= 1000;\r\n }\r\n var inputVolume = this.translateHelper.getNumber(this.serviceOptionDetails.Volume);\r\n var inputValue = this.translateHelper.getNumber(this.serviceOptionDetails.Value);\r\n var totalCost = 0;\r\n\r\n for (var i = 0; i < pricings.length; i++) {\r\n var weightCost = 0;\r\n var valueCost = 0;\r\n var volumeCost = 0;\r\n\r\n if (pricings[i].BasePriceOnly && isIncoTerms) {\r\n totalCost += pricings[i].BasePrice;\r\n serviceOption.TotalIncoTermCost += +pricings[i].BasePrice;\r\n serviceOption.IncoTermBasePrice.push(pricings[i].BasePrice);\r\n continue;\r\n }\r\n else if (pricings[i].BasePriceOnly) {\r\n totalCost += pricings[i].BasePrice;\r\n serviceOption.TotalInsuranceCost = pricings[i].BasePrice;\r\n serviceOption.InsuranceBasePrice.push(pricings[i].BasePrice);\r\n continue;\r\n }\r\n\r\n if (isIncoTerms) {\r\n if (!pricings[i].Fragmented) {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (inputWeight == pricings[i].StartWeight) {\r\n weightDif = 1;\r\n }\r\n var absValWeightIntervals = Math.ceil(weightDif / pricings[i].WeightInterval);\r\n //check if it's a whole number after being divided\r\n // if (weightDif / pricings[i].WeightInterval - Math.floor(weightDif / pricings[i].WeightInterval) == 0 && inputWeight - pricings[i].StartWeight != 0) {\r\n // absValWeightIntervals += 1;\r\n // }\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n serviceOption.IncoTermWeightCost.push(absValWeightIntervals * pricings[i].PricePerWeightInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermWeightCost.push(0);\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (inputVolume == pricings[i].StartVolume) {\r\n volumeDif = 1;\r\n }\r\n var absValVolumeIntervals = Math.ceil(volumeDif / pricings[i].VolumeInterval);\r\n //check if it's a whole number after being divided\r\n // if (volumeDif / pricings[i].VolumeInterval - Math.floor(volumeDif / pricings[i].VolumeInterval) == 0 && inputVolume - pricings[i].StartVolume != 0) {\r\n // absValVolumeIntervals += 1;\r\n // }\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n serviceOption.IncoTermVolumeCost.push(absValVolumeIntervals * pricings[i].PricePerVolumeInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermVolumeCost.push(0);\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (inputValue == pricings[i].StartValue) {\r\n valueDif = 1;\r\n }\r\n var absValValueIntervals = Math.ceil(valueDif / pricings[i].ValueInterval);\r\n //check if it's a whole number after being divided\r\n // if (valueDif / pricings[i].ValueInterval - Math.floor(valueDif / pricings[i].ValueInterval) == 0 && inputValue - pricings[i].StartValue != 0) {\r\n // absValValueIntervals += 1;\r\n // }\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n serviceOption.IncoTermValueCost.push(absValValueIntervals * pricings[i].PricePerValueInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermValueCost.push(0);\r\n }\r\n if (pricings[i].IncludeVAT)\r\n {\r\n serviceOption.IncoTermVATCost.push((pricings[i].BasePrice + weightCost + valueCost + volumeCost)*vatPercentage);\r\n totalCost += (pricings[i].BasePrice + weightCost + valueCost + volumeCost)*(1+vatPercentage);\r\n serviceOption.TotalIncoTermCost += (+pricings[i].BasePrice + +weightCost + +valueCost + +volumeCost)*(1+vatPercentage);\r\n }\r\n else {\r\n totalCost += pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n serviceOption.TotalIncoTermCost += +pricings[i].BasePrice + +weightCost + +valueCost + +volumeCost;\r\n }\r\n serviceOption.IncoTermBasePrice.push(pricings[i].BasePrice);\r\n }\r\n else {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (isIncoTerms) {\r\n weightDif += 1;\r\n }\r\n var absValWeightIntervals = weightDif / pricings[i].WeightInterval;\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n serviceOption.IncoTermWeightCost.push(absValWeightIntervals * pricings[i].PricePerWeightInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermWeightCost.push(0);\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (isIncoTerms) {\r\n volumeDif += 1;\r\n }\r\n var absValVolumeIntervals = volumeDif / pricings[i].VolumeInterval;\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n serviceOption.IncoTermVolumeCost.push(absValVolumeIntervals * pricings[i].PricePerVolumeInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermVolumeCost.push(0);\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (isIncoTerms) {\r\n valueDif += 1;\r\n }\r\n var absValValueIntervals = valueDif / pricings[i].ValueInterval;\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n serviceOption.IncoTermValueCost.push(absValValueIntervals * pricings[i].PricePerValueInterval);\r\n }\r\n else {\r\n serviceOption.IncoTermValueCost.push(0);\r\n }\r\n if (pricings[i].IncludeVAT)\r\n {\r\n serviceOption.IncoTermVATCost.push((pricings[i].BasePrice + weightCost + valueCost + volumeCost)*vatPercentage);\r\n totalCost += (pricings[i].BasePrice + weightCost + valueCost + volumeCost)*(1+vatPercentage);\r\n serviceOption.TotalIncoTermCost += (+pricings[i].BasePrice + +weightCost + +valueCost + +volumeCost)*(1+vatPercentage);\r\n }\r\n else {\r\n totalCost += pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n serviceOption.TotalIncoTermCost += +pricings[i].BasePrice + +weightCost + +valueCost + +volumeCost;\r\n }\r\n serviceOption.IncoTermBasePrice.push(pricings[i].BasePrice);\r\n }\r\n }\r\n else {\r\n if (!pricings[i].Fragmented) {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (inputWeight == pricings[i].StartWeight) {\r\n weightDif = 1;\r\n }\r\n var absValWeightIntervals = Math.ceil(weightDif / pricings[i].WeightInterval);\r\n //check if it's a whole number after being divided\r\n // if (weightDif / pricings[i].WeightInterval - Math.floor(weightDif / pricings[i].WeightInterval) == 0 && inputWeight - pricings[i].StartWeight != 0) {\r\n // absValWeightIntervals += 1;\r\n // }\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n serviceOption.InsuranceWeightCost.push(absValWeightIntervals * pricings[i].PricePerWeightInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceWeightCost.push(0);\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (inputVolume == pricings[i].StartVolume) {\r\n volumeDif = 1;\r\n }\r\n var absValVolumeIntervals = Math.ceil(volumeDif / pricings[i].VolumeInterval);\r\n //check if it's a whole number after being divided\r\n // if (volumeDif / pricings[i].VolumeInterval - Math.floor(volumeDif / pricings[i].VolumeInterval) == 0 && inputVolume - pricings[i].StartVolume != 0) {\r\n // absValVolumeIntervals += 1;\r\n // }\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n serviceOption.InsuranceVolumeCost.push(absValVolumeIntervals * pricings[i].PricePerVolumeInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceVolumeCost.push(0);\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (inputValue == pricings[i].StartValue) {\r\n valueDif = 1;\r\n }\r\n var absValValueIntervals = Math.ceil(valueDif / pricings[i].ValueInterval);\r\n //check if it's a whole number after being divided\r\n // if (valueDif / pricings[i].ValueInterval - Math.floor(valueDif / pricings[i].ValueInterval) == 0 && inputValue - pricings[i].StartValue != 0) {\r\n // absValValueIntervals += 1;\r\n // }\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n serviceOption.InsuranceValueCost.push(absValValueIntervals * pricings[i].PricePerValueInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceValueCost.push(0);\r\n }\r\n totalCost += pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n serviceOption.InsuranceBasePrice.push(pricings[i].BasePrice + weightCost + valueCost + volumeCost);\r\n serviceOption.TotalInsuranceCost = pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n }\r\n else {\r\n if (inputWeight >= pricings[i].StartWeight && pricings[i].WeightInterval > 0 && pricings[i].PricePerWeightInterval > 0) {\r\n var weightDif = inputWeight - pricings[i].StartWeight;\r\n if (isIncoTerms) {\r\n weightDif += 1;\r\n }\r\n var absValWeightIntervals = weightDif / pricings[i].WeightInterval;\r\n weightCost = absValWeightIntervals * pricings[i].PricePerWeightInterval;\r\n serviceOption.InsuranceWeightCost.push(absValWeightIntervals * pricings[i].PricePerWeightInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceWeightCost.push(0);\r\n }\r\n if (inputVolume >= pricings[i].StartVolume && pricings[i].VolumeInterval > 0 && pricings[i].PricePerVolumeInterval > 0) {\r\n var volumeDif = inputVolume - pricings[i].StartVolume;\r\n if (isIncoTerms) {\r\n volumeDif += 1;\r\n }\r\n var absValVolumeIntervals = volumeDif / pricings[i].VolumeInterval;\r\n volumeCost = absValVolumeIntervals * pricings[i].PricePerVolumeInterval;\r\n serviceOption.InsuranceVolumeCost.push(absValVolumeIntervals * pricings[i].PricePerVolumeInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceVolumeCost.push(0);\r\n }\r\n if (inputValue >= pricings[i].StartValue && pricings[i].ValueInterval > 0 && pricings[i].PricePerValueInterval > 0) {\r\n var valueDif = inputValue - pricings[i].StartValue;\r\n if (isIncoTerms) {\r\n valueDif += 1;\r\n }\r\n var absValValueIntervals = valueDif / pricings[i].ValueInterval;\r\n valueCost = absValValueIntervals * pricings[i].PricePerValueInterval;\r\n serviceOption.InsuranceValueCost.push(absValValueIntervals * pricings[i].PricePerValueInterval);\r\n }\r\n else {\r\n serviceOption.InsuranceValueCost.push(0);\r\n }\r\n totalCost += pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n serviceOption.InsuranceBasePrice.push(pricings[i].BasePrice + weightCost + valueCost + volumeCost);\r\n serviceOption.TotalInsuranceCost = pricings[i].BasePrice + weightCost + valueCost + volumeCost;\r\n }\r\n }\r\n }\r\n return totalCost;\r\n\r\n }\r\n\r\n\r\n}","
\r\n Enter JSON:\r\n \r\n \r\n\r\n
\r\n Total results: {{serviceOptions.length}}

\r\n\r\n
\r\n
\r\n Name: {{serviceOption.Name.EN}}

\r\n
Using Weight Pricing:\r\n {{serviceOption.UsingWeightPivotPoint}}
\r\n
TransportType base price: {{serviceOption.BasePrice}}
\r\n
TransportType base price override:\r\n {{serviceOption.BaseCostOverride}}
\r\n
TransportType base price VAT: {{serviceOption.BasePriceVAT}}
\r\n
TransportType volume cost:\r\n {{serviceOption.AdditionalVolumeCost}}
\r\n
TransportType weight cost:\r\n {{serviceOption.AdditionalWeightCost}}
\r\n
Base subtotal:\r\n {{serviceOption.TotalBaseCost}}

\r\n\r\n
\r\n
\r\n
Incoterms item {{y+1}} base price: {{incotermBasePrice}}
\r\n
Incoterms item {{y+1}} value price:\r\n {{serviceOption.IncoTermValueCost[y]}}
\r\n
Incoterms item {{y+1}} weight price:\r\n {{serviceOption.IncoTermWeightCost[y]}}
\r\n
Incoterms item {{y+1}} volume price:\r\n {{serviceOption.IncoTermVolumeCost[y]}}
\r\n
Incoterms item {{y+1}} VAT cost: \r\n {{serviceOption.IncoTermVATCost[y]}}
\r\n
\r\n
\r\n
Incoterms subtotal:\r\n {{serviceOption.TotalIncoTermCost}}

\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
Insurance item {{z+1}} base price: {{insuranceBasePrice}}
\r\n
0\">Insurance VAT Included: true
\r\n
0\">Insurance VAT Cost: \r\n {{serviceOption.InsuranceVAT}}
\r\n
Insurance item {{z+1}} value price:\r\n {{serviceOption.InsuranceValueCost[z]}}
\r\n
Insurance item {{z+1}} weight price:\r\n {{serviceOption.InsuranceWeightCost[z]}}
\r\n
Insurance item {{z+1}} volume price:\r\n {{serviceOption.InsuranceVolumeCost[z]}}
\r\n
\r\n
Insurance subtotal:\r\n {{serviceOption.TotalInsuranceCost + serviceOption.InsuranceVAT}}

\r\n
\r\n\r\n \r\n\r\n
NOTE: DHL prices are always rounded up to the nearest whole number
\r\n Overall cost: {{serviceOption.Cost}}
\r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateCompiler, TranslateService } from '@ngx-translate/core';\r\nimport { TrackTraceService } from '../../send-receive/new-order/send-and-receive/services/track-trace.service'\r\nimport { StaticContentHelper } from '../../shared/helpers/static-content-helper';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { TrackTraceItem } from '../entities/trackTraceItem';\r\nimport { TrackTraceItemArray } from '../entities/trackTraceItemArray';\r\n\r\n@Component({\r\n selector: 'app-track-and-trace',\r\n templateUrl: './track-and-trace.component.html',\r\n styleUrls: ['./track-and-trace.component.scss']\r\n})\r\nexport class TrackAndTraceComponent implements OnInit, AfterViewInit {\r\n\r\n//TODO - Move the IDs into a config JSON\r\n\r\n deliveredIds = [3,4,5,121];\r\n\r\n attemptedDeliveryIds = [6,7,14,34,35,83];\r\n\r\n returnToSenderIds = [8,10,85];\r\n\r\n inTransitLocationUpdateIds = [38,39,40,41,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,\r\n 64,65,66,67,68,69,70,71,72,75,76,77,78,84,86,87,88,89,90,91,94,97,113,117,120,124];\r\n\r\n delayedNoActionIds = [12,13,15,22,23,24,63,73,108,114];\r\n\r\n unableToDeliveryIds = [9,11,16,17,18,20,21,25,26,28,29,32,33,51,98,99,104,105,107,112,118];\r\n\r\n delayedActionIds = [19,30,31,42,74,79,80,81,82,95,96,100,101,102,103,106,109,110,111,115,116];\r\n\r\n confirmedEventTypeIds = [1,92];\r\n\r\n readyToCollectIds = [27];\r\n\r\n cancelledEventTypeIds = [2, 93];\r\n\r\n receivedIds = [37];\r\n\r\n transactionForm: FormGroup;\r\n\r\n trackTraceItems: any;\r\n transitItems: Array;\r\n\r\n dispatchedItem: TrackTraceItem;\r\n\r\n orderConfirmedItem: TrackTraceItem;\r\n\r\n orderReceivedItems: Array;\r\n\r\n loadingOrder: boolean = false;\r\n\r\n showInvalidTrackingCode: boolean = false;\r\n\r\n currentShownItemIndex: number = 0;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n interval: any;\r\n observer: MutationObserver;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private trackTraceService: TrackTraceService,\r\n private route: ActivatedRoute,\r\n private staticContentService: StaticContentService,\r\n private translateService: TranslateService,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.transactionForm = this.formBuilder.group({\r\n transactionId: ['', Validators.required]\r\n });\r\n\r\n var trackTraceId = this.route.snapshot.paramMap.get('trackTraceId');\r\n\r\n if (!!trackTraceId) {\r\n this.transactionForm.get(\"transactionId\").setValue(trackTraceId);\r\n this.getOrderDetails();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public getOrderDetails() {\r\n this.showInvalidTrackingCode = false;\r\n this.trackTraceItems = null;\r\n this.transitItems = null;\r\n // this.deliveredItem = null;\r\n this.dispatchedItem = null;\r\n this.orderConfirmedItem = null;\r\n this.orderReceivedItems = null;\r\n\r\n if (this.transactionForm.valid) {\r\n this.loadingOrder = true;\r\n this.trackTraceService.getTrackTraceDetailsByCode(this.transactionForm.get(\"transactionId\").value).subscribe(x => {\r\n this.loadingOrder = false;\r\n\r\n if (x == null) {\r\n this.showInvalidTrackingCode = true;\r\n return;\r\n }\r\n\r\n //Find the highest parcel sequence number to find the number of items\r\n var highestParcelSequenceNum = Math.max.apply(Math, x.map(function(o) { return o.parcelSequenceNo; }));\r\n let parent: Array = new Array();\r\n\r\n //TODO get the order of sequence numbers and ignore any duplicates e.g 3,3,2,1,2,1 should return 3,2,1\r\n //This then filters the whole data set first by the sequence number before iterating.\r\n\r\n //put track trace arrays into their correct item\r\n for (let z=0; z < highestParcelSequenceNum; z++)\r\n {\r\n var j: number = 0;\r\n let res: TrackTraceItemArray = new TrackTraceItemArray();\r\n for (let i = 0; i < x.length; i++) {\r\n \r\n if (i == 0) {\r\n var array = [x[i]];\r\n res.items.push(array)\r\n }\r\n else if (this.eventTypeIdSameGroup(x[i].eventTypeId, x[i - 1].eventTypeId)) {\r\n res.items[j].push(x[i]);\r\n }\r\n else {\r\n j++;\r\n var array = [x[i]];\r\n res.items.push(array);\r\n }\r\n\r\n }\r\n if (z == 0)\r\n {\r\n res.showItem = true;\r\n }\r\n parent.push(res);\r\n }\r\n\r\n\r\n this.trackTraceItems = parent;\r\n\r\n }, (error) => {\r\n this.loadingOrder = false;\r\n this.showInvalidTrackingCode = true;\r\n })\r\n\r\n }\r\n }\r\n\r\n public eventTypeIdSameGroup(currentId, previousId)\r\n {\r\n var allArrays = [ this.confirmedEventTypeIds, this.cancelledEventTypeIds, this.deliveredIds, this.attemptedDeliveryIds,\r\n this.returnToSenderIds, this.unableToDeliveryIds, this.delayedNoActionIds, this.delayedActionIds, this.readyToCollectIds, this.receivedIds, this.inTransitLocationUpdateIds];\r\n\r\n for (let i=0; i
\r\n
\r\n\r\n
\r\n

{{'track_trace.enter_id' | translate}}

\r\n

{{'track_trace.id_not_found_error' | translate}}

\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.delivered' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{deliveredItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{deliveredItem.eventDescription}} {{getTransitItemLocationName(deliveredItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.in_transit_location_update' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{transitItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{transitItem.eventDescription}} {{getTransitItemLocationName(transitItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.delayed' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{transitItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{transitItem.eventDescription}} {{getTransitItemLocationName(transitItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.delayed_action_required' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{transitItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{transitItem.eventDescription}} {{getTransitItemLocationName(transitItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.received_by_carrier' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.confirmed' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.cancelled' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.attempted_delivery' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.return_to_sender' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.unable_to_deliver' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'track_trace.ready_to_collect' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{receivedItem.eventDateTime | toDateObj | date:'dd/MM/yyyy, h:mm a'}}\r\n
\r\n
{{receivedItem.eventDescription}} {{getTransitItemLocationName(receivedItem.locationName)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CustomShipmentType } from '../../shared/entities/customShipmentType';\r\nimport { Invoice } from '../../shared/entities/Invoice';\r\nimport { TranslationHelper } from '../../shared/helpers/translation-helper';\r\nimport { TransportType } from '../../shared/price-matrix/entities/TransportType';\r\nimport { Country } from '../../account/entities/Country';\r\nimport { User } from '../../account/entities/user';\r\nimport { UserService } from '../../account/services/user.service';\r\nimport { Order } from '../entities/Order';\r\nimport { SendReceiveService } from '../new-order/send-and-receive/services/send-receive.service';\r\nimport { RoleService } from '../../account/services/role.service';\r\n\r\n@Component({\r\n selector: 'app-view-order',\r\n templateUrl: './view-order.component.html',\r\n styleUrls: ['./view-order.component.scss']\r\n})\r\nexport class ViewOrderComponent implements OnInit {\r\n\r\n public userDetails: User\r\n\r\n public order: Order;\r\n\r\n public serviceOptionName: string;\r\n\r\n public insuranceCost: number;\r\n\r\n public letterName: string;\r\n\r\n public fromDepot: boolean = false;\r\n\r\n public toDepot: boolean = false;\r\n\r\n public countries: Array;\r\n\r\n public shipmentTypes: Array;\r\n\r\n public shipmentTypeName: string;\r\n\r\n public displayContactPosta: boolean = false;\r\n\r\n public uploadedFiles: Array;\r\n downloadingPrintLabel: boolean = false;\r\n downloadingCDS: boolean = false;\r\n\r\n constructor(private userAccountService: UserService,\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private roleService: RoleService,\r\n private translationHelper: TranslationHelper,\r\n private sendReceiveService: SendReceiveService) { }\r\n\r\n ngOnInit(): void {\r\n this.order = this.route.snapshot.data.order;\r\n\r\n if (!this.order.isPaid && !this.order.isDirectBooking) {\r\n if (this.roleService.isPrivateUser())\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/send-receive/send-receive/${this.order.orderReference}`]);\r\n return;\r\n }\r\n this.displayContactPosta = true;\r\n }\r\n\r\n this.countries = this.route.snapshot.data.countries;\r\n this.shipmentTypes = this.route.snapshot.data.shipmentTypes;\r\n this.getShipmentTypeName();\r\n\r\n if (!!this.order.service) {\r\n var transportTypeJson = this.order.service.transportTypeJson;\r\n var transportType = JSON.parse(transportTypeJson);\r\n\r\n this.setServiceOptionName(transportType);\r\n if (this.order.insuranceSelected) {\r\n //This needs to be edited to take into the other factors such as value intervals etc\r\n this.insuranceCost = transportType.InsuranceCost;\r\n this.order.parcels\r\n }\r\n }\r\n\r\n this.uploadedFiles = this.order.invoices;\r\n\r\n this.userAccountService.getUserDetails().subscribe(x => {\r\n this.userDetails = x;\r\n });\r\n }\r\n\r\n public setServiceOptionName(transportType: TransportType) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.serviceOptionName = `${transportType.Name.EN}`;\r\n break;\r\n case \"fo\":\r\n this.serviceOptionName = `${transportType.Name.FO}`;\r\n break;\r\n }\r\n }\r\n\r\n\r\n public setLetterOptionName(transportType: TransportType) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.letterName = `${transportType.Name.EN}`;\r\n break;\r\n case \"fo\":\r\n this.letterName = `${transportType.Name.FO}`;\r\n break;\r\n }\r\n }\r\n\r\n public parcelsHasDimensions(): boolean {\r\n if (this.order.parcels[0].length > 0 && this.order.parcels[0].width > 0 && this.order.parcels[0].height > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getWeightMeasurement() {\r\n if (!!this.order.parcels && this.order.parcels.length > 0) {\r\n return \"kg\"\r\n }\r\n return \"g\";\r\n }\r\n\r\n public getCountryNameByCode(countryCode: string) {\r\n if (!!this.countries) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${this.countries.find(x => x.countryCode == countryCode).countryNameEN}`;\r\n case \"fo\":\r\n return `${this.countries.find(x => x.countryCode == countryCode).countryNameFO}`;\r\n }\r\n }\r\n }\r\n\r\n public getShipmentTypeName() {\r\n if (!!this.shipmentTypes) {\r\n var shipmentTypeTranslation;\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n shipmentTypeTranslation = this.shipmentTypes.find(x => x.customsShipmentTypeId == this.order.customsShipmentTypeId);\r\n if (!!shipmentTypeTranslation) {\r\n return shipmentTypeTranslation.customsShipmentTypeNameEN;\r\n }\r\n break;\r\n case \"fo\":\r\n shipmentTypeTranslation = this.shipmentTypes.find(x => x.customsShipmentTypeId == this.order.customsShipmentTypeId);\r\n if (!!shipmentTypeTranslation) {\r\n return shipmentTypeTranslation.customsShipmentTypeNameFO;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public downloadPrintLabel() {\r\n this.downloadingPrintLabel = true;\r\n this.sendReceiveService.downloadPrintLabel(this.order.orderReference).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingPrintLabel = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingPrintLabel = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public downloadCDS() {\r\n this.downloadingCDS = true;\r\n this.sendReceiveService.downloadCDS(this.order.barcode).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingCDS = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingCDS = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n\r\n public getVolume() {\r\n var volume: number = 0;\r\n // var parcels = this.order.parcels;\r\n // if (!!parcels)\r\n // {\r\n // for (let i = 0; i < parcels.length; i++) {\r\n // volume += parcels[i].length*parcels[i].width*parcels[i].height;\r\n // }\r\n // }\r\n // if (!!this.order.shipment)\r\n // {\r\n // volume += this.order.shipment.length*this.order.shipment.width*this.order.shipment.height;\r\n // }\r\n volume = this.order.volume;\r\n return volume;\r\n }\r\n\r\n public getCountryName(country: Country) {\r\n return this.translationHelper.getCountryName(country);\r\n }\r\n\r\n public isDomestic() {\r\n return this.order.fromCountryCode == this.order.toCountryCode;\r\n }\r\n}\r\n","
\r\n

{{'view_send_receive_order.order' | translate}}: {{order.orderReference}} 

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'send_receive.send_receive.confirmation.contact_posta_title' | translate}}:\r\n {{order.orderReference}}

\r\n
\r\n {{'send_receive.send_receive.confirmation.contact_posta_body' | translate}}\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.your_details' | translate}}

\r\n

{{userDetails.title}} {{userDetails.firstName}} {{userDetails.lastName}}

\r\n

{{userDetails.addressLine1}}

\r\n \r\n

{{userDetails.townCity}}

\r\n

{{userDetails.postcode}}

\r\n

{{getCountryName(userDetails.country)}}

\r\n {{userDetails.contactNumber}}\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.service' | translate}}

\r\n
\r\n

{{serviceOptionName}}

\r\n \r\n
\r\n

{{'send_receive.send_receive.step_four.tracking_id' | translate}}\r\n

\r\n

{{order.trackingCode}}

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.key_terms' | translate}}\r\n \r\n

\r\n
\r\n

{{'send_receive.send_receive.step_four.description' | translate}}

\r\n \r\n

0\" class=\"header\">{{'send_receive.send_receive.step_four.parcel_code' | translate}}\r\n

\r\n

0\">{{order.paymentCodes[0]}}

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.insurance' | translate}}\r\n \r\n

\r\n
\r\n

{{insuranceCost}} DKK

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.your_ref' | translate}}

\r\n
{{order.customerReference}}
\r\n

{{'view_send_receive_order.incoterms' | translate}}

\r\n

{{order.incoTermsCode}}

\r\n
\r\n
\r\n

\r\n {{'send_receive.send_receive.step_four.collection_date' | translate}}

\r\n
{{order.collectionDate |\r\n date:'dd/MM/yyyy'}}
\r\n

{{'send_receive.send_receive.step_four.estimated_delivery_date' | translate}}\r\n

\r\n

{{order.estimatedDeliveryDate | date:'dd/MM/yyyy'}}

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.size' | translate}}

\r\n
{{order.parcels.length}} x\r\n {{'send_receive.send_receive.step_four.item_size_description' | translate}}
\r\n
\r\n
\r\n

L{{item.length}}cm W{{item.width}}cm H{{item.height}}cm

\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.size' | translate}}

\r\n
\r\n

{{letterName}}

\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.weight' | translate}}

\r\n
{{order.weight}} {{getWeightMeasurement()}}
\r\n
\r\n

Volume

\r\n {{order.volume}}m³\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.from' | translate}}

\r\n

{{order.fromTitle}} {{order.fromFirstName}} {{order.fromLastName}}

\r\n

{{order.fromAddressLine1}}

\r\n \r\n

{{order.fromTownCity}}

\r\n

{{order.fromPostcode}}

\r\n

{{getCountryNameByCode(order.fromCountryCode)}}

\r\n

{{order.fromContactNumber}}

\r\n \r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.to' | translate}}

\r\n

{{order.toTitle}} {{order.toFirstName}} {{order.toLastName}}

\r\n

{{order.toAddressLine1}}

\r\n \r\n

{{order.toTownCity}}

\r\n

{{order.toPostcode}}

\r\n

{{getCountryNameByCode(order.toCountryCode)}}

\r\n

{{order.toContactNumber}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.comments' | translate}}

\r\n

{{order.comments}}

\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.shipment_type' | translate}}

\r\n

{{getShipmentTypeName()}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.customs_uploads' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.company_name_seller_of_goods' | translate}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{file.filename}}\r\n
\r\n
\r\n {{file.companyName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.domestic_package_contents' | translate}}

\r\n

{{order.domesticPackageContents}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_four.total' | translate}}: {{order.totalCost | currency: 'DKK':''}}\r\n DKK

\r\n
\r\n
0\" class=\"row flex-end col-lg-12\">\r\n

{{'send_receive.send_receive.step_four.total_vat' | translate}}: {{order.vatAmount | currency: 'DKK':''}} DKK\r\n

\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { User } from '../../../account/entities/user';\r\nimport { StaticContentService } from '../../../shared/services/static-content.service';\r\nimport { PostageOrder } from '../../entities/postageOrder';\r\nimport { BuyPostageService } from '../../services/buy-postage.service';\r\n\r\n@Component({\r\n selector: 'app-view-postage-order',\r\n templateUrl: './view-postage-order.component.html',\r\n styleUrls: ['./view-postage-order.component.scss']\r\n})\r\nexport class ViewPostageOrderComponent implements OnInit {\r\n\r\n order: PostageOrder;\r\n\r\n userDetails: User;\r\n\r\n totalAmount: number;\r\n\r\n countryName: string;\r\n\r\n public pageTitle: string;\r\n\r\n interval: any;\r\n downloadingCDS: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute, private translateService: TranslateService, private staticContentService: StaticContentService, private buyPostageService: BuyPostageService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.staticContentService.getPageTitle();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.staticContentService.getPageTitle();\r\n })\r\n\r\n\r\n this.order = this.route.snapshot.data.order;\r\n\r\n this.userDetails = this.route.snapshot.data.userDetails;\r\n\r\n var netAmounts = this.order.orderDetail.map(x => x.netAmount);\r\n\r\n this.totalAmount = netAmounts.reduce((a, b) => a + b, 0);\r\n\r\n this.getCountryName();\r\n }\r\n\r\n public getCountryName() {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countryName = `${this.userDetails.country.countryNameEN}`;\r\n break;\r\n case \"fo\":\r\n this.countryName = `${this.userDetails.country.countryNameFO}`;\r\n break;\r\n }\r\n }\r\n\r\n public downloadCDS() {\r\n this.downloadingCDS = true;\r\n this.buyPostageService.downloadCDS(this.order.barcode).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n this.downloadingCDS = false;\r\n\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n this.downloadingCDS = false;\r\n // this.downloadingPdfOrder = false;\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_postage_order.posta_id' | translate}} {{order.orderReference}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_postage_order.your_details_title' | translate}}

\r\n {{'view_postage_order.contact_name' | translate}} {{userDetails.recipientName}}\r\n {{'view_postage_order.address_line_1' | translate}} {{userDetails.addressLine1}}\r\n \r\n {{'view_postage_order.postcode' | translate}} {{userDetails.postcode}}\r\n {{'view_postage_order.country' | translate}} {{countryName}}\r\n {{'view_postage_order.contact_number' | translate}} {{userDetails.mobileNo}}\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_postage_order.service_title' | translate}}

\r\n {{'view_postage_order.online_postage' | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{'view_postage_order.item_title' | translate}} {{i+1}}

\r\n {{'view_postage_order.to' | translate}}\r\n {{item.zoneText}}\r\n {{'view_postage_order.weight' | translate}}\r\n {{item.weightText}}\r\n {{'view_postage_order.size' | translate}}\r\n {{item.sizeCategoryText}}\r\n {{'view_postage_order.prize' | translate}}\r\n {{item.netAmount | currency: 'DKK':''}} DKK\r\n {{'view_postage_order.your_ref' | translate}}\r\n {{'view_postage_order.no_reference' | translate}}\r\n {{item.customerReference}}\r\n {{'view_postage_order.code_status' | translate}}\r\n {{item.postageCode}}\r\n {{'view_postage_order.used' | translate}}\r\n {{'view_postage_order.not_used' | translate}}\r\n {{'view_postage_order.expiry' | translate}}\r\n {{order.expiryDate | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_postage_order.total' | translate}} {{totalAmount | currency: 'DKK':''}} DKK

\r\n
","import { TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient} from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { environment } from '../../environments/environment';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class CustomTranslateLoader implements TranslateLoader {\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getTranslation(lang: String): Observable {\r\n return this.http.get(environment.apiUrl + '/api/StaticContent/TranslationDictionary/' + lang).pipe(catchError(_ => this.http.get(`/assets/i18n/en.json`)))\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Address } from '../../account/entities/address';\r\nimport { ErrorHelper } from '../helpers/error-helper';\r\nimport { StaticContentHelper } from '../helpers/static-content-helper';\r\nimport { StaticContentService } from '../services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-address-book',\r\n templateUrl: './address-book.component.html',\r\n styleUrls: ['./address-book.component.scss']\r\n})\r\nexport class AddressBookComponent implements OnInit {\r\n\r\n public showAddNewAddress: boolean = false;\r\n\r\n public newAddressFormGroup: FormGroup;\r\n\r\n public viewOnlyFavourites: boolean = false;\r\n\r\n public isEditing: boolean = false;\r\n\r\n public addressToEdit: Address;\r\n\r\n // public addresses: Array
;\r\n\r\n public searchText: string;\r\n \r\n public updatedSearchText: string;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n interval: any;\r\n\r\n constructor(private _formBuilder: FormBuilder, private staticContentService: StaticContentService, private translateService: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.newAddressFormGroup = this._formBuilder.group({\r\n toTitle: [''],\r\n toFirstName: ['', Validators.required],\r\n toLastName: ['', Validators.required],\r\n toOptionalCompany: [''],\r\n toAddressLine1: ['', Validators.required],\r\n toAddressLine2: [''],\r\n toTownCity: ['', Validators.required],\r\n toPostcode: ['', Validators.required],\r\n toContactNumber: ['', ErrorHelper.integerOnlyValidator],\r\n toEmail: ['', ErrorHelper.nullableEmailValidator],\r\n toCountry: ['', Validators.required],\r\n toSpecialInstructions: [''],\r\n });\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n setShowAddNewAddress(savedAddressSuccessfully: boolean) {\r\n if(savedAddressSuccessfully) {\r\n this.showAddNewAddress = false;\r\n this.isEditing = false;\r\n }\r\n }\r\n public toggleFavourites() {\r\n this.viewOnlyFavourites = true;\r\n this.isEditing = false;\r\n this.showAddNewAddress = false;\r\n }\r\n\r\n public editAddress(address: Address) {\r\n this.isEditing = true;\r\n this.addressToEdit = address;\r\n this.showAddNewAddress = false;\r\n }\r\n\r\n public setAddNewAddress() {\r\n this.isEditing = false;\r\n this.showAddNewAddress = true;\r\n }\r\n\r\n public updateSearchText() {\r\n this.updatedSearchText = this.searchText;\r\n }\r\n\r\n public showAllAddresses() {\r\n this.viewOnlyFavourites = false;\r\n this.isEditing = false;\r\n this.showAddNewAddress = false;\r\n this.searchText = \"\";\r\n this.updatedSearchText = \"\";\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Address } from '../../../account/entities/address';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { AddressService } from '../../services/address-service';\r\nimport { Country } from '../../../account/entities/Country';\r\nimport { CountryService } from '../../services/country.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ErrorHelper } from '../../helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-edit-address',\r\n templateUrl: './edit-address.component.html',\r\n styleUrls: ['./edit-address.component.scss']\r\n})\r\nexport class EditAddressComponent implements OnInit {\r\n\r\n constructor(private newAddressService: AddressService, private countryService: CountryService, private translate: TranslateService, private errorHelper: ErrorHelper) { }\r\n\r\n @Input()\r\n addressToEdit: Address;\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup\r\n\r\n public addToFavourite: boolean;\r\n\r\n countries: Array;\r\n\r\n setInitialCountry: boolean = false;\r\n\r\n @Output()\r\n successfullySaved: EventEmitter = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n this.countryService.getAll().subscribe(x => {this.countries = x;\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n });\r\n\r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.addressToEdit.title);\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.addressToEdit.firstName);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.addressToEdit.lastName);\r\n this.sendReceiveForm.get(\"toOptionalCompany\").setValue(this.addressToEdit.companyName);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.addressToEdit.addressLine1);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.addressToEdit.addressLine2);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.addressToEdit.townCity);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.addressToEdit.postcode);\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.addressToEdit.country);\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.addressToEdit.contactNumber);\r\n this.sendReceiveForm.get(\"toEmail\").setValue(this.addressToEdit.contactEmail);\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").setValue(this.addressToEdit.specialInstructions);\r\n this.addToFavourite = this.addressToEdit.isFavourite;\r\n\r\n // this.countries.push(\"Faroe Islands\");\r\n // this.countries.push(\"Denmark\");\r\n // this.countries.push(\"United Kingdom\");\r\n }\r\n\r\n public hasErrors(field){\r\n var errors = this.sendReceiveForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.sendReceiveForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public updateEntryToAddressBook()\r\n {\r\n this.sendReceiveForm.markAllAsTouched();\r\n if (this.sendReceiveForm.valid) {\r\n var formCountryValue: Country = this.sendReceiveForm.get(\"toCountry\").value;\r\n const selectedCountry = this.countries.find(x => x.countryNameEN === formCountryValue.countryNameEN)\r\n if (!selectedCountry)\r\n {\r\n return;\r\n }\r\n\r\n const newAddress = {\r\n addressId: this.addressToEdit.addressId,\r\n title: this.sendReceiveForm.get(\"toTitle\").value,\r\n firstName: this.sendReceiveForm.get(\"toFirstName\").value,\r\n lastName: this.sendReceiveForm.get(\"toLastName\").value,\r\n companyName: this.sendReceiveForm.get(\"toOptionalCompany\").value,\r\n addressLine1: this.sendReceiveForm.get(\"toAddressLine1\").value,\r\n addressLine2: this.sendReceiveForm.get(\"toAddressLine2\").value,\r\n townCity: this.sendReceiveForm.get(\"toTownCity\").value,\r\n postcode: this.sendReceiveForm.get(\"toPostcode\").value,\r\n countryCode: selectedCountry.countryCode,\r\n contactNumber: this.sendReceiveForm.get(\"toContactNumber\").value,\r\n contactEmail: this.sendReceiveForm.get(\"toEmail\").value,\r\n specialInstructions: this.sendReceiveForm.get(\"toSpecialInstructions\").value,\r\n isFavourite: this.addToFavourite\r\n };\r\n \r\n this.newAddressService.update(newAddress).subscribe(\r\n () => {\r\n // this.snackbar.open(\"Successfully saved address\");\r\n this.successfullySaved.emit(true);\r\n }, (error) =>\r\n console.log(error));\r\n }\r\n }\r\n\r\n public setFavourite() {\r\n this.addToFavourite = !this.addToFavourite;\r\n }\r\n\r\n public deleteAddress() {\r\n this.newAddressService.delete(this.addressToEdit.addressId).subscribe(\r\n () => {\r\n this.successfullySaved.emit(true);\r\n }, (error) =>\r\n console.log(error));\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setCountryByCode(country: Country): Country {\r\n var countryControl: Country = this.sendReceiveForm.get(\"toCountry\").value;\r\n var countryCodeByControl = countryControl.countryCode;\r\n\r\n if (!this.setInitialCountry && country.countryCode == countryCodeByControl)\r\n {\r\n this.setInitialCountry = true;\r\n this.sendReceiveForm.get(\"toCountry\").setValue(country);\r\n }\r\n return country;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n Add to favourites\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Address data will only be saved for your personal use view\r\n privacy policy\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { AddressService } from '../../services/address-service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CountryService } from '../../services/country.service';\r\nimport { Country } from '../../../account/entities/Country';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ErrorHelper } from '../../helpers/error-helper';\r\n\r\n@Component({\r\n selector: 'app-create-new-address',\r\n templateUrl: './create-new-address.component.html',\r\n styleUrls: ['./create-new-address.component.scss']\r\n})\r\nexport class CreateNewAddressComponent implements OnInit {\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup;\r\n\r\n @Input()\r\n postcodes: any;\r\n\r\n @Input()\r\n newAddressBookEntry: boolean;\r\n\r\n countries: Array;\r\n\r\n public postcodeSelected: any;\r\n\r\n public fromFilteredPostcodes: any;\r\n\r\n public isFO: boolean = false;\r\n\r\n @Output()\r\n successfullySaved: EventEmitter = new EventEmitter();\r\n\r\n public addToFavourite: boolean = false;\r\n\r\n constructor(private newAddressService: AddressService, private snackbar: MatSnackBar, private countryService: CountryService, private translate: TranslateService, private errorHelper: ErrorHelper) { }\r\n\r\n ngOnInit(): void {\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x;\r\n this.countries.sort(function (x, y) { return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function (x, y) { return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n });\r\n\r\n this.newAddressService.getPostcodes().subscribe((x) => {\r\n this.postcodes = x\r\n });\r\n\r\n this.sendReceiveForm.get(\"toCountry\").valueChanges.subscribe(\r\n value => {\r\n if (this.isFO == false && value.countryCode == \"FO\") {\r\n this.isFO = true;\r\n }\r\n else {\r\n this.isFO = false;\r\n }\r\n }\r\n );\r\n\r\n if (this.newAddressBookEntry) {\r\n this.sendReceiveForm.get(\"toTitle\").reset();\r\n this.sendReceiveForm.get(\"toFirstName\").reset();\r\n this.sendReceiveForm.get(\"toLastName\").reset();\r\n this.sendReceiveForm.get(\"toOptionalCompany\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine1\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine2\").reset();\r\n this.sendReceiveForm.get(\"toTownCity\").reset();\r\n this.sendReceiveForm.get(\"toPostcode\").reset();\r\n this.sendReceiveForm.get(\"toContactNumber\").reset();\r\n this.sendReceiveForm.get(\"toEmail\").reset();\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").reset();\r\n }\r\n }\r\n\r\n public hasErrors(field) {\r\n if (!!this.sendReceiveForm.get(field)) {\r\n var errors = this.sendReceiveForm.get(field).errors;\r\n return !!errors;\r\n }\r\n return null;\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.sendReceiveForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n public setFavourite() {\r\n this.addToFavourite = !this.addToFavourite;\r\n }\r\n\r\n public saveEntryToAddressBook() {\r\n this.sendReceiveForm.markAllAsTouched();\r\n if (this.sendReceiveForm.valid) {\r\n var formCountryValue: Country = this.sendReceiveForm.get(\"toCountry\").value;\r\n const selectedCountry = this.countries.find(x => x.countryNameEN === formCountryValue.countryNameEN)\r\n if (!selectedCountry) {\r\n return;\r\n }\r\n\r\n const newAddress = {\r\n title: this.sendReceiveForm.get(\"toTitle\").value,\r\n firstName: this.sendReceiveForm.get(\"toFirstName\").value,\r\n lastName: this.sendReceiveForm.get(\"toLastName\").value,\r\n companyName: this.sendReceiveForm.get(\"toOptionalCompany\").value,\r\n addressLine1: this.sendReceiveForm.get(\"toAddressLine1\").value,\r\n addressLine2: this.sendReceiveForm.get(\"toAddressLine2\").value,\r\n townCity: this.sendReceiveForm.get(\"toTownCity\").value,\r\n postcode: this.sendReceiveForm.get(\"toPostcode\").value,\r\n countryCode: selectedCountry.countryCode,\r\n contactNumber: this.sendReceiveForm.get(\"toContactNumber\").value,\r\n contactEmail: this.sendReceiveForm.get(\"toEmail\").value,\r\n specialInstructions: this.sendReceiveForm.get(\"toSpecialInstructions\").value,\r\n isFavourite: this.addToFavourite\r\n };\r\n\r\n this.newAddressService.saveToAddressBook(newAddress).subscribe(\r\n () => {\r\n // this.snackbar.open(\"Successfully saved address\");\r\n this.successfullySaved.emit(true);\r\n }, (error) =>\r\n console.log(error));\r\n }\r\n }\r\n\r\n public formTouchedAndNoCountrySelected() {\r\n if (this.sendReceiveForm.get(\"toCountry\").touched && !this.sendReceiveForm.get(\"toCountry\").value) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setFromSelectedPostcode(postcode) {\r\n this.postcodeSelected = postcode;\r\n // this.sendReceiveForm.get(\"fromPostcode\").setValue(postcode.postcode);\r\n }\r\n public setSelectedPostcodeFO(event) {\r\n var sourceControlName = event.source.ngControl.name;\r\n if (sourceControlName == \"toTownCity\") {\r\n var selectedPostcode = this.postcodes.find(pc => pc.city == event.value)\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n else if (sourceControlName == \"toPostcode\") {\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == event.value)\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(selectedPostcode.city);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{postcode.postcode}}\r\n \r\n \r\n \r\n \r\n \r\n {{postcode.city}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{'address_book.address_details.add_to_favourites' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n {{'address_book.address_details.note' | translate}}\r\n {{'address_book.address_details.privacy_policy' | translate}}\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, AfterContentChecked } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AddressService } from '../../services/address-service';\r\nimport { CountryService } from '../../services/country.service';\r\nimport { Country } from '../../../account/entities/Country';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Order } from '../../../send-receive/entities/Order';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { Address } from '../../../account/entities/address';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\n\r\n@Component({\r\n selector: 'app-from-new-address',\r\n templateUrl: './from-new-address.component.html',\r\n styleUrls: ['./from-new-address.component.scss']\r\n})\r\nexport class FromNewAddressComponent implements OnInit {\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup\r\n\r\n @Input()\r\n specificationForm: FormGroup\r\n\r\n countries: Array;\r\n\r\n @Input()\r\n newAddressBookEntry: boolean;\r\n\r\n @Output()\r\n successfullySaved: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n order: Order;\r\n\r\n @Input()\r\n postcodes: any;\r\n\r\n fromAddressControl = new FormControl();\r\n\r\n public fromFilteredAddresses: Observable>;\r\n\r\n public addresses: Array
= new Array
();\r\n\r\n public fromAddressSelected: Address;\r\n\r\n public postcodeSelected: any;\r\n\r\n public fromFilteredPostcodes: any;\r\n\r\n public addToFavourite: boolean = false;\r\n saveDisabled: boolean = false;\r\n savedAddressForm: FormGroup;\r\n\r\n public fromFO: boolean;\r\n public fromFODisabled: boolean;\r\n\r\n constructor(private newAddressService: AddressService, private countryService: CountryService, private translate: TranslateService, private errorHelper: ErrorHelper, private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.fromFilteredPostcodes = this.sendReceiveForm.get(\"fromPostcode\").valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.postcode}, ${value.city}`, this.cdr.detectChanges()),\r\n map(postcode => postcode ? this._filterPostcode(postcode) : this.postcodes.slice(), this.cdr.detectChanges()),\r\n );\r\n\r\n this.sendReceiveForm.get(\"fromCountry\").valueChanges.subscribe(\r\n value => {\r\n if(this.fromFO == false && value.countryCode == \"FO\"){\r\n // this.sendReceiveForm.get(\"fromPostcode\").setValue(null);\r\n // this.sendReceiveForm.get(\"fromTownCity\").setValue(null);\r\n this.fromFO = true;\r\n }\r\n }\r\n );\r\n\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x;\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n this.countries.sort((a, b) => a.countryNameEN.localeCompare(b.countryNameEN))\r\n case \"fo\":\r\n this.countries.sort((a, b) => a.countryNameFO.localeCompare(b.countryNameFO))\r\n }\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n \r\n //If viewing/editing order then set the country formcontrol to the matching country\r\n if (!!this.order)\r\n {\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(this.countries.find(x => x.countryCode == this.order.fromCountryCode));\r\n }\r\n });\r\n\r\n if (this.newAddressBookEntry)\r\n {\r\n this.sendReceiveForm.get(\"fromTitle\").reset();\r\n this.sendReceiveForm.get(\"fromFirstName\").reset();\r\n this.sendReceiveForm.get(\"fromLastName\").reset();\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").reset();\r\n this.sendReceiveForm.get(\"fromAddressLine1\").reset();\r\n this.sendReceiveForm.get(\"fromAddressLine2\").reset();\r\n this.sendReceiveForm.get(\"fromTownCity\").reset();\r\n this.sendReceiveForm.get(\"fromPostcode\").reset();\r\n this.sendReceiveForm.get(\"fromContactNumber\").reset();\r\n this.sendReceiveForm.get(\"fromEmail\").reset();\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").reset();\r\n }\r\n\r\n //Set address details from order if exists\r\n if (!!this.order)\r\n {\r\n this.sendReceiveForm.get(\"fromTitle\").setValue(this.order.fromTitle);\r\n this.sendReceiveForm.get(\"fromFirstName\").setValue(this.order.fromFirstName);\r\n this.sendReceiveForm.get(\"fromLastName\").setValue(this.order.fromLastName);\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").setValue(this.order.fromCompanyName);\r\n this.sendReceiveForm.get(\"fromAddressLine1\").setValue(this.order.fromAddressLine1);\r\n this.sendReceiveForm.get(\"fromAddressLine2\").setValue(this.order.fromAddressLine2);\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(this.order.fromTownCity);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(this.order.fromPostcode);\r\n //this.sendReceiveForm.get(\"fromCountry\").setValue(this.order.toCountryCode);\r\n this.sendReceiveForm.get(\"fromContactNumber\").setValue(this.order.fromContactNumber);\r\n this.sendReceiveForm.get(\"fromEmail\").setValue(this.order.fromContactEmail);\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").setValue(this.order.fromSpecialInstructions);\r\n }\r\n this.cdr.detectChanges();\r\n\r\n this.sendReceiveForm.get(\"fromTitle\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromFirstName\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromLastName\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromAddressLine1\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromAddressLine2\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromTownCity\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromPostcode\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromContactNumber\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromEmail\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n }\r\n\r\npublic addressFieldClick() {\r\n this.newAddressService.getAll().subscribe((x) => {\r\n this.addresses = x;\r\n\r\n this.fromFilteredAddresses = this.fromAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n ) \r\n });\r\n}\r\n\r\n// public getAddresses() {\r\n// this.newAddressService.getAll().subscribe((x) => {\r\n// this.addresses = x\r\n\r\n// this.fromFilteredAddresses = this.fromAddressControl.valueChanges\r\n// .pipe(\r\n// startWith(''),\r\n// map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n// map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n// )\r\n// });\r\n// }\r\n\r\npublic setFromSelectedAddress(address) {\r\n this.fromAddressSelected = address;\r\n}\r\n\r\npublic setFromAddressFields() {\r\n if (!!this.fromAddressSelected) {\r\n if(this.fromAddressSelected.country.countryCode == \"FO\"){\r\n this.fromFO = true;\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == this.fromAddressSelected.postcode || pc.city == this.fromAddressSelected.townCity)\r\n if (!!selectedPostcode)\r\n {\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(selectedPostcode.city);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n }\r\n else{\r\n this.fromFO = false;\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(this.fromAddressSelected.townCity);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(this.fromAddressSelected.postcode);\r\n }\r\n this.sendReceiveForm.get(\"fromTitle\").setValue(this.fromAddressSelected.title);\r\n this.sendReceiveForm.get(\"fromFirstName\").setValue(this.fromAddressSelected.firstName);\r\n this.sendReceiveForm.get(\"fromLastName\").setValue(this.fromAddressSelected.lastName);\r\n this.sendReceiveForm.get(\"fromOptionalCompany\").setValue(this.fromAddressSelected.companyName);\r\n this.sendReceiveForm.get(\"fromAddressLine1\").setValue(this.fromAddressSelected.addressLine1);\r\n this.sendReceiveForm.get(\"fromAddressLine2\").setValue(this.fromAddressSelected.addressLine2);\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(this.fromAddressSelected.country);\r\n this.sendReceiveForm.get(\"fromContactNumber\").setValue(this.fromAddressSelected.contactNumber);\r\n this.sendReceiveForm.get(\"fromEmail\").setValue(this.fromAddressSelected.contactEmail);\r\n this.sendReceiveForm.get(\"fromSpecialInstructions\").setValue(this.fromAddressSelected.specialInstructions);\r\n }\r\n}\r\n\r\npublic onSelectFromFO(event){\r\n if(event.returnValue){\r\n var fo = this.countries.find(country => country.countryCode == \"FO\")\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(fo);\r\n }\r\n}\r\n\r\nscrollToTop() {\r\n (function smoothscroll() {\r\n var currentScroll = document.documentElement.scrollTop || document.body.scrollTop;\r\n if (currentScroll > 0) {\r\n window.requestAnimationFrame(smoothscroll);\r\n window.scrollTo(0, currentScroll - (currentScroll / 8));\r\n }\r\n })();\r\n}\r\n\r\n// onKey(value) { \r\n// this.countries = this.search(value);\r\n// }\r\n\r\n// search(value: string) { \r\n// let filter = value.toLowerCase();\r\n// return this.countries.filter(option => this.getCountryNameForLanguage(option).toLowerCase().startsWith(filter));\r\n// }\r\n\r\n public hasErrors(field){\r\n var errors = this.sendReceiveForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.sendReceiveForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n private _filterPostcode(value: string): Array {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.postcodes.filter(option => `${option.postcode}, ${option.city}`.toLowerCase().includes(filterValue));\r\n }\r\n\r\n private _filter(value: string): Array
{\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.addresses.filter(option => `${option.firstName} ${option.lastName}, ${option.postcode}`.toLowerCase().includes(filterValue));\r\n }\r\n\r\n // displayFn(postcode: any): string {\r\n // return postcode && `${postcode.postcode}, ${postcode.city}` ? `${postcode.postcode}, ${postcode.city}` : '';\r\n // }\r\n\r\n displayFn(postcode: any): string {\r\n return postcode && `${postcode}` ? `${postcode}` : '';\r\n }\r\n\r\n displayAddress(address: Address): string {\r\n return address && `${address.firstName} ${address.lastName}, ${address.postcode}` ? `${address.firstName} ${address.lastName}, ${address.postcode}` : '';\r\n }\r\n\r\n public setFavouriteChecked(checked: boolean) {\r\n this.addToFavourite = checked;\r\n }\r\n\r\n public saveEntryToAddressBook()\r\n {\r\n this.saveDisabled = false;\r\n\r\n var formValid = this.sendReceiveForm.get(\"fromTitle\").valid\r\n && this.sendReceiveForm.get(\"fromFirstName\").valid\r\n && this.sendReceiveForm.get(\"fromLastName\").valid\r\n && this.sendReceiveForm.get(\"fromOptionalCompany\").valid\r\n && this.sendReceiveForm.get(\"fromAddressLine1\").valid\r\n && this.sendReceiveForm.get(\"fromAddressLine2\").valid\r\n && this.sendReceiveForm.get(\"fromTownCity\").valid\r\n && this.sendReceiveForm.get(\"fromPostcode\").valid\r\n && this.sendReceiveForm.get(\"fromContactNumber\").valid\r\n && this.sendReceiveForm.get(\"fromEmail\").valid\r\n && this.sendReceiveForm.get(\"fromSpecialInstructions\").valid\r\n\r\n this.sendReceiveForm.markAllAsTouched();\r\n if (formValid && !this.saveDisabled) {\r\n var postcodeValue = this.sendReceiveForm.get(\"fromPostcode\").value;\r\n var townCityValue = this.sendReceiveForm.get(\"fromTownCity\").value;\r\n\r\n const newAddress = {\r\n title: this.sendReceiveForm.get(\"fromTitle\").value,\r\n firstName: this.sendReceiveForm.get(\"fromFirstName\").value,\r\n lastName: this.sendReceiveForm.get(\"fromLastName\").value,\r\n company: this.sendReceiveForm.get(\"fromOptionalCompany\").value,\r\n addressLine1: this.sendReceiveForm.get(\"fromAddressLine1\").value,\r\n addressLine2: this.sendReceiveForm.get(\"fromAddressLine2\").value,\r\n townCity: this.sendReceiveForm.get(\"fromTownCity\").value,\r\n postcode: this.sendReceiveForm.get(\"fromPostcode\").value,\r\n country: this.sendReceiveForm.get(\"fromCountry\").value,\r\n countryCode: this.sendReceiveForm.get(\"fromCountry\").value.countryCode,\r\n contactNumber: this.sendReceiveForm.get(\"fromContactNumber\").value,\r\n email: this.sendReceiveForm.get(\"fromEmail\").value,\r\n specialInstructions: this.sendReceiveForm.get(\"fromSpecialInstructions\").value,\r\n isFavourite: this.addToFavourite\r\n };\r\n \r\n this.newAddressService.saveToAddressBook(newAddress).subscribe(\r\n () => {\r\n // this.snackbar.open(\"Successfully saved address\");\r\n this.saveDisabled = true;\r\n this.successfullySaved.emit(true);\r\n }, (error) =>\r\n console.log(error));\r\n }\r\n }\r\n\r\n public formTouchedAndNoCountrySelected() {\r\n if (this.sendReceiveForm.get(\"fromCountry\").touched && !this.sendReceiveForm.get(\"fromCountry\").value)\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public hasSelectedCountry(){\r\n if(this.sendReceiveForm.get(\"fromCountry\").valid)\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string\r\n {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setCountryByCode(country: Country): Country {\r\n var countryControl: Country = this.sendReceiveForm.get(\"fromCountry\").value;\r\n if (!!countryControl)\r\n {\r\n var countryCodeByControl = countryControl.countryCode;\r\n\r\n if (country.countryCode == countryCodeByControl)\r\n {\r\n this.sendReceiveForm.get(\"fromCountry\").setValue(country, {emitEvent: false});\r\n if(country.countryCode == \"FO\")\r\n {\r\n this.fromFO = true;\r\n }\r\n else{\r\n this.fromFO = false;\r\n }\r\n }\r\n }\r\n return country;\r\n }\r\n\r\n public updateSpecificationForm(event: any)\r\n {\r\n if (!!event && event.value.countryCode != \"FO\")\r\n {\r\n if (this.fromFO)\r\n {\r\n var previousPostcode = this.sendReceiveForm.get(\"fromPostcode\").value;\r\n if(!!previousPostcode){\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(null);\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(null);\r\n }\r\n }\r\n this.specificationForm.get('letterSize').reset();\r\n this.fromFO = false;\r\n }\r\n else{\r\n this.fromFO = true;\r\n var previousPostcode = this.sendReceiveForm.get(\"fromPostcode\").value;\r\n var previousCity = this.sendReceiveForm.get(\"fromTownCity\").value;\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == previousPostcode || pc.city == previousCity)\r\n if(!!selectedPostcode)\r\n {\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(selectedPostcode.city);\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n }\r\n }\r\n\r\n public setFromSelectedPostcode(postcode)\r\n {\r\n this.postcodeSelected = postcode;\r\n // this.sendReceiveForm.get(\"fromPostcode\").setValue(postcode.postcode);\r\n }\r\n public setSelectedPostcodeFO(event)\r\n {\r\n var sourceControlName = event.source.ngControl.name;\r\n if(sourceControlName == \"fromTownCity\"){\r\n var selectedPostcode = this.postcodes.find(pc => pc.city == event.value)\r\n this.sendReceiveForm.get(\"fromPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n else if(sourceControlName == \"fromPostcode\"){\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == event.value)\r\n this.sendReceiveForm.get(\"fromTownCity\").setValue(selectedPostcode.city);\r\n }\r\n }\r\n\r\n public toggleSave()\r\n { \r\n var saveAddressControl = this.sendReceiveForm.get(\"fromSaveAddress\");\r\n !!saveAddressControl.value ? saveAddressControl.reset() : saveAddressControl.setValue(\"true\");\r\n }\r\n\r\n public toggleFavourite()\r\n {\r\n var favouriteControl = this.sendReceiveForm.get(\"fromIsFavouriteAddress\")\r\n !!favouriteControl.value ? favouriteControl.reset() : favouriteControl.setValue(\"true\");\r\n }\r\n\r\n public getFavouriteState(){\r\n var favouriteControl = this.sendReceiveForm.get(\"fromIsFavouriteAddress\")\r\n return favouriteControl.value;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{address.firstName}} {{address.lastName}}, {{address.postcode}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.or_enter_new' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.select_country' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.or' | translate}}

\r\n
\r\n
\r\n \r\n {{'address_book.address_details.country' | translate}}\r\n \r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n {{postcode.postcode}}\r\n \r\n \r\n \r\n \r\n \r\n {{postcode.city}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{'address_book.address_details.save_to_address_book' | translate}}\r\n \r\n \r\n {{'address_book.address_details.add_to_favourites' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n *{{'address_book.address_details.note' | translate}}\r\n {{'address_book.address_details.privacy_policy' | translate}}\r\n
\r\n \r\n \r\n
\r\n \r\n
","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AddressService } from '../../services/address-service';\r\nimport { CountryService } from '../../services/country.service';\r\nimport { Country } from '../../../account/entities/Country';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Order } from '../../../send-receive/entities/Order';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ErrorHelper } from '../../../shared/helpers/error-helper';\r\nimport { Address } from '../../../account/entities/address';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\n\r\n@Component({\r\n selector: 'app-to-new-address',\r\n templateUrl: './to-new-address.component.html',\r\n styleUrls: ['./to-new-address.component.scss']\r\n})\r\nexport class ToNewAddressComponent implements OnInit {\r\n\r\n @Input()\r\n sendReceiveForm: FormGroup;\r\n\r\n @Input()\r\n specificationForm: FormGroup;\r\n\r\n @Input()\r\n newAddressBookEntry: boolean;\r\n\r\n countries: Array;\r\n\r\n @Output()\r\n successfullySaved: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n order: Order;\r\n\r\n @Input()\r\n postcodes: any;\r\n\r\n toAddressControl = new FormControl();\r\n\r\n public toFilteredAddresses: Observable>;\r\n\r\n public addresses: Array
= new Array
();\r\n\r\n public toAddressSelected: Address;\r\n\r\n public addToFavourite: boolean = false;\r\n\r\n public postcodeSelected: any;\r\n\r\n public toFilteredPostcodes: any;\r\n saveDisabled: boolean = false;\r\n\r\n public toFO: boolean;\r\n public toFODisabled: boolean;\r\n\r\n constructor(private newAddressService: AddressService,\r\nprivate countryService: CountryService,\r\nprivate translate: TranslateService,\r\nprivate errorHelper: ErrorHelper,\r\nprivate cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.toFilteredPostcodes = this.sendReceiveForm.get(\"toPostcode\").valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.postcode}, ${value.city}`, this.cdr.detectChanges()),\r\n map(postcode => postcode ? this._filterPostcode(postcode) : this.postcodes.slice(), this.cdr.detectChanges())\r\n );\r\n\r\n this.sendReceiveForm.get(\"toCountry\").valueChanges.subscribe(\r\n value => {\r\n if(this.toFO == false && value.countryCode == \"FO\"){\r\n // this.sendReceiveForm.get(\"toPostcode\").setValue(null);\r\n // this.sendReceiveForm.get(\"toTownCity\").setValue(null);\r\n this.toFO = true;\r\n }\r\n else if (value.countryCode != \"FO\"){\r\n this.toFO = false;\r\n }\r\n }\r\n \r\n );\r\n\r\n this.countryService.getAll().subscribe(x => {\r\n this.countries = x\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n this.countries.sort((a, b) => a.countryNameEN.localeCompare(b.countryNameEN))\r\n case \"fo\":\r\n this.countries.sort((a, b) => a.countryNameFO.localeCompare(b.countryNameFO))\r\n }\r\n this.countries.sort(function(x,y){ return x.countryCode == \"FO\" ? -1 : y.countryCode == \"FO\" ? 1 : 0; });\r\n this.countries.sort(function(x,y){ return x.countryCode == \"DK\" ? -1 : y.countryCode == \"DK\" ? 1 : 0; });\r\n\r\n //If viewing/editing order then set country control to matching country code\r\n if (!!this.order)\r\n {\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.countries.find(x => x.countryCode == this.order.toCountryCode));\r\n }\r\n });\r\n\r\n if (this.newAddressBookEntry) {\r\n this.sendReceiveForm.get(\"toTitle\").reset();\r\n this.sendReceiveForm.get(\"toFirstName\").reset();\r\n this.sendReceiveForm.get(\"toLastName\").reset();\r\n this.sendReceiveForm.get(\"toOptionalCompany\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine1\").reset();\r\n this.sendReceiveForm.get(\"toAddressLine2\").reset();\r\n this.sendReceiveForm.get(\"toTownCity\").reset();\r\n this.sendReceiveForm.get(\"toPostcode\").reset();\r\n this.sendReceiveForm.get(\"toContactNumber\").reset();\r\n this.sendReceiveForm.get(\"toEmail\").reset();\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").reset();\r\n }\r\n\r\n //Set address details from order if exists\r\n if (!!this.order) {\r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.order.toTitle);\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.order.toFirstName);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.order.toLastName);\r\n this.sendReceiveForm.get(\"toOptionalCompany\").setValue(this.order.toCompanyName);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.order.toAddressLine1);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.order.toAddressLine2);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.order.toTownCity);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.order.toPostcode);\r\n //this.sendReceiveForm.get(\"fromCountry\").setValue(this.order.toCountryCode);\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.order.toContactNumber);\r\n this.sendReceiveForm.get(\"toEmail\").setValue(this.order.toContactEmail);\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").setValue(this.order.toSpecialInstructions);\r\n }\r\n\r\n this.cdr.detectChanges()\r\n\r\n this.sendReceiveForm.get(\"toTitle\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toFirstName\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toLastName\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toOptionalCompany\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toAddressLine1\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toAddressLine2\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toTownCity\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toPostcode\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toContactNumber\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toEmail\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").valueChanges.subscribe(x => {\r\n this.saveDisabled = false;\r\n })\r\n }\r\n\r\n// ngAfterContentChecked() : void {\r\n// this.cdr.detectChanges();\r\n// }\r\n\r\n public setFavouriteChecked(checked: boolean) {\r\n this.addToFavourite = checked;\r\n }\r\n\r\n public hasSelectedCountry(){\r\n if(this.sendReceiveForm.get(\"toCountry\").valid)\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public addressFieldClick() {\r\n this.newAddressService.getAll().subscribe((x) => {\r\n this.addresses = x;\r\n \r\n this.toFilteredAddresses = this.toAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n ) \r\n });\r\n }\r\n \r\n public getAddresses() {\r\n this.newAddressService.getAll().subscribe((x) => {\r\n this.addresses = x\r\n \r\n this.toFilteredAddresses = this.toAddressControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : `${value.firstName} ${value.lastName}, ${value.postcode}`),\r\n map(firstName => firstName ? this._filter(firstName) : this.addresses.slice()),\r\n )\r\n });\r\n \r\n this.toAddressControl\r\n }\r\n \r\n public settoSelectedAddress(address) {\r\n this.toAddressSelected = address;\r\n }\r\n \r\n public settoAddressFields() {\r\n if (!!this.toAddressSelected) {\r\n if(this.toAddressSelected.country.countryCode == \"FO\"){\r\n this.toFO = true;\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == this.toAddressSelected.postcode || pc.city == this.toAddressSelected.townCity)\r\n if(!!selectedPostcode)\r\n {\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(selectedPostcode.city);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n }\r\n else{\r\n this.toFO = false;\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(this.toAddressSelected.townCity);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(this.toAddressSelected.postcode);\r\n }\r\n this.sendReceiveForm.get(\"toTitle\").setValue(this.toAddressSelected.title);\r\n this.sendReceiveForm.get(\"toFirstName\").setValue(this.toAddressSelected.firstName);\r\n this.sendReceiveForm.get(\"toLastName\").setValue(this.toAddressSelected.lastName);\r\n this.sendReceiveForm.get(\"toOptionalCompany\").setValue(this.toAddressSelected.companyName);\r\n this.sendReceiveForm.get(\"toAddressLine1\").setValue(this.toAddressSelected.addressLine1);\r\n this.sendReceiveForm.get(\"toAddressLine2\").setValue(this.toAddressSelected.addressLine2);\r\n this.sendReceiveForm.get(\"toCountry\").setValue(this.toAddressSelected.country);\r\n this.sendReceiveForm.get(\"toContactNumber\").setValue(this.toAddressSelected.contactNumber);\r\n this.sendReceiveForm.get(\"toEmail\").setValue(this.toAddressSelected.contactEmail);\r\n this.sendReceiveForm.get(\"toSpecialInstructions\").setValue(this.toAddressSelected.specialInstructions);\r\n }\r\n }\r\n \r\n public onSelecttoFO(event){\r\n if(event.returnValue){\r\n var fo = this.countries.find(country => country.countryCode == \"FO\")\r\n this.sendReceiveForm.get(\"toCountry\").setValue(fo);\r\n }\r\n }\r\n \r\n \r\n public hasErrors(field){\r\n var errors = this.sendReceiveForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public getError(field){\r\n var errors = this.sendReceiveForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n displayFn(postcode: any): string {\r\n return postcode && `${postcode}` ? `${postcode}` : '';\r\n }\r\n\r\n displayAddress(address: Address): string {\r\n return address && `${address.firstName} ${address.lastName}, ${address.postcode}` ? `${address.firstName} ${address.lastName}, ${address.postcode}` : '';\r\n }\r\n\r\n public setToSelectedPostcode(postcode)\r\n {\r\n this.postcodeSelected = postcode;\r\n // this.sendReceiveForm.get(\"fromPostcode\").setValue(postcode.postcode);\r\n }\r\n\r\n private _filterPostcode(value: string): Array {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.postcodes.filter(option => `${option.postcode}, ${option.city}`.toLowerCase().includes(filterValue));\r\n }\r\n\r\n private _filter(value: string): Array
{\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.addresses.filter(option => `${option.firstName} ${option.lastName}, ${option.postcode}`.toLowerCase().includes(filterValue));\r\n }\r\n\r\n public saveEntryToAddressBook() {\r\n this.sendReceiveForm.markAllAsTouched();\r\n this.saveDisabled = false;\r\n\r\n var formValid = this.sendReceiveForm.get(\"toTitle\").valid\r\n && this.sendReceiveForm.get(\"toFirstName\").valid\r\n && this.sendReceiveForm.get(\"toLastName\").valid\r\n && this.sendReceiveForm.get(\"toOptionalCompany\").valid\r\n && this.sendReceiveForm.get(\"toAddressLine1\").valid\r\n && this.sendReceiveForm.get(\"toAddressLine2\").valid\r\n && this.sendReceiveForm.get(\"toTownCity\").valid\r\n && this.sendReceiveForm.get(\"toPostcode\").valid\r\n && this.sendReceiveForm.get(\"toContactNumber\").valid\r\n && this.sendReceiveForm.get(\"toEmail\").valid\r\n && this.sendReceiveForm.get(\"toSpecialInstructions\").valid\r\n\r\n if (formValid && !this.saveDisabled) {\r\n var postcodeValue = this.sendReceiveForm.get(\"toPostcode\").value;\r\n var townCityValue = this.sendReceiveForm.get(\"toTownCity\").value;\r\n const newAddress = {\r\n title: this.sendReceiveForm.get(\"toTitle\").value,\r\n firstName: this.sendReceiveForm.get(\"toFirstName\").value,\r\n lastName: this.sendReceiveForm.get(\"toLastName\").value,\r\n company: this.sendReceiveForm.get(\"toOptionalCompany\").value,\r\n addressLine1: this.sendReceiveForm.get(\"toAddressLine1\").value,\r\n addressLine2: this.sendReceiveForm.get(\"toAddressLine2\").value,\r\n townCity: this.sendReceiveForm.get(\"toTownCity\").value,\r\n postcode: this.sendReceiveForm.get(\"toPostcode\").value,\r\n country: this.sendReceiveForm.get(\"toCountry\").value,\r\n countryCode: this.sendReceiveForm.get(\"toCountry\").value.countryCode,\r\n contactNumber: this.sendReceiveForm.get(\"toContactNumber\").value,\r\n email: this.sendReceiveForm.get(\"toEmail\").value,\r\n specialInstructions: this.sendReceiveForm.get(\"toSpecialInstructions\").value,\r\n isFavourite: this.addToFavourite\r\n };\r\n\r\n this.newAddressService.saveToAddressBook(newAddress).subscribe(\r\n () => {\r\n // this.snackbar.open(\"Successfully saved address\");\r\n this.saveDisabled = true;\r\n\r\n this.successfullySaved.emit(true);\r\n }, (error) =>\r\n console.log(error));\r\n }\r\n }\r\n\r\n public formTouchedAndNoCountrySelected() {\r\n if (this.sendReceiveForm.get(\"toCountry\").touched && !this.sendReceiveForm.get(\"toCountry\").value) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getCountryNameForLanguage(country: Country): string {\r\n switch (this.translate.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n\r\n public setCountryByCode(country: Country): Country {\r\n var countryControl: Country = this.sendReceiveForm.get(\"toCountry\").value;\r\n if (!!countryControl) {\r\n var countryCodeByControl = countryControl.countryCode;\r\n\r\n if (country.countryCode == countryCodeByControl) {\r\n this.sendReceiveForm.get(\"toCountry\").setValue(country, {emitEvent: false});\r\n if(country.countryCode == \"FO\")\r\n {\r\n this.toFO = true;\r\n }\r\n else{\r\n this.toFO = false;\r\n }\r\n }\r\n }\r\n return country;\r\n }\r\n\r\n public updateSpecificationForm(event: any)\r\n {\r\n if (!!event && event.value.countryCode != \"FO\")\r\n {\r\n this.toFO = false;\r\n var previousPostcode = this.sendReceiveForm.get(\"toPostcode\").value;\r\n if(!!previousPostcode.postcode){\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(previousPostcode.postcode);\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(previousPostcode.city);\r\n }\r\n }\r\n else{\r\n this.toFO = true;\r\n var previousPostcode = this.sendReceiveForm.get(\"toPostcode\").value;\r\n var previousCity = this.sendReceiveForm.get(\"toTownCity\").value;\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == previousPostcode || pc.city == previousCity)\r\n if(!!selectedPostcode)\r\n {\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(selectedPostcode.city);\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n }\r\n }\r\n\r\n public setSelectedPostcodeFO(event)\r\n {\r\n var sourceControlName = event.source.ngControl.name;\r\n if(sourceControlName == \"toTownCity\"){\r\n var selectedPostcode = this.postcodes.find(pc => pc.city == event.value)\r\n this.sendReceiveForm.get(\"toPostcode\").setValue(selectedPostcode.postcode);\r\n }\r\n else if(sourceControlName == \"toPostcode\"){\r\n var selectedPostcode = this.postcodes.find(pc => pc.postcode == event.value)\r\n if(!!selectedPostcode)\r\n {\r\n this.sendReceiveForm.get(\"toTownCity\").setValue(selectedPostcode.city);\r\n }\r\n }\r\n }\r\n\r\n public toggleSave()\r\n { \r\n var saveAddressControl = this.sendReceiveForm.get(\"toSaveAddress\");\r\n !!saveAddressControl.value ? saveAddressControl.reset() : saveAddressControl.setValue(\"true\");\r\n }\r\n\r\n public toggleFavourite()\r\n {\r\n var favouriteControl = this.sendReceiveForm.get(\"toIsFavouriteAddress\")\r\n !!favouriteControl.value ? favouriteControl.reset() : favouriteControl.setValue(\"true\");\r\n }\r\n\r\n public getFavouriteState(){\r\n var favouriteControl = this.sendReceiveForm.get(\"toIsFavouriteAddress\")\r\n return favouriteControl.value;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{address.firstName}} {{address.lastName}}, {{address.postcode}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.or_enter_new' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.select_country' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'send_receive.send_receive.step_one.or' | translate}}

\r\n
\r\n
\r\n \r\n {{'address_book.address_details.country' | translate}}\r\n \r\n {{getCountryNameForLanguage(country)}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n {{postcode.postcode}}\r\n \r\n \r\n \r\n \r\n \r\n {{postcode.city}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{'address_book.address_details.save_to_address_book' |\r\n translate}}\r\n \r\n \r\n {{'address_book.address_details.add_to_favourites' |\r\n translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n *{{'address_book.address_details.note' | translate}}\r\n {{'address_book.address_details.privacy_policy' | translate}}\r\n
\r\n \r\n \r\n
\r\n \r\n
","import { Component, OnInit, Input, OnChanges, EventEmitter, Output } from '@angular/core';\r\nimport { AddressService } from '../../services/address-service';\r\nimport { Address } from '../../../account/entities/address';\r\n\r\n@Component({\r\n selector: 'app-view-all-addresses',\r\n templateUrl: './view-all-addresses.component.html',\r\n styleUrls: ['./view-all-addresses.component.scss']\r\n})\r\nexport class ViewAllAddressesComponent implements OnInit, OnChanges {\r\n\r\n constructor(public addressService: AddressService) { }\r\n\r\n public addresses: Array
;\r\n\r\n public allAddresses: Array
;\r\n\r\n public updateAddress: boolean = false;\r\n\r\n @Input()\r\n searchText: string;\r\n\r\n @Output()\r\n public selectedAddress: EventEmitter
= new EventEmitter();\r\n\r\n @Input()\r\n viewOnlyFavourites: boolean;\r\n\r\n ngOnInit(): void {\r\n this.addressService.getAll().subscribe((x) => {\r\n this.addresses = x\r\n this.allAddresses = x\r\n if (this.viewOnlyFavourites)\r\n {\r\n this.addresses = this.addresses.filter(x => x.isFavourite);\r\n }\r\n // this.emitAddresses.emit(this.allAddresses)\r\n console.log(this.addresses);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.viewOnlyFavourites) {\r\n if (!this.addresses) {\r\n this.addressService.getAll().subscribe((x) => {\r\n this.addresses = x\r\n this.allAddresses = x\r\n // this.emitAddresses.emit(this.allAddresses)\r\n this.addresses = this.addresses.filter(x => x.isFavourite);\r\n });\r\n }\r\n else {\r\n this.addresses = this.addresses.filter(x => x.isFavourite);\r\n\r\n }\r\n }\r\n else {\r\n this.addresses = this.allAddresses;\r\n }\r\n }\r\n\r\n public editAddress(address: Address) {\r\n this.updateAddress = true;\r\n this.selectedAddress.emit(address);\r\n }\r\n\r\n public toggleFavourite(address: Address) {\r\n //TODO catch error\r\n this.addressService.favouriteAddress(address.addressId, !address.isFavourite)\r\n .subscribe((x) => \r\n {\r\n address.isFavourite = !address.isFavourite;\r\n })\r\n {\r\n\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ address.firstName }} {{ address.lastName }}
\r\n \r\n
{{ address.company }}
\r\n
{{ address.addressLine1 }}
\r\n
{{ address.postcode }}
\r\n
{{ address.country.countryNameEN }}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Favourite\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { StaticContent } from '../../shared/static-content/entities/staticContent';\r\n// import { LanguageService } from '../../shared/services/language.service';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { Page } from '../../shared/static-content/entities/page';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-us',\r\n templateUrl: './contact-us.component.html',\r\n styleUrls: ['./contact-us.component.scss']\r\n})\r\nexport class ContactUsComponent implements OnInit, AfterViewInit {\r\n\r\n public staticContent: StaticContent\r\n\r\n observer: MutationObserver;\r\n\r\n public modules: any;\r\n\r\n public mainImage: string;\r\n\r\n public imageUrlFormatted: boolean = false;\r\n\r\n public trackTraceInput: string;\r\n\r\n public pageHtml: string;\r\n\r\n public showHtmlModules: boolean;\r\n\r\n interval: any;\r\n\r\n public mainImageModule: any;\r\n\r\n public item1Icon: any;\r\n \r\n public item2Icon: any;\r\n\r\n public item3Icon: any;\r\n\r\n public role: string;\r\n\r\n public cdnPath: string;\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private roleService: RoleService,\r\n private staticContentService: StaticContentService,\r\n private elRef: ElementRef,\r\n private titleService: Title) { }\r\n\r\n ngOnInit(): void {\r\n\r\n var urlLang = this.route.snapshot.data.lang;\r\n this.cdnPath = this.staticContentService.cdn();\r\n\r\n if (!!urlLang) {\r\n\r\n // this.languageService.setLanguage(urlLang);\r\n }\r\n\r\n // this.staticContent = this.route.snapshot.data.staticContent;\r\n\r\n this.interval = setInterval(() => {\r\n this.staticContent = this.staticContentService.staticContent;\r\n if (!!this.staticContent) {\r\n this.setPageContentForLanguage();\r\n var axdFiles = this.staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\r\n this.setPageContentForLanguage();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n \r\n public onTrackTraceEnter(){\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/send-receive/track-trace`, this.trackTraceInput]);\r\n }\r\n\r\n private setPageContentForLanguage() {\r\n var languageSection;\r\n var privateSection;\r\n var homeCategory;\r\n var homepage;\r\n\r\n var tabTitle = this.staticContentService.getPageTabTitle();\r\n this.titleService.setTitle(tabTitle)\r\n\r\n var routeSplit = this.router.url.split(\"/\");\r\n if (!!routeSplit && routeSplit.length > 2)\r\n {\r\n this.role = routeSplit[2];\r\n }\r\n\r\n if (!!this.staticContent && !!this.role) {\r\n languageSection = this.staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${this.role}/`);\r\n if (!!privateSection) {\r\n homeCategory = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${this.role}/home/`);\r\n }\r\n if (!!homeCategory && !!homeCategory.Pages) {\r\n homepage = homeCategory.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${this.role}/home/home/`);\r\n }\r\n }\r\n\r\n if (!!homepage && !!homepage.Modules) {\r\n this.modules = homepage.Modules;\r\n\r\n for (var i = 0; i < this.modules.length; i++) {\r\n if (!!this.modules[i].Content) {\r\n this.modules[i].Content.Image = this.formatImageUrl(this.modules[i].Content)\r\n }\r\n }\r\n\r\n this.mainImageModule = this.modules.find(x => x.ModuleType == \"psModule\");\r\n\r\n if (!!this.mainImageModule) {\r\n this.mainImage = this.mainImageModule.Content.Image;\r\n this.item1Icon = `${this.cdnPath}${this.mainImageModule.Content.Item1Icon}`;\r\n this.item2Icon = `${this.cdnPath}${this.mainImageModule.Content.Item2Icon}`;\r\n this.item3Icon = `${this.cdnPath}${this.mainImageModule.Content.Item3Icon}`;\r\n }\r\n\r\n if (!!languageSection) {\r\n if (!!privateSection) {\r\n var helpInformationCategory = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${this.role}/help-information/`);\r\n }\r\n if (!!helpInformationCategory && !!helpInformationCategory.Pages) {\r\n var contactUsPage = helpInformationCategory.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${this.role}/help-information/contact-us/`);\r\n this.setHtmlModulePages(contactUsPage);\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n return languageSection;\r\n }\r\n\r\n formatImageUrl(content: any) {\r\n if (!!content.Image && content.Image.includes(`${this.cdnPath}`)) {\r\n return content.Image;\r\n }\r\n else if (!!content.Image) {\r\n return `${this.cdnPath}${content.Image}`;\r\n }\r\n return undefined;\r\n }\r\n\r\n public setHtmlModulePages(homepage: Page) {\r\n if (!!homepage.Css) {\r\n var cssFiles = homepage.Css.split(\";\");\r\n cssFiles.forEach(x => this.staticContentService.loadjscssfile(x, \"css\"));\r\n }\r\n\r\n //console.log(htmlPageString);\r\n\r\n if (!!homepage.Js) {\r\n homepage.Js = homepage.Js.replace('\\r\\n', '');\r\n var jsFiles = homepage.Js.split(\";\");\r\n jsFiles.forEach(x => this.staticContentService.loadjscssfile(x, \"js\"));\r\n }\r\n\r\n var htmlPageString: string = \"\";\r\n\r\n var htmlModules = homepage.Modules.filter(x => x.ModuleType == \"moduleHtml\");\r\n htmlModules.forEach(x => htmlPageString = htmlPageString.concat(x.Html));\r\n htmlPageString = this.decodeHtml(htmlPageString);\r\n\r\n var firstReg = /img src=\\\"/g;\r\n htmlPageString = htmlPageString.replace(firstReg, `img src=\\\"${this.cdnPath}/`);\r\n\r\n var secondReg = /img src='\\//g;\r\n htmlPageString = htmlPageString.replace(secondReg, `img src='${this.cdnPath}/`);\r\n\r\n var thirdReg = /img src=\\\\\\\"\"/g;\r\n htmlPageString = htmlPageString.replace(thirdReg, `img src=\\\\\\\"${this.cdnPath}/`);\r\n\r\n var fourthReg = /background-image:url\\('\\//g;\r\n htmlPageString = htmlPageString.replace(fourthReg, `background-image:url('${this.cdnPath}/`);\r\n\r\n var pdfReg = /a href='\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg, `a href='${this.cdnPath}/media/`);\r\n\r\n var pdfReg2 = /a href=\"\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg2, `a href=\\\"${this.cdnPath}/media/`);\r\n // htmlPageString = this.decodeHtml(htmlPageString);\r\n this.pageHtml = htmlPageString;\r\n\r\n this.showHtmlModules = true;\r\n }\r\n\r\n public decodeHtml(html: string) {\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{'homepage.personal.track_trace' | translate}}

\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'homepage.personal.track_trace' | translate}}

\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{'homepage.personal.find' | translate}}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef,} from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from '../../../account/services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-logout-dialog',\r\n templateUrl: './logout-dialog.component.html',\r\n styleUrls: ['./logout-dialog.component.scss']\r\n})\r\nexport class LogoutDialogComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef, private authService: AuthenticationService, private router: Router, private translateService: TranslateService) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onProceed(): void {\r\n var loggedUserType = localStorage.getItem(\"loginUserType\");\r\n if (!!loggedUserType && loggedUserType == \"private\")\r\n {\r\n this.authService.logout().subscribe(x => {\r\n this.authService.logoutShibboleth().subscribe(y => {\r\n this.routeToBusiness()},\r\n (error) => {\r\n this.routeToBusiness();\r\n });\r\n }, (error) => {\r\n this.routeToBusiness();\r\n })\r\n }\r\n else {\r\n this.authService.logout().subscribe(x => {\r\n this.routeToPrivate();\r\n }, (error) => {\r\n this.routeToPrivate();\r\n })\r\n }\r\n }\r\n\r\n private routeToBusiness()\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/business/home`])\r\n this.dialogRef.close();\r\n }\r\n\r\n private routeToPrivate()\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/private/home`])\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","

{{'switch_user_role.switch' | translate}}

\r\n
\r\n

{{'switch_user_role.switch_personal_business_logout' | translate}}

\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-error-message',\r\n templateUrl: './error-message.component.html',\r\n styleUrls: ['./error-message.component.scss']\r\n})\r\nexport class ErrorMessageComponent implements OnInit {\r\n\r\n @Input()\r\n errorMessage: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
{{errorMessage}}
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-field-error-message',\r\n templateUrl: './field-error-message.component.html',\r\n styleUrls: ['./field-error-message.component.scss']\r\n})\r\nexport class FieldErrorMessageComponent implements OnInit {\r\n\r\n constructor() { }\r\n \r\n @Input()\r\n errorMessage: string;\r\n @Input()\r\n icon: string = \"!\";\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
{{errorMessage}}
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

404 - Page not found

\r\n
\r\n
","import { Component, OnInit, ViewChild, ElementRef, EventEmitter, Output, Input, OnChanges, AfterViewInit } from '@angular/core';\r\nimport { UploadFileService } from '../services/upload-file.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\r\nimport { Invoice } from '../entities/Invoice';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UploadDocument } from '../entities/uploadDocument';\r\nimport { StaticContentService } from '../services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-file-upload-missing-documents',\r\n templateUrl: './file-upload-missing-documents.component.html',\r\n styleUrls: ['./file-upload-missing-documents.component.scss']\r\n})\r\nexport class FileUploadMissingDocumentsComponent implements OnInit, OnChanges, AfterViewInit {\r\n\r\n @ViewChild(\"fileUpload\", {})\r\n fileUpload: ElementRef;\r\n files: Array = new Array();\r\n\r\n @Input()\r\n clearAllFiles: boolean;\r\n\r\n @Input()\r\n uploadedDocumentsFormGroup: FormGroup;\r\n\r\n @Input()\r\n customsFormGroup: FormGroup;\r\n\r\n @Input()\r\n showRequiredError: boolean = true;\r\n\r\n @Input()\r\n existingOrderInvoices: Array;\r\n\r\n public filesRemove: Array = new Array();\r\n\r\n public filesAdd: Array = new Array();\r\n\r\n @Output()\r\n filesToRemove: EventEmitter> = new EventEmitter();\r\n\r\n @Output()\r\n filesToAdd: EventEmitter> = new EventEmitter();\r\n\r\n public orderReference: string;\r\n\r\n public showUploadLaterMesssage: boolean = false;\r\n\r\n ImageBaseData: string | ArrayBuffer = null;\r\n\r\n @Output()\r\n public successfullyUploaded: EventEmitter = new EventEmitter();\r\n\r\n public loading: boolean = false;\r\n\r\n public newFile: UploadDocument;\r\n\r\n public newCompanyName: string;\r\n\r\n public newDocumentFormGroup: FormGroup;\r\n\r\n public psModuleContent: any;\r\n\r\n item1Link: any;\r\n observer: MutationObserver;\r\n\r\n \r\n\r\n constructor(private uploadService: UploadFileService,\r\n private route: ActivatedRoute,\r\n private formBuilder: FormBuilder,\r\n private staticContentService: StaticContentService,\r\n private router: Router,\r\n private elRef: ElementRef) { }\r\n\r\n ngOnInit() {\r\n\r\n this.orderReference = this.route.snapshot.paramMap.get('orderReferenceId');\r\n this.newDocumentFormGroup = this.formBuilder.group({\r\n newCompanyName: ['', Validators.required],\r\n })\r\n\r\n this.psModuleContent = this.staticContentService.getPsModuleContent('send-receive', 'send-receive/send-receive');\r\n if (!!this.psModuleContent)\r\n {\r\n this.item1Link = this.psModuleContent.Item1Link;\r\n }\r\n\r\n // if (!!this.existingOrderInvoices && this.existingOrderInvoices.length > 0)\r\n // {\r\n // this.files = this.existingOrderInvoices;\r\n // var i: number = 0;\r\n // for (i; i < this.existingOrderInvoices.length; i++)\r\n // {\r\n // // this.files[i].fileName = this.existingOrderInvoices[i].filename;\r\n // this.uploadedDocumentsFormGroup.addControl(`fileCompanyName${i}`, new FormControl('', Validators.required));\r\n // this.uploadedDocumentsFormGroup.get(`fileCompanyName${i}`).setValue(this.existingOrderInvoices[i].filename);\r\n // }\r\n // this.uploadedFiles.emit(this.files);\r\n // if (!!this.uploadedDocumentsFormGroup.get('uploadedFiles'))\r\n // {\r\n // this.uploadedDocumentsFormGroup.get('uploadedFiles').enable();\r\n // this.uploadedDocumentsFormGroup.get('uploadedFiles').setValue(this.files);\r\n // }\r\n // }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public openRouteInNewWindow(route: string){\r\n const url = this.router.serializeUrl(this.router.createUrlTree([route]));\r\n window.open(url, '_blank');\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.clearAllFiles) {\r\n this.files = new Array();\r\n }\r\n }\r\n\r\n public onClick() {\r\n const fileUpload = this.fileUpload.nativeElement;\r\n\r\n\r\n fileUpload.onchange = () => {\r\n for (let index = 0; index < fileUpload.files.length; index++) {\r\n const file = fileUpload.files[index];\r\n const currentFilesIndex = this.files.length;\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n var currentUploadedFilesIndex = this.files.length - 1;\r\n this.uploadedDocumentsFormGroup.addControl(`fileCompanyName${currentUploadedFilesIndex + 1}`, new FormControl('', Validators.required));\r\n\r\n this.newFile = {\r\n // applicationId: 1,\r\n fileData: (reader.result as string).split(',')[1],\r\n // orderReference: this.customsFormGroup.get('invoicePoNumber').value,\r\n // refCode: this.customsFormGroup.get('refCode').value,\r\n filename: file.name,\r\n companyName: file.companyName\r\n }\r\n };\r\n }\r\n };\r\n fileUpload.click();\r\n }\r\n\r\n public addFileToQueue() {\r\n if(!!!this.newFile)\r\n {\r\n return;\r\n }\r\n\r\n this.newFile.companyName = this.newCompanyName;\r\n\r\n this.files.push(this.newFile);\r\n\r\n //catch potential error\r\n // this.uploadService.addInvoice(newFile, this.orderReference).subscribe();\r\n this.filesAdd.push(this.newFile)\r\n this.filesToAdd.emit(this.filesAdd);\r\n\r\n if (!!this.uploadedDocumentsFormGroup.get('uploadedFiles')) {\r\n this.uploadedDocumentsFormGroup.get('uploadedFiles').enable();\r\n this.uploadedDocumentsFormGroup.get('uploadedFiles').setValue(this.files);\r\n }\r\n\r\n this.newCompanyName = null;\r\n this.newFile = null;\r\n }\r\n\r\n public deleteFile(invoice: UploadDocument) {\r\n //catch potential error\r\n // this.uploadService.removeInvoice(invoice, this.orderReference).subscribe();\r\n\r\n this.filesRemove.push(invoice);\r\n this.filesToRemove.emit(this.filesRemove);\r\n\r\n this.files = this.files.filter(x => x !== invoice);\r\n }\r\n\r\n public proceed() {\r\n if (!!this.files && this.files.length > 0)\r\n {\r\n this.loading = true;\r\n\r\n var invoice: Invoice = {\r\n applicationId: 1,\r\n documentList: this.files,\r\n orderReference: this.customsFormGroup.get('invoicePoNumber').value,\r\n refCode: this.customsFormGroup.get('refCode').value,\r\n }\r\n \r\n this.uploadService.uploadDocument(invoice).subscribe(x => {\r\n this.successfullyUploaded.emit(true);\r\n this.loading = false;\r\n }, (error) => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{'upload_missing_documentation.customs_uploads' | translate}}

\r\n \r\n
\r\n
\r\n

{{'upload_missing_documentation.company_name' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ file.filename }}\r\n
\r\n
\r\n {{ file.companyName }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, EventEmitter, Output, Input, OnChanges } from '@angular/core';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpEventType, HttpErrorResponse } from '@angular/common/http';\r\nimport { of } from 'rxjs';\r\nimport { UploadFileService } from '../services/upload-file.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { SendReceiveOrderInvoice } from '../entities/sendReceiveOrderInvoice';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss']\r\n})\r\nexport class FileUploadComponent implements OnInit, OnChanges {\r\n\r\n @ViewChild(\"fileUpload\", { }) \r\n fileUpload: ElementRef;\r\n files: Array = new Array();\r\n\r\n @Input()\r\n clearAllFiles : boolean;\r\n\r\n @Input()\r\n orderDetailsForm: FormGroup;\r\n\r\n @Output()\r\n uploadedFiles: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n showRequiredError: boolean = true;\r\n\r\n @Input()\r\n existingOrderInvoices: Array;\r\n\r\n public filesRemove: Array = new Array();\r\n\r\n public filesAdd: Array = new Array();\r\n\r\n @Output()\r\n filesToRemove: EventEmitter> = new EventEmitter();\r\n\r\n @Output()\r\n filesToAdd: EventEmitter> = new EventEmitter();\r\n\r\n public orderReference: string;\r\n\r\n public showUploadLaterMesssage: boolean = false;\r\n\r\n ImageBaseData:string | ArrayBuffer=null;\r\n\r\n constructor(private uploadService: UploadFileService, private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n\r\n this.orderReference = this.route.snapshot.paramMap.get('orderReferenceId');\r\n\r\n if (!!this.existingOrderInvoices && this.existingOrderInvoices.length > 0)\r\n {\r\n this.files = this.existingOrderInvoices;\r\n var i: number = 0;\r\n for (i; i < this.existingOrderInvoices.length; i++)\r\n {\r\n // this.files[i].fileName = this.existingOrderInvoices[i].filename;\r\n this.orderDetailsForm.addControl(`fileCompanyName${i}`, new FormControl(''));\r\n this.orderDetailsForm.get(`fileCompanyName${i}`).setValue(this.existingOrderInvoices[i].fileName);\r\n }\r\n this.uploadedFiles.emit(this.files);\r\n if (!!this.orderDetailsForm.get('uploadedFiles'))\r\n {\r\n this.orderDetailsForm.get('uploadedFiles').enable();\r\n this.orderDetailsForm.get('uploadedFiles').setValue(this.files);\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.clearAllFiles)\r\n {\r\n this.files = new Array();\r\n this.uploadedFiles.emit(this.files);\r\n }\r\n }\r\n\r\n // public uploadFile(file) {\r\n // const formData = new FormData();\r\n // formData.append('file', file.data);\r\n // file.inProgress = true;\r\n // this.uploadService.upload(formData).pipe(\r\n // map(event => {\r\n // switch (event.type) {\r\n // case HttpEventType.UploadProgress:\r\n // file.progress = Math.round(event.loaded * 100 / event.total);\r\n // this.showUploadLaterMesssage = false;\r\n // break;\r\n // case HttpEventType.Response:\r\n // this.showRequiredError = false;\r\n // return event;\r\n // }\r\n // }),\r\n // catchError((error: HttpErrorResponse) => {\r\n // file.inProgress = false;\r\n // return of(`${file.data.name} upload failed.`);\r\n // })).subscribe((event: any) => {\r\n // if (typeof (event) === 'object') {\r\n // }\r\n // });\r\n // }\r\n\r\n public onClick() {\r\n const fileUpload = this.fileUpload.nativeElement; \r\n fileUpload.onchange = () => {\r\n for (let index = 0; index < fileUpload.files.length; index++) {\r\n const file = fileUpload.files[index];\r\n const currentFilesIndex = this.files.length;\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n var newFile: SendReceiveOrderInvoice = {\r\n fileData: (reader.result as string).split(',')[1],\r\n orderReference: (currentFilesIndex + 1).toString(),\r\n fileName: file.name,\r\n companyName: file.companyName,\r\n applicationId: 0\r\n }\r\n this.files.push(newFile);\r\n\r\n //catch potential error\r\n // this.uploadService.addInvoice(newFile, this.orderReference).subscribe();\r\n this.filesAdd.push(newFile)\r\n this.filesToAdd.emit(this.filesAdd);\r\n\r\n this.orderDetailsForm.addControl(`fileCompanyName${currentFilesIndex}`, new FormControl(''));\r\n this.uploadedFiles.emit(this.files);\r\n if (!!this.orderDetailsForm.get('uploadedFiles'))\r\n {\r\n this.orderDetailsForm.get('uploadedFiles').enable();\r\n this.orderDetailsForm.get('uploadedFiles').setValue(this.files);\r\n }\r\n };\r\n }\r\n };\r\n fileUpload.click();\r\n }\r\n\r\n public deleteFile(invoice: SendReceiveOrderInvoice) {\r\n //catch potential error\r\n // this.uploadService.removeInvoice(invoice, this.orderReference).subscribe();\r\n\r\n this.filesRemove.push(invoice);\r\n this.filesToRemove.emit(this.filesRemove);\r\n\r\n this.files = this.files.filter(x => x !== invoice);\r\n this.uploadedFiles.emit(this.files);\r\n }\r\n\r\n // private uploadFiles() {\r\n // this.fileUpload.nativeElement.value = '';\r\n // this.files.forEach(file => {\r\n // this.convertFileToBase64(file);\r\n // });\r\n // }\r\n\r\n public isValid() {\r\n }\r\n\r\n public uploadLater() {\r\n this.showRequiredError = false;\r\n this.showUploadLaterMesssage = true;\r\n this.files = [];\r\n this.orderDetailsForm.get('uploadedFiles').setValue(null);\r\n this.orderDetailsForm.get('uploadedFiles').disable();\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n {{ file.fileName }}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n {{'file_upload.reminder' | translate}}\r\n
","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { filter } from 'rxjs/operators';\r\nimport { StaticContentHelper } from '../../helpers/static-content-helper';\r\nimport { StaticContentService } from '../../services/static-content.service';\r\nimport { StaticContent } from '../../static-content/entities/staticContent';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit, AfterViewInit {\r\n\r\n // public showOnlineServicePanel: boolean = false;\r\n\r\n // public showPostaServices: boolean = false;\r\n\r\n // public showHelpInfo: boolean = false;\r\n\r\n // public showAboutPosta: boolean = false;\r\n\r\n public staticContent: StaticContent;\r\n\r\n public pageHtml: string;\r\n\r\n public interval: any;\r\n\r\n public role: string;\r\n observer: any;\r\n\r\n constructor(private staticContentService: StaticContentService, private translateService: TranslateService, private router: Router, private elRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContentString = this.staticContentService.staticContent;\r\n this.staticContent = staticContentString;\r\n if (!!this.staticContent) {\r\n \r\n var axdFiles = this.staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n this.setFooterHtml();\r\n\r\n this.translateService.onLangChange.subscribe(x => {\r\n var axdFiles = this.staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n this.setFooterHtml();\r\n\r\n })\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n //This whole bit needs refactoring along with the header into one central role state control.\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((val) => {\r\n var splitPaths = this.router.url.split('/');\r\n if (!!splitPaths && splitPaths.length > 1) {\r\n //default to private if the path isn't known\r\n if (splitPaths[2] == \"private\" || splitPaths[2] == \"business\") {\r\n this.role = splitPaths[2];\r\n if (!!this.staticContent)\r\n {\r\n this.setFooterHtml();\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n }\r\n }\r\n else {\r\n this.role = \"private\";\r\n if (!!this.staticContent)\r\n {\r\n this.setFooterHtml();\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.role = \"private\";\r\n if (!!this.staticContent)\r\n {\r\n this.setFooterHtml();\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n }\r\n }\r\n \r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n });\r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public decodeHtml(html: string) {\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n // console.log(txt.value);\r\n return txt.value;\r\n }\r\n\r\n public setFooterHtml() {\r\n if (this.translateService.currentLang == \"en\") {\r\n if (!!this.staticContent && !!this.staticContent.Sections) {\r\n\r\n }\r\n var languageSection = this.staticContent.Sections.find(x => x.Url == \"/en/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n\r\n if (!!this.role) {\r\n if (this.role == \"private\") {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/en/private/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n else if (this.role == \"business\") {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/en/business/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n else {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/en/private/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n else if (this.translateService.currentLang == \"fo\") {\r\n var languageSection = this.staticContent.Sections.find(x => x.Url == \"/fo/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n if (!!this.role) {\r\n if (this.role == \"private\") {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/fo/private/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n else if (this.role == \"business\") {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/fo/business/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n else {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/fo/private/\");\r\n if (!!subSection && subSection.FooterHtml) {\r\n this.pageHtml = this.decodeHtml(subSection.FooterHtml);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // public toggleOnlineServices() {\r\n\r\n // this.showOnlineServicePanel = !this.showOnlineServicePanel;\r\n // }\r\n\r\n}\r\n","
","import { ObserversModule } from \"@angular/cdk/observers\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { FindValueSubscriber } from \"rxjs/internal/operators/find\";\r\nimport { AuthenticationService } from \"../../account/services/authentication.service\";\r\nimport { RoleService } from \"../../account/services/role.service\";\r\nimport { CookieService } from \"../services/cookie.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private translateService: TranslateService,\r\n private roleService: RoleService,\r\n private authenticationService: AuthenticationService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return new Observable(obs => {\r\n var href = route.url;\r\n\r\n var userDetails = localStorage.getItem(\"userDetails\");\r\n var loggedInUserType = localStorage.getItem(\"loginUserType\");\r\n\r\n var isSamleikinUser = localStorage.getItem(\"isSamleikin\");\r\n if (!!isSamleikinUser)\r\n {\r\n this.authenticationService.getSessionData().subscribe(x => {\r\n if (!x || (!!x && !x.attributes))\r\n {\r\n obs.next(false);\r\n }\r\n obs.next(true);\r\n }, (error) => {\r\n obs.next(false);\r\n })\r\n }\r\n else {\r\n const authorised = !!this.cookieService.getCookie('token') && !!userDetails\r\n if (authorised) {\r\n // authorised so return true\r\n obs.next(true);\r\n\r\n if (!!userDetails)\r\n {\r\n var userDetailsJson = JSON.parse(userDetails);\r\n if (!!userDetailsJson)\r\n {\r\n if (!userDetailsJson.isVerified)\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/awaiting-verification`]);\r\n obs.next(false);\r\n }\r\n \r\n if (!userDetailsJson.isPostaApproved && !!loggedInUserType && loggedInUserType != 'private')\r\n {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/awaiting-approval`]);\r\n obs.next(false);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n localStorage.removeItem(\"user\");\r\n localStorage.removeItem(\"isSamleikin\");\r\n var path = `?returnUrl=${href.join('/')}`\r\n this.router.navigateByUrl(`${this.translateService.currentLang}/${this.roleService.role()}/login${path}`);\r\n }\r\n \r\n obs.next(false);\r\n }\r\n })\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { RoleService } from \"../../account/services/role.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HomePageGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private roleService: RoleService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/home`]);\r\n return false;\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AuthenticationService } from \"../../account/services/authentication.service\";\r\nimport { RoleService } from \"../../account/services/role.service\";\r\nimport { CookieService } from \"../services/cookie.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ProfileCompleteGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private accountService: AuthenticationService,\r\n private cookieService: CookieService,\r\n private route: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private roleService: RoleService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n var userDetails = localStorage.getItem(\"userDetails\");\r\n\r\n if (!!userDetails) {\r\n var userDetailsJson = JSON.parse(userDetails);\r\n if (!userDetailsJson.isProfileComplete) {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/my-posta/update-profile`]);\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}","export class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n }","import { Component, OnInit, HostListener, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { User } from '../../../account/entities/user';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { AuthenticationService } from '../../../account/services/authentication.service';\r\nimport { CookieService } from '../../services/cookie.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/internal/operators/map';\r\nimport { StaticContentService } from '../../services/static-content.service';\r\nimport { MenuCategory } from '../../static-content/entities/menuCategory';\r\nimport { Page } from '../../static-content/entities/page';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ErrorHelper } from '../../helpers/error-helper';\r\nimport { RoleService } from '../../../account/services/role.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { LogoutDialogComponent } from '../../dialogs/logout-dialog/logout-dialog.component';\r\nimport { StaticContentHelper } from '../../helpers/static-content-helper';\r\nimport { CreateShoppingListsDialogComponent } from '../../../shopping-services/create-shopping-lists-dialog/create-shopping-lists-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-header-personal',\r\n templateUrl: './header-personal.component.html',\r\n styleUrls: ['./header-personal.component.scss']\r\n})\r\nexport class HeaderPersonalComponent implements OnInit {\r\n\r\n public passwordForm: FormGroup;\r\n\r\n public currentFlagIcon: string;\r\n\r\n public menu: any;\r\n\r\n public showMenu1: boolean = false;\r\n\r\n public showMenu2: boolean = false;\r\n\r\n public showMenu3: boolean = false;\r\n\r\n public showMenu4: boolean = false;\r\n\r\n public showMenu5: boolean = false;\r\n\r\n public isLoggedIn: boolean = false;\r\n\r\n public showSearch: boolean = false;\r\n\r\n public showMobileMenuOptions: boolean = false;\r\n\r\n public categories: Array;\r\n\r\n public subCategories: Map> = new Map();\r\n\r\n public pages: Array;\r\n\r\n public interval: any;\r\n\r\n public role: string;\r\n\r\n public currentLang: string;\r\n\r\n public setRole: string;\r\n\r\n public showTabletView: boolean = false;\r\n\r\n public showResponsiveMyPosta : boolean = true;\r\n\r\n public cdnPath: string;\r\n\r\n @Input()\r\n user: User;\r\n\r\n constructor(\r\n private _formBuilder: FormBuilder,\r\n private errorHelper: ErrorHelper,\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n private cookieService: CookieService,\r\n private http: HttpClient,\r\n private staticContentService: StaticContentService,\r\n private staticContentHelper: StaticContentHelper,\r\n private roleService: RoleService,\r\n public translate: TranslateService,\r\n private cdr: ChangeDetectorRef,\r\n public dialog: MatDialog) { }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event) {\r\n\r\n if (event.target.className.includes(\"sub-title-login\") || event.target.className.includes(\"mat-form-field\") ||event.target.className === \"login-button primary-button full-width\" || event.target.className.includes(\"login-menu-option-container\")) {\r\n return;\r\n }\r\n\r\n if ((event.target.className === \"category0 header-button\" || event.target.className === \"menu-header-text0\" && this.categories[0].Pages != undefined)) {\r\n this.filterPages(0);\r\n this.setSubCategories();\r\n\r\n this.showMenu1 = true\r\n }\r\n else if (event.target.className === \"category0 tablet-header-button\" || event.target.className === \"menu-header-text0 tablet-header-header-title\" || event.target.className === \"drop-down-arrow\")\r\n {\r\n //do nothing\r\n }\r\n else {\r\n this.showMenu1 = false;\r\n }\r\n\r\n if ((event.target.className.includes(\"header1\") || event.target.className === \"category1 header-button\" || event.target.className === \"menu-header-text1\" && this.categories[1].Pages != undefined)) {\r\n this.showMenu2 = true;\r\n this.filterPages(1);\r\n this.setSubCategories();\r\n }\r\n else if (event.target.className === \"category1 tablet-header-button\" || event.target.className === \"menu-header-text1 tablet-header-header-title\" || event.target.className === \"drop-down-arrow\")\r\n {\r\n //do nothing\r\n }\r\n else {\r\n this.showMenu2 = false;\r\n }\r\n\r\n if ((event.target.className.includes(\"header2\") || event.target.className === \"category2 header-button\" || event.target.className === \"menu-header-text2\"\r\n && this.categories[2].Pages != undefined)) {\r\n this.filterPages(2);\r\n this.setSubCategories();\r\n this.showMenu3 = true\r\n }\r\n else if (event.target.className === \"category2 tablet-header-button\" || event.target.className === \"menu-header-text2 tablet-header-header-title\" || event.target.className === \"drop-down-arrow\")\r\n {\r\n //do nothing\r\n }\r\n else {\r\n this.showMenu3 = false;\r\n }\r\n\r\n if ((event.target.className.includes(\"header3\") || event.target.className === \"category3 header-button\" || event.target.className === \"menu-header-text3\" && this.categories[3].Pages != undefined)) {\r\n this.filterPages(3);\r\n this.setSubCategories();\r\n this.showMenu4 = true\r\n }\r\n else if (event.target.className === \"category3 tablet-header-button\" || event.target.className === \"menu-header-text3 tablet-header-header-title\" || event.target.className === \"drop-down-arrow\")\r\n {\r\n //do nothing\r\n }\r\n else {\r\n this.showMenu4 = false;\r\n }\r\n\r\n if ((event.target.className.includes(\"header4\") || event.target.className.includes(\"category4 header-button\") || event.target.className === \"menu-header-text4 primary\" || event.target.className.includes(\"user-icon\") || event.target.className === \"category4 header-button\" && this.categories[4].Pages != undefined)) {\r\n // this.showMenu5 = !this.showMenu5;\r\n // if(this.showMenu5){\r\n // this.filterPages(4); \r\n // this.setSubCategories();\r\n // }\r\n }\r\n else if (event.target.className === \"category4 tablet-header-button\" || event.target.className === \"menu-header-text4 tablet-header-header-title\" || event.target.className === \"drop-down-arrow\")\r\n {\r\n //do nothing\r\n }\r\n else {\r\n this.showMenu5 = false;\r\n }\r\n }\r\n\r\n private setSubCategories() {\r\n this.subCategories = new Map();\r\n\r\n for (let i = 0; i < this.pages.length; i++) {\r\n if (!!this.subCategories.get(this.pages[i].MenuGroup)) {\r\n this.subCategories.get(this.pages[i].MenuGroup).push(this.pages[i]);\r\n }\r\n else if (this.pages[i].MenuGroup != \"\") {\r\n this.subCategories.set(this.pages[i].MenuGroup, [this.pages[i]]);\r\n }\r\n }\r\n }\r\n\r\n public hasErrors(field) {\r\n var errors = this.passwordForm.get(field).errors;\r\n return !!errors;\r\n }\r\n\r\n public isPrivateRole() {\r\n return this.role == \"private\";\r\n }\r\n\r\n public getError(field) {\r\n var errors = this.passwordForm.get(field).errors\r\n return this.errorHelper.getErrorMessage(errors);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.cdnPath = this.staticContentService.cdn();\r\n\r\n this.roleService.roleSubject.subscribe(x => {\r\n this.role = x;\r\n this.getStaticMenuForLanguage();\r\n this.isLoggedIn = !!this.cookieService.getCookie('token');\r\n })\r\n\r\n this.passwordForm = this._formBuilder.group({\r\n email: ['', Validators.required],\r\n password: ['', Validators.required],\r\n });\r\n\r\n\r\n //this.getStaticMenuForLanguage();\r\n\r\n if (this.translate.currentLang == 'en') {\r\n this.currentFlagIcon = \"/assets/icons/menu_header/h_english@3x.png\";\r\n }\r\n else if (this.translate.currentLang == 'fo') {\r\n this.currentFlagIcon = \"/assets/icons/menu_header/h_faroese@3x.png\";\r\n }\r\n\r\n this.translate.onLangChange.subscribe(x => {\r\n this.staticContentService.getTranslationDictionary(x.lang).subscribe();\r\n this.getStaticMenuForLanguage();\r\n });\r\n\r\n var currentUser = this.authenticationService.getUser();\r\n this.isLoggedIn = !!currentUser && !!this.cookieService.getCookie('token');\r\n }\r\n\r\n public switchLanguage() {\r\n if (this.translate.currentLang == 'en') {\r\n this.translate.setDefaultLang('fo');\r\n localStorage.setItem(\"language\", \"fo\");\r\n this.currentFlagIcon = \"/assets/icons/menu_header/h_faroese@3x.png\";\r\n this.translate.use('fo');\r\n }\r\n else {\r\n this.translate.setDefaultLang('en');\r\n localStorage.setItem(\"language\", \"en\");\r\n this.currentFlagIcon = \"/assets/icons/menu_header/h_english@3x.png\";\r\n this.translate.use('en');\r\n }\r\n }\r\n\r\n public hasItemsWithIcons(value: Array) {\r\n return value.filter(x => x.MenuIcon != '').length > 0;\r\n }\r\n\r\n public toggleMenuForCategory(index: number) {\r\n switch (index) {\r\n case 0:\r\n this.showMenu1 = !this.showMenu1;\r\n if (this.showMenu1)\r\n {\r\n this.filterPages(0);\r\n this.setSubCategories();\r\n }\r\n break;\r\n case 1:\r\n this.showMenu2 = !this.showMenu2;\r\n if (this.showMenu2)\r\n {\r\n this.filterPages(1);\r\n this.setSubCategories();\r\n }\r\n break;\r\n case 2:\r\n this.showMenu3 = !this.showMenu3;\r\n if (this.showMenu3)\r\n {\r\n this.filterPages(2);\r\n this.setSubCategories();\r\n }\r\n break;\r\n case 3:\r\n this.showMenu4 = !this.showMenu4;\r\n if (this.showMenu4)\r\n {\r\n this.filterPages(3);\r\n this.setSubCategories();\r\n }\r\n break;\r\n case 4:\r\n this.showMenu5 = !this.showMenu5;\r\n if (this.showMenu5)\r\n {\r\n this.filterPages(4);\r\n this.setSubCategories();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n public getStaticMenuForLanguage() {\r\n\r\n var privateRole = \"private\";\r\n var business = \"business\";\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n\r\n var roleUnkown = this.role != privateRole && this.role != business;\r\n\r\n if (!!staticContent && (this.currentLang !== this.translate.currentLang || this.role != this.setRole || roleUnkown)) {\r\n\r\n if (this.role == privateRole || roleUnkown) {\r\n if (this.translate.currentLang == \"en\") {\r\n var languageSection = staticContent.Sections.find(x => x.Url == \"/en/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/en/private/\");\r\n if (!!subSection && subSection.Categories) {\r\n this.categories = subSection.Categories.filter(x => x.Type == \"category\" && x.HideFromMenu == false);\r\n this.currentLang = this.translate.currentLang;\r\n this.setRole = privateRole;\r\n }\r\n }\r\n }\r\n else if (this.translate.currentLang == \"fo\") {\r\n var languageSection = staticContent.Sections.find(x => x.Url == \"/fo/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/fo/private/\");\r\n if (!!subSection && subSection.Categories) {\r\n this.categories = subSection.Categories.filter(x => x.Type == \"category\" && x.HideFromMenu == false);\r\n this.currentLang = this.translate.currentLang\r\n this.setRole = privateRole;\r\n }\r\n }\r\n }\r\n }\r\n if (this.role == business) {\r\n if (this.translate.currentLang == \"en\") {\r\n var languageSection = staticContent.Sections.find(x => x.Url == \"/en/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/en/business/\");\r\n if (!!subSection && subSection.Categories) {\r\n this.categories = subSection.Categories.filter(x => x.Type == \"category\" && x.HideFromMenu == false);\r\n this.currentLang = this.translate.currentLang\r\n this.setRole = business;\r\n }\r\n }\r\n }\r\n else if (this.translate.currentLang == \"fo\") {\r\n var languageSection = staticContent.Sections.find(x => x.Url == \"/fo/\");\r\n if (!!languageSection && !!languageSection.SubSections) {\r\n var subSection = languageSection.SubSections.find(x => x.Url == \"/fo/business/\");\r\n if (!!subSection && subSection.Categories) {\r\n this.categories = subSection.Categories.filter(x => x.Type == \"category\" && x.HideFromMenu == false);\r\n this.currentLang = this.translate.currentLang;\r\n this.setRole = business;\r\n }\r\n }\r\n }\r\n }\r\n clearInterval(this.interval);\r\n }\r\n if(!!this.currentLang && !!this.role && !!this.categories){\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n public navigateToPersonal() {\r\n var loginUserType = localStorage.getItem(\"loginUserType\");\r\n if (!!loginUserType && loginUserType != \"private\")\r\n {\r\n const dialogRef = this.dialog.open(LogoutDialogComponent, {\r\n width: '250px',\r\n data: null\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n return;\r\n }\r\n\r\n this.router.navigate([`${this.translate.currentLang}/private/home`]);\r\n this.role = \"private\";\r\n }\r\n\r\n public navigateToBusiness() {\r\n var loginUserType = localStorage.getItem(\"loginUserType\");\r\n if (!!loginUserType && loginUserType != \"business\")\r\n {\r\n const dialogRef = this.dialog.open(LogoutDialogComponent, {\r\n width: '250px',\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n return;\r\n }\r\n this.router.navigate([`${this.translate.currentLang}/business/home`]);\r\n this.role = \"business\";\r\n }\r\n\r\n public navigateToRegister() {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/register`]);\r\n }\r\n\r\n public navigateToLogin() {\r\n var reverseRole: string;\r\n if (this.role == \"private\") {\r\n reverseRole = \"business\"\r\n }\r\n if (this.role == \"business\") {\r\n reverseRole = \"private\"\r\n }\r\n this.router.navigate([`${this.translate.currentLang}/${reverseRole}/login`]);\r\n }\r\n\r\n public navigateToForgottenPassword()\r\n {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/forgotten-password`]);\r\n }\r\n \r\n public navigateToSamleikin()\r\n {\r\n this.router.navigateByUrl('/login/samleikin').then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n\r\n public openMinlykilLogin() {\r\n //TODO add below line back in\r\n // this.router.navigate(['/login']);\r\n\r\n // this.http.get(`/Authentication/MinlykilLogin`).subscribe\r\n // ( x => { console.log(x) }, \r\n // error => window.open(\"https://demo.lykil.fo/ui/login/to/posta-sg/z1zas55xbwftfirmw1xu2qjk\", \"_self\"))\r\n\r\n this.http.get(`/Authentication/MinlykilLogin`, { responseType: 'text' }).subscribe(\r\n x => {\r\n window.location.href = x;\r\n this.router.navigate([`/login`]);\r\n },\r\n error => console.log(error))\r\n }\r\n\r\n public logout() {\r\n //TODO catch error\r\n this.authenticationService.logout().subscribe(x => {\r\n this.isLoggedIn = false;\r\n //Catch error here as well\r\n this.authenticationService.logoutShibboleth().subscribe(y => {\r\n\r\n }, (shibError) => {\r\n \r\n })\r\n }, (error) => {\r\n //Ideally we shouldn't call this unless it's actually a Shibboleth User\r\n this.authenticationService.logoutShibboleth().subscribe();\r\n });\r\n }\r\n\r\n public search() {\r\n //do global search instead if true\r\n if (this.showSearch) {\r\n\r\n }\r\n else {\r\n this.showSearch = true;\r\n }\r\n }\r\n\r\n public closeSearch() {\r\n this.showSearch = false;\r\n }\r\n\r\n public isMyPostaHeader(category: MenuCategory) {\r\n return category.Url == \"/en/private/my-posta/\" || category.Url == \"/fo/private/my-posta/\" || category.Url == \"/en/business/my-posta/\" || category.Url == \"/fo/business/my-posta/\"\r\n }\r\n\r\n public login() {\r\n if (!this.passwordForm.valid) {\r\n this.passwordForm.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.role == \"private\") {\r\n this.authenticationService.login(this.passwordForm.get(\"email\").value, this.passwordForm.get(\"password\").value, 2, this.translate.currentLang).subscribe\r\n (x => {\r\n this.showMenu5 = false;\r\n this.passwordForm.reset();\r\n var userDetails = JSON.parse(x.toString());\r\n if (!userDetails.isVerified) {\r\n if (userDetails.isEmailVerificationMessageJustBeenSent)\r\n {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/awaiting-verification/email-sent`]);\r\n return;\r\n }\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/awaiting-verification/`]);\r\n return;\r\n }\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translate.currentLang}/${this.role}/update-profile`]);\r\n return;\r\n }\r\n \r\n this.createShoppingLists();\r\n \r\n this.router.navigate([`${this.translate.currentLang}/private/home`]); this.isLoggedIn = true; this.showMenu5 = false; this.passwordForm.reset();\r\n }, (error) => {\r\n this.passwordForm.get(\"password\").setErrors({ 'incorrectCredentials': true })\r\n })\r\n }\r\n\r\n if (this.role == \"business\") {\r\n this.authenticationService.login(this.passwordForm.get(\"email\").value, this.passwordForm.get(\"password\").value, 1, this.translate.currentLang).subscribe\r\n (x => {\r\n this.showMenu5 = false;\r\n this.passwordForm.reset();\r\n var userDetails = JSON.parse(x.toString());\r\n if (!userDetails.isProfileComplete) {\r\n this.router.navigate([`${this.translate.currentLang}/business/my-posta/update-profile`]);\r\n return;\r\n }\r\n this.router.navigate([`${this.translate.currentLang}/business/home`]); this.isLoggedIn = true; this.showMenu5 = false; this.passwordForm.reset();\r\n }, (error) => {\r\n if (error.status == 403)\r\n {\r\n this.showMenu5 = false;\r\n this.router.navigate([`${this.translate.currentLang}/business/awaiting-approval`]);\r\n\r\n return;\r\n }\r\n this.passwordForm.get(\"password\").setErrors({ 'incorrectCredentials': true })\r\n });\r\n }\r\n }\r\n\r\n filterPages(index: number)\r\n {\r\n this.pages = this.categories[index].Pages.filter(x => x.HideFromMenu == false);\r\n if (!this.isLoggedIn)\r\n {\r\n this.pages = this.pages.filter(x => x.LoginRequired == false);\r\n }\r\n }\r\n\r\n public createShoppingLists()\r\n {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n var shoppingListsObj = JSON.parse(loggedOutLists);\r\n\r\n const dialogRef = this.dialog.open(CreateShoppingListsDialogComponent, {\r\n height: '240px',\r\n width: '580px',\r\n data: {\r\n lists: shoppingListsObj,\r\n }\r\n });\r\n }\r\n }\r\n}","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
1\" class=\"parent-drop-down-container\">\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
1\" class=\"parent-drop-down-container\">\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
1\" class=\"parent-drop-down-container\">\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
1\" class=\"parent-drop-down-container\">\r\n
\r\n
\r\n
\r\n

{{subCategory.key}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{page.Title}}

\r\n \r\n \r\n

{{page.Title}}

\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ 'header.personal_login' | translate }}

\r\n

{{ 'header.business_login' | translate }}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'header.forgotten_password' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorHelper {\r\n\r\n constructor(private translateService: TranslateService) { }\r\n\r\n getErrorMessage(errors) {\r\n if(errors.required)\r\n {\r\n return this.translateService.instant(\"error.required\");\r\n }\r\n if(errors.mismatch){\r\n return this.translateService.instant(\"error.password_mismatch\");\r\n }\r\n if(errors.emailValidator){\r\n return this.translateService.instant(\"error.email_validator\");\r\n }\r\n if(errors.email){\r\n return this.translateService.instant(\"error.invalid_email\");\r\n }\r\n if(errors.greaterThanZeroValidator){\r\n // var param = errors.min.min;\r\n return this.translateService.instant(\"error.require_greater_than_zero\");\r\n }\r\n if(errors.max){\r\n var param = errors.max.max;\r\n return this.translateService.instant(\"error.value_too_high\", { value1: param });\r\n }\r\n if(errors.numberOnlyValidator){\r\n return this.translateService.instant(\"error.not_numeric\")\r\n }\r\n if(errors.integerOnlyValidator){\r\n return this.translateService.instant(\"error.not_integer\")\r\n }\r\n return this.translateService.instant(`error.${Object.keys(errors)[0]}`);\r\n }\r\n\r\n public static emailValidator(c: FormControl) {\r\n let EMAIL_REGEXP = /^([\\w\\.\\-]+)@([\\w\\-]+)((\\.(\\w){2,3})+)$/\r\n\r\n return EMAIL_REGEXP.test(c.value) ? null : {\r\n emailValidator: true\r\n };\r\n }\r\n public static nullableEmailValidator(c: FormControl) {\r\n if(!c.value)\r\n {\r\n return null;\r\n }\r\n \r\n let EMAIL_REGEXP = /^([\\w\\.\\-]+)@([\\w\\-]+)((\\.(\\w){2,3})+)$/\r\n\r\n return EMAIL_REGEXP.test(c.value) ? null : {\r\n emailValidator: true\r\n };\r\n }\r\n\r\n public static integerOnlyValidator(c: FormControl) {\r\n let NUM_REGEXP = /^\\d+$/\r\n \r\n return NUM_REGEXP.test(c.value) ? null : {\r\n integerOnlyValidator: true\r\n };\r\n }\r\n\r\n public static countryCodeValidator(c: FormControl) {\r\n let COUNTRY_CODE_REG = /^(\\+?\\d{1,3}|\\d{1,4})$/\r\n\r\n return COUNTRY_CODE_REG.test(c.value) ? null : {\r\n countryCodeValidator: true\r\n };\r\n }\r\n\r\n public static numberOnlyValidator(c: FormControl) {\r\n let NUM_REGEXP = /^\\d+$|^\\d+[.,]\\d+$/\r\n \r\n return NUM_REGEXP.test(c.value) ? null : {\r\n numberOnlyValidator: true\r\n };\r\n }\r\n\r\n public static greaterThanZeroValidator(c: FormControl) {\r\n let NUM_REGEXP = /^(0*[1-9][0-9]*([.,][0-9]+)?|0+[.,][0-9]*[1-9][0-9]*)$/\r\n \r\n return NUM_REGEXP.test(c.value) ? null : {\r\n greaterThanZeroValidator: true\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScrollViewHelper {\r\n\r\n constructor() { }\r\n\r\n scrollIntoViewAndCenter(id: string) {\r\n var checkExist = setInterval(function () {\r\n let temp = document.getElementById(id)\r\n if (!!temp) {\r\n temp.scrollIntoView({ behavior: \"smooth\", inline: \"center\", block: \"center\" });\r\n clearInterval(checkExist);\r\n }\r\n }, 100);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { RoleService } from '../../account/services/role.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StaticContentHelper {\r\n\r\n //TODO needs refactoring\r\n constructor(private roleService: RoleService, private translateService: TranslateService, private router: Router) { }\r\n\r\n}\r\n","import { TranslationString } from '../../shared/price-matrix/entities/TranslationString';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\nimport * as _ from \"lodash\";\r\nimport { Country } from '../../account/entities/Country';\r\nimport { stringify } from 'querystring';\r\nimport { isNumber } from 'lodash';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationHelper {\r\n\r\n constructor(private translateService: TranslateService) {\r\n\r\n }\r\n\r\n public getNumber(object) : number {\r\n if(isNumber(object))\r\n return object;\r\n\r\n if(!!object){\r\n switch (this.translateService.currentLang){\r\n case \"en\":\r\n var convertedObject = object.toString().replace(/\\,/g, '');\r\n return Number(convertedObject);\r\n case \"fo\":\r\n var convertedObject = object.toString().replace(/\\./g, '').replace(',', '.');\r\n return Number(convertedObject);\r\n case \"da\":\r\n var convertedObject = object.toString().replace(/\\./g, '').replace(',', '.');\r\n return Number(convertedObject);\r\n case \"gl\":\r\n var convertedObject = object.toString().replace(/\\./g, '').replace(',', '.');\r\n return Number(convertedObject);\r\n }\r\n }\r\n }\r\n\r\n public convertNumberField(field: AbstractControl){\r\n if(!field?.value)\r\n return;\r\n \r\n var numberValue = field.value;\r\n //currentLang is the new (destination) language\r\n switch (this.translateService.currentLang){\r\n case \"en\":\r\n field.setValue(numberValue.toString().replace(/,/g, '.'), {emitEvent:false});\r\n break;\r\n case \"fo\":\r\n case \"da\":\r\n case \"gl\":\r\n field.setValue(numberValue.toString().replace(/\\./g, ','), {emitEvent:false});\r\n break;\r\n }\r\n }\r\n\r\n public formatNumberField(field: AbstractControl){\r\n if(!field?.value)\r\n return;\r\n // switch (this.translateService.currentLang){\r\n // case \"en\":\r\n // if(field.value.toString().endsWith(\".\") || field.value.toString().endsWith(\"0\"))\r\n // return;\r\n // break;\r\n // case \"fo\":\r\n // case \"da\":\r\n // case \"gl\":\r\n // if(field.value.toString().endsWith(\",\") || field.value.toString().endsWith(\"0\"))\r\n // return;\r\n // break;\r\n // }\r\n\r\n field.setValue(this.getNumberString(field.value), {emitEvent:false})\r\n }\r\n\r\n public prependPlus(field: AbstractControl){\r\n if(!field?.value)\r\n return;\r\n if(field.value.toString().startsWith('+'))\r\n return;\r\n field.setValue(`+${ field.value }`)\r\n }\r\n\r\n public getNumString2DP(num) : string {\r\n return this.getNum(num, true);\r\n }\r\n\r\n public getNumberString(num) : string {\r\n return this.getNum(num, false);\r\n }\r\n\r\n public getNum(num, decimalPlaces: boolean) {\r\n if(!!num || num == 0){\r\n\r\n var strNum = num.toString();\r\n switch (this.translateService.currentLang){\r\n case \"en\":\r\n if(strNum.endsWith(\".\") || strNum.endsWith(\"0\"))\r\n return strNum;\r\n break;\r\n case \"fo\":\r\n case \"da\":\r\n case \"gl\":\r\n if(strNum.endsWith(\",\") || strNum.endsWith(\"0\"))\r\n return strNum;\r\n break;\r\n }\r\n\r\n if(!isNumber(num))\r\n {\r\n var convertedNum = this.getNumber(num)\r\n if(isNaN(convertedNum))\r\n return num;\r\n num = convertedNum;\r\n }\r\n\r\n if (decimalPlaces)\r\n {\r\n num = num.toFixed(2);\r\n }\r\n\r\n switch (this.translateService.currentLang){\r\n case \"en\":\r\n return num.toString();\r\n case \"fo\":\r\n case \"da\":\r\n case \"gl\":\r\n return num.toString().replace(/,/g, '').replace(/\\./g, ',');\r\n }\r\n }\r\n }\r\n\r\n public getTranslation(object: TranslationString): string {\r\n if (!!object) {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return `${object.EN}`;\r\n case \"fo\":\r\n return `${object.FO}`;\r\n case \"da\":\r\n return `${object.DA}`;\r\n case \"gl\":\r\n return `${object.GL}`;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public getNestedTranslation(stringToBeTranslated: TranslationString, object: any)\r\n {\r\n return this.getNestedString(this.getTranslation(stringToBeTranslated), object);\r\n }\r\n\r\n getNestedString(myString: string, object: any): string {\r\n\r\n let xmlPayloadTemplate = myString;\r\n\r\n let variableMap = { object: object };\r\n\r\n // use custom delimiter ${ }\r\n _.templateSettings.interpolate = /\\${([\\s\\S]+?)}/g;\r\n\r\n let compiled = _.template( xmlPayloadTemplate );\r\n let xmlPayloadCompiled = compiled( variableMap );\r\n\r\n return xmlPayloadCompiled;\r\n }\r\n\r\n public getCountryName(country: Country)\r\n {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n return country.countryNameEN;\r\n case \"fo\":\r\n return country.countryNameFO;\r\n }\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from \"@angular/common/http\";\r\nimport { AuthenticationService } from \"../account/services/authentication.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { environment } from \"../../environments/environment\";\r\nimport { CookieService } from \"./services/cookie.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { tap } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n constructor(private accountService: AuthenticationService, private cookieService: CookieService, private router: Router) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const isLoggedIn = this.accountService.isLoggedIn();\r\n const isApiUrl = request.url.startsWith(environment.apiUrl) || request.url.startsWith(environment.dibsUrl) || request.url.startsWith(\"/api\") || request.url.startsWith(\"/payment\") || request.url.startsWith(environment.beraUrl)\r\n if (isLoggedIn && isApiUrl) {\r\n // console.log(this.cookieService.getCookie('token'));\r\n request = request.clone({\r\n setHeaders: { \r\n Authorization: `Bearer ${this.cookieService.getCookie('token')}`\r\n //Authorization: `Bearer ab/Z/7f4Lr+fabm+477up1D9oX61aisOA6kJ7zPuAszRlfX2viA5h+9MSXrsV63lnWnSizVEAYLDcP3rdmFWzxM+cixvP9nfVGXNK0vawEw1hZXWaPl9d07sHKVeJzITl+NdLOaX0fDQcznVbB9+29rTqPJhWyWk/PAJ8hPhdLg=`\r\n }\r\n });\r\n }\r\n // else if (request.url.includes(\"/DownloadReceipt\"))\r\n // {\r\n // request = request.clone({\r\n // setHeaders: { \r\n // Authorization: `Bearer ${this.cookieService.getCookie('tempToken')}`\r\n // }\r\n // });\r\n // }\r\n\r\n return next.handle(request).pipe(\r\n tap(evt => {\r\n if (evt instanceof HttpResponse) {\r\n if(evt.body && !!request.headers.get('Authorization'))\r\n {\r\n var authCookie = this.cookieService.getCookie('token')\r\n this.cookieService.deleteCookie(authCookie);\r\n this.cookieService.setCookie(\"token\", authCookie, 1440);\r\n }\r\n }\r\n }));\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../../../account/services/role.service';\r\nimport { GenericOrder } from '../../../entities/genericOrder';\r\nimport { StaticContentHelper } from '../../../helpers/static-content-helper';\r\nimport { ServiceType } from '../../../price-matrix/enums/ServiceType';\r\nimport { OrdersService } from '../../../services/orders.service';\r\nimport { StaticContentService } from '../../../services/static-content.service';\r\n\r\n@Component({\r\n selector: 'app-orders-summary',\r\n templateUrl: './orders-summary.component.html',\r\n styleUrls: ['./orders-summary.component.scss']\r\n})\r\nexport class OrdersSummaryComponent implements OnInit {\r\n\r\n completedOrders: Array;\r\n\r\n liveOrders: Array;\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n loadingLive: boolean = false;\r\n \r\n loadingCompleted: boolean = false;\r\n\r\n deliveredIds = [3,4,5];\r\n\r\n attemptedDeliveryIds = [6,7,14,34,35];\r\n\r\n returnToSenderIds = [8,10,85];\r\n\r\n inTransitLocationUpdateIds = [38,39,40,41,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,\r\n 64,65,66,67,68,69,70,71,72,75,76,77,78,84,86,87,88,89,90,91,94,97,113,117];\r\n\r\n delayedNoActionIds = [12,13,15,22,23,24,63,73,108,114];\r\n\r\n unableToDeliveryIds = [9,11,16,17,18,20,21,25,26,28,29,32,33,51,98,99,104,105,107,112,118];\r\n\r\n delayedActionIds = [19,30,31,42,74,79,80,81,82,83,95,96,100,101,102,103,106,109,110,111,115,116];\r\n\r\n confirmedEventTypeIds = [1,92];\r\n\r\n readyToCollectIds = [27];\r\n\r\n cancelledEventTypeIds = [2, 93];\r\n\r\n receivedIds = [37];\r\n\r\n interval: any;\r\n\r\n constructor(private ordersService: OrdersService,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private staticContentService: StaticContentService,\r\n private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translate.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.loadingLive = true;\r\n this.loadingCompleted = true;\r\n\r\n this.ordersService.getOrderList(\"?status=1&skipCount=0&takeCount=5\").subscribe(x => {\r\n this.liveOrders = x;\r\n this.loadingLive = false;\r\n }, (error => {\r\n this.loadingLive = false;\r\n }));\r\n\r\n this.ordersService.getOrderList(\"?status=2&skipCount=0&takeCount=5\").subscribe(x => {\r\n this.completedOrders = x;\r\n this.loadingCompleted = false;\r\n }, (error => {\r\n this.loadingCompleted = false;\r\n }));\r\n }\r\n\r\n public routeToOrder(order: GenericOrder)\r\n {\r\n //send receive order\r\n if (order.serviceTypeId == 2 || order.serviceTypeId == 6 || order.serviceTypeId == 9)\r\n {\r\n return `../orders/send-receive/${order.orderReference}`;\r\n }\r\n else if (order.serviceTypeId == 3)\r\n {\r\n return `../../ccs/${order.itemId}`;\r\n }\r\n else if (order.serviceTypeId == 5)\r\n {\r\n return `../orders/buy-postage/${order.orderReference}`;\r\n }\r\n else\r\n {\r\n return null;\r\n }\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getIcon(order)\r\n {\r\n if (this.deliveredIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_11_delivered_120.png\";\r\n }\r\n else if (this.attemptedDeliveryIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_09_attempted_delivery_120.png\";\r\n }\r\n else if (this.returnToSenderIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_12_return_to_sender.png\";\r\n }\r\n else if (this.inTransitLocationUpdateIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_05_location_120.png\";\r\n }\r\n else if (this.delayedNoActionIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_07_delay_120.png\";\r\n }\r\n else if (this.unableToDeliveryIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_13_unable_to_deliver.png\";\r\n }\r\n else if (this.delayedActionIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_06_delay_action_rq_120.png\";\r\n }\r\n else if (this.confirmedEventTypeIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_01_confirmed_120.png\";\r\n }\r\n else if (this.readyToCollectIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_10_ready_to_collect_120.png\";\r\n }\r\n else if (this.cancelledEventTypeIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_02_cancelled_120.png\";\r\n }\r\n else if (this.receivedIds.includes(order.eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_03_received_120.png\";\r\n }\r\n }\r\n\r\n public viewAllWithStatus(status: number) {\r\n\r\n let navigationExtras: NavigationExtras = {\r\n queryParams: {\r\n \"status\": status\r\n },\r\n };\r\n\r\n this.router.navigateByUrl(`/${this.translate.currentLang}/${this.roleService.role()}/my-posta/orders/view-all?status=${status}`);\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'orders_summary.completed_orders' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'orders_summary.posta_id' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.tracking_id' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.from_to' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.date_requested' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.status' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{order.trackingCode}}
\r\n
\r\n
\r\n
\r\n
{{order.fromName}}
\r\n
{{order.toName}}
\r\n
\r\n
\r\n
\r\n {{order.estimatedDeliveryDate | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n \r\n

!

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{'orders_summary.live_orders' | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'orders_summary.posta_id' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.tracking_id' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.from_to' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.date_requested' | translate}}
\r\n
\r\n
\r\n
{{'orders_summary.status' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{order.trackingCode}}
\r\n
\r\n
\r\n
\r\n
{{order.fromName}}
\r\n
{{order.toName}}
\r\n
\r\n
\r\n
\r\n {{order.estimatedDeliveryDate | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n \r\n

!

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../../account/services/role.service';\r\nimport { DownloadOutput } from '../../../send-receive/entities/DownloadOutput';\r\nimport { SendReceiveService } from '../../../send-receive/new-order/send-and-receive/services/send-receive.service';\r\nimport { BuyPostageService } from '../../../send-receive/services/buy-postage.service';\r\nimport { GenericOrder } from '../../entities/genericOrder';\r\nimport { StaticContentHelper } from '../../helpers/static-content-helper';\r\nimport { OrdersService } from \"../../services/orders.service\";\r\nimport { StaticContentService } from '../../services/static-content.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-all-orders',\r\n templateUrl: './view-all-orders.component.html',\r\n styleUrls: ['./view-all-orders.component.scss']\r\n})\r\nexport class ViewAllOrdersComponent implements OnInit {\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n orders: Array = new Array();\r\n\r\n selectedStatus: string = \"All\";\r\n\r\n selectedStatusIndex: number = 0;\r\n\r\n statuses: Array = [\"All\", \"All live orders\", \"All completed orders\"]\r\n\r\n loading: boolean = false;\r\n\r\n showViewMoreButton: boolean = false;\r\n\r\n viewMoreMultiplier: number = 1;\r\n\r\n filterBySpecificDate: boolean = false;\r\n\r\n filterFormGroup: FormGroup;\r\n\r\n filterQueryString: string;\r\n\r\n deliveredIds = [3,4,5];\r\n\r\n attemptedDeliveryIds = [6,7,14,34,35];\r\n\r\n returnToSenderIds = [8,10,85];\r\n\r\n inTransitLocationUpdateIds = [38,39,40,41,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,\r\n 64,65,66,67,68,69,70,71,72,75,76,77,78,84,86,87,88,89,90,91,94,97,113,117];\r\n\r\n delayedNoActionIds = [12,13,15,22,23,24,63,73,108,114];\r\n\r\n unableToDeliveryIds = [9,11,16,17,18,20,21,25,26,28,29,32,33,51,98,99,104,105,107,112,118];\r\n\r\n delayedActionIds = [19,30,31,42,74,79,80,81,82,83,95,96,100,101,102,103,106,109,110,111,115,116];\r\n\r\n confirmedEventTypeIds = [1,92];\r\n\r\n readyToCollectIds = [27];\r\n\r\n cancelledEventTypeIds = [2, 93];\r\n\r\n receivedIds = [37];\r\n\r\n interval: any;\r\n\r\n constructor(private ordersService: OrdersService, private formBuilder: FormBuilder,\r\n private router: ActivatedRoute, private routerLink: Router, private sendReceiveService: SendReceiveService,\r\n private translateService: TranslateService, private buyPostageService: BuyPostageService, private staticContentService: StaticContentService, private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.router.queryParams.subscribe(params => {\r\n\r\n const status = params['status'];\r\n if (!!status) {\r\n this.selectedStatusIndex = Number(status);\r\n this.selectedStatus = this.statuses[status];\r\n }\r\n });\r\n\r\n this.loading = true;\r\n this.ordersService.getOrderList(`?status=${this.selectedStatusIndex}&skipCount=0&takeCount=10`).subscribe(x => {\r\n this.orders = x;\r\n if (this.orders.length == 10) {\r\n this.showViewMoreButton = true;\r\n }\r\n this.loading = false;\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n\r\n this.filterFormGroup = this.formBuilder.group({\r\n fromDate: [''],\r\n toDate: [''],\r\n search: [''],\r\n });\r\n\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getIcon(eventTypeId: number)\r\n {\r\n if (this.deliveredIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_11_delivered_120.png\";\r\n }\r\n else if (this.attemptedDeliveryIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_09_attempted_delivery_120.png\";\r\n }\r\n else if (this.returnToSenderIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_12_return_to_sender.png\";\r\n }\r\n else if (this.inTransitLocationUpdateIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_05_location_120.png\";\r\n }\r\n else if (this.delayedNoActionIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_07_delay_120.png\";\r\n }\r\n else if (this.unableToDeliveryIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_13_unable_to_deliver.png\";\r\n }\r\n else if (this.delayedActionIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_06_delay_action_rq_120.png\";\r\n }\r\n else if (this.confirmedEventTypeIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_01_confirmed_120.png\";\r\n }\r\n else if (this.readyToCollectIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_10_ready_to_collect_120.png\";\r\n }\r\n else if (this.cancelledEventTypeIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_02_cancelled_120.png\";\r\n }\r\n else if (this.receivedIds.includes(eventTypeId))\r\n {\r\n return \"/assets/icons/track-trace/tt_03_received_120.png\";\r\n }\r\n }\r\n\r\n public getOrdersByStatus(event: string) {\r\n switch (event) {\r\n case \"All\": {\r\n this.selectedStatus = event;\r\n this.selectedStatusIndex = 0;\r\n this.viewMoreMultiplier = 1;\r\n this.searchByFilter();\r\n break;\r\n }\r\n case \"All live orders\": {\r\n this.selectedStatus = event;\r\n this.selectedStatusIndex = 1;\r\n this.viewMoreMultiplier = 1;\r\n this.searchByFilter();\r\n break;\r\n }\r\n case \"All completed orders\": {\r\n this.selectedStatus = event;\r\n this.selectedStatusIndex = 2;\r\n this.viewMoreMultiplier = 1;\r\n this.searchByFilter();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n public viewMore() {\r\n this.viewMoreMultiplier += 1;\r\n console.log(this.selectedStatusIndex);\r\n\r\n switch (this.selectedStatusIndex) {\r\n case 0: {\r\n this.getOrderByParams(`?status=0&skipCount=0&takeCount=${this.viewMoreMultiplier * 10}`)\r\n break;\r\n }\r\n case 1: {\r\n this.getOrderByParams(`?status=1&skipCount=0&takeCount=${this.viewMoreMultiplier * 10}`)\r\n break;\r\n }\r\n case 2: {\r\n this.getOrderByParams(`?status=2&skipCount=0&takeCount=${this.viewMoreMultiplier * 10}`)\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private getOrderByParams(params: string) {\r\n this.loading = true;\r\n this.ordersService.getOrderList(params).subscribe(x => {\r\n this.orders = x;\r\n if (this.orders.length == (this.viewMoreMultiplier * 10)) {\r\n this.showViewMoreButton = true;\r\n }\r\n else {\r\n this.showViewMoreButton = false;\r\n }\r\n this.loading = false;\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n }\r\n\r\n public searchByFilter() {\r\n var queryString: string = `?skipCount=0&takeCount=${this.viewMoreMultiplier * 10}`;\r\n var search = this.filterFormGroup.get('search');\r\n\r\n queryString = queryString.concat(`&status=${this.selectedStatusIndex}`)\r\n\r\n if (this.filterBySpecificDate) {\r\n var fromDate = this.filterFormGroup.get('fromDate');\r\n var toDate = this.filterFormGroup.get('toDate');\r\n if (!!fromDate && !!fromDate.value) {\r\n queryString = queryString.concat(`&fromDate=${fromDate.value.format(\"YYYY-MM-DD\")}`)\r\n }\r\n if (!!toDate && toDate.value) {\r\n queryString = queryString.concat(`&toDate=${toDate.value.format(\"YYYY-MM-DD\")}`)\r\n }\r\n }\r\n\r\n if (!!search && !!search.value) {\r\n queryString = queryString.concat(`&searchString=${search.value}`)\r\n }\r\n this.filterQueryString = queryString;\r\n\r\n this.getOrderByParams(this.filterQueryString);\r\n }\r\n\r\n public checkAllTime() {\r\n this.filterBySpecificDate = false;\r\n this.filterFormGroup.get('fromDate').reset();\r\n this.filterFormGroup.get('toDate').reset();\r\n }\r\n\r\n public clearSearchFilters() {\r\n var allTimeButton = document.getElementById(\"all-time-radio-button\") as HTMLInputElement;\r\n if (!!allTimeButton) {\r\n this.filterBySpecificDate = false;\r\n allTimeButton.checked = true;\r\n }\r\n\r\n this.filterFormGroup.reset();\r\n this.selectedStatus = \"All\"\r\n this.getOrdersByStatus(\"All\");\r\n\r\n }\r\n\r\n public selectSpecificDate() {\r\n var specificDateButton = document.getElementById(\"specific-date-radio-button\") as HTMLInputElement;\r\n if (!!specificDateButton) {\r\n specificDateButton.checked = true;\r\n this.filterBySpecificDate = true;\r\n }\r\n\r\n }\r\n\r\n public routeToOrder(order: GenericOrder) {\r\n //send receive order\r\n if (order.serviceTypeId == 2 || order.serviceTypeId == 6 || order.serviceTypeId == 9) {\r\n return `../send-receive/${order.orderReference}`;\r\n }\r\n else if (order.serviceTypeId == 5) {\r\n return `../buy-postage/${order.orderReference}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n public downloadReceipt(order: GenericOrder) {\r\n //send receive order\r\n if (order.serviceTypeId == 2 || order.serviceTypeId == 6 || order.serviceTypeId == 9) {\r\n // this.downloadingPdfOrder = true;\r\n // if (order.serviceTypeId == 5) {\r\n // this.serviceType = ServiceType.Letter\r\n // }\r\n\r\n this.sendReceiveService.downloadReceipt(order.serviceTypeId, order.orderReference, this.translateService.currentLang).subscribe(x => {\r\n this.createPdfDownload(x);\r\n }, (error) => {\r\n })\r\n } //buy postage\r\n else if (order.serviceTypeId == 5) {\r\n this.buyPostageService.downloadReceipt(order.orderReference, this.translateService.currentLang).subscribe(x => {\r\n this.createPdfDownload(x);\r\n // this.downloadingReceipt = false;\r\n }, (error) => {\r\n // this.downloadingReceipt = false;\r\n })\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private createPdfDownload(x: DownloadOutput) {\r\n const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = x.fileName;\r\n link.click();\r\n }\r\n\r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n // openTrackTrace(orderRef: string)\r\n // {\r\n // const url = this.routerLink.serializeUrl(\r\n // this.routerLink.createUrlTree([`${this.translateService.currentLang}/${this.roleService.role()}/send-receive/track-trace/${orderRef}`])\r\n // );\r\n\r\n // window.open(url, '_blank');\r\n // }\r\n\r\n openTrackTrace(orderRef: string)\r\n {\r\n return `../../../send-receive/track-trace/${orderRef}`;\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{'all_orders_page.from' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'all_orders_page.to' | translate}}:

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
{{'all_orders_page.filter_by_status' | translate}}
\r\n \r\n \r\n \r\n {{status}}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{'all_orders_page.posta_id' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.tracking_id' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.status' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.your_ref' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.from_to' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.order_date' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.delivery_date' | translate}}
\r\n
\r\n
\r\n
{{'all_orders_page.receipt' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n {{order.customerReference}}\r\n
\r\n
\r\n
\r\n
{{order.fromName}}
\r\n
{{order.toName}}
\r\n
\r\n
\r\n
\r\n {{order.createdDateTime | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n {{order.estimatedDeliveryDate | date:'dd/MM/yyyy'}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationHelper } from '../helpers/translation-helper'\r\n\r\n@Pipe({\r\n name: 'numberFormat'\r\n})\r\n\r\nexport class NumberFormatPipe implements PipeTransform {\r\n constructor(private translateHelper: TranslationHelper) {}\r\n transform(value: any): any {\r\n return this.translateHelper.getNumString2DP(value);\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationHelper } from '../helpers/translation-helper'\r\n\r\n@Pipe({\r\n name: 'numberLocalization'\r\n})\r\n\r\nexport class NumberLocalizationPipe implements PipeTransform {\r\n constructor(private translateHelper: TranslationHelper) {}\r\n transform(value: any): any {\r\n return this.translateHelper.getNumberString(value);\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslationHelper } from '../helpers/translation-helper'\r\n\r\n@Pipe({\r\n name: 'priceFormat'\r\n})\r\n\r\nexport class PriceFormatPipe implements PipeTransform {\r\n constructor(private translateHelper: TranslationHelper) {}\r\n transform(value: any): any {\r\n return this.translateHelper.getNumberString(value);\r\n }\r\n\r\n}","import { DomSanitizer } from '@angular/platform-browser'\r\nimport { PipeTransform, Pipe } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'safeHtml'})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) {}\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'toDateObj'\r\n})\r\n\r\nexport class ToDateObjPipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n if (value) {\r\n if (value.toString().indexOf(' ') === -1) {\r\n value = value + ' 00:00:00';\r\n }\r\n const temp = value.toString().replace(' ', 'T');\r\n return new Date(temp);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n}","export enum ProductType {\r\n DomesticTransport = 1,\r\n Sea_Freight = 2, // in use\r\n Air_Freight = 3, // in use\r\n Postage = 4, // in use; satmps\r\n //Parcel = 2, // Possibly replaced by Sea_Parcel and Air_Parcel\r\n //Trucking = 3, // Same as DomesticTransport; so leave it as unused\r\n DHL = 5, // in use\r\n Sea_Parcel = 6, // in use\r\n Air_Parcel = 7, // in use\r\n Postage_Plus = 8, // Not in use; just a placeholder\r\n FedEx = 9, // Not in use and doesn't exist as on today\r\n Parcel = 10\r\n }","export enum ServiceType {\r\n TrackTrace = 0,\r\n Proxy = 1,\r\n Parcel = 2,\r\n Customs = 3,\r\n Waybill = 4,\r\n BuyPostage = 5,\r\n LargeShipment = 6,\r\n Other = 255,\r\n Letter = 9\r\n }","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { TransportType } from '../entities/TransportType';\r\nimport { CountryGroup } from '../entities/CountryGroup';\r\nimport { FindServiceOptionDetails } from '../entities/FindServiceOptionDetails';\r\nimport { environment } from '../../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PriceMatrixService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getAll(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/AddressBook`);\r\n }\r\n\r\n public getDefaultWeightIntervals(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/DefaultWeightIntervals`);\r\n }\r\n\r\n public getLetterSizes(): Observable> {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/LetterSizes`) as Observable>;\r\n }\r\n\r\n public getServiceOptions(serviceOptionDetails: FindServiceOptionDetails): Observable> {\r\n return this.httpClient.post(`${environment.apiUrl}/api/PriceMatrix/ServiceOptions`, serviceOptionDetails) as Observable>;\r\n }\r\n\r\n public getTaxPercentage(): Observable\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/TaxPercentage`) as Observable;\r\n }\r\n\r\n public getBuyPostageWeightBoundaries(): Observable>\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/FindPrices`) as Observable>\r\n }\r\n\r\n public getPostageWeightBoundaries(): Observable>\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/BuyPostageWeights`) as Observable>\r\n }\r\n\r\n public getParcelWeightBoundaries(): Observable>\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/ParcelWeights`) as Observable>\r\n }\r\n\r\n public getBuyPostageCountrySchemes(): Observable>\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/BuyPostageCountrySchemes`) as Observable>\r\n }\r\n\r\n public getBuyPostageSizeOptions(countryIndex: number, weight: Number)\r\n {\r\n return this.httpClient.get(`${environment.apiUrl}/api/PriceMatrix/BuyPostageSizeOptions?countrySchemeId=${countryIndex}&weight=${weight}`) as Observable>\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AddressService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public saveToAddressBook(address: any): Observable {\r\n return this.httpClient.post(`${environment.apiUrl}/api/AddressBook`, address)\r\n .pipe(map((data: any) => {\r\n return data;\r\n }));\r\n }\r\n\r\n public getAll(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/AddressBook`);\r\n\r\n }\r\n\r\n public getPostcodes(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/AddressBook/Postcodes`);\r\n }\r\n\r\n public update(address: any): Observable\r\n {\r\n return this.httpClient.put(`${environment.apiUrl}/api/AddressBook`, address);\r\n }\r\n\r\n public favouriteAddress(addressId: string, favourite: boolean): Observable\r\n {\r\n return this.httpClient.put(`${environment.apiUrl}/api/AddressBook/${addressId}?IsFavourite=${favourite}`, null);\r\n }\r\n\r\n public delete(addressId: string): Observable\r\n {\r\n return this.httpClient.delete(`${environment.apiUrl}/api/AddressBook/${addressId}`);\r\n }\r\n\r\n // this.http.get(`/Authentication/MinlykilLogin`, { responseType: 'text'}).subscribe( \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CookieService {\r\n\r\n constructor() {\r\n }\r\n \r\n public getCookie(name: string) {\r\n let ca: Array = document.cookie.split(';');\r\n let caLen: number = ca.length;\r\n let cookieName = `${name}=`;\r\n let c: string;\r\n\r\n for (let i: number = 0; i < caLen; i += 1) {\r\n c = ca[i].replace(/^\\s+/g, '');\r\n if (c.indexOf(cookieName) == 0) {\r\n return c.substring(cookieName.length, c.length);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n public deleteCookie(name) {\r\n this.setCookie(name, '', -1);\r\n }\r\n\r\n public setCookie(name: string, value: string, expireMinutes: number, path: string = '/') {\r\n let d:Date = new Date();\r\n d.setTime(d.getTime() + expireMinutes * 60 * 1000);\r\n let expires:string = `expires=${d.toUTCString()}`;\r\n let cpath:string = '/';\r\n document.cookie = `${name}=${value}; ${expires};path=/`;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { Country } from '../../account/entities/Country';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CountryService {\r\n\r\n countries: Array = new Array();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getAll(): Observable> {\r\n return this.httpClient.get(`${environment.apiUrl}/api/AddressBook/Countries`) as Observable>;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { CustomShipmentType } from '../entities/customShipmentType';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomShipmentTypeService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getAll(): Observable> {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/CustomsShipmentTypes`) as Observable>;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IncoTermsReceive } from '../entities/IncoTermsReceive';\r\nimport { IncoTermsInput } from '../entities/IncoTermsInput';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IncoTermsService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public GetIncoTerm(incoTermsInput: IncoTermsInput): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/SendReceiveOrder/IncoTerms?isFromCountryFO=${incoTermsInput.isFromCountryFO}\r\n &isFromPostaDepot=${incoTermsInput.isFromPostaDepot}&isToCountryFO=${incoTermsInput.isToCountryFO}`) as Observable;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { Country } from '../../account/entities/Country';\r\nimport { environment } from '../../../environments/environment';\r\nimport { GenericOrder } from '../../shared/entities/genericOrder';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrdersService {\r\n\r\n countries: Array = new Array();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getOrderList(query?: string): Observable> {\r\n return this.httpClient.get(`${environment.apiUrl}/api/user/orders${query}`) as Observable>;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { StaticContent } from '../static-content/entities/staticContent';\r\nimport { environment} from '../../../environments/environment';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StaticContentService {\r\n public staticContent: StaticContent;\r\n public staticContentHash: string;\r\n\r\n constructor(private httpClient: HttpClient,\r\n private roleService: RoleService,\r\n private translateService: TranslateService,\r\n private titleService: Title,\r\n private router: Router) {\r\n }\r\n\r\n setStaticContent(staticContent: any) {\r\n this.staticContent = staticContent;\r\n }\r\n\r\n setStaticContentHash(x: any) {\r\n this.staticContentHash = x;\r\n }\r\n\r\n public getStaticContent(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/StaticContent/StaticJson`) as Observable;\r\n }\r\n\r\n public getTranslationDictionary(language: string): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/StaticContent/TranslationDictionary/${language}`) as Observable;\r\n }\r\n\r\n public getHash(): Observable {\r\n return this.httpClient.get(`${environment.apiUrl}/api/StaticContent/Hash`) as Observable;\r\n }\r\n \r\n cdn(): string {\r\n if (!!this.staticContent) {\r\n return this.staticContent.CDN;\r\n }\r\n return 'https://dkxtfyil83pr6.cloudfront.net';\r\n }\r\n \r\n getPaths(): string[] {\r\n var href = this.router.url;\r\n var paths = href.split(\"/\");\r\n\r\n paths.splice(0,3);\r\n\r\n for (var index in paths){\r\n if(paths[index].includes(\"?\")){\r\n paths[index] = paths[index].slice(0, paths[index].indexOf(\"?\"));\r\n }\r\n }\r\n\r\n // if(paths[0].includes(\"?returnUrl\")){\r\n // paths[0] = paths[0].slice(0, paths[0].indexOf(\"?returnUrl\"));\r\n // }\r\n // else if(paths[0].includes(\"?\")){\r\n // paths[0] = paths[0].slice(0, paths[0].indexOf(\"?\"));\r\n // }\r\n\r\n return paths;\r\n }\r\n\r\n getPageTitle(): string {\r\n var staticContent = this.staticContent;\r\n var href = this.router.url;\r\n \r\n var paths = this.getPaths();\r\n //if (paths.length < 5) {\r\n // this should have at least of 5\r\n // return;\r\n //}\r\n // paths.splice(0, 3);\r\n \r\n var languageSection;\r\n var privateSection;\r\n var category;\r\n var page;\r\n \r\n //Do this so in case we have more a length of more than 2 in paths then it's easier to refactor to account for it.\r\n \r\n var role = this.roleService.role();\r\n \r\n if (!!staticContent && !!role) {\r\n languageSection = staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${role}/`);\r\n if (!!privateSection) {\r\n category = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/`);\r\n }\r\n if (!!category && !!category.Pages) {\r\n page = category.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/${paths[1]}/`);\r\n }\r\n else if (!!category && !!category.Modules){\r\n page = category;\r\n }\r\n }\r\n \r\n if (!!page && !!page.Modules) {\r\n // Set Tab Title\r\n var seo = page.SEO;\r\n if(seo){\r\n var tabTitle = seo.MetaTitle;\r\n this.titleService.setTitle(tabTitle);\r\n }\r\n else{\r\n this.titleService.setTitle(\"Posta\");\r\n }\r\n\r\n // Agreed that the first html module will always be the title\r\n var firstHtmlModule = page.Modules.find(x => x.ModuleType == 'moduleHtml');\r\n \r\n if (!!firstHtmlModule) {\r\n var htmlPageString = this.decodeHtml(firstHtmlModule.Html);\r\n \r\n htmlPageString = this.replaceLinks(htmlPageString);\r\n \r\n return htmlPageString;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n getPageTabTitle(): string {\r\n var staticContent = this.staticContent;\r\n var href = this.router.url;\r\n \r\n var paths = this.getPaths();\r\n //if (paths.length < 5) {\r\n // this should have at least of 5\r\n // return;\r\n //}\r\n // paths.splice(0, 3);\r\n \r\n var languageSection;\r\n var privateSection;\r\n var category;\r\n var page;\r\n \r\n //Do this so in case we have more a length of more than 2 in paths then it's easier to refactor to account for it.\r\n \r\n var role = this.roleService.role();\r\n \r\n if (!!staticContent && !!role) {\r\n languageSection = staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${role}/`);\r\n if (!!privateSection) {\r\n category = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/`);\r\n }\r\n if (!!category && !!category.Pages) {\r\n page = category.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/${paths[1]}/`);\r\n }\r\n else if (!!category && !!category.Modules){\r\n page = category;\r\n }\r\n }\r\n \r\n if (!!page) {\r\n var seo = page.SEO;\r\n var tabTitle = seo.MetaTitle;\r\n return tabTitle;\r\n }\r\n }\r\n return 'Posta';\r\n }\r\n \r\n getImageForPsModule(): string {\r\n var staticContent = this.staticContent;\r\n \r\n var languageSection;\r\n var privateSection;\r\n var category;\r\n var page;\r\n \r\n //Do this so in case we have more a length of more than 2 in paths then it's easier to refactor to account for it.\r\n var href = this.router.url;\r\n \r\n var paths = this.getPaths();\r\n \r\n var role = this.roleService.role();\r\n \r\n if (!!staticContent && !!role) {\r\n languageSection = staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${role}/`);\r\n if (!!privateSection) {\r\n category = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/`);\r\n }\r\n if (!!category && !!category.Pages) {\r\n page = category.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/${paths[1]}/`);\r\n }\r\n else if (!!category.Modules){\r\n page = category;\r\n }\r\n }\r\n \r\n if (!!page && !!page.Modules) {\r\n var psModule = page.Modules.find(x => x.ModuleType == 'psModule');\r\n \r\n if (!!psModule) {\r\n \r\n if (!!psModule.Content && !!psModule.Content.Image) {\r\n return `${staticContent.CDN}${psModule.Content.Image}`;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n \r\n getHtmlBelowPsModule(): string {\r\n var staticContent = this.staticContent;\r\n \r\n var languageSection;\r\n var privateSection;\r\n var category;\r\n var page;\r\n \r\n //Do this so in case we have more a length of more than 2 in paths then it's easier to refactor to account for it.\r\n var href = this.router.url;\r\n \r\n var paths = this.getPaths();\r\n \r\n var role = this.roleService.role();\r\n \r\n if (!!staticContent && !!role) {\r\n languageSection = staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${role}/`);\r\n if (!!privateSection) {\r\n category = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/`);\r\n }\r\n if (!!category && !!category.Pages) {\r\n page = category.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${paths[0]}/${paths[1]}/`);\r\n }\r\n else if (!!category && !!category.Modules){\r\n page = category;\r\n }\r\n }\r\n \r\n if (!!page && !!page.Modules) {\r\n var psModuleIndex = page.Modules.findIndex(x => x.ModuleType == 'psModule');\r\n var modules;\r\n if (psModuleIndex != null && psModuleIndex != undefined) {\r\n //If index exists then we only want html modules after the defined psModule\r\n modules = page.Modules.slice(psModuleIndex)\r\n }\r\n else{\r\n modules = page.Modules;\r\n }\r\n \r\n var htmlModules = modules.filter(x => x.ModuleType == 'moduleHtml');\r\n \r\n if (!!htmlModules) {\r\n //The first html module is always the title so ignore it and only do it if there was no psModule as the psModule splice will have already removed it otherwise\r\n if (psModuleIndex == null || psModuleIndex == undefined) {\r\n htmlModules.shift();\r\n }\r\n \r\n var htmlPageString: string = \"\";\r\n htmlModules.forEach(x => htmlPageString = htmlPageString.concat(x.Html));\r\n htmlPageString = this.decodeHtml(htmlPageString);\r\n htmlPageString = this.replaceLinks(htmlPageString);\r\n return htmlPageString;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n \r\n public getPsModuleContent(categoryPath: string, fullPath: string) {\r\n var languageSection;\r\n var privateSection;\r\n var category;\r\n var homepage;\r\n \r\n var staticContent = this.staticContent;\r\n var role = this.roleService.role();\r\n \r\n if (!!staticContent && !!role) {\r\n languageSection = staticContent.Sections.find(x => x.Url == `/${this.translateService.currentLang}/`);\r\n if (!!languageSection) {\r\n privateSection = languageSection.SubSections.find(x => x.Url == `/${this.translateService.currentLang}/${role}/`);\r\n if (!!privateSection) {\r\n category = privateSection.Categories.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${categoryPath}/`);\r\n }\r\n if (!!category && !!category.Pages) {\r\n homepage = category.Pages.find(x => x.Url == `/${this.translateService.currentLang}/${role}/${fullPath}/`);\r\n }\r\n else if (!!category.Modules){\r\n homepage = category;\r\n }\r\n }\r\n \r\n if (!!homepage && !!homepage.Modules) {\r\n var modules = homepage.Modules;\r\n var module = modules.find(x => x.ModuleType == \"psModule\");\r\n \r\n if (!!module) {\r\n return module.Content;\r\n }\r\n return undefined;\r\n }\r\n }\r\n \r\n return undefined;\r\n }\r\n \r\n \r\n private replaceLinks(htmlPageString: string) {\r\n var firstReg = /img src=\\\"/g;\r\n htmlPageString = htmlPageString.replace(firstReg, `img src=\\\"${this.cdn()}/`);\r\n \r\n var secondReg = /img src='\\//g;\r\n htmlPageString = htmlPageString.replace(secondReg, `img src='${this.cdn()}/`);\r\n \r\n var thirdReg = /img src=\\\\\\\"\"/g;\r\n htmlPageString = htmlPageString.replace(thirdReg, `img src=\\\\\\\"${this.cdn()}/`);\r\n \r\n var fourthReg = /background-image:url\\('\\//g;\r\n htmlPageString = htmlPageString.replace(fourthReg, `background-image:url('${this.cdn()}/`);\r\n \r\n var pdfReg = /a href='\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg, `a href='${this.cdn()}/media/`);\r\n \r\n var pdfReg2 = /a href=\"\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg2, `a href=\\\"${this.cdn()}/media/`);\r\n \r\n //htmlPageString.replace(`${this.cdn()}/http`, \"http\");\r\n return htmlPageString;\r\n }\r\n \r\n private decodeHtml(html: string) {\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n \r\n public loadAllCssJs() {\r\n var staticContent = this.staticContent;\r\n if (!!staticContent) {\r\n var axdFiles = staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.loadjscssfile(x, \"js\");\r\n });\r\n }\r\n }\r\n \r\n public loadjscssfile(filename, filetype) {\r\n if (filetype == \"js\") { //if filename is a external JavaScript file\r\n let node = document.createElement('script');\r\n node.src = `${this.cdn()}${filename}`;\r\n node.type = 'text/javascript';\r\n var scripts = document.getElementsByTagName('script');\r\n for (let i = 0; i < scripts.length; i++) {\r\n if (!!scripts[i] && scripts[i].src === `${this.cdn()}${filename}`) {\r\n // scripts[i].remove();\r\n return;\r\n }\r\n }\r\n document.getElementsByTagName(\"head\")[0].appendChild(node);\r\n window.dispatchEvent(new Event('th.domChanged'));\r\n }\r\n else if (filetype == \"css\") { //if filename is an external CSS file\r\n let fileref = document.createElement(\"link\")\r\n fileref.setAttribute(\"rel\", \"stylesheet\")\r\n fileref.setAttribute(\"type\", \"text/css\")\r\n fileref.setAttribute(\"href\", `${this.cdn()}${filename}`)\r\n var links = document.getElementsByTagName('link');\r\n for (let i = 0; i < links.length; i++) {\r\n if (!!links[i] && links[i].href === `${this.cdn()}${filename}`) {\r\n // links[i].remove();\r\n return;\r\n }\r\n }\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Invoice } from '../entities/Invoice';\r\nimport { environment } from '../../../environments/environment'\r\nimport { Observable } from 'rxjs/internal/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadFileService {\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public addInvoice(invoiceUpload: Invoice, orderReference: string) {\r\n\r\n return this.httpClient.put(`${environment.apiUrl}/api/SendReceiveOrder/AddRemoveInvoice?orderReference=${orderReference}&isRemove=false`, invoiceUpload);\r\n }\r\n\r\n public removeInvoice(invoiceUpload: Invoice, orderReference: string) {\r\n\r\n return this.httpClient.put(`${environment.apiUrl}/api/SendReceiveOrder/AddRemoveInvoice?orderReference=${orderReference}&isRemove=true`, invoiceUpload);\r\n }\r\n\r\n public uploadDocument(document: Invoice)\r\n {\r\n return this.httpClient.post(`${environment.apiUrl}/api/customs/upload`, document) as Observable;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AddressBookComponent } from './address-book/address-book.component';\r\nimport { ContactUsComponent } from './contact-us/contact-us.component';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { OrdersSummaryComponent } from './my-posta/all-orders/orders-summary/orders-summary.component';\r\nimport { ViewAllOrdersComponent } from './my-posta/view-all-orders/view-all-orders.component';\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role/my-posta/address-book', component: AddressBookComponent, canActivate: [AuthGuard]},\r\n { path: ':lang/:role/my-posta/orders', component: OrdersSummaryComponent, canActivate: [AuthGuard]},\r\n { path: ':lang/:role/my-posta/orders/view-all', component: ViewAllOrdersComponent, canActivate: [AuthGuard]},\r\n { path: ':lang/:role/help-information/contact-us', component: ContactUsComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SharedRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, NumberFormatStyle } from '@angular/common';\r\nimport { HeaderPersonalComponent } from './header/header-personal/header-personal.component';\r\nimport { FooterComponent } from './footer/footer/footer.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { StaticContentPageComponent } from './static-content/static-content-page.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FileUploadComponent } from './file-upload/file-upload.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedRoutingModule } from './shared-routing.module';\r\nimport { AddressBookComponent } from './address-book/address-book.component';\r\nimport { CreateNewAddressComponent } from './address-book/new-address/create-new-address.component';\r\nimport { ViewAllAddressesComponent } from './address-book/view-all-addresses/view-all-addresses.component';\r\nimport { EditAddressComponent } from './address-book/edit-address/edit-address.component';\r\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\r\nimport { FromNewAddressComponent } from './address-book/new-address/from-new-address.component';\r\nimport { ToNewAddressComponent } from './address-book/new-address/to-new-address.component';\r\nimport { PageNotFoundComponent } from './error/page-not-found/page-not-found.component';\r\nimport { ErrorMessageComponent } from './error/error-message/error-message.component';\r\nimport { OrdersSummaryComponent } from './my-posta/all-orders/orders-summary/orders-summary.component';\r\nimport { ViewAllOrdersComponent } from './my-posta/view-all-orders/view-all-orders.component';\r\nimport { SafeHtmlPipe } from './pipes/safeHtml.pipe';\r\nimport { ToDateObjPipe } from './pipes/toDateObj.pipe';\r\nimport { PriceFormatPipe } from './pipes/priceFormat.pipe';\r\nimport { NumberFormatPipe } from './pipes/numberFormat.pipe';\r\nimport { FileUploadMissingDocumentsComponent } from './file-upload-missing-documents/file-upload-missing-documents.component';\r\nimport { FieldErrorMessageComponent } from './error/field-error-message/field-error-message.component';\r\nimport { LogoutDialogComponent } from './dialogs/logout-dialog/logout-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { ContactUsComponent } from './contact-us/contact-us.component';\r\nimport { NumberLocalizationPipe } from './pipes/numberLocalization.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n HeaderPersonalComponent,\r\n FooterComponent,\r\n StaticContentPageComponent,\r\n FileUploadComponent,\r\n AddressBookComponent,\r\n CreateNewAddressComponent,\r\n ViewAllAddressesComponent,\r\n EditAddressComponent,\r\n FromNewAddressComponent,\r\n ToNewAddressComponent,\r\n PageNotFoundComponent,\r\n ErrorMessageComponent,\r\n OrdersSummaryComponent,\r\n ViewAllOrdersComponent,\r\n SafeHtmlPipe, ToDateObjPipe, PriceFormatPipe, NumberFormatPipe, NumberLocalizationPipe,\r\n FileUploadMissingDocumentsComponent,\r\n FieldErrorMessageComponent,\r\n LogoutDialogComponent,\r\n ContactUsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedRoutingModule,\r\n TranslateModule,\r\n MatMenuModule,\r\n RouterModule,\r\n MatProgressBarModule,\r\n MatCardModule,\r\n MatIconModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatSnackBarModule,\r\n Ng2SearchPipeModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatProgressSpinnerModule,\r\n MatDatepickerModule,\r\n MatDialogModule\r\n ],\r\n exports: [\r\n HeaderPersonalComponent,\r\n FooterComponent,\r\n TranslateModule,\r\n StaticContentPageComponent,\r\n FileUploadComponent,\r\n FileUploadMissingDocumentsComponent,\r\n CreateNewAddressComponent,\r\n FromNewAddressComponent,\r\n ToNewAddressComponent,\r\n ErrorMessageComponent,\r\n FieldErrorMessageComponent,\r\n SafeHtmlPipe, ToDateObjPipe, PriceFormatPipe, NumberFormatPipe, NumberLocalizationPipe,\r\n LogoutDialogComponent\r\n ]\r\n})\r\nexport class SharedModule { }","import { AfterViewInit, Component, ElementRef, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\r\nimport { split } from 'lodash';\r\nimport { StaticContentHelper } from '../helpers/static-content-helper';\r\nimport { StaticContentService } from '../services/static-content.service';\r\nimport { MenuCategory } from './entities/menuCategory';\r\nimport { Page } from './entities/page';\r\nimport { StaticContent } from './entities/staticContent';\r\nimport { SubSection } from './entities/subSection';\r\n\r\n@Component({\r\n selector: 'app-static-content-page',\r\n templateUrl: './static-content-page.component.html',\r\n styleUrls: ['./static-content-page.component.scss']\r\n})\r\nexport class StaticContentPageComponent implements OnInit, AfterViewInit {\r\n public showPageNotFound: boolean;\r\n observer: MutationObserver;\r\n\r\n constructor(private translateService: TranslateService, private staticContentService: StaticContentService, private elRef: ElementRef, private titleService: Title) { }\r\n\r\n public staticContent: StaticContent;\r\n\r\n public subsection: SubSection;\r\n\r\n public category: MenuCategory;\r\n\r\n public page: Page;\r\n\r\n public pageHtml: string;\r\n\r\n public showPage: boolean = false;\r\n\r\n public noPageFound: boolean = false;\r\n\r\n public interval: any;\r\n\r\n public cssJsSet: boolean = false;\r\n\r\n public cdnPath: string;\r\n\r\n ngOnInit(): void {\r\n this.cdnPath = this.staticContentService.cdn();\r\n this.interval = setInterval(() => {\r\n if (!this.cssJsSet)\r\n {\r\n\r\n this.staticContent = this.staticContentService.staticContent;\r\n \r\n if (!!this.staticContent)\r\n {\r\n var axdFiles = this.staticContent.GlobalCss.split(\";\");\r\n axdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"css\");\r\n });\r\n var jsAxdFiles = this.staticContent.GlobalJs.split(\";\");\r\n jsAxdFiles.forEach(x => {\r\n this.staticContentService.loadjscssfile(x, \"js\");\r\n });\r\n this.setPageContent();\r\n clearInterval(this.interval);\r\n this.cssJsSet = true;\r\n return;\r\n }\r\n\r\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\r\n this.setPageContent();\r\n });\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.observer = new MutationObserver(mutations => {\r\n mutations.forEach(function(mutation) {\r\n window.dispatchEvent(new Event('th.domChanged')); \r\n }); \r\n });\r\n var config = { attributes: true, childList: true, characterData: true };\r\n\r\n this.observer.observe(this.elRef.nativeElement, config);\r\n }\r\n\r\n public sleepFor(sleepDuration){\r\n var now = new Date().getTime();\r\n while(new Date().getTime() < now + sleepDuration){ \r\n /* Do nothing */ \r\n }\r\n}\r\n\r\n public traversePageForCorrectUrl(index: number) {\r\n\r\n var splitPath = window.location.pathname.split(\"/\");\r\n splitPath.shift();\r\n\r\n //if split path array length equals the index that means it's within this page otherwise drill down to the next page.\r\n if (index == splitPath.length)\r\n {\r\n //We're now on the correct index.\r\n if (!!this.page && this.page.Url == `${window.location.pathname}/`)\r\n { \r\n if (!!this.page.Css)\r\n {\r\n var cssFiles = this.page.Css.split(\";\");\r\n cssFiles.forEach(x => this.staticContentService.loadjscssfile(x, \"css\"));\r\n }\r\n\r\n //console.log(htmlPageString);\r\n\r\n if (!!this.page.Js)\r\n {\r\n this.page.Js = this.page.Js.replace('\\r\\n','');\r\n var jsFiles = this.page.Js.split(\";\");\r\n jsFiles.forEach(x => this.staticContentService.loadjscssfile(x, \"js\"));\r\n }\r\n\r\n var htmlPageString: string = \"\";\r\n this.page.Modules.forEach(x => htmlPageString = htmlPageString.concat(x.Html));\r\n htmlPageString = this.decodeHtml(htmlPageString);\r\n\r\n //This should ideally be done in Umbraco so it's consistent and we don't have to replace so many variants\r\n var firstReg = /img src=\\\"/g;\r\n htmlPageString = htmlPageString.replace(firstReg, `img src=\\\"${this.cdnPath}/`);\r\n\r\n var secondReg = /img src='\\//g;\r\n htmlPageString = htmlPageString.replace(secondReg, `img src='${this.cdnPath}/`);\r\n\r\n var thirdReg = /img src=\\\\\\\"\"/g;\r\n htmlPageString = htmlPageString.replace(thirdReg, `img src=\\\\\\\"${this.cdnPath}/`);\r\n\r\n var fourthReg = /background-image:url\\('\\//g;\r\n htmlPageString = htmlPageString.replace(fourthReg, `background-image:url('${this.cdnPath}/`);\r\n\r\n var pdfReg = /href='\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg, `href='${this.cdnPath}/media/`);\r\n\r\n var pdfReg2 = /href=\"\\/media\\//g;\r\n htmlPageString = htmlPageString.replace(pdfReg2, `href=\\\"${this.cdnPath}/media/`);\r\n\r\n // htmlPageString = this.decodeHtml(htmlPageString);\r\n this.pageHtml = htmlPageString;\r\n\r\n this.showPage = true;\r\n }\r\n else\r\n {\r\n this.showPageNotFound = true;\r\n }\r\n }\r\n else{\r\n //If index is 2 that means we're looking at a page under a category and not a child page\r\n if (index == 2)\r\n {\r\n for (let i = 0; i < this.category.Pages.length; i++) {\r\n var categoryPageUrl = this.category.Pages[i].Url;\r\n if (!!categoryPageUrl)\r\n {\r\n var categoryPageUrlSplit = categoryPageUrl.split(\"/\");\r\n categoryPageUrlSplit.shift();\r\n if (splitPath[index] == categoryPageUrlSplit[index] && splitPath[index+1] == categoryPageUrlSplit[index+1])\r\n {\r\n this.page = this.category.Pages[i];\r\n index++;\r\n this.traversePageForCorrectUrl(index);\r\n }\r\n }\r\n }\r\n if(!this.page)\r\n {\r\n this.showPageNotFound = true;\r\n }\r\n }\r\n else if (index <= splitPath.length) {\r\n for (let i = 0; i < this.page?.Pages?.length; i++) {\r\n var pageUrl = this.page.Pages[i].Url;\r\n if (!!pageUrl)\r\n {\r\n var pageUrlSplit = pageUrl.split(\"/\");\r\n pageUrlSplit.shift();\r\n if (splitPath[index] == pageUrlSplit[index] && splitPath[index+1] == pageUrlSplit[index+1])\r\n {\r\n this.page = this.page.Pages[i];\r\n }\r\n }\r\n }\r\n index++;\r\n this.traversePageForCorrectUrl(index);\r\n }\r\n else\r\n {\r\n this.showPageNotFound = true;\r\n }\r\n\r\n }\r\n }\r\n\r\npublic decodeHtml(html: string)\r\n{\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n}\r\n\r\npublic setPageContent()\r\n{\r\n var tabTitle = this.staticContentService.getPageTabTitle();\r\n this.titleService.setTitle(tabTitle);\r\n this.subsection = null;\r\n this.pageHtml = null;\r\n var splitPath = window.location.pathname.split(\"/\");\r\n\r\n //greater than 1 because the first element is empty and the second is always the language so there's no point if there's only 2 elements\r\n if (!!splitPath && splitPath.length > 2) {\r\n splitPath.shift();\r\n\r\n //Loop through the top level section to determine language\r\n var languageSection = this.staticContent.Sections.find(languageSection => languageSection.Url == `/${splitPath[0]}/`);\r\n\r\n if (!!languageSection) {\r\n //Look into which subsections urls match the second parameter\r\n // languageSection.SubSections.find(x => x.Url.split(\"/\")[2] == splitPath[1] )\r\n\r\n var subSectionUrls = languageSection.SubSections.map(x => x.Url);\r\n\r\n for (let i = 0; i < subSectionUrls.length; i++) {\r\n var splitSubSectionUrl = subSectionUrls[i].split(\"/\");\r\n if (!!splitSubSectionUrl && splitSubSectionUrl.length > 2)\r\n {\r\n splitSubSectionUrl.shift();\r\n if (splitSubSectionUrl[1] == splitPath[1])\r\n {\r\n this.subsection = languageSection.SubSections[i];\r\n }\r\n }\r\n else\r\n {\r\n this.showPageNotFound = true;\r\n return;\r\n }\r\n }\r\n\r\n\r\n if (!!this.subsection && splitPath.length > 2)\r\n {\r\n var categoryUrls = this.subsection.Categories.map(x => x.Url);\r\n\r\n for (let i = 0; i < categoryUrls.length; i++) {\r\n var splitCategoryUrls = categoryUrls[i].split(\"/\");\r\n if (!!splitCategoryUrls && splitCategoryUrls.length > 3)\r\n {\r\n splitCategoryUrls.shift();\r\n if (splitCategoryUrls[2] == splitPath[2])\r\n {\r\n this.category = this.subsection.Categories[i];\r\n }\r\n }\r\n }\r\n if (!this.category)\r\n {\r\n this.showPageNotFound = true;\r\n return;\r\n }\r\n }\r\n else{\r\n this.showPageNotFound = true;\r\n return;\r\n }\r\n\r\n this.traversePageForCorrectUrl(2);\r\n }\r\n else\r\n {\r\n this.showPageNotFound = true;\r\n }\r\n }\r\n else\r\n {\r\n this.showPageNotFound = true;\r\n }\r\n}\r\n\r\n}\r\n\r\n","\r\n
\r\n
\r\n \r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-brochure-dialog',\r\n templateUrl: './brochure-dialog.component.html',\r\n styleUrls: ['./brochure-dialog.component.scss']\r\n})\r\nexport class BrochureDialogComponent implements OnInit {\r\n @ViewChild('pdfViewerAutoLoad') pdfViewerAutoLoad;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef) {}\r\n\r\n ngOnInit() {\r\n // will log the entire data object\r\n console.log(this.data)\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onLoad(event: any): void {\r\n if (this.data.pageIndex)\r\n {\r\n this.pdfViewerAutoLoad.page = this.data.pageIndex;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n \r\n \r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\n\r\n@Component({\r\n selector: 'app-create-shopping-lists-dialog',\r\n templateUrl: './create-shopping-lists-dialog.component.html',\r\n styleUrls: ['./create-shopping-lists-dialog.component.scss']\r\n})\r\nexport class CreateShoppingListsDialogComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public shoppingListService: ShoppingListService,\r\n public dialogRef: MatDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public createShoppingLists() {\r\n console.log(this.data.lists);\r\n this.data.lists.shoppingLists.forEach(x => {\r\n this.shoppingListService.create(x.name).subscribe(y => {\r\n console.log(y);\r\n\r\n x.products?.forEach(z => {\r\n //Can simplify but keep like this in case we need to do anything additional in the future.\r\n if (z.productId) {\r\n const addToListBody = {\r\n \"ShoppingListId\": y,\r\n \"ProductId\": z.productId,\r\n \"ItemName\": z.productName\r\n }\r\n this.shoppingListService.addToShoppingList(addToListBody).subscribe(a => {\r\n });\r\n }\r\n else {\r\n const body = {\r\n \"ShoppingListId\": y,\r\n \"ProductId\": null,\r\n \"ItemName\": z.productName\r\n }\r\n this.shoppingListService.addToShoppingList(body).subscribe(a => {\r\n });\r\n }\r\n })\r\n })\r\n })\r\n this.dialogRef.close();\r\n if (!!localStorage.getItem('shoppingLists'))\r\n {\r\n localStorage.removeItem('shoppingLists');\r\n }\r\n }\r\n\r\n public onNo() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n

{{'bera.guest_login.add_lists_to_user' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {{'bera.guest_login.add_lists_to_user_body' | translate}}\r\n
\r\n
\r\n
\r\n {{'bera.guest_login.add_lists_to_user_body_line_2' | translate}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../../account/services/role.service';\r\n\r\n@Component({\r\n selector: 'app-generated-code-dialog',\r\n templateUrl: './generated-code-dialog.component.html',\r\n styleUrls: ['./generated-code-dialog.component.scss']\r\n})\r\nexport class GeneratedCodeDialogComponent implements OnInit {\r\n\r\n public shoppingListName: string;\r\n public showCopiedMessage: boolean = false;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef) {}\r\n\r\n ngOnInit() {\r\n // will log the entire data object\r\n this.shoppingListName = this.data.link;\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n

{{'bera.share.your_share_link' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

{{'bera.share.link_copied_to_clipboard' | translate}}

\r\n
\r\n

{{'bera.share.plain_text' | translate}}

\r\n \r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { AuthenticationService } from '../../account/services/authentication.service';\r\nimport { ShoppingList } from '../models/ShoppingList';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\nimport { ShoppingListProduct } from '../models/ShoppingListProduct';\r\n\r\n@Component({\r\n selector: 'app-manual-item-dialog',\r\n templateUrl: './manual-item-dialog.component.html',\r\n styleUrls: ['./manual-item-dialog.component.scss']\r\n})\r\nexport class ManualItemDialogComponent implements OnInit {\r\n\r\n public manualItemName: string;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public shoppingListService: ShoppingListService,\r\n public authService: AuthenticationService,\r\n public dialogRef: MatDialogRef) {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public createNewItem(): void {\r\n if (this.isLoggedIn())\r\n {\r\n const body = {\r\n \"ShoppingListId\": this.data.id,\r\n \"ProductId\": null,\r\n \"ItemName\": this.manualItemName\r\n }\r\n \r\n this.shoppingListService.addToShoppingList(body).subscribe(x => {\r\n console.log(x);\r\n this.dialogRef.close();\r\n });\r\n }\r\n else {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n var allLoggedOutLists: ShoppingListsLoggedOut = JSON.parse(loggedOutLists);\r\n \r\n var list = allLoggedOutLists.shoppingLists.find(y => y.name === this.data.name);\r\n if (!list.products)\r\n {\r\n list.products = new Array();\r\n }\r\n list.products.push({productName: this.manualItemName, retailerName: '', productId: null, isManualItem: true })\r\n\r\n var listIndex = allLoggedOutLists.shoppingLists.findIndex(y => y.name === this.data.name);\r\n allLoggedOutLists.shoppingLists[listIndex] = list;\r\n localStorage.setItem(\"shoppingLists\", JSON.stringify(allLoggedOutLists));\r\n this.dialogRef.close();\r\n }\r\n }\r\n \r\n public isLoggedIn() {\r\n return this.authService.isLoggedIn();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n

{{'bera.edit_list.add_manual_item_title' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { AuthenticationService } from '../../account/services/authentication.service';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\n\r\n@Component({\r\n selector: 'app-new-shopping-list-dialog',\r\n templateUrl: './new-shopping-list-dialog.component.html',\r\n styleUrls: ['./new-shopping-list-dialog.component.scss']\r\n})\r\nexport class NewShoppingListDialogComponent implements OnInit {\r\n\r\n public shoppingListName: string;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n public shoppingListService: ShoppingListService,\r\n public authService: AuthenticationService) {}\r\n\r\n ngOnInit() {\r\n // will log the entire data object\r\n console.log(this.data)\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onLoad(event: any): void {\r\n }\r\n\r\n public createNewShoppingList(): void {\r\n if (!this.shoppingListName || this.shoppingListName === '')\r\n {\r\n return;\r\n //TODO display an error to the user to they need to define a name.\r\n }\r\n\r\n if (this.authService.isLoggedIn())\r\n {\r\n this.shoppingListService.create(this.shoppingListName).subscribe(x => {\r\n this.dialogRef.close(x);\r\n })\r\n }\r\n else {\r\n var localShoppingLists = localStorage.getItem('shoppingLists');\r\n if (!!localShoppingLists)\r\n {\r\n var lists: ShoppingListsLoggedOut = JSON.parse(localShoppingLists);\r\n // if (lists.shoppingLists.map(x => x.name).includes(this.shoppingListName))\r\n // {\r\n // return;\r\n // }\r\n if (!lists.shoppingLists)\r\n {\r\n lists.shoppingLists = [];\r\n }\r\n var newList = {name: this.shoppingListName, products: null};\r\n lists.shoppingLists.push(newList);\r\n localStorage.setItem('shoppingLists', JSON.stringify(lists));\r\n this.dialogRef.close(newList);\r\n }\r\n else {\r\n var newShoppingLists: ShoppingListsLoggedOut = {shoppingLists: []};\r\n var newList = {name: this.shoppingListName, products: null};\r\n\r\n //Set the all the current lists to active false\r\n newShoppingLists.shoppingLists.forEach(x => x.isActive = false);\r\n\r\n newShoppingLists.shoppingLists.push({name: this.shoppingListName, products: null, isActive: true});\r\n localStorage.setItem('shoppingLists', JSON.stringify(newShoppingLists));\r\n this.dialogRef.close(newList);\r\n }\r\n\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n

{{'bera.create_list.title' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from '../../account/services/authentication.service';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { BrochureDialogComponent } from '../brochure-dialog/brochure-dialog.component';\r\nimport { GeneratedCodeDialogComponent } from '../generated-code-dialog/generated-code-dialog/generated-code-dialog.component';\r\nimport { NewShoppingListDialogComponent } from '../new-shopping-list-dialog/new-shopping-list-dialog.component';\r\nimport { BrochureService } from '../services/brochure-service';\r\nimport { ProductService } from '../services/product.service';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { ShoppingList } from '../models/ShoppingList';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-offers-products',\r\n templateUrl: './offers-products.component.html',\r\n styleUrls: ['./offers-products.component.scss']\r\n})\r\nexport class OffersProductsComponent implements OnInit {\r\n\r\n offerProductForm: FormGroup;\r\n public isBrochuresSelected: boolean = true;\r\n public brochures: Array;\r\n public searchText: string;\r\n public products: Array;\r\n public categories: Array;\r\n public loading: boolean = true;\r\n public loadingBrochure: boolean = false;\r\n public showPDF: boolean = false;\r\n public pdfContent: any;\r\n public shoppingLists: Array;\r\n public activeList: any;\r\n public activeListLoggedOut: ShoppingList;\r\n public lastResultsLength: number;\r\n public hideViewMore: boolean = false;\r\n private interval: any;\r\n public image: string;\r\n public selectedBrochureIndex;\r\n public loggedOutShoppingLists: ShoppingListsLoggedOut;\r\n\r\n //Default filter values\r\n public productFilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"SkipCount\": 0,\r\n \"TakeCount\": 8,\r\n \"FilterParameters\": {\r\n \"Keyword\": \"\",\r\n \"Name\": \"\",\r\n \"Categories\": \"\",\r\n \"Departments\": \"\",\r\n \"SubDepartments\": \"\",\r\n \"Manufacturers\": \"\",\r\n \"Publishers\": \"\",\r\n \"BrochureId\": null,\r\n \"MinPrice\": null,\r\n \"MaxPrice\": null,\r\n \"IsIncludeImage\": true\r\n }\r\n }\r\n\r\n public brochurefilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"SkipCount\": 0,\r\n \"TakeCount\": 8,\r\n \"FilterParameters\": {\r\n \"Keyword\": \"\",\r\n \"Name\": \"\",\r\n \"Categories\": \"\",\r\n \"Departments\": \"\",\r\n \"SubDepartments\": \"\",\r\n \"Manufacturers\": \"\",\r\n \"Publishers\": \"\",\r\n \"BrochureId\": null,\r\n \"MinPrice\": null,\r\n \"MaxPrice\": null,\r\n \"IsIncludeImage\": true\r\n }\r\n }\r\n\r\n constructor(private brochureService: BrochureService,\r\n private productService: ProductService,\r\n private translateService: TranslateService,\r\n private roleService: RoleService,\r\n private shoppingListService: ShoppingListService,\r\n private userService: AuthenticationService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private staticContentService: StaticContentService,\r\n private _formBuilder: FormBuilder,\r\n private _route: ActivatedRoute,\r\n private _location: Location) { }\r\n\r\n ngOnInit(): void {\r\n // this.interval = setInterval(() => {\r\n // var staticContent = this.staticContentService.staticContent;\r\n // if (!!staticContent) {\r\n // this.staticContentService.loadAllCssJs();\r\n // this.image = this.staticContentService.getImageForPsModule();\r\n // clearInterval(this.interval);\r\n // }\r\n // }, 200);\r\n\r\n this.offerProductForm = this._formBuilder.group({\r\n category: [''],\r\n activeList: [''],\r\n activeListLoggedOut: [''],\r\n });\r\n\r\n\r\n var mode = this._route.snapshot.paramMap.get('mode');\r\n if(mode == \"products\"){\r\n this.isBrochuresSelected = false;\r\n }\r\n\r\n this.setLoggedOutLists();\r\n\r\n // translate service isn't setting the correct language on init\r\n setTimeout(()=>{ \r\n this.getAllBrochuresOrProducts();\r\n this.getAllShoppingLists();\r\n }, 2000);\r\n\r\n }\r\n\r\n public filterProductsByName() {\r\n if (this.isBrochuresSelected) {\r\n if (!this.searchText || this.searchText == '') {\r\n this.productFilter.FilterParameters.Keyword = '';\r\n this.getBrochuresByFilter();\r\n return;\r\n }\r\n\r\n this.productFilter.FilterParameters.Keyword = this.searchText;\r\n this.loading = true;\r\n this.productService.getAll(this.productFilter).subscribe(x => {\r\n this.products = x.productList;\r\n this.categories = x.applicableCategories;\r\n const brochureIds = this.products?.map(x => x.brochureId);\r\n if (!!brochureIds && brochureIds.length > 0) {\r\n this.brochureService.getByFilter(this.brochurefilter).subscribe(y => {\r\n y.brochureList.forEach(element => {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n //Set image width and height\r\n let img = new Image();\r\n\r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n });\r\n this.brochures = y.brochureList.filter(z => brochureIds.includes(z.brochureId));\r\n this.loading = false;\r\n });\r\n }\r\n else {\r\n this.brochures = [];\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n else {\r\n if (!this.searchText || this.searchText == '') {\r\n this.productFilter.FilterParameters.Keyword = '';\r\n this.getProductsByFilter();\r\n return;\r\n }\r\n\r\n this.productFilter.FilterParameters.Keyword = this.searchText;\r\n this.getProductsByFilter();\r\n }\r\n }\r\n\r\n public getAllBrochuresOrProducts(): void {\r\n if (this.isBrochuresSelected) {\r\n this.resetBrochureFilter();\r\n this.getBrochuresByFilter(true);\r\n }\r\n else {\r\n this.resetProductFilter();\r\n this.getProductsByFilter(true);\r\n }\r\n }\r\n\r\n public updateByCategories(event: any): void {\r\n if (this.isBrochuresSelected) {\r\n this.brochurefilter.FilterParameters.Categories = String(event.value.categoryId);\r\n this.filterProductsByName();\r\n }\r\n else {\r\n this.productFilter.FilterParameters.Categories = String(event.value.categoryId);\r\n this.filterProductsByName();\r\n }\r\n }\r\n\r\n public navigateToViewList(): void {\r\n var id = this.isLoggedIn() ? this.activeList.shoppingListId : null\r\n var loggedOutList = this.isLoggedIn() ? null : this.activeListLoggedOut;\r\n if (!id && !loggedOutList)\r\n {\r\n return;\r\n }\r\n\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/shopping-services/view-shopping-list/${id}`, { list: JSON.stringify(loggedOutList) }]);\r\n }\r\n\r\n public navigateToEditLists(): void {\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/shopping-services/view-all-shopping-lists/`]);\r\n }\r\n\r\n private getBrochuresByFilter(initialLoad: boolean = false): void {\r\n this.loading = true;\r\n this.brochureService.getByFilter(this.brochurefilter).subscribe(x => {\r\n if ((initialLoad && x.brochureList.length < 8) || (x.brochureList.length % 8 !== 0)) {\r\n this.hideViewMore = true;\r\n }\r\n if (!this.categories || this.categories.length == 0)\r\n {\r\n this.categories = x.applicableCategories;\r\n }\r\n x.brochureList.forEach(element => {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n //Set image width and height\r\n let img = new Image();\r\n\r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n });\r\n this.brochures = x.brochureList;\r\n // if (this.lastResultsLength === this.brochures.length || this.brochures.length === 0) {\r\n // this.hideViewMore = true;\r\n // }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public onImageLoad(obj: any): void {\r\n //Set image width and height\r\n let img = new Image();\r\n\r\n img.src = obj.imageUrl;\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n obj.width = img.naturalWidth * ratio;\r\n obj.height = img.naturalHeight * ratio;\r\n }\r\n\r\n private getProductsByFilter(initialLoad: boolean = false, isReset: boolean = false): void {\r\n this.loading = true;\r\n this.productService.getAll(this.productFilter).subscribe(x => {\r\n if (!this.categories || this.categories.length == 0)\r\n {\r\n this.categories = x.applicableCategories;\r\n }\r\n if ((initialLoad && x.productList.length < 8) || (x.productList.length % 8 !== 0)) {\r\n this.hideViewMore = true;\r\n }\r\n x.productList.forEach(element => {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n //Set image width and height\r\n let img = new Image();\r\n\r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n });\r\n this.products = x.productList;\r\n if (!isReset && (this.lastResultsLength === this.products.length || this.products.length === 0)) {\r\n this.hideViewMore = true;\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public reset(brochureId?: Number): void {\r\n this.hideViewMore = false;\r\n this.products = [];\r\n this.brochures = [];\r\n this.categories = [];\r\n this.resetProductFilter();\r\n this.resetBrochureFilter();\r\n this.searchText = '';\r\n this.offerProductForm.get(\"category\").reset();\r\n this.loading = true;\r\n if (this.isBrochuresSelected) {\r\n this.getBrochuresByFilter();\r\n }\r\n else {\r\n if (brochureId) {\r\n this.productFilter.FilterParameters.BrochureId = String(brochureId);\r\n }\r\n this.getProductsByFilter(false, true);\r\n }\r\n }\r\n\r\n public viewBrochure(brochureGuid: string, index: any): void {\r\n this.selectedBrochureIndex = index;\r\n this.loadingBrochure = true;\r\n const latterPart = brochureGuid.split('Brochures/')[1];\r\n const formerPart = latterPart.split('/')[0];\r\n this.brochureService.getPDF(formerPart).subscribe(x => {\r\n this.pdfContent = this.base64ToArrayBuffer(x.content);\r\n this.showPDF = true;\r\n const dialogRef = this.dialog.open(BrochureDialogComponent, {\r\n height: '95vh',\r\n width: '95vw',\r\n maxWidth: '95vw',\r\n data: {\r\n pdfSource: this.pdfContent,\r\n }\r\n });\r\n this.loadingBrochure = false;\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n });\r\n }\r\n\r\n public viewBrochureByProduct(brochureId: string, pageIndex: number, index: any): void {\r\n this.selectedBrochureIndex = index;\r\n this.loadingBrochure = true;\r\n const filterById = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"FilterParameters\": {\r\n \"Keyword\": \"\",\r\n \"Name\": \"\",\r\n \"Categories\": \"\",\r\n \"Departments\": \"\",\r\n \"SubDepartments\": \"\",\r\n \"Manufacturers\": \"\",\r\n \"Publishers\": \"\",\r\n \"BrochureId\": `${brochureId}`,\r\n \"MinPrice\": null,\r\n \"MaxPrice\": null,\r\n \"IsIncludeImage\": true\r\n }\r\n }\r\n this.brochureService.getByFilter(filterById).subscribe(x => {\r\n if (x && x.brochureList.length > 0) {\r\n const brochure = x.brochureList[0];\r\n const brochureThumbPath = brochure.thumbPath;\r\n const latterPart = brochureThumbPath.split('Brochures/')[1];\r\n const formerPart = latterPart.split('/')[0];\r\n this.brochureService.getPDF(formerPart).subscribe(x => {\r\n this.pdfContent = this.base64ToArrayBuffer(x.content);\r\n this.showPDF = true;\r\n const dialogRef = this.dialog.open(BrochureDialogComponent, {\r\n height: '95vh',\r\n width: '95vw',\r\n maxWidth: '95vw',\r\n data: {\r\n pdfSource: this.pdfContent,\r\n pageIndex: pageIndex\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n this.loadingBrochure = false;\r\n });\r\n }\r\n else {\r\n this.loadingBrochure = false;\r\n }\r\n });\r\n }\r\n\r\n public onBrochureProductChange(setBrochureView: boolean, brochureId?: number): void {\r\n \r\n const url = this.router.createUrlTree(\r\n [\r\n this._route.snapshot.paramMap.get('lang'),\r\n this._route.snapshot.paramMap.get('role'),\r\n \"shopping-services\",\r\n \"offers-products\", \r\n setBrochureView ? \"brochures\" : \"products\"\r\n ], {}).toString();\r\n this._location.go(url);\r\n if (this.isBrochuresSelected === setBrochureView) {\r\n this.reset();\r\n }\r\n\r\n this.isBrochuresSelected = setBrochureView;\r\n this.reset(brochureId);\r\n }\r\n\r\n public createShareLink(): void {\r\n var stringBuilder = \"\";\r\n if (this.activeList && this.activeList.productItemNames.length > 0) {\r\n stringBuilder = stringBuilder.concat(`${this.activeList.shoppingListName}:\\n`);\r\n this.activeList.productItemNames.forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n else if (this.activeListLoggedOut && this.activeListLoggedOut.products)\r\n {\r\n stringBuilder = stringBuilder.concat(`${this.activeListLoggedOut.name}:\\n`);\r\n this.activeListLoggedOut.products.map(z => z.productName).forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n\r\n if (this.isLoggedIn()) {\r\n const shareFilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"Role\": `${this.roleService.role()}`,\r\n \"ShoppingListId\": this.activeList.shoppingListId\r\n }\r\n\r\n this.shoppingListService.shareList(shareFilter).subscribe(x => {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: x,\r\n plainText: stringBuilder\r\n }\r\n });\r\n });\r\n }\r\n else if (this.activeListLoggedOut && stringBuilder !== \"\")\r\n {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: null,\r\n plainText: stringBuilder\r\n }\r\n })\r\n }\r\n }\r\n\r\n public updateActiveList(event: any): void {\r\n if (this.isLoggedIn()) {\r\n this.getProductsForList(event.value);\r\n }\r\n else {\r\n this.activeListLoggedOut = event.value;\r\n\r\n var shoppingLists = localStorage.getItem(\"shoppingLists\");\r\n if (!!shoppingLists) {\r\n var lists: ShoppingListsLoggedOut = JSON.parse(shoppingLists);\r\n lists.shoppingLists.forEach(x => x.isActive = false);\r\n var indexToUpdate = lists.shoppingLists.findIndex(x => x.name == this.activeListLoggedOut.name);\r\n this.activeListLoggedOut.isActive = true;\r\n\r\n lists.shoppingLists[indexToUpdate] = this.activeListLoggedOut;\r\n localStorage.setItem(\"shoppingLists\", JSON.stringify(lists));\r\n }\r\n\r\n }\r\n }\r\n\r\n public addToActiveList(product: any): void {\r\n if (!this.activeList && !this.activeListLoggedOut) {\r\n this.addNewShoppingList();\r\n return;\r\n }\r\n if (this.isLoggedIn()) {\r\n\r\n const addToListBody = {\r\n \"ShoppingListId\": this.activeList.shoppingListId,\r\n \"ProductId\": product.productId,\r\n \"ItemName\": product.name\r\n }\r\n this.shoppingListService.addToShoppingList(addToListBody).subscribe(x => {\r\n this.getAllShoppingLists();\r\n });\r\n }\r\n else {\r\n if (!this.activeListLoggedOut.products) {\r\n this.activeListLoggedOut.products = [];\r\n }\r\n this.activeListLoggedOut.products.push({ productId: product.productId, productName: product.name, retailerName: product.retailerName, price: product.price, offerUntilDate: product.offerUntilDate });\r\n var shoppingLists = localStorage.getItem(\"shoppingLists\");\r\n if (!!shoppingLists) {\r\n var lists: ShoppingListsLoggedOut = JSON.parse(shoppingLists);\r\n var indexToUpdate = lists.shoppingLists.findIndex(x => x.name == this.activeListLoggedOut.name);\r\n lists.shoppingLists[indexToUpdate] = this.activeListLoggedOut;\r\n localStorage.setItem(\"shoppingLists\", JSON.stringify(lists));\r\n }\r\n }\r\n }\r\n\r\n public removeFromActiveList(product: any): void {\r\n const addToListBody = {\r\n \"ShoppingListId\": this.activeList.shoppingListId,\r\n \"ProductId\": product.productId,\r\n \"ItemName\": product.name\r\n }\r\n this.shoppingListService.addToShoppingList(addToListBody).subscribe(x => {\r\n this.getAllShoppingLists();\r\n });\r\n }\r\n\r\n public addNewShoppingList(): any {\r\n const shoppingDialogref = this.dialog.open(NewShoppingListDialogComponent, {\r\n height: '170px',\r\n width: '580px'\r\n });\r\n\r\n shoppingDialogref.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (this.isLoggedIn()) {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.shoppingLists = x;\r\n const newlyCreatedList = x.find(y => y.shoppingListId == result);\r\n this.getProductsForList(newlyCreatedList);\r\n })\r\n }\r\n else {\r\n this.activeListLoggedOut = result;\r\n //this.setLoggedOutLists();\r\n // if (!this.loggedOutShoppingLists?.shoppingLists)\r\n // {\r\n // this.loggedOutShoppingLists.shoppingLists = [];\r\n // }\r\n var shoppingLists = localStorage.getItem(\"shoppingLists\");\r\n if (!!shoppingLists) {\r\n var lists: ShoppingListsLoggedOut = JSON.parse(shoppingLists);\r\n this.loggedOutShoppingLists = lists;\r\n \r\n var list = this.loggedOutShoppingLists.shoppingLists.find(x => x.name == this.activeListLoggedOut.name);\r\n this.offerProductForm.get('activeListLoggedOut').setValue(list);\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n private setLoggedOutLists() {\r\n var shoppingLists = localStorage.getItem(\"shoppingLists\");\r\n if (!!shoppingLists) {\r\n var lists: ShoppingListsLoggedOut = JSON.parse(shoppingLists);\r\n this.loggedOutShoppingLists = lists;\r\n \r\n var activeLoggedOutList = this.loggedOutShoppingLists.shoppingLists?.find(x => x.isActive);\r\n this.activeListLoggedOut = activeLoggedOutList;\r\n this.offerProductForm.get('activeListLoggedOut').setValue(activeLoggedOutList);\r\n }\r\n }\r\n\r\n public setProductImgWidth(product: any) {\r\n let img = new Image();\r\n\r\n img.src = product.imageUrl;\r\n\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n return (img.naturalWidth * ratio);\r\n }\r\n\r\n public setProductImgHeight(product: any) {\r\n let img = new Image();\r\n\r\n img.src = product.imageUrl;\r\n var ratio = Math.min(178 / img.naturalWidth, 200 / img.naturalHeight);\r\n return (img.height * ratio);\r\n }\r\n\r\n private resetBrochureFilter(): void {\r\n this.brochurefilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"SkipCount\": 0,\r\n \"TakeCount\": 8,\r\n \"FilterParameters\": {\r\n \"Keyword\": \"\",\r\n \"Name\": \"\",\r\n \"Categories\": \"\",\r\n \"Departments\": \"\",\r\n \"SubDepartments\": \"\",\r\n \"Manufacturers\": \"\",\r\n \"Publishers\": \"\",\r\n \"BrochureId\": null,\r\n \"MinPrice\": null,\r\n \"MaxPrice\": null,\r\n \"IsIncludeImage\": true\r\n }\r\n }\r\n }\r\n\r\n private resetProductFilter(): void {\r\n this.productFilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"SkipCount\": 0,\r\n \"TakeCount\": 8,\r\n \"FilterParameters\": {\r\n \"Keyword\": \"\",\r\n \"Name\": \"\",\r\n \"Categories\": \"\",\r\n \"Departments\": \"\",\r\n \"SubDepartments\": \"\",\r\n \"Manufacturers\": \"\",\r\n \"Publishers\": \"\",\r\n \"BrochureId\": null,\r\n \"MinPrice\": null,\r\n \"MaxPrice\": null,\r\n \"IsIncludeImage\": true\r\n }\r\n }\r\n }\r\n\r\n private base64ToArrayBuffer(base64): Uint8Array {\r\n let binary_string = window.atob(base64);\r\n let len = binary_string.length;\r\n let bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes;\r\n }\r\n\r\n private getAllShoppingLists(): void {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.shoppingLists = x;\r\n this.activeList = this.shoppingLists.find(y => y.isActive);\r\n this.getProductsForList(this.activeList);\r\n });\r\n }\r\n\r\n private getProductsForList(list: any): void {\r\n this.shoppingListService.setActiveList(list.shoppingListId).subscribe(y => {\r\n this.activeList = list;\r\n this.shoppingListService.getProductsForListNoImage(list.shoppingListId).subscribe(z => {\r\n this.activeList.productItemNames = z.map(a => a.productItemName);\r\n this.activeList.productIds = z.map(a => a.productId);\r\n this.offerProductForm.get('activeList').setValue(this.activeList);\r\n })\r\n })\r\n }\r\n\r\n public shoppingListIncludesItem(productId: any): boolean {\r\n if (this.isLoggedIn()) {\r\n return this.activeList?.productIds.includes(productId);\r\n }\r\n var contains = this.activeListLoggedOut?.products?.map(x => x.productId).includes(productId);\r\n return contains;\r\n }\r\n\r\n public isLoggedIn(): boolean {\r\n return this.userService.isLoggedIn();\r\n }\r\n\r\n public viewMore(): void {\r\n if (this.isBrochuresSelected) {\r\n this.lastResultsLength = this.brochures.length;\r\n this.brochurefilter.TakeCount += 8;\r\n this.getBrochuresByFilter();\r\n }\r\n else {\r\n this.lastResultsLength = this.products.length;\r\n this.productFilter.TakeCount += 8;\r\n this.getProductsByFilter();\r\n }\r\n }\r\n}","
\r\n \r\n

{{'bera.brochures_products.title' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{category.categoryName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{brochure.publisherName}}

\r\n
{{'bera.brochures.offer_details' | translate}}
\r\n
{{'bera.brochures.from' | translate}}: {{brochure.validStart | date:'dd.MM.yy'}}
\r\n
{{'bera.brochures.until' | translate}}: {{brochure.validEnd | date:'dd.MM.yy'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{product.name}}

\r\n
{{'bera.brochures.price' | translate}}
\r\n
Kr. {{product.price | currency: 'DKK':''}}
\r\n \r\n
{{'bera.brochures.offer_details' | translate}}
\r\n
{{'bera.brochures.until' | translate}} {{product.offerUntilDate | date:'dd.MM.yy'}}
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'bera.products.no_products_found' | translate}}

\r\n
\r\n
\r\n

{{'bera.brochures.no_brochures_found' | translate}}

\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'bera.brochures.shopping_list' | translate}} ({{(activeList?.itemsCount)}})\r\n \r\n \r\n {{shoppingList.shoppingListName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'bera.brochures.shopping_list' | translate}} ({{!!activeListLoggedOut?.products ? activeListLoggedOut?.products.length : 0}})\r\n \r\n \r\n {{loggedList.name}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BrochureService {\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({'Content-Type': 'application/json'})\r\n }\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n // public saveToAddressBook(address: any): Observable {\r\n // return this.httpClient.post(`${environment.beraUrl}/api/AddressBook`, address)\r\n // .pipe(map((data: any) => {\r\n // return data;\r\n // }));\r\n // }\r\n\r\n public getByFilter(filter: any): Observable {\r\n return this.httpClient.post(`${environment.beraUrl}/api/Bera/brochures`, filter, this.httpOptions);\r\n\r\n }\r\n\r\n public getPDF(guid: string): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/brochurepdf/${guid}`);\r\n }\r\n\r\n // public getPostcodes(): Observable {\r\n // return this.httpClient.get(`${environment.apiUrl}/api/AddressBook/Postcodes`);\r\n // }\r\n\r\n // public update(address: any): Observable\r\n // {\r\n // return this.httpClient.put(`${environment.apiUrl}/api/AddressBook`, address);\r\n // }\r\n\r\n // public favouriteAddress(addressId: string, favourite: boolean): Observable\r\n // {\r\n // return this.httpClient.put(`${environment.apiUrl}/api/AddressBook/${addressId}?IsFavourite=${favourite}`, null);\r\n // }\r\n\r\n // public delete(addressId: string): Observable\r\n // {\r\n // return this.httpClient.delete(`${environment.apiUrl}/api/AddressBook/${addressId}`);\r\n // }\r\n\r\n // this.http.get(`/Authentication/MinlykilLogin`, { responseType: 'text'}).subscribe( \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { environment } from '../../../environments/environment'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService {\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({'Content-Type': 'application/json'})\r\n }\r\n\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n public getAll(filter: any): Observable {\r\n return this.httpClient.post(`${environment.beraUrl}/api/Bera/products`, filter, this.httpOptions);\r\n }\r\n\r\n public getAllCategories(languageCode?: string): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/categories/${languageCode}`);\r\n }\r\n\r\n public setIsBought(filter): Observable\r\n {\r\n return this.httpClient.put(`${environment.apiUrl}/api/Bera/slitemisbought`, filter);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { environment } from '../../../environments/environment'\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShoppingListService {\r\n\r\n httpOptionsPlain = {\r\n headers: new HttpHeaders({\r\n 'Accept': 'text/plain',\r\n 'Content-Type': 'text/plain'\r\n }),\r\n 'responseType': 'text'\r\n };\r\n\r\n constructor(private httpClient: HttpClient, private translateService: TranslateService) {\r\n }\r\n\r\n // public saveToAddressBook(address: any): Observable {\r\n // return this.httpClient.post(`${environment.beraUrl}/api/AddressBook`, address)\r\n // .pipe(map((data: any) => {\r\n // return data;\r\n // }));\r\n // }\r\n\r\n public getAll(): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/sluserlists`);\r\n }\r\n\r\n public getSharedShoppingList(id: any): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/slsharedproductlist/${id}/${this.translateService.currentLang}/true`);\r\n }\r\n\r\n public getProductsForListNoImage(listId: any): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/slproductlist/${listId}/${this.translateService.currentLang}/false`);\r\n }\r\n\r\n public getProductsForListWithImage(listId: any): Observable {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/slproductlist/${listId}/${this.translateService.currentLang}/true`);\r\n }\r\n\r\n public create(name: string): Observable {\r\n return this.httpClient.post(`${environment.beraUrl}/api/Bera/slcreate/${name}`, null);\r\n }\r\n\r\n // public getPostcodes(): Observable {\r\n // return this.httpClient.get(`${environment.apiUrl}/api/AddressBook/Postcodes`);\r\n // }\r\n\r\n public shareList(filter: any): Observable\r\n {\r\n return this.httpClient.put(`${environment.beraUrl}/api/Bera/slshare`, filter, {responseType: 'text'});\r\n }\r\n\r\n public setActiveList(listId: any): Observable\r\n {\r\n return this.httpClient.put(`${environment.beraUrl}/api/Bera/slsetactive/${listId}`, null);\r\n }\r\n\r\n public addToShoppingList(body: any): Observable\r\n {\r\n return this.httpClient.post(`${environment.beraUrl}/api/Bera/sladditem`, body);\r\n }\r\n\r\n public removeItemFromShoppingList(shoppingListId: any, productId: any): Observable\r\n {\r\n return this.httpClient.delete(`${environment.beraUrl}/api/Bera/slremoveitem/${shoppingListId}/${productId}`);\r\n }\r\n \r\n public deleteShoppingList(shoppingListId: any): Observable\r\n {\r\n return this.httpClient.delete(`${environment.beraUrl}/api/Bera/slremove/${shoppingListId}`);\r\n }\r\n\r\n public getProductImage(productId: any): Observable\r\n {\r\n return this.httpClient.get(`${environment.beraUrl}/api/Bera/productimage/${productId}`, {responseType: 'text'});\r\n }\r\n\r\n // public favouriteAddress(addressId: string, favourite: boolean): Observable\r\n // {\r\n // return this.httpClient.put(`${environment.apiUrl}/api/AddressBook/${addressId}?IsFavourite=${favourite}`, null);\r\n // }\r\n\r\n // public delete(addressId: string): Observable\r\n // {\r\n // return this.httpClient.delete(`${environment.apiUrl}/api/AddressBook/${addressId}`);\r\n // }\r\n\r\n // this.http.get(`/Authentication/MinlykilLogin`, { responseType: 'text'}).subscribe( \r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthGuard } from '../shared/guards/auth.guard';\r\nimport { OffersProductsComponent } from './offers-products/offers-products.component';\r\nimport { ViewAllShoppingListsComponent } from './view-all-shopping-lists/view-all-shopping-lists.component';\r\nimport { ViewShoppingListComponent } from './view-shopping-list/view-shopping-list.component';\r\nimport { ViewSharedShoppingListComponent } from './view-shared-shopping-list/view-shared-shopping-list.component';\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role/shopping-services/offers-products', component: OffersProductsComponent},\r\n { path: ':lang/:role/shopping-services/offers-products/:mode', component: OffersProductsComponent},\r\n { path: ':lang/:role/shopping-services/view-shopping-list/:shoppingListId', component: ViewShoppingListComponent},\r\n { path: ':lang/:role/shopping-services/view-all-shopping-lists', component: ViewAllShoppingListsComponent},\r\n { path: ':lang/:role/shoppinglist/shared/:sharedId', component: ViewSharedShoppingListComponent}\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: 'externalUrlRedirectResolver',\r\n useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) =>\r\n {\r\n window.location.href = (route.data as any).externalUrl;\r\n }\r\n }\r\n]\r\n})\r\nexport class ShoppingServicesRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShoppingServicesRoutingModule } from './shopping-services-routing.module';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { OffersProductsComponent } from './offers-products/offers-products.component';\r\nimport { BrochureDialogComponent } from './brochure-dialog/brochure-dialog.component';\r\nimport { NewShoppingListDialogComponent } from './new-shopping-list-dialog/new-shopping-list-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { PdfJsViewerModule } from 'ng2-pdfjs-viewer';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport { GeneratedCodeDialogComponent } from './generated-code-dialog/generated-code-dialog/generated-code-dialog.component';\r\nimport { ViewShoppingListComponent } from './view-shopping-list/view-shopping-list.component';\r\nimport { ViewAllShoppingListsComponent } from './view-all-shopping-lists/view-all-shopping-lists.component';\r\nimport { ViewSharedShoppingListComponent } from './view-shared-shopping-list/view-shared-shopping-list.component';\r\nimport { ManualItemDialogComponent } from './manual-item-dialog/manual-item-dialog.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CreateShoppingListsDialogComponent } from './create-shopping-lists-dialog/create-shopping-lists-dialog.component';\r\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@NgModule({\r\n declarations: [\r\n OffersProductsComponent,\r\n BrochureDialogComponent,\r\n NewShoppingListDialogComponent,\r\n GeneratedCodeDialogComponent,\r\n ViewShoppingListComponent,\r\n ViewAllShoppingListsComponent,\r\n ViewSharedShoppingListComponent,\r\n ManualItemDialogComponent,\r\n CreateShoppingListsDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgbModule,\r\n PdfJsViewerModule,\r\n ShoppingServicesRoutingModule,\r\n ClipboardModule,\r\n TranslateModule,\r\n BrowserAnimationsModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatStepperModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatCardModule,\r\n MatIconModule,\r\n MatProgressBarModule,\r\n SharedModule,\r\n MatOptionModule,\r\n MatAutocompleteModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatDialogModule\r\n ]\r\n})\r\nexport class ShoppingServicesModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { GeneratedCodeDialogComponent } from '../generated-code-dialog/generated-code-dialog/generated-code-dialog.component';\r\nimport { NewShoppingListDialogComponent } from '../new-shopping-list-dialog/new-shopping-list-dialog.component';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { AuthenticationService } from '../../account/services/authentication.service';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\nimport * as _ from \"lodash\";\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-view-all-shopping-lists',\r\n templateUrl: './view-all-shopping-lists.component.html',\r\n styleUrls: ['./view-all-shopping-lists.component.scss']\r\n})\r\nexport class ViewAllShoppingListsComponent implements OnInit {\r\n\r\n public allShoppingLists: Array;\r\n public activeList: any;\r\n public allFilteredList: Array;\r\n public allLoggedOutLists: ShoppingListsLoggedOut;\r\n public filteredListsLoggedOut: ShoppingListsLoggedOut;\r\n public activeLoggedOutList: any;\r\n\r\n constructor(private authService: AuthenticationService, private shoppingListService: ShoppingListService, public translateService: TranslateService, public roleService: RoleService, public dialog: MatDialog, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.isLoggedIn())\r\n {\r\n this.getAllShoppingListsInit();\r\n }\r\n else {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n this.allLoggedOutLists = JSON.parse(loggedOutLists);\r\n this.filteredListsLoggedOut = this.allLoggedOutLists;\r\n console.log(this.allLoggedOutLists)\r\n //var indexToUpdate = shoppingListsObj.shoppingLists.findIndex(x => x.name == this.loggedOutList.name);\r\n // this.allLoggedOutLists.shoppingLists[indexToUpdate] = this.loggedOutList;\r\n // localStorage.setItem(\"shoppingLists\", JSON.stringify(this.allLoggedOutLists));\r\n }\r\n }\r\n }\r\n\r\n public updateActiveList(event: any): void {\r\n if (this.isLoggedIn())\r\n {\r\n if (event.value.shoppingListName === \"All\")\r\n {\r\n this.getAllShoppingLists();\r\n return;\r\n }\r\n else {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.allFilteredList = x;\r\n this.allFilteredList.forEach(y => {\r\n this.shoppingListService.getProductsForListNoImage(y.shoppingListId).subscribe(z => {\r\n y.productItemNames = z.map(a => a.productItemName);\r\n y.productIds = z.map(a => a.productId);\r\n });\r\n });\r\n this.allFilteredList = this.allFilteredList.filter(x => x.shoppingListId === event.value.shoppingListId);\r\n console.log(this.allFilteredList);\r\n this.getProductsForList(this.activeList);\r\n });\r\n }\r\n }\r\n else {\r\n this.activeLoggedOutList = event.value;\r\n console.log(this.filteredListsLoggedOut);\r\n console.log(this.allLoggedOutLists);\r\n this.filteredListsLoggedOut = _.cloneDeep(this.allLoggedOutLists);\r\n this.filteredListsLoggedOut.shoppingLists = this.filteredListsLoggedOut.shoppingLists.filter(x => x.name == event.value.name);\r\n console.log(this.filteredListsLoggedOut);\r\n console.log(this.allLoggedOutLists);\r\n }\r\n }\r\n\r\n public removeShoppingList(listId: any): void {\r\n this.shoppingListService.deleteShoppingList(listId).subscribe(x => {\r\n this.getAllShoppingListsInit();\r\n });\r\n }\r\n\r\n public removeShoppingListLoggedOut(list: any) {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n var shoppingListsObj = JSON.parse(loggedOutLists);\r\n shoppingListsObj.shoppingLists.forEach( (item, index) => {\r\n if(item.name === list.name) shoppingListsObj.shoppingLists.splice(index,1);\r\n });\r\n localStorage.setItem(\"shoppingLists\", JSON.stringify(shoppingListsObj));\r\n if (shoppingListsObj.shoppingLists.length === 0)\r\n {\r\n localStorage.removeItem(\"shoppingLists\");\r\n }\r\n this.allLoggedOutLists = shoppingListsObj;\r\n this.filteredListsLoggedOut = shoppingListsObj;\r\n }\r\n }\r\n\r\n // public createShareLink(list: any): void {\r\n // var stringBuilder = \"\";\r\n // if (list && list.productItemNames.length > 0)\r\n // {\r\n // stringBuilder = stringBuilder.concat(`${list.shoppingListName}:\\n`);\r\n // list.productItemNames.forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n // }\r\n\r\n // const shareFilter = {\r\n // \"LanguageCode\": `${this.translateService.currentLang}`,\r\n // \"Role\": `${this.roleService.role()}`,\r\n // \"ShoppingListId\": list.shoppingListId\r\n // }\r\n\r\n // this.shoppingListService.shareList(shareFilter).subscribe(x => {\r\n // console.log(x);\r\n // const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n // height: '600px',\r\n // width: '730px',\r\n // data: {\r\n // link: x,\r\n // plainText: stringBuilder\r\n // }\r\n // });\r\n // });\r\n // }\r\n\r\n public createShareLink(list: any): void {\r\n var stringBuilder = \"\";\r\n if (this.isLoggedIn() && list && list.productItemNames.length > 0)\r\n {\r\n stringBuilder = stringBuilder.concat(`${list.shoppingListName}:\\n`);\r\n list.productItemNames.forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n else\r\n {\r\n stringBuilder = stringBuilder.concat(`${list.name}:\\n`);\r\n list.products.map(z => z.productName).forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n\r\n if (this.isLoggedIn()) {\r\n const shareFilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"Role\": `${this.roleService.role()}`,\r\n \"ShoppingListId\": this.activeList.shoppingListId\r\n }\r\n\r\n this.shoppingListService.shareList(shareFilter).subscribe(x => {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: x,\r\n plainText: stringBuilder\r\n }\r\n });\r\n });\r\n }\r\n else if (list && stringBuilder !== \"\")\r\n {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: null,\r\n plainText: stringBuilder\r\n }\r\n })\r\n }\r\n }\r\n\r\n // public addNewShoppingList(): any {\r\n // const shoppingDialogref = this.dialog.open(NewShoppingListDialogComponent, {\r\n // height: '170px',\r\n // width: '580px'\r\n // });\r\n\r\n // shoppingDialogref.afterClosed().subscribe(result => {\r\n // if (result)\r\n // {\r\n // this.getAllShoppingListsInit();\r\n // }\r\n // });\r\n // }\r\n\r\n public addNewShoppingList(): any {\r\n const shoppingDialogref = this.dialog.open(NewShoppingListDialogComponent, {\r\n height: '170px',\r\n width: '580px'\r\n });\r\n\r\n shoppingDialogref.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (this.isLoggedIn()) {\r\n this.getAllShoppingListsInit();\r\n }\r\n else {\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n this.allLoggedOutLists = JSON.parse(loggedOutLists);\r\n this.filteredListsLoggedOut = this.allLoggedOutLists;\r\n console.log(this.allLoggedOutLists)\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n private getAllShoppingLists(): void {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.allFilteredList = x;\r\n this.allFilteredList.forEach(y => {\r\n this.shoppingListService.getProductsForListNoImage(y.shoppingListId).subscribe(z => {\r\n y.productItemNames = z.map(a => a.productItemName);\r\n y.productIds = z.map(a => a.productId);\r\n });\r\n });\r\n console.log(this.allFilteredList);\r\n this.activeList = this.allShoppingLists[0];\r\n });\r\n }\r\n\r\n private getAllShoppingListsInit(): void {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.allFilteredList = x;\r\n this.allFilteredList.forEach(y => {\r\n this.shoppingListService.getProductsForListNoImage(y.shoppingListId).subscribe(z => {\r\n y.productItemNames = z.map(a => a.productItemName);\r\n y.productIds = z.map(a => a.productId);\r\n });\r\n });\r\n console.log(this.allFilteredList);\r\n this.allShoppingLists = [{shoppingListName: \"All\"}];\r\n this.allShoppingLists = this.allShoppingLists.concat(x);\r\n this.activeList = this.allShoppingLists[0];\r\n });\r\n }\r\n\r\n private getProductsForList(list: any): void {\r\n this.shoppingListService.setActiveList(list.shoppingListId).subscribe(y => {\r\n })\r\n }\r\n\r\n public navigateToViewList(list: any): void {\r\n var id = this.isLoggedIn() ? list.shoppingListId : null\r\n var loggedOutList = this.isLoggedIn() ? null : list;\r\n if (!id && !loggedOutList)\r\n {\r\n return;\r\n }\r\n\r\n this.router.navigate([`${this.translateService.currentLang}/${this.roleService.role()}/shopping-services/view-shopping-list/${id}`, { list: JSON.stringify(loggedOutList) }]);\r\n }\r\n\r\n public isLoggedIn() {\r\n return this.authService.isLoggedIn();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n

{{'bera.edit_lists.title' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{shoppingList.name}}\r\n \r\n \r\n \r\n \r\n {{shoppingList.shoppingListName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{shoppingList.shoppingListName}}

\r\n
\r\n {{'bera.edit_lists.date_created' | translate}} {{shoppingList.createdOn | date:'dd.MM.yy'}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{shoppingList.name}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\nimport { ShoppingList } from '../models/ShoppingList';\r\n\r\n@Component({\r\n selector: 'app-view-shared-shopping-list',\r\n templateUrl: './view-shared-shopping-list.component.html',\r\n styleUrls: ['./view-shared-shopping-list.component.scss']\r\n})\r\nexport class ViewSharedShoppingListComponent implements OnInit {\r\n\r\n shoppingList: any;\r\n isLoading: boolean= false;\r\n public groupedProductsByRetailer: Array = []\r\n\r\n constructor(private _route: ActivatedRoute, private shoppingListService: ShoppingListService) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n const sharedLinkId = this._route.snapshot.paramMap.get('sharedId');\r\n this.shoppingListService.getSharedShoppingList(sharedLinkId).subscribe(x => {\r\n this.shoppingList = x;\r\n x.products.forEach(element => {\r\n if (element.imageData) {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n let img = new Image();\r\n\r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n }\r\n else {\r\n element.imageUrl = \"/assets/icons/shopping-list/No-Image-Placeholder.png\";\r\n }\r\n });\r\n const grouped = this.groupBy(x.products, 'retailerName');\r\n for (let retailer of Object.entries(grouped)) {\r\n this.groupedProductsByRetailer.push(retailer);\r\n }\r\n this.isLoading = false;\r\n }, (error) => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n private groupBy(xs, prop) {\r\n var grouped = {};\r\n for (var i = 0; i < xs.length; i++) {\r\n var p = xs[i][prop];\r\n if (!grouped[p]) { grouped[p] = []; }\r\n grouped[p].push(xs[i]);\r\n }\r\n return grouped;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n

{{'bera.shared_list.title' | translate}} - {{shoppingList.shoppingListName}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{'bera.shared_list.manual_items' | translate}}\r\n {{retailer[0]}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{retailerProduct.productItemName}}

\r\n

{{retailerProduct.productName}}

\r\n
\r\n {{'bera.brochures.price' | translate}} Kr. {{retailerProduct.price}}\r\n
\r\n {{'bera.shared_list.offer_details_until' | translate}} {{retailerProduct.offerUntilDate | date:'dd.MM.yy'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { GeneratedCodeDialogComponent } from '../generated-code-dialog/generated-code-dialog/generated-code-dialog.component';\r\nimport { ManualItemDialogComponent } from '../manual-item-dialog/manual-item-dialog.component';\r\nimport { ProductService } from '../services/product.service';\r\nimport { ShoppingListService } from '../services/shopping-list-service';\r\nimport { ShoppingList } from '../models/ShoppingList';\r\nimport { AuthenticationService } from '../../account/services/authentication.service';\r\nimport { ShoppingListsLoggedOut } from '../models/ShoppingListLoggedOut';\r\nimport { ShoppingListProduct } from '../models/ShoppingListProduct';\r\n\r\n@Component({\r\n selector: 'app-view-shopping-list',\r\n templateUrl: './view-shopping-list.component.html',\r\n styleUrls: ['./view-shopping-list.component.scss']\r\n})\r\nexport class ViewShoppingListComponent implements OnInit {\r\n\r\n public shoppingListId: any;\r\n public shoppingLists: Array;\r\n public groupedProductsByRetailer: Array = []\r\n public activeList: any;\r\n public boughtItems: Array;\r\n public loggedOutList: ShoppingList;\r\n public allLoggedOutLists: ShoppingListsLoggedOut;\r\n \r\n constructor(private _route: ActivatedRoute, private shoppingListService: ShoppingListService,\r\n private productService: ProductService, public translateService: TranslateService, public authService: AuthenticationService,\r\n public roleService: RoleService, public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.loggedOutList = JSON.parse(this._route.snapshot.paramMap.get('list'));\r\n\r\n if (this.loggedOutList)\r\n {\r\n this.getProductsForLoggedOutUser();\r\n } else\r\n {\r\n this.shoppingListId = this._route.snapshot.paramMap.get('shoppingListId');\r\n\r\n this.shoppingListService.getAll().subscribe(z => {\r\n this.shoppingLists = z;\r\n if (this.shoppingListId) {\r\n this.activeList = this.shoppingLists.find(y => String(y.shoppingListId) === this.shoppingListId);\r\n this.shoppingListService.getProductsForListWithImage(this.shoppingListId).subscribe(x => {\r\n x.forEach(element => {\r\n if (element.imageData) {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n let img = new Image();\r\n \r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n }\r\n else {\r\n element.imageUrl = \"/assets/icons/shopping-list/No-Image-Placeholder.png\";\r\n }\r\n });\r\n this.activeList.productItemNames = x.map(a => a.productItemName);\r\n this.activeList.productIds = x.map(a => a.productId);\r\n this.boughtItems = x.filter(x => x.isBought);\r\n const itemsToFilter = x.filter(x => !x.isBought);\r\n \r\n const grouped = this.groupBy(itemsToFilter, 'retailerName');\r\n for (let retailer of Object.entries(grouped)) {\r\n this.groupedProductsByRetailer.push(retailer);\r\n }\r\n console.log(this.groupedProductsByRetailer);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getProductsForLoggedOutUser() {\r\n this.groupedProductsByRetailer = [];\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n this.allLoggedOutLists = JSON.parse(loggedOutLists);\r\n\r\n this.loggedOutList = this.allLoggedOutLists.shoppingLists.find(y => y.name === this.loggedOutList.name);\r\n\r\n this.loggedOutList.products.forEach(product => {\r\n this.shoppingListService.getProductImage(product.productId).subscribe(x => {\r\n if (x) {\r\n product.imageUrl = 'data:image/jpeg;base64,' + x;\r\n let img = new Image();\r\n\r\n img.src = product.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n product.width = img.naturalWidth * ratio;\r\n product.height = img.naturalHeight * ratio;\r\n };\r\n }\r\n });\r\n });\r\n\r\n const grouped = this.groupBy(this.loggedOutList.products, 'retailerName');\r\n for (let retailer of Object.entries(grouped)) {\r\n this.groupedProductsByRetailer.push(retailer);\r\n }\r\n }\r\n\r\n public updateActiveList(event: any): void {\r\n if (this.isLoggedIn())\r\n {\r\n this.getProductsForList(event.value);\r\n }\r\n else {\r\n this.loggedOutList = event.value;\r\n this.getProductsForLoggedOutUser();\r\n }\r\n }\r\n\r\n public setProductImgWidth(product: any) {\r\n let img = new Image();\r\n\r\n img.src = product.imageUrl;\r\n\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n return (img.naturalWidth * ratio);\r\n }\r\n\r\n public setProductImgHeight(product: any) {\r\n let img = new Image();\r\n\r\n if (!product.imageUrl) {\r\n product.imageUrl = \"/assets/icons/shopping-list/No-Image-Placeholder.png\"\r\n }\r\n\r\n img.src = product.imageUrl;\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n return (img.naturalHeight * ratio);\r\n }\r\n\r\n\r\n private groupBy(xs, prop) {\r\n var grouped = {};\r\n for (var i = 0; i < xs.length; i++) {\r\n var p = xs[i][prop];\r\n if (!grouped[p]) { grouped[p] = []; }\r\n grouped[p].push(xs[i]);\r\n }\r\n return grouped;\r\n }\r\n\r\n public createShareLink(): void {\r\n var stringBuilder = \"\";\r\n if (this.activeList && this.activeList.productItemNames.length > 0) {\r\n stringBuilder = stringBuilder.concat(`${this.activeList.shoppingListName}:\\n`);\r\n this.activeList.productItemNames.forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n else if (this.loggedOutList && this.loggedOutList.products)\r\n {\r\n stringBuilder = stringBuilder.concat(`${this.loggedOutList.name}:\\n`);\r\n this.loggedOutList.products.map(z => z.productName).forEach(x => stringBuilder = stringBuilder.concat(`${x}\\n`));\r\n }\r\n\r\n if (this.isLoggedIn()) {\r\n const shareFilter = {\r\n \"LanguageCode\": `${this.translateService.currentLang}`,\r\n \"Role\": `${this.roleService.role()}`,\r\n \"ShoppingListId\": this.activeList.shoppingListId\r\n }\r\n\r\n this.shoppingListService.shareList(shareFilter).subscribe(x => {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: x,\r\n plainText: stringBuilder\r\n }\r\n });\r\n });\r\n }\r\n else if (this.loggedOutList && stringBuilder !== \"\")\r\n {\r\n const shareDialogRef = this.dialog.open(GeneratedCodeDialogComponent, {\r\n height: '600px',\r\n width: '730px',\r\n data: {\r\n link: null,\r\n plainText: stringBuilder\r\n }\r\n })\r\n }\r\n }\r\n\r\n public removeProduct(product: any): void {\r\n if (this.isLoggedIn())\r\n {\r\n this.shoppingListService.removeItemFromShoppingList(this.activeList.shoppingListId, product.shoppingListItemId).subscribe(x => {\r\n this.getProductsForList(this.activeList);\r\n });\r\n }\r\n else {\r\n this.loggedOutList.products = this.loggedOutList.products.filter(x => x !== product);\r\n var loggedOutLists = localStorage.getItem('shoppingLists');\r\n if (!!loggedOutLists) {\r\n var shoppingListsObj = JSON.parse(loggedOutLists);\r\n var indexToUpdate = shoppingListsObj.shoppingLists.findIndex(x => x.name == this.loggedOutList.name);\r\n this.allLoggedOutLists.shoppingLists[indexToUpdate] = this.loggedOutList;\r\n localStorage.setItem(\"shoppingLists\", JSON.stringify(this.allLoggedOutLists));\r\n }\r\n this.getProductsForLoggedOutUser();\r\n\r\n console.log(this.loggedOutList.products);\r\n }\r\n }\r\n\r\n public toggleProductBought(product: any): void {\r\n const filter = {\r\n \"ShoppingListItemId\": product.shoppingListItemId,\r\n \"IsBought\": !product.isBought\r\n }\r\n\r\n this.productService.setIsBought(filter).subscribe(b => {\r\n this.boughtItems = [];\r\n this.shoppingListService.getAll().subscribe(z => {\r\n this.shoppingLists = z;\r\n if (this.shoppingListId) {\r\n this.activeList = this.shoppingLists.find(y => String(y.shoppingListId) === this.shoppingListId);\r\n this.shoppingListService.getProductsForListWithImage(this.shoppingListId).subscribe(x => {\r\n x.forEach(element => {\r\n if (element.imageData) {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n let img = new Image();\r\n \r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n }\r\n else {\r\n element.imageUrl = \"/assets/icons/shopping-list/No-Image-Placeholder.png\";\r\n }\r\n });\r\n this.activeList.productItemNames = x.map(a => a.productItemName);\r\n this.activeList.productIds = x.map(a => a.productId);\r\n this.boughtItems = x.filter(x => x.isBought);\r\n const itemsToFilter = x.filter(x => !x.isBought);\r\n \r\n const grouped = this.groupBy(itemsToFilter, 'retailerName');\r\n this.groupedProductsByRetailer = [];\r\n for (let retailer of Object.entries(grouped)) {\r\n this.groupedProductsByRetailer.push(retailer);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n public addManualItem(): void {\r\n if (this.isLoggedIn())\r\n {\r\n const newItemDialog = this.dialog.open(ManualItemDialogComponent, {\r\n height: '170px',\r\n width: '580px',\r\n data: {\r\n id: this.activeList.shoppingListId\r\n }\r\n });\r\n \r\n newItemDialog.afterClosed().subscribe(result => {\r\n this.shoppingListService.getAll().subscribe(x => {\r\n this.shoppingLists = x;\r\n const activeList = x.find(y => y.shoppingListId == this.activeList.shoppingListId);\r\n this.getProductsForList(activeList);\r\n })\r\n });\r\n }\r\n else {\r\n const newItemDialog = this.dialog.open(ManualItemDialogComponent, {\r\n height: '170px',\r\n width: '580px',\r\n data: {\r\n name: this.loggedOutList.name\r\n }\r\n });\r\n \r\n newItemDialog.afterClosed().subscribe(result => {\r\n this.getProductsForLoggedOutUser();\r\n });\r\n }\r\n }\r\n\r\n private getProductsForList(list: any): void {\r\n this.shoppingListService.setActiveList(list.shoppingListId).subscribe(y => {\r\n this.activeList = list;\r\n this.shoppingListService.getProductsForListWithImage(list.shoppingListId).subscribe(x => {\r\n x.forEach(element => {\r\n if (element.imageData) {\r\n element.imageUrl = 'data:image/jpeg;base64,' + element.imageData;\r\n let img = new Image();\r\n\r\n img.src = element.imageUrl;\r\n img.onload = () => {\r\n var ratio = Math.min(80 / img.naturalWidth, 106 / img.naturalHeight);\r\n element.width = img.naturalWidth * ratio;\r\n element.height = img.naturalHeight * ratio;\r\n }\r\n }\r\n else {\r\n element.imageUrl = \"/assets/icons/shopping-list/No-Image-Placeholder.png\";\r\n }\r\n });\r\n this.activeList.productItemNames = x.map(a => a.productItemName);\r\n this.activeList.productIds = x.map(a => a.productId);\r\n this.boughtItems = x.filter(x => x.isBought);\r\n const itemsToFilter = x.filter(x => !x.isBought);\r\n\r\n const grouped = this.groupBy(itemsToFilter, 'retailerName');\r\n this.groupedProductsByRetailer = [];\r\n for (let retailer of Object.entries(grouped)) {\r\n this.groupedProductsByRetailer.push(retailer);\r\n }\r\n console.log(this.groupedProductsByRetailer);\r\n });\r\n })\r\n }\r\n\r\n public isLoggedIn(): any {\r\n return this.authService.isLoggedIn();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n

{{'bera.edit_list.title' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{shoppingList.shoppingListName}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{shoppingList.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'bera.edit_list.manual_items' | translate}}\r\n {{retailer[0]}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{retailerProduct.productName}}

\r\n
\r\n {{'bera.brochures.price' | translate}} Kr. {{retailerProduct.price}}\r\n
\r\n {{'bera.shared_list.offer_details_until' | translate}} {{retailerProduct.offerUntilDate | date:'dd.MM.yy'}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'bera.edit_list.manual_items' | translate}}\r\n {{retailer[0]}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{retailerProduct.productItemName}}

\r\n
\r\n {{'bera.brochures.price' | translate}} Kr. {{retailerProduct.price}}\r\n
\r\n {{'bera.shared_list.offer_details_until' | translate}} {{retailerProduct.offerUntilDate | date:'dd.MM.yy'}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{'bera.edit_list.bought' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n {{'bera.edit_list.bought_items' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{retailerProduct.productItemName}}

\r\n
\r\n {{'bera.brochures.price' | translate}} Kr. {{retailerProduct.price}}\r\n
\r\n {{'bera.shared_list.offer_details_until' | translate}} {{retailerProduct.offerUntilDate | date:'dd.MM.yy'}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{'bera.edit_list.bought' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","export enum ImportExportServiceType {\r\n ExpressImport,\r\n ExpressExport,\r\n SeaImport,\r\n SeaExport,\r\n AirImport,\r\n AirExport,\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { CustomerShipmentDetail } from \"../entities/CustomerShipmentDetail\";\r\nimport { WaybillService } from \"./waybill.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class WaybillOrderResolver implements Resolve {\r\n\r\n constructor (private waybillService: WaybillService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable| Promise|any {\r\n return this.waybillService.getCustomerShipment(route.paramMap.get('shipmentType'), route.paramMap.get('manifestNo'), route.paramMap.get('waybillNo'));\r\n }\r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../environments/environment';\r\nimport { CustomerShipment } from \"../entities/CustomerShipment\";\r\nimport { CustomerShipmentDetail } from \"../entities/CustomerShipmentDetail\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WaybillService{\r\n constructor(private httpClient: HttpClient) {\r\n }\r\n\r\n getCustomerShipmentList(fromDate?: any, toDate?: any){\r\n if(fromDate && toDate){\r\n return this.httpClient.get(`${environment.apiUrl}/api/Waybill/shipments?fromDate=${fromDate}&toDate=${toDate}`) as Observable;\r\n }\r\n else{\r\n return this.httpClient.get(`${environment.apiUrl}/api/Waybill/shipments`) as Observable;\r\n }\r\n }\r\n\r\n getCustomerShipment(shipmentType: string, manifestNo: string, waybillNo: string){\r\n return this.httpClient.get(`${environment.apiUrl}/api/Waybill/shipmentdetail/${shipmentType}/${manifestNo}/${waybillNo}`) as Observable;\r\n }\r\n\r\n downloadFile(linkId: number){\r\n return this.httpClient.get(`${environment.apiUrl}/api/Waybill/shipmentdocument/${linkId}`, {responseType: 'text'}) as Observable;\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { User } from '../../account/entities/user';\r\nimport { PriceMatrixService } from '../../shared/price-matrix/services/price-matrix.service';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { CustomerShipmentDetail } from '../entities/CustomerShipmentDetail';\r\nimport { CustomerShipmentDocuments } from '../entities/CustomerShipmentDocuments';\r\nimport { WaybillService } from '../services/waybill.service';\r\n\r\n@Component({\r\n selector: 'app-waybill-detail',\r\n templateUrl: './waybill-detail.component.html',\r\n styleUrls: ['./waybill-detail.component.scss']\r\n})\r\nexport class WaybillDetailComponent implements OnInit {\r\n\r\n waybill: CustomerShipmentDetail;\r\n\r\n userDetails: User;\r\n\r\n totalAmount: number;\r\n\r\n countryName: string;\r\n\r\n public pageTitle: string;\r\n\r\n interval: any;\r\n downloadingCDS: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private staticContentService: StaticContentService,\r\n private waybillService: WaybillService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.staticContentService.getPageTitle();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.staticContentService.getPageTitle();\r\n })\r\n\r\n this.waybill = this.route.snapshot.data.waybill;\r\n\r\n this.userDetails = this.route.snapshot.data.userDetails;\r\n\r\n this.getCountryName();\r\n }\r\n\r\n public getCountryName() {\r\n switch (this.translateService.currentLang) {\r\n case \"en\":\r\n this.countryName = `${this.userDetails.country.countryNameEN}`;\r\n break;\r\n case \"fo\":\r\n this.countryName = `${this.userDetails.country.countryNameFO}`;\r\n break;\r\n }\r\n }\r\n\r\n public downloadDocument(file: CustomerShipmentDocuments){\r\n file.isDownloading = true;\r\n this.waybillService.downloadFile(file.linkId).subscribe(x => {\r\n const byteArray = new Uint8Array(atob(x).split('').map(char => char.charCodeAt(0)));\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n // window.open(url);\r\n var link = document.createElement('a');\r\n link.href = url;\r\n link.download = file.fileName;\r\n link.click();\r\n file.isDownloading = false;\r\n }, (error) => {\r\n file.isDownloading = false;\r\n })\r\n }\r\n\r\n public downloadCDS() {\r\n this.downloadingCDS = true;\r\n // this.buyPostageService.downloadCDS(this.order.barcode).subscribe(x => {\r\n // const byteArray = new Uint8Array(atob(x.content).split('').map(char => char.charCodeAt(0)));\r\n // const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n // const url = window.URL.createObjectURL(blob);\r\n // // window.open(url);\r\n // var link = document.createElement('a');\r\n // link.href = url;\r\n // link.download = x.fileName;\r\n // link.click();\r\n // this.downloadingCDS = false;\r\n\r\n // // this.downloadingPdfOrder = false;\r\n // // this.downloadingReceipt = false;\r\n // }, (error) => {\r\n // this.downloadingCDS = false;\r\n // // this.downloadingPdfOrder = false;\r\n // // this.downloadingReceipt = false;\r\n // })\r\n }\r\n\r\n}\r\n","
\r\n

{{'view_waybill.order' | translate}} 

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_waybill.your_details' | translate}}

\r\n

{{userDetails.title}} {{userDetails.firstName}} {{userDetails.lastName}}

\r\n

{{userDetails.addressLine1}}

\r\n \r\n

{{userDetails.townCity}}

\r\n

{{userDetails.postcode}}

\r\n

{{getCountryName()}}

\r\n {{userDetails.contactNumber}}\r\n
\r\n
\r\n \r\n

{{'view_waybill.incoTerms' | translate}}

\r\n
\r\n

{{waybill.incoTerms}}

\r\n
\r\n

{{'view_waybill.deliveryTerms' | translate}}

\r\n
\r\n

{{waybill.deliveryTerms}}

\r\n
\r\n
\r\n
\r\n

{{'view_waybill.mawb' | translate}}

\r\n
\r\n

{{waybill.mawb}}

\r\n
\r\n

{{'view_waybill.quoteNo' | translate}}

\r\n
\r\n

{{waybill.quoteNo}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_waybill.lines' | translate}}

\r\n
\r\n
\r\n {{'view_waybill.package_type' | translate}}\r\n

{{line.packageType}}

\r\n {{'view_waybill.volume' | translate}}\r\n

{{line.volume | numberLocalization }}m³

\r\n {{'view_waybill.weight' | translate}}\r\n

{{line.weight | numberLocalization}}kg

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_waybill.from' | translate}}

\r\n

{{waybill.sender.name}}

\r\n

{{waybill.sender.addressLine1}}

\r\n

{{waybill.sender.city}}

\r\n

{{waybill.sender.postCode}}

\r\n

{{waybill.sender.countryName}}

\r\n
\r\n
\r\n

{{'view_waybill.to' | translate}}

\r\n

{{waybill.receiver.name}}

\r\n

{{waybill.receiver.addressLine1}}

\r\n

{{waybill.receiver.city}}

\r\n

{{waybill.receiver.postCode}}

\r\n

{{waybill.receiver.countryName}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'view_waybill.documents' | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{file.fileName}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RoleService } from '../../account/services/role.service';\r\nimport { StaticContentService } from '../../shared/services/static-content.service';\r\nimport { CustomerShipment } from '../entities/CustomerShipment';\r\nimport { ImportExportServiceType } from '../entities/ImportExportServiceType';\r\nimport { WaybillService } from '../services/waybill.service';\r\n\r\n@Component({\r\n selector: 'app-waybill-list',\r\n templateUrl: './waybill-list.component.html',\r\n styleUrls: ['./waybill-list.component.scss']\r\n})\r\nexport class WaybillListComponent implements OnInit {\r\n\r\n public pageTitle: string;\r\n\r\n public pageModules: string;\r\n\r\n waybills: Array = new Array();\r\n\r\n loading: boolean = false;\r\n\r\n showViewMoreButton: boolean = false;\r\n\r\n viewMoreMultiplier: number = 1;\r\n\r\n filterBySpecificDate: boolean = false;\r\n\r\n filterFormGroup: FormGroup;\r\n\r\n //filterQueryString: string;\r\n\r\n interval: any;\r\n\r\n constructor(private waybillService: WaybillService, private formBuilder: FormBuilder,\r\n private router: ActivatedRoute, private routerLink: Router,\r\n private translateService: TranslateService, private staticContentService: StaticContentService, private roleService: RoleService) { }\r\n\r\n ngOnInit(): void {\r\n this.interval = setInterval(() => {\r\n var staticContent = this.staticContentService.staticContent;\r\n if (!!staticContent) {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n clearInterval(this.interval);\r\n }\r\n }, 500);\r\n\r\n this.translateService.onLangChange.subscribe((x) => {\r\n this.staticContentService.loadAllCssJs();\r\n this.pageTitle = this.getPageTitle();\r\n this.pageModules = this.getHtmlAfterPsModule();\r\n })\r\n\r\n this.loading = true;\r\n this.filterFormGroup = this.formBuilder.group({\r\n fromDate: [''],\r\n toDate: [''],\r\n });\r\n this.waybillService.getCustomerShipmentList().subscribe(x => {\r\n this.onRecieveCustomerShipmentList(x);\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n\r\n\r\n }\r\n\r\n onRecieveCustomerShipmentList(shipments: CustomerShipment[]){\r\n \r\n this.waybills = shipments;\r\n if (this.waybills.length == 10) {\r\n this.showViewMoreButton = true;\r\n }\r\n this.loading = false;\r\n }\r\n\r\n public getPageTitle()\r\n {\r\n return this.staticContentService.getPageTitle();\r\n }\r\n\r\n public getIcon(typeName: string)\r\n {\r\n var translationRequest = `waybill_list.${typeName.toLowerCase()}_icon`;\r\n var iconPath = this.translateService.instant(translationRequest);\r\n\r\n //If key is not matched (output equals input), use manual fallback icon\r\n if(iconPath == translationRequest){\r\n switch (typeName) {\r\n case \"AIRFREIGHT\":\r\n //return \"/assets/icons/find-prices/air_freight.svg\";\r\n return \"/assets/icons/find-prices/Air_Freight.png\";\r\n case \"SEAFREIGHT\":\r\n // return \"/assets/icons/find-prices/sea_freight.svg\";\r\n return \"/assets/icons/find-prices/Sea_Freight.png\";\r\n case \"TRUCKING\":\r\n // return \"/assets/icons/find-prices/domestic.svg\";\r\n return \"/assets/icons/find-prices/Domestic.png\";\r\n case \"EXPRESS\":\r\n // return \"/assets/icons/find-prices/surface_mail_new.svg\";\r\n return \"/assets/icons/find-prices/Surface_Mail.png\";\r\n default:\r\n break;\r\n }\r\n }\r\n \r\n return iconPath;\r\n }\r\n\r\n getImportExportType(type: ImportExportServiceType){\r\n switch (type) {\r\n case ImportExportServiceType.AirExport:\r\n return this.translateService.instant(\"waybill_list.air_export\");\r\n case ImportExportServiceType.AirImport:\r\n return this.translateService.instant(\"waybill_list.air_import\");\r\n case ImportExportServiceType.ExpressExport:\r\n return this.translateService.instant(\"waybill_list.express_export\");\r\n case ImportExportServiceType.ExpressImport:\r\n return this.translateService.instant(\"waybill_list.express_import\");\r\n case ImportExportServiceType.SeaExport:\r\n return this.translateService.instant(\"waybill_list.sea_export\");\r\n case ImportExportServiceType.SeaImport:\r\n return this.translateService.instant(\"waybill_list.sea_import\");\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n getServiceType(type: string){\r\n switch (type) {\r\n case \"Sea Freight\":\r\n return \"waybill_list.sea_freight\";\r\n case \"Air Freight\":\r\n return \"waybill_list.air_freight\";\r\n case \"Express Freight\":\r\n return \"waybill_list.express_freight\";\r\n \r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public viewMore() {\r\n this.viewMoreMultiplier += 1;\r\n //WBTODO Should waybills paginate?\r\n }\r\n\r\n public searchByFilter() {\r\n var fromDateParam;\r\n var toDateParam;\r\n var fromDate = this.filterFormGroup.get('fromDate');\r\n var toDate = this.filterFormGroup.get('toDate');\r\n if (fromDate && fromDate.value) {\r\n fromDateParam = fromDate.value.toJSON();\r\n }\r\n if (toDate && toDate.value) {\r\n toDateParam = toDate.value.toJSON();\r\n }\r\n\r\n this.waybillService.getCustomerShipmentList(fromDateParam, toDateParam).subscribe(x => {\r\n this.onRecieveCustomerShipmentList(x);\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n }\r\n\r\n public checkAllTime() {\r\n this.filterBySpecificDate = false;\r\n this.filterFormGroup.get('fromDate').reset();\r\n this.filterFormGroup.get('toDate').reset();\r\n this.waybillService.getCustomerShipmentList(null, null).subscribe(x => {\r\n this.onRecieveCustomerShipmentList(x);\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n }\r\n\r\n public clearSearchFilters() {\r\n var allTimeButton = document.getElementById(\"all-time-radio-button\") as HTMLInputElement;\r\n if (!!allTimeButton) {\r\n this.filterBySpecificDate = false;\r\n allTimeButton.checked = true;\r\n }\r\n\r\n this.filterFormGroup.reset();\r\n this.waybillService.getCustomerShipmentList(null, null).subscribe(x => {\r\n this.onRecieveCustomerShipmentList(x);\r\n }, (error => {\r\n this.loading = false;\r\n }));\r\n\r\n }\r\n\r\n public selectSpecificDate() {\r\n var specificDateButton = document.getElementById(\"specific-date-radio-button\") as HTMLInputElement;\r\n if (!!specificDateButton) {\r\n specificDateButton.checked = true;\r\n this.filterBySpecificDate = true;\r\n }\r\n\r\n }\r\n\r\n public getWaybillDetail(waybill: CustomerShipment) {\r\n this.routerLink.navigate([`./${waybill.shipmentType}/${waybill.manifestNo}/${waybill.waybillNo}`], {relativeTo: this.router })\r\n }\r\n\r\n \r\n public getHtmlAfterPsModule() {\r\n return this.staticContentService.getHtmlBelowPsModule();\r\n }\r\n\r\n trackTraceUrl(orderRef: string){\r\n const url = this.routerLink.serializeUrl(\r\n this.routerLink.createUrlTree([`../send-receive/track-trace/${orderRef}`], {relativeTo: this.router })\r\n );\r\n return url;\r\n }\r\n \r\n handleEvent(event) {\r\n event.stopPropagation();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{'waybill_list.from' | translate}}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

{{'waybill_list.to' | translate}}:

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
{{'waybill_list.shipmentDate' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.trackingNumber' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.name' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.serviceType' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.manifestNumber' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.shipmentType' | translate}}
\r\n
\r\n
\r\n
{{'waybill_list.importExportType' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{waybill.shipmentDate | date:'dd/MM/yyyy'}}\r\n
\r\n \r\n
\r\n {{waybill.name}}\r\n
\r\n
\r\n {{getServiceType(waybill.serviceType) | translate}}\r\n
\r\n
\r\n {{waybill.manifestNo}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{getImportExportType(waybill.importExportServiceTypeCombine)}}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { UserDetailsResolver } from '../send-receive/services/user-details.resolver';\r\nimport { AuthGuard } from '../shared/guards/auth.guard';\r\nimport { WaybillOrderResolver } from './services/waybill-order.resolver';\r\nimport { WaybillDetailComponent } from './waybill-detail/waybill-detail.component';\r\nimport { WaybillListComponent } from './waybill-list/waybill-list.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: ':lang/:role/waybill', component: WaybillListComponent},\r\n //get('shipmentType'), route.paramMap.get('manifestNo'), route.paramMap.get('waybillNo'));\r\n { path: ':lang/:role/waybill/:shipmentType/:manifestNo/:waybillNo', component: WaybillDetailComponent, resolve: { userDetails: UserDetailsResolver, waybill: WaybillOrderResolver }, canActivate: [AuthGuard] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class WaybillRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WaybillListComponent } from './waybill-list/waybill-list.component';\r\nimport { WaybillDetailComponent } from './waybill-detail/waybill-detail.component'\r\n\r\nimport { WaybillRoutingModule } from './waybill-routing.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n WaybillListComponent,\r\n WaybillDetailComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n WaybillRoutingModule,\r\n MatFormFieldModule,\r\n SharedModule,\r\n MatInputModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class WaybillModule { }\r\n","export const environment = {\r\n production: true,\r\n environmentName: 'prod',\r\n apiUrl: 'https://odin.posta.fo',\r\n dibsUrl: 'https://vanir.posta.fo',\r\n beraUrl: 'https://odin.posta.fo'\r\n};","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"]}