{"version":3,"file":"main.7989edb7962c4534.js","mappings":"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","names":["AppLanguage","POLISH","UKRAINIAN","COMPLAINT_ROUTE","STC_COMPLAINT_APPLICATION_ROUTE","OBTAIN_TACHOGRAPH_CARD_ROUTE","ADR_CHECKING_STATUS_ROUTE","DRIVERS_LICENCE_ROUTE","CHECK_PKK_STATUS_ROUTE","CHECK_DRIVERS_LICENSE_STATUS_ROUTE","CHECK_EXAM_AVAILABILITY_ROUTE","PAYMENT_CONFIRMATION_ROUTE","PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE","PaymentConfirmationService","constructor","httpClient","this","headers","HttpHeaders","STC_V2","Accept","getPaymentSummary$","billId","get","env","BACKEND_API","BASE","PAYMENTS","getManualPaymentSummary$","applicationId","PAPER_FORM","MANUAL_PAYMENT_SUMMARY","static","t","i0","i1","core","jDH","factory","ɵfac","providedIn","PaymentConfirmationResolver","paymentConfirmationService","auth","router","toastr","translate","attempCounter","getPaymentInfo","id","resolve","route","state","state$","pipe","filter","status","first","tap","isIndividual","AuthService","isIndividualUser","user","isAnonymous","anonymous","sessionStorage","getItem","Extensions","getCookie","isBussiness","isBusinessUser","mergeMap","queryParamMap","paramMap","expand","response","paymentStatus","PaymentStatus","AUTHPENDING","delay","EMPTY","take","map","data","toastrMessage","toastrType","AUTHACCEPTED","instant","message","success","info","AUTHREJECTED","warning","clear","navigate","MY_ACCOUNT_ROUTE","LIST_APPLICATIONS_ROUTE","then","navigateByUrl","TACHOGRAPH_ROUTE","MAIL_PAYMENT_CONFIRMATION","i2","i3","i4","i5","STC_APPLICATIONS_ROUTE","STC_COMPLAINTS_ROUTE","STC_CORRECTIONS_ROUTE","STC_TACHOGRAPH_APPLICATIONS_ROUTE","STC_TACHOGRAPH_COMPLAINTS_ROUTE","STC_TACHOGRAPH_CORRECTIONS_ROUTE","STC_MAIL_PAYMENT","CHECKING_STC_APPLICATION_STATUS_ROUTE","COMPANY_CARD_APPLICATION_ROUTE","INDIVIDUAL_COMPANY_CARD_APPLICATION_STEPS_ROUTES","COMPANY_CARD_APPLICATION_REASON_ROUTE","COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE","COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE","COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE","COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE","INDIVIDUAL_COMPANY_CARD_COMPLAINT_STEPS_ROUTES","COMPANY_CARD_COMPLAINT_REASON_ROUTE","INDIVIDUAL_COMPANY_CARD_CORRECTION_STEPS_ROUTES","BUSINESS_COMPANY_CARD_APPLICATION_STEPS_ROUTES","BUSINESS_COMPANY_CARD_COMPLAINT_STEPS_ROUTES","BUSINESS_COMPANY_CARD_CORRECTION_STEPS_ROUTES","COMPANY_CARD_APPLICATION_PAYMENT_ROUTE","COMPANY_CARD_APPLICATION_PERSONAL_DATA_ROUTE","COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN","COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR","CONTROL_CARD_APPLICATION_ROUTE","INDIVIDUAL_CONTROL_CARD_APPLICATION_STEPS_ROUTES","CONTROL_CARD_APPLICATION_REASON_ROUTE","CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE","CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE","CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE","CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE","INDIVIDUAL_CONTROL_CARD_COMPLAINT_STEPS_ROUTES","CONTROL_CARD_COMPLAINT_REASON_ROUTE","INDIVIDUAL_CONTROL_CARD_CORRECTION_STEPS_ROUTES","BUSINESS_CONTROL_CARD_APPLICATION_STEPS_ROUTES","BUSINESS_CONTROL_CARD_COMPLAINT_STEPS_ROUTES","BUSINESS_CONTROL_CARD_CORRECTION_STEPS_ROUTES","CONTROL_CARD_APPLICATION_ATTACHMENTS_ROUTE","CONTROL_CARD_APPLICATION_PAYMENT_ROUTE","CONTROL_CARD_APPLICATION_PERSONAL_DATA_ROUTE","CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN","CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR","DRIVER_CARD_APPLICATION_ROUTE","INDIVIDUAL_DRIVER_CARD_APPLICATION_STEPS_ROUTES","DRIVER_CARD_APPLICATION_REASON_ROUTE","DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE","DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE","DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE","DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE","INDIVIDUAL_DRIVER_CARD_COMPLAINT_STEPS_ROUTES","DRIVER_CARD_COMPLAINT_REASON_ROUTE","INDIVIDUAL_DRIVER_CARD_CORRECTION_STEPS_ROUTES","BUSINESS_DRIVER_CARD_APPLICATION_STEPS_ROUTES","BUSINESS_DRIVER_CARD_COMPLAINT_STEPS_ROUTES","BUSINESS_DRIVER_CARD_CORRECTION_STEPS_ROUTES","DRIVER_CARD_APPLICATION_ATTACHMENTS_ROUTE","DRIVER_CARD_APPLICATION_PAYMENT_ROUTE","DRIVER_CARD_APPLICATION_PERSONAL_DATA_ROUTE","DRIVER_CARD_APPLICATION_SUMMARY_ROUTE","DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN","DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR","OVERPAY_RETURN_ROUTE","OVERPAY_RETURN_FORM_ROUTE","OVERPAY_RETURN_CONFIRMATION_ROUTE","REPORT_FORM_CONFIRMATION_ROUTE","REPORT_FORM_ROUTE","REPORT_CARD_DAMAGE_OR_LOSS_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE","INDIVIDUAL_TEMPORARY_DRIVER_CARD_APPLICATION_STEPS_ROUTES","TEMPORARY_DRIVER_CARD_APPLICATION_REASON_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE","INDIVIDUAL_TEMPORARY_DRIVER_CARD_COMPLAINT_STEPS_ROUTES","TEMPORARY_DRIVER_CARD_COMPLAINT_REASON_ROUTE","INDIVIDUAL_TEMPORARY_DRIVER_CARD_CORRECTION_STEPS_ROUTES","BUSINESS_TEMPORARY_DRIVER_CARD_APPLICATION_STEPS_ROUTES","BUSINESS_TEMPORARY_DRIVER_CARD_COMPLAINT_STEPS_ROUTES","BUSINESS_TEMPORARY_DRIVER_CARD_CORRECTION_STEPS_ROUTES","TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_ROUTE","TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN","TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR","WORKSHOP_CARD_APPLICATION_ROUTE","INDIVIDUAL_WORKSHOP_CARD_APPLICATION_STEPS_ROUTES","WORKSHOP_CARD_APPLICATION_REASON_ROUTE","WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE","WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE","WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE","WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE","INDIVIDUAL_WORKSHOP_CARD_COMPLAINT_STEPS_ROUTES","WORKSHOP_CARD_COMPLAINT_REASON_ROUTE","INDIVIDUAL_WORKSHOP_CARD_CORRECTION_STEPS_ROUTES","BUSINESS_WORKSHOP_CARD_APPLICATION_STEPS_ROUTES","BUSINESS_WORKSHOP_CARD_COMPLAINT_STEPS_ROUTES","BUSINESS_WORKSHOP_CARD_CORRECTION_STEPS_ROUTES","WORKSHOP_CARD_APPLICATION_PAYMENT_ROUTE","WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_ROUTE","WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN","WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR","TRAINING_CARD_ROUTE","TRAINING_CARD_STEPS_ROUTES","PERSONAL_DATA_STEP_ROUTE","SUMMARY_STEP_ROUTE","PAYMENT_STEP_ROUTE","TRAINING_INFO_ROUTE","VEHICLE_REGISTRATION_ROUTE","CHECKING_REGISTRATION_DOCUMENT_STATUS_ROUTE","WORD_EXAM_ROUTE","WORD_EXAM_PROCESS_ROUTE","WORD_RESCHEDULE_RESERVATION","WORD_EXAM_REGISTRATION_STEPS_ROUTES","EXAMINATION_CENTER_STEP_ROUTE","CALENDAR_STEP_ROUTE","DETAILS_STEP_ROUTE","PAYMENT_STEP_PARAMETRIZED_ROUTE","WORD_RESCHEDULE_RESERVATION_STEPS_ROUTES","CALENDAR_STEP_PARAMETRIZED_ROUTE","SUMMARY_STEP_PARAMETRIZED_ROUTE","CONFIRMATION_STEP_ROUTE","CONFIRMATION_STEP_PARAMETRIZED_ROUTE","EmployerTypes","TRANSPORT_COMPANY","WORKSHOP","CONTROL_AUTHORITY","SearchActions","SearchActionTypes","SET_RESULTS","LOADING","SetResultsSearchAction","result","type","LoadingResultsSearchAction","query","initialState","CountedApiResponseModel","empty","searchCacheReducer","action","Object","assign","featureName","selectSearchCacheState","createFeatureSelector","selectSearchQuery","createSelector","selectSearchResult","EmployerTypeActionTypes","SET_TRANSPORT_COMPANY","SET_WORKSHOP","SET_CONTROL_AUTHORITY","SET_INITIAL_STATE","SetAsTransportCompanyAction","SetAsWorkshopAction","SetAsControlAuthorityAction","SetInitialStateAction","employerTypeReducer","selectEmployerTypeState","selectEmployerType","authErrorDictionary","discovery_document_load_error","code","token_validation_error","matchers","sequence","jwks_load_error","invalid_nonce_in_state","discovery_document_validation_error","user_profile_load_error","token_error","code_error","token_refresh_error","silent_refresh_error","token_revoke_error","default_auth_error","AuthErrorLoggerService","oauth","authErrorLog$","Subject","sub","withLatestFrom","events","error","OAuthErrorEvent","subscribe","next","handle","logError","ngOnDestroy","complete","unsubscribe","getErrorCodeFor","disableTimeOut","closeButton","reason","foundEntry","find","matcher","includes","_angular_core__WEBPACK_IMPORTED_MODULE_4__","authConfig","issuer","AUTH_ISSUER","redirectUri","REDIRECT_URI","silentRefreshRedirectUri","SILENT_REFRESH_REDIRECT_URI","userinfoEndpoint","STC","ME","clientId","dummyClientSecret","scope","requireHttps","disableAtHashCheck","useHttpBasicAuth","clearHashAfterLogin","oidc","postLogoutRedirectUri","logoutUrl","AUTH_LOGOUT_URL","AuthHelperService","storage","errorLogger","configure","setupAutomaticSilentRefresh","autoLogin","loadDiscoveryDocumentAndTryLogin","loggedIn","resolveLoginAttempt","resolveUserProfile","finishLogin","loginError","refreshUser","resolveSilentRefresh","finishRefresh","tryLogin","url","resetImplicitFlow","pushRedirectUrl","initImplicitFlow","logout","localStorage","setItem","localStorageLogoutSync","key","value","removeItem","_logout","syncLogout","setAnonymousToken","setCookieWithHours","uuidv4","syncLogin","window","location","reload","Promise","reject","silentRefresh","event","params","loadUserProfile","redirectAfterLogin","popRedirectUrl","setTimeout","String","replaceUrl","hasValidIdToken","mapUser","initLoginSync","localStorageLoginSync","uuid","authorities","hasAcc","jwtDecode","getAccessToken","email","name","JSON","parse","stringify","getIdentityClaims","firstname","lastname","roles","logOut","redirectUrl","AuthQueryService","authStore","authSelector","fromAuth","status$","select","distinctUntilChanged","_user$","user$","combineLatest","stateComparator","silentLogout$","combined","_angular_core__WEBPACK_IMPORTED_MODULE_7__","prev","curr","Immutable","AuthActions","AuthActionType","AUTH_INIT","AUTH_READY","AUTH_ERROR","LOGIN","LOGOUT","AUTH_LOGGED","AUTH_LOGGED_OUT","SYNC_LOGIN","SYNC_LOGOUT","SET_USER","REFRESH_USER","SET_ACCEPTANCES","ANONYMOUS_LOGIN","CLEAR_AUTH","DISABLE_ANONYMOUS","AuthInit","AuthReady","payload","AuthError","Login","Logout","SyncLogin","SyncLogout","RefreshUser","ClearAuth","AnonymousLogin","AuthenticatedLogged","AuthenticatedLoggedOut","DisableAnonymous","SetAcceptances","AuthEffects","actions$","authHelper","authQuery","autologinInit","createEffect","ofType","switchMap","from","catchError","of","dispatch","detectUserType","storageSyncLogin","fromEvent","evt","newValue","storageSyncLogout","anonymousLogin","silentLogout","ngrxOnInitEffects","_angular_core__WEBPACK_IMPORTED_MODULE_14__","authReducer","role","length","login","clearAuth","disableAnonymous","retry","loginAnonymousUser","setAcceptances","InMemoryAuthStorage","memory","Map","storageKeys","delete","set","AuthModule","authEffects","authErrorLogger","$C","G2t","provide","OAuthStorage","useClass","imports","CommonModule","RouterModule","OAuthModule","forRoot","resourceServer","allowedUrls","environment","OAUTH_ALLOWED_URLS","sendAccessToken","StoreModule","EffectsModule","ctx_r0","GhostButtonType","BIG_FIRST_RANK","_c0","isMobile","undefined","ErrorComponent","ngOnInit","checkIsMobile","errorStatus","Number","setErrorTitle","innerWidth","titles","errorTitle","DEFAULT","VBU","selectors","hostBindings","rf","ctx","$event","ErrorComponent_aside_1_Template","ErrorComponent_ic_ghost_button_8_Template","ERROR_ROUTING","path","ERROR_ROUTE_PARAMETRIZED","component","children","ErrorsHandler","ErrorHandler","ngZone","injector","super","toastrService","ToastrService","handleError","navigator","onLine","HttpErrorResponse","safeNavigate","onActivateTick","statusRegex","RegExp","match","production","statusCode","afterNavigateCallback","Router","run","NavigationStart","document","querySelector","click","redirectPath","MODERNIZATION_WORK_ROUTE","ERROR_ROUTE","skipLocationChange","Injector","ErrorModule","SharedModule","forChild","HttpErrorInterceptor","routeEventsService","loaderService","intercept","req","open","finalize","close","errorCode","errors","forEach","backendError","displayErrorsAsToasts","userMessage","throwError","isErrorMessageAnArray","jsonString","parsedResponse","Array","errorMessage","e","timeOut","LanguageHeaderInterceptor","getLng","currentLang","request","clone","setHeaders","ApplicationStartupService","layoutStore","sharedStore","init","_","store","searchServicesData","startupFunction","startup","BlobErrorHttpInterceptor","err","Blob","reader","FileReader","onload","errmsg","target","statusText","onerror","readAsText","StcPaperInterceptor","isUserLogged","CoreModule","employerTypeService","EmployerTypeService","AcceptancesService","AuthGuard","CompanyGuard","AnonymousGuard","APP_INITIALIZER","useFactory","deps","multi","HTTP_INTERCEPTORS","forFeature","fromSearch","fromType","canActivate","authState","passFlag","_angular_core__WEBPACK_IMPORTED_MODULE_6__","isBusiness","MAIN_PAGE_ROUTE","_angular_core__WEBPACK_IMPORTED_MODULE_3__","_http","getAcceptances","httpHeaders","ACCOUNTS_V2","ACCOUNT_MANAGEMENT","CLIENT","availableAcceptances","getAvailableAcceptances","BUSINESS_CLIENT","INDIVIDUAL_CLIENT","AVAILABLE_ACCEPTANCES","updateAcceptances","acceptances","userName","acceptance","granted","acceptanceName","post","BASE_ACCOUNT_MANAGMENT","ACCOUNT_MANAGMENT","_angular_core__WEBPACK_IMPORTED_MODULE_5__","typeStore$","fetchEmployeerTypeIfLoggedInWithBusiness","loggedUserUid","fetchEmployerType","employerId","EMPLOYERS","getEmployerType","ESP_ROUTE","ESP_PAYMENT_PAGE","ESP_PAYMENT_CONFIRMATION","ESP_PAYMENT_CONFIRMATION_PARAMETRIZED","EspPaymentStatus","EXCEEDED","EspPaymentService","getEspPayment","ESP","createPayment$","REDIRECT","getPaymentStatus","BILLS","createBlikPayment$","BLIK","_angular_core__WEBPACK_IMPORTED_MODULE_1__","_r1","ctx_r1","goToLink","content","title","paymentInfo","BIG_SECOND_RANK_FLEX","timeToRedirect","PaymentConfirmationComponent","espService","getPaymentStatusAndTranslationContent","goToLinkAutomatically","snapshot","bill","toUpperCase","customErrorHandler","automaticRedirect","setInterval","clearInterval","slice","href","clearTimeout","standalone","features","decls","vars","consts","template","PaymentConfirmationComponent_main_0_Template","NgIf","GhostButtonComponent","TranslateModule","styles","onSubmit","PaymentComponent_main_0_app_loaders_6_Template","espPayment","splashEnabled","PaymentComponent","PENDING_STATUSES","getPaymentInfoAndTranslationTexts","payment","handlePaymentError","paymentType","PaymentMethodType","FEATURE_TOGGLES","BLIK_LVL_ZERO","proceedWithBlik","blikCode","proceedWithECard","E_CARD","PAYMENT_CARD","proceedWithPaymentCard","console","createBlikObject","poolBlikPaymentStatus","CONFIRMATION","handleBlikPaymentStatus","timeInterval","interval","PaymentComponent_main_0_Template","i6","i7","FAST_PAYMENTS_ROUTE","FAST_PAYMENT_CONFIRMATION_PARAMETRIZED","FAST_PAYMENT_CONFIRMATION","FastPaymentsService","getPayment","FAST_PAYMENTS","HttpParams","append","paymentId","system","put","getPaymentConfirmation","getPDF","PDF","responseType","_angular_core__WEBPACK_IMPORTED_MODULE_2__","infoAboutCode","authCode","_r3","downloadPdf","waitingForData","PaymentConfirmationComponent_main_0_Conditional_4_Template","PaymentConfirmationComponent_main_0_Conditional_8_Template","PaymentConfirmationComponent_main_0_Conditional_13_Template","desc","service","hotpConfirmation","detail","blob","URL","createObjectURL","a","createElement","download","Date","now","toLocaleString","revokeObjectURL","InfoBoxComponent","chooseMethod","administrativeFee","taxFee","postalFee","item_r2","units","fees","totalFee","FastPaymentsTableComponent_section_0_ng_container_14_Conditional_6_Template","FastPaymentsTableComponent_section_0_ng_container_14_Conditional_7_Template","FastPaymentsTableComponent_section_0_ng_container_14_Conditional_8_Template","FastPaymentsTableComponent_section_0_ng_container_14_Conditional_10_Template","FastPaymentsTableComponent_section_0_ng_container_14_Conditional_11_Template","documentType","FastPaymentsTableComponent_section_0_h2_1_Template","FastPaymentsTableComponent_section_0_h1_2_Template","FastPaymentsTableComponent_section_0_Conditional_8_Template","FastPaymentsTableComponent_section_0_Conditional_9_Template","FastPaymentsTableComponent_section_0_Conditional_10_Template","FastPaymentsTableComponent_section_0_ng_container_14_Template","titleAsH1","feeChecker","price","items","priceSum","item_r3","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_7_Template","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_8_Template","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_9_Template","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_15_Template","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_16_Template","FastPaymentsTableComponent_section_1_ng_container_11_Conditional_17_Template","FastPaymentsTableComponent_section_1_h2_1_Template","FastPaymentsTableComponent_section_1_h1_2_Template","FastPaymentsTableComponent_section_1_ng_container_11_Template","FastPaymentsTableComponent","fee","some","el","FastPaymentsTableComponent_section_0_Template","FastPaymentsTableComponent_section_1_Template","FastPaymentStatus","_r2","ctx_r2","onFocus","onPaste","formGroup","_c5","_c3","requiredError","_c2","patternError","_c4","FastPaymentsComponent_main_0_Conditional_6_Conditional_3_Template","onCodeSubmit","provideCode","invalid","acceptButton","_r4","fastPayment","loaderText","FastPaymentsComponent_main_0_Conditional_6_Template","FastPaymentsComponent_main_0_Conditional_7_Template","FastPaymentsComponent_main_0_Conditional_8_Template","FastPaymentsComponent_main_0_app_loaders_9_Template","subtitle","element_r5","FastPaymentsComponent","toast","vs","termsChecked","paymentStarted","destroyRef","inject","DestroyRef","paymentPolling$","paymentSuccess$","split","FormGroup","codeFirst","FormControl","Validators","required","pattern","codeSecond","statusChanges","codeSecondInput","input","nativeElement","focus","valueChanges","takeUntilDestroyed","patchValue","codeFirstInput","splitedData","toLowerCase","setOffset","scrollToAnchor","log","clipboard","readText","text","paymentSystem","timer","takeUntil","queryParams","onTermsChanged","visibilityAction","hidden","focusAction","viewQuery","FastPaymentsComponent_main_0_Template","FastPaymentsComponent_For_22_Template","youAreOnPage","processServices","cardAlt","driverLicence","vehicleAlt","vehicleRegistration","carAlt","dlExam","howThisWork","processList","thumbAlt","processPayment","ReactiveFormsModule","LoadersComponent","FormInputComponent","ChoosePaymentMethodComponent","POSK_ROUTE","POSK_PAYMENT_PAGE","POSK_PAYMENT_CONFIRMATION","POSK_PAYMENT_CONFIRMATION_PARAMETRIZED","OskPaymentType","WORD","LICENCE","OskLicenceType","EXAM","SMALL_OSK","MEDIUM_OSK","BIG_OSK","OSK","PoskPaymentStatus","REGISTERED","INITIALIZING_PAYMENT_PROCESS","SEND","REJECTED","ACCEPTED","ERROR","PoskTypeSubscription","REJESTRACJA_PLATNOSCI","ZMIANA_KARTY_ZWROT_SRODKOW","ZMIANA_KARTY_PLATNOSC_ZA_LICENCJE","PoskPaymentService","getPoskLicencePayment","POSK","getPoskWordPayment","poskService","REDIRECT_URL","paramStatus","paymentCreationError","getStatusTexts","getMappedStatus","billStatus","FormatPoskLicenceType","transform","conversionTexts","EJ8","pure","withCardChange","onlyCardChange","PaymentComponent_main_0_header_1_ng_container_2_Template","PaymentComponent_main_0_header_1_ng_container_3_Template","PaymentComponent_main_0_header_1_ng_container_4_Template","typeSubscription","CART_LIST","cardAuth","period","isPeriodic","periodicPayment","licenceType","days","amount","PaymentComponent_main_0_section_2_div_2_div_2_Template","PaymentComponent_main_0_section_2_div_2_div_3_Template","category","examinationCenter","exam","wordName","provision","onlyCardAuthDesc","periodic","PaymentComponent_main_0_section_2_div_2_Template","PaymentComponent_main_0_section_2_div_3_Template","PaymentComponent_main_0_section_2_div_4_Template","PaymentComponent_main_0_section_2_div_5_Template","PaymentComponent_main_0_section_2_app_info_box_6_Template","setHTMLpayButtonText","setHTMLPaymentTitle","PaymentComponent_main_0_header_1_Template","PaymentComponent_main_0_section_2_Template","PaymentComponent_main_0_app_choose_payment_method_3_Template","PaymentComponent_main_0_div_8_Template","PaymentComponent_main_0_div_9_Template","PaymentComponent_main_0_div_10_Template","PaymentComponent_main_0_section_11_Template","initialLoaderEnabled","loaderEnabled","invalidStatus","invalidType","noResponse","invalidKey","selectPaymentSourceBasedOnParams","getStaticContent","setPaymentError","flag","callback","checkIfPaymentIsAvailable","authorizeCard","changeCardAndPay","onlyCardPayment","CHOOSE_METHOD","add","genericMessage","NgSwitch","NgSwitchCase","NgSwitchDefault","AsyncPipe","DecimalPipe","animation","trigger","FADEOUT_ANIMATION","SIGNATURES_INFO_PAGE","SITE_MAP_PAGE","CONTACTPAGE_ROUTE","TERMS_OF_SERVICE_ROUTE","ABOUT_US","DOWNLOAD_TACHO_APPLICATIONS","DOWNLOAD_TACHO_FORMS","DEFECTIVE_CARD_INFO_ROUTE","TACHOGRAPH_UA_FAQ","INFORMATION_CLAUSE","ActivationService","http","_accountActivated","accountActivated$","asObservable","activateAccount","token","postActivationToken","LoaderStripeService","isOpened","notifyIsOpened","TextEllipsisService","clampedSubject","ReplaySubject","enabledSubject","BehaviorSubject","isClamped$","isEnabled$","setClamped","isClamped","toggleEnabled","getValue","setEnabled","isEnabled","clamp","element","options","truncationHTMLContainer","win","opt","useNativeClamp","splitOnChars","animate","truncationChar","truncationHTML","sty","style","originalText","innerHTML","supportsNativeClamp","webkitLineClamp","clampValue","isCSSValue","indexOf","computeStyle","elem","prop","getComputedStyle","getPropertyValue","getMaxLines","height","availHeight","clientHeight","lineHeight","getLineHeight","Math","max","floor","lh","parseInt","chunks","lastChunk","clampedText","splitChar","getLastChild","lastChild","prototype","call","pop","nodeValue","parentNode","removeChild","applyEllipsis","str","overflow","textOverflow","webkitBoxOrient","display","getMaxHeight","clmp","truncate","maxHeight","replace","shift","join","reset","original","clamped","span","fontFamily","fontSize","fontWeight","width","position","top","visibility","body","appendChild","TextEllipsisDirective","elementRef","textEllipsisService","lines","subs","Subscriptions","enableEllipsis","debounce","removeAttribute","FsC","inputs","header","onToggleExpandText","InfoBarComponent_article_0_ic_ghost_button_11_span_1_Template","InfoBarComponent_article_0_ic_ghost_button_11_ng_template_3_Template","SIMPLE_LINK","isExpended$","collapsed_r4","onClose","InfoBarComponent_article_0_h6_9_Template","InfoBarComponent_article_0_p_10_Template","InfoBarComponent_article_0_ic_ghost_button_11_Template","zIndex","InfoBarComponent","infoBarService","it","visible","hasNoCookie","setupVisibilityTimeout","ttl","setCookie","InfoBarComponent_article_0_Template","AngularSvgIconModule","InternalLinkDirective","SafeHtmlPipe","INFO_BAR_CONFIG","true","false","InfoBarsFacadeService","infoBars","infoBars$","fetchBars","intervalId","etag","INFOBARS_ENDPOINT","observe","resp","infobars","areCookiesAlreadyAccepted","acceptCookies","loadingText","onAnimationStart","onAnimationEnd","LoadersComponent_div_0_Conditional_37_Template","loaders","fullScreen","bdColor","positionRelative","LoadersComponent_div_3__svg_g_22_Template","_c1","reverse","loadersService","changeDetector","renderer","CLoaders","ngUnsubscribe","setDefaultOptions","show","DEFAULTS","BD_COLOR","Z_INDEX","LOADER_TYPE","PRIMARY_LOADER","ANIMATION","disableScroll","getLoaders","markForCheck","ngOnChanges","changes","propName","changedProp","isFirstChange","currentValue","previousValue","addClass","documentElement","removeClass","DOCUMENT","LoadersComponent_div_0_Template","LoadersComponent_div_1_Template","LoadersComponent_div_2_Template","LoadersComponent_div_3_Template","opacity","transition","changeDetection","TYPE_COLOR","SHOW","ON","LoadersService","spinnerObservable","x","_reject","keys","hide","LOGIN_ROUTE","FORGOT_PASSWORD_ROUTE","RESET_PASSWORD_ROUTE","AccountActivationResolver","accountActivation","SearchPageSectionComponent","servicesStore","subscription","fromShared","translation","category_r1","categoryIcon","alt","categoryTitle","categoryDescription","CategoriesServicesComponent","tachographLink","Subscription","categories","CategoriesServicesComponent_a_6_Template","slide_r2","subheader","SLIDER","buttonLabel","SliderComponent_3_ng_template_0_h1_4_Template","SliderComponent_3_ng_template_0_ng_template_5_Template","SliderComponent_3_ng_template_0_h2_7_Template","SliderComponent_3_ng_template_0_ng_template_8_Template","SliderComponent_3_ng_template_0_a_10_Template","SliderComponent_3_ng_template_0_a_11_Template","img","carousel_r8","activeId","buildSlideId","i_r7","bannerTitle_r4","bannerSubTitle_r5","destination","SliderComponent_3_ng_template_0_Template","SliderComponent","mainPageService","sliderElements","isPaused","imgSrc","slideIdPrefix","unusedSlidesIds","List","getSliderElements","getSlides","slide","contains","sort","slide1","slide2","ordinalNumber","nextSlideHeader","nextSliderElement","carousel","cycle","onSlideChange","nextSlideId","current","concat","nextSlide","pause","pauseOrStartCarousel","prevSlide","SliderComponent_3_Template","SLIDER_CONTROL","slider_r3","_c6","date","news_r4","prevSlides","NewsPageSectionComponent_div_0_ng_template_9_Template","nextSlides","NewsPageSectionComponent_div_0_ng_template_11_Template","NewsPageSectionComponent_div_0_a_15_Template","NewsPageSectionComponent_div_0_a_20_Template","slidePage","roundButtonBack_r5","maxPages","roundButtonNext_r6","offset","slidersContent","popularArticles","recentlyReadNews","seeAllBtn","NewsPageSectionComponent","newsService","slidesPerPage","mobileSlidesPerPage","getNews","getRecentlyReadNews","news","push","mainPage","promoNews","newsMock","b","getTime","formatNewsDate","slideWidth","slidersContainerData","clientWidth","newsDateFormater","day","month","year","checkMaxPages","ceil","outerWidth","NewsPageSectionComponent_div_0_Template","NewsPageSectionComponent_ng_template_1_Template","NewsPageSectionComponent_ng_template_3_Template","MainPageComponent","breadcrumbsService","metaService","breadcrumbsHide","emit","createCanonicalURL","loggedUser","openAnonymousPaperApplicationToastr","ACTIVATION_ROUTING","MainPageResolver","runGuardsAndResolvers","MAIN_PAGE_ROUTING","pathMatch","SliderService","sliderService","mainPageStore","newsStore","initMainPageData","servicesData$","selectServicesData","popularServicesData$","selectPopularServicesData","sliderData$","selectSliderData","categorySectionData$","selectCategorySectionData","newsState$","selectNewsState","servicesData","popularServicesData","sliderData","categorySectionData","newsState","services","slider","categoriesSection","newsActions","page","rows","MainPageService","description","_angular_core__WEBPACK_IMPORTED_MODULE_0__","ActionTypes","SET_SLIDER","SET_CATEGORY_SECTION","MainPageInitialState","categorySection","MainPageReducer","selectMainPageState","LIST_EMPLOYEES_ROUTE","ADD_EMPLOYEE_ROUTE","EDIT_EMPLOYEE_BASE_ROUTE","EDIT_EMPLOYEE_ROUTE","EXAMS_ROUTE","DRAFT_LIST_APPLICATIONS_ROUTE","NOTIFICATIONS_ROUTE","NOTIFICATIONS_PANEL_ROUTE","NOTIFICATION_FORM_ROUTE","SETTINGS_ROUTE","STATEMENTS_ROUTE","NEWS_ROUTE","imgCaption","tags","imgHref","NewsActionTypes","GET_NEWS","GET_NEWS_ERORR","GET_NEWS_SUCCESS","GET_NEWS_BY_TAG","GET_NEWS_BY_TAG_SUCCESS","GET_NEWS_BY_TAG_ERROR","CLEAR_NEWS","GET_SLIDER_NEWS","GET_SLIDER_NEWS_SUCCESS","GET_SLIDER_NEWS_ERROR","GetNews","GetNewsSuccess","GetNewsError","GetNewsByTag","GetNewsByTagError","GetNewsByTagSuccess","ClearNews","GetSliderNews","GetSliderNewsSuccess","GetSliderNewsError","initialNewsState","loading","total","NewsReducer","pageOfNews","pageNumber","tag","NewsService","getNewsById","mock","art","WP_API_INFOCAR_URL","getNewsPromoPaginated","newsPerPage","toString","getNewsPaginated","tagId","getNewsPaginatedByTag","REGISTRATION_ROUTE","REGISTRATION_ROUTES","FORM","REGISTER_SUCCED","SEARCH_ROUTE","SERVICE_CATEGORY_ROUTE","CATEGORY_NAME_ROUTE","DRIVER_LICENSE_ROUTE","ADR_ROUTE","DOCUMENT_INFORMATION_ROUTE","CERTIFICATE_RULES_ROUTE","ADR_EXAM_ROUTE","VEHICLE_TEMPORARY_WITHDRAWAL","FIND_OSK","FIND_DISTRICT_OFFICE","FIND_WORD","DRIVER_LICENSE_PAYMENT","VEHICLE_REGISTRATION_PAYMENT","ADR_CLASSES_ROUTE","DL_LEGAL_REGULATION_ROUTE","DRIVER_LICENSE_CATEGORIES","FAQ_ROUTE","RULES_FOR_OBTAINING_PERMISSIONS_ROUTE","RULES_FOR_OBTAINING_PROFESSIONAL_PERMISSIONS_ROUTE","THEORETICAL_EXAM_INFORMATION_ROUTE","CONTACT_ROUTE","LEGAL_REGULATION_ROUTE","PARTNERS_ROUTE","PARTNERS_CONFIRMATION_ROUTE","BUSINESS_REGISTRATION_PAGE","VEHICLE_REGISTRATION_FAQ_ROUTE","VEHICLE_REGISTRATION_PROCESS_DESCRIPTION_ROUTE","AcceptanceType","RULES","INFOS","MARKETING_PHONE","MARKETING_EMAIL","AcceptancesFormBuilderService","BaseFormBinderService","build","staticContent","formValidation","missingAcceptances","blockRequired","createConfig","controls","inputId","formControlName","label","button","acc","formFields","form","bindForm","control","formControl","disable","createForm","fieldValidations","fg","UntypedFormGroup","entries","validator","addControl","UntypedFormControl","setControlsValueTo","disabled","markAllAsTouched","updateValueAndValidity","defaultAcceptancesValidation","formGroupName","compose","requiredTrue","nullValidator","onAllChanged","allChecked","checkAllLabel","control_r4","$implicit","switchModalBaseOnCheckbox","onToggle","bolded","AcceptancesChecboxesComponent_form_0_app_form_checkbox_1_Template","AcceptancesChecboxesComponent_form_0_ng_container_2_Template","config","AcceptancesChecboxesComponent","formConfigBinder","modalService","emitAcceptances","EventEmitter","CHECK_ALL","initialAcceptances","aggregateFormGroup","updateAllCheckedState","fetchModalsContents","rulesContent","infosContent","openRulesModal","openContentModal","splice","findIndex","emitEvent","modalRef","TextInformationModalComponent","afterClosed","termsContent","removeControl","outputs","AcceptancesChecboxesComponent_form_0_Template","FormsModule","FormCheckboxComponent","AutopayTermsService","getAutopayTerms","uri","PAYMENT_PROCESSOR","AUTOPAY","COMMITMENTS","REGULATIONS","SUBSCRIPTION","AutopayTermsComponent","_paymentType","autopayService","autopayTermsText","regulation","isExpanded","controlName","AutopayTermsComponent_Conditional_6_Template","hasError","touched","MESSAGES_ROUTE","Breadcrumb","LABEL_PREFIX","Page","Home","MyAccount","MyAccountTachograph","MyAccountDriverLicense","MyAccountVehicleRegistration","ExamsList","Settings","NotificationsPanel","NotificationsPanelAddForm","Statements","DriversLicence","ExamRegistration","SearchResults","Stc","Messages","Employees","ApplicationsSent","ApplicationsDrafts","Contact","SiteMapPage","Partners","SignaturesInfoPage","ForgotPassword","ResetPassword","TachographContact","Registration","DriverLicence","DriverLicensePayment","VehicleRegistration","Adr","AdrClasses","DefectiveCards","mapPagesToBreadcrumbs","breadcrumb_r1","BreadcrumbsComponent_div_0_ul_4_li_1_a_2_Template","BreadcrumbsComponent_div_0_ul_4_li_1_ng_container_3_Template","i_r2","breadcrumbs","BreadcrumbsComponent_div_0_ul_4_li_1_Template","BreadcrumbsComponent_div_0_div_3_Template","BreadcrumbsComponent_div_0_ul_4_Template","BreadcrumbsComponent_div_0_div_5_Template","hideBreadcrumbsPlaceholder","displayEllipsis","BreadcrumbsComponent","translateService","breadcrumbsSet","breadcrumbsHidden","destroy$","currentUrl","breadcrumbsChange","pageToBreadcrumb","fillPageToBreadcrumbMap","onBreadcrumbsChange","translateBreadcrumbs","breadcrumbsClear","NavigationEnd","urlAfterRedirects","translated","translatedBreadcrumbs","newBreadcrumbs","breadcrumb","breadcrumbFromPage","startsWith","substring","calculateEllipsis","list","getElementById","elements","BreadcrumbsComponent_div_0_Template","BreadcrumbsService","setBreadcrumbs","hideBreadcrumbs","selectedPaymentMethod","blik","terms","regulations","blikError","ChoosePaymentMethodComponent_section_0_div_5_Conditional_3_Template","ChoosePaymentMethodComponent_section_0_div_5_div_8_Template","ChoosePaymentMethodComponent_section_0_div_5_div_9_Template","showIcTerms","blickCode","checkIfBlikCodeIsInvalid","blikPlaceholder","blikCodeControl","transfer","ChoosePaymentMethodComponent_section_0_Conditional_6_label_0_Template","card","ChoosePaymentMethodComponent_section_0_label_4_Template","ChoosePaymentMethodComponent_section_0_div_5_Template","ChoosePaymentMethodComponent_section_0_Conditional_6_Template","titleText","howToPay","onlyBlik","_r6","backClick","backBtn","ChoosePaymentMethodComponent_section_2_ic_ghost_button_1_Template","_r5","showBackButton","BIG_FIRST_RANK_FLEX","payButtonText","payBtn","submitPaymentMethod","autopayTerms","icTerms","ValidationPatterns","requiredOnlyDigit","maxLength","minLength","markAsTouched","valid","scrollToFirstInvalidInput","back","ChoosePaymentMethodComponent_section_0_Template","ChoosePaymentMethodComponent_Conditional_1_Template","ChoosePaymentMethodComponent_section_2_Template","PreventDoubleClickDirective","ExternalCartListComponent_section_0_h2_1_Template","ExternalCartListComponent_section_0_h1_2_Template","ExternalCartListComponent_section_0_ng_container_17_Template","ExternalCartListComponent_section_0_div_18_Template","ExternalCartListComponent_section_1_h2_1_Template","ExternalCartListComponent_section_1_h1_2_Template","ExternalCartListComponent_section_1_ng_container_11_Template","ExternalCartListComponent_section_1_div_12_Template","ExternalCartListComponent","ExternalCartListComponent_section_0_Template","ExternalCartListComponent_section_1_Template","AUTOSAVE_CONFIG","IS_TOASTR_ACCEPTED","sublabel","error_r3","FormCheckboxComponent_ng_container_0_div_7_div_1_span_1_Template","hasOneOfErrors","FormCheckboxComponent_ng_container_0_div_7_div_1_Template","FormCheckboxComponent_ng_container_0_div_7_span_2_Template","errorList","showWarning","forwardChanged","checked","FormCheckboxComponent_ng_container_0_span_6_Template","FormCheckboxComponent_ng_container_0_div_7_Template","isRequired","forceInvalid","styleType","isErrorContainer","openModal","isRequiredAfterButton","error_r6","FormCheckboxComponent_div_1_div_8_div_1_span_1_Template","FormCheckboxComponent_div_1_div_8_div_1_Template","FormCheckboxComponent_div_1_div_8_span_2_Template","FormCheckboxComponent_div_1_div_4_Template","FormCheckboxComponent_div_1_span_7_Template","FormCheckboxComponent_div_1_div_8_Template","isReportedForCorrection","isTouched","isValid","CheckboxControlValueAccessor","hostBorderedGroup","writeValue","registerOnChange","fn","onChange","registerOnTouched","onTouched","setDisabledState","isDisabled","valueChanged","preventDefault","openModalClicked","_renderer","_elementRef","warnValue","hostVars","NG_VALUE_ACCESSOR","useExisting","forwardRef","FormCheckboxComponent_ng_container_0_Template","FormCheckboxComponent_div_1_Template","TriggerClickDirective","MaskConfig","mask","accountNumber","wrapSubLabel","subLabel","handleOnPaste","onPropagateBlur","onClick","placeholder","incrementValue","decrementValue","onInputMask","FormInputComponent_ng_template_6_div_2_Template","error_r5","FormInputComponent_div_10_span_1_Template","onHasOneOfErrors","cdr","preValue","blured","step","subLabelSpaceing","ngAfterViewChecked","autocomplete","trim","updateTextMask","textMask","isNullOrUndefined","parseFloat","min","clipboardData","getData","MaskedInputDirective","FormInputComponent_span_3_Template","FormInputComponent_ng_template_5_Template","FormInputComponent_ng_template_6_Template","FormInputComponent_div_8_Template","FormInputComponent_div_10_Template","FormInputComponent_span_11_Template","FormInputComponent_div_12_Template","genericInput_r6","TextMaskModule","BIG_SECOND_RANK","SMALL_FIRST_RANK","SMALL_FIRST_RANK_FLEX","SMALL_SECOND_RANK","SMALL_SECOND_RANK_FLEX","FOOTER_OTHER_PRODUCTS","WORD_EXAM_SMALL_FLEX","selfReference","showArrow","arrowLeft","typeHTML","inline","selfDOM","classList","justifyContent","downloadFile","link","fileName","linkHref","isDownload","ariaLabel","htmlId","ngContentSelectors","GhostButtonComponent__svg_svg_2_Template","GhostButtonComponent__svg_svg_4_Template","GhostButtonComponent_div_5_Template","infoBoxTitle","InfoBoxComponent_fieldset_0_legend_1_Template","bordered","maxWidthLimited","iconStyle","infoBoxText","waring","InfoBoxComponent_fieldset_0_Template","BaseModalDirective","ref","ModalConfig","MODAL_OVERLAY_CLICKED","ModalRef","_afterClosed","shouldClose","closingData","hasOwnProperty","freezeOverlay","InsertionDirective","viewContainerRef","ModalComponent","componentFactoryResolver","cd","_onClose","blueOverlay","whiteOverlay","modal","ngAfterViewInit","loadChildComponent","childComponentType","detectChanges","onOverlayClicked","onModalClicked","stopPropagation","componentType","componentFactory","resolveComponentFactory","insertionPoint","componentRef","createComponent","instance","destroy","ModalComponent_ng_template_3_Template","ModalInjector","_parentInjector","_additionalTokens","notFoundValue","flags","ModalService","appRef","rendererFactory","modalComponentRefs","createRenderer","appendModalComponentToBody","WeakMap","removeModalComponentFromBody","create","attachView","hostView","domElem","rootNodes","modalComponentRef","detachView","paragraph_r1","top_text","sub_subitem_r2","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_li_1_ul_2_li_1_ul_2_li_1_Template","subitem_r3","sub_items","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_li_1_ul_2_li_1_ul_2_Template","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_li_1_ul_2_li_1_Template","item_r4","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_li_1_ul_2_Template","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_li_1_Template","list_items","TextInformationModalComponent_ng_container_7_section_4_div_6_p_3_Template","TextInformationModalComponent_ng_container_7_section_4_div_6_ul_4_Template","TextInformationModalComponent_ng_container_7_section_4_div_6_Template","chapter_r5","chapter_header","chapter_name","paragraphs","TextInformationModalComponent_ng_container_7_section_4_Template","ctx_r5","chapters","info_r7","text_r8","item_r9","TextInformationModalComponent_ng_container_8_ng_container_2_ng_container_3_ul_1_li_1_Template","list_r10","TextInformationModalComponent_ng_container_8_ng_container_2_ng_container_3_ul_1_Template","unorderList","TextInformationModalComponent_ng_container_8_ng_container_2_p_1_Template","TextInformationModalComponent_ng_container_8_ng_container_2_ng_container_2_Template","TextInformationModalComponent_ng_container_8_ng_container_2_ng_container_3_Template","TextInformationModalComponent_ng_container_8_ng_container_1_Template","TextInformationModalComponent_ng_container_8_ng_container_2_Template","pageText","onCancelClick","TextInformationModalComponent_ng_container_7_Template","TextInformationModalComponent_ng_container_8_Template","closeBtn","service_r1","redirectRoute","DRIVNG_LICENSE_ROUTE","seeAll","MostPopularServicesComponent_section_0_a_4_Template","MostPopularServicesComponent_section_0_a_5_Template","borderlessStyle","mostPopularServices","hideAllServicesButton","MostPopularServicesComponent","getMostPopularServices","getTachoCard","DESTINATION_DICTIONARY","checkYourDL","checkExamAvailability","dlReservation","checkPoofOfRegistration","checkTachoCard","checkAdr","checkPkkStatus","MostPopularServicesComponent_section_0_Template","onItemClick","service_r5","external","onShowAll","searchResponse","totalCount","SearchBarComponent_div_9_div_2_li_2_Template","SearchBarComponent_div_9_div_2_div_4_Template","isLimited","resultsToShow","allResults","onClickOutside","SearchBarComponent_div_9_div_2_Template","SearchBarComponent_div_9_div_3_Template","SearchBarComponent_div_9_div_4_Template","searchLoading","SearchBarComponent","searchCacheStore","fb","requestFocus","allwaysHideResults","closeEvent","allServices","searchQuery","searchField","searchForm","group","search","showResults","inputHasFocus","mouseClickOnResults","resultsEnabled","resultsAllwaysShown","setupSearchBarListener","fetchAllServices","forkJoin","setFocusOnSearchInput","shareReplay","debounceTime","makeSearch","setAnalyticsData","onBlur","gtmAnalytics","command","interactive","searchInput","foundServices","depolishify","sorter","penalize","w","y","z","foundServicesResponse","SearchBarComponent_div_9_Template","STC_V1","DEALS_V1","ACCOUNTS_V1","ExternalLinkDirective","externalLink","args","onSectionClick","tagName","getAttribute","throttleTime","throttledClick","clicks","emitThrottledClick","clickEvent","onElementClick","CreatedPaperApplicationToastComponent","Toast","toastPackage","isComplaint","cardType","rerouteToApplication","replacePlaceholders","triggerAction","remove","FirstTimeAutosaveToastrComponent","submitAutosave","FirstTimeAutosaveToastrComponent_p_9_Template","FirstTimeAutosaveToastrComponent_p_10_Template","keyframes","SECOND","MINUTE","DAY","number","lower","upper","isNaN","Error","zip","arrays","labels","array","elementIndex","item","labelIndex","regExpFromPathWithParams","arg","simpleObjectsEqual","object","other","entries1","entries2","i","key1","value1","key2","value2","firstElementWithError","scrollIntoView","behavior","block","deepMerge","merger","obj","arguments","ą","ć","ę","ł","ń","ó","ś","ź","ż","Ą","Ć","Ę","Ł","Ń","Ó","Ś","Ź","Ż","trimForm","formValue","setValue","val","isExpiring","expires","setTime","toUTCString","cookie","parts","checkIfMimeTypeAllowedToOpenCropperModal","file","_asyncToGenerator","notAllowedMimes","isAllowed","fileMime","fileType","onloadend","bytes","Uint8Array","mime","readAsArrayBuffer","mimeType","base64toBlob","b64Data","byteString","atob","ab","ArrayBuffer","ia","charCodeAt","base64toArrayBuffer","getWordExamCandidateMaturityDate","birthDate","UTC","getUTCFullYear","getUTCMonth","getUTCDate","checkIfWordExamCandidateIsMature","maturityDate","currentDate","dateFromZeroYear","zDate","setFullYear","nameof","openCustomToastr","_toastr","toastrConfig","toastComponent","tapToDismiss","applicationTypeRoute","applicationParametrizedRoute","ApplicationDto","TypeEnum","COMPANYCARD","CONTROLCARD","DRIVERCARD","TEMPORARYDRIVERCARD","WORKSHOPCARD","HttpParamsBuilder","_params","param","genericUserInfo","index","arr","sanitizePhoneNumber","phoneNumber","rand","random","dotProduct","array1","array2","reduce","generatePesel","last2Digits","birthYear","monthOffset","century","getMonthOffsetForPesel","birthMonth","birthDay","getDate","peselMonth","fourRandomDigits","rawPesel","sum","d","computePeselControlDigit","dateFromPesel","pesel","fillFormWithData","generateNip","rawNip","expHours","deleteCookie","cName","deletePaperApplicationCookies","deletePaperApplicationSessionStorage","ReasonTypeEnum","FIRSTISSUE","CLOSEEXPIRYDATE","CARDLOSS","CARDTHEFT","DAMAGEDORDEFECTIVECARD","INCORRECTLYENTEREDORLOSTPIN","RESIDENCECOUNTRYCHANGE","ADMINISTRATIVEDATACHANGE","PERSONALORADMINISTRATIVEDATACHANGE","TIMEANDNONRENEWABLECARD","RENEWALFOREIGNCARD","FIRSTISSUELOSTFOREIGNCARD","TRADITIONAL_PAYMENT","REVERSALREJECTED","REVERSALPENDING","REVERSALACCEPTED","DestinationPipe","has","EllipsisPipe","sanitanizer","html","addSvg","bypassSecurityTrustHtml","SelectableInputModule","ClickOutsideModule","defaultSubmitOptions","submitted","formGroupNames","getForm","submit","submitFormGroup","unsubmit","isSubmitted","_this","checkIfFormHasErrors","checkIfControlIsInvalid","checkIfControlHasError","checkIfControlHasErrors","checkIfControlHasErrorsOtherThan","hasExcludedError","setControl","modifierFunction","modifiedValue","tryToExecuteModifier","getControlValue","getEither","firstControlName","secondControlName","enable","setDisabledStateForControlInNestedFormGroup","disabledState","getControlValueInNestedFormGroup","isControlRequired","ValidationExtension","hasRequiredField","fillObjectWithFormValues","fillObjectWithMatchingTypeFormValues","fillFormWith","_angular_core__WEBPACK_IMPORTED_MODULE_9__","MetaService","dom","canURL","setAttribute","head","RouteEventsService","previousRoutePath","formOriginPath","RoutesRecognized","pairwise","setFormOriginPath","g","parseUrl","root","PRIMARY_OUTLET","s","segments","_angular_core__WEBPACK_IMPORTED_MODULE_10__","AngularCropperjsModule","ToastrModule","DragScrollComponent","NgbAccordionModule","NgbDatepickerModule","InfiniteScrollModule","PdfViewerModule","SET_SERVICE_CATEGORIES","SET_POPULAR_SERVICES","SET_SEARCH_SERVICES","sharedInitialState","serviceCategoryData","popularServices","sharedReducer","shared","selectSharedState","selectSearchServicesData","abstractControl","requiredCapitalCase","requiredLowerCase","requiredAlphanumeric","requiredSpecialCharacter","requiredDigit","serialNumber","characterSensitivePattern","bankAccountNumber","polishPostCode","notPolishPostCode","driverLicenseNo","pkkValidation","pkzValidation","notCyrillicPattern","cardNumber","WP_API_HOST","BUILD_VERSION","ENVIRONMENT_URL","PRODUCTION","WP_API_INFOCAR_NAMESPACE","WP_API_DEFAULT_NAMESPACE","JSON_SERVER_URL","SLIDER_ENDPOINT","MAP_TEMPLATE_STYLES","ASSETS","AUTHORIZATION","APPLICATIONS","DOCUMENTS","FONTS","I18N","ICONS","IMAGES","POLITICS","STATEMENTS","CMS_API","INFOCAR_URL","DEFAULT_URL","ANONYMOUS","OBJECTS","KIND","STC_STATUS","EMPLOYEES","EMPLOYEES_BY_REASON","EMPLOYEES_SEARCH","EDOHUB","REASONS","CARDHOLDERS","CORRECTIONS","ATTACHMENTS","REQUIRED_ATTACHMENTS","CONFIRM_SUMMARY","SIGN","SIGN_QUALIFIED","SIGN_STATUS","SIGN_LINK","SIGN_CANCEL","JNLP_URL","IS_EPUAP_AVAILABLE","IS_EDO_AVAILABLE","CARD_PROPERTIES","DRIVER_CARD","TEMPORARY_DRIVER_CARD","WORKSHOP_CARD","CONTROL_CARD","COMPANY_CARD","SAVE_CARD_SHIPPING_ADDRESS","SAVE_SHIPPING_ADDRESSES","IS_PAPER","PERSONS","STATUS","STATUSES","BACK","PERSONAL","PROCEED_ATTACHMENTS","COMPLAINT","COMPLAINT_REASONS","SUMMARY_AGGREGATION","PAYMENT_MANUAL","ERROR_ENTRIES","ERROR_ENTRIES_FILTERS","PARAM_NAME","PERSONAL_DATA","ATTACHMENTS_ONLY","RESET_PASSWORD","CHANGE_PASSWORD","HOLIDAYS","EXAM_SCHEDULE","OSKS","CITYID_FILTER","RESERVATIONS","CANCEL","PDFS","ACCOUNT","PROVINCES","CITIES","DISTRICT_OFFICES","CENTERS","SCHEDULE","WORDS","OFFLINE","DEALS","STC_PACK","TOKEN","NEW","SSI","REGISTRATION_DOCUMENT","PKK","DRIVER_LICENCE","ADR","SUBSCRIPTIONS","WEBPUSH","KEY","TOPICS","PIK_PAYMENT","MAP","CATALOG","CATEGORY","DOCUMENT_PAYMENT","PURCHASE","PAYED","ATTESTATION","REPORT","WordConfirmationService","WordPaymentConfirmationGuard","wordPaymentConfirmation","reservationId","APP_ROUTING","loadChildren","__webpack_require__","bind","m","SearchResultsModule","all","MainPageModule","ServiceCategoryModule","LoginModule","MyAccountModule","RegistrationModule","WordExamRegistrationModule","StcModule","ObtainTachographCardModule","ComplaintModule","ReportCardDamageOrLossModule","loadComponent","providers","MailPaymentConfirmationComponent","WordConfirmationComponent","ConfirmationModule","NewsModule","DriversLicenseModule","VehicleRegistrationModule","AdrModule","TrainingCardsModule","ExternalPaymentsModule","FAST_PAYMENTS_ROUTING","InfoPagesModule","redirectTo","OVERPAY_RETURN","OverpayReturnModule","AppVersionChangedModalComponent","onConfirmClick","AppVersionService","checkAppVersion","time","version","AcceptancesModalComponent_div_0_app_acceptances_checkboxes_9_Template","save","AcceptancesModalComponent","accService","tosr","updatedAcceptances","actualAcceptances","userMail","createFormValidation","AcceptancesModalComponent_div_0_Template","TranslationModalComponent","lastUrl","lastRoute","routerEvent","goBack","TRANSLATED_PAGES","LanguageService","checkIfStartWithRoute","splitedRoute","firstPart","secondPart","detectTranslatedPage","lng","FOOTER_LINKS","facebook","twitter","middle","firstColumn","about","routerLink","privacyPolicy","fragment","siteMap","secondColumn","driverLicense","tachograph","adr","thirdColumn","partners","myAccount","register","contact","tachographColumn","tachograph_phone","tachograph_email","otherColumn","other_phone","other_email","bottom","edoApp","edoPost","sigillum","exciseBand","peopleAndDocs","FooterTopComponent","FooterTopComponent_div_0_Template","product_r1","FooterProductsComponent_div_0_a_5_Template","otherProducts","FooterProductsComponent","FooterProductsComponent_div_0_Template","item_r1","FooterContentComponent_li_6_a_1_Template","FooterContentComponent_li_6_a_2_Template","FooterContentComponent_div_14_li_2_span_1_Template","FooterContentComponent_div_14_li_2_a_2_Template","FooterContentComponent_div_14_li_2_Template","itemColumn_r5","FooterContentComponent","appLanguage","currentLng","firstColumnAsArray","secondColumnAsArray","thirdColumnAsArray","tachographColumnAsArray","otherColumnAsArray","FooterContentComponent_li_6_Template","FooterContentComponent_li_9_Template","FooterContentComponent_li_12_Template","FooterContentComponent_div_14_Template","FooterComponent","footerTexts","FooterComponent_footer_0_Template","LoaderStripeComponent","onRouterEvent","isOpenedNotFromRouter","updateIsOpened","NavigationCancel","NavigationError","isOpenedFromRouter","LoaderStripeComponent_div_0_Template","HeaderMinimalComponent","onClickScroll","scrollElement","nextSibling","nextElementSibling","SearchModalComponent","service_r4","setActiveServiceCategory","onLogout","HeaderCategoriesComponent","selectOption","changeLng","aboutLink","userResult","activeServiceCategory","lang","HeaderCategoriesComponent_a_2_Template","HeaderCategoriesComponent_div_9_Template","HeaderCategoriesComponent_div_16_Template","onMyAccountClick","auth_r7","_r8","HeaderComponent_ng_container_39_ng_container_3_a_1_Template","HeaderComponent_ng_container_39_ng_container_3_ng_template_2_Template","anonymousMobile_r9","_r10","onAuthRetryClick","_r11","_r12","HeaderComponent_ng_container_39_ng_container_9_div_1_Template","HeaderComponent_ng_container_39_ng_container_9_ng_template_2_Template","anonymous_r13","_r14","HeaderComponent_ng_container_39_ng_container_3_Template","HeaderComponent_ng_container_39_ng_container_4_Template","HeaderComponent_ng_container_39_ng_container_5_Template","HeaderComponent_ng_container_39_ng_container_9_Template","HeaderComponent_ng_container_39_ng_container_10_Template","HeaderComponent_ng_container_39_ng_container_11_Template","onSearchIconClick","_r15","menuOnClick","HeaderComponent","viewportScroller","auth$","catOpen","catOnClick","closeMenuIfOpen","routeSubscribcion","HeaderComponent_a_13_Template","HeaderComponent_ng_container_30_Template","HeaderComponent_ng_container_39_Template","HeaderComponent_p_47_Template","HeaderComponent_ng_template_48_Template","HeaderComponent_app_header_categories_50_Template","HeaderComponent_div_51_Template","closed_r16","NgbDropdownModule","count_r3","LayoutComponent_ng_container_1_app_info_bar_1_Template","ctx_r3","infobars$","changeLngMethod","LayoutComponent","activationService","language","showElements","showOnlyLogo","hideInfobars","onlyLogoComponents","PoskPaymentComponent","PoskPaymentConfirmationComponent","FastPaymentConfirmation","EspPaymentConfirmation","noInfobarsComponents","res","checkIfShowElement","componentsList","onComponentActivated","i8","i9","LayoutComponent_ng_container_1_Template","LayoutComponent_Conditional_2_Template","LayoutComponent_Conditional_3_Template","LayoutComponent_app_breadcrumbs_4_Template","AppComponent","appVersionService","routerLoaded","focusOnTab","waitForRouterToResolveData","use","appVersion","modalTimeout","routerSubscription","addFocusClass","removeFocusClass","routerEventsSubscription","LoaderStripeModule","LayoutService","layoutInitialState","infoBarsData","headerData","footerData","layoutReducer","selectLayoutState","selectHeaderData","selectFooterData","selectInfoBarsData","LayoutModule","fromLayout","HttpLoaderFactory","TranslateHttpLoader","appInitializerFactory","LOCATION_INITIALIZED","langToSet","registerLocaleData","localePL","AppModule","bootstrap","TranslateService","BrowserModule","BrowserAnimationsModule","preventDuplicates","positionClass","resetTimeoutOnDuplicate","onSameUrlNavigation","scrollPositionRestoration","preloadingStrategy","NoPreloading","anchorScrolling","enableTracing","loader","TranslateLoader","HttpClient","HttpClientModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","moduleRef","ApplicationRef","components","enableDebugTools","catch"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/app-language.enum.ts","./src/app/application-landing-pages/complaint/_consts/complaint-route.const.ts","./src/app/application-landing-pages/obtain-tachograph-card/_consts/obtain-tachograph-route.const.ts","./src/app/applications/adr/_consts/adr-routes.const.ts","./src/app/applications/drivers-license/_consts/driver-license-routes.ts","./src/app/applications/payment-confirmation/_consts/payment-confirmation-route.const.ts","./src/app/applications/payment-confirmation/_services/payment-confirmation.service.ts","./src/app/applications/payment-confirmation/_services/payment-confirmation.resolver.ts","./src/app/applications/payment-confirmation/mail-payment-confirmation/const/mail-payment-confirmation.route.const.ts","./src/app/applications/stc/_consts/stc-route.const.ts","./src/app/applications/stc/checking-stc-application-status/_consts/checking-stc-application-status-route.const.ts","./src/app/applications/stc/company-card-application/_consts/company-card-application.route.const.ts","./src/app/applications/stc/company-card-application/application-reason/_consts/application-reason.route.const.ts","./src/app/applications/stc/company-card-application/attachments/_consts/attachments.route.const.ts","./src/app/applications/stc/company-card-application/complaint-reason/_consts/complaint-reason.route.const.ts","./src/app/applications/stc/company-card-application/payment/_consts/payment.route.const.ts","./src/app/applications/stc/company-card-application/personal-data/_consts/personal-data.route.const.ts","./src/app/applications/stc/company-card-application/summary/_consts/summary.route.const.ts","./src/app/applications/stc/control-card-application/_consts/control-card-application.route.const.ts","./src/app/applications/stc/control-card-application/application-reason/_consts/application-reason.route.const.ts","./src/app/applications/stc/control-card-application/attachments/_consts/attachments.route.const.ts","./src/app/applications/stc/control-card-application/complaint-reason/_consts/complaint-reason.route.const.ts","./src/app/applications/stc/control-card-application/payment/_consts/payment-route.const.ts","./src/app/applications/stc/control-card-application/personal-data/_consts/personal-data.route.const.ts","./src/app/applications/stc/control-card-application/summary/_consts/summary.route.const.ts","./src/app/applications/stc/driver-card-application/_consts/driver-card-application.route.const.ts","./src/app/applications/stc/driver-card-application/application-reason/_consts/application-reason.route.const.ts","./src/app/applications/stc/driver-card-application/attachments/_consts/attachments.route.const.ts","./src/app/applications/stc/driver-card-application/complaint-reason/_consts/complaint-reason-route.const.ts","./src/app/applications/stc/driver-card-application/payment/_consts/payment-route.const.ts","./src/app/applications/stc/driver-card-application/personal-data/_consts/personal-data.route.const.ts","./src/app/applications/stc/driver-card-application/summary/_consts/summary.route.const.ts","./src/app/applications/stc/overpay-return/consts/overpay-return-routes.const.ts","./src/app/applications/stc/report-card-damage-or-loss/_consts/report-card-damage-or-loss-routes.conts.ts","./src/app/applications/stc/temporary-driver-card-application/_consts/temporary-driver-card-application.route.const.ts","./src/app/applications/stc/temporary-driver-card-application/application-reason/_consts/application-reason.route.const.ts","./src/app/applications/stc/temporary-driver-card-application/attachments/_consts/attachments.route.const.ts","./src/app/applications/stc/temporary-driver-card-application/complaint-reason/_consts/complaint-reason-route.const.ts","./src/app/applications/stc/temporary-driver-card-application/payment/_consts/payment-route.const.ts","./src/app/applications/stc/temporary-driver-card-application/personal-data/_consts/personal-data.route.const.ts","./src/app/applications/stc/temporary-driver-card-application/summary/_consts/summary.route.const.ts","./src/app/applications/stc/workshop-card-application/_consts/workshop-card-application.route.const.ts","./src/app/applications/stc/workshop-card-application/application-reason/_consts/application-reason.route.const.ts","./src/app/applications/stc/workshop-card-application/attachments/_consts/attachments.route.const.ts","./src/app/applications/stc/workshop-card-application/complaint-reason/_consts/complaint-reason.route.const.ts","./src/app/applications/stc/workshop-card-application/payment/_consts/payment-route.const.ts","./src/app/applications/stc/workshop-card-application/personal-data/_consts/personal-data.route.const.ts","./src/app/applications/stc/workshop-card-application/summary/_consts/summary.route.const.ts","./src/app/applications/training-cards/_consts/training-cards-route.const.ts","./src/app/applications/training-cards/_consts/training-informaion-route.const.ts","./src/app/applications/training-cards/application-process/payment-step/_consts/payment-step-route.const.ts","./src/app/applications/training-cards/application-process/personal-data-step/_consts/personal-data-step-route.const.ts","./src/app/applications/training-cards/application-process/summary-step/_consts/summary-step-route.const.ts","./src/app/applications/vehicle-registration/_consts/vehicle-registration.routes.ts","./src/app/applications/vehicle-registration/checking-registration-document-status/_consts/checking-registration-document-status.routes.ts","./src/app/applications/word-exam-registration/_consts/word-exam-route.const.ts","./src/app/applications/word-exam-registration/confirmation-step/_const/confirmation-step-route.const.ts","./src/app/applications/word-exam-registration/registration-process/calendar-step/_const/calendar-step-route.const.ts","./src/app/applications/word-exam-registration/registration-process/details-step/_const/details-step-route.const.ts","./src/app/applications/word-exam-registration/registration-process/examination-center-step/_const/examination-center-step.route.const.ts","./src/app/applications/word-exam-registration/registration-process/payment-step/_const/personal-data-step-route.const.ts","./src/app/applications/word-exam-registration/registration-process/personal-data-step/_const/personal-data-step-route.const.ts","./src/app/applications/word-exam-registration/registration-process/summary-step/_const/summary-step-route.const.ts","./src/app/core/_consts/employer-types.ts","./src/app/core/_store/search.action.ts","./src/app/core/_store/search.reducer.ts","./src/app/core/_store/type.action.ts","./src/app/core/_store/type.reducer.ts","./src/app/core/auth/auth-error-logger.service.ts","./src/app/core/auth/auth.config.ts","./src/app/core/auth/auth-helper.service.ts","./src/app/core/auth/auth-query.service.ts","./src/app/core/auth/auth.actions.ts","./src/app/core/auth/auth.const.ts","./src/app/core/auth/auth.effects.ts","./src/app/core/auth/auth.reducer.ts","./src/app/core/auth/auth.service.ts","./src/app/core/_consts/user-roles.const.ts","./src/app/core/auth/in-memory-auth-storage.ts","./src/app/core/auth/auth.module.ts","./src/app/core/error/error.component.html","./src/app/core/error/error.component.ts","./src/app/core/error/_consts/error-routing.const.ts","./src/app/core/error/errors-handler/errors-handler.ts","./src/app/core/error/error.module.ts","./src/app/core/interceptors/http-error.interceptor.ts","./src/app/core/interceptors/language-header.interceptor.ts","./src/app/core/startup/application-startup.service.ts","./src/app/core/interceptors/blob-error-http.interceptor.ts","./src/app/core/interceptors/stc-paper.interceptor.ts","./src/app/core/core.module.ts","./src/app/core/error/_consts/error-route.const.ts","./src/app/core/guard/anonymous-guard.ts","./src/app/core/guard/auth-guard.ts","./src/app/core/guard/company-guard.ts","./src/app/core/services/acceptances-service.ts","./src/app/core/services/employer-type.service.ts","./src/app/external-payments/esp-payment/_consts/esp-payment-route.const.ts","./src/app/external-payments/esp-payment/_models/esp-payment.model.ts","./src/app/external-payments/esp-payment/_services/esp-payment.service.ts","./src/app/external-payments/esp-payment/payment-confirmation/payment-confirmation.component.html","./src/app/external-payments/esp-payment/payment-confirmation/payment-confirmation.component.ts","./src/app/external-payments/esp-payment/payment/payment.component.html","./src/app/external-payments/esp-payment/payment/payment.component.ts","./src/app/external-payments/fast-payments/_consts/fast-payments-route.const.ts","./src/app/external-payments/fast-payments/_services/fast-payments.service.ts","./src/app/external-payments/fast-payments/payment-confirmation/payment-confirmation.component.html","./src/app/external-payments/fast-payments/payment-confirmation/payment-confirmation.component.ts","./src/app/external-payments/fast-payments/components/fast-payments-table/fast-payments-table.component.html","./src/app/external-payments/fast-payments/components/fast-payments-table/fast-payments-table.component.ts","./src/app/external-payments/fast-payments/_model/fast-payments.model.ts","./src/app/external-payments/fast-payments/payment/fast-payments.component.html","./src/app/external-payments/fast-payments/payment/fast-payments.component.ts","./src/app/external-payments/posk-payment/_consts/posk-payment-route.const.ts","./src/app/external-payments/posk-payment/_models/posk-payment.model.ts","./src/app/external-payments/posk-payment/_services/posk-payment.service.ts","./src/app/external-payments/posk-payment/payment-confirmation/payment-confirmation.component.html","./src/app/external-payments/posk-payment/payment-confirmation/payment-confirmation.component.ts","./src/app/external-payments/posk-payment/payment/format-posk-licence-type.pipe.ts","./src/app/external-payments/posk-payment/payment/payment.component.html","./src/app/external-payments/posk-payment/payment/payment.component.ts","./src/app/info-pages/_consts/info-pages-route.const.ts","./src/app/layout/_service/activation.service.ts","./src/app/layout/_service/loader-stripe.service.ts","./src/app/shared/directives/text-ellipsis/text-ellipsis.service.ts","./src/app/shared/directives/text-ellipsis/clamp.ts","./src/app/shared/directives/text-ellipsis/text-ellipsis.directive.ts","./src/app/layout/info-bar/info-bar/info-bar.component.html","./src/app/layout/info-bar/info-bar/info-bar.component.ts","./src/app/layout/info-bar/_consts/info-bar.config.ts","./src/app/layout/info-bar/info-bars-facade.service.ts","./src/app/layout/loaders/loaders.component.html","./src/app/layout/loaders/loaders.component.ts","./src/app/layout/loaders/loaders.enum.ts","./src/app/layout/loaders/loaders.service.ts","./src/app/login/_consts/login-route.const.ts","./src/app/main-page/_resolver/account-activation.resolver.ts","./src/app/main-page/search-page-section/search-page-section.component.ts","./src/app/main-page/search-page-section/search-page-section.component.html","./src/app/main-page/categories-services/categories-services.component.html","./src/app/main-page/categories-services/categories-services.component.ts","./src/app/main-page/slider/slider.component.html","./src/app/main-page/slider/slider.component.ts","./src/app/main-page/news-page-section/news-page-section.component.html","./src/app/main-page/news-page-section/news-page-section.component.ts","./src/app/main-page/main-page.component.ts","./src/app/main-page/main-page.component.html","./src/app/main-page/_consts/main-page-routing.const.ts","./src/app/main-page/slider/service/slider.service.ts","./src/app/main-page/_resolver/main-page.resolver.ts","./src/app/main-page/_service/main-page.service.ts","./src/app/main-page/_store/main-page.action.ts","./src/app/main-page/_store/main-page.reducer.ts","./src/app/my-account/_consts/my-account-route.const.ts","./src/app/my-account/company-employees/_consts/company-employees.route.const.ts","./src/app/my-account/exams/_consts/exams.route.const.ts","./src/app/my-account/list-applications/_consts/list-applications.route.const.ts","./src/app/my-account/notifications-panel/_consts/notifications-panel.route.const.ts","./src/app/my-account/notifications-panel/notification-form/_consts/notification-form.route.const.ts","./src/app/my-account/settings/_consts/settings-route.const.ts","./src/app/my-account/statements/_consts/statements.route.const.ts","./src/app/news/_consts/new-route.const.ts","./src/app/news/_mock/news.ts","./src/app/news/_store/news-action.ts","./src/app/news/_store/news-reducer.ts","./src/app/news/news.service.ts","./src/app/registration/_consts/registration-routes.const.ts","./src/app/search-results/_consts/search-route.const.ts","./src/app/service-category/_consts/service-category-route.const.ts","./src/app/service-category/services-info-pages/adr/adr-classes/_const/adr-classes-route.ts","./src/app/service-category/services-info-pages/driver-license/dl-legal-regulations/_consts/dl-legal-regulations-route.const.ts","./src/app/service-category/services-info-pages/driver-license/driver-license-categories/_const/driver-license-categories-route.const.ts","./src/app/service-category/services-info-pages/driver-license/faq/_consts/faq-route.const.ts","./src/app/service-category/services-info-pages/driver-license/rules-for-obtaining-permissions/_consts/rules-for-obtaining-permissions-route.const.ts","./src/app/service-category/services-info-pages/driver-license/rules-for-obtaining-professional-permissions/_consts/rules-for-obtaining-professional-permissions-route.const.ts","./src/app/service-category/services-info-pages/driver-license/theoretical-exam-information/_consts/theoretical-exam-information-route.const.ts","./src/app/service-category/services-info-pages/tachograph/contact/_consts/contact-route.const.ts","./src/app/service-category/services-info-pages/tachograph/legal-regulations/_consts/legal-regulations-route.const.ts","./src/app/service-category/services-info-pages/tachograph/partners/_consts/partners-route.const.ts","./src/app/service-category/services-info-pages/vehicle-registration/vehicle-registration-faq/_consts/vehicle-registration-faq.route.ts","./src/app/service-category/services-info-pages/vehicle-registration/vehicle-registration-process-description/_consts/vehicle-registration-process-description.route.ts","./src/app/core/model/acceptances-model.ts","./src/app/shared/components/acceptances-checboxes/_services/acceptances-form-builder.service.ts","./src/app/shared/components/acceptances-checboxes/acceptances-validation.ts","./src/app/shared/components/acceptances-checboxes/acceptances-checboxes.component.html","./src/app/shared/components/acceptances-checboxes/acceptances-checboxes.component.ts","./src/app/shared/components/autopay-terms/services/autopay-terms.service.ts","./src/app/shared/components/autopay-terms/autopay-terms.component.html","./src/app/shared/components/autopay-terms/autopay-terms.component.ts","./src/app/my-account/messages/_consts/messages.route.const.ts","./src/app/shared/components/breadcrumbs/breadcrumb.model.ts","./src/app/shared/components/breadcrumbs/breadcrumbs.component.html","./src/app/shared/components/breadcrumbs/breadcrumbs.component.ts","./src/app/shared/components/breadcrumbs/breadcrumbs.service.ts","./src/app/shared/components/choose-payment-method/choose-payment-method.component.html","./src/app/shared/components/choose-payment-method/choose-payment-method.component.ts","./src/app/shared/components/external-cart-list/external-cart-list.component.html","./src/app/shared/components/external-cart-list/external-cart-list.component.ts","./src/app/shared/components/first-time-autosave-toastr/_consts/autosave.config.ts","./src/app/shared/components/forms/form-checkbox/form-checkbox.component.html","./src/app/shared/components/forms/form-checkbox/form-checkbox.component.ts","./src/app/shared/components/forms/form-input/mask/index.ts","./src/app/shared/components/forms/form-input/mask/date.ts","./src/app/shared/components/forms/form-input/mask/accountNumber.ts","./src/app/shared/components/forms/form-input/form-input.component.html","./src/app/shared/components/forms/form-input/form-input.component.ts","./src/app/shared/components/ghost-button/ghost-button-type.enum.ts","./src/app/shared/components/ghost-button/ghost-button.component.html","./src/app/shared/components/ghost-button/ghost-button.component.ts","./src/app/shared/components/info-box/info-box.component.html","./src/app/shared/components/info-box/info-box.component.ts","./src/app/shared/components/modal/base-modal.ts","./src/app/shared/components/modal/modal-config.ts","./src/app/shared/components/modal/modal-ref.ts","./src/app/shared/components/modal/insertion.directive.ts","./src/app/shared/components/modal/modal.component.ts","./src/app/shared/components/modal/modal.component.html","./src/app/shared/components/modal/modal-injector.ts","./src/app/shared/components/modal/modal.service.ts","./src/app/shared/components/modal/text-information-modal/text-information-modal.component.html","./src/app/shared/components/modal/text-information-modal/text-information-modal.component.ts","./src/app/shared/components/most-popular-services/most-popular-services.component.html","./src/app/shared/components/most-popular-services/most-popular-services.component.ts","./src/app/shared/components/search-bar/search-bar.component.html","./src/app/shared/components/search-bar/search-bar.component.ts","./src/app/shared/consts/search-config.ts","./src/app/shared/consts/api-version.config.ts","./src/app/shared/dictionary/route-dictionary.enum.ts","./src/app/shared/directives/external-link/external-link.directive.ts","./src/app/shared/directives/internal-link/internal-link.directive.ts","./src/app/shared/directives/prevent-double-click/prevent-double-click.directive.ts","./src/app/shared/directives/trigger-click/trigger-click.directive.ts","./src/app/shared/extensions/animations.ts","./src/app/shared/components/created-paper-application-toast/created-paper-application-toast.component.ts","./src/app/shared/components/created-paper-application-toast/created-paper-application-toast.component.html","./src/app/shared/components/first-time-autosave-toastr/first-time-autosave-toastr.component.html","./src/app/shared/components/first-time-autosave-toastr/first-time-autosave-toastr.component.ts","./src/app/shared/extensions/extensions.ts","./src/app/shared/models/applications/application-dto.model.ts","./src/app/shared/models/payment/payment-dto.model.ts","./src/app/shared/models/search/counted-api-response.model.ts","./src/app/shared/pipes/destination.pipe.ts","./src/app/shared/pipes/ellipsis.pipe.ts","./src/app/shared/pipes/safe-html.pipe.ts","./src/app/shared/rx-utils/subscriptions.ts","./src/app/shared/selectable-input/selectable-input.module.ts","./src/app/shared/services/form/base-form-binder.service.ts","./src/app/shared/services/meta-service/meta.service.ts","./src/app/shared/services/route-events-service/route-events.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/store/shared.action.ts","./src/app/shared/store/shared.reducer.ts","./src/app/shared/validation/validation-extensions.const.ts","./src/app/shared/validation/validation-patterns.const.ts","./src/environments/environment.ts","./src/app/applications/payment-confirmation/word-confirmation/_services/word-confirmation.service.ts","./src/app/applications/payment-confirmation/word-confirmation/_services/word-confirmation.guard.ts","./src/app/app-routing.const.ts","./src/app/applications/payment-confirmation/word-confirmation/_consts/word-payment-confirmation-route.const.ts","./src/app/shared/components/modal/app-version-changed-modal/app-version-changed-modal.component.ts","./src/app/shared/components/modal/app-version-changed-modal/app-version-changed-modal.component.html","./src/app/shared/services/app-version/app-version.service.ts","./src/app/layout/acceptances-modal/acceptances-modal.component.html","./src/app/layout/acceptances-modal/acceptances-modal.component.ts","./src/app/shared/components/modal/translation-modal/translation-modal.component.ts","./src/app/shared/components/modal/translation-modal/translation-modal.component.html","./src/app/layout/_const/layout.const.ts","./src/app/layout/_service/language.service.ts","./src/app/layout/footer/_consts/footer-links.const.ts","./src/app/layout/footer/footer-top/footer-top.component.html","./src/app/layout/footer/footer-top/footer-top.component.ts","./src/app/layout/footer/footer-products/footer-products.component.html","./src/app/layout/footer/footer-products/footer-products.component.ts","./src/app/layout/footer/footer-content/footer-content.component.html","./src/app/layout/footer/footer-content/footer-content.component.ts","./src/app/layout/footer/footer.component.html","./src/app/layout/footer/footer.component.ts","./src/app/layout/loader-stripe/loader-stripe.component.html","./src/app/layout/loader-stripe/loader-stripe.component.ts","./src/app/layout/header-minimal/header-minimal.component.ts","./src/app/layout/header-minimal/header-minimal.component.html","./src/app/shared/components/modal/search-modal/search-modal.component.ts","./src/app/shared/components/modal/search-modal/search-modal.component.html","./src/app/layout/header/header-categories-mobile/header-categories.component.html","./src/app/layout/header/header-categories-mobile/header-categories.component.ts","./src/app/layout/header/header.component.html","./src/app/layout/header/header.component.ts","./src/app/layout/layout.component.html","./src/app/layout/layout.component.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/layout/loader-stripe/loader-stripe.module.ts","./src/app/layout/_service/layout.service.ts","./src/app/layout/_store/layout.action.ts","./src/app/layout/_store/layout.reducer.ts","./src/app/layout/layout.module.ts","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["export enum AppLanguage {\n POLISH = 'pl',\n UKRAINIAN = 'ua'\n}\n","export const COMPLAINT_ROUTE =\n 'tachograf/zloz-reklamacje-karty-do-tachografu-i-uzyskaj-karte-zastepcza';\nexport const STC_COMPLAINT_APPLICATION_ROUTE = 'reklamacje';\n","export const OBTAIN_TACHOGRAPH_CARD_ROUTE = 'tachograf/uzyskaj-karte-do-tachografu';\n","export const ADR_CHECKING_STATUS_ROUTE = 'status-adr';\n","export const DRIVERS_LICENCE_ROUTE = 'prawo-jazdy';\nexport const CHECK_PKK_STATUS_ROUTE = 'sprawdz-status-pkk';\nexport const CHECK_DRIVERS_LICENSE_STATUS_ROUTE = 'sprawdz-status-prawa-jazdy';\nexport const CHECK_EXAM_AVAILABILITY_ROUTE = 'sprawdz-wolny-termin';\n","export const PAYMENT_CONFIRMATION_ROUTE = 'payment';\nexport const PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE = 'payment/:billid';\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { STC_V2 } from 'src/app/shared/consts/api-version.config';\nimport { PaymentDto, PaymentDtoV2 } from 'src/app/shared/models/payment/payment-dto.model';\nimport { environment as env } from 'src/environments/environment';\n\nconst PAYMENT_CONFIRMATION_ENDPOINT = '/payment-confirmation';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentConfirmationService {\n constructor(private httpClient: HttpClient) {}\n\n headers = new HttpHeaders({\n 'Content-Type': STC_V2,\n Accept: STC_V2\n });\n\n getPaymentSummary$(billId: string): Observable {\n return this.httpClient.get(\n `${env.BACKEND_API.BASE}${env.BACKEND_API.PAYMENTS}/${billId}`, {headers: this.headers}\n );\n }\n\n getManualPaymentSummary$(applicationId: string): Observable {\n return this.httpClient.get(\n `${env.BACKEND_API.BASE}${env.BACKEND_API.PAPER_FORM}/${applicationId}${env.BACKEND_API.MANUAL_PAYMENT_SUMMARY}`\n );\n }\n}\n","import { Extensions } from 'src/app/shared/extensions/extensions';\nimport { TACHOGRAPH_ROUTE } from './../../../service-category/_consts/service-category-route.const';\nimport { StcLeavingApplicationCanDeactivateGuard } from './../../stc/_guard/stc-leaving-application-can-deactivate-guard';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Injectable, NgZone } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, forkJoin, of, interval, EMPTY } from 'rxjs';\nimport { filter, map, take, tap, first, mergeMap, repeatWhen, delay, expand, takeWhile } from 'rxjs/operators';\nimport { MY_ACCOUNT_ROUTE } from 'src/app/my-account/_consts/my-account-route.const';\nimport { LIST_APPLICATIONS_ROUTE } from 'src/app/my-account/list-applications/_consts/list-applications.route.const';\nimport { PaymentDto, PaymentDtoV2, PaymentStatus } from 'src/app/shared/models/payment/payment-dto.model';\n\nimport { PaymentConfirmationService } from './payment-confirmation.service';\nimport { AuthService } from 'src/app/core/auth';\nimport { data } from 'jquery';\nimport { MAIL_PAYMENT_CONFIRMATION } from '../mail-payment-confirmation/const/mail-payment-confirmation.route.const';\n\n@Injectable()\nexport class PaymentConfirmationResolver {\n isIndividual: boolean;\n isAnonymous: boolean;\n attempCounter: number = 0;\n isBussiness: boolean;\n constructor(\n private paymentConfirmationService: PaymentConfirmationService,\n private auth: AuthService,\n private router: Router,\n private toastr: ToastrService,\n private translate: TranslateService\n ) {}\n\n getPaymentInfo(id: string) {\n return this.paymentConfirmationService.getPaymentSummary$(id)\n }\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | PaymentDtoV2 {\n return this.auth.state$.pipe(\n filter(state => state.status === 'initialized'),\n first(),\n tap((state) => {\n this.isIndividual = AuthService.isIndividualUser(state.user);\n this.isAnonymous = state.anonymous && (!!sessionStorage.getItem('anonymousToken') || !!Extensions.getCookie('anonymousToken'));\n this.isBussiness = AuthService.isBusinessUser(state.user);\n }),\n mergeMap(() => {\n if(!this.isIndividual && !this.isBussiness && !this.isAnonymous && !!sessionStorage.getItem('paperOwnerId')) {\n this.router.navigateByUrl(`${TACHOGRAPH_ROUTE}/${MAIL_PAYMENT_CONFIRMATION}`)\n } else if(route.queryParamMap.get('type') !== 'manual-payment') {\n return this.getPaymentInfo(route.paramMap.get('billid'))\n .pipe(\n expand(response => {\n if(response.paymentStatus === PaymentStatus.AUTHPENDING) {\n return this.getPaymentInfo(route.paramMap.get('billid')).pipe(delay(3000));\n } else {\n return EMPTY;\n }\n }),\n take(4),\n map((data: PaymentDtoV2) => {\n let toastrMessage: string;\n let toastrType: any;\n switch (data.paymentStatus) {\n case PaymentStatus.AUTHACCEPTED:\n toastrMessage = this.translate.instant('TOASTR.PAYMENT.PAYMENT_SUCCES');\n toastrType = (message: string) => this.toastr.success(message);\n break;\n case PaymentStatus.AUTHPENDING:\n toastrMessage = this.translate.instant('TOASTR.PAYMENT.PAYMENT_PENDING');\n toastrType = (message: string) => this.toastr.info(message);\n break;\n case PaymentStatus.AUTHREJECTED:\n toastrMessage = this.translate.instant('TOASTR.PAYMENT.PAYMENT_REJECTED');\n toastrType = (message: string) => this.toastr.warning(message);\n break;\n default:\n toastrMessage = null;\n toastrType = (message: string) => this.toastr.info(message);\n }\n\n if ((this.isIndividual || this.isAnonymous) && data.paymentStatus !== PaymentStatus.AUTHREJECTED) {\n this.toastr.clear();\n toastrType(toastrMessage);\n return data;\n } else if(this.isAnonymous && PaymentStatus.AUTHREJECTED) {\n this.toastr.clear();\n toastrType(toastrMessage);\n return data;\n } else {\n this.router.navigate(['/', MY_ACCOUNT_ROUTE, LIST_APPLICATIONS_ROUTE]).then(() => {\n toastrType(toastrMessage);\n });\n }\n })\n );\n } else {\n return this.paymentConfirmationService.getManualPaymentSummary$(route.paramMap.get('billid'));\n }\n })\n );\n }\n}\n","export const MAIL_PAYMENT_CONFIRMATION = 'potwierdzenie-platnosci';","import { TACHOGRAPH_ROUTE } from 'src/app/service-category/_consts/service-category-route.const';\n\nexport const STC_APPLICATIONS_ROUTE = 'wnioski';\nexport const STC_COMPLAINTS_ROUTE = 'reklamacje';\nexport const STC_CORRECTIONS_ROUTE = 'korekty';\n\nexport const STC_TACHOGRAPH_APPLICATIONS_ROUTE = TACHOGRAPH_ROUTE + '/' + STC_APPLICATIONS_ROUTE;\nexport const STC_TACHOGRAPH_COMPLAINTS_ROUTE = TACHOGRAPH_ROUTE + '/' + STC_COMPLAINTS_ROUTE;\nexport const STC_TACHOGRAPH_CORRECTIONS_ROUTE = TACHOGRAPH_ROUTE + '/' + STC_CORRECTIONS_ROUTE;\nexport const STC_MAIL_PAYMENT = 'zaplac-za-wniosek/:id/:ownerId'\n","export const CHECKING_STC_APPLICATION_STATUS_ROUTE =\n 'sprawdz-czy-twoja-karta-do-tachografu-jest-gotowa';\n","import {COMPANY_CARD_APPLICATION_REASON_ROUTE} from '../application-reason/_consts/application-reason.route.const';\nimport {\n COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE\n} from '../personal-data/_consts/personal-data.route.const';\nimport {COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE} from '../attachments/_consts/attachments.route.const';\nimport {COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE} from '../summary/_consts/summary.route.const';\nimport {COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE} from '../payment/_consts/payment.route.const';\nimport {COMPANY_CARD_COMPLAINT_REASON_ROUTE} from '../complaint-reason/_consts/complaint-reason.route.const';\nimport {\n STC_TACHOGRAPH_APPLICATIONS_ROUTE,\n STC_TACHOGRAPH_COMPLAINTS_ROUTE,\n STC_TACHOGRAPH_CORRECTIONS_ROUTE\n} from '../../_consts/stc-route.const';\n\nexport const COMPANY_CARD_APPLICATION_ROUTE = 'karta-przedsiebiorstwa';\n\nexport const INDIVIDUAL_COMPANY_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_COMPANY_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_COMPANY_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_COMPANY_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_COMPANY_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_COMPANY_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${COMPANY_CARD_APPLICATION_ROUTE}/${COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n","export const COMPANY_CARD_APPLICATION_REASON_ROUTE = 'powod-skladania-wniosku';\n","export const COMPANY_CARD_APPLICATION_ATTACHMENTS_ROUTE = 'zalaczniki';\nexport const COMPANY_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE = ':id/zalaczniki';\n","export const COMPANY_CARD_COMPLAINT_REASON_ROUTE = 'powod-skladania-reklamacji';\n","export const COMPANY_CARD_APPLICATION_PAYMENT_ROUTE = 'platnosc';\nexport const COMPANY_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const COMPANY_CARD_APPLICATION_PERSONAL_DATA_ROUTE = 'dane-osobowe';\nexport const COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const COMPANY_CARD_APPLICATION_SUMMARY_ROUTE = 'podsumowanie-i-podpis';\nexport const COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE = ':id/podsumowanie-i-podpis';\nexport const COMPANY_CARD_APPLICATION_SUMMARY_ROUTE_SIGN = 'podsumowanie-i-podpis/sign';\nexport const COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN =\n ':id/podsumowanie-i-podpis/sign';\nexport const COMPANY_CARD_APPLICATION_SUMMARY_ROUTE_SIGN_ERROR = 'podsumowanie-i-podpis/sign-error';\nexport const COMPANY_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR =\n ':id/podsumowanie-i-podpis/sign-error';\n","import {CONTROL_CARD_APPLICATION_REASON_ROUTE} from '../application-reason/_consts/application-reason.route.const';\nimport {\n CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE\n} from '../personal-data/_consts/personal-data.route.const';\nimport {CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE} from '../attachments/_consts/attachments.route.const';\nimport {CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE} from '../summary/_consts/summary.route.const';\nimport {CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE} from '../payment/_consts/payment-route.const';\nimport {CONTROL_CARD_COMPLAINT_REASON_ROUTE} from '../complaint-reason/_consts/complaint-reason.route.const';\nimport {\n STC_TACHOGRAPH_APPLICATIONS_ROUTE,\n STC_TACHOGRAPH_COMPLAINTS_ROUTE,\n STC_TACHOGRAPH_CORRECTIONS_ROUTE\n} from '../../_consts/stc-route.const';\n\nexport const CONTROL_CARD_APPLICATION_ROUTE = 'karta-kontrolna';\n\nexport const INDIVIDUAL_CONTROL_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_CONTROL_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_CONTROL_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_CONTROL_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_CONTROL_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_CONTROL_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${CONTROL_CARD_APPLICATION_ROUTE}/${CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n","export const CONTROL_CARD_APPLICATION_REASON_ROUTE = 'powod-skladania-wniosku';\n","export const CONTROL_CARD_APPLICATION_ATTACHMENTS_ROUTE = 'zalaczniki';\nexport const CONTROL_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE = ':id/zalaczniki';\n","export const CONTROL_CARD_COMPLAINT_REASON_ROUTE = 'powod-skladania-reklamacji';\n","export const CONTROL_CARD_APPLICATION_PAYMENT_ROUTE = 'platnosc';\nexport const CONTROL_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const CONTROL_CARD_APPLICATION_PERSONAL_DATA_ROUTE = 'dane-osobowe';\nexport const CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const CONTROL_CARD_APPLICATION_SUMMARY_ROUTE = 'podsumowanie-i-podpis';\nexport const CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE = ':id/podsumowanie-i-podpis';\nexport const CONTROL_CARD_APPLICATION_SUMMARY_ROUTE_SIGN = 'podsumowanie-i-podpis/sign';\nexport const CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN =\n ':id/podsumowanie-i-podpis/sign';\nexport const CONTROL_CARD_APPLICATION_SUMMARY_ROUTE_SIGN_ERROR = 'podsumowanie-i-podpis/sign-error';\nexport const CONTROL_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR =\n ':id/podsumowanie-i-podpis/sign-error';\n","import {DRIVER_CARD_APPLICATION_REASON_ROUTE} from '../application-reason/_consts/application-reason.route.const';\nimport {\n DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE\n} from '../personal-data/_consts/personal-data.route.const';\nimport {DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE} from '../attachments/_consts/attachments.route.const';\nimport {DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE} from '../summary/_consts/summary.route.const';\nimport {DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE} from '../payment/_consts/payment-route.const';\nimport {DRIVER_CARD_COMPLAINT_REASON_ROUTE} from '../complaint-reason/_consts/complaint-reason-route.const';\nimport {\n STC_TACHOGRAPH_APPLICATIONS_ROUTE,\n STC_TACHOGRAPH_COMPLAINTS_ROUTE,\n STC_TACHOGRAPH_CORRECTIONS_ROUTE\n} from '../../_consts/stc-route.const';\n\nexport const DRIVER_CARD_APPLICATION_ROUTE = 'karta-kierowcy';\n\nexport const INDIVIDUAL_DRIVER_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_DRIVER_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_DRIVER_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_DRIVER_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_DRIVER_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_DRIVER_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${DRIVER_CARD_APPLICATION_ROUTE}/${DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n","export const DRIVER_CARD_APPLICATION_REASON_ROUTE = 'powod-skladania-wniosku';\n","export const DRIVER_CARD_APPLICATION_ATTACHMENTS_ROUTE = 'zalaczniki';\nexport const DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE = ':id/zalaczniki';\n","export const DRIVER_CARD_COMPLAINT_REASON_ROUTE = 'powod-skladania-reklamacji';\n","export const DRIVER_CARD_APPLICATION_PAYMENT_ROUTE = 'platnosc';\nexport const DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const DRIVER_CARD_APPLICATION_PERSONAL_DATA_ROUTE = 'dane-osobowe';\nexport const DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const DRIVER_CARD_APPLICATION_SUMMARY_ROUTE = 'podsumowanie-i-podpis';\nexport const DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE = ':id/podsumowanie-i-podpis';\nexport const DRIVER_CARD_APPLICATION_SUMMARY_ROUTE_SIGN = 'podsumowanie-i-podpis/sign';\nexport const DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN =\n ':id/podsumowanie-i-podpis/sign';\nexport const DRIVER_CARD_APPLICATION_SUMMARY_ROUTE_SIGN_ERROR = 'podsumowanie-i-podpis/sign-error';\nexport const DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR =\n ':id/podsumowanie-i-podpis/sign-error';\n","export const OVERPAY_RETURN_ROUTE = 'zwrot-nadplaty-za-karte-do-tachografu';\nexport const OVERPAY_RETURN_FORM_ROUTE = 'formularz'\nexport const OVERPAY_RETURN_CONFIRMATION_ROUTE = 'potwierdzenie'","export const REPORT_FORM_CONFIRMATION_ROUTE = 'potwierdzenie';\nexport const REPORT_FORM_ROUTE = 'formularz';\nexport const REPORT_CARD_DAMAGE_OR_LOSS_ROUTE =\n 'zglos-zgubienie-uszkodzenie-lub-kradziez-karty-do-tachografu';\n","import {\n STC_TACHOGRAPH_APPLICATIONS_ROUTE,\n STC_TACHOGRAPH_COMPLAINTS_ROUTE,\n STC_TACHOGRAPH_CORRECTIONS_ROUTE\n} from '../../_consts/stc-route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_REASON_ROUTE } from '../application-reason/_consts/application-reason.route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE } from '../attachments/_consts/attachments.route.const';\nimport { TEMPORARY_DRIVER_CARD_COMPLAINT_REASON_ROUTE } from '../complaint-reason/_consts/complaint-reason-route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE } from '../payment/_consts/payment-route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from '../personal-data/_consts/personal-data.route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE } from '../summary/_consts/summary.route.const';\n\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE = 'czasowa-karta-kierowcy';\n\nexport const INDIVIDUAL_TEMPORARY_DRIVER_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_TEMPORARY_DRIVER_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_TEMPORARY_DRIVER_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_TEMPORARY_DRIVER_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_TEMPORARY_DRIVER_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_TEMPORARY_DRIVER_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE}/${TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n","export const TEMPORARY_DRIVER_CARD_APPLICATION_REASON_ROUTE = 'powod-skladania-wniosku';\n","export const TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_ROUTE = 'zalaczniki';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE = ':id/zalaczniki';\n","export const TEMPORARY_DRIVER_CARD_COMPLAINT_REASON_ROUTE = 'powod-skladania-reklamacji';\n","export const TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_ROUTE = 'platnosc';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_ROUTE = 'dane-osobowe';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_ROUTE = 'podsumowanie-i-podpis';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE = ':id/podsumowanie-i-podpis';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_ROUTE_SIGN = 'podsumowanie-i-podpis/sign';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN =\n ':id/podsumowanie-i-podpis/sign';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_ROUTE_SIGN_ERROR = 'podsumowanie-i-podpis/sign-error';\nexport const TEMPORARY_DRIVER_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR =\n ':id/podsumowanie-i-podpis/sign-error';\n","import {WORKSHOP_CARD_APPLICATION_REASON_ROUTE} from '../application-reason/_consts/application-reason.route.const';\nimport {\n WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE\n} from '../personal-data/_consts/personal-data.route.const';\nimport {WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE} from '../attachments/_consts/attachments.route.const';\nimport {WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE} from '../summary/_consts/summary.route.const';\nimport {WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE} from '../payment/_consts/payment-route.const';\nimport {WORKSHOP_CARD_COMPLAINT_REASON_ROUTE} from '../complaint-reason/_consts/complaint-reason.route.const';\nimport {\n STC_TACHOGRAPH_APPLICATIONS_ROUTE,\n STC_TACHOGRAPH_COMPLAINTS_ROUTE,\n STC_TACHOGRAPH_CORRECTIONS_ROUTE\n} from '../../_consts/stc-route.const';\n\nexport const WORKSHOP_CARD_APPLICATION_ROUTE = 'karta-warsztatowa';\n\nexport const INDIVIDUAL_WORKSHOP_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_WORKSHOP_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const INDIVIDUAL_WORKSHOP_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_WORKSHOP_CARD_APPLICATION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\n\nexport const BUSINESS_WORKSHOP_CARD_COMPLAINT_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_COMPLAINT_REASON_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_COMPLAINTS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE}`\n];\nexport const BUSINESS_WORKSHOP_CARD_CORRECTION_STEPS_ROUTES: string[] = [\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE}`,\n `/${STC_TACHOGRAPH_CORRECTIONS_ROUTE}/${WORKSHOP_CARD_APPLICATION_ROUTE}/${WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE}`\n];\n","export const WORKSHOP_CARD_APPLICATION_REASON_ROUTE = 'powod-skladania-wniosku';\n","export const WORKSHOP_CARD_APPLICATION_ATTACHMENTS_ROUTE = 'zalaczniki';\nexport const WORKSHOP_CARD_APPLICATION_ATTACHMENTS_PARAMETRIZED_ROUTE = ':id/zalaczniki';\n","export const WORKSHOP_CARD_COMPLAINT_REASON_ROUTE = 'powod-skladania-reklamacji';\n","export const WORKSHOP_CARD_APPLICATION_PAYMENT_ROUTE = 'platnosc';\nexport const WORKSHOP_CARD_APPLICATION_PAYMENT_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_ROUTE = 'dane-osobowe';\nexport const WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const WORKSHOP_CARD_APPLICATION_SUMMARY_ROUTE = 'podsumowanie-i-podpis';\nexport const WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE = ':id/podsumowanie-i-podpis';\nexport const WORKSHOP_CARD_APPLICATION_SUMMARY_ROUTE_SIGN = 'podsumowanie-i-podpis/sign';\nexport const WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN =\n ':id/podsumowanie-i-podpis/sign';\nexport const WORKSHOP_CARD_APPLICATION_SUMMARY_ROUTE_SIGN_ERROR =\n 'podsumowanie-i-podpis/sign-error';\nexport const WORKSHOP_CARD_APPLICATION_SUMMARY_PARAMETRIZED_ROUTE_SIGN_ERROR =\n ':id/podsumowanie-i-podpis/sign-error';\n","import { SUMMARY_STEP_ROUTE } from './../application-process/summary-step/_consts/summary-step-route.const';\nimport { PERSONAL_DATA_STEP_ROUTE } from './../application-process/personal-data-step/_consts/personal-data-step-route.const';\nimport { PAYMENT_STEP_ROUTE } from '../application-process/payment-step/_consts/payment-step-route.const';\nexport const TRAINING_CARD_ROUTE = 'tachograf/karty-testowe';\n\nexport const TRAINING_CARD_STEPS_ROUTES: string[] = [\n `/${TRAINING_CARD_ROUTE}/${PERSONAL_DATA_STEP_ROUTE}`,\n `/${TRAINING_CARD_ROUTE}/${SUMMARY_STEP_ROUTE}`,\n `/${TRAINING_CARD_ROUTE}/${PAYMENT_STEP_ROUTE}`\n];\n","export const TRAINING_INFO_ROUTE = 'karta-informacyjna';\n","export const PAYMENT_STEP_ROUTE = 'platnosc';\n","export const PERSONAL_DATA_STEP_ROUTE = 'dane-osobowe';\n","export const SUMMARY_STEP_ROUTE = 'podsumowanie';\n","export const VEHICLE_REGISTRATION_ROUTE = 'rejestracja-pojazdu';\n","export const CHECKING_REGISTRATION_DOCUMENT_STATUS_ROUTE = 'sprawdz-status-dowodu-rejestracyjnego';\n","import {\n CALENDAR_STEP_PARAMETRIZED_ROUTE,\n CALENDAR_STEP_ROUTE\n} from 'src/app/applications/word-exam-registration/registration-process/calendar-step/_const/calendar-step-route.const';\nimport {\n EXAMINATION_CENTER_STEP_ROUTE\n} from 'src/app/applications/word-exam-registration/registration-process/examination-center-step/_const/examination-center-step.route.const';\nimport {\n PAYMENT_STEP_PARAMETRIZED_ROUTE\n} from 'src/app/applications/word-exam-registration/registration-process/payment-step/_const/personal-data-step-route.const';\nimport {\n PERSONAL_DATA_STEP_ROUTE\n} from 'src/app/applications/word-exam-registration/registration-process/personal-data-step/_const/personal-data-step-route.const';\nimport {\n SUMMARY_STEP_PARAMETRIZED_ROUTE,\n SUMMARY_STEP_ROUTE\n} from 'src/app/applications/word-exam-registration/registration-process/summary-step/_const/summary-step-route.const';\nimport {DETAILS_STEP_ROUTE} from '../registration-process/details-step/_const/details-step-route.const';\n\nexport const WORD_EXAM_ROUTE = 'prawo-jazdy';\nexport const WORD_EXAM_PROCESS_ROUTE = 'zapisz-sie-na-egzamin-na-prawo-jazdy';\nexport const WORD_RESCHEDULE_RESERVATION = 'zmien-termin-egzaminu-na-prawo-jazdy';\nexport const WORD_RESCHEDULE_RESERVATION_PARAMETRIZED = 'zmien-termin-egzaminu-na-prawo-jazdy/:id';\n\nexport const WORD_EXAM_REGISTRATION_STEPS_ROUTES: string[] = [\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${PERSONAL_DATA_STEP_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${EXAMINATION_CENTER_STEP_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${CALENDAR_STEP_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${DETAILS_STEP_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${SUMMARY_STEP_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${PAYMENT_STEP_PARAMETRIZED_ROUTE}`\n];\n\nexport const WORD_RESCHEDULE_RESERVATION_STEPS_ROUTES: string[] = [\n `/${WORD_EXAM_ROUTE}/${WORD_RESCHEDULE_RESERVATION}/${CALENDAR_STEP_PARAMETRIZED_ROUTE}`,\n `/${WORD_EXAM_ROUTE}/${WORD_RESCHEDULE_RESERVATION}/${SUMMARY_STEP_PARAMETRIZED_ROUTE}`\n];\n","export const CONFIRMATION_STEP_ROUTE = 'potwierdzenie';\n\nexport const CONFIRMATION_STEP_PARAMETRIZED_ROUTE = 'potwierdzenie/:resId';\n","export const CALENDAR_STEP_ROUTE = 'wybor-terminu';\nexport const CALENDAR_STEP_PARAMETRIZED_ROUTE = ':id/wybor-terminu';\n","export const DETAILS_STEP_ROUTE = 'szczegoly-egzaminu';\nexport const DETAILS_STEP_PARAMETRIZED_ROUTE = ':id/szczegoly-egzaminu';\n","export const EXAMINATION_CENTER_STEP_ROUTE = 'osrodek-egzaminacyjny';\nexport const EXAMINATION_CENTER_STEP_PARAMETRIZED_ROUTE = ':id/osrodek-egzaminacyjny';\n","export const PAYMENT_STEP_ROUTE = 'platnosc';\nexport const PAYMENT_STEP_PARAMETRIZED_ROUTE = ':id/platnosc';\n","export const PERSONAL_DATA_STEP_ROUTE = 'dane-osobowe';\nexport const PERSONAL_DATA_STEP_PARAMETRIZED_ROUTE = ':id/dane-osobowe';\n","export const SUMMARY_STEP_ROUTE = 'podsumowanie';\nexport const SUMMARY_STEP_PARAMETRIZED_ROUTE = ':id/podsumowanie';\n","export enum EmployerTypes {\n TRANSPORT_COMPANY = 'TRANSPORT_COMPANY',\n WORKSHOP = 'WORKSHOP',\n CONTROL_AUTHORITY = 'CONTROL_AUTHORITY'\n}\n","import { Action } from '@ngrx/store';\n\nimport { CountedApiResponseModel } from './../../shared/models/search/counted-api-response.model';\nimport { Service } from './../../shared/models/search/service.model';\n\nexport interface SearchAction extends Action {\n type: SearchActionTypes;\n query?: string;\n result?: CountedApiResponseModel;\n}\n\nexport enum SearchActionTypes {\n SET_RESULTS = '[SearchServicesCache] Set',\n LOADING = '[SearchServicesCache] Loading'\n}\n\nexport namespace SearchActions {\n export class SetResultsSearchAction implements SearchAction {\n readonly type = SearchActionTypes.SET_RESULTS;\n constructor(public result: CountedApiResponseModel) {}\n }\n\n export class LoadingResultsSearchAction implements SearchAction {\n readonly type = SearchActionTypes.LOADING;\n constructor(public query: string) {}\n }\n}\n","import { query } from '@angular/animations';\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { CountedApiResponseModel } from 'src/app/shared/models/search/counted-api-response.model';\nimport { Service } from 'src/app/shared/models/search/service.model';\n\nimport { SearchAction, SearchActionTypes } from './search.action';\n\nexport interface SearchCacheState {\n query: string;\n result: CountedApiResponseModel;\n}\n\nconst initialState: SearchCacheState = {\n query: '',\n result: CountedApiResponseModel.empty()\n};\n\nexport function searchCacheReducer(\n state: SearchCacheState = initialState,\n action: SearchAction\n): SearchCacheState {\n switch (action.type) {\n case SearchActionTypes.SET_RESULTS:\n return Object.assign({}, state, {\n query: state.query,\n result: action.result\n });\n case SearchActionTypes.LOADING:\n return Object.assign({}, state, {\n query: action.query,\n result: CountedApiResponseModel.empty()\n });\n default:\n return state;\n }\n}\n\nexport const featureName = 'searchServices';\n\nexport const selectSearchCacheState = createFeatureSelector(featureName);\n\nexport const selectSearchQuery = createSelector(\n selectSearchCacheState,\n (state: SearchCacheState) => state.query\n);\n\nexport const selectSearchResult = createSelector(\n selectSearchCacheState,\n (state: SearchCacheState) => state.result\n);\n","import { Action } from '@ngrx/store';\n\nexport interface EmployerTypeAction extends Action {\n type: EmployerTypeActionTypes;\n}\n\nexport enum EmployerTypeActionTypes {\n SET_TRANSPORT_COMPANY = '[Employer Type] Set As Transport Company',\n SET_WORKSHOP = '[Employer Type] Set As Workshop',\n SET_CONTROL_AUTHORITY = '[Employer Type] Set As Control Authority',\n SET_INITIAL_STATE = '[Employer Type] Set Initial State'\n}\n\nexport class SetAsTransportCompanyAction implements EmployerTypeAction {\n readonly type = EmployerTypeActionTypes.SET_TRANSPORT_COMPANY;\n}\n\nexport class SetAsWorkshopAction implements EmployerTypeAction {\n readonly type = EmployerTypeActionTypes.SET_WORKSHOP;\n}\n\nexport class SetAsControlAuthorityAction implements EmployerTypeAction {\n readonly type = EmployerTypeActionTypes.SET_CONTROL_AUTHORITY;\n}\n\nexport class SetInitialStateAction implements EmployerTypeAction {\n readonly type = EmployerTypeActionTypes.SET_INITIAL_STATE;\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { EmployerTypes } from '../_consts/employer-types';\nimport { EmployerTypeAction, EmployerTypeActionTypes } from './type.action';\n\nexport interface EmployerTypeState {\n type: EmployerTypes;\n}\n\nexport const initialState: EmployerTypeState = {\n type: null\n};\n\nexport function employerTypeReducer(state = initialState, action: EmployerTypeAction) {\n switch (action.type) {\n case EmployerTypeActionTypes.SET_TRANSPORT_COMPANY:\n return Object.assign({}, state, {\n type: EmployerTypes.TRANSPORT_COMPANY\n });\n\n case EmployerTypeActionTypes.SET_WORKSHOP:\n return Object.assign({}, state, {\n type: EmployerTypes.WORKSHOP\n });\n\n case EmployerTypeActionTypes.SET_CONTROL_AUTHORITY: {\n return Object.assign({}, state, {\n type: EmployerTypes.CONTROL_AUTHORITY\n });\n }\n case EmployerTypeActionTypes.SET_INITIAL_STATE: {\n return Object.assign({}, state, {\n type: initialState\n });\n }\n default:\n return state;\n }\n}\n\nexport const featureName = 'employerType';\n\nexport const selectEmployerTypeState = createFeatureSelector(featureName);\n\nexport const selectEmployerType = createSelector(\n selectEmployerTypeState,\n (state: EmployerTypeState) => state.type\n);\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { OAuthErrorEvent, OAuthService } from 'angular-oauth2-oidc';\nimport { filter, withLatestFrom } from 'rxjs/operators';\nimport { Subject, Subscription } from 'rxjs';\n\ninterface AuthErrorCode {\n code: number;\n}\n\ninterface AuthErrorCodeDictionary {\n [key: string]: AuthErrorEntry;\n}\n\ninterface AuthErrorEntry extends AuthErrorCode {\n matchers?: AuthErrorReasonMatcher[];\n}\n\ninterface AuthErrorReasonMatcher extends AuthErrorCode {\n sequence: string;\n}\n\nconst authErrorDictionary: AuthErrorCodeDictionary = {\n discovery_document_load_error: { code: 1010 },\n token_validation_error: {\n code: 1020,\n matchers: [\n { sequence: 'Token has expired', code: 1021 },\n { sequence: 'Wrong issuer', code: 1022 }\n ]\n },\n jwks_load_error: { code: 1030 },\n invalid_nonce_in_state: { code: 1040 },\n discovery_document_validation_error: { code: 1050 },\n user_profile_load_error: { code: 1060 },\n token_error: { code: 1070 },\n code_error: { code: 1080 },\n token_refresh_error: { code: 1090 },\n silent_refresh_error: { code: 1100 },\n token_revoke_error: { code: 1110 },\n default_auth_error: { code: 1000 }\n};\n\n@Injectable()\nexport class AuthErrorLoggerService implements OnDestroy {\n private authErrorLog$: Subject = new Subject();\n private sub: Subscription;\n\n constructor(private toastr: ToastrService, private oauth: OAuthService) {\n this.sub = this.authErrorLog$\n .pipe(\n withLatestFrom(this.oauth.events),\n filter(([, error]) => error instanceof OAuthErrorEvent)\n )\n .subscribe({\n next: ([, error]) => this.handle(error as OAuthErrorEvent)\n });\n }\n\n logError(): void {\n this.authErrorLog$.next();\n }\n\n ngOnDestroy(): void {\n this.authErrorLog$.complete();\n this.sub.unsubscribe();\n }\n\n private handle(error: OAuthErrorEvent): void {\n const { code } = this.getErrorCodeFor(error);\n this.toastr.warning(\n `Logowanie nie powiodło się (kod błędu: ${code}). Spróbuj ponownie za chwilę...`,\n null,\n { disableTimeOut: true, closeButton: true }\n );\n }\n\n private getErrorCodeFor(error: OAuthErrorEvent): AuthErrorCode {\n const reason = typeof error.reason === 'string' ? error.reason : '';\n const defaultEntry = authErrorDictionary['default_auth_error'];\n const foundEntry = authErrorDictionary[`${error.type}`];\n if (!foundEntry) return defaultEntry;\n if (!foundEntry.matchers) return foundEntry;\n const reasonMatcher = foundEntry.matchers.find((matcher) => reason.includes(matcher.sequence));\n return reasonMatcher != null ? reasonMatcher : foundEntry;\n }\n}\n","import { AuthConfig } from 'angular-oauth2-oidc';\nimport { environment as env } from 'src/environments/environment';\n\nexport const authConfig: AuthConfig = {\n issuer: env.AUTH_ISSUER,\n redirectUri: env.REDIRECT_URI,\n silentRefreshRedirectUri: env.SILENT_REFRESH_REDIRECT_URI,\n userinfoEndpoint: env.STC.ME,\n clientId: 'client',\n dummyClientSecret: 'secret',\n scope: 'openid profile email resource.read',\n requireHttps: true,\n disableAtHashCheck: true,\n useHttpBasicAuth: true,\n clearHashAfterLogin: false,\n oidc: true,\n postLogoutRedirectUri: env.REDIRECT_URI,\n logoutUrl: env.AUTH_LOGOUT_URL\n};\n","import {Extensions, setCookieWithHours} from 'src/app/shared/extensions/extensions';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { OAuthService, OAuthStorage } from 'angular-oauth2-oidc';\nimport { User } from '../model/user.model';\nimport { AuthErrorLoggerService } from './auth-error-logger.service';\nimport { authConfig } from './auth.config';\nimport { localStorageLogoutSync, localStorageLoginSync } from './auth.const';\nimport { v4 as uuidv4 } from 'uuid';\nimport { jwtDecode } from \"jwt-decode\";\n\n@Injectable()\nexport class AuthHelperService {\n\n constructor(\n private oauth: OAuthService,\n private router: Router,\n private storage: OAuthStorage,\n private errorLogger: AuthErrorLoggerService,\n ) {}\n\n public configure() {\n this.oauth.configure(authConfig);\n this.oauth.setupAutomaticSilentRefresh();\n }\n\n public autoLogin(): Promise {\n return this.oauth\n .loadDiscoveryDocumentAndTryLogin()\n .then((loggedIn) => this.resolveLoginAttempt(loggedIn))\n .then((loggedIn) => this.resolveUserProfile(loggedIn))\n .then(\n () => this.finishLogin(),\n () => this.loginError()\n );\n }\n\n public refreshUser(): Promise {\n return this.resolveSilentRefresh()\n .then((loggedIn) => this.resolveUserProfile(loggedIn))\n .then(\n () => this.finishRefresh(),\n () => this.loginError()\n );\n }\n\n public tryLogin(url?: string) {\n this.oauth.resetImplicitFlow();\n const redirectUrl = url || '/';\n this.pushRedirectUrl(redirectUrl);\n this.oauth.initImplicitFlow();\n }\n\n public logout() {\n localStorage.setItem(localStorageLogoutSync.key, localStorageLogoutSync.value);\n localStorage.removeItem(localStorageLogoutSync.key);\n this._logout();\n }\n\n public syncLogout() {\n this._logout();\n }\n\n public setAnonymousToken(): void {\n if (!Extensions.getCookie('anonymousToken') && !sessionStorage.getItem('anonymousToken')) {\n setCookieWithHours(`anonymousToken=${uuidv4()};`, 4);\n setCookieWithHours('editableApplication=true;', 4);\n }\n }\n\n syncLogin() {\n window.location.reload();\n }\n\n private resolveLoginAttempt(loggedIn: boolean): Promise {\n if (loggedIn) {\n return Promise.resolve(true);\n }\n return this.resolveSilentRefresh();\n }\n\n private resolveSilentRefresh(): Promise {\n return new Promise((resolve, reject) => {\n this.oauth.silentRefresh().then(\n () => resolve(true),\n (event) => {\n if (\n event.type === 'silent_refresh_error' &&\n event.reason &&\n event.reason.params.error === 'login_required'\n ) {\n resolve(false);\n return;\n }\n reject(false);\n }\n );\n });\n }\n\n private resolveUserProfile(loggedIn: boolean): Promise {\n if (!loggedIn) {\n return Promise.resolve(false);\n }\n\n return new Promise((resolve, reject) => {\n try {\n this.oauth.loadUserProfile().then(\n () => {\n resolve(true);\n },\n () => {\n reject(false);\n }\n );\n } catch (e) {\n reject(false);\n }\n });\n }\n\n private loginError(): Promise {\n this.errorLogger.logError();\n this.router.navigateByUrl('/');\n return Promise.reject();\n }\n\n private redirectAfterLogin() {\n const url = this.popRedirectUrl();\n if (url !== null)\n setTimeout(() => this.router.navigateByUrl(String(url), { replaceUrl: true }), 0);\n }\n\n private finishLogin(): Promise {\n let user: User = null;\n if (this.oauth.hasValidIdToken()) {\n user = this.mapUser();\n this.initLoginSync(user);\n this.redirectAfterLogin();\n }\n return Promise.resolve(user);\n }\n\n private initLoginSync(user: User) {\n localStorage.setItem(localStorageLoginSync.key, user.uuid);\n setTimeout(() => localStorage.removeItem(localStorageLoginSync.key), 500);\n }\n\n private finishRefresh(): Promise {\n let user: User = null;\n if (this.oauth.hasValidIdToken()) {\n user = this.mapUser();\n }\n return Promise.resolve(user);\n }\n\n private mapUser(): User {\n const { authorities, hasAcc } = (jwtDecode(this.oauth.getAccessToken()) as any);\n const { email, name, sub } = JSON.parse(JSON.stringify(this.oauth.getIdentityClaims()));\n return {\n hasAcc: hasAcc,\n email: email,\n firstname: name,\n lastname: '',\n uuid: sub,\n roles: [...authorities]\n };\n }\n\n private _logout() {\n this.oauth.logOut();\n }\n\n private pushRedirectUrl(redirectUrl: string) {\n this.storage.setItem('url', redirectUrl);\n }\n\n private popRedirectUrl(): string {\n const url = this.storage.getItem('url');\n this.storage.removeItem('url');\n return url;\n }\n}\n","import { User } from 'src/app/core/model/user.model';\nimport { Injectable } from '@angular/core';\nimport { createFeatureSelector, select, Store } from '@ngrx/store';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport * as Immutable from 'immutable';\nimport { combineLatest, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map, withLatestFrom } from 'rxjs/operators';\n\nimport * as fromAuth from './auth.reducer';\n\n@Injectable()\nexport class AuthQueryService {\n constructor(private authStore: Store, private oauth: OAuthService) {}\n\n private authSelector = createFeatureSelector(fromAuth.featureName);\n\n public status$: Observable = this.authStore.pipe(\n select(this.authSelector),\n map((state) => state.status),\n distinctUntilChanged()\n );\n\n private _user$: Observable = this.authStore.pipe(\n select(this.authSelector),\n map((state) => state.user)\n );\n\n public user$: Observable = combineLatest([this.status$, this._user$]).pipe(\n filter(([status, user]) => status === 'initialized' || status === 'error' || status === 'anonymous'),\n withLatestFrom(this._user$),\n map(([state, user]) => user),\n distinctUntilChanged(stateComparator)\n );\n\n public state$: Observable = this.authStore.pipe(\n select(this.authSelector),\n distinctUntilChanged(stateComparator)\n );\n\n public silentLogout$: Observable = this.oauth.events.pipe(\n filter(\n (event) => event.type === 'silent_refresh_error' || event.type === 'silent_refresh_timeout'\n ),\n withLatestFrom(this.status$),\n filter(([event, status]) => status === 'initialized'),\n withLatestFrom(this._user$),\n filter(([combined, user]) => !!user),\n map(() => true)\n );\n}\n\nfunction stateComparator(prev: any, curr: any) {\n return Immutable.is(Immutable.fromJS(prev), Immutable.fromJS(curr));\n}\n","import { ObtainCardType } from './../../application-landing-pages/obtain-tachograph-card/_consts/obtain-card.const';\nimport { Action } from '@ngrx/store';\nimport { User } from '../model/user.model';\nimport { ComplaintCardType } from 'src/app/application-landing-pages/complaint/_consts/complaint.const';\n\nexport interface AuthPayload {\n cardType?: ObtainCardType | ComplaintCardType;\n user?: User;\n url?: string;\n hasAcc?: boolean;\n}\nexport interface AuthAction extends Action {\n payload?: AuthPayload;\n}\n\nexport enum AuthActionType {\n AUTH_INIT = '[Auth] init',\n AUTH_READY = '[Auth] ready',\n AUTH_ERROR = '[Auth] error',\n LOGIN = '[Auth] login',\n LOGOUT = '[Auth] logout',\n AUTH_LOGGED = '[Auth] logged',\n AUTH_LOGGED_OUT = '[Auth] logged out',\n SYNC_LOGIN = '[Auth] sync login',\n SYNC_LOGOUT = '[Auth] sync logout',\n SET_USER = '[Auth] set user',\n REFRESH_USER = '[Auth] refresh user',\n SET_ACCEPTANCES = '[Auth] set acceptances',\n ANONYMOUS_LOGIN = '[Auth] anonymous login',\n CLEAR_AUTH = '[Auth] clear auth',\n DISABLE_ANONYMOUS = '[Auth] disable anonymous'\n}\n\nexport namespace AuthActions {\n export class AuthInit implements AuthAction {\n type = AuthActionType.AUTH_INIT;\n constructor() {}\n }\n\n export class AuthReady implements AuthAction {\n type = AuthActionType.AUTH_READY;\n constructor(public payload: { user: User }) {}\n }\n\n export class AuthError implements AuthAction {\n type = AuthActionType.AUTH_ERROR;\n constructor() {}\n }\n\n export class Login implements AuthAction {\n type = AuthActionType.LOGIN;\n constructor(public payload: { url?: string }) {}\n }\n\n export class Logout implements AuthAction {\n type = AuthActionType.LOGOUT;\n }\n\n export class SyncLogin implements AuthAction {\n type = AuthActionType.SYNC_LOGIN;\n }\n\n export class SyncLogout implements AuthAction {\n type = AuthActionType.SYNC_LOGOUT;\n }\n\n export class RefreshUser implements AuthAction {\n type = AuthActionType.REFRESH_USER;\n constructor() {}\n }\n\n export class ClearAuth implements AuthAction {\n type = AuthActionType.CLEAR_AUTH;\n constructor() {}\n }\n\n export class AnonymousLogin implements AuthAction {\n type = AuthActionType.ANONYMOUS_LOGIN;\n constructor() {}\n }\n\n export class AuthenticatedLogged implements AuthAction {\n type = AuthActionType.AUTH_LOGGED\n }\n\n export class AuthenticatedLoggedOut implements AuthAction {\n type = AuthActionType.AUTH_LOGGED_OUT\n }\n\n export class DisableAnonymous implements AuthAction {\n type = AuthActionType.DISABLE_ANONYMOUS;\n constructor() {}\n }\n\n export class SetAcceptances implements AuthAction {\n type = AuthActionType.SET_ACCEPTANCES;\n\n constructor(public payload: { hasAcc: boolean }) {}\n }\n}\n","export const localStorageLoginSync = {\n key: 'snci'\n};\n\nexport const localStorageLogoutSync = {\n key: 'snco',\n value: 'true'\n};\n","import {Injectable} from '@angular/core';\nimport {Actions, createEffect, ofType, OnInitEffects} from '@ngrx/effects';\nimport {Action} from '@ngrx/store';\nimport {from, fromEvent, of} from 'rxjs';\nimport {catchError, filter, map, switchMap, tap, withLatestFrom} from 'rxjs/operators';\n\nimport {User} from '../model/user.model';\nimport {AuthHelperService} from './auth-helper.service';\nimport {AuthQueryService} from './auth-query.service';\nimport {AuthActions, AuthActionType} from './auth.actions';\nimport {localStorageLoginSync, localStorageLogoutSync} from './auth.const';\n\n@Injectable()\nexport class AuthEffects implements OnInitEffects {\n constructor(\n private actions$: Actions,\n private authHelper: AuthHelperService,\n private authQuery: AuthQueryService\n ) {}\n\n\n autologinInit = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.AUTH_INIT),\n tap(() => this.authHelper.configure()),\n switchMap(() =>\n from(this.authHelper.autoLogin()).pipe(\n map((user: User) => new AuthActions.AuthReady({ user })),\n catchError(() => of(new AuthActions.AuthError()))\n )\n )\n ));\n\n\n tryLogin = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.LOGIN),\n tap((action: AuthActions.Login) => {\n this.authHelper.tryLogin(action.payload.url)\n })\n ), { dispatch: false });\n\n detectUserType = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.AUTH_READY),\n map((action: AuthActions.AuthReady) => {\n const isLogged = !!action?.payload?.user?.uuid;\n\n if (isLogged) {\n return new AuthActions.AuthenticatedLogged();\n }\n\n return new AuthActions.AuthenticatedLoggedOut();\n })\n ));\n \n logout = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.LOGOUT),\n tap(() => this.authHelper.logout())\n ), { dispatch: false });\n\n\n refreshUser = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.REFRESH_USER),\n switchMap(() =>\n from(this.authHelper.refreshUser()).pipe(\n map((user: User) => new AuthActions.AuthReady({ user })),\n catchError(() => of(new AuthActions.AuthError()))\n )\n )\n ));\n\n\n storageSyncLogin = createEffect(() => fromEvent(window, 'storage').pipe(\n withLatestFrom(this.authQuery.user$),\n filter(([evt, user]) => {\n const { uuid = '' } = user || {};\n return evt.key === localStorageLoginSync.key && !!evt.newValue && evt.newValue !== uuid;\n }),\n map(() => new AuthActions.SyncLogin())\n ));\n\n\n syncLogin = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.SYNC_LOGIN),\n tap(() => this.authHelper.syncLogin())\n ), { dispatch: false });\n\n\n storageSyncLogout = createEffect(() => fromEvent(window, 'storage').pipe(\n filter(\n (evt) =>\n evt.key === localStorageLogoutSync.key && evt.newValue === localStorageLogoutSync.value\n ),\n map(() => new AuthActions.SyncLogout())\n ));\n\n public anonymousLogin = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.ANONYMOUS_LOGIN),\n tap((action: AuthActions.AnonymousLogin) => this.authHelper.setAnonymousToken())\n ), { dispatch: false });\n\n syncLogout = createEffect(() => this.actions$.pipe(\n ofType(AuthActionType.SYNC_LOGOUT),\n tap(() => this.authHelper.syncLogout())\n ), { dispatch: false });\n\n\n silentLogout = createEffect(() => this.authQuery.silentLogout$.pipe(map(() => new AuthActions.SyncLogout())));\n\n\n ngrxOnInitEffects(): Action {\n return new AuthActions.AuthInit();\n }\n}\n","import { AuthAction, AuthActionType } from './auth.actions';\nimport { User } from '../model/user.model';\n\nexport const featureName = 'auth';\n\nexport interface AuthState {\n user: User;\n anonymous: boolean;\n status: AuthStatus;\n}\n\nexport type AuthStatus = 'loading' | 'initialized' | 'error' | 'unlogged' | 'anonymous';\n\nconst initialState: AuthState = { user: null, status: 'loading', anonymous: false };\n\nexport function authReducer(state: AuthState = initialState, action: AuthAction): AuthState {\n switch (action.type) {\n case AuthActionType.AUTH_INIT:\n return {\n user: null,\n status: 'loading',\n anonymous: false\n };\n\n case AuthActionType.AUTH_READY:\n return {\n user: action.payload.user,\n status: 'initialized',\n anonymous: false\n };\n\n case AuthActionType.AUTH_ERROR:\n return {\n user: null,\n status: 'error',\n anonymous: false\n };\n\n case AuthActionType.LOGIN:\n case AuthActionType.AUTH_LOGGED:\n return {\n ...state,\n anonymous: false\n };\n\n case AuthActionType.SYNC_LOGOUT:\n case AuthActionType.LOGOUT:\n case AuthActionType.AUTH_LOGGED_OUT:\n return {\n ...state,\n user: null,\n anonymous: false\n };\n\n case AuthActionType.REFRESH_USER:\n return {\n ...state,\n status: 'loading',\n anonymous: false\n };\n\n case AuthActionType.SET_ACCEPTANCES:\n return {\n ...state,\n user: { ...state.user, hasAcc: action.payload.hasAcc },\n anonymous: false\n };\n\n case AuthActionType.CLEAR_AUTH:\n return {\n user: null,\n status: 'initialized',\n anonymous: false\n }; \n\n case AuthActionType.DISABLE_ANONYMOUS:\n return {\n ...state,\n anonymous: false\n };\n\n\n case AuthActionType.ANONYMOUS_LOGIN:\n return {\n ...state,\n user: null,\n anonymous: true\n };\n\n default:\n return state;\n }\n}\n","import { ObtainCardType } from './../../application-landing-pages/obtain-tachograph-card/_consts/obtain-card.const';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { User } from '../model/user.model';\nimport { USER_ROLES } from '../_consts/user-roles.const';\nimport { AuthQueryService } from './auth-query.service';\nimport { AuthActions } from './auth.actions';\nimport * as fromAuth from './auth.reducer';\nimport { AuthState } from './auth.reducer';\nimport { ComplaintCardType } from 'src/app/application-landing-pages/complaint/_consts/complaint.const';\n\n/**\n * @description\n *\n * User authentication and authorization service\n * @publicApi\n */\n\n@Injectable()\nexport class AuthService {\n /**\n * @description\n *\n * Hot observable; Emits currently logged in user or null otherwise\n *\n * @usageNotes\n *\n * Example:\n *\n * ```\n * // continuous stream\n * authService.user$.subscribe( user => { ... } );\n *\n * // current user state\n * authService.user$.pipe(\n * first()\n * ).subscribe( user => { ... } );\n *\n * ```\n */\n public user$: Observable = this.authQuery.user$;\n\n public state$: Observable = this.authQuery.state$;\n\n constructor(private authStore: Store, private authQuery: AuthQueryService) {}\n\n static isIndividualUser(user: User): boolean {\n if (!user) {\n return false;\n }\n return user.roles.find((role) => role === USER_ROLES.ROLE_USER) && user.roles.length === 1;\n }\n\n static isBusinessUser(user: User): boolean {\n if (!user) {\n return false;\n }\n return user.roles.find((role) => role === USER_ROLES.ROLE_BUSINESS) != null;\n }\n\n /**\n * @param url optional path to redirect client after successful login\n *\n * @usageNotes\n *\n * Example:\n *\n * ```\n *\n * // login with redirect to home page\n * authService.login();\n *\n * // login with redirect to '/custom/path'\n * authService.login('/custom/path');\n *\n * ```\n */\n public login(url?: string) {\n this.authStore.dispatch(new AuthActions.Login({ url }));\n }\n\n public clearAuth() {\n this.authStore.dispatch(new AuthActions.ClearAuth())\n }\n\n public disableAnonymous() {\n this.authStore.dispatch(new AuthActions.DisableAnonymous())\n }\n\n public logout() {\n this.authStore.dispatch(new AuthActions.Logout());\n }\n\n public retry() {\n this.authStore.dispatch(new AuthActions.AuthInit());\n }\n\n public refreshUser() {\n this.authStore.dispatch(new AuthActions.RefreshUser());\n }\n\n public loginAnonymousUser() {\n this.authStore.dispatch(new AuthActions.AnonymousLogin());\n }\n\n public setAcceptances(hasAcc: boolean) {\n this.authStore.dispatch(new AuthActions.SetAcceptances({ hasAcc }));\n }\n}\n","export const USER_ROLES = {\n ROLE_USER: 'ROLE_USER',\n ROLE_BUSINESS: 'ROLE_BUSINESS',\n ROLE_BUSINESS_STC: 'ROLE_BUSINESS_STC'\n};\n","import { OAuthStorage } from 'angular-oauth2-oidc';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class InMemoryAuthStorage implements OAuthStorage {\n private readonly memory: Map = new Map();\n private readonly storage = sessionStorage;\n private readonly storageKeys: string[] = ['PKCI_verifier', 'nonce', 'url', 'state'];\n\n getItem(key: string): string {\n return this.storageKeys.includes(key) ? this.storage.getItem(key) : this.memory.get(key);\n }\n\n removeItem(key: string): void {\n this.storageKeys.includes(key) ? this.storage.removeItem(key) : this.memory.delete(key);\n }\n\n setItem(key: string, data: string): void {\n this.storageKeys.includes(key) ? this.storage.setItem(key, data) : this.memory.set(key, data);\n }\n}\n","import { RouterModule } from '@angular/router';\nimport { InMemoryAuthStorage } from './in-memory-auth-storage';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AuthEffects } from './auth.effects';\nimport { AuthService } from './auth.service';\nimport { AuthHelperService } from './auth-helper.service';\nimport { AuthQueryService } from './auth-query.service';\nimport { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';\nimport { AuthErrorLoggerService } from './auth-error-logger.service';\nimport { environment } from '../../../environments/environment';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n RouterModule,\n OAuthModule.forRoot({\n resourceServer: {\n allowedUrls: environment.auth.OAUTH_ALLOWED_URLS,\n sendAccessToken: true\n }\n })\n ],\n exports: [StoreModule, EffectsModule],\n providers: [\n AuthEffects,\n AuthService,\n AuthHelperService,\n AuthQueryService,\n AuthErrorLoggerService,\n { provide: OAuthStorage, useClass: InMemoryAuthStorage }\n ]\n})\nexport class AuthModule {\n constructor(\n private auth: AuthService,\n private authHelper: AuthHelperService,\n private authQuery: AuthQueryService,\n private authEffects: AuthEffects,\n private authErrorLogger: AuthErrorLoggerService\n ) {}\n}\n","
\n \n
\n

\n {{ errorTitle }}\n

\n \n {{ 'ERROR.ERROR_STATUS' | translate }}{{ errorStatus }}\n \n {{ 'ERROR.HOME' | translate }}\n
\n
\n","import { Subscription } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Component, OnInit, OnDestroy, HostListener } from '@angular/core';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss']\n})\nexport class ErrorComponent implements OnInit, OnDestroy {\n public errorStatus: number;\n private sub: Subscription;\n public errorTitle: string;\n public isMobile = false;\n\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n\n constructor(private route: ActivatedRoute, private translate: TranslateService) {}\n\n ngOnInit() {\n this.checkIsMobile();\n this.sub = this.route.params.subscribe((params: { errorStatus: number }) => {\n this.errorStatus = params.errorStatus / 2 ? Number(params.errorStatus) : 0;\n this.setErrorTitle(this.errorStatus);\n });\n }\n\n @HostListener('window:resize', ['$event'])\n checkIsMobile() {\n if (window.innerWidth <= 576) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n private setErrorTitle(errorStatus: number): void {\n this.translate.get('ERROR.TITLES').subscribe((titles: string) => {\n this.errorTitle = titles[errorStatus] ? titles[errorStatus] : titles['DEFAULT'];\n });\n }\n\n ngOnDestroy(): void {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import { ErrorComponent } from './../error.component';\nimport { ERROR_ROUTE_PARAMETRIZED } from './error-route.const';\nimport { Route } from '@angular/router';\n\nexport const ERROR_ROUTING: Route = {\n path: ERROR_ROUTE_PARAMETRIZED,\n component: ErrorComponent,\n children: []\n};\n","import { MODERNIZATION_WORK_ROUTE } from 'src/app/info-pages/_consts/info-pages-route.const';\nimport { environment } from './../../../../environments/environment';\nimport { ERROR_ROUTE } from './../_consts/error-route.const';\nimport { Router, NavigationStart } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, ErrorHandler, Injector, NgZone, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class ErrorsHandler extends ErrorHandler {\n constructor(\n private translate: TranslateService,\n private ngZone: NgZone,\n @Inject(Injector) private injector: Injector\n ) {\n super();\n }\n\n private get toastrService(): ToastrService {\n return this.injector.get(ToastrService);\n }\n\n handleError(error: Error | HttpErrorResponse): void {\n if (!navigator.onLine) {\n this.safeNavigate(0, () => {\n this.translate.get('ERROR.CONNECTION_FAILURE').subscribe((result: string) => {\n this.toastrService.error(result, null, { onActivateTick: true });\n });\n });\n return;\n }\n\n if (error instanceof HttpErrorResponse) {\n const translateKey = 'ERROR.TITLES.DEFAULT';\n if (error.status >= 500) {\n this.safeNavigate(error.status);\n } else if (error.status >= 400) {\n this.translate.get(translateKey).subscribe((result: string) => {\n this.toastrService.error(`${result} kod: ${error.status}`, null, {\n onActivateTick: true\n });\n });\n }\n } else {\n const statusRegex = RegExp('\"status\": ?(\\\\d\\\\d?\\\\d?)');\n const status = error.message.match(statusRegex);\n if (status) {\n const statusCode = status[1]; // 1st capturing group\n this.safeNavigate(statusCode);\n }\n }\n\n if (!environment.production) {\n super.handleError(error);\n }\n }\n\n safeNavigate(statusCode: number | string, afterNavigateCallback?: Function) {\n const router = this.injector.get(Router);\n this.ngZone.run(() => {\n const sub = router.events.subscribe((event) => {\n if (event instanceof NavigationStart) {\n setTimeout(() => {\n document.querySelector('body').click();\n sub.unsubscribe();\n }, 0);\n }\n });\n\n let redirectPath: string[];\n if (statusCode == 503) {\n redirectPath = [MODERNIZATION_WORK_ROUTE];\n } else {\n redirectPath = [`/${ERROR_ROUTE}`, `${statusCode}`];\n }\n router.navigate(redirectPath, { skipLocationChange: true, replaceUrl: true }).then(() => {\n if (afterNavigateCallback) {\n afterNavigateCallback();\n }\n });\n });\n }\n}\n","import { SharedModule } from 'src/app/shared/shared.module';\nimport { ERROR_ROUTING } from './_consts/error-routing.const';\nimport { NgModule, ErrorHandler } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ErrorComponent } from './error.component';\nimport { ErrorsHandler } from './errors-handler/errors-handler';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [ErrorComponent],\n imports: [CommonModule, SharedModule, RouterModule.forChild([ERROR_ROUTING])],\n providers: [\n {\n provide: ErrorHandler,\n useClass: ErrorsHandler\n }\n ],\n exports: [RouterModule]\n})\nexport class ErrorModule {}\n","import { SUMMARY_STEP_ROUTE } from 'src/app/applications/word-exam-registration/registration-process/summary-step/_const/summary-step-route.const';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { RouteEventsService } from 'src/app/shared/services/route-events-service/route-events.service';\nimport { CONTROL_CARD_APPLICATION_REASON_ROUTE } from 'src/app/applications/stc/control-card-application/application-reason/_consts/application-reason.route.const';\nimport { CONTROL_CARD_APPLICATION_ATTACHMENTS_ROUTE } from 'src/app/applications/stc/control-card-application/attachments/_consts/attachments.route.const';\nimport {\n WORD_EXAM_ROUTE,\n WORD_EXAM_PROCESS_ROUTE\n} from 'src/app/applications/word-exam-registration/_consts/word-exam-route.const';\nimport { LoaderStripeService } from 'src/app/layout/_service/loader-stripe.service';\n\nconst appNotFoundErrorCode = 'application.not-found';\n@Injectable()\nexport class HttpErrorInterceptor implements HttpInterceptor {\n constructor(\n private toastrService: ToastrService,\n private translate: TranslateService,\n private router: Router,\n private routeEventsService: RouteEventsService,\n private loaderService: LoaderStripeService\n ) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n this.loaderService.open();\n return next.handle(req).pipe(\n finalize(() => this.loaderService.close()),\n catchError((error: HttpErrorResponse) => {\n switch (error.status) {\n case 422:\n let errorCode = null;\n if (error.error && error.error.errors && error.error.errors.length > 0) {\n errorCode = error.error.errors[0].code;\n }\n if (\n this.router.url.includes(CONTROL_CARD_APPLICATION_REASON_ROUTE) &&\n errorCode === appNotFoundErrorCode\n ) {\n break;\n } else if (\n this.router.url.includes(\n `${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}/${SUMMARY_STEP_ROUTE}`\n )\n ) {\n // don't show validation errors on WORD summary page via toastrs\n break;\n } else {\n if (error.error && error.error['errors']) {\n error.error['errors'].forEach((backendError) => {\n this.displayErrorsAsToasts(backendError['userMessage']);\n });\n } else if (error['errors']) {\n error['errors'].forEach((backendError) => {\n this.displayErrorsAsToasts(backendError['userMessage']);\n });\n } else {\n this.translate.get('ERROR.INTERCEPTOR_DEFAULT').subscribe((result: string) => {\n this.toastrService.error(`${result}`);\n });\n }\n break;\n }\n case 404:\n break;\n default:\n break;\n }\n return throwError(error);\n })\n );\n }\n\n private isErrorMessageAnArray(jsonString: string) {\n try {\n const parsedResponse = JSON.parse(jsonString);\n if (parsedResponse && parsedResponse instanceof Array) {\n return true;\n }\n } catch (e) {}\n return false;\n }\n\n private displayErrorsAsToasts(errorMessage: any) {\n if (this.isErrorMessageAnArray(errorMessage)) {\n const errorsArray = JSON.parse(errorMessage);\n errorsArray.forEach((e) => {\n // toastrs are always visible on attachment pages\n if (this.router.url.includes(CONTROL_CARD_APPLICATION_ATTACHMENTS_ROUTE)) {\n this.toastrService.error(`${e}`, null, { timeOut: 0 });\n } else {\n this.toastrService.error(`${e}`, null, {timeOut: 10000});\n }\n });\n } else {\n this.toastrService.error(`${errorMessage}`, null, {timeOut: 10000});\n }\n }\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class LanguageHeaderInterceptor implements HttpInterceptor {\n constructor(private translate: TranslateService) {}\n\n private getLng(): string {\n switch (this.translate.currentLang) {\n case 'ua':\n return 'uk-UA';\n // NOTE add case to comunicate with backend in other lng\n default:\n return 'pl-PL';\n }\n }\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n request = request.clone({\n setHeaders: {\n 'Accept-Language': this.getLng()\n }\n });\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { LayoutState } from 'src/app/layout/_store/layout.reducer';\nimport { SharedState } from 'src/app/shared/store/shared.reducer';\n\n@Injectable()\nexport class ApplicationStartupService {\n constructor(private layoutStore: Store, private sharedStore: Store) {}\n\n init(): Promise {\n return new Promise((resolve, _) => {\n this.sharedStore.pipe(take(1)).subscribe((store) => {\n if (!store.searchServicesData) {\n // todo add translation to store\n }\n });\n });\n }\n}\n\nexport function startupFunction(startup: ApplicationStartupService) {\n return () => {\n startup.init();\n };\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpEvent,\n HttpErrorResponse\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class BlobErrorHttpInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n catchError((err) => {\n if (\n err instanceof HttpErrorResponse &&\n err.error instanceof Blob &&\n err.error.type === 'application/json'\n ) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e: Event) => {\n try {\n const errmsg = JSON.parse((e.target as any).result);\n reject(\n new HttpErrorResponse({\n error: errmsg,\n headers: err.headers,\n status: err.status,\n statusText: err.statusText,\n url: err.url\n })\n );\n } catch (e) {\n reject(err);\n }\n };\n reader.onerror = (e) => {\n reject(err);\n };\n reader.readAsText(err.error);\n });\n }\n return throwError(err);\n })\n );\n }\n}\n","import { Extensions } from 'src/app/shared/extensions/extensions';\nimport { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../auth';\n\n@Injectable()\nexport class StcPaperInterceptor implements HttpInterceptor {\n isUserLogged: string;\n\n constructor(private auth: AuthService) {\n this.auth.state$.subscribe({\n next: value => {\n this.isUserLogged = value?.user?.firstname\n }\n })\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if(request.url.includes('api')) {\n if((!!Extensions.getCookie('anonymousToken') || !!sessionStorage.getItem('anonymousToken')) && !this.isUserLogged) {\n request = request.clone({\n setHeaders: {\n 'Anonymous-Token': Extensions.getCookie('anonymousToken') || sessionStorage.getItem('anonymousToken')\n }\n });\n }\n \n if((!!Extensions.getCookie('ownerId') || !!sessionStorage.getItem('ownerId')) && !this.isUserLogged) {\n request = request.clone({\n setHeaders: {\n 'Anonymous-User-Id': Extensions.getCookie('ownerId') || sessionStorage.getItem('ownerId')\n }\n });\n }\n }\n\n return next.handle(request);\n }\n}\n","import { AnonymousGuard } from 'src/app/core/guard/anonymous-guard';\nimport { ErrorModule } from './error/error.module';\nimport { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { StoreModule } from '@ngrx/store';\n\nimport * as fromSearch from './_store/search.reducer';\nimport * as fromType from './_store/type.reducer';\nimport { AuthModule } from './auth';\nimport { AuthGuard } from './guard/auth-guard';\nimport { CompanyGuard } from './guard/company-guard';\nimport { HttpErrorInterceptor } from './interceptors/http-error.interceptor';\nimport { LanguageHeaderInterceptor } from './interceptors/language-header.interceptor';\nimport { EmployerTypeService } from './services/employer-type.service';\nimport { ApplicationStartupService, startupFunction } from './startup/application-startup.service';\nimport { AcceptancesService } from './services/acceptances-service';\nimport { BlobErrorHttpInterceptor } from './interceptors/blob-error-http.interceptor';\nimport { StcPaperInterceptor } from './interceptors/stc-paper.interceptor';\n\n// Przeznaczony do importu tylko w AppModule!\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n RouterModule,\n StoreModule.forFeature(fromSearch.featureName, fromSearch.searchCacheReducer),\n StoreModule.forFeature(fromType.featureName, fromType.employerTypeReducer),\n AuthModule,\n ErrorModule\n ],\n providers: [\n ApplicationStartupService,\n EmployerTypeService,\n AcceptancesService,\n AuthGuard,\n CompanyGuard,\n AnonymousGuard,\n {\n provide: APP_INITIALIZER,\n useFactory: startupFunction,\n deps: [ApplicationStartupService],\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LanguageHeaderInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpErrorInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: BlobErrorHttpInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: StcPaperInterceptor,\n multi: true\n },\n ]\n})\nexport class CoreModule {\n constructor(private employerTypeService: EmployerTypeService) {}\n}\n","export const ERROR_ROUTE_PARAMETRIZED = 'blad/:errorStatus';\nexport const ERROR_ROUTE = 'blad';\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { first, map } from 'rxjs/operators';\nimport { MY_ACCOUNT_ROUTE } from 'src/app/my-account/_consts/my-account-route.const';\nimport { AuthService } from '../auth';\n\n@Injectable()\nexport class AnonymousGuard {\n constructor(private auth: AuthService, private router: Router) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n return this.auth.user$.pipe(\n first(),\n map((result) => {\n if (result) {\n this.router.navigate(['/', MY_ACCOUNT_ROUTE]);\n return false;\n }\n return true;\n })\n );\n }\n}\n","import { Extensions } from 'src/app/shared/extensions/extensions';\nimport { AuthService } from 'src/app/core/auth/auth.service';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map, take, tap, filter } from 'rxjs/operators';\n\n@Injectable()\nexport class AuthGuard {\n\n constructor(private auth: AuthService, private router: Router) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n\n return this.auth.state$.pipe(\n filter((authState) => authState.status !== 'loading'),\n take(1),\n tap((authState) => {\n const isAnonymous =\n route.data.passFlag &&\n (!!Extensions.getCookie('anonymousToken') || !!sessionStorage.getItem('anonymousToken')) &&\n authState?.anonymous;\n if (authState.status === 'initialized' && !authState.user && !isAnonymous) {\n this.auth.login(state.url);\n }\n }),\n map((authState) => !!authState.user || authState.anonymous)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MAIN_PAGE_ROUTE } from '../../main-page/_consts/main-page-routing.const';\nimport { AuthService } from '../auth/auth.service';\n\n@Injectable()\nexport class CompanyGuard {\n constructor(private auth: AuthService, private router: Router) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n return this.auth.user$.pipe(\n map((result) => {\n const isBusiness = AuthService.isBusinessUser(result);\n if (!isBusiness) {\n this.router.navigate(['/', MAIN_PAGE_ROUTE]);\n }\n return isBusiness;\n })\n );\n }\n}\n","import { Router } from '@angular/router';\nimport { Extensions } from 'src/app/shared/extensions/extensions';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { tap, catchError, map } from 'rxjs/operators';\nimport { ACCOUNTS_V2 } from 'src/app/shared/consts/api-version.config';\nimport { environment as env } from 'src/environments/environment';\nimport {\n AcceptanceDecisionDto,\n AcceptanceDto,\n AcceptanceType,\n ClientAcceptancesDto,\n ClientAcceptancesResponseDto\n} from '../model/acceptances-model';\n\nconst BUSINESS_CLIENT_SEGMENT = '/business-client/stc';\nconst INDIVIDUAL_CLIENT_SEGMENT = '/individual-client';\nconst REQUIRED_ACCEPTANCES = '/acceptances';\nconst UPDATE_ACCEPTANCES = '/update-acceptances';\n\n@Injectable()\nexport class AcceptancesService {\n private availableAcceptances: AcceptanceDto[];\n constructor(private _http: HttpClient, private router: Router) {}\n\n getAcceptances(email: string): Observable {\n const httpHeaders = new HttpHeaders().set('accept', ACCOUNTS_V2);\n return this._http\n .get(\n `${env.ACCOUNT_MANAGEMENT.BASE}${env.ACCOUNT_MANAGEMENT.ACCOUNT_MANAGEMENT}` +\n `${env.ACCOUNT_MANAGEMENT.CLIENT}${REQUIRED_ACCEPTANCES}/${email}`,\n { headers: httpHeaders }\n )\n .pipe(tap((result) => (this.availableAcceptances = result.availableAcceptances)));\n }\n\n getAvailableAcceptances(isBusiness: boolean): Observable {\n return this._http\n .get(\n `${env.ACCOUNT_MANAGEMENT.BASE}${env.ACCOUNT_MANAGEMENT.ACCOUNT_MANAGEMENT}${\n isBusiness\n ? env.ACCOUNT_MANAGEMENT.BUSINESS_CLIENT + env.ACCOUNT_MANAGEMENT.STC\n : env.ACCOUNT_MANAGEMENT.INDIVIDUAL_CLIENT\n }${env.ACCOUNT_MANAGEMENT.AVAILABLE_ACCEPTANCES}`\n )\n .pipe(tap((result) => (this.availableAcceptances = result)));\n }\n\n updateAcceptances(\n acceptances: AcceptanceType[],\n userName: string\n ): Observable {\n const httpHeaders = new HttpHeaders().set('accept', ACCOUNTS_V2);\n if (!this.availableAcceptances) {\n throwError('Available acceptances need to be fetched first');\n }\n const payload: AcceptanceDecisionDto[] = this.availableAcceptances.map((acceptance) => ({\n name: acceptance.name,\n granted: !!acceptances.find((acceptanceName) => acceptance.name === acceptanceName)\n }));\n return this._http.post(\n `${env.BACKEND_API.BASE_ACCOUNT_MANAGMENT}${env.BACKEND_API.ACCOUNT_MANAGMENT}` +\n `${env.BACKEND_API.CLIENT}${UPDATE_ACCEPTANCES}/${userName}`,\n payload,\n { headers: httpHeaders }\n );\n }\n}\n","import { EmployerTypes } from './../_consts/employer-types';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Store, select } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { take, filter } from 'rxjs/operators';\nimport { AuthService } from 'src/app/core/auth/auth.service';\nimport { environment as env } from 'src/environments/environment';\nimport * as fromType from '../_store/type.reducer';\nimport { User } from '../model/user.model';\nimport {\n SetAsControlAuthorityAction,\n SetAsTransportCompanyAction,\n SetAsWorkshopAction,\n SetInitialStateAction\n} from './../_store/type.action';\n\nconst EMPLOYER_TYPE = '/type';\n@Injectable()\nexport class EmployerTypeService implements OnDestroy {\n loggedUserUid: string;\n private sub: Subscription;\n\n constructor(\n private _http: HttpClient,\n private auth: AuthService,\n private typeStore$: Store\n ) {\n this.sub = this.auth.user$\n .pipe(filter((user) => !!user))\n .subscribe((user) => this.fetchEmployeerTypeIfLoggedInWithBusiness(user));\n }\n\n private fetchEmployeerTypeIfLoggedInWithBusiness(user: User) {\n if (AuthService.isBusinessUser(user)) {\n this.loggedUserUid = user.uuid;\n this.fetchEmployerType(user.uuid).subscribe((result) => {\n if (result === EmployerTypes.TRANSPORT_COMPANY) {\n this.typeStore$.dispatch(new SetAsTransportCompanyAction());\n } else if (result === EmployerTypes.WORKSHOP) {\n this.typeStore$.dispatch(new SetAsWorkshopAction());\n } else if (result === EmployerTypes.CONTROL_AUTHORITY) {\n this.typeStore$.dispatch(new SetAsControlAuthorityAction());\n }\n });\n } else {\n this.typeStore$.dispatch(new SetInitialStateAction());\n }\n }\n\n private fetchEmployerType(employerId: string): Observable {\n return this._http.get(\n `${env.BACKEND_API.BASE}${env.BACKEND_API.EMPLOYERS}/${employerId}${EMPLOYER_TYPE}`\n );\n }\n\n getEmployerType(): Observable {\n return this.typeStore$.pipe(select(fromType.selectEmployerType));\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n","export const ESP_ROUTE = 'esp';\nexport const ESP_PAYMENT_PAGE = 'platnosc/:id';\nexport const ESP_PAYMENT_CONFIRMATION = 'potwierdzenie';\nexport const ESP_PAYMENT_CONFIRMATION_PARAMETRIZED = 'potwierdzenie/:id';\n","import { EspPaymentItem } from './esp-payment-item.model';\n\nexport interface EspPaymentDto {\n espPaymentId: string;\n fee: number;\n id: string;\n items: EspPaymentItem[];\n registerFeeSum: number;\n postalFeeSum: number;\n administrativeFeeSum: number;\n systemId: string;\n taxFeeSum: number;\n provision: number;\n}\n\nexport interface PayWithRedirectResponse {\n billId: string;\n paidAmount: number;\n paymentId: string;\n paymentStatus: EspPaymentStatus;\n redirectUrl: string;\n}\n\nexport interface PayWithBlikResponse {\n billId: string;\n fee: number;\n paidAmount: number;\n paymentId: string;\n paymentStatus: EspPaymentStatus;\n registerFeeSum: number;\n taxFeeSum: number;\n postalFeeSum: number;\n administrativeFeeSum: number;\n urlFailure: string;\n urlSuccess: string;\n}\n\nexport interface BillDto {\n billId: string;\n fee: number;\n id: string;\n paymentStatus: EspPaymentStatus;\n provision: number;\n redirectUrl: string;\n registerFeeSum: number;\n taxFeeSum: number;\n postalFeeSum: number;\n administrativeFeeSum: number;\n}\n\nexport enum EspPaymentStatus {\n AUTHPENDING = 'AUTHPENDING',\n AUTHACCEPTED = 'AUTHACCEPTED',\n AUTHREJECTED = 'AUTHREJECTED',\n EXCEEDED = 'EXCEEDED'\n}\n","import { environment as env } from '../../../../environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport {\n PayWithBlikResponse,\n PayWithRedirectResponse,\n EspPaymentDto,\n BillDto\n} from '../_models/esp-payment.model';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EspPaymentService {\n constructor(private _http: HttpClient) {}\n\n getEspPayment(id: string): Observable {\n return this._http.get(`${env.ESP.BASE}${env.ESP.PAYMENTS}/${id}`);\n }\n\n createPayment$(id: string): Observable {\n return this._http.post(\n `${env.ESP.BASE}${env.ESP.PAYMENTS}/${id}${env.ESP.REDIRECT}`,\n {}\n );\n }\n\n getPaymentStatus(billId): Observable {\n return this._http.get(`${env.ESP.BASE}${env.ESP.BILLS}/${billId}`);\n }\n\n createBlikPayment$(id: any, payload): Observable {\n return this._http.post(\n `${env.ESP.BASE}${env.ESP.PAYMENTS}/${id}${env.ESP.BLIK}`,\n payload\n );\n }\n}\n","
\n
\n

{{ content.title }}

\n
\n
\n

\n {{ content.paymentInfo }}\n

\n
\n
\n \n

\n {{ 'EXTERNAL_PAYMENTS.CONFIRMATION.redirectText' | translate }}\n {{ timeToRedirect }}s.\n

\n
\n
\n","import { Subscription } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { EspPaymentService } from '../_services/esp-payment.service';\nimport { BillDto } from '../_models/esp-payment.model';\nimport { customErrorHandler } from 'src/app/shared/extensions/extensions';\nimport { ToastrService } from 'ngx-toastr';\nimport { GhostButtonComponent } from '../../../shared/components/ghost-button/ghost-button.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'app-payment-confirmation',\n templateUrl: './payment-confirmation.component.html',\n styleUrls: ['./payment-confirmation.component.scss'],\n standalone: true,\n imports: [NgIf, GhostButtonComponent, TranslateModule]\n})\nexport class PaymentConfirmationComponent implements OnInit, OnDestroy {\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n status = 'accepted';\n content: any;\n redirectUrl: string;\n automaticRedirect: ReturnType;\n sub: Subscription;\n timeToRedirect = 15;\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router,\n private espService: EspPaymentService,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit(): void {\n this.getPaymentStatusAndTranslationContent();\n this.goToLinkAutomatically();\n }\n\n getPaymentStatusAndTranslationContent() {\n this.espService.getPaymentStatus(this.route.snapshot.paramMap.get('id')).subscribe({\n next: (bill: BillDto) => {\n this.status = bill.paymentStatus;\n this.redirectUrl = bill.redirectUrl;\n this.translate\n .get(`EXTERNAL_PAYMENTS.CONFIRMATION.${this.status.toUpperCase()}`)\n .subscribe({\n next: (content) => (this.content = content)\n });\n },\n error: (error) => {\n customErrorHandler(error, this.toastrService, this.translate);\n }\n });\n }\n\n goToLinkAutomatically() {\n this.automaticRedirect = setInterval(() => {\n if (this.timeToRedirect > 0) {\n this.timeToRedirect--;\n } else {\n clearInterval(this.automaticRedirect);\n this.goToLink();\n }\n }, 1000);\n }\n\n goToLink() {\n const link = this.redirectUrl.slice(0, 1);\n\n if (link === '/') {\n this.router.navigateByUrl(this.redirectUrl);\n } else {\n window.location.href = this.redirectUrl;\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.automaticRedirect);\n }\n}\n","
\n
\n

{{ content.title }}

\n
\n \n \n\n \n
\n","import { EspErrorResponse } from '../_models/esp-error.model';\nimport { ToastrService } from 'ngx-toastr';\nimport { TranslateService } from '@ngx-translate/core';\nimport { EspPaymentService } from '../_services/esp-payment.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { interval, Subscription } from 'rxjs';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { PaymentMethodType } from 'src/app/shared/models/payment/payment-dto.model';\nimport { ESP_PAYMENT_CONFIRMATION, ESP_ROUTE } from '../_consts/esp-payment-route.const';\nimport { EspPaymentDto, EspPaymentStatus } from '../_models/esp-payment.model';\nimport { ChoosenPaymentType } from 'src/app/shared/components/choose-payment-method/choosen-payment-type.model';\nimport { switchMap } from 'rxjs/operators';\nimport { ExternalPaymentsContentModel } from '../_models/esp-payment-content.model';\nimport { environment } from 'src/environments/environment';\nimport { LoadersComponent } from '../../../layout/loaders/loaders.component';\nimport { ChoosePaymentMethodComponent } from '../../../shared/components/choose-payment-method/choose-payment-method.component';\nimport { SharedModule } from '../../../shared/shared.module';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'app-payment',\n templateUrl: './payment.component.html',\n styleUrls: ['./payment.component.scss'],\n standalone: true,\n imports: [NgIf, SharedModule, ChoosePaymentMethodComponent, LoadersComponent]\n})\nexport class PaymentComponent implements OnInit, OnDestroy {\n espPayment: EspPaymentDto;\n content: ExternalPaymentsContentModel;\n PENDING_STATUSES = [EspPaymentStatus.AUTHPENDING];\n timeInterval: Subscription;\n splashEnabled = false;\n env = environment;\n\n constructor(\n private route: ActivatedRoute,\n private espService: EspPaymentService,\n private translate: TranslateService,\n protected router: Router,\n private toastrService: ToastrService\n ) { }\n\n ngOnInit() {\n this.getPaymentInfoAndTranslationTexts();\n }\n\n getPaymentInfoAndTranslationTexts() {\n this.espService.getEspPayment(this.route.snapshot.paramMap.get('id')).subscribe({\n next: (payment: EspPaymentDto) => (this.espPayment = payment),\n error: (error: EspErrorResponse) => this.handlePaymentError(null, error)\n });\n\n this.translate.get('EXTERNAL_PAYMENTS').subscribe({\n next: (content: ExternalPaymentsContentModel) => (this.content = content)\n });\n }\n\n handlePaymentError(toastrMessage: string, error?: EspErrorResponse) {\n this.splashEnabled = false;\n toastrMessage ? this.toastrService.error(toastrMessage) : null;\n\n if (error.error?.errors?.length) {\n for (const e of error.error.errors) {\n e.userMessage ? this.toastrService.error(e.userMessage) : null;\n if (e.code === 'payment-already-started-or-accepted') {\n this.router.navigate(['/', ESP_ROUTE, ESP_PAYMENT_CONFIRMATION, e.path]);\n }\n }\n } else if (typeof error?.error?.message) {\n this.toastrService.error(error.error.message)\n }\n }\n\n onSubmit(event: ChoosenPaymentType) {\n switch (event.paymentType) {\n case PaymentMethodType.BLIK:\n this.env.FEATURE_TOGGLES.BLIK_LVL_ZERO ? this.proceedWithBlik(event.blikCode) : this.proceedWithECard();\n break;\n case PaymentMethodType.E_CARD:\n this.proceedWithECard();\n break;\n case PaymentMethodType.PAYMENT_CARD:\n this.proceedWithPaymentCard();\n break;\n default:\n console.error('Nieobsługiwany typ płatności');\n break;\n }\n }\n\n private proceedWithBlik(blikCode: string) {\n this.splashEnabled = true;\n\n this.espService\n .createBlikPayment$(this.espPayment.id, this.createBlikObject(blikCode))\n .subscribe({\n next: (result) => {\n if (this.PENDING_STATUSES.includes(result.paymentStatus)) {\n this.poolBlikPaymentStatus(result.billId);\n } else if (result.paymentStatus === EspPaymentStatus.EXCEEDED) {\n this.handlePaymentError(this.content.CONFIRMATION.EXCEEDED.paymentInfo);\n } else {\n this.handleBlikPaymentStatus(result);\n }\n },\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n private createBlikObject(code: string) {\n return {\n blikCode: code\n };\n }\n\n private poolBlikPaymentStatus(billId: string): void {\n this.timeInterval = interval(3000)\n .pipe(switchMap(() => this.espService.getPaymentStatus(billId)))\n .subscribe({\n next: (bill) => this.handleBlikPaymentStatus(bill),\n error: (error) => this.handlePaymentError(null, error)\n });\n }\n\n private handleBlikPaymentStatus(bill): boolean {\n if (bill.paymentStatus) {\n this.splashEnabled = false;\n this.timeInterval ? this.timeInterval.unsubscribe() : null;\n this.router.navigate(['/', ESP_ROUTE, ESP_PAYMENT_CONFIRMATION, bill.billId]);\n }\n return false;\n }\n\n private proceedWithECard() {\n this.espService.createPayment$(this.espPayment.id).subscribe({\n next: (result) => {\n if (result.paymentStatus === EspPaymentStatus.EXCEEDED) {\n this.handlePaymentError(this.content.CONFIRMATION.EXCEEDED.paymentInfo);\n } else {\n window.location.href = result.redirectUrl;\n }\n },\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n proceedWithPaymentCard() {\n this.proceedWithECard();\n }\n ngOnDestroy(): void {\n this.timeInterval ? this.timeInterval.unsubscribe() : null;\n }\n}\n","export const FAST_PAYMENTS_ROUTE = 'pay';\nexport const FAST_PAYMENT_CONFIRMATION_PARAMETRIZED = 'confirmation/:id';\nexport const FAST_PAYMENT_CONFIRMATION = 'confirmation';\n","import { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, Observable, of } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { FastPayments } from '../_model/fast-payments.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FastPaymentsService {\n\n constructor(private _http: HttpClient) { }\n\n getPayment(id: string): Observable {\n const url = `${environment.FAST_PAYMENTS.BASE}${environment.FAST_PAYMENTS.PAYMENTS}`;\n let params = new HttpParams();\n\n params = params.append('paymentCode', id);\n\n return this._http.get(url, { params: params });\n }\n\n createBlikPayment$(paymentId: string, blikCode: string, system: string): Observable {\n return this._http.put(\n `${environment.FAST_PAYMENTS.BASE}${environment.FAST_PAYMENTS.PAYMENTS}/${system}/${paymentId}/pay/${blikCode}`,\n {}\n );\n }\n\n getPaymentConfirmation(id: string, system: string): Observable {\n return this._http.get(`${environment.FAST_PAYMENTS.BASE}${environment.FAST_PAYMENTS.PAYMENTS}/${system}/${id}`)\n }\n\n getPDF(id: string, system: string): Observable {\n return this._http.get(`${environment.FAST_PAYMENTS.BASE}${environment.FAST_PAYMENTS.PAYMENTS}/${system}${environment.FAST_PAYMENTS.PDF}/${id}`, { responseType: 'blob' as 'json' })\n }\n}\n","
\n
\n

{{content.title}}

\n
\n\n @if(status === 'AUTHACCEPTED') {\n \n }\n\n
\n

\n {{content.desc}}\n

\n\n @if(status === 'AUTHACCEPTED') {\n

{{authCode}}

\n }\n
\n
\n \n @if(status === 'AUTHACCEPTED') {\n {{ 'FAST_PAYMENTS.CONFIRMATION.AUTHACCEPTED.downloadBtn'\n | translate\n }}\n }\n
\n
","import { Component } from '@angular/core';\nimport { FastPaymentsService } from '../_services/fast-payments.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { finalize } from 'rxjs';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { FastPayments } from '../_model/fast-payments.model';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { GhostButtonComponent } from 'src/app/shared/components/ghost-button/ghost-button.component';\nimport { InfoBoxComponent } from 'src/app/shared/components/info-box/info-box.component';\n\n@Component({\n selector: 'app-payment-confirmation',\n standalone: true,\n imports: [\n CommonModule,\n GhostButtonComponent,\n TranslateModule,\n InfoBoxComponent\n ],\n templateUrl: './payment-confirmation.component.html',\n styleUrl: './payment-confirmation.component.scss'\n})\nexport class PaymentConfirmationComponent {\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n status = 'accepted';\n content: any;\n authCode: string;\n id: string;\n waitingForData: boolean = false;\n system: string;\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router,\n private service: FastPaymentsService,\n private toastrService: ToastrService\n ) {\n this.id = this.route.snapshot.paramMap.get('id');\n this.system = this.route.snapshot.queryParamMap.get('system');\n\n if (this.id) {\n this.getPaymentStatusAndTranslationContent();\n } else {\n this.goToLink();\n }\n }\n\n getPaymentStatusAndTranslationContent() {\n this.service.getPaymentConfirmation(this.id, this.system).subscribe({\n next: (bill: FastPayments) => {\n this.authCode = bill.hotpConfirmation;\n this.status = bill.paymentStatus;\n this.translate\n .get(`FAST_PAYMENTS.CONFIRMATION.${this.status.toUpperCase()}`)\n .subscribe({\n next: (content) => (this.content = content)\n });\n },\n error: (error: { error: { detail: string } }) => {\n // customErrorHandler(error, this.toastrService, this.translate);\n this.toastrService.error(error?.error?.detail);\n\n setTimeout(() => {\n this.goToLink();\n }, 200)\n }\n });\n }\n\n goToLink() {\n this.router.navigate(['/'])\n }\n\n downloadPdf() {\n this.waitingForData = true;\n this.service.getPDF(this.id, this.system).pipe(finalize(() => this.waitingForData = false)).subscribe({\n next: blob => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `Potwierdzenie-${Date.now().toLocaleString()}.pdf`;\n a.click();\n window.URL.revokeObjectURL(url);\n },\n error: error => {\n console.error('Download error:', error);\n }\n });\n }\n}\n","
\n

\n {{ content.chooseMethod }}\n

\n

\n {{ content.chooseMethod }}\n

\n\n
\n
\n
\n

{{ content.type }}

\n
\n @if (feeChecker('administrativeFee')) {\n
\n {{ content.administrativeFee }}\n
\n }\n\n @if(feeChecker('taxFee')) {\n
\n {{ content.taxFee }}\n
\n }\n\n @if(feeChecker('postalFee')) {\n
\n {{ content.postalFee }}\n
\n }\n
\n

{{ content.price }}

\n
\n
\n \n
\n
\n

\n {{ item.documentType }}\n

\n
\n @if(item.administrativeFee !== null && item.administrativeFee !== undefined) {\n
\n

\n {{ item.administrativeFee / 100 }} {{ content.units }}\n

\n
\n }\n\n @if(item.taxFee !== null && item.taxFee !== undefined) {\n
\n

\n {{ item.taxFee / 100 }} {{ content.units }}\n

\n
\n }\n\n @if(item.postalFee !== null && item.postalFee !== undefined) {\n
\n

\n {{ item.postalFee / 100 }} {{ content.units }}\n

\n
\n }\n\n
\n @if(item.taxFee !== null && item.administrativeFee !== null && item.postalFee !== null) {\n

\n {{ (item.taxFee + item.administrativeFee + item.postalFee) / 100 }} {{ content.units\n }}\n

\n } @else {\n

\n {{ payment.fees?.totalFee / 100 }} {{ content.units\n }}\n

\n }\n
\n
\n
\n
\n\n
\n
\n

\n {{ content.priceSum }}\n

\n
\n
\n

\n {{ (payment.fees?.totalFee) / 100 }}\n {{ content.units }}\n

\n
\n
\n
\n\n
\n

\n {{ content.chooseMethod }}\n

\n

\n {{ content.chooseMethod }}\n

\n\n
\n
\n
\n

{{ content.type }}

\n
\n
\n

{{ content.price }}

\n
\n
\n \n
\n
\n
\n

\n {{ item.documentType }}\n

\n
\n @if(feeChecker('administrativeFee')) {\n
\n

{{ content.administrativeFee }}

\n
\n }\n\n @if(feeChecker('taxFee')) {\n
\n

{{ content.taxFee }}

\n
\n }\n\n @if(feeChecker('postalFee')) {\n
\n

{{ content.postalFee }}

\n
\n }\n
\n
\n
\n

\n {{ (item.taxFee + item.administrativeFee + item.postalFee) / 100 }}\n {{ content.units }}\n

\n
\n @if(item.administrativeFee !== null && item.administrativeFee !== undefined) {\n
\n

\n {{ item.administrativeFee / 100 }} {{ content.units }}\n

\n
\n }\n\n @if(item.taxFee !== null && item.taxFee !== undefined) {\n
\n

\n {{ item.taxFee / 100 }} {{ content.units }}\n

\n
\n }\n\n @if(item.postalFee !== null && item.postalFee !== undefined) {\n
\n

\n {{ item.postalFee / 100 }} {{ content.units }}\n

\n
\n }\n
\n
\n
\n
\n
\n

\n {{ content.priceSum }}\n

\n
\n
\n

\n {{ (payment.fees?.totalFee) / 100 }}\n {{ content.units }}\n

\n
\n
\n
\n
","import { CommonModule } from '@angular/common';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FastPayments } from '../../_model/fast-payments.model';\n\n@Component({\n selector: 'app-fast-payments-table',\n standalone: true,\n imports: [\n CommonModule\n ],\n templateUrl: './fast-payments-table.component.html',\n styleUrl: './fast-payments-table.component.scss'\n})\nexport class FastPaymentsTableComponent {\n @Input() payment: FastPayments;\n @Input() titleAsH1 = false;\n content: {\n type: string;\n price: string;\n units: string;\n taxFee: string;\n postalFee: string;\n administrativeFee: string;\n priceSum: string;\n };\n isMobile: boolean;\n\n constructor(private translate: TranslateService) { }\n\n ngOnInit(): void {\n this.translate.get('FAST_PAYMENTS.CART_LIST').subscribe({\n next: (content: any) => (this.content = content)\n });\n\n this.checkIsMobile();\n }\n\n feeChecker(fee: string): boolean {\n return this.payment.items.some(el => el[fee] !== null && el[fee] !== undefined);\n }\n\n @HostListener('window:resize', ['$event'])\n checkIsMobile() {\n if (window.innerWidth <= 576) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","export interface FastPayments {\n paymentId: {\n id: string;\n };\n paymentSystem: string;\n pikPaymentId: string;\n person: {\n id: string;\n name: string;\n };\n fees: {\n totalFee: number;\n taxFeeSum: number;\n postalFeeSum: number;\n administrativeFeeSum: number;\n };\n items: [\n {\n documentType: string;\n administrativeFee: number;\n taxFee: number;\n postalFee: number;\n quantity: number;\n version: string;\n }\n ];\n commitmentId: {\n commitmentId: string;\n };\n paymentStatus: FastPaymentStatus;\n idr: {\n value: string;\n };\n redirectUrl: string;\n hotpConfirmation: string;\n}\n\nexport enum FastPaymentStatus {\n AUTHPENDING = 'AUTHPENDING',\n AUTHACCEPTED = 'AUTHACCEPTED',\n AUTHREJECTED = 'AUTHREJECTED',\n EXCEEDED = 'EXCEEDED'\n}","
\n
\n

{{ content.title }}

\n

{{content.subtitle}}

\n
\n\n @if(!this.id) {\n
\n

{{content.provideCode}}

\n\n @if(formGroup) {\n
\n \n \n\n \n \n
\n }\n\n \n {{content.acceptButton}}\n \n
\n }\n\n @if(waitingForData) {\n
\n \n
\n }\n\n @if(this.fastPayment) {\n \n \n }\n\n \n
\n\n
\n
\n

{{content.youAreOnPage}}

\n

{{content.processServices}}

\n
\n \n

{{content.driverLicence}}

\n \n

{{content.vehicleRegistration}}

\n \n

{{content.dlExam}}

\n
\n

{{content.howThisWork}}

\n
\n
    \n @for(element of content.processList; track element) {\n
  1. {{element}}
  2. \n }\n
\n\n
\n \n

{{content.processPayment}}

\n
\n
\n
\n
","import { CommonModule, ViewportScroller } from '@angular/common';\nimport { ChangeDetectorRef, Component, DestroyRef, HostListener, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ChoosenPaymentType } from 'src/app/shared/components/choose-payment-method/choosen-payment-type.model';\nimport { PaymentMethodType } from 'src/app/shared/models/payment/payment-dto.model';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { environment } from 'src/environments/environment';\nimport { FastPaymentsService } from '../_services/fast-payments.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FastPaymentsTableComponent } from \"../components/fast-payments-table/fast-payments-table.component\";\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { catchError, finalize, interval, Observable, of, Subject, Subscription, switchMap, takeUntil, timer } from 'rxjs';\nimport { FormInputComponent } from 'src/app/shared/components/forms/form-input/form-input.component';\nimport { FastPayments, FastPaymentStatus } from '../_model/fast-payments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastrService } from 'ngx-toastr';\nimport { FAST_PAYMENT_CONFIRMATION, FAST_PAYMENTS_ROUTE } from '../_consts/fast-payments-route.const';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GhostButtonComponent } from 'src/app/shared/components/ghost-button/ghost-button.component';\nimport { LoadersComponent } from 'src/app/layout/loaders/loaders.component';\nimport { ChoosePaymentMethodComponent } from 'src/app/shared/components/choose-payment-method/choose-payment-method.component';\n\n@Component({\n selector: 'app-fast-payments',\n standalone: true,\n imports: [\n CommonModule,\n FastPaymentsTableComponent,\n ReactiveFormsModule,\n GhostButtonComponent,\n LoadersComponent,\n FormInputComponent,\n ChoosePaymentMethodComponent\n ],\n templateUrl: './fast-payments.component.html',\n styleUrl: './fast-payments.component.scss'\n})\nexport class FastPaymentsComponent implements OnInit, OnDestroy {\n @ViewChild('codeFirstInput') codeFirstInput: FormInputComponent;\n @ViewChild('codeSecondInput') codeSecondInput: FormInputComponent;\n content: {\n title: string;\n subtitle: string;\n provideCode: string;\n requiredError: string;\n patternError: string;\n acceptButton: string;\n processList: string[];\n howThisWork: string;\n processServices: string;\n cardAlt: string;\n driverLicence: string;\n vehicleAlt: string;\n vehicleRegistration: string;\n carAlt: string;\n dlExam: string;\n processPayment: string;\n youAreOnPage: string;\n thumbAlt: string;\n };\n splashEnabled: boolean = false;\n termsChecked: boolean = false;\n paymentStarted: boolean = false;\n fastPayment: FastPayments;\n env = environment;\n id: string;\n code: string;\n formGroup: FormGroup;\n destroyRef = inject(DestroyRef);\n waitingForData: boolean = false;\n PENDING_STATUSES = [FastPaymentStatus.AUTHPENDING];\n timeInterval: Subscription;\n private paymentPolling$: Subscription | null = null;\n private paymentSuccess$ = new Subject();\n\n constructor(\n private service: FastPaymentsService,\n private router: Router,\n private toast: ToastrService,\n private translate: TranslateService,\n private vs: ViewportScroller\n ) {\n this.id = router.url.split('/')[2];\n\n this.formGroup = new FormGroup({\n codeFirst: new FormControl(null, [Validators.required, Validators.pattern(/^[ybndrfg8ejkmcpqxot1uwisza345h769]{3}$/i)]),\n codeSecond: new FormControl(null, [Validators.required, Validators.pattern(/^[ybndrfg8ejkmcpqxot1uwisza345h769]{3}$/i)]),\n });\n\n this.translate.get('FAST_PAYMENTS').subscribe({\n next: (content: any) => (this.content = content)\n });\n\n this.formGroup.get('codeFirst').statusChanges.subscribe(status => {\n if (status === 'VALID') {\n this.codeSecondInput.input.nativeElement.focus();\n }\n });\n\n this.formGroup.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: value => {\n if (value.codeFirst?.length > 3) {\n this.formGroup.get('codeFirst').patchValue(value.codeFirst.slice(0, 3));\n this.codeFirstInput.value = value.codeFirst.slice(0, 3);\n this.codeFirstInput.input.nativeElement.value = value.codeFirst.slice(0, 3);\n this.codeSecondInput.input.nativeElement.focus();\n }\n\n if (value.codeSecond?.length > 3) {\n this.formGroup.get('codeSecond').patchValue(value.codeSecond.slice(0, 3));;\n this.codeSecondInput.value = value.codeSecond.slice(0, 3);\n this.codeSecondInput.input.nativeElement.value = value.codeSecond.slice(0, 3);\n }\n\n if (value.codeFirst && value.codeSecond) {\n this.code = `${value.codeFirst}${value.codeSecond}`\n }\n }\n })\n }\n\n ngOnInit() {\n if (this.id) {\n this.getPayment(this.id).subscribe({\n next: (payment: FastPayments) => (this.fastPayment = payment),\n error: (error: { error: { detail: string } }) => {\n this.toast.error(error?.error?.detail);\n }\n });\n }\n }\n\n onPaste(data: string): void {\n const splitedData = data.slice(3, 6);\n\n this.formGroup.get('codeSecond').patchValue(splitedData);\n }\n\n getPayment(id: string): Observable {\n this.waitingForData = true;\n return this.service.getPayment(id).pipe(finalize(() => this.waitingForData = false));\n }\n\n onCodeSubmit(): void {\n this.getPayment(this.code?.toLowerCase()).subscribe({\n next: (payment: FastPayments) => {\n this.fastPayment = payment;\n setTimeout(() => {\n this.vs.setOffset([0, 50])\n this.vs.scrollToAnchor('table')\n })\n },\n error: (err: any) => {\n this.toast.error(err?.error?.detail)\n console.log(err)\n }\n });\n }\n\n onFocus() {\n setTimeout(() => {\n navigator.clipboard.readText().then((text) => {\n this.onPaste(text)\n });\n }, 500); // Delay to allow paste action\n }\n\n onSubmit(event: ChoosenPaymentType) {\n switch (event.paymentType) {\n case PaymentMethodType.BLIK:\n this.proceedWithBlik(event.blikCode);\n break;\n default:\n console.error('Nieobsługiwany typ płatności');\n break;\n }\n }\n\n private proceedWithBlik(blikCode: string) {\n this.splashEnabled = true;\n this.paymentStarted = true;\n\n this.service.createBlikPayment$(this.fastPayment.paymentId?.id, blikCode, this.fastPayment.paymentSystem)\n .subscribe({\n next: (result) => {\n this.poolBlikPaymentStatus();\n },\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n handlePaymentError(toastrMessage: string, error?: HttpErrorResponse) {\n this.splashEnabled = false;\n this.paymentStarted = false;\n toastrMessage ? this.toast.error(toastrMessage) : null;\n\n if (error.error?.errors?.length) {\n for (const e of error.error.errors) {\n e.userMessage ? this.toast.error(e.userMessage) : null;\n if (e.code === 'payment-already-started-or-accepted') {\n this.router.navigate(['/', e.path]);\n }\n }\n } else if (error?.error?.message?.length) {\n this.toast.error(error.error.message)\n } else if (error?.error?.detail) {\n this.toast.error(error?.error?.detail)\n }\n }\n\n private poolBlikPaymentStatus(): void {\n if (this.paymentPolling$) {\n return;\n }\n\n this.paymentPolling$ = timer(0, 3000)\n .pipe(\n switchMap(() => this.getPayment(this.id || this.code)),\n takeUntil(this.paymentSuccess$),\n finalize(() => {\n this.paymentPolling$?.unsubscribe();\n this.paymentPolling$ = null;\n })\n )\n .subscribe({\n next: (data: FastPayments) => this.handleBlikPaymentStatus(data),\n error: (error) => this.handlePaymentError(null, error)\n });\n }\n\n private handleBlikPaymentStatus(bill: FastPayments): boolean {\n if (bill.paymentStatus === FastPaymentStatus.EXCEEDED) {\n this.handlePaymentError('Płatnośc nie powiodła się');\n } else if (bill.paymentStatus === FastPaymentStatus.AUTHACCEPTED || bill.paymentStatus === FastPaymentStatus.AUTHREJECTED) {\n this.splashEnabled = false;\n this.paymentStarted = false;\n this.timeInterval ? this.timeInterval.unsubscribe() : null;\n this.router.navigate(['/', FAST_PAYMENTS_ROUTE, FAST_PAYMENT_CONFIRMATION, bill.paymentId?.id], {\n queryParams: {\n system: this.fastPayment.paymentSystem\n }\n });\n }\n return false;\n }\n\n onTermsChanged(value: boolean): void {\n this.termsChecked = value;\n }\n\n ngOnDestroy(): void {\n this.paymentPolling$.unsubscribe();\n this.paymentSuccess$.complete();\n }\n\n @HostListener('document:visibilitychange', ['$event'])\n visibilityAction(\n event: any\n ) {\n if (!document.hidden && this.paymentStarted) {\n this.poolBlikPaymentStatus();\n }\n }\n\n @HostListener('window:focus', ['$event'])\n focusAction(\n event: any\n ): void {\n if (this.paymentStarted) {\n this.poolBlikPaymentStatus();\n }\n }\n}\n","export const POSK_ROUTE = 'posk';\nexport const POSK_PAYMENT_PAGE = 'platnosc';\nexport const POSK_PAYMENT_CONFIRMATION = 'potwierdzenie';\nexport const POSK_PAYMENT_CONFIRMATION_PARAMETRIZED = 'potwierdzenie/:id';\n","export enum OskLicenseProductPeriod {\n DAYS_30 = '30',\n DAYS_90 = '90',\n DAYS_180 = '180'\n}\n\nexport enum OskPaymentType {\n WORD = 'word',\n LICENCE = 'licencja'\n}\n\nexport enum OskLicenceType {\n EXAM = 'Egzamin', // to moze wylecieć - dogadac temat\n SMALL_OSK = 'MaleOSK',\n MEDIUM_OSK = 'SrednieOSK',\n BIG_OSK = 'DuzeOSK',\n OSK = 'OSK'\n}\n\nexport interface PoskPaymentQueryParams {\n id: string;\n type: OskPaymentType;\n error: string;\n}\n\nexport enum PoskPaymentStatus {\n REGISTERED = 'REGISTERED',\n INITIALIZING_PAYMENT_PROCESS = 'INITIALIZING_PAYMENT_PROCESS',\n SEND = 'SEND',\n REJECTED = 'REJECTED',\n ACCEPTED = 'ACCEPTED',\n ERROR = 'ERROR'\n}\n\nexport enum PoskTypeSubscription {\n REJESTRACJA_PLATNOSCI = 'REJESTRACJA_PLATNOSCI',\n ZMIANA_KARTY_ZWROT_SRODKOW = 'ZMIANA_KARTY_ZWROT_SRODKOW',\n ZMIANA_KARTY_PLATNOSC_ZA_LICENCJE = 'ZMIANA_KARTY_PLATNOSC_ZA_LICENCJE'\n}\n","import { environment as env } from '../../../../environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PoskLicencePaymentDto } from '../_models/posk-licence-payment.model';\nimport { PoskWordPaymentDto } from '../_models/posk-word-payment.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoskPaymentService {\n constructor(private _http: HttpClient) {}\n\n getPoskLicencePayment = (id: string): Observable => {\n return this._http.get(`${env.POSK.BASE}${env.POSK.LICENCE}/${id}`);\n // return of({\n // paymentId: 'df980016-839f-4ad2-997c-3f628e32eb4e',\n // amount: 13000,\n // provision: 200,\n // status: null,\n // licenceType: OskLicenceType.BIG_OSK,\n // period: OskLicenseProductPeriod.DAYS_90\n // });\n }\n\n getPoskWordPayment = (id: string): Observable => {\n return this._http.get(`${env.POSK.BASE}${env.POSK.WORD}/${id}`);\n // return of({\n // paymentId: '21313123',\n // category: WordExamCategory.A,\n // amount: 12000,\n // provision: 200,\n // reservationId: '11321231231',\n // wordName: 'WORD Kraków',\n // status: null\n // });\n }\n\n createPayment$(id: string): Observable {\n return this._http.post(\n `${env.POSK.BASE}${env.POSK.PAYMENTS}/${id}/${env.POSK.REDIRECT}`,\n {}\n );\n }\n\n createBlikPayment$(id: any, payload): Observable {\n return this._http.post(\n `${env.POSK.BASE}${env.POSK.PAYMENTS}/${id}/${env.POSK.BLIK}`,\n payload\n );\n }\n\n getPaymentStatus(billId): Observable {\n return this._http.get(`${env.POSK.BASE}${env.POSK.BILLS}/${billId}`);\n }\n}\n","
\n
\n

{{ content.title }}

\n
\n
\n

\n {{ content.paymentInfo }}\n

\n
\n
\n \n \n \n

\n {{ 'EXTERNAL_PAYMENTS.CONFIRMATION.redirectText' | translate }}\n {{ timeToRedirect }}s.\n

\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { customErrorHandler } from 'src/app/shared/extensions/extensions';\nimport { PoskPaymentStatus } from '../_models/posk-payment.model';\nimport { PoskPaymentService } from '../_services/posk-payment.service';\nimport { environment as env } from 'src/environments/environment';\nimport { GhostButtonComponent } from '../../../shared/components/ghost-button/ghost-button.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'app-payment-confirmation',\n templateUrl: './payment-confirmation.component.html',\n styleUrls: ['./payment-confirmation.component.scss'],\n standalone: true,\n imports: [NgIf, GhostButtonComponent, TranslateModule]\n})\nexport class PaymentConfirmationComponent implements OnInit, OnDestroy {\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n status: PoskPaymentStatus;\n content: any;\n redirectUrl = env.POSK.REDIRECT_URL;\n automaticRedirect: ReturnType;\n timeToRedirect = 15;\n paymentCreationError: boolean;\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router,\n private poskService: PoskPaymentService,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit(): void {\n this.getPaymentStatusAndTranslationContent();\n }\n getPaymentStatusAndTranslationContent() {\n const paramStatus = this.route.snapshot.queryParamMap.get('status');\n if (paramStatus && paramStatus === 'error') {\n this.paymentCreationError = true;\n }\n\n this.poskService.getPaymentStatus(this.route.snapshot.paramMap.get('id')).subscribe({\n next: (bill) => {\n this.status = this.paymentCreationError ? PoskPaymentStatus.ERROR : bill.status;\n this.redirectUrl = bill.redirectUrl;\n this.goToLinkAutomatically();\n this.getStatusTexts(this.status);\n },\n error: (error) => {\n customErrorHandler(error, this.toastrService, this.translate);\n this.goToLinkAutomatically();\n this.getStatusTexts('NORESPONSE');\n }\n });\n }\n\n getStatusTexts(status: PoskPaymentStatus | 'NORESPONSE') {\n this.translate.get(`EXTERNAL_PAYMENTS.CONFIRMATION.${this.getMappedStatus(status)}`).subscribe({\n next: (content) => (this.content = content)\n });\n }\n\n getMappedStatus(billStatus: PoskPaymentStatus | 'NORESPONSE') {\n switch (billStatus) {\n case PoskPaymentStatus.SEND ||\n PoskPaymentStatus.REGISTERED ||\n PoskPaymentStatus.INITIALIZING_PAYMENT_PROCESS:\n return 'AUTHPENDING';\n case PoskPaymentStatus.REJECTED:\n return 'AUTHREJECTED';\n case PoskPaymentStatus.ACCEPTED:\n return 'AUTHACCEPTED';\n case PoskPaymentStatus.ERROR:\n return 'EXCEEDED';\n case 'NORESPONSE':\n return 'NORESPONSE';\n default:\n return 'AUTHPENDING';\n }\n }\n\n goToLinkAutomatically() {\n this.automaticRedirect = setInterval(() => {\n if (this.timeToRedirect > 0) {\n this.timeToRedirect--;\n } else {\n clearInterval(this.automaticRedirect);\n this.goToLink();\n }\n }, 1000);\n }\n\n goToLink() {\n const link = this.redirectUrl.slice(0, 1);\n\n if (link === '/') {\n this.router.navigateByUrl(this.redirectUrl);\n } else {\n window.location.href = this.redirectUrl;\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.automaticRedirect);\n }\n}\n","import { map } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OskLicenceType } from './../_models/posk-payment.model';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatPoskLicenceType',\n standalone: true\n})\nexport class FormatPoskLicenceType implements PipeTransform {\n constructor(private translate: TranslateService) {}\n transform(value: OskLicenceType) {\n return this.translate.get('EXTERNAL_PAYMENTS.LICENCE_CONVERSION').pipe(\n map((conversionTexts) => {\n switch (value) {\n case OskLicenceType.EXAM:\n return conversionTexts.EXAM;\n case OskLicenceType.SMALL_OSK:\n return conversionTexts.SMALL_OSK;\n case OskLicenceType.MEDIUM_OSK:\n return conversionTexts.MEDIUM_OSK;\n case OskLicenceType.BIG_OSK:\n return conversionTexts.BIG_OSK;\n case OskLicenceType.OSK:\n return conversionTexts.OSK;\n default:\n return 'OSK';\n }\n })\n );\n }\n}\n","
\n
\n

\n {{\n content.withCardChange\n }}\n {{\n content.onlyCardChange\n }}\n {{ content.title }}\n

\n
\n\n
\n \n \n
\n \n \n \n
\n

{{ content.CART_LIST.type }}

\n
\n\n
\n

\n {{ content.CART_LIST.cardAuth }}\n

\n
\n
\n \n
\n
\n

{{ content.CART_LIST.type }}

\n
\n
\n

{{ content.CART_LIST.period }}

\n
\n
\n

{{ content.CART_LIST.price }}

\n
\n\n
\n

\n {{ isPeriodic ? content.CART_LIST.periodicPayment : '' }}\n {{ payment.licenceType | formatPoskLicenceType | async }}\n

\n
\n
\n

\n {{ payment.period }} {{ content.CART_LIST.days }}\n

\n
\n
\n

\n {{ payment.amount / 100 }} {{ content.CART_LIST.units }}\n

\n
\n
\n
\n \n\n
\n \n
\n
\n

{{ content.CART_LIST.type }}

\n
\n
\n

{{ content.CART_LIST.category }}

\n
\n
\n

{{ content.CART_LIST.examinationCenter }}

\n
\n
\n

{{ content.CART_LIST.price }}

\n
\n\n
\n

\n {{ content.CART_LIST.exam }}\n

\n
\n
\n

\n {{ payment.category }}\n

\n
\n
\n

\n {{ payment.wordName }}\n

\n
\n
\n

\n {{ payment.amount / 100 }} {{ content.CART_LIST.units }}\n

\n
\n
\n
\n \n\n \n \n \n
\n
\n

{{ content.CART_LIST.provision }}

\n
\n
\n

\n {{ payment.provision / 100 }} {{ content.CART_LIST.units }}\n

\n
\n
\n\n \n \n
\n

\n {{ content.CART_LIST.priceSum }}\n

\n
\n
\n

\n {{ payment.amount / 100 | number: '1.2-2' }}\n \n \n {{ content.CART_LIST.units }}\n

\n
\n \n \n
\n\n \n \n\n \n \n \n\n
\n

\n {{ 'EXTERNAL_PAYMENTS.ERRORS.IVALID_STATUS' | translate }}\n

\n
\n\n
\n

\n {{ 'EXTERNAL_PAYMENTS.ERRORS.INVALID_TYPE' | translate }}\n

\n
\n\n
\n

\n {{ 'EXTERNAL_PAYMENTS.ERRORS.NO_RESPONSE' | translate }}\n

\n
\n\n \n \n \n \n

\n {{ 'EXTERNAL_PAYMENTS.CONFIRMATION.redirectText' | translate }}\n {{ timeToRedirect }}s.\n

\n \n
\n","import { trigger } from '@angular/animations';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { interval, Observable, Subscription } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\nimport { ChoosenPaymentType } from 'src/app/shared/components/choose-payment-method/choosen-payment-type.model';\nimport { FADEOUT_ANIMATION } from 'src/app/shared/extensions/animations';\nimport { PaymentMethodType } from 'src/app/shared/models/payment/payment-dto.model';\nimport { ExternalPaymentsContentModel } from '../../esp-payment/_models/esp-payment-content.model';\nimport { EspPaymentStatus } from '../../esp-payment/_models/esp-payment.model';\nimport { POSK_PAYMENT_CONFIRMATION, POSK_ROUTE } from '../_consts/posk-payment-route.const';\nimport { PoskLicencePaymentDto } from '../_models/posk-licence-payment.model';\nimport {\n OskPaymentType,\n PoskPaymentQueryParams,\n PoskPaymentStatus,\n PoskTypeSubscription\n} from '../_models/posk-payment.model';\nimport { PoskWordPaymentDto } from '../_models/posk-word-payment.model';\nimport { PoskPaymentService } from '../_services/posk-payment.service';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { environment as env } from 'src/environments/environment';\nimport { FormatPoskLicenceType } from './format-posk-licence-type.pipe';\nimport { GhostButtonComponent } from '../../../shared/components/ghost-button/ghost-button.component';\nimport { LoadersComponent } from '../../../layout/loaders/loaders.component';\nimport { ChoosePaymentMethodComponent } from '../../../shared/components/choose-payment-method/choose-payment-method.component';\nimport { InfoBoxComponent } from '../../../shared/components/info-box/info-box.component';\nimport { NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, AsyncPipe, DecimalPipe } from '@angular/common';\n\n@Component({\n selector: 'app-payment',\n templateUrl: './payment.component.html',\n styleUrls: ['./payment.component.scss'],\n animations: [trigger('fadeOut', FADEOUT_ANIMATION)],\n standalone: true,\n imports: [NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, InfoBoxComponent, ChoosePaymentMethodComponent, LoadersComponent, GhostButtonComponent, AsyncPipe, DecimalPipe, TranslateModule, FormatPoskLicenceType]\n})\nexport class PaymentComponent implements OnInit, OnDestroy {\n redirectUrl = env.POSK.REDIRECT_URL;\n automaticRedirect: ReturnType;\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n payment: PoskLicencePaymentDto | PoskWordPaymentDto;\n isPeriodic: boolean;\n content: ExternalPaymentsContentModel;\n paymentId: string;\n paymentType: OskPaymentType;\n splashEnabled = false;\n loaderEnabled = false;\n initialLoaderEnabled = true;\n OskPaymentType: typeof OskPaymentType = OskPaymentType;\n PoskTypeSubscription: typeof PoskTypeSubscription = PoskTypeSubscription;\n PENDING_STATUSES = [EspPaymentStatus.AUTHPENDING];\n timeInterval: Subscription;\n timeToRedirect = 30;\n errors = {\n invalidStatus: false,\n invalidType: false,\n noResponse: false\n };\n constructor(\n private translate: TranslateService,\n private poskService: PoskPaymentService,\n private route: ActivatedRoute,\n protected router: Router,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit(): void {\n this.selectPaymentSourceBasedOnParams();\n this.getStaticContent();\n }\n\n setPaymentError(flag: keyof PaymentComponent['errors']) {\n this.initialLoaderEnabled = false;\n this.goToLinkAutomatically();\n this.errors[flag] = true;\n }\n\n selectPaymentSourceBasedOnParams() {\n this.route.queryParams.pipe(take(1)).subscribe((params: PoskPaymentQueryParams) => {\n if (!params.id) {\n this.setPaymentError('invalidType');\n return;\n }\n\n this.paymentId = params.id;\n this.paymentType = params.type;\n\n if (this.paymentType !== OskPaymentType.LICENCE && this.paymentType !== OskPaymentType.WORD) {\n this.setPaymentError('invalidType');\n return;\n }\n\n switch (this.paymentType) {\n case OskPaymentType.LICENCE:\n this.getPayment(this.poskService.getPoskLicencePayment, this.paymentId);\n break;\n case OskPaymentType.WORD:\n this.getPayment(this.poskService.getPoskWordPayment, this.paymentId);\n break;\n default:\n this.initialLoaderEnabled = false;\n break;\n }\n });\n }\n\n getPayment(\n callback: (id: string) => Observable,\n id: string\n ) {\n callback(id).subscribe({\n next: (payment) => {\n if (payment.redirectUrl) {\n this.redirectUrl = payment.redirectUrl;\n }\n if (this.checkIfPaymentIsAvailable(payment)) {\n this.payment = payment;\n this.isPeriodic = payment.periodic;\n } else {\n this.setPaymentError('invalidStatus');\n }\n this.initialLoaderEnabled = false;\n },\n error: (error) => {\n this.setPaymentError('noResponse');\n this.handlePaymentError(null, error);\n }\n });\n }\n\n checkIfPaymentIsAvailable(payment: PoskLicencePaymentDto | PoskWordPaymentDto) {\n return payment.status === PoskPaymentStatus.REGISTERED;\n }\n\n getStaticContent() {\n this.translate.get('EXTERNAL_PAYMENTS').subscribe({\n next: (content: ExternalPaymentsContentModel) => (this.content = content)\n });\n }\n\n setHTMLPaymentTitle() {\n if (this.paymentType === OskPaymentType.WORD || !this.payment.typeSubscription) {\n return this.content.CART_LIST.chooseMethod;\n }\n switch (this.payment.typeSubscription) {\n case PoskTypeSubscription.ZMIANA_KARTY_ZWROT_SRODKOW:\n return this.content.CART_LIST.authorizeCard;\n case PoskTypeSubscription.ZMIANA_KARTY_PLATNOSC_ZA_LICENCJE:\n return this.content.CART_LIST.changeCardAndPay;\n case PoskTypeSubscription.REJESTRACJA_PLATNOSCI:\n return this.content.CART_LIST.onlyCardPayment;\n default:\n return this.content.CART_LIST.chooseMethod;\n }\n }\n\n setHTMLpayButtonText() {\n if (\n this.payment.typeSubscription &&\n this.payment.typeSubscription === PoskTypeSubscription.ZMIANA_KARTY_ZWROT_SRODKOW\n ) {\n return this.content.CHOOSE_METHOD.add;\n }\n }\n\n handlePaymentError(toastrMessage: string, error?: HttpErrorResponse) {\n [this.initialLoaderEnabled, this.splashEnabled, this.loaderEnabled] = [false, false, false];\n toastrMessage ? this.toastrService.error(toastrMessage) : null;\n const genericMessage = `${this.translate.instant('EXTERNAL_PAYMENTS.ERRORS.GENERIC')} ${\n error.status ? error.status : '0'\n }`;\n\n if (error.error && error.error.errors) {\n for (const e of error.error.errors) {\n e.userMessage\n ? this.toastrService.error(e.userMessage)\n : this.toastrService.error(genericMessage);\n }\n } else {\n this.toastrService.error(genericMessage);\n }\n }\n\n onSubmit(event: ChoosenPaymentType) {\n switch (event.paymentType) {\n case PaymentMethodType.BLIK:\n env.FEATURE_TOGGLES.BLIK_LVL_ZERO ? this.proceedWithBlik(event.blikCode) : this.proceedWithECard();\n break;\n case PaymentMethodType.E_CARD:\n this.proceedWithECard();\n break;\n case PaymentMethodType.PAYMENT_CARD:\n this.proceedWithPaymentCard();\n break;\n default:\n console.error('Nieobsługiwany typ płatności');\n break;\n }\n }\n\n private proceedWithBlik(blikCode: string) {\n this.splashEnabled = true;\n\n this.poskService.createBlikPayment$(this.paymentId, this.createBlikObject(blikCode)).subscribe({\n next: (result) => {\n if (this.PENDING_STATUSES.includes(result.paymentStatus)) {\n this.poolBlikPaymentStatus(result.billId);\n } else if (result.paymentStatus === EspPaymentStatus.EXCEEDED) {\n this.handlePaymentError(this.content.CONFIRMATION.EXCEEDED.paymentInfo);\n } else {\n this.handleBlikPaymentStatus(result);\n }\n },\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n private createBlikObject(code: string) {\n return {\n blikCode: code\n };\n }\n\n private poolBlikPaymentStatus(billId: string): void {\n this.timeInterval = interval(3000)\n .pipe(switchMap(() => this.poskService.getPaymentStatus(billId)))\n .subscribe({\n next: (bill) => this.handleBlikPaymentStatus(bill),\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n private handleBlikPaymentStatus(bill): boolean {\n if (bill.paymentStatus) {\n this.splashEnabled = false;\n this.timeInterval ? this.timeInterval.unsubscribe() : null;\n this.router.navigate(['/', POSK_ROUTE, POSK_PAYMENT_CONFIRMATION, bill.billId]);\n }\n return false;\n }\n\n private proceedWithECard() {\n this.loaderEnabled = true;\n this.poskService.createPayment$(this.paymentId).subscribe({\n next: (result) => {\n if (result.paymentStatus === EspPaymentStatus.EXCEEDED) {\n this.handlePaymentError(this.content.CONFIRMATION.EXCEEDED.paymentInfo);\n } else {\n window.location.href = result.redirectUrl;\n }\n },\n error: (error) => {\n this.handlePaymentError(null, error);\n }\n });\n }\n\n goToLinkAutomatically() {\n this.automaticRedirect = setInterval(() => {\n if (this.timeToRedirect > 0) {\n this.timeToRedirect--;\n } else {\n clearInterval(this.automaticRedirect);\n window.location.href = this.redirectUrl;\n }\n }, 1000);\n }\n proceedWithPaymentCard() {\n this.proceedWithECard();\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.automaticRedirect);\n }\n}\n","export const SIGNATURES_INFO_PAGE = 'jak-podpisac-wniosek';\nexport const SITE_MAP_PAGE = 'mapa-strony';\nexport const CONTACTPAGE_ROUTE = 'kontakt';\nexport const TERMS_OF_SERVICE_ROUTE = 'regulamin';\nexport const ABOUT_US = 'o-serwisie';\nexport const DOWNLOAD_TACHO_APPLICATIONS = 'wnioski';\nexport const DOWNLOAD_TACHO_FORMS = 'formularze';\nexport const DEFECTIVE_CARD_INFO_ROUTE = 'powiadomienie-dotyczace-waznosci-karty';\nexport const MODERNIZATION_WORK_ROUTE = 'prace-serwisowe';\nexport const TACHOGRAPH_UA_FAQ = 'ua-faq';\nexport const INFORMATION_CLAUSE = 'klauzula-informacyjna'\n","import { environment as env } from './../../../environments/environment';\nimport { Observable, Subject } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nconst ACTIVATE_URL = '/activate';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivationService {\n private _accountActivated: Subject = new Subject();\n\n public accountActivated$: Observable = this._accountActivated.asObservable();\n\n constructor(private http: HttpClient) {}\n\n public activateAccount(token: string) {\n this.postActivationToken(token).subscribe({\n complete: () => this._accountActivated.next(null)\n });\n }\n\n private postActivationToken(token: string): Observable {\n return this.http.post(\n `${env.BACKEND_API.BASE_ACCOUNT_MANAGMENT}${env.BACKEND_API.ACCOUNT_MANAGMENT}` +\n `${env.BACKEND_API.CLIENT}${ACTIVATE_URL}/${token}`,\n token\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderStripeService {\n private isOpened = new Subject();\n\n constructor() {\n this.isOpened.next(false);\n }\n\n open() {\n this.isOpened.next(true);\n }\n\n close() {\n this.isOpened.next(false);\n }\n\n notifyIsOpened(): Observable {\n return this.isOpened.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class TextEllipsisService {\n private clampedSubject: ReplaySubject = new ReplaySubject();\n private enabledSubject: BehaviorSubject = new BehaviorSubject(false);\n\n public isClamped$: Observable = this.clampedSubject.asObservable();\n\n public isEnabled$: Observable = this.enabledSubject.asObservable();\n\n public setClamped(isClamped: boolean) {\n this.clampedSubject.next(isClamped);\n }\n\n public toggleEnabled() {\n this.enabledSubject.next(!this.enabledSubject.getValue());\n }\n\n public setEnabled(isEnabled: boolean) {\n this.enabledSubject.next(isEnabled);\n }\n}\n","export const clamp = (function () {\n /**\n * Clamps a text node.\n * @param {HTMLElement} element. Element containing the text node to clamp.\n * @param {Object} options. Options to pass to the clamper.\n */\n function clamp(element, options) {\n options = options || {};\n\n let self = this,\n win = window,\n opt = {\n clamp: options.clamp || 2,\n useNativeClamp:\n typeof options.useNativeClamp != 'undefined' ? options.useNativeClamp : true,\n splitOnChars: options.splitOnChars || ['.', '-', '–', '—', ' '], // Split on sentences (periods), hypens, en-dashes, em-dashes, and words (spaces).\n animate: options.animate || false,\n truncationChar: options.truncationChar || '…',\n truncationHTML: options.truncationHTML\n },\n sty = element.style,\n originalText = element.innerHTML,\n supportsNativeClamp = typeof element.style.webkitLineClamp != 'undefined',\n clampValue = opt.clamp,\n isCSSValue =\n clampValue.indexOf && (clampValue.indexOf('px') > -1 || clampValue.indexOf('em') > -1),\n truncationHTMLContainer;\n\n if (opt.truncationHTML) {\n truncationHTMLContainer = document.createElement('span');\n truncationHTMLContainer.innerHTML = opt.truncationHTML;\n }\n\n // UTILITY FUNCTIONS __________________________________________________________\n\n /**\n * Return the current style for an element.\n * @param {HTMLElement} elem The element to compute.\n * @param {string} prop The style property.\n * @returns {number}\n */\n function computeStyle(elem, prop) {\n return win.getComputedStyle(elem, null).getPropertyValue(prop);\n }\n\n /**\n * Returns the maximum number of lines of text that should be rendered based\n * on the current height of the element and the line-height of the text.\n */\n function getMaxLines(height = undefined) {\n const availHeight = height || element.clientHeight,\n lineHeight = getLineHeight(element);\n return Math.max(Math.floor(availHeight / lineHeight), 0);\n }\n\n /**\n * Returns the maximum height a given element should have based on the line-\n * height of the text and the given clamp value.\n */\n function getMaxHeight(clmp) {\n const lineHeight = getLineHeight(element);\n return lineHeight * clmp;\n }\n\n /**\n * Returns the line-height of an element as an integer.\n */\n function getLineHeight(elem) {\n let lh: any = computeStyle(elem, 'line-height');\n if (lh == 'normal') {\n // Normal line heights vary from browser to browser. The spec recommends\n // a value between 1.0 and 1.2 of the font size. Using 1.1 to split the diff.\n lh = parseInt(computeStyle(elem, 'font-size')) * 1.2;\n }\n return parseInt(lh);\n }\n\n function isClamped(elem) {\n const span = document.createElement('span');\n span.style.display = 'inline-block';\n span.style.lineHeight = computeStyle(elem, 'line-height');\n span.style.fontFamily = computeStyle(elem, 'font-family');\n span.style.fontSize = computeStyle(elem, 'font-size');\n span.style.fontWeight = computeStyle(elem, 'font-weight');\n span.style.width = computeStyle(elem, 'width');\n span.style.position = 'absolute';\n span.style.webkitBoxOrient = 'vertical';\n span.style.top = '0';\n span.innerHTML = originalText;\n span.style.visibility = 'hidden';\n document.body.appendChild(span);\n const isClamped = elem.clientHeight < span.clientHeight;\n span.parentNode.removeChild(span);\n return isClamped;\n }\n\n // MEAT AND POTATOES (MMMM, POTATOES...) ______________________________________\n let splitOnChars = opt.splitOnChars.slice(0),\n splitChar = splitOnChars[0],\n chunks,\n lastChunk;\n\n /**\n * Gets an element's last child. That may be another node or a node's contents.\n */\n function getLastChild(elem) {\n // Current element has children, need to go deeper and get last child as a text node\n if (elem.lastChild.children && elem.lastChild.children.length > 0) {\n return getLastChild(Array.prototype.slice.call(elem.children).pop());\n } else if (\n !elem.lastChild ||\n !elem.lastChild.nodeValue ||\n elem.lastChild.nodeValue == '' ||\n elem.lastChild.nodeValue == opt.truncationChar\n ) {\n elem.lastChild.parentNode.removeChild(elem.lastChild);\n return getLastChild(element);\n } else {\n return elem.lastChild;\n }\n }\n\n /**\n * Removes one character at a time from the text until its width or\n * height is beneath the passed-in max param.\n */\n function truncate(target, maxHeight) {\n if (!maxHeight) {\n return;\n }\n\n /**\n * Resets global variables.\n */\n function reset() {\n splitOnChars = opt.splitOnChars.slice(0);\n splitChar = splitOnChars[0];\n chunks = null;\n lastChunk = null;\n }\n\n const nodeValue = target.nodeValue.replace(opt.truncationChar, '');\n\n // Grab the next chunks\n if (!chunks) {\n // If there are more characters to try, grab the next one\n if (splitOnChars.length > 0) {\n splitChar = splitOnChars.shift();\n } else {\n splitChar = '';\n }\n\n chunks = nodeValue.split(splitChar);\n }\n\n // If there are chunks left to remove, remove the last one and see if\n // the nodeValue fits.\n if (chunks.length > 1) {\n // console.log('chunks', chunks);\n lastChunk = chunks.pop();\n // console.log('lastChunk', lastChunk);\n applyEllipsis(target, chunks.join(splitChar));\n } else {\n chunks = null;\n }\n\n // Insert the custom HTML before the truncation character\n if (truncationHTMLContainer) {\n target.nodeValue = target.nodeValue.replace(opt.truncationChar, '');\n element.innerHTML =\n target.nodeValue + ' ' + truncationHTMLContainer.innerHTML + opt.truncationChar;\n }\n\n // Search produced valid chunks\n if (chunks) {\n // It fits\n if (element.clientHeight <= maxHeight) {\n // There's still more characters to try splitting on, not quite done yet\n if (splitOnChars.length >= 0 && splitChar != '') {\n applyEllipsis(target, chunks.join(splitChar) + splitChar + lastChunk);\n chunks = null;\n } else {\n return element.innerHTML;\n }\n }\n } else {\n // No valid chunks even when splitting by letter, time to move\n // on to the next node\n if (splitChar == '') {\n applyEllipsis(target, '');\n target = getLastChild(element);\n\n reset();\n }\n }\n\n // If you get here it means still too big, let's keep truncating\n if (opt.animate) {\n setTimeout(\n function () {\n truncate(target, maxHeight);\n },\n opt.animate === true ? 10 : opt.animate\n );\n } else {\n return truncate(target, maxHeight);\n }\n }\n\n function applyEllipsis(elem, str) {\n elem.nodeValue = str + opt.truncationChar;\n }\n\n // CONSTRUCTOR ________________________________________________________________\n\n if (clampValue == 'auto') {\n clampValue = getMaxLines();\n } else if (isCSSValue) {\n clampValue = getMaxLines(parseInt(clampValue));\n }\n\n let clampedText;\n if (supportsNativeClamp && opt.useNativeClamp) {\n sty.overflow = 'hidden';\n sty.textOverflow = 'ellipsis';\n sty.webkitBoxOrient = 'vertical';\n sty.display = '-webkit-box';\n sty.webkitLineClamp = clampValue;\n\n if (isCSSValue) {\n sty.height = opt.clamp + 'px';\n }\n } else {\n const height = getMaxHeight(clampValue);\n if (height <= element.clientHeight) {\n clampedText = truncate(getLastChild(element), height);\n }\n }\n\n return {\n original: originalText,\n clamped: clampedText,\n isClamped: isClamped(element)\n };\n }\n\n return clamp;\n})();\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { clamp } from './clamp';\nimport { TextEllipsisService } from './text-ellipsis.service';\nimport { Subscriptions } from '../../rx-utils/subscriptions';\nimport { fromEvent, timer } from 'rxjs';\nimport { debounce, tap } from 'rxjs/operators';\n\n@Directive({\n selector: '[appTextEllipsis]',\n standalone: true\n})\nexport class TextEllipsisDirective implements OnInit, OnDestroy {\n @Input() lines = 1;\n\n private subs: Subscriptions = new Subscriptions();\n\n constructor(private elementRef: ElementRef, private textEllipsisService: TextEllipsisService) { }\n\n ngOnInit(): void {\n this.subs.next = this.textEllipsisService.isEnabled$.subscribe({\n next: (isEnabled) => this.enableEllipsis(isEnabled)\n });\n\n this.subs.next = fromEvent(window, 'resize')\n .pipe(\n debounce(() => timer(100)),\n tap(() => this.textEllipsisService.setEnabled(true))\n )\n .subscribe({\n next: () => this.clamp()\n });\n }\n\n private enableEllipsis(isEnabled: boolean) {\n if (isEnabled) this.clamp();\n else this.elementRef.nativeElement.removeAttribute('style');\n }\n\n private clamp() {\n const { isClamped } = clamp(this.elementRef.nativeElement, {\n clamp: this.lines\n });\n setTimeout(() => this.textEllipsisService.setClamped(isClamped));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n}\n","
\n
\n
\n \n
\n
\n \n
\n
\n
{{ message?.header }}
\n

\n \n

\n\n \n {{\n 'INFO_BAR.expandedLabel' | translate\n }}\n {{ 'INFO_BAR.collapsedLabel' | translate }}\n \n
\n
\n
\n","import { CommonModule, Location } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Extensions } from 'src/app/shared/extensions/extensions';\nimport { InfoBarsFacadeService } from '../info-bars-facade.service';\nimport { InfoBarMessage } from '../_models/info-bar-message.model';\nimport { GhostButtonType } from '../../../shared/components/ghost-button/ghost-button-type.enum';\nimport { Observable } from 'rxjs';\nimport { TextEllipsisService } from '../../../shared/directives/text-ellipsis/text-ellipsis.service';\nimport { map } from 'rxjs/operators';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { InternalLinkDirective } from 'src/app/shared/directives/internal-link/internal-link.directive';\nimport { SafeHtmlPipe } from 'src/app/shared/pipes/safe-html.pipe';\nimport { TextEllipsisDirective } from 'src/app/shared/directives/text-ellipsis/text-ellipsis.directive';\nimport { GhostButtonComponent } from 'src/app/shared/components/ghost-button/ghost-button.component';\n\n@Component({\n selector: 'app-info-bar',\n templateUrl: './info-bar.component.html',\n styleUrls: ['./info-bar.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AngularSvgIconModule,\n TranslateModule,\n RouterModule,\n InternalLinkDirective,\n SafeHtmlPipe,\n TextEllipsisDirective,\n GhostButtonComponent\n ],\n providers: [TextEllipsisService]\n})\nexport class InfoBarComponent implements OnInit {\n @Input() message: InfoBarMessage;\n @Input() zIndex: number;\n visible: boolean;\n isExpended$: Observable = this.textEllipsisService.isEnabled$.pipe(map((it) => !it));\n isClamped$: Observable = this.textEllipsisService.isClamped$;\n\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n\n constructor(\n private location: Location,\n private infoBarService: InfoBarsFacadeService,\n private router: Router,\n private translate: TranslateService,\n private textEllipsisService: TextEllipsisService\n ) { }\n\n ngOnInit() {\n this.visible = this.hasNoCookie();\n this.setupVisibilityTimeout();\n this.textEllipsisService.setEnabled(true);\n }\n\n setupVisibilityTimeout() {\n const { ttl } = this.message;\n if (typeof ttl === 'number' && ttl > 0) {\n setTimeout(() => (this.visible = false), this.message.ttl * 1000);\n }\n }\n\n onToggleExpandText(): void {\n this.textEllipsisService.toggleEnabled();\n }\n\n onClose() {\n Extensions.setCookie(`infobar-${this.message.id}`, 'true', true);\n this.visible = false;\n }\n\n private hasNoCookie(): boolean {\n return !Extensions.getCookie(`infobar-${this.message.id}`);\n }\n}\n","export const INFO_BAR_CONFIG = {\n COOKIES_ACCEPTANCE: {\n key: 'cookiesacceptance',\n value: { true: 'true', false: 'false' }\n }\n};\n","import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { environment as env } from 'src/environments/environment';\nimport { INFO_BAR_CONFIG } from './_consts/info-bar.config';\nimport { InfoBarMessage, InfoBarResponse } from './_models/info-bar-message.model';\n\nconst INFOBAR_POLLING_INTERVAL = 15 * 60 * 1000;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InfoBarsFacadeService implements OnDestroy {\n private infoBars = new BehaviorSubject([]);\n private etag: string;\n private readonly intervalId: any;\n public infoBars$ = this.infoBars.asObservable();\n\n constructor(private http: HttpClient) {\n this.fetchBars();\n this.intervalId = setInterval(() => this.fetchBars(), INFOBAR_POLLING_INTERVAL);\n }\n\n private fetchBars() {\n let headers = new HttpHeaders().set('Access-Control-Expose-Headers', 'ETag');\n\n if (this.etag) {\n headers = headers.set('If-None-Match', this.etag);\n }\n\n this.http\n .get(`${env.INFOBARS_ENDPOINT}`, {\n headers: headers,\n observe: 'response'\n })\n .subscribe({\n next: (resp: HttpResponse) => {\n this.etag = resp.headers.get('ETag');\n\n if (resp.body) {\n this.infoBars.next(resp.body.infobars);\n }\n },\n error: () => { }\n });\n }\n\n public areCookiesAlreadyAccepted(): boolean {\n return (\n localStorage.getItem(INFO_BAR_CONFIG.COOKIES_ACCEPTANCE.key) ===\n INFO_BAR_CONFIG.COOKIES_ACCEPTANCE.value.true\n );\n }\n\n public acceptCookies(): void {\n localStorage.setItem(\n INFO_BAR_CONFIG.COOKIES_ACCEPTANCE.key,\n INFO_BAR_CONFIG.COOKIES_ACCEPTANCE.value.true\n );\n }\n\n ngOnDestroy(): void {\n clearInterval(this.intervalId);\n }\n}\n","
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n @if(loadingText) {\n

\n }\n
\n
\n\n
\n
\n
\n\n
\n

\n \n \n \n \n \n \n \n \n \n

\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ loadingText }}\n \n \n \n \n
","import {\n Component,\n OnDestroy,\n Input,\n OnInit,\n OnChanges,\n SimpleChange,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Inject,\n Renderer2\n} from '@angular/core';\nimport { LoadersService } from './loaders.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DEFAULTS, CLoaders, PRIMARY_LOADER, LoaderType } from './loaders.enum';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-loaders',\n templateUrl: 'loaders.component.html',\n styleUrls: ['loaders.component.scss'],\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('loaderAnimation', [\n state('fadeIn', style({ opacity: 1 })),\n state('fadeOut', style({ opacity: 1 })),\n state('fadeInOut', style({ opacity: 1 })),\n\n transition('fadeOut => void, fadeInOut => void', [animate(400, style({ opacity: 0 }))]),\n transition('void => fadeIn, void => fadeInOut', [\n style({ opacity: 0 }),\n animate(400, style({ opacity: 1 }))\n ])\n ])\n ]\n})\nexport class LoadersComponent implements OnDestroy, OnInit, OnChanges {\n @Input() bdColor: string;\n\n @Input() type: LoaderType;\n\n @Input() fullScreen: boolean;\n\n @Input() name: string;\n\n @Input() zIndex: number;\n\n @Input() show: boolean;\n\n @Input() animation: string;\n\n @Input() disableScroll: boolean;\n\n @Input() positionRelative: boolean;\n @Input() reverse: boolean;\n @Input() loadingText: string;\n\n loaders: CLoaders = new CLoaders();\n\n ngUnsubscribe: Subject = new Subject();\n\n constructor(\n private loadersService: LoadersService,\n private changeDetector: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: Document,\n private renderer: Renderer2\n ) {\n this.bdColor = DEFAULTS.BD_COLOR;\n this.zIndex = DEFAULTS.Z_INDEX;\n this.type = DEFAULTS.LOADER_TYPE;\n this.fullScreen = false;\n this.name = PRIMARY_LOADER;\n this.show = true;\n this.animation = DEFAULTS.ANIMATION;\n this.disableScroll = false;\n this.positionRelative = false;\n this.reverse = false;\n }\n\n ngOnInit() {\n this.setDefaultOptions();\n this.loadersService\n .getLoaders(this.name)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((loaders: CLoaders) => {\n this.setDefaultOptions();\n Object.assign(this.loaders, loaders);\n this.changeDetector.markForCheck();\n });\n }\n\n setDefaultOptions = () => {\n this.loaders = new CLoaders({\n name: this.name,\n bdColor: this.bdColor,\n type: this.type,\n fullScreen: this.fullScreen,\n show: this.show,\n zIndex: this.zIndex,\n animation: this.animation,\n positionRelative: this.positionRelative,\n reverse: this.reverse,\n loadingText: this.loadingText\n });\n }\n\n ngOnChanges(changes: { [propKey: string]: SimpleChange }) {\n for (const propName in changes) {\n if (propName) {\n const changedProp = changes[propName];\n if (changedProp.isFirstChange()) {\n return;\n } else if (\n typeof changedProp.currentValue !== 'undefined' &&\n changedProp.currentValue !== changedProp.previousValue\n ) {\n if (changedProp.currentValue !== '') {\n this.loaders[propName] = changedProp.currentValue;\n }\n }\n }\n }\n }\n\n onAnimationStart(event) {\n if (this.show && this.disableScroll)\n this.renderer.addClass(this.document.documentElement, 'disable-scroll');\n }\n\n onAnimationEnd(event) {\n this.renderer.removeClass(this.document.documentElement, 'disable-scroll');\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","export type LoaderType = 'splash' | 'spinner' | 'dots' | 'blue-dots' | 'bordered-dots' | 'car';\n\nexport interface LoaderDefaults {\n BD_COLOR: string;\n TYPE_COLOR: string;\n LOADER_TYPE: LoaderType;\n Z_INDEX: number;\n SHOW: boolean;\n ANIMATION: string;\n ON: boolean;\n}\n\nexport const DEFAULTS: LoaderDefaults = {\n BD_COLOR: 'transparent',\n TYPE_COLOR: 'transparent',\n LOADER_TYPE: 'spinner',\n Z_INDEX: 999,\n SHOW: true,\n ANIMATION: 'fadeIn',\n ON: true\n};\n\nexport const PRIMARY_LOADER = 'primary';\n\nexport interface LoadersInterface {\n bdColor?: string;\n color?: string;\n type?: string;\n fullScreen?: boolean;\n zIndex?: number;\n}\n\nexport class CLoaders {\n name: string;\n bdColor: string;\n type: string;\n class: string;\n fullScreen: boolean;\n show: boolean;\n zIndex: number;\n animation: string;\n positionRelative: boolean;\n reverse: boolean;\n loadingText: string;\n\n constructor(init?: Partial) {\n Object.assign(this, init);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { CLoaders, PRIMARY_LOADER, LoadersInterface } from './loaders.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadersService {\n private spinnerObservable = new ReplaySubject(1);\n\n constructor() {}\n\n getLoaders(name: string): Observable {\n return this.spinnerObservable.asObservable().pipe(filter((x) => x && x.name === name));\n }\n\n show(name: string = PRIMARY_LOADER, loaders?: LoadersInterface) {\n const showPromise = new Promise((resolve, _reject) => {\n if (loaders && Object.keys(loaders).length) {\n loaders['name'] = name;\n this.spinnerObservable.next(new CLoaders({ ...loaders, show: true }));\n resolve(true);\n } else {\n this.spinnerObservable.next(new CLoaders({ name, show: true }));\n resolve(true);\n }\n });\n return showPromise;\n }\n\n hide(name: string = PRIMARY_LOADER, debounce: number = 0) {\n const hidePromise = new Promise((resolve, _reject) => {\n setTimeout(() => {\n this.spinnerObservable.next(new CLoaders({ name, show: false }));\n resolve(true);\n }, debounce);\n });\n return hidePromise;\n }\n}\n","export const LOGIN_ROUTE = 'logowanie';\nexport const FORGOT_PASSWORD_ROUTE = 'zapomnialem-hasla';\nexport const RESET_PASSWORD_ROUTE = 'nowe-haslo/:token';\n","import { ActivationService } from './../../layout/_service/activation.service';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountActivationResolver {\n constructor(private accountActivation: ActivationService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const token = route.params['token'];\n if (token) this.accountActivation.activateAccount(token);\n\n return true;\n }\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from '../../shared/models/search/translation.model';\nimport * as fromShared from '../../shared/store/shared.reducer';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'app-search-page-section',\n templateUrl: './search-page-section.component.html',\n styleUrls: ['./search-page-section.component.scss']\n})\nexport class SearchPageSectionComponent implements OnInit, OnDestroy {\n translation: Translation;\n subscription: Subscription;\n\n constructor(private servicesStore: Store) {\n this.subscription = this.servicesStore\n .select(fromShared.selectSearchServicesData)\n .subscribe((result) => (this.translation = result));\n }\n\n ngOnInit() {}\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","
\n
\n

{{ 'SEARCH.title' | translate }}

\n \n
\n
\n","","import { GhostButtonType } from '../../shared/components/ghost-button/ghost-button-type.enum';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ServiceCategory } from 'src/app/shared/models/service-category.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TACHOGRAPH_ROUTE } from '../../service-category/_consts/service-category-route.const';\n\n@Component({\n selector: 'app-categories-services',\n templateUrl: './categories-services.component.html',\n styleUrls: ['./categories-services.component.scss']\n})\nexport class CategoriesServicesComponent implements OnInit, OnDestroy {\n categories: ServiceCategory[];\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n tachographLink = TACHOGRAPH_ROUTE;\n subscription = new Subscription();\n constructor(private route: ActivatedRoute, private translate: TranslateService) {}\n\n ngOnInit() {\n this.categories = this.translate.instant('SERVICE_CATEGORY.SERVICES_INFO_BOX');\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","
\n \n \n
\n \n
\n
\n
\n \n \n
\n
\n \n \n

\n
\n \n \n {{ slide?.buttonLabel }}\n \n \n \n {{ slide?.buttonLabel }}\n \n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n","import { MainPageService } from '../_service/main-page.service';\nimport { GhostButtonType } from '../../shared/components/ghost-button/ghost-button-type.enum';\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { Slide } from './models/slider.model';\nimport { Subscription } from 'rxjs';\nimport { NgbCarousel } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbSlideEvent } from '@ng-bootstrap/ng-bootstrap/carousel/carousel';\nimport { ActivatedRoute } from '@angular/router';\nimport { List } from 'immutable';\n\nconst sliderActionBoxMaxLength = 30;\nconst sliderActionBoxMaxLetters = 27;\nconst SLIDE_INTERVAL = 5000;\n@Component({\n selector: 'app-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss']\n})\nexport class SliderComponent implements OnInit, OnDestroy {\n @ViewChild('carousel', { static: true }) carousel: NgbCarousel;\n public sliderElements = new Array();\n public isPaused = false;\n public imgSrc = 'assets/images/more_icon_normal.svg';\n public nextSlideHeader: string;\n public nextSliderElement: Slide;\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n private slideIdPrefix = 'ngb-slide-';\n private subscription = new Subscription();\n // todo remove when real cms show up\n private unusedSlidesIds = List([211, 212, 213, 221, 223]);\n\n constructor(private route: ActivatedRoute, private mainPageService: MainPageService) {}\n\n ngOnInit() {\n this.getSliderElements();\n }\n\n getSliderElements() {\n this.sliderElements = this.mainPageService\n .getSlides()\n .filter((slide) => !this.unusedSlidesIds.contains(slide.id));\n this.sliderElements.sort((slide1, slide2) => slide1.ordinalNumber - slide2.ordinalNumber);\n if (this.sliderElements.length > 1) {\n this.nextSlideHeader = this.sliderElements[1].header;\n this.nextSliderElement = this.sliderElements[1];\n }\n setTimeout(() => {\n this.carousel.cycle();\n }, 0);\n }\n\n onSlideChange(event: NgbSlideEvent): void {\n let nextSlideId = Number.parseInt(event.current.replace(this.slideIdPrefix, ''), 10);\n if (nextSlideId === this.sliderElements.length - 1) {\n nextSlideId = 0;\n } else {\n nextSlideId++;\n }\n this.nextSlideHeader =\n this.sliderElements[nextSlideId].header.length >= sliderActionBoxMaxLength\n ? this.sliderElements[nextSlideId].header.slice(0, sliderActionBoxMaxLetters).concat('...')\n : this.sliderElements[nextSlideId].header;\n this.nextSliderElement = this.sliderElements[nextSlideId];\n }\n\n nextSlide() {\n this.carousel.next();\n if (this.isPaused) {\n this.carousel.pause();\n }\n }\n\n pauseOrStartCarousel() {\n if (this.isPaused) {\n this.carousel.interval = SLIDE_INTERVAL;\n this.carousel.cycle();\n this.isPaused = false;\n } else {\n this.carousel.interval = 0;\n this.carousel.pause();\n this.isPaused = true;\n }\n }\n\n prevSlide() {\n this.carousel.prev();\n if (this.isPaused) {\n this.carousel.pause();\n }\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public buildSlideId(id: number): string {\n return this.slideIdPrefix + id;\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n \n {{ content.seeAllBtn }}\n \n
\n
\n
\n\n\n \n \n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, ElementRef, HostListener, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { News } from 'src/app/news/_models/news';\nimport { NewsService } from 'src/app/news/news.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { MainPage } from '../_model/main-page.model';\nimport { Subscription } from 'rxjs';\n\n// MOCKED DATA\nimport { newsMock } from 'src/app/news/_mock/news';\n\ndeclare const $: any;\n\n@Component({\n selector: 'app-news-page-section',\n templateUrl: './news-page-section.component.html',\n styleUrls: ['./news-page-section.component.scss']\n})\nexport class NewsPageSectionComponent implements OnInit, OnDestroy {\n @ViewChild('slidersContainerData') slidersContainerData: ElementRef;\n slidesPerPage = 3;\n mobileSlidesPerPage = 1;\n slidersContent: News[] = [];\n content: any;\n private slideWidth: number;\n private slidePage = 0;\n private maxPages: number;\n private subscription = new Subscription();\n isMobile: boolean;\n offset: number;\n constructor(\n private newsService: NewsService,\n private route: ActivatedRoute,\n private translate: TranslateService\n ) {}\n recentlyReadNews = [];\n ngOnInit() {\n this.getNews();\n this.newsService.getRecentlyReadNews().subscribe((news: any[]) => {\n this.recentlyReadNews = news;\n });\n this.translate.get('MAIN_PAGE.NEWS_SECTION').subscribe({\n next: (content) => {\n this.content = content;\n }\n });\n\n this.checkIsMobile();\n }\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n getNews() {\n this.subscription = this.route.data.subscribe((data: { mainPage: MainPage }) => {\n this.slidersContent.push(...data.mainPage.news.promoNews, ...newsMock);\n this.slidersContent = this.slidersContent.sort(\n (a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()\n );\n this.formatNewsDate();\n this.slidePage = 0;\n });\n }\n\n slide(): void {\n this.slideWidth = this.slidersContainerData?.nativeElement.clientWidth || 0;\n this.offset = this.slidePage * this.slideWidth * -1 || 0;\n }\n\n newsDateFormater(date: string) {\n const d = new Date(date.replace(/-/g, '/'));\n return `${d.toLocaleString('pl-PL', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n })}`;\n }\n\n formatNewsDate() {\n this.slidersContent = this.slidersContent.map((slide) => {\n return {\n ...slide,\n date: this.newsDateFormater(slide.date)\n };\n });\n }\n\n prevSlides() {\n if (this.slidePage > 0) {\n this.slidePage -= 1;\n }\n\n this.slide();\n }\n\n nextSlides() {\n if (this.slidePage < this.maxPages) {\n this.slidePage += 1;\n }\n this.slide();\n }\n\n checkMaxPages() {\n this.maxPages = this.isMobile\n ? Math.ceil(this.slidersContent.length / this.mobileSlidesPerPage) - 1\n : Math.ceil(this.slidersContent.length / this.slidesPerPage) - 1;\n }\n\n @HostListener('window:resize', ['$event'])\n checkIsMobile() {\n this.isMobile = window.outerWidth <= 767;\n\n this.slidePage = 0;\n this.slide();\n\n this.checkMaxPages();\n }\n}\n","import { ToastrService } from 'ngx-toastr';\nimport { AuthService } from 'src/app/core/auth';\nimport { MetaService } from 'src/app/shared/services/meta-service/meta.service';\nimport { BreadcrumbsService } from 'src/app/shared/components/breadcrumbs/breadcrumbs.service';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { openAnonymousPaperApplicationToastr } from '../shared/extensions/extensions';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'app-main-page',\n templateUrl: './main-page.component.html',\n styleUrls: ['./main-page.component.scss']\n})\nexport class MainPageComponent implements OnInit, OnDestroy {\n loggedUser: string;\n constructor(private breadcrumbsService: BreadcrumbsService, private metaService: MetaService, private auth: AuthService, private toast: ToastrService) {}\n\n ngOnInit() {\n this.breadcrumbsService.breadcrumbsHide.emit(true);\n this.metaService.createCanonicalURL();\n\n this.auth.state$.pipe(filter(state => state.status === 'initialized')).subscribe({\n next: value => {\n this.loggedUser = value.user?.uuid;\n openAnonymousPaperApplicationToastr(this.loggedUser, this.toast);\n }\n })\n }\n \n ngOnDestroy() {\n this.breadcrumbsService.breadcrumbsHide.emit(false);\n }\n}\n","
\n \n \n \n \n
\n","import { AccountActivationResolver } from './../_resolver/account-activation.resolver';\nimport { AnonymousGuard } from 'src/app/core/guard/anonymous-guard';\nimport { MainPageComponent } from '../main-page.component';\nimport { Route } from '@angular/router';\nimport { MainPageResolver } from '../_resolver/main-page.resolver';\n\nexport const MAIN_PAGE_ROUTE = '';\nexport const ACTIVATION_ROUTE = 'aktywacja';\nexport const ACTIVATION_ROUTE_PARAMETRIZED = 'aktywacja/:token';\n\nexport const ACTIVATION_ROUTING: Route = {\n path: ACTIVATION_ROUTE_PARAMETRIZED,\n component: MainPageComponent,\n resolve: {\n mainPage: MainPageResolver,\n accountActivation: AccountActivationResolver\n },\n canActivate: [AnonymousGuard],\n runGuardsAndResolvers: 'always'\n};\nexport const MAIN_PAGE_ROUTING: Route = {\n path: '',\n component: MainPageComponent,\n pathMatch: 'full',\n resolve: {\n mainPage: MainPageResolver\n },\n // runGuardsAndResolvers: 'always',\n children: [ACTIVATION_ROUTING]\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nconst SLIDER_ENDPOINT = '/slider';\n\n// note unused\n@Injectable({\n providedIn: 'root'\n})\nexport class SliderService {\n constructor(private _http: HttpClient) {}\n}\n","import * as newsActions from 'src/app/news/_store/news-action';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { MainPage } from '../_model/main-page.model';\nimport { SliderService } from '../slider/service/slider.service';\nimport { MainPageService } from '../_service/main-page.service';\nimport { Store } from '@ngrx/store';\nimport {\n MainPageState,\n selectCategorySectionData,\n selectSliderData\n} from '../_store/main-page.reducer';\nimport {\n selectPopularServicesData,\n selectServicesData,\n SharedState\n} from 'src/app/shared/store/shared.reducer';\nimport { filter, map, take } from 'rxjs/operators';\nimport { NewsState, selectNewsState } from 'src/app/news/_store/news-reducer';\n\n@Injectable()\nexport class MainPageResolver {\n constructor(\n private sliderService: SliderService,\n private mainPageService: MainPageService,\n private mainPageStore: Store,\n private sharedStore: Store,\n private newsStore: Store\n ) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n this.initMainPageData();\n // unused\n const servicesData$ = this.sharedStore.select(selectServicesData);\n // unused\n const popularServicesData$ = this.sharedStore.select(selectPopularServicesData);\n // unused\n const sliderData$ = this.mainPageStore.select(selectSliderData);\n // unused\n const categorySectionData$ = this.mainPageStore.select(selectCategorySectionData);\n const newsState$ = this.newsStore.select(selectNewsState);\n return combineLatest(\n servicesData$,\n popularServicesData$,\n sliderData$,\n categorySectionData$,\n newsState$,\n (servicesData, popularServicesData, sliderData, categorySectionData, newsState) => {\n return {\n categories: servicesData,\n services: popularServicesData,\n slider: sliderData,\n categoriesSection: categorySectionData,\n news: newsState\n } as MainPage;\n }\n ).pipe(\n filter((x) => {\n return x.news !== undefined && !!x.news && x.news.promoNews.length > 0;\n }),\n map((mainPage) => {\n return mainPage;\n }),\n take(1)\n );\n }\n\n initMainPageData() {\n this.newsStore.dispatch(new newsActions.GetSliderNews({ page: 1, rows: 6 }));\n }\n}\n","import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { Slide } from '../slider/models/slider.model';\n\nconst MAIN_PAGE_ENDPOINT = '/homepage';\n\n@Injectable()\nexport class MainPageService {\n constructor() {}\n\n // todo delete magic ids when real cms will be up and running\n getSlides(): Slide[] {\n return [\n {\n buttonLabel: 'Czytaj dalej',\n description: '',\n destination: {\n id: null,\n type: 'basket_disable_article'\n },\n header: 'UWAGA
ZMIANA REGULAMINU SERWISU INFOCAR
WYGASZAMY USŁUGI PŁATNOŚCI ZA DOKUMENTY',\n href: null,\n id: 204,\n img: 'assets/images/sliders/AS.jpg',\n ordinalNumber: 1,\n subheader: '',\n alt: 'Zdjęcie prezentujące kobiete patrzącą w laptopa'\n },\n {\n buttonLabel: 'Czytaj dalej',\n description: '',\n destination: {\n id: null,\n type: 'new_stc_applications_article'\n },\n header:\n 'UWAGA',\n href: null,\n id: 205,\n img: 'assets/images/sliders/new_stc_application.png',\n ordinalNumber: 2,\n subheader: 'NOWE WZORY WNIOSKÓW',\n alt: 'Zdjęcie prezentujące kluczyk do samochodu i zamek'\n },\n {\n buttonLabel: 'Czytaj dalej',\n description: '',\n destination: {\n id: null,\n type: 'g2v2_info_article'\n },\n header:\n 'NOWE KARTY TACHOGRAFOWE G2V2',\n href: null,\n id: 206,\n img: 'assets/images/sliders/g2v2_banner.png',\n ordinalNumber: 3,\n subheader:\n 'SPRAWDŹ, CO SIĘ ZMIENIŁO!',\n alt: 'Grafika przedstawiająca drogi przecinające się w mieście, z lotu ptaka'\n },\n {\n buttonLabel: 'Czytaj dalej',\n description: '',\n destination: {\n id: null,\n type: 'word_price_article'\n },\n header:\n 'Ceny egzaminów idą w górę',\n href: null,\n id: 208,\n img: 'assets/images/sliders/slider_egzaminy_ceny.png',\n ordinalNumber: 4,\n subheader:\n 'kolejne sejmiki wojewódzkie zmieniają stawki',\n alt: 'Zdjęcie prezentujące samochód szkoły jazdy.'\n },\n {\n buttonLabel: 'Sprawdź',\n description: '',\n destination: {\n id: null,\n type: 'driver_license_word_exam_check_availability'\n },\n header: '
Sprawdź dostępność terminów
egzaminu na prawo jazdy',\n href: null,\n id: 210,\n img: 'assets/images/sliders/promo-slider.jpg',\n ordinalNumber: 5,\n subheader:\n 'Chcesz jak najszybciej zapisać się na egzamin?
Sprawdź, gdzie i kiedy zdasz go najwcześniej!',\n alt: 'Zdjęcie prezentujące telefon komórkowy z otwarym oknem info-car.pl'\n },\n {\n buttonLabel: 'Dowiedz się więcej',\n description: '',\n destination: { id: null, type: 'duedate_article' },\n header: 'COVID-19 PRZEDŁUŻENIE WAŻNOŚCI DOKUMENTÓW',\n href: null,\n id: 211,\n img: 'assets/images/sliders/waznosc.jpg',\n ordinalNumber: 6,\n subheader:\n 'Wszystkie te dokumenty i uprawnienia, których termin upłynął w okresie stanu zagrożenia epidemicznego lub stanu epidemii pozostaną ważne i będą ważne także w okresie 60 dni od daty zakończenia stanu zagrożenia epidemicznego lub stanu epidemii.',\n alt: ''\n },\n {\n buttonLabel: 'Dowiedz się więcej',\n description: '',\n destination: { id: null, type: 'applications_article' },\n header: 'UWAGA',\n href: null,\n id: 212,\n img: 'assets/images/sliders/tacho.jpg',\n ordinalNumber: 7,\n subheader:\n 'OD 4 MAJA 2020 R. PWPW BĘDZIE
PRZYJMOWAŁA WNIOSKI JEDYNIE NA
AKTUALNIE OBOWIĄZUJĄCYCH
FORMULARZACH.',\n alt: ''\n },\n {\n buttonLabel: 'Dowiedz się więcej',\n description: '',\n destination: null,\n header: 'Potrzebujesz podpisu kwalifikowanego?',\n href: 'https://sigillum.pl/',\n id: 213,\n img: 'assets/images/sliders/sigillum.jpg',\n ordinalNumber: 8,\n subheader:\n 'Sprawdź ofertę centrum usług zaufania sigillum
teraz dostępny również \"Podpis kwalifikowany na e-dowodzie\"',\n alt: '' \n },\n {\n id: 221,\n header: \"CZEKASZ NA DOWÓD REJESTRACYJNY?\",\n subheader: \"SPRAWDŹ CZY TWÓJ DOWÓD REJESTRACYJNY JEST GOTOWY DO ODBIORU\",\n description: \"\",\n buttonLabel: \"Więcej\",\n img: \"assets/images/sliders/driver-license.jpg\",\n ordinalNumber: 9,\n href: null,\n destination: {\n id: null,\n type: 'check_registration_document_status'\n },\n alt: ''\n },\n {\n id: 222,\n header: \"SKOŃCZYŁEŚ JUŻ KURS?\",\n subheader: \"ZAPISZ SIĘ NA EGZAMIN NA PRAWO JAZDY\",\n description: \"\",\n buttonLabel: \"Zapisz się\",\n img: \"assets/images/sliders/driver-course-finished.jpg\",\n ordinalNumber: 10,\n href: null,\n destination: {\n id: null,\n type: 'driver_license_word_exam'\n },\n alt: 'Zdjęcie prezentujące wnętrze samochodu. Kobieta prowadzi samochód.'\n },\n {\n id: 223,\n header: \"ADR ZASADY ZDOBYWANIA ZAŚWIADCZENIA\",\n subheader: \"SPRAWDŻ, JAK ZDOBYĆ ZAŚWIADCZENIA ADR\",\n description: \"\",\n buttonLabel: \"Więcej\",\n img: \"assets/images/sliders/adr.jpg\",\n ordinalNumber: 11,\n href: null,\n destination: {\n id: null,\n type: 'adr_certificate_rules'\n },\n alt: ''\n },\n {\n id: 224,\n header: \"JESTEŚ KIEROWCĄ ZAWODOWYM?\",\n subheader: \"UZYSKAJ KARTĘ DO TACHOGRAFU\",\n description: \"\",\n buttonLabel: \"Uzyskaj kartę\",\n img: \"assets/images/sliders/driver-tacho.jpg\",\n ordinalNumber: 12,\n href: null,\n destination: {\n id: null,\n type: 'tachograph_card'\n },\n alt: 'Zdjęcie prezentujące cysternę widzianą z lotu ptaka'\n }\n ];\n }\n}\n","import { Action } from '@ngrx/store';\nimport { Slider } from '../slider/models/slider.model';\nimport { CategorySectionTitleModel } from '../categories-services/_model/category-section-titles.model';\n\nexport interface MainPageActions {\n SET_SLIDER: string;\n SET_CATEGORY_SECTION: string;\n}\n\nexport const ActionTypes: MainPageActions = {\n SET_SLIDER: '[Slider] Set',\n SET_CATEGORY_SECTION: '[CategorySection] Set'\n};\n\nexport class SetSliderAction implements Action {\n type = ActionTypes.SET_SLIDER;\n constructor(public payload: Slider) {}\n}\n\nexport class SetCategorySectionAction implements Action {\n type = ActionTypes.SET_CATEGORY_SECTION;\n constructor(public payload: CategorySectionTitleModel) {}\n}\n\nexport type Actions = SetSliderAction | SetCategorySectionAction;\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as mainPage from './main-page.action';\nimport { Slider } from '../slider/models/slider.model';\nimport { CategorySectionTitleModel } from '../categories-services/_model/category-section-titles.model';\n\nexport interface MainPageState {\n sliderData: Slider;\n categorySection: CategorySectionTitleModel;\n}\n\nexport const MainPageInitialState: MainPageState = {\n sliderData: null,\n categorySection: null\n};\n\nexport function MainPageReducer(\n state: MainPageState = MainPageInitialState,\n action: mainPage.Actions\n): MainPageState {\n switch (action.type) {\n case mainPage.ActionTypes.SET_SLIDER:\n return Object.assign({}, state, {\n sliderData: action.payload\n });\n case mainPage.ActionTypes.SET_CATEGORY_SECTION:\n return Object.assign({}, state, {\n categorySection: action.payload\n });\n default:\n return state;\n }\n}\n\nexport const featureName = 'main-page';\n\nexport const selectMainPageState = createFeatureSelector(featureName);\n\nexport const selectSliderData = createSelector(\n selectMainPageState,\n (state: MainPageState) => state.sliderData\n);\n\nexport const selectCategorySectionData = createSelector(\n selectMainPageState,\n (state: MainPageState) => state.categorySection\n);\n","export const MY_ACCOUNT_ROUTE = 'konto';\n","export const LIST_EMPLOYEES_ROUTE = 'pracownicy';\nexport const ADD_EMPLOYEE_ROUTE = 'dodaj-pracownika';\nexport const EDIT_EMPLOYEE_BASE_ROUTE = 'edytuj-pracownika';\nexport const EDIT_EMPLOYEE_ROUTE = 'edytuj-pracownika/:id';\n","export const EXAMS_ROUTE = 'egzaminy';\n","export const LIST_APPLICATIONS_ROUTE = 'wnioski';\nexport const DRAFT_LIST_APPLICATIONS_ROUTE = 'wnioski-robocze';\n","export const NOTIFICATIONS_ROUTE = 'powiadomienia';\nexport const NOTIFICATIONS_PANEL_ROUTE = NOTIFICATIONS_ROUTE + '/lista';\n","import { NOTIFICATIONS_ROUTE } from './../../_consts/notifications-panel.route.const';\nexport const NOTIFICATION_FORM_ROUTE = NOTIFICATIONS_ROUTE + '/dodaj';\n","export const SETTINGS_ROUTE = 'ustawienia';\n","export const STATEMENTS_ROUTE = 'oświadczenia';\n","export const NEWS_ROUTE = 'aktualnosci';\n","/* tslint:disable */\nimport { News } from '../_models/news';\n\nexport const newsMock: News[] = [\n {\n id: 2327,\n title: 'Wygaszamy usługi: zapłać za wydanie prawa jazdy i zapłać za wydanie dowodu rejestracyjnego',\n header: '',\n content: `\n

W związku z koniecznością wygaszenia internetowych usług: Zapłać za wydanie prawa jazdy i Zapłać za wydanie dowodu rejestracyjnego, które funkcjonują w serwisie InfoCar od 2013 r. informujemy, że możliwość zapłacenia za dokumenty online będzie dostępna do końca sierpnia 2024 r.

\n

Użytkownicy, którzy dotychczas nie wykorzystali wpłaconych środków na poczet produkcji dokumentów lub czynności związanych z rejestracją pojazdów, mogą zgodnie z regulaminem serwisu InfoCar zawnioskować o ich zwrot lub wykorzystać w urzędzie zgodnie z wcześniejszymi zasadami. Wydane przez serwis InfoCar potwierdzenia zapłaty zachowują ważność.

\n

Powyższe oznacza, że osoby, które przed końcem sierpnia 2024 r. dokonały wpłaty i otrzymały na wskazany wcześniej adres email potwierdzenie zapłaty wraz z kodem QR, mogą nadal skutecznie zeskanować go w urzędzie i rozliczyć kupon.

\n

Dziękujemy za skorzystanie z naszej usługi i zapraszamy do korzystania z dostarczonych przez nas do urzędów terminali płatniczych.

\n

Zespół InfoCar

\n


Informujemy, że w związku ze zmianami w serwisie oraz zmianą regulaminu, użytkownikom przysługuje prawo do wypowiedzenia umowy konta bez zachowania terminu wypowiedzenia w ciągu 30 dni od dnia dokonania zmiany.

\n `,\n imgSrc: 'assets/images/sliders/AS.jpg',\n imgCaption: '',\n date: '2024-08-26 14:30',\n tags: []\n },\n {\n id: 2326,\n title: 'Nowe wzory wniosków',\n header: '',\n content: `\n

Miło nam poinformować, że od dnia 29.08 2023 udostępniliśmy Państwu możliwość składania wniosków elektronicznych według nowych wzorów określonych Rozporządzeniem Ministra Infrastruktury z dnia 19 maja 2023 roku w sprawie kart do tachografów cyfrowych. Jednocześnie przypominamy, że wnioski o wydanie kart składane na formularzach określonych Rozporządzeniem z dnia 17.20.2019 roku będą przyjmowane i akceptowane tylko do dnia 30 września 2023 roku.

\n
\n

Po 30 września 2023 r. PWPW SA będzie realizować zamówienia wyłącznie w oparciu o nowe wzory wniosków.

\n `,\n imgSrc: 'assets/images/sliders/new_stc_application.png',\n imgCaption: '',\n date: '2023-09-04 14:30',\n tags: []\n },\n {\n id: 2325,\n title: 'Nowe karty tachografowe G2v2',\n header: '',\n content: `\n

PWPW jest zobowiązana do wydawania od dnia 21 sierpnia 2023 r. kart do inteligentnych tachografów cyfrowych drugiej wersji (G2v2).

\n
\n

Dlaczego wprowadzamy nowe karty tachografowe (G2v2)?

\n

Wynika to z europejskich i krajowych regulacji, nakładających obowiązek instalowania inteligentnych tachografów cyfrowych drugiej wersji w pojazdach o dopuszczalnej masie całkowitej powyżej 3,5 tony lub pojazdach przystosowanych i przeznaczonych do przewozu więcej niż dziewięciu osób łącznie z kierowcą rejestrowanych po raz pierwszy na terytorium Unii Europejskiej od dnia 21 sierpnia 2023 r. Nowe tachografy m.in. rejestrują większą ilość danych, dlatego też PWPW zgodnie z nowymi regulacjami prawnymi wprowadza nowy, dedykowany im rodzaj kart o rozszerzonych funkcjach.

\n
\n
\n

Czym karty do inteligentnych tachografów cyfrowych drugiej generacji (G2v2) różnią się od wcześniejszych?

\n

Wyłącznie warstwą elektroniczną: mają nowy mikroprocesor i więcej miejsca przeznaczonego do zapisu danych. Wizualnie wyglądają tak samo.

\n
\n
\n

Dlaczego nowe karty tachografowe (G2v2) muszą mieć więcej miejsca na zapis danych?

\n

Ponieważ regulacje europejskie i krajowe nakazują zautomatyzowane rejestrowanie na nich większej ilości informacji. W przypadku kart kierowcy ilość zapisywanych danych zwiększy się o 85 proc. Obejmą m.in. od 1 stycznia 2025 r. wydłużony z 28 do 56 dni okres rejestracji danych dotyczących aktywności kierowcy, automatyczną rejestrację przekroczenia granicy, czy też rejestrację miejsca załadunku/rozładunku pojazdu.

\n

Od dnia 21 sierpnia 2023 r. PWPW będzie wydawała wyłącznie nowe karty tachografowe (G2v2), wszystkie wcześniej wydane karty zachowają ważność i będą działać w starych oraz nowych tachografach cyfrowych.

\n
\n
\n

Kto będzie potrzebował kart tachografowych nowej generacji (G2v2)?

\n

To kierowcy pojazdów o dopuszczalnej masie całkowitej powyżej 3,5 tony, wyposażonych w inteligentne tachografy cyfrowe, realizujący po 31 grudnia 2024 r. przewozy osób lub towarów w transporcie międzynarodowym. Od lipca 2026 r. obowiązek ten będzie dotyczył kierowców pojazdów o dopuszczalnej masie całkowitej powyżej 2,5 tony realizujących przewozy osób lub towarów w transporcie międzynarodowym.

\n
`,\n imgSrc: 'assets/images/news/g2v2_article.jpg',\n imgCaption: '',\n date: '2023-06-29 11:00',\n tags: []\n },\n {\n id: 2324,\n title: 'Nowe Rozporządzenie Ministra Infrastruktury w sprawie kart do tachografów Cyfrowych.',\n header: '',\n content: `\n

Z dniem 24 maja 2023 r. weszło w życie nowe Rozporządzenie Ministra Infrastruktury z dnia 19 maja 2023 r. w sprawie kart do tachografów cyfrowych. Nowe przepisy wprowadziły kilka kluczowych zmian, w tym zmianę dotychczasowych wzorów wniosków o wydanie karty.

\n

Najważniejsze zmiany: \n

    \n
  1. Nowy, dedykowany wniosek o wydanie czasowej i nieodnawialnej karty kierowcy;
  2. \n
  3. „Oświadczenie kierowcy o normalnym miejscu zamieszkania na terytorium Rzeczypospolitej Polskiej” - wypełniane w formie pola wyboru zamieszczonego we wniosku o wydanie, przedłużenie lub wymanię kartę kierowcy;
  4. \n
  5. „Oświadczenie kierowcy o posiadaniu ważnego prawa jazdy” - wypełniane w formie pola wyboru zamieszczonego we wniosku o wydanie, przedłużenie lub wymanię kartę kierowcy oraz we wniosku o wydanie czasowej i nieodnawialnej karty kierowcy;
  6. \n
  7. Formularz reklamacyjny i reklamacja powinny być zgłaszane na wnioskach o wydanie karty, jako powód ubiegania się o kartę;
  8. \n
  9. Realizacja wymagania wynikającego z § 46 Ustawy o Tachografach Cyfrowych o konieczności potwierdzenia danych w zakresie dołączonego do wniosku zagranicznego dokumentu prawa jazdy, poprzez uzyskanie tego potwierdzenia bezpośrednio w organie, który wydał ten dokument lub za pośrednictwem przedstawicielstwa dyplomatycznego państwa, które wydało prawo jazdy lub (o ile to możliwe) za pośrednictwem portalu państwa, które wydało prawo jazdy;
  10. \n
  11. Realizacja wymagania wynikającego z § 46 Ustawy o Tachografach Cyfrowych o konieczności potwierdzenia danych w zakresie dołączonego do wniosku zagranicznego dokumentu prawa jazdy, realizowana poprzez przedstawienie przez kierowcę – na podstawie § 5 pkt 4 i 5 Rozporządzenia Ministra Infrastruktury z dnia 19 maja 2023 r. w sprawie kart do tachografów cyfrowych: \n
      \n
    • kopii świadectwa kierowcy wydanego w Rzeczypospolitej Polskiej, lub
    • \n
    • kopii karty kwalifikacji kierowcy wydanej w państwie członkowskim Unii Europejskiej, Konfederacji Szwajcarskiej lub państwie członkowskim Europejskiego Porozumienia o Wolnym Handlu (EFTA) – stronie umowy o Europejskim Obszarze Gospodarczym lub przez Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej z aktualnym wpisem kodu 95;
    • \n
    \n
  12. \n
  13. „Oświadczenie podmiotu wykonującego przewóz drogowy o dysponowaniu pojazdem objętym obowiązkiem instalacji i użytkowania tachografu cyfrowego” - wypełniane w formie pola wyboru zamieszczonego we wniosku o wydanie, przedłużenie lub wymanię karty przedsiębiorstwa;
  14. \n
  15. Oświadczenie pracodawcy o zatrudnieniu kierowcy wypełniane w formie załącznika tylko do wniosku o wydanie czasowej i nieodnawialnej karty kierowcy.
  16. \n

\n

\n Ważne:\n

    \n
  • Zgodnie z nowym Rozporządzeniem od dnia 24 maja 2023 r. do 30 września 2023 r. obowiązują dwa rodzaje wniosków – nowe i dotychczasowe. W tym terminie PWPW S.A. zweryfikuje każdy wniosek złożony zarówno na dotychczasowym jak i nowym formularzu.
  • \n
  • Od dnia 01 października 2023 r. będą obowiązywać tylko i wyłącznie nowe formularze wniosków.
  • \n
\n

\n

\n Rozporządzenie\n

Rozporządzenie Ministra Infrastruktury z dnia 19 maja 2023 r. w sprawie kart do tachografów cyfrowych

\n

\n

\n Nowe wnioski z kartami informacyjnymi\n

Wniosek o kartę kierowcy

\n

Wniosek o czasową i nieodnawialną kartę kierowcy

\n

Wniosek o kartę przedsiębiorstwa

\n

Wniosek o kartę kontrolną

\n

Wniosek o kartę warsztatową

\n

\n `,\n imgSrc: 'assets/images/news/rozporzadzenie-artykul.png',\n imgCaption: '',\n date: '2023-06-07 11:00',\n tags: []\n },\n {\n id: 2323,\n title: 'Ceny egzaminów idą w górę - kolejne sejmiki wojewódzkie zmieniają stawki ',\n header: '',\n content: `\n

Jako pierwsze ceny egzaminów na prawo jazdy zmieniło województwo śląskie. Wszystkie wojewódzkie ośrodki ruchu drogowego (WORD), które pracują pod nadzorem marszałka województwa śląskiego z dniem 24 lutego 2023 r. podniosły ceny. W ślad za nimi, taki sam ruch w najbliższych tygodniach wykonają pozostałe.

\n

Zmiana wynika z nowych kompetencji, które zyskały sejmiki wojewódzkie. Dotychczas kwestie wysokości opłat za egzaminy na prawo jazdy regulowały rozporządzenia ministra odpowiedzialnego za transport, ale w wyniku nowelizacji Ustawy Prawo o ruchu drogowym i Ustawy o kierujących pojazdami, możliwość decydowania o płatach w podległych sobie ośrodkach egzaminacyjnych, otrzymały samorządy województw - Dz.U. 2022 poz. 2589 https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20220002589

\n

W ustawie zostały określone maksymalne stawki za poszczególne części egzaminu:

\n

Art. 56a. 1. Wysokość opłaty za przeprowadzenie egzaminu państwowego określa sejmik województwa, w drodze uchwały będącej aktem prawa miejscowego, przy czym wysokość opłaty za przeprowadzenie części teoretycznej egzaminu w zakresie uprawnień każdej kategorii prawa jazdy nie może przekroczyć 50 zł, a za przeprowadzenie części praktycznej:
\n

    \n
  1. 200 zł w zakresie uprawnień prawa jazdy kategorii AM, A1, A2, A, B1, B, C1, D1 lub T albo uprawnienia do kierowania tramwajem;
  2. \n
  3. 250 zł w zakresie uprawnień prawa jazdy kategorii B+E, C1+E, C, C+E, D, D+E lub D1+E.
  4. \n
\n

\n

Jak do tej pory wszystkie samorządy wojewódzkie, które postanowiły zmienić ceny egzaminów na prawo jazdy, postanowiły ustalić je w maksymalnej możliwej wysokości. Należy mieć jednak na uwadze, że prawo dopuszcza możliwość stosowania rożnych opłat w zależności od województwa. Samorządy mają też prawo do corocznych zmian cen:

\n

Art. 56b. Maksymalne stawki opłat, o których mowa w art. 56a ust. 1, ulegają corocznie zmianie na następny rok kalendarzowy w stopniu odpowiadającym średniorocznemu wskaźnikowi cen towarów i usług konsumpcyjnych ogółem, ogłaszanemu przez Prezesa Głównego Urzędu Statystycznego.

\n

Aktualnie w serwisie InfoCar kandydaci na kierowców mają możliwość zapisania się na egzaminy w większości ośrodków egzaminacyjnych, w części z nich są już zaktualizowane ceny egzaminów, a w pozostałych zmienią się w najbliższych tygodniach zgodnie z uchwałami poszczególnych sejmików. Ceny egzaminów w naszym serwisie są pobierane z systemu informatycznego, z którego korzystają ośrodki w procesie egzaminowania i mogą się różnić w skali kraju w zależności od województwa, na terenie którego pracuje dany ośrodek. Jest to okres przejściowy i należy mieć na uwadze, że na krótko przed zmianą cen niektóre WORD-y czasowo zawieszają możliwość zapisywania się na egzamin przez InfoCar. Sugerujemy zatem, by z możliwości zapisania się na egzamin online korzystać możliwie wcześnie, bo na chwilę przed zmianą cen może to być niemożliwe.

\n

Życzymy powodzenia na egzaminie!
Zespół InfoCar

\n `,\n imgSrc: 'assets/images/news/artykul_egzaminy_ceny.png',\n imgCaption: '',\n date: '2023-03-24 21:00',\n tags: []\n },\n {\n id: 2322,\n title: 'Elektrykiem po prawo jazdy, czyli tankowanie za darmo i zdawalność na poziomie 95%',\n header: '',\n content: `\n

Szkoła Jazdy Enigma z Kielc jest prawdopodobnie pierwszą i jedyną szkołą w województwie świętokrzyskim, która przeprowadza kursy na prawo jazdy kategorii B z wykorzystaniem samochodu z napędem wyłącznie elektrycznym. Pojazd BMW i3 w posiadaniu szkoły jest od ponad roku i cieszy się dużą popularnością wśród kursantów. Na temat szkolenia „elektrykiem” rozmawiamy z właścicielem szkoły Arturem Plutą.

\n

InfoCar: Z czego wynika popularność waszego BMW i3?

\n

Artur Pluta: Kursanci garną się do jazdy tym samochodem, ponieważ daje ogromna przyjemność z jazdy. Jak większość samochodów elektrycznych, jest to pojazd, który dysponuje przyspieszeniem porównywalnym do sportowych aut, a kursanci się nim upajają (w granicach dozwolonych prawem). 6 sekund do setki, około 3 sekund do 50 km/h, nie jest to elka, która „zmula” na światłach i stąd też jej popularność. Inny powód jest taki, że w tym samochodzie mamy po prostu rewelacyjną zdawalność, a o to kursantom głównie chodzi.

\n

InfoCar: Z czego wynika ta wysoka zdawalność egzaminów i ile ona wynosi?

\n

Artur Pluta: Za ostatnie półrocze będzie to około 95%. Powodów jest bardzo wiele. Jest to samochód bez pedału sprzęgła, a zatem jeździ się nim jak samochodem z automatyczną skrzynią biegów, odchodzi zatem operowanie biegami, co samo w sobie jest już czynnikiem korzystnym na egzaminie. Mało jest elementów, które można pomylić podczas sprawdzania stanu technicznego, ponieważ w tym samochodzie jest do sprawdzenia tylko poziom płynu do spryskiwaczy, bo jest to jedyny widoczny zbiornik po otwarciu maski. Podczas wykonywania zadań na placu kursanci mają do dyspozycji wszystkie dodatki, które mamy na pokładzie w naszej najwyżej wersji wyposażenia, a zatem np. kamerę cofania, czujniki parkowania, elektryczny hamulec postojowy itd. Podczas jazdy w ruchu drogowym nie dojdzie nigdy do zgaśnięcia silnika, auto nigdy nie cofnie się na wzniesieniu, dodatkowo kursanci mogą korzystać z ogranicznika prędkości, aktywnego tempomatu, asystenta pasa ruchu i innych dostępnych gadżetów. Oprócz tego ten pojazd wykrywa pieszych i ostrzega o ich obecności, więc jest to kolejne ułatwienie dla kursanta. Nigdy też nie mieliśmy zastrzeżeń co do dynamiki jazdy, co w sumie nie dziwi z uwagi na jego parametry. Mówiąc wprost, jazda tym samochodem to czysta przyjemność, więc musi się to przekładać na dobre wyniki na egzaminach.

\n

InfoCar: Jak wygląda współpraca z WORD w zakresie egzaminowania samochodem elektrycznym?

\n

Artur Pluta: Samochód jest oczywiście w pełni przygotowany do przeprowadzania nim egzaminów na prawo jazdy kategorii B. Zgodnie z przepisami posiada niezbędne wyposażenie, a z uwagi na to, że jest to pojazd legalnie dopuszczony do ruchu, to kursanci mogą bez przeszkód korzystać z dobrodziejstw dostępnych urządzeń pokładowych. Zanim rozpoczęliśmy egzaminowanie kursantów w naszym BMW i3, podstawiliśmy nasz pojazd do WORD, żeby egzaminatorzy mogli się z nim zapoznać. Nie było żadnych zastrzeżeń, wobec czego regularnie pojawia się na egzaminach naszych kursantów.

\n

InfoCar: Czym rożni się szkolenie i sama jazda tym samochodem w porównaniu do szkolenia tradycyjnym samochodem z automatyczną skrzynią biegów?

\n

Artur Pluta: Największą różnicę stanowi sposób odzyskiwania energii elektrycznej tzw. hamowanie rekuperacyjne, czyli po zdjęciu nogi z gazu, pojazd zaczyna mocno zwalniać i w ten sposób doładowuje baterię. Nie stanowi to jednak problemu, bo kursanci bardzo szybko się do tego przyzwyczajają. Poza tym oprócz przyspieszenia i nowoczesnych systemów, jazda tym samochodem nie różni się znacząco od jazdy samochodem z automatem.

\n

InfoCar: Tym co najbardziej różni samochody elektryczne od spalinowych, jest znacznie niższy zasięg. Jak to przekłada się na szkolenie?

\n

Artur Pluta: Bateria w naszym BMW starcza na 8-10 godzin szkolenia w ruchu miejskim i na placu manewrowym. Jest to zatem wymiar w zupełności wystarczający do przeprowadzenia zajęć dla kursantów w ciągu jednego dnia. W przypadku jazdy poza obszarem zabudowanym z większymi prędkościami, zasięg jest mniejszy, ale w takiej sytuacji samochód można podładować przy użyciu szybkiej ładowarki, to jednak jest nieopłacalne, ponieważ publiczne ładowarki są drogie w użytkowaniu – mniej więcej tyle samo, ile za benzynę (red.). Tymczasem naszego elektryka ładujemy za darmo na miejscu parkowania. Po zakończonej pracy samochód podpinany jest do ładowarki i następnego dnia rano jest już gotowy do pracy.

\n

InfoCar: W jaki sposób udało się uzyskać darmowe ładowanie?

\n

Artur Pluta: W miejscu garażowania pojazdu są panele fotowoltaiczne, które służą do zmniejszenia kosztów energii elektrycznej, a przy okazji pozwalają praktycznie za darmo ładować nasz samochód. To sprawia, że duży wydatek na zakup tego auta, dość szybko się zwraca. Samochód był co prawda dużo droższy niż konwencjonalny odpowiednik, ale za to jest znacznie tańszy w użytkowaniu. Oprócz paliwa odpadają bowiem np. wymiany oleju i inne koszty związane z użytkowaniem samochodu spalinowego.

\n

InfoCar: Sporo powiedział pan o zaletach posiadanego elektryka, a jakie są wady?

\n

Artur Pluta: Cena. To w zasadzie jedyna wada tego pojazdu, bo niestety zakup takiej wersji BMW i3 to wydatek blisko 180 tys. zł. Jest to jednak nie tylko samochód do szkolenia, ale też magnes na kursantów i wyróżnik szkoły. Tak też zresztą działamy, już od 1995 r. mieliśmy w swojej ofercie szkolenia samochodem z automatyczną skrzynią biegów, a teraz promujemy czysty transport i elektromobilność przy pomocy naszego BMW i3. Mamy też nadzieję, że inne szkoły pójdą naszym śladem.

\n

InfoCar: Dziękujemy za rozmowę

\n

Artur Pluta: Dziękuję

\n `,\n imgSrc: 'assets/images/news/elka-bmw.jpg',\n imgCaption: '',\n date: '2021-12-30 12:47:16',\n tags: [],\n },\n {\n id: 2321,\n title: 'Twoje saldo w WORD – zobacz, które ośrodki korzystają z tej możliwości',\n header: '',\n content: `

Coraz więcej wojewódzkich ośrodków ruchu drogowego (WORD) korzysta z sald w serwisie InfoCar. Na czym to polega? Obsługa sald pozwala na korzystanie z wpłaconych pieniędzy w sposób wybrany przez użytkownika. Dzięki temu możliwe jest np. anulowanie rezerwacji egzaminu i wybranie innego terminu bez konieczności dokonywania kolejnej wpłaty. Użytkownik sam decyduje, kiedy odbędzie się jego egzamin. Należy jednak pamiętać, że opcja odwołania egzaminu jest dostępna w serwisie na maksymalnie 2 dni robocze przed wyznaczoną datą.

\n

Zasięg naszej usługi prezentujemy na mapie, gdzie na zielono zaznaczyliśmy wszystkie WORD i oddziały terenowe, które udostępniają salda dla użytkowników. Czerwonym kolorem oznaczyliśmy ośrodki, które pozwalają na zapisy online przez InfoCar, ale nie obsługują sald. Czarnym kolorem oznaczony jest WORD Łomża, którym jako jedyny nie korzysta z możliwości zapisywania na egzamin przez InfoCar

\n

Z sald możesz skorzystać w wymienionych miastach: Wrocław, Włocławek, Bydgoszcz, Gorzów Wielkopolski, Zielona Góra, Piotrków Trybunalski, Płock, Radom, Słupsk, Katowice, Dąbrowa Górnicza, Tychy, Jastrzębie Zdrój, Rybnik, Bytom, Bielsko-Biała, Elbląg, Poznań, Gdańsk, Gdynia, Chojnice, Jelenia Góra, Kielce, Leszno, Koszalin, Głogów, Milicz, Bolesławiec, Kamienna Góra, Oleśnica, Oława, Inowrocław, Sochaczew, Zwoleń, Kozienice, Grójec i Szczecinek. Wymienione miasta stanowią ponad 1/3 wszystkich miejsc, gdzie przeprowadzane są egzaminy na prawo jazdy.

\n `,\n imgSrc: 'assets/images/news/mapa-word-salda.jpg',\n imgCaption: 'Kliknij, żeby powiększyć.',\n imgHref: 'assets/images/news/mapa-word-salda-HQ.jpg',\n date: '2021-11-03 12:47:16',\n tags: [],\n },\n {\n id: 2320,\n title: 'Najwięcej osób zginęło w samochodach z rocznika 2001',\n header:\n 'Z danych, jakie otrzymaliśmy od policji wynika, że w 2020 r. w pojazdach o dopuszczalnej masie całkowitej do 3,5 t. zginęło 1213 osób. W samochodach z roczników 2000 i 2001 życie straciło najwięcej, bo po 96 osób. Dane te porównaliśmy z ogólną liczbą aktywnych pojazdów z poszczególnych roczników. Bez zaskoczenia okazało się, że najbardziej śmiercionośne są stosunkowo stare auta.',\n content: `

Najsilniej reprezentowany na polskich drogach jest rocznik 2004, takich pojazdów było w Polsce aktywnych 1157067 sztuk, co stanowi 4,35% wszystkich zarejestrowanych i aktywnych aut. W skali bezpieczeństwa rocznik ten plasuje się jednak na dopiero 7 pozycji. Najmniej bezpieczne roczniki pojazdów w naszym zestawieniu to kolejno: 2001, 2000, 1998, 1999, 2003, 2002, 2004, 1997, 1996, 2005. Dobry wynik pojazdów starszych niż z roczników wymienionych powyżej, nie powinien dziwić. Co prawda nie mamy danych na temat tego, jaka grupa wiekowa porusza się pojazdami z roczników poniżej 1996 r., ale najczęściej są to osoby w wieku powyżej 50 lat, które z natury jeżdżą bezpieczniej niż osoby młodsze. Co prawda pojazdy z lat poniżej rocznika 2000, nie mają zawansowanych systemów bezpieczeństwa, ale ich siłą jest zazwyczaj doświadczony kierowca.

\n

Rok 2000 jest w kwestii bezpieczeństwa datą przełomową, choć bardziej będzie nią rok 1997. Wówczas bowiem powstała organizacja Euro NCAP która zaczęła przeprowadzać niezależne testy zderzeniowe nowych aut. Zmieniło to sposób patrzenia na motoryzację i tego, co w niej jest najważniejsze. Potrzeba zwiększania poziomu bezpieczeństwa pojazdów od wielu lat zaprzątała głowy producentów, ale nie ma co ukrywać, przez całe dziesięciolecia nie było to najważniejsze. Szybko okazało się jednak, że wyniki testów mają znaczenie dla kierowców i są poważnie brane pod uwagę podczas wyboru auta. Producenci nie mieli wyjścia, zaczęli zdecydowanie mocniej przykładać się do zapewnienia bezpieczeństwa kierowcy i pasażerom swoich pojazdów. Rozpoczął się „wyścig zbrojeń”, który na nasze szczęście trwa do dziś i nie zwalnia tempa. Drugim przełomowym momentem był rok 2001, kiedy to na rynku pojawił się pierwszy samochód, który w testach zdobył nieosiągalne dotychczas 5 gwiazdek. Był nim Renault Laguna drugiej generacji, który swoimi wynikami zdeklasowała konkurencję. Zanim inni producenci zaczęli osiągać takie same, albo i lepsze wyniki, minęło sporo czasu, ale można założyć, że od mniej więcej 2006 r, absolutna większość nowych pojazdów sprzedawanych w Europie, legitymowała się wysokim poziomem bezpieczeństwa. To zresztą jest widoczne w naszym zestawieniu.

\n

\n \n \"Odsetek

\n

Na wykresie, z graficzną prezentacją wyników zestawienia widzimy jednak dwie anomalie. Co prawda tendencja od rocznika 2001 jest spadkowa, ale w przypadku roczników 2011 i 2017 mamy do czynienia z większym odsetkiem zabitych. Wobec systematycznej i ciągłej poprawy stanu bezpieczeństwa pojazdów, przyczyn należy szukać gdzie indziej. Bez wątpienia też stosunkowo niewielka próba w obliczeniach – odpowiednio 36 i 26 osób, nie pomaga w znalezieniu odpowiedzi, dlaczego wyniki wyglądają tak, a nie inaczej.

\n

Osobną kwestią, której nie widać w wynikach zestawienia, jest stan techniczny pojazdów z danego rocznika, a w szczególności ich wypadkowej przeszłości. Samochody, które wcześniej uczestniczyły w wypadku, czy też nawet kolizji, mogą w czasie kolejnego zdarzenia zachowywać inaczej, niż zakładali to projektanci. To oznacza, że poziom bezpieczeństwa takiego auta, będzie znacznie niższy, niż tożsamego pojazdu z bezwypadkową historią. W przypadku pojazdów starszych, około 20 letnich, kluczowa będzie odporność na korozję i zużycie plastikowych elementów nadwozia. Nie bez znaczenia jest też fakt, że przez długie lata, w poduszki powietrzne można było wyposażyć swoje auto jedynie za dość wysoką opłatą i nie wszyscy decydowali się na ten krok.

\n

Najważniejsza konkluzja z naszego zestawiania jest taka, że stare samochody (około 20 letnie) nie zapewniają odpowiedniego poziomu bezpieczeństwa i są statystycznie około 3 razy mniej bezpieczne niż w samochody stosunkowo nowe. Warto o tym pamiętać podczas wyboru samochodu dla siebie lub dla dziecka zwłaszcza, gdy mowa o kierowcy w wieku 18-24 lat, a zatem z grupy największego ryzyka uczestniczenia w wypadku drogowym.

\n

Źródło danych: Polska Wytwórnia Papierów Wartościowych i Komenda Główna Policji

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Rok produkcjiLiczba pojazdówLiczba zabitychOdsetek zabitychOdsetek pojazdów
202031719830,00095%1,19296%
2019567970200,00352%2,13610%
2018557606190,00341%2,09713%
2017551490260,00471%2,07412%
2016528224150,00284%1,98662%
2015510639150,00294%1,92049%
2014517619120,00232%1,94674%
2013483451120,00248%1,81823%
2012549939140,00255%2,06829%
2011656620360,00548%2,46951%
2010718789350,00487%2,70333%
2009774272290,00375%2,91200%
20081000949310,00310%3,76452%
20071091050400,00367%4,10338%
20061060337530,00500%3,98787%
20051086572710,00653%4,08654%
20041157067870,00752%4,35167%
20031112599900,00809%4,18443%
20021001398770,00769%3,76620%
2001932395960,01030%3,50669%
2000980959960,00979%3,68933%
19991032982900,00871%3,88499%
1998856249800,00934%3,22031%
1997782791570,00728%2,94404%
1996708133490,00692%2,66325%
1995577384190,00329%2,17151%
1994538343150,00279%2,02468%
199346544480,00172%1,75051%
199247746570,00147%1,79572%
199152034730,00058%1,95700%
199040834830,00073%1,53577%
198932957620,00061%1,23952%
198831236730,00096%1,17480%
1987291012 0,00000%1,09448%
1986292052 0,00000%1,09839%
1985262933 0,00000%0,98888%
1984281022 0,00000%1,05691%
1983285933 0,00000%1,07538%
1982234042 0,00000%0,88022%
1981208131 0,00000%0,78277%
1980240366 0,00000%0,90400%
1979257001 0,00000%0,96657%
1978241544 0,00000%0,90843%
1977189101 0,00000%0,71120%
1976138745 0,00000%0,52181%
197595503 0,00000%0,35918%
197471341 0,00000%0,26831%
197366189 0,00000%0,24893%
197252041 0,00000%0,19572%
197142458 0,00000%0,15968%
197027246 0,00000%0,10247%
196924095 0,00000%0,09062%
196820441 0,00000%0,07688%
196716311 0,00000%0,06134%
196615530 0,00000%0,05841%
196514724 0,00000%0,05538%
19647995 0,00000%0,03007%
19637870 0,00000%0,02960%
19627004 0,00000%0,02634%
19614714 0,00000%0,01773%
19604271 0,00000%0,01606%
19593400 0,00000%0,01279%
19582822 0,00000%0,01061%
19571874 0,00000%0,00705%
19561007 0,00000%0,00379%
1955563 0,00000%0,00212%
1954453 0,00000%0,00170%
1953311 0,00000%0,00117%
1952352 0,00000%0,00132%
1951287 0,00000%0,00108%
1950314 0,00000%0,00118%
1949221 0,00000%0,00083%
1948221 0,00000%0,00083%
1947135 0,00000%0,00051%
19468122 0,00000%0,03055%
1945622 0,00000%0,00234%
1944131 0,00000%0,00049%
1943140 0,00000%0,00053%
1942162 0,00000%0,00061%
194169 0,00000%0,00026%
194096 0,00000%0,00036%
1939163 0,00000%0,00061%
1938234 0,00000%0,00088%
1937125 0,00000%0,00047%
1936126 0,00000%0,00047%
193552 0,00000%0,00020%
193478 0,00000%0,00029%
193351 0,00000%0,00019%
193250 0,00000%0,00019%
193167 0,00000%0,00025%
193078 0,00000%0,00029%
192964 0,00000%0,00024%
192861 0,00000%0,00023%
192733 0,00000%0,00012%
192631 0,00000%0,00012%
192569 0,00000%0,00026%
192417 0,00000%0,00006%
192321 0,00000%0,00008%
192211 0,00000%0,00004%
19216 0,00000%0,00002%
19209 0,00000%0,00003%
191930 0,00000%0,00011%
19189 0,00000%0,00003%
191718 0,00000%0,00007%
191611 0,00000%0,00004%
19159 0,00000%0,00003%
191410 0,00000%0,00004%
19138 0,00000%0,00003%
19127 0,00000%0,00003%
191124 0,00000%0,00009%
191014 0,00000%0,00005%
190917 0,00000%0,00006%
190810 0,00000%0,00004%
19079 0,00000%0,00003%
19064 0,00000%0,00002%
19055 0,00000%0,00002%
190419 0,00000%0,00007%
19036 0,00000%0,00002%
19027 0,00000%0,00003%
 26589052  100,00000%
\n
\n `,\n imgSrc: 'assets/images/news/accidents.jpg',\n imgCaption: '',\n date: '2021-07-21 15:43:27',\n tags: [],\n },\n {\n id: 2319,\n title: 'Zapisz się na egzamin na prawo jazdy – przewodnik po usłudze ',\n header:\n 'Drodzy użytkownicy, przedstawiamy wam zmodernizowaną wersję usługi zapisów na egzamin online. Nasza usługa działa nieprzerwanie od 2013 r. W tym czasie zapisaliśmy na egzamin prawa jazdy setki tysięcy osób, a z wojewódzkich ośrodków ruchu drogowego zniknęły kolejki oczekujących do „okienka”. Teraz do usługi dodajemy możliwość zapisania się na test kwalifikacyjny dla kierowców zawodowych posiadających numer PKZ (profil kierowcy zawodowego).',\n content: `
\n

Witaj w przewodniku po usłudze Zapisz się na egzamin na prawo jazdy, dzięki której możesz zapisać się na egzamin prawa jazdy lub test kwalifikacyjny (prawo jazdy z kodem 95) w niemal każdym wojewódzkim ośrodku ruchu drogowego (WORD) w Polsce. Teraz bez trudu zrobisz to online, jedyne czego potrzebujesz to numer profilu kandydata na kierowcę (PKK) lub numer profilu kierowcy zawodowego (PKZ), numer PESEL, adres e-mail, własne dane osobowe i środki na koncie bankowym.

\n

Zobacz jakie to proste

Wejdź na stronę www.info-car.pl i w prawym górnym rogu kliknij odnośnik „MOJE KONTO

\"Strona

Po wykonaniu tej czynności, otworzy się strona logowania do serwisu. Jeżeli nie posiadasz jeszcze konta użytkownika, utwórz je klikając w przycisk „Zarejestruj się” na dole strony.

\"Strona
\n

Rejestracja konta

Otworzy się karta z opcją wyboru rodzaju konta. Dla spraw związanych z procesem zdobywania prawa jazdy, wybierz opcję „Konto indywidualne”. Konto dla firm jest wykorzystywane wyłącznie dla spraw związanych z wydawaniem kart do tachografów.

\"Strona

Na następnej stronie poprosimy cię o wypełnienie pól, gdzie wpisujesz swoje dane, adres e-mail i wybrane przez ciebie hasło. Poprosimy cię również o zapoznanie się z regulaminem serwisu, wyrażenie zgody na przetwarzanie danych osobowych i zapoznanie się z klauzulą informacyjną.

Zapoznanie się z wymienionymi tekstami potwierdzasz poprzez zaznaczenie 3 pól na dole strony. Upewnij się, że twoje dane są poprawne, a adres e-mail nie zawiera błędów lub literówek, ponieważ serwis automatycznie wyśle tam wiadomość z linkiem aktywacyjnym. Całość zatwierdzasz poprzez kliknięcie przycisku „Zarejestruj się” widocznego w dole strony.

Jeżeli procedura rejestracji przebiegnie pomyślnie, wyświetli ci się informujący o tym komunikat. Zgodnie z jego treścią, wejdź do skrzynki pocztowej podanego przy rejestracji adresu e-mail i potwierdź rejestrację klikając w link aktywacyjny.

\"Niebieski
\n

Moje konto

Teraz możesz już korzystać z serwisu. Powróć do strony głównej www.info-car.pl i w prawym górnym rogu strony kliknij na napis „MOJE KONTO”. Na wyświetlonej karcie wpisz swoje dane logowania do serwisu i kliknij „Zaloguj się

\"Strona

Po zalogowaniu się, możesz skorzystać z dwóch dróg do zapisania się na egzamin. Możesz to zrobić przy pomocy usługi Zapisz się na egzamin na prawo jazdy lub przy pomocy usługi Sprawdź dostępność terminów egzaminu na prawo jazdy. Ta druga usługa służy do sprawdzania kalendarza egzaminów, ale można bezpośrednio z niej przejść do rezerwacji terminu.

\n

I Zapisz się na egzamin na prawo jazdy

W celu skorzystania z usługi, po zalogowaniu się do serwisu kliknij w sekcji Usługi po prawej stronie na nazwę Zapisz się na egzamin na prawo jazdy.

\n

Rodzaj egzaminu

Usługa umożliwia zapisanie się na dwa rodzaje egzaminów: egzamin na prawo jazdy lub na test kwalifikacyjny, a zatem prawo jazdy z kodem 95 dla kierowców zawodowych. Wybierz odpowiedni rodzaj egzaminu, by przejść dalej.

\"Strona
\n

Zapisz się na egzamin na prawo jazdy – dane osobowe

\"Strona

Na wyświetlonej stronie zapoznaj się z treścią podstawowych zasad świadczenia usługi i samego egzaminu na prawo jazdy lub testu kwalifikacyjnego. Przeczytaj uważnie wszystkie zawarte tam informacje i kliknij Zapisz się na egzamin.

Wyświetli ci się strona, gdzie należy wpisać swoje dane. Wypełnij wszystkie wymagane pola ze szczególnym uwzględnieniem profilu kandydata na kierowcę (PKK) lub profilu kierowcy zawodowego (PKZ) otrzymanego w urzędzie podczas składania wniosku o wydanie prawa jazdy. Po wpisaniu numeru PKK lub PKZ, system automatycznie zawęzi wybór kategorii prawa jazdy lub bloków tematycznych, które możesz wybrać.

System sprawdzi też, czy twój profil nie jest zablokowany przez inny WORD, szkołę jazdy lub urząd. Upewnij się, czy wszystkie dane są wpisane poprawnie. Zapoznaj się z regulaminem świadczenia usługi i zaakceptuj go, a następnie kliknij „Dalej”.

\n

Wybór WORD-u

Na tym etapie dokonujesz wyboru ośrodka egzaminacyjnego WORD. Do dyspozycji masz wszystkie ośrodki w kraju z wyłączeniem WORD w Łomży. Przy pomocy rozwijanych list wybierz najpierw województwo, a następnie konkretny WORD, gdzie chcesz zdawać egzamin na prawo jazdy lub test kwalifikacyjny. Po dokonaniu wyboru kliknij „Dalej”.

\"Strona
\n

Termin i rodzaj egzaminu

Na ekranie pojawi się lista terminów możliwych do wybrania. Przy pomocy kalendarza możesz określić zakres dat, które cię interesują. Z listy wybierz dogodny dla ciebie termin i rodzaj egzaminu. Do wyboru masz egzamin teoretyczny, praktyczny lub łączony. W przypadku testu kwalifikacyjnego przeprowadzany jest wyłącznie egzamin teoretyczny, a zatem zaproponowane terminy będą dotyczyć egzaminu teoretycznego.

\"Strona

Po kliknięciu na wybraną datę i godzinę, na twoim ekranie pojawi się prośba o potwierdzenie terminu. Jeżeli data i godzina egzaminu ci odpowiada, zatwierdzasz rezerwację klikając przycisk „Dalej”.

\"Wyskakujące
\n

Szczegóły egzaminu

\"Strona

W przypadku, gdy do zaliczenia masz egzamin teoretyczny, na kolejnej stronie wybierz język, w którym chcesz mieć wyświetlane pytania: polski, angielski lub niemiecki, a dla kategorii B i B1 także język ukraiński. Na tym etapie możesz również wybrać polski język migowy PJM. WORD w takiej sytuacji zapewni ci możliwość zapoznania się z pytaniami w tej formie.

W przypadku egzaminu praktycznego, możesz wybrać, na jakim pojeździe będziesz zdawać egzamin. Może to być pojazd ośrodka egzaminacyjnego lub szkoły jazdy.

Jeżeli podczas egzaminu będziesz korzystać z samochodu szkoły, rezerwacji dokonaj w porozumieniu z nią. Po wybraniu odpowiednich dla ciebie opcji, kliknij „Dalej”.

W przypadku testu kwalifikacyjnego na tym etapie kierowca ma możliwość wyboru języka egzaminu. Testy przeprowadzane są w językach polskim, angielskim, rosyjskim i ukraińskim.

\n

Podsumowanie wybranego egzaminu

Na kolejnej stronie, wyświetlone zostanie podsumowanie twojej rezerwacji. Upewnij się, czy wszystkie wyświetlane informacje są prawidłowe. Na tym etapie możesz jeszcze edytować poszczególne dane lub przy pomocy przycisku „Wstecz”. możesz cofnąć się do wybranego etapu i dokonać zmian. Jeżeli wszystko się zgadza, kliknij „Potwierdzam”.

\"Strona
\n

Płatność

Rezerwacja terminu będzie skuteczna tylko wówczas, gdy w ciągu 5 minut zostanie wniesiona opłata za egzamin. Jeżeli w tym czasie nie zapłacisz za egzamin, twój termin wróci do puli dostępnych i będzie mógł być zajęty przez kogoś innego.

Opłaty można dokonać wyłącznie w serwisie info-car przy pomocy płatności online lub z pieniędzy zgromadzonych na saldzie użytkownika (dotyczy wybranych WORD).

UWAGA!

Jeżeli w ciągu 5 minut nie zapłacisz za egzamin, twój termin wróci do puli dostępnych i będzie mógł być zajęty przez kogoś innego.

Podczas płatności do dyspozycji masz 4 formy płatności: saldo, Blik, przelew i karta płatnicza. W przypadku płatności z salda, możliwe jest opłacenie całego egzaminu lub jeżeli masz niewystarczające środki, części kwoty z salda i dopłacenie w innej formie (Blik, przelew lub kartą płatniczą). Po wybraniu formy płatności, kliknij przycisk „Rezerwuj i zapłać”, serwis przeniesie cię do wybranej opcji płatności. Jeżeli jednak rozpoczniesz płatność, ale nie zostanie ona zakończona, twój zapis będzie oczekiwać na anulowanie do 48 godzin od momentu jej przerwania.

Płatności dokonujesz dokładnie tak samo, jak podczas zakupów w Internecie. Po wniesieniu opłaty, twoja rezerwacja będzie oczekiwać na potwierdzenie ze strony WORD. Z uwagi na formę pracy ośrodków i konieczności wykonania tej operacji przez pracownika w godzinach pracy ośrodka, może to potrwać od kilku minut do kilkunastu godzin.

\"Strona
\n

Akceptacja rezerwacji przez WORD

Po zaakceptowaniu twojej rezerwacji przez WORD, zostaniesz o tym powiadomiony mailowo i przez SMS. Wówczas po zalogowaniu się do serwisu, w zakładce „Egzamin na prawo jazdy”, będziesz mieć możliwość pobrania potwierdzenia rezerwacji wraz z ewentualnymi komunikatami wybranego przez siebie WORD.

Potwierdzenie możesz wziąć ze sobą na egzamin, aczkolwiek nie jest to konieczne. Na tym etapie, możesz jeszcze zrezygnować z rezerwacji - opcja ta jest dostępna w większości WORD na maksymalnie 2 doby przed egzaminem, co oznacza, że od momentu rezygnacji z egzaminu, a jego datą, muszą być zachowane dwie doby odstępu.

\"Strona
\n
\n

II Sprawdź dostępność terminów egzaminu na prawo jazdy

W celu skorzystania z usługi, po zalogowaniu się do serwisu kliknij w sekcji Usługi po prawej stronie na nazwę Sprawdź dostępność terminów egzaminu na prawo jazdy. W celu sprawdzenia dostępności egzaminów w danym WORD, nie jest konieczne podawanie danych kandydata na kierowcę, nie jest zatem wymagane podawanie: imienia, nazwiska oraz numerów PESEL i PKK lub PKZ.

\n

Sprawdź dostępność terminów egzaminu na prawo jazdy

Na wyświetlonej stronie wybierz interesujące cię parametry egzaminu, kolejno: województwo, miasto i kategorię prawa jazdy. Po dokonaniu wyboru, kliknij Dalej.

\n

Wybierz rodzaj egzaminu

W kolejnym kroku na ekranie wyświetli ci się lista dostępnych terminów dla egzaminów wybranej kategorii prawa jazdy lub bloku programowego dla testu kwalifikacyjnego Na tym etapie możesz zawęzić zakres interesujących cię dat, a także wybrać o jaki egzamin chodzi: teoretyczny, praktyczny lub łączony. W przypadku testu kwalifikacyjnego do wyboru masz tylko egzamin teoretyczny. Jeżeli znajdziesz termin, który ci odpowiada, kliknij przycisk Wybierz po prawej stronie.

\n

Czy chcesz wybrać ten termin?

Po kliknięciu Wybierz, pojawi się pytanie: Czy chcesz wybrać ten termin? Jeżeli chcesz się zdecydować na wybranie i opłacenie wybranego egzaminu, kliknij Dalej.

Kolejne etapy realizowane są tak samo, jak w przypadku usługi Zapisz się na egzamin na prawo jazdy, które zostały opisane powyżej.

\n
\n

Życzymy powodzenia na egzaminie!

`,\n imgSrc: 'assets/images/word-exam-info/lifestyle.png',\n imgCaption: '',\n date: '2021-01-30 12:47:16',\n tags: [],\n },\n {\n id: 2318,\n title:\n 'Dotyczy kart warsztatowych wydanych na podstawie zezwoleń i zaświadczeń wydanych na podstawie ustawy z 2005 roku o systemie tachografów cyfrowych.',\n header:\n 'W przypadku wniosku o wymianę karty użytkowanej obecnie przez warsztat, a wydanej na podstawie zezwoleń i pozwoleń wydanych na podstawie ustawy o systemie tachografów cyfrowych z 2005 roku warsztat składa do PWPW wniosek o wymianę dotychczasowej karty w związku ze zmianą danych administracyjnych. W tym przypadku warsztat musi posiadać decyzję i nowe zezwolenie dotyczące prowadzenia warsztatu oraz certyfikat technika wydane w oparciu o ustawę o tachografach z 2018 roku i wskazywać je we wnioskach. Przed wydaniem nowej karty warsztat musi zwrócić kartę wymienianą.',\n content:\n '
UWAGA!

Technicy warsztatowi i warsztaty powinni uwzględnić przerwę w możliwości wykonywania zadań spowodowaną brakiem karty warsztatowej w związku z jej wymianą do czasu otrzymania nowej.

Wszelkie wnioski o wydanie / wznowienie/ wymianę karty warsztatowej złożone do PWPW w oparciu o zezwolenia i pozwolenia wydane na podstawie ustawy z 2005 roku będą do dnia 31.12.2020 roku realizowane zgodnie z dyspozycją wynikającą z wniosku. Wnioskodawca powinien być świadomy skróconego terminu ważności takich kart oraz konsekwencji wynikających z art. 67.1 ustawy z 2018 roku.

Wnioski złożone po 31.12.2020, w których wskazane zostaną zezwolenia i pozwolenia wydane na podstawie ustawy z 2005 roku będą odrzucane.',\n imgSrc: 'assets/images/news/ciagnik-768x576.jpg',\n imgCaption: 'Źródło: www.info-car.pl',\n date: '2020-12-10 12:47:16',\n tags: [],\n },\n {\n id: 2317,\n title: 'COVID-19 Przedłużenie ważności dokumentów',\n header: '',\n content:\n '

18 kwietnia 2020 r. weszła w życie nowelizacja przepisów ustawy o zmianie ustawy o szczególnych rozwiązaniach związanych z zapobieganiem, przeciwdziałaniem i zwalczaniem COVID-19, innych chorób zakaźnych oraz wywołanych nimi sytuacji kryzysowych oraz niektórych innych ustaw, polegających na przedłużeniu ważności między innymi:

  • prawa jazdy (w tym zagranicznego prawa jazdy),
  • świadectwa kierowcy,
  • uprawnień do kierowania pojazdami,
  • wpisu w prawie jazdy kodu 95 potwierdzającego uzyskanie kwalifikacji wstępnej, kwalifikacji wstępnej przyspieszonej, kwalifikacji wstępnej uzupełniającej, kwalifikacji wstępnej uzupełniającej przyspieszonej albo ukończenie szkolenia okresowego.

Oznacza to, że wszystkie te dokumenty i uprawnienia, których termin upłynął w okresie stanu zagrożenia epidemicznego lub stanu epidemii pozostaną ważne i będą ważne także w okresie 60 dni od daty zakończenia stanu zagrożenia epidemicznego lub stanu epidemii.

Po zakończeniu stanu zagrożenia epidemicznego lub stanu epidemii w ciągu 60 dni trzeba będzie wszystkie zaległe badania i szkolenia wykonać lub odnowić, a terminy ważności dokumentów przedłużyć.

',\n imgSrc: 'assets/images/news/waznosc-768x576.jpg',\n imgCaption: '',\n date: '2020-11-12 12:47:16',\n tags: [],\n },\n {\n id: 2316,\n title: 'COVID-19 Możliwe opóźnienia w realizacji kart do tachografów',\n header:\n 'Informujemy, że w związku ze stanem zagrożenia epidemicznego istnieje możliwość wydłużenia terminów realizacji wydawania kart tachografowych oraz ograniczenia dostępności konsultantów na infolinii. ',\n content:\n '

PWPW S.A. podejmuje działania mające na celu zapewnienie ciągłości produkcji oraz świadczenia usług. W przypadku niewystarczającej ilości konsultantów telefonicznych, Klienci będą mogli korzystać ze zautomatyzowanej części obsługi infolinii (poprzez IVR) oraz poprzez kontakt na skrzynkę mailową. Zgłoszenia można też kierować na adres mailowy infolinii: tachograf@pwpw.pl.

Aktualnie infolinia pracuje w godzinach: 7.00 do 15.00.

Zachęcamy również wszystkich do składania wniosków o karty tachografowe elektronicznie, co skróci czas ich wydawania.

Możesz to zrobić on-line, za pośrednictwem tej strony, bez konieczności wychodzenia z domu. Wystarczy, że zalogujesz się w serwisie, wypełnisz wniosek, podpiszesz go elektronicznie i zapłacisz on-line. Zobacz jakie to proste: info-car.pl/new/tachograf/uzyskaj-karte-do-tachografu

',\n imgSrc: 'assets/images/news/covid-768x576.jpg',\n imgCaption: '',\n date: '2020-05-05 12:47:16',\n tags: [],\n },\n {\n id: 2315,\n title:\n 'Tachograf: wniosek o kartę złóż przez Internet, od 4 maja PWPW przyjmuje wnioski jedynie na obowiązujących formularzach',\n header:\n '14 grudnia uruchomiliśmy w naszym serwisie nową platformę do elektronicznego składania wniosków o karty do tachografów cyfrowych. Wnioskujących obwiązują również nowe wzory wniosków. Te nieaktualne, zgodne z poprzednimi wzorami, nie będą przyjmowane od 4 maja 2020 r.',\n content:\n '

14 grudnia 2019 r. weszło w życie Rozporządzenie Ministra Infrastruktury z dnia 17 października 2019 r. w sprawie kart do tachografów cyfrowych (Dz. U. z 2019 r. poz. 2209). Na jego mocy zmianie uległ tryb składania wniosków o karty do tachografów cyfrowych. Od tego dnia wszystkie zainteresowane osoby mogą też składać wnioski online i potwierdzać je podpisem elektronicznym lub profilem zaufanym – w tym również przy pomocy logowania do swojego konta bankowego.

Wniosek elektroniczny

Najlepszą obecnie i najszybszą metodą na otrzymanie karty do tachografu, jest złożenie elektronicznego wniosku o jej wydanie. Wszystko, co potrzeba do wypełnienia i przesłania formularza, to urządzenie elektroniczne obsługujące przeglądarkę internetową (telefon, komputer, laptop, tablet itp.), dostęp do Internetu oraz środki na koncie bankowym potrzebne do wniesienia opłaty za kartę. Procedura jest prosta i nie powinna przysporzyć problemów nawet niezaawansowanym użytkownikom Internetu. Dzięki częściowemu zautomatyzowaniu tego procesu, wnioski składane drogą elektroniczną są realizowane znacznie szybciej, niż wnioski składane w formie tradycyjnej. Wnioskujący oszczędzają w ten sposób również pieniądze i czas potrzebny na przesłanie papierowego wniosku do PWPW.

Wniosek papierowy zgodny z nowym wzorem

Osoby, które z różnych powodów nie mogą złożyć wniosku w formie elektronicznej, mogą o kartę do tachografu zawnioskować w tradycyjnej formie papierowej z wykorzystaniem formularzy zgodnych z nowym wzorem. Jedyne pewne źródło do pobrania i wydrukowania formularza, to strona www.info-car.pl. Wnioskujący powinni starannie wypełnić wszystkie rubryki, a także dołączyć nowe wzory oświadczeń określone w przepisach. Są one częścią składową opublikowanego w grudniu formularza. Osoby wnioskujące o kartę w formie papierowej mogą skorzystać z internetowej formatki (info-car.pl/new/tachograf/uzyskaj-karte-do-tachografu), która umożliwia wpisanie swoich danych. Tak przygotowany i wypełniony formularz, należy następnie wydrukować i wysłać wraz z załącznikami na adres PWPW. Pamiętaj aby do wniosku dołączyć wszystkie wymagane załączniki oraz oświadczenia. Podpisy pod wnioskiem papierowym oraz oświadczeniami powinny być złożone własnoręcznie i czytelnie.

Stare wnioski

W okresie przejściowym, który trwał od grudnia 2019 roku do teraz, Polska Wytwórnia Papierów Wartościowych przyjmowała jeszcze wnioski zgodne poprzednim wzorem. Niestety wiązało się to zazwyczaj z koniecznością dosyłania wymaganych przez nowe przepisy oświadczeń, a co za tym idzie, wydłużeniem czasu produkcji zamówionej karty. Problemy związane ze składaniem wniosków na nieaktualnych formularzach wynikały zazwyczaj z korzystania z niesprawdzonych źródeł (pobierania i drukowania formularzy z serwisów internetowych, które nie zaktualizowały formularzy). Jedyną pewną stroną, która zawiera wnioski z aktualnym wzorem, jest info-car.pl/wnioski. Od 4 maja 2020 r. PWPW będzie przyjmowała wnioski jedynie na formularzach zgodnych z obowiązującym obecnie wzorem.

',\n imgSrc: 'assets/images/news/tachograf-768x576.jpg',\n imgCaption: '',\n date: '2020-04-29 12:47:16',\n tags: [],\n },\n {\n id: 2314,\n title: 'Złóż wniosek o prawo jazdy (utworzenie PKK) online – poradnik krok po kroku',\n header:\n 'Złożenie wniosku o prawo jazdy, a co za tym idzie i wygenerowanie profilu kandydata na kierowcę (PKK) jest pierwszym krokiem do zdobycia prawa jazdy. Wniosek można złożyć osobiście w urzędzie, ale także online przy użyciu Elektronicznej Skrzynki Podawczej PWPW.',\n content:\n '

Zobacz, co po kolei zrobić, by prawidłowo złożyć wniosek. Po wykonaniu czynności na każdym z ekranów, klikamy „dalej”, by przejść do kolejnego.

1. Utwórz konto w serwisie. Pod adresem https://www.esp.pwpw.pl/Account/RegisterUser utwórz nowe konto użytkownika. Tworzenie konta nie różni się szczególnie od procedury w innych serwisach internetowych, ale z uwagi na urzędowy charakter strony, potrzebne będzie podanie wielu szczegółowych danych takich jak, PESEL, adres zamieszkania itd. Podanie tych informacji jest w pełni bezpieczne, wykorzystane zostaną one jedynie do urzędowej obsługi spraw użytkownika.

2. Po zalogowaniu do serwisu należy wybrać opcję złóż wniosek i wybrać urząd, który będzie prowadzić twoją sprawę. Ważne jest, by był to urząd właściwy do miejsca zamieszkania - tego wymagają przepisy.

\"zloz

3. Następnie wybierasz rodzaj sprawy, jaka ma być zrealizowana. W naszym przypadku będzie to odpowiednio: uprawnienia kierowców i dalej wydanie prawa jazdy.

\"rodzaj

4. Dalej potwierdzasz swoje dane osobowe.

\"potwierdzenie

5. Potem podajesz dane ze swojego prawa jazdy – o ile masz je już wydane, w przypadku pierwszej kategorii prawa jazdy, nie wypełniasz rubryk na tej karcie.

\"Twoje

6. Kolejny krok to wybór wnioskowanej kategorii prawa jazdy.

\"wnioskowana

7. Po kliknięciu dalej otworzy się karta, gdzie należy dołączyć załączniki do wniosku w formie elektronicznej. Mogą to być skany lub zdjęcia, których rozmiar nie przekroczy 200 KB. Dołączasz tylko dokumenty wymagane dla twojej kategorii prawa jazdy, ich listę znajdziesz tutaj : https://info-car.pl/new/prawo-jazdy/kategorie-prawa-jazdy

\"Zalaczniki\"

8. Następnie należy złożyć kilka oświadczeń. Przeczytaj je uważnie i potwierdź tylko te, które są zgodne ze stanem faktycznym. (Art. 11 ust. 1 pkt 5 dotyczy m.in. osób przebywających na terenie Polski przez co najmniej 185 dni w roku – pełne brzmienie przepisu znajdziesz w tekście ustawy: https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20110300151/U/D20110151Lj.pdf

\"oswiadczenia\"

9. Po złożeniu oświadczeń przechodzisz do karty, gdzie należy elektronicznie podpisać dokument. Możesz zrobić to na dwa sposoby: własnym certyfikatem lub profilem zaufanym ePUAP. W naszym przykładzie posłużymy się przykładem profilu zaufanego.

\"wybor

10. Dokument możesz podpisać poprzez zalogowanie się do swojego profilu lub zalogowanie się do swojego banku internetowego. Jeżeli nie robiłeś tego wcześniej, przetestuj logowanie pod adresem https://pz.gov.pl/dt/login/login

\"profil

11. Podpisz elektronicznie wniosek. Po podpisaniu zostanie on przesłany do wybranego przez ciebie urzędu w celu weryfikacji. Po weryfikacji zostanie wygenerowany twój profil kandydata na kierowcę, którym będziesz się posługiwać podczas procesu uzyskiwania uprawnień do kierowania pojazdami. Stan realizacji swojej sprawy możesz monitorować po zalogowani się do konta ESP PWPW w zakładce moje wnioski: https://www.esp.pwpw.pl/Wniosek/Index

\"podpisanie

Po wygenerowani numeru PKK możesz zapisać się na szkolenie w wybranej szkole jazdy lub na egzamin teoretyczny w wojewódzkim ośrodku ruchu drogowego WORD.

',\n imgSrc: 'assets/images/news/prawo-jazdy-sh-768x576.jpg',\n imgCaption: 'Polskie prawo jazdy',\n date: '2020-04-02 12:47:16',\n tags: [{ id: 2, name: 'Prawo jazdy' }],\n },\n];\n","import { Action } from '@ngrx/store';\nimport { News } from '../_models/news';\n\nexport interface NewsActions {\n GET_NEWS: string;\n GET_NEWS_ERORR: string;\n GET_NEWS_SUCCESS: string;\n GET_NEWS_BY_TAG: string;\n GET_NEWS_BY_TAG_SUCCESS: string;\n GET_NEWS_BY_TAG_ERROR: string;\n CLEAR_NEWS: string;\n GET_SLIDER_NEWS: string;\n GET_SLIDER_NEWS_SUCCESS: string;\n GET_SLIDER_NEWS_ERROR: string;\n}\n\nexport const NewsActionTypes: NewsActions = {\n GET_NEWS: 'Get_News',\n GET_NEWS_ERORR: 'Get_News_Erorr',\n GET_NEWS_SUCCESS: 'Get_News_Success',\n GET_NEWS_BY_TAG: 'Get_News_By_Tag',\n GET_NEWS_BY_TAG_SUCCESS: 'Get_News_By_Tag_Success',\n GET_NEWS_BY_TAG_ERROR: 'Get_News_By_Tag_Error',\n CLEAR_NEWS: 'Clear_News',\n GET_SLIDER_NEWS: 'Get_Slider_News',\n GET_SLIDER_NEWS_SUCCESS: 'Get_Slider_News_Success',\n GET_SLIDER_NEWS_ERROR: 'Get_Slider_News_Error'\n};\n\nexport class GetNews implements Action {\n type = NewsActionTypes.GET_NEWS;\n constructor(public payload: { page: number; rows: number; promo?: boolean }) {}\n}\n\nexport class GetNewsSuccess implements Action {\n type = NewsActionTypes.GET_NEWS_SUCCESS;\n constructor(public payload: { news: News[]; total: number; pageNumber?: number }) {}\n}\n\nexport class GetNewsError implements Action {\n type = NewsActionTypes.GET_NEWS_ERORR;\n constructor(public payload: { error: string }) {}\n}\n\nexport class GetNewsByTag implements Action {\n type = NewsActionTypes.GET_NEWS_BY_TAG;\n constructor(public payload: { page: number; rows: number; tag: number }) {}\n}\n\nexport class GetNewsByTagError implements Action {\n type = NewsActionTypes.GET_NEWS_BY_TAG_ERROR;\n constructor(public payload: { error: string }) {}\n}\n\nexport class GetNewsByTagSuccess implements Action {\n type = NewsActionTypes.GET_NEWS_BY_TAG_SUCCESS;\n constructor(public payload: { news: News[]; total: number; tag: string }) {}\n}\n\nexport class ClearNews implements Action {\n type = NewsActionTypes.CLEAR_NEWS;\n constructor(public payload: boolean) {}\n}\nexport class GetSliderNews implements Action {\n type = NewsActionTypes.GET_SLIDER_NEWS;\n constructor(public payload: { page: number; rows: number }) {}\n}\nexport class GetSliderNewsSuccess implements Action {\n type = NewsActionTypes.GET_SLIDER_NEWS_SUCCESS;\n constructor(public payload: { news: News[] }) {}\n}\nexport class GetSliderNewsError implements Action {\n type = NewsActionTypes.GET_SLIDER_NEWS_ERROR;\n constructor(public payload: { error: string }) {}\n}\n\nexport type Actions =\n | GetNews\n | GetNewsSuccess\n | GetNewsError\n | GetNewsByTag\n | GetNewsByTagError\n | GetNewsByTagSuccess\n | ClearNews\n | GetSliderNews\n | GetSliderNewsSuccess\n | GetSliderNewsError;\n","import { News } from '../_models/news';\nimport * as news from './news-action';\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { PageOfNews } from '../_models/page-of-news';\n\nexport interface NewsState {\n news: PageOfNews[];\n promoNews: News[];\n total: number;\n tag?: string;\n loading: boolean;\n error: boolean;\n}\nconst initialNewsState: NewsState = {\n news: [],\n promoNews: [],\n loading: false,\n total: 0,\n error: false\n};\nexport function NewsReducer(state: NewsState = initialNewsState, action: news.Actions): NewsState {\n let pageOfNews: PageOfNews;\n switch (action.type) {\n case news.NewsActionTypes.GET_NEWS:\n return {\n ...state,\n loading: true\n };\n case news.NewsActionTypes.GET_NEWS_SUCCESS:\n pageOfNews = {\n news: action.payload['news'],\n pageNumber: action.payload['pageNumber']\n };\n return {\n ...state,\n news: [...state.news, pageOfNews],\n total: action.payload['total'],\n tag: null,\n loading: false\n };\n case news.NewsActionTypes.GET_NEWS_BY_TAG:\n return {\n ...state,\n loading: true\n };\n case news.NewsActionTypes.GET_NEWS_BY_TAG_SUCCESS:\n pageOfNews = {\n news: action.payload['news'],\n pageNumber: action.payload['pageNumber']\n };\n return {\n ...state,\n news: [...state.news, pageOfNews],\n total: action.payload['total'],\n tag: action.payload['tag'],\n loading: false\n };\n case news.NewsActionTypes.CLEAR_NEWS:\n return {\n ...state,\n news: []\n };\n case news.NewsActionTypes.GET_SLIDER_NEWS:\n return {\n ...state,\n loading: true\n };\n case news.NewsActionTypes.GET_SLIDER_NEWS_SUCCESS:\n return {\n ...state,\n promoNews: action.payload['news'],\n loading: false\n };\n default:\n return state;\n }\n}\nexport const featureName = 'news';\nexport const selectNewsState = createFeatureSelector(featureName);\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { News } from './_models/news';\nimport { newsMock } from './_mock/news';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NewsService {\n constructor(private httpClient: HttpClient) {}\n\n // todo move to real cms\n getNewsById(id: number): Observable {\n const mock = newsMock.find((art) => art.id === id);\n if (mock) {\n return new BehaviorSubject(mock);\n } else return this.httpClient.get(environment.WP_API_INFOCAR_URL + '/news/' + id);\n }\n\n // todo move to real cms\n getNewsPromoPaginated(page: number, newsPerPage: number) {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('rows', newsPerPage.toString())\n .set('promo', 'true');\n return this.httpClient.get(environment.WP_API_INFOCAR_URL + '/newsPaginated/', {\n params: params\n });\n }\n // todo move to real cms\n getNewsPaginated(\n page: number,\n rows: number,\n tagId?: number\n ): Observable<{ news: News[]; total: number; tag?: string }> {\n if (!tagId) {\n const params = new HttpParams().set('page', page.toString()).set('rows', rows.toString());\n return this.httpClient.get<{ news: News[]; total: number }>(\n environment.WP_API_INFOCAR_URL + '/newsPaginated/',\n { params: params }\n );\n }\n return this.getNewsPaginatedByTag(page, rows, tagId);\n }\n // todo move to real cms\n getRecentlyReadNews() {\n return this.httpClient.get(environment.WP_API_INFOCAR_URL + '/recentlyReadNews');\n }\n\n // todo move to real cms\n private getNewsPaginatedByTag(\n page: number,\n rows: number,\n tagId: number\n ): Observable<{ news: News[]; total: number; tag: string }> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('rows', rows.toString())\n .set('tagId', tagId.toString());\n return this.httpClient.get<{ news: News[]; total: number; tag: string }>(\n environment.WP_API_INFOCAR_URL + '/newsPaginatedByTag/',\n { params: params }\n );\n }\n}\n","export const REGISTRATION_ROUTE = 'rejestracja';\nexport const REGISTRATION_ROUTES = {\n FORM: 'formularz',\n REGISTER_SUCCED: 'rejestracja-prawidlowa'\n};\n","export const SEARCH_ROUTE = 'wyszukiwarka';\n","export const SERVICE_CATEGORY_ROUTE = '';\nexport const CATEGORY_NAME_ROUTE = ':name';\nexport const DRIVER_LICENSE_ROUTE = 'prawo-jazdy';\nexport const VEHICLE_REGISTRATION_ROUTE = 'rejestracja-pojazdu';\nexport const TACHOGRAPH_ROUTE = 'tachograf';\nexport const ADR_ROUTE = 'adr';\nexport const DOCUMENT_INFORMATION_ROUTE = 'informacje-o-dokumencie';\nexport const COMPLAINT_ROUTE = 'zloz-reklamacje-karty-do-tachografu-i-uzyskaj-karte-zastepcza';\nexport const CERTIFICATE_RULES_ROUTE = 'zasady-zdobywania-zaswiadczenia';\nexport const ADR_EXAM_ROUTE = 'egzamin';\nexport const VEHICLE_TEMPORARY_WITHDRAWAL = 'czasowe-wycofanie-pojazdu-z-ruchu';\nexport const FIND_OSK = 'znajdz-szkole-jazdy';\nexport const FIND_DISTRICT_OFFICE = 'zobacz-gdzie-mozesz-zlozyc-wniosek-o-pkk';\nexport const FIND_WORD = 'zobacz-gdzie-mozesz-zdawac-egzamin';\nexport const DRIVER_LICENSE_PAYMENT = 'zaplac-za-wydanie-prawa-jazdy';\nexport const VEHICLE_REGISTRATION_PAYMENT = 'zaplac-za-wydanie-dowodu-rejestracyjnego';\n","export const ADR_CLASSES_ROUTE = 'klasy-towarow-niebezpiecznych';\n","export const DL_LEGAL_REGULATION_ROUTE = 'regulacje-prawne';\n","export const DRIVER_LICENSE_CATEGORIES = 'kategorie-prawa-jazdy';\n","export const FAQ_ROUTE = 'prawo-jazdy-faq';\n","export const RULES_FOR_OBTAINING_PERMISSIONS_ROUTE = 'zasady-zdobywania-uprawnien';\n","export const RULES_FOR_OBTAINING_PROFESSIONAL_PERMISSIONS_ROUTE = 'zasady-zdobywania-kwalifikacji-dla-kierowcow-zawodowych';\n","export const THEORETICAL_EXAM_INFORMATION_ROUTE = 'informacje-o-egzaminie-teoretycznym';\n","export const CONTACT_ROUTE = 'kontakt';\n","export const LEGAL_REGULATION_ROUTE = 'regulacje-prawne';\n","export const PARTNERS_ROUTE = 'partnerzy';\nexport const PARTNERS_CONFIRMATION_ROUTE = 'potwierdzenie';\nexport const BUSINESS_REGISTRATION_PAGE = 'zakladanie-konta';\n","export const VEHICLE_REGISTRATION_FAQ_ROUTE = 'pytania-i-opowiedzi';\n","export const VEHICLE_REGISTRATION_PROCESS_DESCRIPTION_ROUTE = 'opis-procesu';\n","export interface ClientAcceptancesDto {\n actualAcceptances: AcceptanceType[];\n availableAcceptances: AcceptanceDto[];\n userName: string;\n}\n\nexport interface ClientAcceptancesResponseDto {\n message: string;\n}\n\nexport interface AcceptanceDecisionDto {\n name: AcceptanceType;\n granted: boolean;\n}\n\nexport interface AcceptanceDto {\n name: AcceptanceType;\n required: boolean;\n}\n\nexport enum AcceptanceType {\n RULES = 'RULES',\n INFOS = 'INFOS',\n MARKETING_PHONE = 'MARKETING_PHONE',\n MARKETING_EMAIL = 'MARKETING_EMAIL'\n}\n","import { nameof, Extensions } from 'src/app/shared/extensions/extensions';\nimport { Injectable } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn } from '@angular/forms';\nimport { BaseFormBinderService } from 'src/app/shared/services/form/base-form-binder.service';\nimport { AcceptancesFormValidation } from '../acceptances-validation';\nimport { AcceptancesFormConfig } from '../_models/acceptances-form.model';\nimport { AcceptanceDto, AcceptanceType } from 'src/app/core/model/acceptances-model';\nimport { AcceptancesStaticContent } from '../_models/acceptances-static-content.model';\n\n@Injectable()\nexport class AcceptancesFormBuilderService extends BaseFormBinderService {\n acceptances: AcceptanceDto[];\n\n constructor() {\n super();\n }\n\n public build(\n staticContent: AcceptancesStaticContent,\n formValidation?: AcceptancesFormValidation,\n missingAcceptances?: AcceptanceDto[],\n blockRequired?: boolean\n ): AcceptancesFormConfig {\n if (missingAcceptances) {\n this.acceptances = missingAcceptances;\n } else {\n this.acceptances = [\n { name: AcceptanceType.RULES, required: true },\n { name: AcceptanceType.INFOS, required: true },\n { name: AcceptanceType.MARKETING_PHONE, required: false },\n { name: AcceptanceType.MARKETING_EMAIL, required: false }\n ];\n }\n\n return this.createConfig(staticContent, formValidation, this.acceptances, blockRequired);\n }\n\n private createConfig(\n staticContent: AcceptancesStaticContent,\n formValidation: AcceptancesFormValidation,\n missingAcceptances: AcceptanceDto[],\n blockRequired?: boolean\n ): AcceptancesFormConfig {\n const controls = missingAcceptances.map((acceptance) => ({\n inputId: acceptance.name,\n formControlName: acceptance.name,\n label: staticContent[acceptance.name].label,\n button: staticContent[acceptance.name].button,\n required: acceptance.required\n }));\n\n Object.keys(formValidation).forEach((key) => {\n if (!missingAcceptances.find((acc) => acc.name === key)) {\n delete formValidation.formFields[key];\n }\n });\n\n const form = {\n controls: controls,\n form: this.bindForm(formValidation)\n };\n\n if (blockRequired) {\n form.controls.forEach((control) => {\n const formControl = form.form.get(control.formControlName);\n if (formControl && control.required) {\n formControl.disable();\n }\n });\n }\n\n return form;\n }\n\n protected createForm(fieldValidations: AcceptancesFormValidation): UntypedFormGroup {\n const fg = new UntypedFormGroup({});\n const formFields = Object.entries(fieldValidations.formFields);\n formFields.forEach(([name, validator]: [string, ValidatorFn]) => {\n fg.addControl(name, new UntypedFormControl(false, validator));\n });\n\n return fg;\n }\n\n public setControlsValueTo(value: any) {\n Object.keys(this.form.controls).forEach((key) => {\n this.form.controls[key].disabled ? null : this.form.controls[key].patchValue(value);\n });\n\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n }\n}\n","import { Validators, ValidatorFn } from '@angular/forms';\nimport { FormValidation } from '../../services/form/base-form-binder.service';\n\nexport interface AcceptancesFormValidation extends FormValidation {\n formGroupName: string;\n formFields: {\n RULES?: ValidatorFn;\n INFOS?: ValidatorFn;\n MARKETING_EMAIL?: ValidatorFn;\n MARKETING_PHONE?: ValidatorFn;\n };\n}\n\nexport const defaultAcceptancesValidation: AcceptancesFormValidation = {\n formGroupName: 'acceptances',\n formFields: {\n RULES: Validators.compose([Validators.requiredTrue]),\n INFOS: Validators.compose([Validators.requiredTrue]),\n MARKETING_EMAIL: Validators.nullValidator,\n MARKETING_PHONE: Validators.nullValidator\n }\n};\n","
\n 1\"\n [inputId]=\"'ALL'\"\n [isErrorContainer]=\"false\"\n [checked]=\"allChecked\"\n (valueChanged)=\"onAllChanged($event)\"\n [label]=\"checkAllLabel\"\n [bolded]=\"true\">\n\n \n \n \n \n\n {{ 'ACCEPTANCES.INFO' | translate }}\n\n","import { Component, OnInit, Output, EventEmitter, Input, OnDestroy } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ModalRef } from '../modal/modal-ref';\nimport { ModalService } from '../modal/modal.service';\nimport { TextInformationModalComponent } from '../modal/text-information-modal/text-information-modal.component';\nimport { AcceptancesFormConfig, AcceptancesControlConfig } from './_models/acceptances-form.model';\nimport { AcceptancesFormBuilderService } from './_services/acceptances-form-builder.service';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { AcceptancesFormValidation } from './acceptances-validation';\nimport { defaultAcceptancesValidation } from '../acceptances-checboxes/acceptances-validation';\nimport { TermsOfServicePageModel } from 'src/app/info-pages/terms-of-service-page/_model/terms-of-service-page.model';\nimport { ModalContent } from './_models/acceptances-modal-content.model';\nimport { AcceptanceDto, AcceptanceType } from 'src/app/core/model/acceptances-model';\nimport { AcceptancesStaticContent } from './_models/acceptances-static-content.model';\nimport { CommonModule } from '@angular/common';\nimport { FormCheckboxComponent } from '../forms/form-checkbox/form-checkbox.component';\n\n@Component({\n selector: 'app-acceptances-checkboxes',\n templateUrl: './acceptances-checboxes.component.html',\n styleUrls: ['./acceptances-checboxes.component.scss'],\n providers: [AcceptancesFormBuilderService],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, FormCheckboxComponent, TranslateModule]\n})\nexport class AcceptancesChecboxesComponent implements OnInit, OnDestroy {\n @Output() emitAcceptances: EventEmitter = new EventEmitter();\n @Input() formValidation: AcceptancesFormValidation = defaultAcceptancesValidation;\n @Input() aggregateFormGroup: UntypedFormGroup;\n @Input() missingAcceptances: AcceptanceDto[];\n @Input() initialAcceptances: AcceptanceType[];\n @Input() blockRequired: boolean;\n\n formGroup: UntypedFormGroup;\n config: AcceptancesFormConfig;\n modalRef: ModalRef;\n\n // modals content\n rulesContent: TermsOfServicePageModel;\n rodoContent: ModalContent;\n infosContent: ModalContent;\n acceptances: string[] = [];\n allChecked = false;\n checkAllLabel: string;\n\n constructor(\n private formConfigBinder: AcceptancesFormBuilderService,\n private modalService: ModalService,\n private translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.translate.get('ACCEPTANCES').subscribe({\n next: (content: AcceptancesStaticContent) => {\n this.checkAllLabel = content.CHECK_ALL;\n this.config = this.formConfigBinder.build(\n content,\n this.formValidation,\n this.missingAcceptances,\n this.blockRequired\n );\n this.formGroup = this.config.form;\n if (this.initialAcceptances) {\n this.acceptances = [...this.initialAcceptances];\n for (const acc of this.initialAcceptances) {\n const control = this.formGroup.get(acc);\n if (control) {\n control.patchValue(true);\n }\n }\n }\n this.aggregateFormGroup.addControl(this.formValidation.formGroupName, this.formGroup);\n this.updateAllCheckedState();\n }\n });\n this.fetchModalsContents();\n }\n\n private fetchModalsContents() {\n this.translate.get('TERMS_OF_SERVICE_PAGE').subscribe((resp: TermsOfServicePageModel) => {\n this.rulesContent = resp;\n });\n this.translate.get(`ACCEPTANCES_MODALS.INFOS_MODAL_CONTENT`).subscribe((resp: ModalContent) => {\n this.infosContent = resp;\n });\n }\n\n switchModalBaseOnCheckbox(formControlName: AcceptanceType) {\n switch (formControlName) {\n case AcceptanceType.RULES:\n this.openRulesModal(this.rulesContent);\n break;\n case AcceptanceType.INFOS:\n this.openContentModal(this.infosContent);\n break;\n }\n }\n\n onToggle(value: boolean, formControlName: string) {\n if (!value && this.acceptances.includes(formControlName)) {\n this.acceptances.splice(\n this.acceptances.findIndex((acceptance) => acceptance === formControlName),\n 1\n );\n } else if (value && !this.acceptances.includes(formControlName)) {\n this.acceptances = [formControlName, ...this.acceptances];\n }\n this.config.form.controls[formControlName].patchValue(value, {\n emitEvent: false\n });\n this.updateAllCheckedState();\n this.emitAcceptances.emit(this.acceptances);\n }\n\n onAllChanged(value: boolean) {\n this.allChecked = !this.allChecked;\n this.formConfigBinder.setControlsValueTo(this.allChecked);\n this.emitAcceptances.emit(this.acceptances);\n }\n\n private openContentModal(content: any) {\n if (!this.modalRef) {\n this.modalRef = this.modalService.open(TextInformationModalComponent, {\n data: { content: content }\n });\n const sub = this.modalRef.afterClosed.subscribe(() => {\n sub.unsubscribe();\n this.modalRef = null;\n });\n }\n }\n private openRulesModal(content: any) {\n if (!this.modalRef) {\n this.modalRef = this.modalService.open(TextInformationModalComponent, {\n data: { termsContent: content }\n });\n const sub = this.modalRef.afterClosed.subscribe(() => {\n sub.unsubscribe();\n this.modalRef = null;\n });\n }\n }\n\n private updateAllCheckedState(): void {\n this.allChecked = this.acceptances.length === this.config.controls.length;\n }\n\n ngOnDestroy(): void {\n if (this.aggregateFormGroup.contains(this.formValidation.formGroupName)) {\n this.aggregateFormGroup.removeControl(this.formValidation.formGroupName);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutopayTermsService {\n\n constructor(private http: HttpClient) { }\n\n getAutopayTerms(paymentType: 'BLIK' | 'PAYMENT_CARD'): Observable<{regulation: string}> {\n let uri = `${environment.PAYMENT_PROCESSOR.BASE}${environment.AUTOPAY.COMMITMENTS}${environment.AUTOPAY.REGULATIONS}`;\n\n if(paymentType === 'PAYMENT_CARD') {\n uri += `${environment.AUTOPAY.SUBSCRIPTION}`;\n }\n\n return this.http.get<{regulation: string}>(uri);\n }\n}\n","
\n *'\" [bolded]=\"true\">\n
\n{{isExpanded ? ('SHARED.AUTOPAY.collapse' | translate) :\n ('SHARED.AUTOPAY.expand' | translate)}}\n@if (formGroup.get(controlName).hasError('required') && formGroup.get(controlName).touched) {\n

{{('SHARED.AUTOPAY.required' | translate)}}

\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AutopayTermsService } from './services/autopay-terms.service';\nimport { CommonModule } from '@angular/common';\nimport { FormCheckboxComponent } from '../forms/form-checkbox/form-checkbox.component';\nimport { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-autopay-terms',\n templateUrl: './autopay-terms.component.html',\n styleUrl: './autopay-terms.component.scss',\n standalone: true,\n imports: [CommonModule, FormCheckboxComponent, ReactiveFormsModule, TranslateModule]\n})\nexport class AutopayTermsComponent {\n @Input() formGroup: UntypedFormGroup;\n @Input() controlName: string;\n @Input() set paymentType(data: 'BLIK' | 'PAYMENT_CARD') {\n this._paymentType = data;\n\n this.autopayService.getAutopayTerms(this.paymentType).subscribe({\n next: value => {\n this.autopayTermsText = value.regulation;\n }\n })\n };\n\n get paymentType(): 'BLIK' | 'PAYMENT_CARD' {\n return this._paymentType;\n }\n\n termsChecked: boolean = false;\n autopayTermsText: string = '-';\n isExpanded: boolean = false;\n private _paymentType: 'BLIK' | 'PAYMENT_CARD' = 'BLIK';\n\n constructor(private autopayService: AutopayTermsService) {\n this.autopayService.getAutopayTerms(this.paymentType).subscribe({\n next: value => {\n this.autopayTermsText = value.regulation;\n }\n })\n }\n}\n","export const MESSAGES_ROUTE = 'wiadomosci';\n","import { MY_ACCOUNT_ROUTE } from '../../../my-account/_consts/my-account-route.const';\nimport {\n ADR_ROUTE,\n DRIVER_LICENSE_PAYMENT,\n DRIVER_LICENSE_ROUTE,\n TACHOGRAPH_ROUTE,\n VEHICLE_REGISTRATION_ROUTE\n} from '../../../service-category/_consts/service-category-route.const';\nimport { EXAMS_ROUTE } from '../../../my-account/exams/_consts/exams.route.const';\nimport { NOTIFICATIONS_PANEL_ROUTE } from '../../../my-account/notifications-panel/_consts/notifications-panel.route.const';\nimport { NOTIFICATION_FORM_ROUTE } from '../../../my-account/notifications-panel/notification-form/_consts/notification-form.route.const';\nimport { WORD_EXAM_ROUTE } from '../../../applications/word-exam-registration/_consts/word-exam-route.const';\nimport { SEARCH_ROUTE } from '../../../search-results/_consts/search-route.const';\nimport { MESSAGES_ROUTE } from '../../../my-account/messages/_consts/messages.route.const';\nimport { STATEMENTS_ROUTE } from '../../../my-account/statements/_consts/statements.route.const';\nimport { LIST_EMPLOYEES_ROUTE } from '../../../my-account/company-employees/_consts/company-employees.route.const';\nimport { LIST_APPLICATIONS_ROUTE } from '../../../my-account/list-applications/_consts/list-applications.route.const';\nimport { PARTNERS_ROUTE } from '../../../service-category/services-info-pages/tachograph/partners/_consts/partners-route.const';\nimport {\n CONTACTPAGE_ROUTE,\n DEFECTIVE_CARD_INFO_ROUTE,\n SIGNATURES_INFO_PAGE,\n SITE_MAP_PAGE\n} from '../../../info-pages/_consts/info-pages-route.const';\nimport {\n FORGOT_PASSWORD_ROUTE,\n LOGIN_ROUTE,\n RESET_PASSWORD_ROUTE\n} from '../../../login/_consts/login-route.const';\nimport { CONTACT_ROUTE } from '../../../service-category/services-info-pages/tachograph/contact/_consts/contact-route.const';\nimport { REGISTRATION_ROUTE } from '../../../registration/_consts/registration-routes.const';\nimport { ADR_CLASSES_ROUTE } from '../../../service-category/services-info-pages/adr/adr-classes/_const/adr-classes-route';\nimport { SETTINGS_ROUTE } from '../../../my-account/settings/_consts/settings-route.const';\n\nexport class Breadcrumb {\n static readonly LABEL_PREFIX = 'BREADCRUMBS.';\n label: string;\n url: string;\n}\n\nexport enum Page {\n Home,\n\n MyAccount,\n MyAccountTachograph,\n MyAccountDriverLicense,\n MyAccountVehicleRegistration,\n ExamsList,\n Settings,\n NotificationsPanel,\n NotificationsPanelAddForm,\n Statements,\n\n DriversLicence,\n ExamRegistration,\n\n SearchResults,\n Stc,\n Messages,\n Employees,\n ApplicationsSent,\n ApplicationsDrafts,\n Contact,\n\n SiteMapPage,\n\n Partners,\n SignaturesInfoPage,\n Login,\n ForgotPassword,\n ResetPassword,\n TachographContact,\n Registration,\n DriverLicence,\n DriverLicensePayment,\n VehicleRegistration,\n\n Adr,\n AdrClasses,\n DefectiveCards\n}\n\nexport function mapPagesToBreadcrumbs() {\n return {\n [Page.Home]: { label: `${Breadcrumb.LABEL_PREFIX}HOME`, url: '/' },\n\n [Page.MyAccount]: { label: `${Breadcrumb.LABEL_PREFIX}MY_ACCOUNT`, url: MY_ACCOUNT_ROUTE },\n [Page.MyAccountDriverLicense]: {\n label: `${Breadcrumb.LABEL_PREFIX}MY_ACCOUNT_DRIVER_LICENSE`,\n url: MY_ACCOUNT_ROUTE + '/' + DRIVER_LICENSE_ROUTE\n },\n [Page.MyAccountVehicleRegistration]: {\n label: `${Breadcrumb.LABEL_PREFIX}MY_ACCOUNT_VEHICLE_REGISTRATION`,\n url: MY_ACCOUNT_ROUTE + '/' + VEHICLE_REGISTRATION_ROUTE\n },\n [Page.ExamsList]: {\n label: 'Egzamin na prawo jazdy',\n url: MY_ACCOUNT_ROUTE + '/' + EXAMS_ROUTE\n },\n [Page.Settings]: {\n label: `${Breadcrumb.LABEL_PREFIX}SETTINGS`,\n url: MY_ACCOUNT_ROUTE + '/' + SETTINGS_ROUTE\n },\n [Page.NotificationsPanel]: {\n label: 'Lista subskrypcji',\n url: MY_ACCOUNT_ROUTE + '/' + NOTIFICATIONS_PANEL_ROUTE\n },\n [Page.NotificationsPanelAddForm]: {\n label: 'Dodaj subksrybcję',\n url: MY_ACCOUNT_ROUTE + '/' + NOTIFICATION_FORM_ROUTE\n },\n [Page.DriversLicence]: {\n label: 'Prawo jazdy',\n url: DRIVER_LICENSE_ROUTE\n },\n [Page.ExamRegistration]: {\n label: 'Zapisz się na egzamin na prawo jazdy (online)',\n url: WORD_EXAM_ROUTE\n },\n [Page.SearchResults]: { label: `${Breadcrumb.LABEL_PREFIX}SEARCH_RESULTS`, url: SEARCH_ROUTE },\n\n [Page.Stc]: { label: `${Breadcrumb.LABEL_PREFIX}STC`, url: TACHOGRAPH_ROUTE },\n [Page.MyAccountTachograph]: {\n label: `${Breadcrumb.LABEL_PREFIX}STC`,\n url: `${MY_ACCOUNT_ROUTE}/${TACHOGRAPH_ROUTE}`\n },\n [Page.Messages]: { label: 'Wiadomości', url: MESSAGES_ROUTE },\n [Page.Statements]: { label: `${Breadcrumb.LABEL_PREFIX}STATEMENTS`, url: STATEMENTS_ROUTE },\n [Page.Employees]: {\n label: 'Pracownicy',\n url: MY_ACCOUNT_ROUTE + '/' + TACHOGRAPH_ROUTE + '/' + LIST_EMPLOYEES_ROUTE\n },\n [Page.ApplicationsSent]: {\n label: `${Breadcrumb.LABEL_PREFIX}APPLICATIONS_SENT`,\n url: LIST_APPLICATIONS_ROUTE\n },\n [Page.ApplicationsDrafts]: { label: `${Breadcrumb.LABEL_PREFIX}APPLICATIONS_DRAFTS`, url: '' },\n [Page.Partners]: {\n label: 'Uzyskaj kartę do tachografu w imieniu pracownika (usługa dla firm)',\n url: `${TACHOGRAPH_ROUTE}/${PARTNERS_ROUTE}`\n },\n [Page.Contact]: {\n label: `${Breadcrumb.LABEL_PREFIX}CONTACT`,\n url: CONTACTPAGE_ROUTE\n },\n [Page.SignaturesInfoPage]: {\n label: 'Jak podpisać wniosek',\n url: SIGNATURES_INFO_PAGE\n },\n [Page.SiteMapPage]: { label: `${Breadcrumb.LABEL_PREFIX}SITE_MAP`, url: SITE_MAP_PAGE },\n [Page.Login]: { label: `${Breadcrumb.LABEL_PREFIX}LOGIN`, url: LOGIN_ROUTE },\n [Page.ForgotPassword]: {\n label: `${Breadcrumb.LABEL_PREFIX}FORGOT_PASSWORD`,\n url: `${LOGIN_ROUTE}/${FORGOT_PASSWORD_ROUTE}`\n },\n [Page.ResetPassword]: {\n label: `${Breadcrumb.LABEL_PREFIX}RESET_PASSWORD`,\n url: `${LOGIN_ROUTE}/${RESET_PASSWORD_ROUTE}`\n },\n [Page.TachographContact]: {\n label: `${Breadcrumb.LABEL_PREFIX}CONTACT`,\n url: `${TACHOGRAPH_ROUTE}/${CONTACT_ROUTE}`\n },\n [Page.Registration]: {\n label: `${Breadcrumb.LABEL_PREFIX}REGISTRATION`,\n url: REGISTRATION_ROUTE\n },\n [Page.DriverLicence]: {\n label: 'Prawo jazdy',\n url: `${DRIVER_LICENSE_ROUTE}`\n },\n [Page.VehicleRegistration]: {\n label: 'Rejestracja pojazdu',\n url: `${VEHICLE_REGISTRATION_ROUTE}`\n },\n [Page.DriverLicensePayment]: {\n label: 'Zapłać za wydanie prawa jazdy',\n url: `${DRIVER_LICENSE_ROUTE}/${DRIVER_LICENSE_PAYMENT}`\n },\n\n [Page.Adr]: { label: `${Breadcrumb.LABEL_PREFIX}ADR`, url: `${ADR_ROUTE}` },\n [Page.AdrClasses]: {\n label: `${Breadcrumb.LABEL_PREFIX}ADR_CLASSES`,\n url: `${ADR_ROUTE}/${ADR_CLASSES_ROUTE}`\n },\n [Page.DefectiveCards]: {\n label: 'Powiadomienie dotyczące ważności karty',\n url: DEFECTIVE_CARD_INFO_ROUTE\n }\n };\n}\n","
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Event, NavigationEnd, NavigationStart, Router, RouterModule } from '@angular/router';\nimport { Breadcrumb, mapPagesToBreadcrumbs, Page } from './breadcrumb.model';\nimport { BreadcrumbsService } from './breadcrumbs.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n standalone: true,\n imports: [CommonModule, RouterModule]\n})\nexport class BreadcrumbsComponent implements OnInit, OnDestroy {\n pageToBreadcrumb: Record;\n breadcrumbs: Array;\n translatedBreadcrumbs: any;\n breadcrumbsSet = false;\n hideBreadcrumbsPlaceholder = false;\n breadcrumbsHidden = false;\n previousUrl: string;\n currentUrl: string;\n displayEllipsis: boolean;\n private destroy$ = new Subject();\n\n constructor(\n private breadcrumbsService: BreadcrumbsService,\n private router: Router,\n private translateService: TranslateService\n ) { }\n\n ngOnInit() {\n this.currentUrl = this.router.url;\n this.breadcrumbsService.breadcrumbsHide.subscribe((value: boolean) => {\n setTimeout(() => {\n this.breadcrumbsHidden = value;\n });\n });\n this.breadcrumbsService.breadcrumbsChange.subscribe((breadcrumbs: Array) => {\n if (!this.pageToBreadcrumb) {\n this.fillPageToBreadcrumbMap();\n }\n this.onBreadcrumbsChange(breadcrumbs);\n });\n\n this.translateBreadcrumbs();\n\n this.breadcrumbsService.breadcrumbsClear.subscribe((_) => this.clear());\n\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n this.breadcrumbsSet = false;\n }\n\n if (event instanceof NavigationEnd) {\n if (this.currentUrl !== event.urlAfterRedirects) {\n if (!this.breadcrumbsSet) {\n this.clear();\n }\n this.currentUrl = this.router.url;\n }\n }\n });\n }\n // note when using info-car won't need to refreash a page for translation, add\n // translateService.onLangChange subscriber and fire this method in its subscription\n private translateBreadcrumbs() {\n this.translateService.get('BREADCRUMBS').subscribe({\n next: (translated) => {\n this.translatedBreadcrumbs = translated;\n }\n });\n }\n\n onBreadcrumbsChange(breadcrumbs: Array) {\n if (!(breadcrumbs && breadcrumbs.length > 0)) {\n return;\n }\n\n const newBreadcrumbs: Array = new Array();\n for (const breadcrumb of breadcrumbs) {\n if ((breadcrumb as Breadcrumb).url && (breadcrumb as Breadcrumb).label) {\n newBreadcrumbs.push(breadcrumb as Breadcrumb);\n } else {\n const breadcrumbFromPage = this.pageToBreadcrumb[breadcrumb as Page];\n if (breadcrumbFromPage.label.startsWith(Breadcrumb.LABEL_PREFIX)) {\n const key = breadcrumbFromPage.label.substring(Breadcrumb.LABEL_PREFIX.length);\n breadcrumbFromPage.label = this.translatedBreadcrumbs[key];\n }\n newBreadcrumbs.push(breadcrumbFromPage);\n }\n }\n setTimeout(() => {\n this.hideBreadcrumbsPlaceholder = true;\n this.breadcrumbs = newBreadcrumbs;\n this.calculateEllipsis();\n });\n }\n\n calculateEllipsis() {\n setTimeout(() => {\n let width = 0;\n const list = document.getElementById('breadcrumbs-list');\n if (list) {\n const elements = list.children;\n for (const element of elements as any) {\n width += element.clientWidth + 52; // width + margin\n }\n width -= 52;\n this.displayEllipsis = width > 700;\n }\n });\n }\n\n clear() {\n this.breadcrumbs = null;\n }\n\n ngOnDestroy() {\n this.destroy$.next(null);\n this.destroy$.unsubscribe();\n }\n\n private fillPageToBreadcrumbMap() {\n this.pageToBreadcrumb = mapPagesToBreadcrumbs();\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { Breadcrumb, Page } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbsService {\n breadcrumbsChange: EventEmitter> = new EventEmitter();\n breadcrumbsClear: EventEmitter = new EventEmitter();\n breadcrumbsHide: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n setBreadcrumbs(breadcrumbs: Array) {\n this.breadcrumbsChange.emit(breadcrumbs);\n }\n\n hideBreadcrumbs(value: boolean) {\n this.breadcrumbsHide.emit(value);\n }\n\n clear() {\n this.breadcrumbsClear.emit();\n }\n}\n","
\n

\n {{ titleText ? titleText : content.howToPay }}\n

\n
\n \n\n
\n
\n \n @if(showIcTerms) {\n \n }\n
\n \n
\n \n
\n
\n
\n \n {{ content.blikError }}\n \n
\n
\n\n @if(!onlyBlik) {\n \n\n \n }\n
\n
\n\n@if(isPeriodic) {\n
\n \n
\n}\n\n
\n \n \n \n \n \n \n
","import { CommonModule, Location } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { PaymentMethodType } from 'src/app/shared/models/payment/payment-dto.model';\nimport { ValidationPatterns } from 'src/app/shared/validation/validation-patterns.const';\nimport { ChoosenPaymentType } from './choosen-payment-type.model';\nimport { environment } from 'src/environments/environment';\nimport { GhostButtonComponent } from '../ghost-button/ghost-button.component';\nimport { FormCheckboxComponent } from '../forms/form-checkbox/form-checkbox.component';\nimport { AutopayTermsComponent } from '../autopay-terms/autopay-terms.component';\nimport { PreventDoubleClickDirective } from '../../directives/prevent-double-click/prevent-double-click.directive';\nimport { Extensions } from '../../extensions/extensions';\n\n@Component({\n selector: 'app-choose-payment-method',\n templateUrl: './choose-payment-method.component.html',\n styleUrls: ['./choose-payment-method.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n GhostButtonComponent,\n AutopayTermsComponent,\n FormsModule,\n ReactiveFormsModule,\n FormCheckboxComponent,\n PreventDoubleClickDirective\n ]\n})\nexport class ChoosePaymentMethodComponent implements OnInit {\n @Output() submitPaymentMethod: EventEmitter = new EventEmitter();\n @Input() showBackButton: boolean;\n @Input() isPeriodic: boolean;\n @Input() titleText: string;\n @Input() payButtonText: string;\n @Input() onlyBlik: boolean;\n @Input() showIcTerms: boolean = false;\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n selectedPaymentMethod: PaymentMethodType = null;\n PaymentMethodType = PaymentMethodType;\n content: any;\n blikCodeControl: UntypedFormControl;\n env = environment;\n termsAccepted: boolean;\n regulationsAccepted: boolean;\n terms = new UntypedFormGroup({\n autopayTerms: new UntypedFormControl(null, Validators.requiredTrue),\n icTerms: new UntypedFormControl(null, Validators.requiredTrue)\n })\n\n constructor(\n private translate: TranslateService,\n private location: Location,\n protected router: Router\n ) {\n this.blikCodeControl = new UntypedFormControl(\n null,\n Validators.compose([\n Validators.pattern(ValidationPatterns.requiredOnlyDigit),\n Validators.required,\n Validators.maxLength(6),\n Validators.minLength(6)\n ])\n );\n }\n\n ngOnInit(): void {\n this.translate.get('EXTERNAL_PAYMENTS.CHOOSE_METHOD').subscribe({\n next: (content) => (this.content = content)\n });\n\n if (this.onlyBlik) {\n this.selectedPaymentMethod = PaymentMethodType.BLIK;\n }\n\n if (this.isPeriodic) {\n this.selectedPaymentMethod = PaymentMethodType.PAYMENT_CARD;\n }\n }\n checkIfBlikCodeIsInvalid() {\n return this.blikCodeControl.invalid && this.blikCodeControl.touched;\n }\n\n\n onSubmit() {\n if (this.selectedPaymentMethod === PaymentMethodType.BLIK && this.blikCodeControl.invalid && this.env.FEATURE_TOGGLES.BLIK_LVL_ZERO) {\n return this.blikCodeControl.markAsTouched();\n }\n\n if (((this.showIcTerms && !this.terms.get('icTerms').valid) ||\n (!this.terms.get('autopayTerms').valid || !this.blikCodeControl.valid) &&\n this.selectedPaymentMethod === PaymentMethodType.BLIK) ||\n (this.isPeriodic && this.selectedPaymentMethod === PaymentMethodType.PAYMENT_CARD && !this.terms.get('autopayTerms').valid)) {\n this.terms.get('autopayTerms').markAsTouched();\n this.terms.get('icTerms').markAsTouched();\n Extensions.scrollToFirstInvalidInput();\n } else {\n this.submitPaymentMethod.emit({\n paymentType: this.selectedPaymentMethod,\n blikCode: this.blikCodeControl.value\n });\n }\n }\n\n backClick() {\n this.location.back();\n }\n}\n","
\n

\n {{ content.chooseMethod }}\n

\n

\n {{ content.chooseMethod }}\n

\n\n
\n
\n
\n

{{ content.type }}

\n
\n \n \n
\n {{ content.administrativeFee }}\n
\n \n \n
\n {{ content.taxFee }}\n
\n \n
\n {{ content.postalFee }}\n
\n
\n

{{ content.price }}

\n
\n
\n \n
\n
\n

\n {{ item.documentType }}\n

\n
\n \n
\n

\n {{ item.administrativeFee / 100 }} {{ content.units }}\n

\n
\n
\n

\n {{ item.taxFee / 100 }} {{ content.units }}\n

\n
\n
\n

\n {{ item.postalFee / 100 }} {{ content.units }}\n

\n
\n
\n

\n {{ (item.taxFee + item.administrativeFee + item.postalFee) / 100 }} {{ content.units }}\n

\n
\n
\n
\n
\n\n \n
0\">\n
\n

{{ content.provision }}

\n
\n
\n

\n {{ payment.provision / 100 | number: '1.2-2' }} {{ content.units }}\n

\n
\n
\n\n
\n
\n

\n {{ content.priceSum }}\n

\n
\n
\n

\n {{ (payment.fee + payment.provision) / 100 }}\n \n \n {{ content.units }}\n

\n
\n
\n
\n\n
\n

\n {{ content.chooseMethod }}\n

\n

\n {{ content.chooseMethod }}\n

\n\n
\n
\n
\n

{{ content.type }}

\n
\n
\n

{{ content.price }}

\n
\n
\n \n
\n
\n
\n

\n {{ item.documentType }}\n

\n
\n \n
\n

{{ content.administrativeFee }}

\n
\n
\n

{{ content.taxFee }}

\n
\n
\n

{{ content.postalFee }}

\n
\n
\n
\n
\n

\n {{ (item.taxFee + item.administrativeFee + item.postalFee) / 100 }}\n \n {{ content.units }}\n

\n
\n
\n

\n {{ item.administrativeFee / 100 }} {{ content.units }}\n

\n
\n
\n

\n {{ item.taxFee / 100 }} {{ content.units }}\n

\n
\n
\n

\n {{ item.postalFee / 100 }} {{ content.units }}\n

\n
\n
\n
\n
\n
0\">\n \n
\n

{{ content.provision }}

\n
\n
\n

\n {{ payment.provision / 100 }} {{ content.units }}\n

\n
\n
\n
\n
\n

\n {{ content.priceSum }}\n

\n
\n
\n

\n {{ (payment.fee + payment.provision) / 100 }}\n \n {{ content.units }}\n

\n
\n
\n
\n
","import { Component, HostListener, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ExternalPaymentsCartListContent } from '../../../external-payments/esp-payment/_models/esp-payment-content.model';\nimport { EspPaymentDto } from '../../../external-payments/esp-payment/_models/esp-payment.model';\n\n@Component({\n selector: 'app-external-cart-list',\n templateUrl: './external-cart-list.component.html',\n styleUrls: ['./external-cart-list.component.scss']\n})\nexport class ExternalCartListComponent implements OnInit {\n @Input() payment: EspPaymentDto;\n @Input() titleAsH1 = false;\n content: ExternalPaymentsCartListContent;\n isMobile: boolean;\n\n constructor(private translate: TranslateService) {}\n\n ngOnInit(): void {\n this.translate.get('EXTERNAL_PAYMENTS.CART_LIST').subscribe({\n next: (content: ExternalPaymentsCartListContent) => (this.content = content)\n });\n\n this.checkIsMobile();\n }\n\n @HostListener('window:resize', ['$event'])\n checkIsMobile() {\n if (window.innerWidth <= 576) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n}\n","export const AUTOSAVE_CONFIG = {\n IS_TOASTR_ACCEPTED: {\n key: 'isToastrAccepted',\n value: {\n true: 'true',\n false: 'false'\n }\n }\n};\n","\n \n \n \n

\n \n {{ sublabel }}\n

\n \n\n
\n
\n {{ error.label }}\n
\n {{\n 'STC.CORRECTIONS.FIELD_HINT' | translate: { fieldName: label }\n }}\n
\n
\n\n
\n \n \n \n
\n
\n
\n \n {{ button }}\n \n \n
\n
\n
\n {{ error.label }}\n
\n {{\n 'STC.CORRECTIONS.FIELD_HINT' | translate: { fieldName: label }\n }}\n
\n\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnInit,\n Output,\n Renderer2\n} from '@angular/core';\nimport { CheckboxControlValueAccessor, UntypedFormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { FormInputError } from '../_model/form-input.model';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { TriggerClickDirective } from 'src/app/shared/directives/trigger-click/trigger-click.directive';\nimport { InternalLinkDirective } from 'src/app/shared/directives/internal-link/internal-link.directive';\nimport { SafeHtmlPipe } from 'src/app/shared/pipes/safe-html.pipe';\n\n@Component({\n selector: 'app-form-checkbox',\n templateUrl: './form-checkbox.component.html',\n styleUrls: ['./form-checkbox.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, ReactiveFormsModule, FormsModule, TriggerClickDirective, InternalLinkDirective, SafeHtmlPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FormCheckboxComponent),\n multi: true\n }\n ]\n})\nexport class FormCheckboxComponent extends CheckboxControlValueAccessor implements OnInit {\n @HostBinding('class.host-bordered-group') get hostBorderedGroup() {\n return this.styleType === 'bordered';\n }\n\n @Input() inputId: string;\n @Input() label: string;\n @Input() sublabel: string;\n @Input() button: string;\n @Input() isRequired: Boolean;\n @Input() bolded: Boolean;\n @Input() formControlName: string;\n @Input() formGroup: UntypedFormGroup;\n @Input() errorList: FormInputError[];\n @Input() isErrorContainer = true;\n @Input() isRequiredAfterButton: boolean;\n @Input() forceInvalid = false;\n @Input() styleType: 'default' | 'bordered' | 'toggle' = 'default';\n @Input() checked: boolean;\n @Input() disabled = false;\n @Input() isReportedForCorrection: boolean;\n @Input() warnValue: any;\n\n @Output() openModalClicked: EventEmitter = new EventEmitter();\n @Output() valueChanged: EventEmitter = new EventEmitter();\n\n onChange: (value) => void;\n onTouched: () => void;\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n forwardChanged(value: boolean) {\n // this.onChange(value);\n this.valueChanged.emit(value);\n this.onTouched();\n }\n\n openModal(event: Event) {\n event.preventDefault();\n this.openModalClicked.emit();\n }\n\n hasOneOfErrors(errors: string[]) {\n let invalid = false;\n errors.forEach((value) => {\n if (this.formGroup && this.formGroup.controls[this.formControlName].hasError(value)) {\n invalid = true;\n }\n });\n return this.formGroup && this.formGroup.controls[this.formControlName].touched && invalid;\n }\n\n constructor(_renderer: Renderer2, _elementRef: ElementRef) {\n super(_renderer, _elementRef);\n }\n\n ngOnInit() {\n if (this.formGroup) {\n this.formGroup.controls[this.formControlName].valueChanges.subscribe({\n next: (value) => {\n this.forwardChanged(value);\n }\n });\n }\n }\n\n showWarning(): boolean {\n return (\n !!this.warnValue &&\n this.isTouched() &&\n this.warnValue === this.formGroup.controls[this.formControlName].value\n );\n }\n\n isTouched() {\n return this.formGroup?.controls[this.formControlName].touched;\n }\n\n isValid() {\n return this.formGroup?.controls[this.formControlName].valid;\n }\n}\n","import { date } from './date';\nimport { accountNumber } from './accountNumber';\nimport { TextMaskModel } from './model.interface';\n\nexport const MaskConfig: TextMaskModel = {\n date: date,\n accountNumber: accountNumber\n};\n","import { MaskModel } from './model.interface';\n\nexport const date: MaskModel = {\n mask: [/\\d/, /\\d/, '.', /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, /\\d/]\n};\n","import { MaskModel } from './model.interface';\n\nexport const accountNumber: MaskModel = {\n mask: [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/\n ]\n};\n","
\n \n \n {{ subLabel }}\n \n
\n \n \n \n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n {{ error.label }}\n
\n {{\n 'STC.CORRECTIONS.FIELD_HINT' | translate: { fieldName: label }\n }}\n
\n
\n

\n
\n
","import { isNullOrUndefined } from 'src/app/shared/extensions/extensions';\nimport {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, UntypedFormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { FormInputError } from '../_model/form-input.model';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MaskConfig } from './mask/index';\nimport { MaskedInputDirective, TextMaskModule } from '@matheo/text-mask';\nimport { CommonModule } from '@angular/common';\nimport { SelectableInputModule } from 'src/app/shared/selectable-input/selectable-input.module';\nimport { ClickOutsideModule } from 'ng-click-outside';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { TriggerClickDirective } from 'src/app/shared/directives/trigger-click/trigger-click.directive';\n\n@Component({\n selector: 'app-form-input',\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n FormsModule,\n TextMaskModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FormInputComponent),\n multi: true\n }\n ]\n})\nexport class FormInputComponent implements OnInit, AfterViewChecked, ControlValueAccessor {\n constructor(\n private translate: TranslateService,\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef\n ) { }\n preValue = '';\n el: HTMLInputElement;\n MaskConfig = MaskConfig;\n value: string = null;\n\n // value accesor\n onChange: (value) => void;\n onTouched: () => void;\n\n @ViewChild(MaskedInputDirective) textMask: MaskedInputDirective;\n @ViewChild('input') input: ElementRef;\n @Output() onPaste = new EventEmitter();\n @Output() blured = new EventEmitter();\n @Input() disabled: boolean;\n @Input() inputId: string;\n @Input() label: string;\n @Input() formControlName: string;\n @Input() formGroup: UntypedFormGroup;\n @Input() isRequired: Boolean;\n @Input() placeholder: string;\n @Input() errorList: FormInputError[];\n @Input() type = 'text';\n @Input() maxLength: number;\n @Input() min: number;\n @Input() max: number;\n @Input() step = 1;\n @Input() subLabel: string;\n @Input() subLabelSpaceing = false;\n @Input() mask;\n @Input() wrapSubLabel = false;\n @Input() info: string;\n @Input() isReportedForCorrection = false;\n @Input() warnValue: any;\n @Input() onClick: () => void = () => { };\n\n ngOnInit() {\n if (this.errorList) {\n this.errorList.forEach((error) => {\n error.label = error.key ? this.translate.instant(error.key) : error.label;\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.mask === 'date' || this.mask === 'accountNumber') {\n this.el = this.elementRef.nativeElement;\n this.el.autocomplete = 'new-password';\n }\n }\n\n onInputMask($event) {\n if (this.mask === 'digit') {\n $event.target.value = $event.target.value.replace(/\\D/g, '');\n }\n this.preValue = $event.target.value;\n this.value = $event.target.value;\n this.onChange($event.target.value);\n }\n\n onPropagateBlur($event) {\n $event.target.value = ($event.target.value as string).trim();\n this.onChange($event.target.value);\n this.onTouched();\n this.blured.emit($event);\n }\n\n writeValue(value: string): void {\n this.preValue = value ? value : '';\n this.value = value ? value : '';\n setTimeout(() => this.updateTextMask(value), 0);\n }\n\n updateTextMask(value: string): void {\n if (this.mask === 'date' || this.mask === 'accountNumber') {\n this.textMask.writeValue(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onHasOneOfErrors(errors: string[]) {\n let invalid = false;\n errors.forEach((value) => {\n if (this.formGroup.controls[this.formControlName].hasError(value)) {\n invalid = true;\n }\n });\n return this.isTouched() && invalid;\n }\n\n incrementValue(): void {\n if (isNullOrUndefined(this.value) || this.value === '') {\n this.value = '0';\n }\n\n let value = parseFloat(this.value);\n if (isNullOrUndefined(this.max) || value < this.max) {\n value += this.step;\n }\n this.writeValue(value.toString());\n this.onChange(this.value);\n }\n\n decrementValue(): void {\n if (isNullOrUndefined(this.value) || this.value === '') {\n this.value = '0';\n }\n\n let value = parseFloat(this.value);\n if (isNullOrUndefined(this.min) || value > this.min) {\n value -= this.step;\n }\n this.writeValue(value.toString());\n this.onChange(this.value);\n }\n\n showWarning(): boolean {\n return !!this.warnValue && this.isTouched() && this.warnValue === this.value;\n }\n\n isTouched() {\n return this.formGroup?.controls[this.formControlName].touched;\n }\n\n isValid() {\n return this.formGroup?.controls[this.formControlName].disabled\n ? true\n : this.formGroup?.controls[this.formControlName].valid;\n }\n\n handleOnPaste(event: ClipboardEvent): void {\n this.onPaste.emit(event.clipboardData.getData('text/plain'));\n }\n}\n","export enum GhostButtonType {\n BIG_FIRST_RANK = 'BIG_FIRST_RANK',\n BIG_FIRST_RANK_FLEX = 'BIG_FIRST_RANK_FLEX',\n BIG_SECOND_RANK = 'BIG_SECOND_RANK',\n BIG_SECOND_RANK_FLEX = 'BIG_SECOND_RANK_FLEX',\n SMALL_FIRST_RANK = 'SMALL_FIRST_RANK',\n SMALL_FIRST_RANK_FLEX = 'SMALL_FIRST_RANK_FLEX',\n SMALL_SECOND_RANK = 'SMALL_SECOND_RANK',\n SMALL_SECOND_RANK_FLEX = 'SMALL_SECOND_RANK_FLEX',\n SLIDER = 'SLIDER',\n SLIDER_CONTROL = 'SLIDER_CONTROL',\n FOOTER_OTHER_PRODUCTS = 'FOOTER_OTHER_PRODUCTS',\n WORD_EXAM_SMALL_FLEX = 'WORD_EXAM_SMALL_FLEX',\n SIMPLE_LINK = 'SIMPLE_LINK'\n}\n","\n
\n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n\n","import { CommonModule } from '@angular/common';\nimport { GhostButtonType } from './ghost-button-type.enum';\nimport { Component, OnInit, Input, ElementRef, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'ic-ghost-button',\n templateUrl: './ghost-button.component.html',\n styleUrls: ['./ghost-button.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class GhostButtonComponent implements OnInit {\n @Input() showArrow = false;\n @Input() arrowLeft = false;\n @Input() type: GhostButtonType;\n @Input() typeHTML = 'submit';\n @Input() disabled = false;\n @Input() inline = false;\n @Input() width: number;\n @Input() height: number;\n @Input() justifyContent: string;\n @Input() isDownload: boolean;\n @Input() fileName: string;\n @Input() linkHref: string;\n @Input() loading = false;\n @Input() ariaLabel: string;\n @Input() htmlId: string;\n\n constructor(private selfReference: ElementRef) { }\n\n ngOnInit() {\n const selfDOM: HTMLElement = this.selfReference.nativeElement.querySelector('.ghost-btn');\n\n switch (this.type) {\n case GhostButtonType.BIG_FIRST_RANK:\n break;\n case GhostButtonType.BIG_FIRST_RANK_FLEX:\n selfDOM.classList.add('flexible');\n break;\n case GhostButtonType.BIG_SECOND_RANK:\n selfDOM.classList.add('narrow', 'transparent-blue-text-to-dark-blue-text');\n break;\n case GhostButtonType.BIG_SECOND_RANK_FLEX:\n selfDOM.classList.add('flexible', 'transparent-blue-text-to-dark-blue-text');\n break;\n case GhostButtonType.SMALL_FIRST_RANK:\n selfDOM.classList.add('narrow', 'slim');\n break;\n case GhostButtonType.SMALL_FIRST_RANK_FLEX:\n selfDOM.classList.add('narrow', 'slim', 'flexible');\n break;\n case GhostButtonType.SMALL_SECOND_RANK:\n selfDOM.classList.add('narrow', 'slim', 'transparent-blue-text-to-dark-blue-text');\n break;\n case GhostButtonType.SMALL_SECOND_RANK_FLEX:\n selfDOM.classList.add(\n 'narrow',\n 'slim',\n 'transparent-blue-text-to-dark-blue-text',\n 'flexible'\n );\n break;\n case GhostButtonType.SLIDER:\n selfDOM.classList.add('transparent-to-white', 'inline');\n break;\n case GhostButtonType.SLIDER_CONTROL:\n selfDOM.classList.add('slider-control', 'transparent-to-light-gray');\n break;\n case GhostButtonType.FOOTER_OTHER_PRODUCTS:\n selfDOM.classList.add('footer-other-products');\n break;\n case GhostButtonType.WORD_EXAM_SMALL_FLEX:\n selfDOM.classList.add(\n 'narrow',\n 'slim',\n 'transparent-blue-text-to-dark-blue-text',\n 'flexible',\n 'blue-hover'\n );\n break;\n case GhostButtonType.SIMPLE_LINK:\n selfDOM.classList.add('simple-link-button');\n break;\n default: {\n }\n }\n\n if (this.showArrow && this.arrowLeft) {\n selfDOM.classList.add('back');\n }\n\n if (this.justifyContent) {\n selfDOM.style.justifyContent = this.justifyContent;\n }\n }\n\n downloadFile() {\n const link = document.createElement('a');\n link.download = this.fileName;\n link.href = this.linkHref;\n link.click();\n }\n}\n","\n \n {{ infoBoxTitle }}\n \n

\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { Component, OnInit, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-info-box',\n templateUrl: './info-box.component.html',\n styleUrls: ['./info-box.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class InfoBoxComponent implements OnInit {\n // to create multiple blocks of text inside a single info-box use tags inside infoBoxText\n // to make a routerLink use tag with 'link' attribute like Homepage\n @Input() infoBoxText: string;\n @Input() infoBoxTitle: string;\n @Input() width: number;\n @Input() bordered = false;\n @Input() maxWidthLimited = true;\n @Input() type: 'info' | 'warning' | 'error' | 'success' = 'info';\n @Input() iconStyle: 'monochrome' | 'blue' = 'blue';\n content: any;\n constructor(private router: Router, private translate: TranslateService) { }\n\n ngOnInit() {\n this.translate.get('SHARED.INFO_BOX').subscribe({\n next: (content) => {\n this.content = content;\n\n if (!this.infoBoxTitle) {\n this.infoBoxTitle = this.content.waring;\n }\n }\n });\n }\n}\n","import { ModalRef } from './modal-ref';\nimport { Directive } from '@angular/core';\n\n// TODO: [RK] add generic BaseModal Type for generic modal reference data.\n@Directive()\nexport abstract class BaseModalDirective {\n public ref: ModalRef;\n constructor() {}\n\n getData(): any {\n if (!this.ref) {\n return null;\n }\n return this.ref.data;\n }\n\n close(data?: any) {\n if (this.ref) {\n this.ref.close(data);\n }\n }\n}\n","export class ModalConfig {\n data: D;\n}\n","import { Observable, Subject } from 'rxjs';\n\nexport const MODAL_OVERLAY_CLICKED = 'overlay_clicked';\n\nexport class ModalRef {\n constructor(config: any = null) {\n this.data = config.data;\n }\n public data: any;\n\n private readonly _afterClosed = new Subject();\n afterClosed: Observable = this._afterClosed.asObservable();\n\n close(result?: any) {\n if (!this.shouldClose(result)) {\n return;\n } else {\n this._afterClosed.next(result);\n this._afterClosed.complete();\n }\n }\n\n shouldClose(closingData): boolean {\n // add \"freezeOveraly: true\" to modal config to prevent from closing on overlay click\n if (\n this.data &&\n this.data.hasOwnProperty('freezeOverlay') &&\n this.data.freezeOverlay &&\n closingData === MODAL_OVERLAY_CLICKED\n ) {\n return false;\n } else {\n return true;\n }\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appInsertion]'\n})\nexport class InsertionDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import {\n Component,\n Type,\n ComponentFactoryResolver,\n ViewChild,\n OnDestroy,\n ComponentRef,\n AfterViewInit,\n ChangeDetectorRef,\n ElementRef,\n OnInit\n} from '@angular/core';\nimport { InsertionDirective } from './insertion.directive';\nimport { Subject } from 'rxjs';\nimport { ModalRef, MODAL_OVERLAY_CLICKED } from './modal-ref';\nimport { BaseModalDirective } from './base-modal';\n\n@Component({\n selector: 'app-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements AfterViewInit, OnDestroy, OnInit {\n componentRef: ComponentRef;\n\n @ViewChild(InsertionDirective) insertionPoint: InsertionDirective;\n @ViewChild('modal') modal: ElementRef;\n\n private readonly _onClose = new Subject();\n public onClose = this._onClose.asObservable();\n\n childComponentType: Type;\n\n blueOverlay = false;\n whiteOverlay = false;\n maxHeight = false;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private cd: ChangeDetectorRef,\n private modalRef: ModalRef\n ) {\n if (this.modalRef.data && this.modalRef.data.hasOwnProperty('blueOverlay')) {\n this.blueOverlay = this.modalRef.data.blueOverlay;\n }\n if (this.modalRef.data && this.modalRef.data.hasOwnProperty('whiteOverlay')) {\n this.whiteOverlay = this.modalRef.data.whiteOverlay;\n }\n if (this.modalRef.data && this.modalRef.data.hasOwnProperty('maxHeight')) {\n this.maxHeight = this.modalRef.data.maxHeight;\n }\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.modal.nativeElement.focus();\n });\n }\n ngAfterViewInit() {\n this.loadChildComponent(this.childComponentType);\n this.cd.detectChanges();\n }\n\n onOverlayClicked(evt: MouseEvent) {\n this.modalRef.close(MODAL_OVERLAY_CLICKED);\n }\n\n onModalClicked(evt: MouseEvent) {\n evt.stopPropagation();\n }\n\n loadChildComponent(componentType: Type) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n\n const viewContainerRef = this.insertionPoint.viewContainerRef;\n viewContainerRef.clear();\n\n this.componentRef = viewContainerRef.createComponent(componentFactory);\n this.componentRef.instance.ref = this.modalRef;\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n close() {\n this._onClose.next(null);\n }\n}\n","\n
\n \n
\n\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\n\nexport class ModalInjector implements Injector {\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap) {}\n\n get(token: Type | InjectionToken, notFoundValue?: T, flags?: InjectFlags): T;\n get(token: any, notFoundValue?: any);\n get(token: any, notFoundValue?: any, flags?: any) {\n const value = this._additionalTokens.get(token);\n\n if (value) return value;\n\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n","import {\n Injectable,\n ComponentRef,\n ComponentFactoryResolver,\n ApplicationRef,\n Injector,\n Type,\n EmbeddedViewRef,\n Renderer2,\n RendererFactory2\n} from '@angular/core';\nimport { ModalComponent } from './modal.component';\nimport { ModalConfig } from './modal-config';\nimport { ModalRef } from './modal-ref';\nimport { ModalInjector } from './modal-injector';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n modalComponentRefs: ComponentRef[] = Array>();\n\n private renderer: Renderer2;\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n public open(componentType: Type, config: ModalConfig = null) {\n if (!config) {\n config = new ModalConfig();\n }\n\n if (!this.renderer.parentNode('.dialog')) {\n const modalRef = this.appendModalComponentToBody(config);\n\n this.modalComponentRefs[this.modalComponentRefs.length - 1].instance.childComponentType =\n componentType;\n return modalRef;\n }\n }\n\n private appendModalComponentToBody(config: ModalConfig) {\n const map = new WeakMap();\n map.set(ModalConfig, config);\n\n const modalRef = new ModalRef(config);\n map.set(ModalRef, modalRef);\n\n const sub = modalRef.afterClosed.subscribe(() => {\n this.removeModalComponentFromBody();\n sub.unsubscribe();\n });\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n const componentRef = componentFactory.create(new ModalInjector(this.injector, map));\n\n this.appRef.attachView(componentRef.hostView);\n\n const domElem = (componentRef.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\n document.querySelector('app-layout').appendChild(domElem);\n\n this.modalComponentRefs.push(componentRef);\n\n this.modalComponentRefs[this.modalComponentRefs.length - 1].instance.onClose.subscribe(() => {\n this.removeModalComponentFromBody();\n });\n\n document.body.style.overflow = 'hidden';\n\n return modalRef;\n }\n\n private removeModalComponentFromBody() {\n document.body.style.overflow = 'auto';\n const modalComponentRef = this.modalComponentRefs.pop();\n this.appRef.detachView(modalComponentRef.hostView);\n modalComponentRef.destroy();\n }\n}\n","
\n
\n

\n {{ content ? content.title : termsContent.title }}\n

\n \n \n
\n\n
\n
\n \n
\n

\n {{ termsContent.subtitle }}\n

\n
\n\n
\n

\n {{ chapter.chapter_header }}
{{ chapter.chapter_name }}\n

\n
\n

{{ paragraph.name }}

\n

\n
    \n
  • \n \n
      \n
    • \n \n
        \n
      • \n \n
      • \n
      \n
    • \n
    \n
  • \n
\n
\n
\n
\n\n \n \n

{{ content.content.subtitle }}

\n
\n\n \n

{{ info.title }}

\n \n

{{ text }}

\n
\n\n \n
    \n
  • \n {{ item }}\n
  • \n
\n
\n
\n
\n
\n\n
\n \n {{ pageText.closeBtn }}\n \n
\n
\n
\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseModalDirective } from '../base-modal';\nimport { GhostButtonType } from '../../ghost-button/ghost-button-type.enum';\nimport { TermsOfServicePageModel } from 'src/app/info-pages/terms-of-service-page/_model/terms-of-service-page.model';\nimport { ModalContent } from '../../acceptances-checboxes/_models/acceptances-modal-content.model';\n\n@Component({\n selector: 'app-text-information-modal',\n templateUrl: './text-information-modal.component.html',\n styleUrls: ['./text-information-modal.component.scss']\n})\nexport class TextInformationModalComponent extends BaseModalDirective implements OnInit {\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n termsContent: TermsOfServicePageModel;\n content: ModalContent;\n pageText: any;\n constructor(private translate: TranslateService) {\n super();\n }\n\n ngOnInit() {\n this.translate.get('SHARED.TEXT_INFO_MODAL').subscribe({\n next: (content) => {\n this.pageText = content;\n }\n });\n this.content = this.getData().content;\n this.termsContent = this.getData().termsContent;\n }\n\n onCancelClick() {\n this.close();\n }\n}\n","\n \n \n {{ content.seeAll }}\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, OnInit, Input } from '@angular/core';\nimport { DashboardServices } from 'src/app/my-account/dashboard/dashboard-services/dashboard-services.model';\nimport { DRIVER_LICENSE_ROUTE } from 'src/app/service-category/_consts/service-category-route.const';\nimport { DESTINATION_DICTIONARY } from '../../dictionary/route-dictionary.enum';\n\n@Component({\n selector: 'app-most-popular-services',\n templateUrl: './most-popular-services.component.html',\n styleUrls: ['./most-popular-services.component.scss']\n})\nexport class MostPopularServicesComponent implements OnInit {\n @Input() borderlessStyle: boolean;\n @Input() hideAllServicesButton: boolean;\n DRIVNG_LICENSE_ROUTE = `/${DRIVER_LICENSE_ROUTE}`;\n mostPopularServices: Array = [];\n content: any;\n\n constructor(private translate: TranslateService) {}\n\n ngOnInit() {\n this.translate.get('SHARED.MOST_POPULAR_SERVICES').subscribe({\n next: (content) => {\n this.content = content;\n this.getMostPopularServices();\n }\n });\n }\n\n getMostPopularServices() {\n this.mostPopularServices = [\n {\n title: this.content.getTachoCard,\n redirectRoute: DESTINATION_DICTIONARY.get('tachograph_card')\n },\n {\n title: this.content.checkYourDL,\n redirectRoute: DESTINATION_DICTIONARY.get('check-drivers-license-status')\n },\n {\n title: this.content.checkExamAvailability,\n redirectRoute: DESTINATION_DICTIONARY.get('driver_license_word_exam_check_availability')\n },\n {\n title: this.content.dlReservation,\n redirectRoute: DESTINATION_DICTIONARY.get('driver_license_word_exam')\n },\n {\n title: this.content.checkPoofOfRegistration,\n redirectRoute: DESTINATION_DICTIONARY.get('check_registration_document_status')\n },\n {\n title: this.content.checkTachoCard,\n redirectRoute: DESTINATION_DICTIONARY.get('tachograph_check_stc_status')\n },\n {\n title: this.content.checkAdr,\n redirectRoute: DESTINATION_DICTIONARY.get('adr_status')\n },\n {\n title: this.content.checkPkkStatus,\n redirectRoute: DESTINATION_DICTIONARY.get('check-pkk-status')\n }\n ];\n }\n}\n","
\n
\n \n \n \n \n
\n \n \n \n
\n \n
\n
\n \n
\n \n
\n \n
\n

{{ 'SEARCH.noResults' | translate }}

\n
\n
\n \n\n","import { Extensions } from 'src/app/shared/extensions/extensions';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { forkJoin, Observable, of, Subscription } from 'rxjs';\nimport { debounceTime, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport * as fromSearchCache from '../../../core/_store/search.reducer';\nimport { SEARCH_CONFIG } from '../../consts/search-config';\nimport { CountedApiResponseModel } from '../../models/search/counted-api-response.model';\nimport { Service } from '../../models/search/service.model';\nimport { Translation } from '../../models/search/translation.model';\nimport * as fromShared from '../../store/shared.reducer';\nimport { SearchActions } from './../../../core/_store/search.action';\nimport { Router } from '@angular/router';\nimport { SEARCH_ROUTE } from 'src/app/search-results/_consts/search-route.const';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-search-bar',\n templateUrl: './search-bar.component.html',\n styleUrls: ['./search-bar.component.scss']\n})\nexport class SearchBarComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('searchInput') searchInput: ElementRef;\n @Input() requestFocus = false;\n // tslint:disable-next-line:no-input-rename\n @Input('hideResults') allwaysHideResults = false;\n @Output() closeEvent = new EventEmitter();\n allServices: Service[] = [];\n resultsAllwaysShown: boolean;\n showResults: boolean;\n inputHasFocus: boolean;\n searchLoading: boolean;\n mouseClickOnResults: boolean;\n searchField: UntypedFormControl;\n searchForm: UntypedFormGroup;\n translation: Translation;\n searchQuery = '';\n searchResponse: CountedApiResponseModel;\n isLimited = true;\n resultsToShow = SEARCH_CONFIG.RESULTS_TO_SHOW;\n allResults = SEARCH_CONFIG.ALL_RESULTS;\n subscription: Subscription;\n\n constructor(\n private servicesStore: Store,\n private translate: TranslateService,\n private searchCacheStore: Store,\n private router: Router,\n fb: UntypedFormBuilder\n ) {\n this.searchField = new UntypedFormControl();\n this.searchForm = fb.group({ search: this.searchField });\n this.searchResponse = new CountedApiResponseModel([], 0);\n this.showResults = false;\n this.inputHasFocus = false;\n this.mouseClickOnResults = false;\n this.searchLoading = false;\n this.subscription = this.servicesStore\n .select(fromShared.selectSearchServicesData)\n .subscribe((result) => (this.translation = result));\n }\n\n @Input()\n set resultsEnabled(resultsAllwaysShown: boolean) {\n this.resultsAllwaysShown = resultsAllwaysShown;\n }\n\n ngOnInit() {\n this.setupSearchBarListener();\n this.fetchAllServices();\n }\n\n private fetchAllServices() {\n this.allServices = [];\n forkJoin([\n this.translate.get('SERVICE_CATEGORY.DRIVER_LICENSE.ALL_SUBSERVICES'),\n this.translate.get('SERVICE_CATEGORY.TACHOGRAPH.ALL_SUBSERVICES'),\n this.translate.get('SERVICE_CATEGORY.ADR.ALL_SUBSERVICES'),\n this.translate.get('SERVICE_CATEGORY.VEHICLE_REGISTRATION.ALL_SUBSERVICES')\n ])\n .pipe(\n map((category) => {\n category.forEach((element) => {\n element.forEach((service) => {\n this.allServices.push(...service['services']);\n });\n });\n })\n )\n .subscribe(() => {});\n }\n\n ngAfterViewInit(): void {\n if (this.requestFocus) {\n this.setFocusOnSearchInput();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n private setupSearchBarListener() {\n this.searchField.valueChanges\n .pipe(\n shareReplay(),\n filter((query) => query.length > 2),\n tap(() => {\n this.searchLoading = true;\n }),\n debounceTime(400),\n map((query) => query.toLowerCase()),\n tap((query) =>\n this.searchCacheStore.dispatch(new SearchActions.LoadingResultsSearchAction(query))\n ),\n switchMap((query) => this.makeSearch(query))\n )\n .subscribe((result) => {\n this.searchField.value.length > 2\n ? this.setAnalyticsData(this.searchField.value, result.totalCount)\n : null;\n this.isLimited = true;\n this.searchLoading = false;\n this.searchResponse = result;\n this.searchCacheStore.dispatch(new SearchActions.SetResultsSearchAction(result));\n });\n\n this.searchField.valueChanges.pipe(map((query) => query.length)).subscribe((length) => {\n this.showResults = length > 2;\n });\n }\n\n onFocus() {\n this.inputHasFocus = true;\n this.mouseClickOnResults = true;\n }\n\n onBlur() {\n this.inputHasFocus = false;\n }\n\n onClickOutside() {\n if (!this.inputHasFocus) {\n this.mouseClickOnResults = false;\n }\n }\n\n setAnalyticsData(searchField: string, result: number) {\n window['gtmAnalytics'] = window['gtmAnalytics'] || [];\n window['gtmAnalytics'].push({\n command: 'sendEvent',\n action: 'Search query',\n label: searchField,\n value: result,\n interactive: true\n });\n }\n\n setFocusOnSearchInput() {\n setTimeout(() => this.searchInput.nativeElement.focus());\n }\n\n onShowAll(event) {\n event.stopPropagation();\n this.router.navigate(['/', SEARCH_ROUTE]);\n this.closeEvent.emit(true);\n }\n\n onItemClick() {\n this.closeEvent.emit(true);\n }\n makeSearch(query: string): Observable> {\n const finder = (x: Service) =>\n x.title.toLowerCase().includes(query) ||\n Extensions.depolishify(x.title).toLowerCase().includes(query) ||\n x.description.toLowerCase().includes(query) ||\n Extensions.depolishify(x.description).toLowerCase().includes(query);\n\n const sorter = (a: Service, b: Service) => {\n const maxLength = Math.max(\n a.title.length,\n a.description ? a.description.length : 0,\n b.title.length,\n b.description ? b.description.length : 0\n );\n const penalize = (x: number) => (x < 0 ? x * -maxLength : x);\n\n // FIXME algorytm sortowania jest do poprawy\n // powinien bazowac na sumie punktacji wyznaczanej z liczby i wagi\n // hitow query w tytule, opisie i tagach (i moze jakis arbitralny offset) a niekoniecznie pozycji w stringu\n let w: number, x: number, y: number, z: number;\n\n w =\n penalize(a.title.toLowerCase().indexOf(query)) -\n penalize(b.title.toLowerCase().indexOf(query));\n x =\n penalize(Extensions.depolishify(a.title).toLowerCase().indexOf(query)) -\n penalize(Extensions.depolishify(b.title).toLowerCase().indexOf(query));\n y =\n penalize(a.description.toLowerCase().indexOf(query)) -\n penalize(b.description.toLowerCase().indexOf(query));\n z =\n penalize(Extensions.depolishify(a.description).toLowerCase().indexOf(query)) -\n penalize(Extensions.depolishify(b.description).toLowerCase().indexOf(query));\n\n return w !== 0 ? w : x !== 0 ? x : y !== 0 ? y : z !== 0 ? z : 0;\n };\n\n const foundServices: Service[] = this.allServices.filter(finder).sort(sorter);\n const foundServicesResponse: CountedApiResponseModel =\n new CountedApiResponseModel(foundServices, foundServices.length);\n\n return of(foundServicesResponse);\n }\n}\n","import { environment } from 'src/environments/environment';\n\nconst BASE_URL = environment.WP_API_HOST;\n\nconst TRANSLATION_SUFFIX = '/infocar/search-section';\n\nexport const SEARCH_CONFIG = {\n API: {\n TRANSLATION_ENDPOINT: `${BASE_URL}${TRANSLATION_SUFFIX}`\n },\n\n RESULTS_TO_SHOW: 5,\n ALL_RESULTS: undefined\n};\n","export const STC_V1 = 'application/vnd.pwpw.infocar.stc.public.v1+json';\nexport const STC_V2 = 'application/vnd.pwpw.infocar.stc.public.v2+json';\nexport const DEALS_V1 = 'application/vnd.pwpw.infocar.deals.public.v1+json';\nexport const ACCOUNTS_V1 = 'application/vnd.pwpw.infocar.accounts.public.v1+json';\nexport const ACCOUNTS_V2 = 'application/vnd.pwpw.infocar.accounts.public.v2+json';\n","import { OVERPAY_RETURN_ROUTE } from './../../applications/stc/overpay-return/consts/overpay-return-routes.const';\nimport {\n FIND_DISTRICT_OFFICE,\n FIND_OSK,\n FIND_WORD\n} from './../../service-category/_consts/service-category-route.const';\nimport { CHECK_EXAM_AVAILABILITY_ROUTE } from './../../applications/drivers-license/_consts/driver-license-routes';\nimport { CHECKING_REGISTRATION_DOCUMENT_STATUS_ROUTE } from './../../applications/vehicle-registration/checking-registration-document-status/_consts/checking-registration-document-status.routes';\nimport { TRAINING_CARD_ROUTE } from './../../applications/training-cards/_consts/training-cards-route.const';\nimport { OBTAIN_TACHOGRAPH_CARD_ROUTE } from 'src/app/application-landing-pages/obtain-tachograph-card/_consts/obtain-tachograph-route.const';\nimport { CHECKING_STC_APPLICATION_STATUS_ROUTE } from 'src/app/applications/stc/checking-stc-application-status/_consts/checking-stc-application-status-route.const';\nimport { LOGIN_ROUTE } from 'src/app/login/_consts/login-route.const';\nimport { MY_ACCOUNT_ROUTE } from 'src/app/my-account/_consts/my-account-route.const';\nimport { NEWS_ROUTE } from 'src/app/news/_consts/new-route.const';\nimport { REGISTRATION_ROUTE } from 'src/app/registration/_consts/registration-routes.const';\nimport { ADR_CLASSES_ROUTE } from 'src/app/service-category/services-info-pages/adr/adr-classes/_const/adr-classes-route';\nimport { DRIVER_LICENSE_CATEGORIES } from 'src/app/service-category/services-info-pages/driver-license/driver-license-categories/_const/driver-license-categories-route.const';\nimport { FAQ_ROUTE } from 'src/app/service-category/services-info-pages/driver-license/faq/_consts/faq-route.const';\nimport { RULES_FOR_OBTAINING_PERMISSIONS_ROUTE } from 'src/app/service-category/services-info-pages/driver-license/rules-for-obtaining-permissions/_consts/rules-for-obtaining-permissions-route.const';\nimport { THEORETICAL_EXAM_INFORMATION_ROUTE } from 'src/app/service-category/services-info-pages/driver-license/theoretical-exam-information/_consts/theoretical-exam-information-route.const';\nimport { CONTACT_ROUTE } from 'src/app/service-category/services-info-pages/tachograph/contact/_consts/contact-route.const';\nimport { LEGAL_REGULATION_ROUTE } from 'src/app/service-category/services-info-pages/tachograph/legal-regulations/_consts/legal-regulations-route.const';\nimport { PARTNERS_ROUTE } from 'src/app/service-category/services-info-pages/tachograph/partners/_consts/partners-route.const';\nimport { VEHICLE_REGISTRATION_FAQ_ROUTE } from 'src/app/service-category/services-info-pages/vehicle-registration/vehicle-registration-faq/_consts/vehicle-registration-faq.route';\nimport { VEHICLE_REGISTRATION_PROCESS_DESCRIPTION_ROUTE } from 'src/app/service-category/services-info-pages/vehicle-registration/vehicle-registration-process-description/_consts/vehicle-registration-process-description.route';\nimport {\n ADR_EXAM_ROUTE,\n ADR_ROUTE,\n CERTIFICATE_RULES_ROUTE,\n COMPLAINT_ROUTE,\n DOCUMENT_INFORMATION_ROUTE,\n DRIVER_LICENSE_PAYMENT,\n DRIVER_LICENSE_ROUTE,\n TACHOGRAPH_ROUTE,\n VEHICLE_REGISTRATION_ROUTE,\n VEHICLE_TEMPORARY_WITHDRAWAL\n} from 'src/app/service-category/_consts/service-category-route.const';\nimport {\n CHECK_PKK_STATUS_ROUTE,\n CHECK_DRIVERS_LICENSE_STATUS_ROUTE,\n DRIVERS_LICENCE_ROUTE\n} from 'src/app/applications/drivers-license/_consts/driver-license-routes';\nimport { ADR_CHECKING_STATUS_ROUTE } from 'src/app/applications/adr/_consts/adr-routes.const';\nimport {\n TERMS_OF_SERVICE_ROUTE,\n ABOUT_US,\n DOWNLOAD_TACHO_APPLICATIONS,\n TACHOGRAPH_UA_FAQ,\n DOWNLOAD_TACHO_FORMS\n} from 'src/app/info-pages/_consts/info-pages-route.const';\nimport {\n WORD_EXAM_PROCESS_ROUTE,\n WORD_EXAM_ROUTE\n} from 'src/app/applications/word-exam-registration/_consts/word-exam-route.const';\nimport { TRAINING_INFO_ROUTE } from 'src/app/applications/training-cards/_consts/training-informaion-route.const';\nimport { DL_LEGAL_REGULATION_ROUTE } from 'src/app/service-category/services-info-pages/driver-license/dl-legal-regulations/_consts/dl-legal-regulations-route.const';\nimport { REPORT_CARD_DAMAGE_OR_LOSS_ROUTE } from 'src/app/applications/stc/report-card-damage-or-loss/_consts/report-card-damage-or-loss-routes.conts';\nimport { RULES_FOR_OBTAINING_PROFESSIONAL_PERMISSIONS_ROUTE } from 'src/app/service-category/services-info-pages/driver-license/rules-for-obtaining-professional-permissions/_consts/rules-for-obtaining-professional-permissions-route.const';\n\nexport const DESTINATION_DICTIONARY = new Map([\n ['tachograph_card', `/${OBTAIN_TACHOGRAPH_CARD_ROUTE}`],\n ['tachograph_check_stc_status', `/${TACHOGRAPH_ROUTE}/${CHECKING_STC_APPLICATION_STATUS_ROUTE}`],\n ['tachograph_document_information', `/${TACHOGRAPH_ROUTE}/${DOCUMENT_INFORMATION_ROUTE}`],\n [\n 'tachograph_report_card_damage_or_loss',\n `/${TACHOGRAPH_ROUTE}/${REPORT_CARD_DAMAGE_OR_LOSS_ROUTE}`\n ],\n ['tachograph_complaint', `/${TACHOGRAPH_ROUTE}/${COMPLAINT_ROUTE}`],\n ['tachograph_legal_regulations', `/${TACHOGRAPH_ROUTE}/${LEGAL_REGULATION_ROUTE}`],\n ['tachograph_contact', `/${TACHOGRAPH_ROUTE}/${CONTACT_ROUTE}`],\n ['forms', `/${TACHOGRAPH_ROUTE}/${DOWNLOAD_TACHO_FORMS}`],\n ['tachograph_partners', `/${TACHOGRAPH_ROUTE}/${PARTNERS_ROUTE}`],\n ['tachograph_test_cards', `/${TRAINING_CARD_ROUTE}/${TRAINING_INFO_ROUTE}`],\n ['tachograph_ua_faq', `/${TACHOGRAPH_ROUTE}/${TACHOGRAPH_UA_FAQ}`],\n [\n 'vehicle_registration_document_information',\n `/${VEHICLE_REGISTRATION_ROUTE}/${DOCUMENT_INFORMATION_ROUTE}`\n ],\n ['vehicle_registration_document_payment', `/${VEHICLE_REGISTRATION_ROUTE}/powod`],\n ['vehicle_registration_faq', `/${VEHICLE_REGISTRATION_ROUTE}/${VEHICLE_REGISTRATION_FAQ_ROUTE}`],\n ['word_egzam', `/${WORD_EXAM_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}`],\n [\n 'vehicle_registration_temporary_withdrawal',\n `/${VEHICLE_REGISTRATION_ROUTE}/${VEHICLE_TEMPORARY_WITHDRAWAL}`\n ],\n [\n 'vehicle_registration_process_description',\n `/${VEHICLE_REGISTRATION_ROUTE}/${VEHICLE_REGISTRATION_PROCESS_DESCRIPTION_ROUTE}`\n ],\n ['adr_document_information', `/${ADR_ROUTE}/${DOCUMENT_INFORMATION_ROUTE}`],\n ['adr_classes', `/${ADR_ROUTE}/${ADR_CLASSES_ROUTE}`],\n ['adr_exam', `/${ADR_ROUTE}/${ADR_EXAM_ROUTE}`],\n ['adr_certificate_rules', `/${ADR_ROUTE}/${CERTIFICATE_RULES_ROUTE}`],\n ['adr_status', `/${ADR_ROUTE}/${ADR_CHECKING_STATUS_ROUTE}`],\n ['driver_license_FAQ', `/${DRIVERS_LICENCE_ROUTE}/${FAQ_ROUTE}`],\n ['driver_license_legal_regulation', `/${DRIVERS_LICENCE_ROUTE}/${DL_LEGAL_REGULATION_ROUTE}`],\n ['driver_license_document_information', `/${DRIVER_LICENSE_ROUTE}/${DOCUMENT_INFORMATION_ROUTE}`],\n ['driver_license_categories', `/${DRIVERS_LICENCE_ROUTE}/${DRIVER_LICENSE_CATEGORIES}`],\n [\n 'driver_license_theoretical_exam_information',\n `/${DRIVER_LICENSE_ROUTE}/${THEORETICAL_EXAM_INFORMATION_ROUTE}`\n ],\n [\n 'driver_license_rules_for_obtaining_permissions',\n `/${DRIVER_LICENSE_ROUTE}/${RULES_FOR_OBTAINING_PERMISSIONS_ROUTE}`\n ],\n [\n 'driver_license_rules_for_obtaining_professional_permissions',\n `/${DRIVER_LICENSE_ROUTE}/${RULES_FOR_OBTAINING_PROFESSIONAL_PERMISSIONS_ROUTE}`\n ],\n ['driver_license_word_exam', `/${DRIVER_LICENSE_ROUTE}/${WORD_EXAM_PROCESS_ROUTE}`],\n [\n 'driver_license_word_exam_check_availability',\n `/${DRIVER_LICENSE_ROUTE}/${CHECK_EXAM_AVAILABILITY_ROUTE}`\n ],\n ['login', `/${LOGIN_ROUTE}`],\n ['register', `/${REGISTRATION_ROUTE}`],\n ['regulations', `/${TERMS_OF_SERVICE_ROUTE}`],\n ['account', `${MY_ACCOUNT_ROUTE}`],\n ['news', `${NEWS_ROUTE}`],\n ['terms_of_service', `${TERMS_OF_SERVICE_ROUTE}`],\n ['about_page', `${ABOUT_US}`],\n ['applications', `${DOWNLOAD_TACHO_APPLICATIONS}`],\n ['applications_article', `aktualnosci/2315`],\n ['word_price_article', `aktualnosci/2323`],\n ['tacho_card_info_article', `aktualnosci/2324`],\n ['g2v2_info_article', `aktualnosci/2325`],\n ['new_stc_applications_article', `aktualnosci/2326`],\n ['basket_disable_article', `aktualnosci/2327`],\n ['duedate_article', `aktualnosci/2317`],\n ['covid_article', `aktualnosci/2316`],\n ['word_informations', `/egzamin_prawa_jazdy`],\n ['check-pkk-status', `/${DRIVER_LICENSE_ROUTE}/${CHECK_PKK_STATUS_ROUTE}`],\n [\n 'check-drivers-license-status',\n `/${DRIVER_LICENSE_ROUTE}/${CHECK_DRIVERS_LICENSE_STATUS_ROUTE}`\n ],\n [\n 'check_registration_document_status',\n `/${VEHICLE_REGISTRATION_ROUTE}/${CHECKING_REGISTRATION_DOCUMENT_STATUS_ROUTE}`\n ],\n ['contact', `/${CONTACT_ROUTE}`],\n ['find_osk', `/${DRIVERS_LICENCE_ROUTE}/${FIND_OSK}`],\n ['find_word', `/${DRIVERS_LICENCE_ROUTE}/${FIND_WORD}`],\n ['find_district_office', `/${DRIVERS_LICENCE_ROUTE}/${FIND_DISTRICT_OFFICE}`],\n ['driver-license-payments', `/${DRIVERS_LICENCE_ROUTE}/${DRIVER_LICENSE_PAYMENT}`]\n]);\n","import { ElementRef, Optional, Input, Directive, OnChanges } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Directive({\n selector: '[externalLink]',\n standalone: true\n})\nexport class ExternalLinkDirective implements OnChanges {\n @Input() externalLink: string;\n\n constructor(private el: ElementRef, @Optional() private link: RouterLink) { }\n\n ngOnChanges() {\n if (!this.link || !this.externalLink) {\n return;\n }\n this.el.nativeElement.href = this.link.href = this.externalLink;\n\n // Replace onClick\n this.link.onClick = (...args: any[]) => {\n return true;\n };\n }\n}\n","import { Router } from '@angular/router';\nimport { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appInternalLink]',\n standalone: true\n})\nexport class InternalLinkDirective {\n constructor(private router: Router) { }\n\n @HostListener('click', ['$event'])\n onSectionClick(event) {\n if (event.target.tagName.toLowerCase() === 'a') {\n if (event.target.getAttribute('link')) {\n event.preventDefault();\n const url = event.target.getAttribute('link');\n this.router.navigateByUrl(url);\n }\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[appPreventDoubleClick]',\n standalone: true\n})\nexport class PreventDoubleClickDirective implements OnInit, OnDestroy {\n @Input()\n throttleTime = 2000;\n\n @Output()\n throttledClick = new EventEmitter();\n\n private clicks = new Subject();\n private subscription: Subscription;\n\n constructor() { }\n\n ngOnInit() {\n this.subscription = this.clicks\n .pipe(throttleTime(this.throttleTime))\n .subscribe((e) => this.emitThrottledClick(e));\n }\n\n emitThrottledClick(e) {\n this.throttledClick.emit(e);\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n @HostListener('click', ['$event'])\n clickEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n this.clicks.next(event);\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appTriggerClick]',\n standalone: true\n})\nexport class TriggerClickDirective {\n constructor() { }\n\n @HostListener('keydown.enter', ['$event'])\n onElementClick(event) {\n event.target.click();\n }\n}\n","import { transition, style, animate } from '@angular/animations';\n\nconst FADEOUT_DURATION = 400;\nexport const FADEOUT_ANIMATION = [\n transition(':leave', [style({ opacity: 1 }), animate(FADEOUT_DURATION, style({ opacity: 0 }))])\n];\n","import { AuthService } from 'src/app/core/auth';\nimport { Extensions } from 'src/app/shared/extensions/extensions';\nimport { Router } from '@angular/router';\nimport { Component } from '@angular/core';\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-created-paper-application-toast',\n templateUrl: './created-paper-application-toast.component.html',\n styleUrls: ['./created-paper-application-toast.component.scss']\n})\nexport class CreatedPaperApplicationToastComponent extends Toast {\n\n cardType: string;\n isComplaint: boolean = false;\n constructor(protected toastrService: ToastrService, public toastPackage: ToastPackage, private router: Router, private auth: AuthService) {\n super(toastrService, toastPackage);\n if(!!Extensions.getCookie('cardType')) {\n this.cardType = Extensions.getCookie('cardType');\n }\n\n if(!!Extensions.getCookie('complaintId')) {\n this.isComplaint = true;\n }\n }\n\n rerouteToApplication(event: Event) {\n event.stopPropagation();\n this.auth.loginAnonymousUser();\n this.router.navigateByUrl(Extensions.replacePlaceholders(this.toastPackage.config.payload, [Extensions.getCookie('applicationId')]));\n this.toastPackage.triggerAction();\n this.remove();\n }\n}\n","
\n
\n
\n {{ (isComplaint ? ('TOASTR.STC.CREATED_PAPER_COMPLAINT.TITLE' | translate) : ('TOASTR.STC.CREATED_PAPER_APPLICATION.TITLE' | translate)) + (isComplaint ? (('TOASTR.STC.CREATED_PAPER_COMPLAINT.' + cardType) | translate) : (('TOASTR.STC.CREATED_PAPER_APPLICATION.' + cardType) | translate))}}\n
\n\n {{\n isComplaint ? ('TOASTR.STC.CREATED_PAPER_COMPLAINT.SUBMIT_LABEL' | translate) : ('TOASTR.STC.CREATED_PAPER_APPLICATION.SUBMIT_LABEL' | translate)\n }}\n
\n
\n ","
\n
\n
\n {{ 'TOASTR.STC.AUTOSAVE_INFO.AUTOSAVE' | translate }}\n
\n
\n
\n

\n {{ 'TOASTR.STC.AUTOSAVE_INFO.TITLE' | translate }}\n

\n

\n {{ 'TOASTR.STC.AUTOSAVE_INFO.CONTENT' | translate }}\n {{ 'TOASTR.STC.AUTOSAVE_INFO.DRAFTS' | translate }}\n

\n

\n {{'TOASTR.STC.AUTOSAVE_INFO.CONTENT_ANONYMOUS' | translate}}\n

\n {{\n 'TOASTR.STC.AUTOSAVE_INFO.SUBMIT_LABEL' | translate\n }}\n
\n
\n","import { AuthService } from './../../../core/auth/auth.service';\nimport { Component } from '@angular/core';\nimport { ToastPackage, Toast, ToastrService } from 'ngx-toastr';\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\nimport { AUTOSAVE_CONFIG } from './_consts/autosave.config';\nimport { take } from 'rxjs/operators';\nimport { Extensions } from '../../extensions/extensions';\n\n@Component({\n selector: 'app-first-time-autosave-toastr',\n templateUrl: './first-time-autosave-toastr.component.html',\n styleUrls: ['./first-time-autosave-toastr.component.scss'],\n animations: [\n trigger('flyInOut', [\n state(\n 'inactive',\n style({\n opacity: 0\n })\n ),\n transition(\n 'inactive => active',\n animate(\n '400ms ease-out',\n keyframes([\n style({\n opacity: 0\n }),\n style({\n opacity: 1\n })\n ])\n )\n ),\n transition(\n 'active => removed',\n animate(\n '400ms ease-out',\n keyframes([\n style({\n opacity: 1\n }),\n style({\n opacity: 0\n })\n ])\n )\n )\n ])\n ]\n})\nexport class FirstTimeAutosaveToastrComponent extends Toast {\n isAnonymous: boolean;\n constructor(protected toastrService: ToastrService, public toastPackage: ToastPackage, private auth: AuthService) {\n super(toastrService, toastPackage);\n\n this.auth.user$\n .pipe(\n take(1)\n )\n .subscribe((result) => {\n this.isAnonymous = !result?.uuid && (!!Extensions.getCookie('anonymousToken') || !!sessionStorage.getItem('anonymousToken'));\n });\n }\n\n submitAutosave(event: Event) {\n event.stopPropagation();\n localStorage.setItem(\n AUTOSAVE_CONFIG.IS_TOASTR_ACCEPTED.key,\n AUTOSAVE_CONFIG.IS_TOASTR_ACCEPTED.value.true\n );\n this.toastPackage.triggerAction();\n this.remove();\n }\n}\n","import { TACHOGRAPH_ROUTE } from 'src/app/service-category/_consts/service-category-route.const';\nimport { STC_COMPLAINT_APPLICATION_ROUTE } from 'src/app/application-landing-pages/complaint/_consts/complaint-route.const';\nimport { HttpErrorResponse, HttpParams } from '@angular/common/http';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport fileType from 'file-type';\nimport { ToastrService } from 'ngx-toastr';\nimport { COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from 'src/app/applications/stc/company-card-application/personal-data/_consts/personal-data.route.const';\nimport { COMPANY_CARD_APPLICATION_ROUTE } from 'src/app/applications/stc/company-card-application/_consts/company-card-application.route.const';\nimport { CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from 'src/app/applications/stc/control-card-application/personal-data/_consts/personal-data.route.const';\nimport { CONTROL_CARD_APPLICATION_ROUTE } from 'src/app/applications/stc/control-card-application/_consts/control-card-application.route.const';\nimport { DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from 'src/app/applications/stc/driver-card-application/personal-data/_consts/personal-data.route.const';\nimport { DRIVER_CARD_APPLICATION_ROUTE } from 'src/app/applications/stc/driver-card-application/_consts/driver-card-application.route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from 'src/app/applications/stc/temporary-driver-card-application/personal-data/_consts/personal-data.route.const';\nimport { TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE } from 'src/app/applications/stc/temporary-driver-card-application/_consts/temporary-driver-card-application.route.const';\nimport { WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE } from 'src/app/applications/stc/workshop-card-application/personal-data/_consts/personal-data.route.const';\nimport { WORKSHOP_CARD_APPLICATION_ROUTE } from 'src/app/applications/stc/workshop-card-application/_consts/workshop-card-application.route.const';\nimport { STC_TACHOGRAPH_APPLICATIONS_ROUTE } from 'src/app/applications/stc/_consts/stc-route.const';\nimport { CreatedPaperApplicationToastComponent } from '../components/created-paper-application-toast/created-paper-application-toast.component';\nimport { FirstTimeAutosaveToastrComponent } from '../components/first-time-autosave-toastr/first-time-autosave-toastr.component';\nimport { ApplicationDto } from '../models/applications/application-dto.model';\n\nexport const SECOND = 1000;\nexport const MINUTE = 60 * SECOND;\nexport const HOUR = 60 * MINUTE;\nexport const DAY = 24 * HOUR;\n\nexport abstract class Extensions {\n public static clamp(number: number, lower: number, upper: number): number {\n if (isNaN(number) || isNullOrUndefined(number)) {\n throw new Error('The number argument must be a proper number');\n }\n if (isNaN(lower) || isNaN(upper) || isNullOrUndefined(lower) || isNullOrUndefined(upper)) {\n throw new Error('Bounds must be proper numbers');\n }\n return number <= upper ? (number >= lower ? number : lower) : upper;\n }\n\n public static zip(arrays: Array>, labels: Array): Array {\n if (\n isNullOrUndefined(arrays) ||\n isNullOrUndefined(labels) ||\n arrays.length === 0 ||\n labels.length === 0\n ) {\n return null;\n }\n\n if (arrays.length !== labels.length) {\n throw new Error('Number of arrays must be equal to number of labels');\n }\n\n const length = arrays[0].length;\n arrays.forEach((array: Array) => {\n if (isNullOrUndefined(array)) {\n throw new Error('Arrays to zip must all be defined');\n }\n if (array.length !== length) {\n throw new Error('Arrays must be of equal length');\n }\n });\n\n const result = [];\n for (let elementIndex = 0; elementIndex < length; elementIndex++) {\n const item = {};\n for (let labelIndex = 0; labelIndex < labels.length; labelIndex++) {\n item[labels[labelIndex]] = arrays[labelIndex][elementIndex];\n }\n result.push(item);\n }\n return result;\n }\n\n public static regExpFromPathWithParams(path: string): RegExp {\n if (isNullOrUndefined(path)) {\n throw new Error('Path must be defined');\n }\n return new RegExp(path.replace(/:\\w+/g, '[^/]+'));\n }\n\n public static replacePlaceholders(path: string, args: string[]): string {\n if (isNullOrUndefined(path)) {\n throw new Error('Path must be defined');\n }\n\n if (isNullOrUndefined(args)) {\n throw new Error('Arguments must be defined');\n }\n\n args.forEach((arg: string) => {\n path = path.replace(/:\\w+/, arg);\n });\n return path;\n }\n\n public static simpleObjectsEqual(object: any, other: any): boolean {\n if ((object === null && other === null) || (object === undefined && other === undefined)) {\n return true;\n }\n\n if (object === null || object === undefined || other === null || other === undefined) {\n return false;\n }\n\n if (!(object instanceof Object) && !(other instanceof Object)) {\n return object === other;\n }\n\n if (!(object instanceof Object) || !(other instanceof Object)) {\n return false;\n }\n\n const entries1 = Object.entries(object);\n const entries2 = Object.entries(other);\n\n if (entries1.length !== entries2.length) {\n return false;\n }\n\n for (let i = 0; i < entries1.length; i++) {\n const [key1, value1] = entries1[i];\n const [key2, value2] = entries2[i];\n if (key1 !== key2 || value1 !== value2) {\n return false;\n }\n }\n\n return true;\n }\n\n public static scrollToFirstInvalidInput() {\n setTimeout(() => {\n const firstElementWithError = document.querySelector(\n 'div.custom-error-container, app-form-checkbox.invalid, app-selectable-input.invalid, textarea.invalid, input.invalid, select.invalid, app-form-input.invalid, app-attachments-input.invalid, label.invalid'\n );\n if (firstElementWithError) {\n firstElementWithError.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n }, 0);\n }\n\n public static deepMerge(...args) {\n // Variables\n const target = {};\n\n // Merge the object into the target object\n const merger = (obj) => {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n if (Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n // If we're doing a deep merge and the property is an object\n target[prop] = Extensions.deepMerge(target[prop], obj[prop]);\n } else {\n // Otherwise, do a regular merge\n target[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for (let i = 0; i < arguments.length; i++) {\n merger(arguments[i]);\n }\n\n return target;\n }\n\n public static depolishify(text: string): string {\n const translate_regex = /[ąćęłńóśźżĄĆĘŁŃÓŚŹŻ]/g;\n const translate = {\n ą: 'a',\n ć: 'c',\n ę: 'e',\n ł: 'l',\n ń: 'n',\n ó: 'o',\n ś: 's',\n ź: 'z',\n ż: 'z',\n Ą: 'A',\n Ć: 'C',\n Ę: 'E',\n Ł: 'L',\n Ń: 'N',\n Ó: 'O',\n Ś: 'S',\n Ź: 'Z',\n Ż: 'Z'\n };\n return text.replace(translate_regex, (match) => translate[match]);\n }\n\n public static trimForm(formGroup: UntypedFormGroup): void {\n Object.keys(formGroup.controls).forEach((key) => {\n if (formGroup.get(key)) {\n if (formGroup.get(key)['controls']) {\n Extensions.trimForm(formGroup.get(key) as UntypedFormGroup);\n } else {\n const formValue = formGroup.get(key).value;\n if (formValue && typeof formValue === 'string') {\n formGroup.get(key).setValue(formValue.trim());\n }\n }\n }\n });\n }\n\n public static setCookie(name: string, val: string, isExpiring?: boolean) {\n const value = val;\n let expires = '';\n\n if (isExpiring) {\n const date = new Date();\n date.setTime(date.getTime() + 1 * DAY);\n expires = `expires=+${date.toUTCString()};`;\n }\n\n // Set cookie\n document.cookie = name + '=' + value + '; ' + expires + ' path=/';\n }\n\n public static getCookie(name: string) {\n const value = '; ' + document.cookie;\n const parts = value.split('; ' + name + '=');\n\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n } else {\n return null;\n }\n }\n\n public static async checkIfMimeTypeAllowedToOpenCropperModal(\n file: File\n ): Promise<{ isAllowed: boolean; mimeType: string }> {\n const notAllowedMimes = ['application/pdf', 'image/tiff'];\n let isAllowed;\n let fileMime;\n await new Promise((resolve) => {\n const blob = file.slice(0, fileType.minimumBytes);\n\n const reader = new FileReader();\n reader.onloadend = function (e) {\n // @ts-ignore\n const bytes = new Uint8Array(e.target.result);\n fileMime = fileType(bytes).mime;\n\n if (notAllowedMimes.includes(fileMime)) {\n isAllowed = false;\n } else {\n isAllowed = true;\n }\n\n resolve(isAllowed);\n };\n reader.readAsArrayBuffer(blob);\n });\n return { isAllowed: isAllowed, mimeType: fileMime };\n }\n\n public static base64toBlob(b64Data) {\n const byteString = atob(b64Data);\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab]);\n }\n\n public static base64toArrayBuffer(b64Data) {\n const byteString = atob(b64Data);\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n return ab;\n }\n\n public static getWordExamCandidateMaturityDate(birthDate: Date): Date {\n return new Date(\n Date.UTC(\n birthDate.getUTCFullYear() + 18,\n birthDate.getUTCMonth(),\n birthDate.getUTCDate() - 30,\n 0,\n 0,\n 0\n )\n );\n }\n\n public static checkIfWordExamCandidateIsMature(birthDate: Date): boolean {\n const maturityDate = Extensions.getWordExamCandidateMaturityDate(birthDate);\n let currentDate = new Date();\n currentDate = new Date(\n Date.UTC(\n currentDate.getUTCFullYear(),\n currentDate.getUTCMonth(),\n currentDate.getUTCDate(),\n 0,\n 0,\n 0\n )\n );\n return currentDate >= maturityDate;\n }\n}\n\nexport function dateFromZeroYear(year, month, day) {\n month = month !== 0 ? month - 1 : month; /* js Date month counting from zero. */\n const zDate = new Date(year, month, day);\n zDate.setFullYear(year);\n return zDate;\n}\n\nexport const nameof = (name: keyof T) => name;\n\nexport function openCustomToastr(_toastr: ToastrService) {\n const options = { ..._toastr.toastrConfig };\n options.toastComponent = FirstTimeAutosaveToastrComponent;\n options.disableTimeOut = true;\n options.tapToDismiss = false;\n const toastr = _toastr.show('', '', options);\n return toastr;\n}\n\nexport function openAnonymousPaperApplicationToastr(loggedUser: string, toast: ToastrService) {\n if(!loggedUser && !!Extensions.getCookie('anonymousToken') && !!Extensions.getCookie('ownerId')) {\n let applicationTypeRoute, applicationParametrizedRoute;\n\n switch(Extensions.getCookie('cardType')) {\n case ApplicationDto.TypeEnum.COMPANYCARD: \n applicationTypeRoute = COMPANY_CARD_APPLICATION_ROUTE;\n applicationParametrizedRoute = COMPANY_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE;\n break;\n case ApplicationDto.TypeEnum.CONTROLCARD:\n applicationTypeRoute = CONTROL_CARD_APPLICATION_ROUTE;\n applicationParametrizedRoute = CONTROL_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE;\n break;\n case ApplicationDto.TypeEnum.DRIVERCARD:\n applicationTypeRoute = DRIVER_CARD_APPLICATION_ROUTE;\n applicationParametrizedRoute = DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE;\n break;\n case ApplicationDto.TypeEnum.TEMPORARYDRIVERCARD:\n applicationTypeRoute = TEMPORARY_DRIVER_CARD_APPLICATION_ROUTE;\n applicationParametrizedRoute = TEMPORARY_DRIVER_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE;\n break;\n case ApplicationDto.TypeEnum.WORKSHOPCARD:\n applicationTypeRoute = WORKSHOP_CARD_APPLICATION_ROUTE;\n applicationParametrizedRoute = WORKSHOP_CARD_APPLICATION_PERSONAL_DATA_PARAMETRIZED_ROUTE;\n break;\n }\n\n const isComplaint = !!Extensions.getCookie('complaintId');\n\n const options = { ...toast.toastrConfig };\n const route = `${isComplaint ? (TACHOGRAPH_ROUTE + '/' + STC_COMPLAINT_APPLICATION_ROUTE) : STC_TACHOGRAPH_APPLICATIONS_ROUTE}/${applicationTypeRoute}/${applicationParametrizedRoute}`;\n options.payload = route;\n options.toastComponent = CreatedPaperApplicationToastComponent;\n options.disableTimeOut = true;\n options.timeOut = 0;\n const toastr = toast.show('Masz niedokończony wniosek o kartę przedsiębiorstwa.', 'Przejdź do kontynuowania wypełniania wniosku', options);\n\n return toastr;\n }\n}\n\nexport function isNullOrUndefined(value: any) {\n return value === null || value === undefined;\n}\n\nexport class HttpParamsBuilder {\n private _params: HttpParams;\n constructor() {\n this._params = new HttpParams();\n }\n\n public set(param: string, value: string): HttpParamsBuilder {\n if (!isNullOrUndefined(param) && !isNullOrUndefined(value)) {\n this._params = this._params.set(param, value);\n }\n return this;\n }\n\n public build(): HttpParams {\n return this._params;\n }\n}\n\nexport function customErrorHandler(\n response: HttpErrorResponse,\n toastrService: ToastrService,\n translateService: TranslateService\n) {\n const genericUserInfo = `${translateService.instant('TOASTR.ERROR.GENERIC_INFO')} ${\n response.status\n }`;\n\n if (response.error && response.error.errors && response.error.errors.length) {\n response.error.errors.forEach((error, index, arr) => {\n error.userMessage\n ? toastrService.error(error.userMessage)\n : toastrService.error(genericUserInfo);\n });\n } else {\n toastrService.error(genericUserInfo);\n }\n}\n\nexport function sanitizePhoneNumber(phoneNumber: string): string {\n if (phoneNumber === null || phoneNumber === undefined || phoneNumber === '') {\n return phoneNumber;\n }\n return phoneNumber.replace(/[^\\+^0-9]/g, '');\n}\n\nfunction rand(min: number, max: number): number {\n return min + Math.floor((max - min) * Math.random());\n}\n\nfunction dotProduct(array1: number[], array2: number[]) {\n if (array1.length !== array2.length) {\n throw new Error('Arrays have to have equal length to compute their dot product');\n }\n return array1.reduce((acc, value, index) => acc + value * array2[index], 0);\n}\n\nexport function generatePesel(): string {\n const getMonthOffsetForPesel = (century: number): number => {\n switch (century) {\n case 18:\n return 80;\n case 19:\n return 0;\n case 20:\n return 20;\n case 21:\n return 40;\n case 22:\n return 60;\n }\n };\n\n const daysInMonth = (year: number, month: number): number => {\n // JS - month are zero based, but days are 1 based\n // so 1 is first day of month.\n // If we pass 0 day of next month - we get LAST day of month.\n return new Date(year, month + 1, 0).getDate();\n };\n\n const last2Digits = (number: number): string => {\n const n = Math.floor(number % 100);\n return ('00' + n.toString(10)).slice(-2);\n };\n\n const computePeselControlDigit = (rawPesel: string): number => {\n const peselDigits = rawPesel.split('').map((d) => +d);\n const weigths = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];\n let sum = dotProduct(peselDigits, weigths);\n sum = 10 - (sum % 10);\n return sum === 10 ? 0 : sum;\n };\n\n const birthYear = rand(1900, 2009);\n\n const century = Math.floor(birthYear / 100);\n const monthOffset = getMonthOffsetForPesel(century);\n\n const birthMonth = rand(1, 13);\n const birthDay = rand(1, daysInMonth(birthYear, birthMonth) + 1);\n const peselMonth = birthMonth + monthOffset;\n\n const fourRandomDigits = ('0000' + rand(0, 10000).toString(10)).slice(-4);\n\n const rawPesel =\n last2Digits(birthYear) + last2Digits(peselMonth) + last2Digits(birthDay) + fourRandomDigits;\n\n const controlDigit = computePeselControlDigit(rawPesel);\n return rawPesel + controlDigit;\n}\n\nexport function dateFromPesel(pesel: string): Date {\n const centuryForMonthOffset = (month: number): number => {\n if (month >= 80) {\n return 1800;\n } else if (month >= 60) {\n return 2200;\n } else if (month >= 40) {\n return 2100;\n } else if (month >= 20) {\n return 2000;\n } else {\n return 1900;\n }\n };\n\n let year = parseInt(pesel.substring(0, 2), 10);\n let month = parseInt(pesel.substring(2, 4), 10) - 1;\n const day = parseInt(pesel.substring(4, 6), 10);\n\n year += centuryForMonthOffset(month);\n month = month % 20;\n\n return new Date(Date.UTC(year, month, day, 0, 0, 0));\n}\n\nexport function fillFormWithData(form: UntypedFormGroup, data: any) {\n if (!form || !data) {\n return;\n }\n Object.entries(data).forEach(([name, value]: [string, any]) => {\n if (form.controls[name]) {\n form.controls[name].patchValue(value);\n }\n });\n}\n\nexport function generateNip() {\n const taxOfficeId =\n rand(1, 10).toString(10) + rand(1, 10).toString(10) + rand(1, 10).toString(10);\n const rest = ('000000' + rand(0, 1000000).toString(10)).slice(-6);\n const rawNip = taxOfficeId + rest;\n\n const weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n\n let sum = dotProduct(\n rawNip.split('').map((d) => +d),\n weights\n );\n sum = sum % 11;\n\n if (sum === 10) {\n // valid NIP cannot have control sum equal 10\n return generateNip();\n } else {\n return rawNip + sum.toString(10);\n }\n}\n\nexport function setCookieWithHours(cookie: string, expHours: number) {\n let date = new Date();\n date.setTime(date.getTime() + (expHours * 60 * 60 * 1000));\n const expires = \"expires=\" + date.toUTCString();\n document.cookie = cookie + expires + \"; path=/\";\n}\n\nexport function deleteCookie(cName: string) {\n document.cookie = `${cName}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`;\n}\n\nexport function deletePaperApplicationCookies() {\n deleteCookie('anonymousToken');\n deleteCookie('ownerId');\n deleteCookie('applicationId');\n deleteCookie('editableApplication');\n deleteCookie('cardType');\n deleteCookie('complaintId');\n}\n\nexport function deletePaperApplicationSessionStorage() {\n sessionStorage.removeItem('anonymousToken');\n sessionStorage.removeItem('ownerId');\n sessionStorage.removeItem('applicationId');\n sessionStorage.removeItem('editableApplication');\n sessionStorage.removeItem('cardType');\n sessionStorage.removeItem('complaintId');\n}","import { ShippingContactDetailsDto } from 'src/app/shared/models/employee/shipping-contact-details-dto.model';\nimport { FormOfRefundDto } from './form-of-refund-dto.model';\nimport { StatusDto } from './status-dto.model';\n\nexport interface ApplicationDto {\n /**\n * Card shipping contact details\n */\n applicationKind: string;\n cardShippingContactDetails: ShippingContactDetailsDto;\n companyStatementVehicleAllowedToPublicTraffic?: boolean;\n /**\n * Checked when invoice will be electronic\n */\n electronicInvoice?: boolean;\n driverStatementDrivingLicense?: boolean;\n driverStatementNormalResidenceAddressInPoland?: boolean;\n /**\n * Form of refund money\n */\n formOfRefund: FormOfRefundDto;\n /**\n * Application id\n */\n id?: string;\n email?: string;\n applicationId?: string;\n complaintId?: string;\n paper?: boolean;\n /**\n * Reason of application\n */\n reasonType: ApplicationDto.ReasonTypeEnum;\n /**\n * Application serial number\n */\n serialNumber?: number;\n pokeNumber?: number;\n /**\n * Statement confirmation\n */\n statement?: boolean;\n /**\n * Status of application\n */\n status?: StatusDto;\n /**\n * Type of application\n */\n type: ApplicationDto.TypeEnum;\n}\nexport namespace ApplicationDto {\n export type ReasonTypeEnum =\n | 'FIRST_ISSUE'\n | 'CLOSE_EXPIRY_DATE'\n | 'CARD_LOSS'\n | 'CARD_THEFT'\n | 'DAMAGED_OR_DEFECTIVE_CARD'\n | 'INCORRECTLY_ENTERED_OR_LOST_PIN'\n | 'RESIDENCE_COUNTRY_CHANGE'\n | 'ADMINISTRATIVE_DATA_CHANGE'\n | 'PERSONAL_OR_ADMINISTRATIVE_DATA_CHANGE'\n | 'TIME_AND_NON_RENEWABLE_CARD'\n | 'RENEWAL_FOREIGN_CARD'\n | 'FIRST_ISSUE_LOST_FOREIGN_CARD';\n export const ReasonTypeEnum = {\n FIRSTISSUE: 'FIRST_ISSUE' as ReasonTypeEnum,\n CLOSEEXPIRYDATE: 'CLOSE_EXPIRY_DATE' as ReasonTypeEnum,\n CARDLOSS: 'CARD_LOSS' as ReasonTypeEnum,\n CARDTHEFT: 'CARD_THEFT' as ReasonTypeEnum,\n DAMAGEDORDEFECTIVECARD: 'DAMAGED_OR_DEFECTIVE_CARD' as ReasonTypeEnum,\n INCORRECTLYENTEREDORLOSTPIN: 'INCORRECTLY_ENTERED_OR_LOST_PIN' as ReasonTypeEnum,\n RESIDENCECOUNTRYCHANGE: 'RESIDENCE_COUNTRY_CHANGE' as ReasonTypeEnum,\n ADMINISTRATIVEDATACHANGE: 'ADMINISTRATIVE_DATA_CHANGE' as ReasonTypeEnum,\n PERSONALORADMINISTRATIVEDATACHANGE: 'PERSONAL_OR_ADMINISTRATIVE_DATA_CHANGE' as ReasonTypeEnum,\n TIMEANDNONRENEWABLECARD: 'TIME_AND_NON_RENEWABLE_CARD' as ReasonTypeEnum,\n RENEWALFOREIGNCARD: 'RENEWAL_FOREIGN_CARD' as ReasonTypeEnum,\n FIRSTISSUELOSTFOREIGNCARD: 'FIRST_ISSUE_LOST_FOREIGN_CARD' as ReasonTypeEnum\n };\n export type TypeEnum = 'DRIVER_CARD' | 'TEMPORARY_DRIVER_CARD' | 'CONTROL_CARD' | 'COMPANY_CARD' | 'WORKSHOP_CARD';\n export const TypeEnum = {\n DRIVERCARD: 'DRIVER_CARD' as TypeEnum,\n TEMPORARYDRIVERCARD: 'TEMPORARY_DRIVER_CARD' as TypeEnum,\n CONTROLCARD: 'CONTROL_CARD' as TypeEnum,\n COMPANYCARD: 'COMPANY_CARD' as TypeEnum,\n WORKSHOPCARD: 'WORKSHOP_CARD' as TypeEnum\n };\n}\n","import { ApplicationKind } from 'src/app/application-landing-pages/obtain-tachograph-card/_consts/obtain-card.const';\nimport { ApplicationDto } from '../applications/application-dto.model';\nimport { ApplicationBasicDto } from '../applications/application-basic-dto.model';\n\n// export interface PaymentDto {\n// id: string;\n// type: ApplicationDto.TypeEnum;\n// }\n\nexport interface PaymentDto {\n applicationOwnerIdType: string;\n applicationId: string;\n paymentStatus: PaymentStatus;\n type: string;\n billId: {\n id: string;\n };\n}\n\nexport interface PaymentDtoV2 {\n applicationId: string;\n applicationKind: ApplicationKind;\n applicationType: ApplicationDto.TypeEnum;\n complaintId: string;\n emailAddress: string;\n paymentStatus: PaymentStatus;\n reasonType: ApplicationDto.ReasonTypeEnum;\n serialNumber: string;\n}\n\nexport interface PaymentProviderResponse {\n useBillUrl: string;\n}\n\nexport enum PaymentMethodType {\n BLIK,\n E_CARD,\n PAYMENT_CARD,\n TRADITIONAL_PAYMENT\n}\n\nexport enum PaymentStatus {\n AUTHREJECTED = 'AUTHREJECTED',\n AUTHPENDING = 'AUTHPENDING',\n AUTHACCEPTED = 'AUTHACCEPTED',\n REVERSALREJECTED = 'REVERSALREJECTED',\n REVERSALPENDING = 'REVERSALPENDING',\n REVERSALACCEPTED = 'REVERSALACCEPTED',\n EXCEEDED = 'EXCEEDED'\n}\n","export class CountedApiResponseModel {\n public items: T[];\n public totalCount: number;\n\n constructor(items: any[], totalCount: number) {\n this.items = items;\n this.totalCount = totalCount;\n }\n\n static empty(): CountedApiResponseModel {\n return new CountedApiResponseModel([], 0);\n }\n}\n","import { DESTINATION_DICTIONARY } from '../dictionary/route-dictionary.enum';\nimport { PipeTransform, Pipe } from '@angular/core';\n\n@Pipe({\n name: 'destination'\n})\nexport class DestinationPipe implements PipeTransform {\n transform(value, args?: any): string {\n if (value.destination == null) {\n return '/';\n }\n if (!DESTINATION_DICTIONARY.has(value.destination.type)) {\n return '/';\n }\n return DESTINATION_DICTIONARY.get(value.destination.type);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ellipsis'\n})\nexport class EllipsisPipe implements PipeTransform {\n transform(value: string, maxLength: number): string {\n if (value.length > maxLength) {\n return value.slice(0, maxLength) + '...';\n } else {\n return value;\n }\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'safeHtml',\n standalone: true\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitanizer: DomSanitizer) { }\n transform(html, addSvg?: boolean): any {\n if (addSvg) {\n html = `
\n \n \n \n \n \n \n \n \n \n
${html}
`;\n }\n return this.sanitanizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Subscription } from 'rxjs';\n\nexport class Subscriptions {\n private subs: Subscription;\n\n constructor() {\n this.subs = new Subscription();\n }\n\n set next(sub: Subscription) {\n this.subs.add(sub);\n }\n\n public unsubscribe() {\n this.subs.unsubscribe();\n }\n}\n","import { ResultListComponent } from './result-list/result-list.component';\nimport { TextInputComponent } from './text-input/text-input.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SelectableInputComponent } from './selectable-input.component';\nimport { ClickOutsideModule } from 'ng-click-outside';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [SelectableInputComponent, TextInputComponent, ResultListComponent],\n imports: [CommonModule, ClickOutsideModule, TranslateModule, FormsModule],\n exports: [SelectableInputComponent]\n})\nexport class SelectableInputModule {}\n","import { UntypedFormGroup } from '@angular/forms';\nimport { ValidationExtension } from '../../validation/validation-extensions.const';\nimport { ModifierFunction } from './../../models/modifier-function.model';\nimport { Injectable } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, filter, first, firstValueFrom, map, tap } from 'rxjs';\n\nexport function nullReplacer(key, value) {\n if (value === null) {\n return undefined;\n }\n return value;\n}\n\nexport interface SubmitOptions {\n updateValueAndValidity?: boolean;\n}\n\nexport interface FormValidation {\n formGroupName: string;\n formFields: any;\n}\n\nconst defaultSubmitOptions: SubmitOptions = { updateValueAndValidity: true };\n\n@Injectable()\nexport abstract class BaseFormBinderService {\n protected form: UntypedFormGroup;\n protected submitted = false;\n\n constructor() {}\n\n protected abstract createForm(fieldValidations?: FormValidation, formGroupNames?: any): UntypedFormGroup;\n\n public build(staticContent?: any) {}\n\n public bindForm(fieldValidations?: FormValidation, formGroupNames?: any) {\n this.form = this.createForm(fieldValidations, formGroupNames);\n return this.form;\n }\n\n getForm() {\n return this.form;\n }\n\n submit(opt?: SubmitOptions) {\n const options = { ...defaultSubmitOptions, ...opt };\n this.submitted = true;\n this.submitFormGroup(this.form, options);\n }\n\n private submitFormGroup(formGroup: UntypedFormGroup, options: SubmitOptions) {\n for (const i in formGroup.controls) {\n if (formGroup.controls[i] instanceof UntypedFormGroup) {\n this.submitFormGroup(formGroup.controls[i] as UntypedFormGroup, options);\n } else {\n formGroup.controls[i].markAsTouched();\n if (options.updateValueAndValidity) {\n formGroup.controls[i].updateValueAndValidity();\n }\n }\n }\n }\n\n unsubmit() {\n this.submitted = false;\n }\n\n isSubmitted() {\n return this.submitted;\n } \n \n async isValid(): Promise { \n return new Promise((resolve) => {\n this.form.statusChanges\n .pipe(\n debounceTime(300),\n distinctUntilChanged(),\n filter((status) => status !== 'PENDING'),\n first(),\n map((status) => status === 'VALID'),\n tap((isValid) => {\n resolve(isValid);\n })\n )\n .subscribe();\n \n this.form.updateValueAndValidity();\n });\n }\n \n checkIfFormHasErrors(errors: string[]): boolean {\n let invalid = false;\n errors.forEach((value) => {\n if (this.form.hasError(value)) {\n invalid = true;\n }\n });\n return invalid;\n }\n\n checkIfControlIsInvalid(controlName: string): boolean {\n return (\n (this.form.controls[controlName].touched || this.submitted) &&\n this.form.controls[controlName].invalid\n );\n }\n\n checkIfControlHasError(controlName: string, error: string) {\n return (\n (this.form.controls[controlName].touched || this.submitted) &&\n this.form.controls[controlName].hasError(error)\n );\n }\n\n checkIfControlHasErrors(controlName: string, errors: string[]) {\n let invalid = false;\n errors.forEach((value) => {\n if (this.form.controls[controlName].hasError(value)) {\n invalid = true;\n }\n });\n\n return (this.form.controls[controlName].touched || this.submitted) && invalid;\n }\n\n checkIfControlHasErrorsOtherThan(controlName: string, errors: string[]) {\n let hasExcludedError = false;\n errors.forEach((value) => {\n if (this.form.controls[controlName].hasError(value)) {\n hasExcludedError = true;\n }\n });\n\n return (\n (this.form.controls[controlName].touched || this.submitted) &&\n this.form.controls[controlName].invalid &&\n !hasExcludedError\n );\n }\n\n setControl(controlName: string, value: P, modifierFunction?: ModifierFunction) {\n this.set(controlName, value, modifierFunction);\n }\n\n protected set(\n name: string,\n value: P,\n modifierFunction?: ModifierFunction,\n options?: Object\n ) {\n let modifiedValue = value as any as R;\n modifiedValue = this.tryToExecuteModifier(value, modifierFunction);\n this.form.controls[name].patchValue(modifiedValue, options);\n }\n\n protected tryToExecuteModifier(value: P, modifierFunction: ModifierFunction): R {\n let modifiedValue = value as any as R;\n if (modifierFunction && value) {\n try {\n modifiedValue = modifierFunction(value);\n } catch (e) {\n modifiedValue = null;\n console.error(\n `Modifier function exception. Cannot execute modifier on provided value. Intercepted exception: ${e}`\n );\n } finally {\n return modifiedValue;\n }\n }\n return modifiedValue;\n }\n\n getControlValue(controlName: string, modifierFunction?: ModifierFunction): R {\n return this.get(controlName, modifierFunction);\n }\n\n protected getEither(\n firstControlName: string,\n secondControlName: string,\n modifierFunction?: ModifierFunction\n ): R {\n const firstValue = this.get(firstControlName, modifierFunction);\n return firstValue ? firstValue : this.get(secondControlName, modifierFunction);\n }\n\n protected get(controlName: string, modifierFunction?: ModifierFunction): R {\n let value = this.form.controls[controlName].value;\n value = this.tryToExecuteModifier(value, modifierFunction);\n if (value === '') {\n value = null;\n }\n return value;\n }\n\n disable(controlName: string) {\n this.form.controls[controlName].disable();\n }\n\n enable(controlName: string) {\n this.form.controls[controlName].enable();\n }\n\n public setDisabledStateForControlInNestedFormGroup(\n controlName: string,\n formGroupName: string,\n disabledState: boolean\n ): void {\n const control = this.form.get([formGroupName, controlName]);\n if (control) {\n disabledState ? control.disable() : control.enable();\n }\n }\n\n public getControlValueInNestedFormGroup(controlName: string, formGroupName: string): any {\n const control = this.form.get([formGroupName, controlName]);\n if (control) {\n return control.value;\n }\n return null;\n }\n\n public isControlRequired(controlName: string): boolean {\n return (\n controlName &&\n this.form.get(controlName) &&\n ValidationExtension.hasRequiredField(this.form.get(controlName))\n );\n }\n\n protected fillObjectWithFormValues(object: any, formGroupName?: string, maxLength?: number) {\n const formGroup = formGroupName ? this.form.get(formGroupName) : this.form;\n if (!formGroup) {\n return;\n }\n Object.keys(object).forEach((name: string) => {\n object[name] =\n formGroup.get(name) && formGroup.get(name).value\n ? String(formGroup.get(name).value).slice(0, maxLength)\n : null;\n });\n }\n\n protected fillObjectWithMatchingTypeFormValues(\n object: any,\n formGroupName?: string,\n maxLength?: number\n ) {\n const formGroup = formGroupName ? this.form.get(formGroupName) : this.form;\n if (!formGroup) {\n return;\n }\n Object.keys(object).forEach((name: string) => {\n object[name] =\n formGroup.get(name) &&\n (formGroup.get(name).value || typeof formGroup.get(name).value == 'boolean')\n ? formGroup.get(name).value\n : null;\n });\n }\n\n public fillFormWith(object: any, options?: Object) {\n if (!object) {\n return;\n }\n\n Object.entries(object).forEach(([name, value]: [string, any]) => {\n if (this.form.controls[name]) {\n this.set(name, value, null, options);\n }\n });\n }\n}\n","import { NavigationEnd, Router } from '@angular/router';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetaService {\n link: HTMLLinkElement;\n\n constructor(@Inject(DOCUMENT) private dom, private router: Router) {}\n\n createCanonicalURL(url?: string) {\n if (this.link) {\n this.link.remove();\n }\n const canURL = url === undefined ? this.dom.URL.split('?')[0] : url;\n this.link = this.dom.createElement('link');\n this.link.setAttribute('rel', 'canonical');\n this.dom.head.appendChild(this.link);\n this.link.setAttribute('href', canURL);\n\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\n this.link.remove();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n PRIMARY_OUTLET,\n Router,\n RoutesRecognized,\n UrlSegment,\n UrlSegmentGroup,\n UrlTree\n} from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, pairwise } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { STC_TACHOGRAPH_APPLICATIONS_ROUTE } from 'src/app/applications/stc/_consts/stc-route.const';\n\n@Injectable()\nexport class RouteEventsService {\n public previousRoutePath = new BehaviorSubject('');\n public formOriginPath = new BehaviorSubject('');\n\n constructor(private router: Router, private location: Location) {\n this.previousRoutePath.next(this.location.path());\n this.router.events\n .pipe(\n filter((e) => e instanceof RoutesRecognized),\n pairwise()\n )\n .subscribe((event: any[]) => {\n this.previousRoutePath.next(event[0].urlAfterRedirects);\n\n this.setFormOriginPath(router);\n });\n }\n\n private setFormOriginPath(router: Router) {\n const tree: UrlTree = router.parseUrl(this.previousRoutePath.value);\n const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n if (g) {\n const s: UrlSegment[] = g.segments;\n if (s[0] && s[1]) {\n const applicationUrlFragment = s[0].path + '/' + s[1].path;\n if (!STC_TACHOGRAPH_APPLICATIONS_ROUTE.includes(applicationUrlFragment)) {\n this.formOriginPath.next(this.previousRoutePath.value);\n }\n } else {\n this.formOriginPath.next(this.previousRoutePath.value);\n }\n } else {\n this.formOriginPath.next(this.previousRoutePath.value);\n }\n }\n}\n","import { AppVersionChangedModalComponent } from './components/modal/app-version-changed-modal/app-version-changed-modal.component';\nimport { CheckingStcStatusResultComponent } from './components/stc/checking-stc-status-result/checking-stc-status-result.component';\nimport { SelectableInputComponent } from './selectable-input/selectable-input.component';\nimport { ExternalCartListComponent } from './components/external-cart-list/external-cart-list.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgbAccordionModule, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AngularCropperjsModule } from 'angular-cropperjs';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { ClickOutsideModule } from 'ng-click-outside';\nimport { DragScrollComponent } from 'ngx-drag-scroll';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { ToastrModule } from 'ngx-toastr';\nimport { AcceptancesChecboxesComponent } from './components/acceptances-checboxes/acceptances-checboxes.component';\nimport { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\nimport {\n CustomerServiceOfficeInfoBoxComponent\n} from './components/customer-service-office-info-box/customer-service-office-info-box.component';\nimport {\n FirstTimeAutosaveToastrComponent\n} from './components/first-time-autosave-toastr/first-time-autosave-toastr.component';\nimport { BackButtonComponent } from './components/forms/back-button/back-button.component';\nimport { FormCheckboxComponent } from './components/forms/form-checkbox/form-checkbox.component';\nimport { FormInputComponent } from './components/forms/form-input/form-input.component';\nimport { RadioButtonPlaceholderComponent } from './components/forms/radio-button/radio-button-placeholder.component';\nimport { RadioButtonComponent } from './components/forms/radio-button/radio-button.component';\nimport { TextInputPlaceholderComponent } from './components/forms/text-input/text-input-placeholder.component';\nimport { SimpleTextInputComponent } from './components/forms/text-input/text-input.component';\nimport { GhostButtonComponent } from './components/ghost-button/ghost-button.component';\nimport { ImageEditButtonComponent } from './components/image-edit-button/image-edit-button.component';\nimport { InfoBoxComponent } from './components/info-box/info-box.component';\nimport { LegalInfoBoxComponent } from './components/legal-info-box/legal-info-box.component';\nimport { AcceptDateModalComponent } from './components/modal/accept-date-modal/accept-date-modal.component';\nimport {\n ActionConfirmationModalComponent\n} from './components/modal/action-confirmation-modal/action-confirmation-modal.component';\nimport { ChooseEmployeeModalComponent } from './components/modal/choose-employee-modal/choose-employee-modal.component';\nimport {\n CroppedImageInfoModalComponent\n} from './components/modal/cropped-image-info-modal/cropped-image-info-modal.component';\nimport { CroppedImageModalComponent } from './components/modal/cropped-image-modal/cropped-image-modal.component';\nimport {\n DefaultConfirmationModalComponent\n} from './components/modal/default-confirmation-modal/default-confirmation-modal.component';\nimport { DeleteAccountModalComponent } from './components/modal/delete-account-modal/delete-account-modal.component';\nimport { DeleteEmployeeModalComponent } from './components/modal/delete-employee-modal/delete-employee-modal.component';\nimport {\n DraftAlreadyExistsModalComponent\n} from './components/modal/draft-already-exists-modal/draft-already-exists-modal.component';\nimport {\n DrivingLicenceDescriptionModalComponent\n} from './components/modal/driving-licence-description-modal/driving-licence-description-modal.component';\nimport {\n EmployeeDataChangeModalComponent\n} from './components/modal/employee-data-change-modal/employee-data-change-modal/employee-data-change-modal.component';\nimport { InsertionDirective } from './components/modal/insertion.directive';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { SearchModalComponent } from './components/modal/search-modal/search-modal.component';\nimport { SignMethodModalComponent } from './components/modal/sign-method-modal/sign-method-modal.component';\nimport {\n TextInformationModalComponent\n} from './components/modal/text-information-modal/text-information-modal.component';\nimport {\n UnavailableServiceForBusinessModalComponent\n} from './components/modal/unavailable-service-for-business-modal/unavailable-service-for-business-modal.component';\nimport { WizardStepBackModalComponent } from './components/modal/wizard-step-back-modal/wizard-step-back-modal.component';\nimport {\n WordReservationTimedOutModalComponent\n} from './components/modal/word-reservation-timed-out-modal/word-reservation-timed-out-modal.component';\nimport {\n WordSummaryLoaderModalComponent\n} from './components/modal/word-summary-loader-modal/word-summary-loader-modal.component';\nimport { MostPopularServicesComponent } from './components/most-popular-services/most-popular-services.component';\nimport {\n PaginationLimitChooserComponent\n} from './components/pagination-limit-chooser/pagination-limit-chooser.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport {\n PasswordRequirementHintComponent\n} from './components/password-requirement-hint/password-requirement-hint.component';\nimport { RelatedServicesComponent } from './components/related-services/related-services.component';\nimport { ResponsiveCarouselComponent } from './components/responsive-carousel/responsive-carousel.component';\nimport { SearchBarComponent } from './components/search-bar/search-bar.component';\nimport { ServiceLinkComponent } from './components/service-link/service-link.component';\nimport { SocialButtonComponent } from './components/social-button/social-button.component';\nimport { StatementComponent } from './components/statement/statement.component';\nimport { AddressDataComponent } from './components/stc/address-data/address-data.component';\nimport { AttachmentsPaperComponent } from './components/stc/attachments-paper/attachments-paper.component';\nimport { AttachmentComponent } from './components/stc/attachments/attachment/attachment.component';\nimport {\n AttachmentsGroupPlaceholderComponent\n} from './components/stc/attachments/attachments-group-placeholder/attachments-group-placeholder.component';\nimport { AttachmentsInputComponent } from './components/stc/attachments/attachments-input/attachments-input.component';\nimport {\n AttachmentsTypeGroupComponent\n} from './components/stc/attachments/attachments-type-group/attachments-type-group.component';\nimport { AttachmentsComponent } from './components/stc/attachments/attachments.component';\nimport { CompanyCardNumberComponent } from './components/stc/company-card-number/company-card-number.component';\nimport { CompanyDataComponent } from './components/stc/company-data/company-data.component';\nimport { ControlCardNumberComponent } from './components/stc/control-card-number/control-card-number.component';\nimport { DriverCardNumberComponent } from './components/stc/driver-card-number/driver-card-number.component';\nimport { DrivingLicenceDataComponent } from './components/stc/driving-licence-data/driving-licence-data.component';\nimport { PersonDataComponent } from './components/stc/person-data/person-data.component';\nimport { RefundFormDataComponent } from './components/stc/refund-form-data/refund-form-data.component';\nimport { WorkshopCardNumberComponent } from './components/stc/workshop-card-number/workshop-card-number.component';\nimport { StepperComponent } from './components/stepper/stepper.component';\nimport { TeaserBannerComponent } from './components/teaser-banner/teaser-banner.component';\nimport { TwoWayActionBarComponent } from './components/two-way-action-bar/two-way-action-bar.component';\nimport { ExamDaysAccordionComponent } from './components/word-exam-calendar/accordion/exam-days-accordion';\nimport { DatePickerComponent } from './components/word-exam-calendar/date-picker/date-picker.component';\nimport { DateComponent } from './components/word-exam-calendar/date/date.component';\nimport { WordExamCalendarComponent } from './components/word-exam-calendar/word-exam-calendar.component';\nimport { DropZoneDirective } from './directives/drag-drop/drag-drop.directive';\nimport { ExternalLinkDirective } from './directives/external-link/external-link.directive';\nimport { IndicateDirective } from './directives/indicate/indicate.directive';\nimport { InternalLinkDirective } from './directives/internal-link/internal-link.directive';\nimport { PreventDoubleClickDirective } from './directives/prevent-double-click/prevent-double-click.directive';\nimport { TextEllipsisDirective } from './directives/text-ellipsis/text-ellipsis.directive';\nimport { TriggerClickDirective } from './directives/trigger-click/trigger-click.directive';\nimport { DestinationPipe } from './pipes/destination.pipe';\nimport { DisplayEmptyValueAsDashPipe } from './pipes/display-empty-value-as-dash.pipe';\nimport { EllipsisPipe } from './pipes/ellipsis.pipe';\nimport { ReplacePipe } from './pipes/replace.pipe';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport * as fromShared from './store/shared.reducer';\nimport { PromotionalBoxComponent } from './components/promotional-box/promotional-box.component';\nimport { OsMapsComponent } from './components/os-maps/os-maps.component';\nimport { ChoosePaymentMethodComponent } from './components/choose-payment-method/choose-payment-method.component';\nimport { SelectableInputModule } from './selectable-input/selectable-input.module';\nimport { CategoryMenuComponent } from './components/category-menu/category-menu.component';\nimport {\n SignMethodWarningModalComponent\n} from './components/modal/sign-method-warning-modal/sign-method-warning-modal.component';\nimport { AddressPipe } from './pipes/address-pipe/address.pipe';\nimport { TrainingCardInfoComponent } from './components/modal/training-card-info/training-card-info.component';\nimport {\n PaymentConfirmationListComponent\n} from './components/pik/payment-confirmation-list/payment-confirmation-list.component';\nimport { ComplaintDataComponent } from './components/stc/complaint-data/complaint-data.component';\nimport {\n ReportAlreadySubmittedModalComponent\n} from './components/modal/simple-nonblocking-information-modal/attestation-already-submitted-modal/report-already-submitted-modal.component';\nimport {\n ApplicationAlreadySubmittedModalComponent\n} from './components/modal/simple-nonblocking-information-modal/application-already-submitted-modal/application-already-submitted-modal.component';\nimport { PlncurrencyPipe } from './pipes/currency/plncurrency.pipe';\nimport { AgreementsModalComponent } from './components/modal/agreements/agreements-modal.component';\nimport { ExistingPaperModalComponent } from './components/modal/existing-paper-modal/existing-paper-modal.component';\nimport { CreatedPaperApplicationToastComponent } from './components/created-paper-application-toast/created-paper-application-toast.component';\nimport { ShouldKeepAnonymousApplicationModalComponent } from './components/modal/should-keep-anonymous-application-modal/should-keep-anonymous-application-modal.component';\nimport { ApplicationVerificationModalComponent } from './components/modal/application-verification-modal/application-verification-modal.component';\nimport { CardLossInformationModalComponent } from './components/modal/card-loss-information-modal/card-loss-information-modal.component';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { TextMaskModule } from '@matheo/text-mask';\nimport { AutopayTermsComponent } from './components/autopay-terms/autopay-terms.component';\nimport { LoadersComponent } from '../layout/loaders/loaders.component';\n\n@NgModule({\n declarations: [\n DrivingLicenceDescriptionModalComponent,\n DeleteEmployeeModalComponent,\n ChooseEmployeeModalComponent,\n SearchModalComponent,\n SearchBarComponent,\n ModalComponent,\n InsertionDirective,\n ServiceLinkComponent,\n SocialButtonComponent,\n AcceptDateModalComponent,\n StepperComponent,\n ChooseEmployeeModalComponent,\n SignMethodModalComponent,\n DefaultConfirmationModalComponent,\n IndicateDirective,\n DestinationPipe,\n EllipsisPipe,\n BackButtonComponent,\n ReplacePipe,\n WizardStepBackModalComponent,\n PersonDataComponent,\n AddressDataComponent,\n DrivingLicenceDataComponent,\n CompanyDataComponent,\n DriverCardNumberComponent,\n RefundFormDataComponent,\n WorkshopCardNumberComponent,\n ControlCardNumberComponent,\n AttachmentsComponent,\n AttachmentsInputComponent,\n AttachmentComponent,\n StatementComponent,\n TwoWayActionBarComponent,\n AttachmentsTypeGroupComponent,\n AttachmentsGroupPlaceholderComponent,\n AttachmentsTypeGroupComponent,\n CompanyCardNumberComponent,\n AttachmentsPaperComponent,\n UnavailableServiceForBusinessModalComponent,\n MostPopularServicesComponent,\n DraftAlreadyExistsModalComponent,\n ApplicationAlreadySubmittedModalComponent,\n ReportAlreadySubmittedModalComponent,\n RelatedServicesComponent,\n LegalInfoBoxComponent,\n MostPopularServicesComponent,\n TeaserBannerComponent,\n CustomerServiceOfficeInfoBoxComponent,\n TextInformationModalComponent,\n DeleteAccountModalComponent,\n RadioButtonComponent,\n SimpleTextInputComponent,\n TextInputPlaceholderComponent,\n RadioButtonPlaceholderComponent,\n PasswordRequirementHintComponent,\n FirstTimeAutosaveToastrComponent,\n WordSummaryLoaderModalComponent,\n CroppedImageModalComponent,\n ImageEditButtonComponent,\n ResponsiveCarouselComponent,\n CroppedImageInfoModalComponent,\n WordReservationTimedOutModalComponent,\n EmployeeDataChangeModalComponent,\n PaginationComponent,\n PaginationLimitChooserComponent,\n DropZoneDirective,\n ActionConfirmationModalComponent,\n WordExamCalendarComponent,\n ExamDaysAccordionComponent,\n DatePickerComponent,\n DateComponent,\n PromotionalBoxComponent,\n OsMapsComponent,\n ExternalCartListComponent,\n CategoryMenuComponent,\n SignMethodWarningModalComponent,\n AddressPipe,\n TrainingCardInfoComponent,\n PaymentConfirmationListComponent,\n ComplaintDataComponent,\n PlncurrencyPipe,\n AgreementsModalComponent,\n ExistingPaperModalComponent,\n CreatedPaperApplicationToastComponent,\n ShouldKeepAnonymousApplicationModalComponent,\n ApplicationVerificationModalComponent,\n CardLossInformationModalComponent,\n CheckingStcStatusResultComponent,\n AppVersionChangedModalComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n TextMaskModule,\n RouterModule,\n LoadersComponent,\n TranslateModule,\n ClickOutsideModule,\n ReactiveFormsModule,\n AngularCropperjsModule,\n StoreModule.forFeature(fromShared.featureName, fromShared.sharedReducer),\n ToastrModule,\n AngularSvgIconModule,\n DragScrollComponent,\n NgbAccordionModule,\n NgbDatepickerModule,\n InfiniteScrollModule,\n SelectableInputModule,\n PdfViewerModule,\n GhostButtonComponent,\n FormInputComponent,\n FormCheckboxComponent,\n ChoosePaymentMethodComponent,\n AutopayTermsComponent,\n TriggerClickDirective,\n InternalLinkDirective,\n SafeHtmlPipe,\n PreventDoubleClickDirective,\n InfoBoxComponent,\n TextEllipsisDirective,\n ExternalLinkDirective,\n BreadcrumbsComponent,\n DisplayEmptyValueAsDashPipe,\n AcceptancesChecboxesComponent,\n ],\n exports: [\n PdfViewerModule,\n AutopayTermsComponent,\n DrivingLicenceDescriptionModalComponent,\n DefaultConfirmationModalComponent,\n DeleteEmployeeModalComponent,\n AcceptDateModalComponent,\n SearchModalComponent,\n SearchBarComponent,\n GhostButtonComponent,\n ServiceLinkComponent,\n SocialButtonComponent,\n StepperComponent,\n IndicateDirective,\n DestinationPipe,\n EllipsisPipe,\n ReplacePipe,\n FormInputComponent,\n BackButtonComponent,\n BreadcrumbsComponent,\n FormCheckboxComponent,\n WizardStepBackModalComponent,\n DisplayEmptyValueAsDashPipe,\n PersonDataComponent,\n AddressDataComponent,\n DrivingLicenceDataComponent,\n CompanyDataComponent,\n DriverCardNumberComponent,\n RefundFormDataComponent,\n WorkshopCardNumberComponent,\n ControlCardNumberComponent,\n LoadersComponent,\n StatementComponent,\n TranslateModule,\n AttachmentsComponent,\n AttachmentsPaperComponent,\n TwoWayActionBarComponent,\n CompanyCardNumberComponent,\n InfoBoxComponent,\n UnavailableServiceForBusinessModalComponent,\n RelatedServicesComponent,\n LegalInfoBoxComponent,\n MostPopularServicesComponent,\n CustomerServiceOfficeInfoBoxComponent,\n DraftAlreadyExistsModalComponent,\n ApplicationAlreadySubmittedModalComponent,\n ReportAlreadySubmittedModalComponent,\n AcceptancesChecboxesComponent,\n TextInformationModalComponent,\n ExternalLinkDirective,\n RadioButtonComponent,\n SimpleTextInputComponent,\n TextInputPlaceholderComponent,\n RadioButtonPlaceholderComponent,\n PasswordRequirementHintComponent,\n FirstTimeAutosaveToastrComponent,\n PreventDoubleClickDirective,\n WordSummaryLoaderModalComponent,\n CroppedImageModalComponent,\n ResponsiveCarouselComponent,\n CroppedImageInfoModalComponent,\n WordReservationTimedOutModalComponent,\n EmployeeDataChangeModalComponent,\n SafeHtmlPipe,\n InternalLinkDirective,\n TextEllipsisDirective,\n TriggerClickDirective,\n PaginationComponent,\n PaginationLimitChooserComponent,\n WordExamCalendarComponent,\n PromotionalBoxComponent,\n OsMapsComponent,\n ChoosePaymentMethodComponent,\n ExternalCartListComponent,\n SelectableInputComponent,\n CategoryMenuComponent,\n AddressPipe,\n PaymentConfirmationListComponent,\n ComplaintDataComponent,\n PlncurrencyPipe,\n AgreementsModalComponent,\n CheckingStcStatusResultComponent,\n NgbAccordionModule,\n AppVersionChangedModalComponent\n ]\n})\nexport class SharedModule { }\n","import { Translation as SearchServicesTranslation } from '../models/search/translation.model';\nimport { Action } from '@ngrx/store';\nimport { ServiceCategory } from '../models/service-category.model';\nimport { PopularService } from '../models/popular-service.model';\n\nexport interface SharedActions {\n SET_SERVICE_CATEGORIES: string;\n SET_POPULAR_SERVICES: string;\n SET_SEARCH_SERVICES: string;\n}\n\nexport const ActionTypes: SharedActions = {\n SET_SERVICE_CATEGORIES: '[ServiceCategory] Set',\n SET_POPULAR_SERVICES: '[PopularServices] Set',\n SET_SEARCH_SERVICES: '[SearchServices] Set'\n};\n\nexport class SetServiceCategoryAction implements Action {\n type = ActionTypes.SET_SERVICE_CATEGORIES;\n constructor(public payload: ServiceCategory[]) {}\n}\n\nexport class SetPopularServicesAction implements Action {\n type = ActionTypes.SET_POPULAR_SERVICES;\n constructor(public payload: PopularService[]) {}\n}\n\nexport class SetSearchServicesAction implements Action {\n type = ActionTypes.SET_SEARCH_SERVICES;\n constructor(public payload: SearchServicesTranslation) {}\n}\n\nexport type Actions = SetServiceCategoryAction | SetPopularServicesAction | SetSearchServicesAction;\n","import { Translation as SearchServicesTranslation } from '../models/search/translation.model';\nimport * as shared from './shared.action';\nimport { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { ServiceCategory } from '../models/service-category.model';\nimport { PopularService } from '../models/popular-service.model';\n\nexport interface SharedState {\n serviceCategoryData: ServiceCategory[];\n popularServices: PopularService[];\n searchServicesData: SearchServicesTranslation;\n}\n\nexport const sharedInitialState: SharedState = {\n serviceCategoryData: new Array(),\n popularServices: new Array(),\n searchServicesData: null\n};\n\nexport function sharedReducer(\n state: SharedState = sharedInitialState,\n action: shared.Actions\n): SharedState {\n switch (action.type) {\n case shared.ActionTypes.SET_SERVICE_CATEGORIES:\n return Object.assign({}, state, {\n serviceCategoryData: action.payload\n });\n case shared.ActionTypes.SET_POPULAR_SERVICES:\n return Object.assign({}, state, {\n popularServices: action.payload\n });\n\n case shared.ActionTypes.SET_SEARCH_SERVICES:\n return Object.assign({}, state, {\n searchServicesData: action.payload\n });\n default:\n return state;\n }\n}\n\nexport const featureName = 'shared';\n\nexport const selectSharedState = createFeatureSelector(featureName);\n\nexport const selectServicesData = createSelector(\n selectSharedState,\n (state) => state.serviceCategoryData\n);\n\nexport const selectPopularServicesData = createSelector(\n selectSharedState,\n (state) => state.popularServices\n);\n\nexport const selectSearchServicesData = createSelector(\n selectSharedState,\n (state) => state.searchServicesData\n);\n","import { AbstractControl } from '@angular/forms';\n\nexport class ValidationExtension {\n static hasRequiredField(abstractControl: AbstractControl): boolean {\n if (abstractControl.validator) {\n const validator = abstractControl.validator({} as AbstractControl);\n if (validator && validator.required) {\n return true;\n }\n }\n if (abstractControl['controls']) {\n for (const controlName in abstractControl['controls']) {\n if (abstractControl['controls'][controlName]) {\n if (ValidationExtension.hasRequiredField(abstractControl['controls'][controlName])) {\n return true;\n }\n }\n }\n }\n return false;\n }\n}\n","export const ValidationPatterns = {\n requiredCapitalCase: /[A-Z]/,\n requiredOnlyDigit: /^[0-9]*$/,\n requiredLowerCase: /[a-z]/,\n requiredAlphanumeric: /[a-zA-Z0-9]/,\n requiredSpecialCharacter: /[\\s!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]/,\n requiredDigit: /[0-9]/,\n phoneNumber: /^(\\(?\\+?[0-9]{1,4}\\)?)?( ?-?[0-9]{1,3})+$/,\n serialNumber: /^[0-9]{5}[\\/][0-9]{2}[\\/][0-9]{4,7}$/,\n // tslint:disable-next-line\n // NOTE: for future mail generations email: /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/,\n email: /^([A-Za-z0-9\\+\\-\\_\\.]+)@([A-Za-z0-9\\+\\-\\_]+)\\.+([A-Za-z0-9\\+\\-\\_\\.]{2,})$/,\n date: /^((0)[1-9]|[1-2][0-9]|(3)[0-1])(.)(((0)[1-9])|((1)[0-2]))(.)\\d{4}$/,\n pesel: /^(\\d{2})(0\\d|2[1-9]|(1|3)[0-2])([0-2]\\d|3[0-1])(\\d{5})$/,\n characterSensitivePattern: /([^A-Za-z0-9 .\\-,\"'])/g,\n bankAccountNumber:\n /^(?:[0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4})$/,\n polishPostCode: /^[0-9]{2}-[0-9]{3}$/,\n notPolishPostCode: /^[a-zA-Z0-9 /-]+$/,\n driverLicenseNo: /^\\d{5}\\/\\d{2}\\/\\d{4}(\\d{3})?$/,\n pkkValidation: /^(?:[0-9]{18}(1[1-4]|2[1-3]|3[1-4]|4[1-4]|51|61){1})$/,\n pkzValidation: /^(?:[0-9]{18}1(1[1-4]|2[1-4]){1})$/,\n notCyrillicPattern: /^[\\u{00}-\\u{FF}\\u{0100}-\\u{02FF}\\u{0300}-\\u{036F}\\u{1E00}-\\u{1EFF}\\u{0100}-\\u{02FF}\\u{1E00}-\\u{1EFF}\\u{20A0}-\\u{20CF}\\u{0160}-\\u{016F}\\u{017D}-\\u{017E}\\u{011E}-\\u{011F}\\u{0130}-\\u{0131}\\u{015E}-\\u{015F}\\u{0160}-\\u{0161}\\u{017D}-\\u{017E}]*$/u,\n cardNumber: /^(?=.*\\d.*\\d)[0-9A-Za-z-]{16}$/\n};\n","const WP_API_HOST = window['env']['WP_API_HOST'];\nconst BUILD_VERSION = window['env']['BUILD_VERSION'];\nconst ENVIRONMENT_URL = window['env']['ENVIRONMENT_URL'];\n\nexport const environment = {\n BUILD_VERSION: BUILD_VERSION,\n production: window['env']['PRODUCTION'],\n WP_API_INFOCAR_URL: `${WP_API_HOST}/infocar`,\n WP_API_HOST: WP_API_HOST,\n WP_API_INFOCAR_NAMESPACE: '/infocar',\n WP_API_DEFAULT_NAMESPACE: '/wp/v2',\n JSON_SERVER_URL: 'http://localhost:3000',\n SLIDER_ENDPOINT: \"/slider\",\n REDIRECT_URI: window['env']['REDIRECT_URI'],\n SILENT_REFRESH_REDIRECT_URI: window['env']['SILENT_REFRESH_REDIRECT_URI'],\n AUTH_ISSUER: `${ENVIRONMENT_URL}/oauth2/`,\n AUTH_LOGOUT_URL: `${ENVIRONMENT_URL}/oauth2/endsession`,\n MAP_TEMPLATE_STYLES: 'https://cdn.info-car.pl/maps/styles/',\n\n ASSETS: {\n AUTHORIZATION: 'upowaznienia/',\n APPLICATIONS: 'wnioski/',\n BASE: 'assets/',\n DOCUMENTS: 'dokumenty/',\n FONTS: 'fonts/',\n I18N: 'i18n/',\n ICONS: 'icons/',\n IMAGES: 'images/',\n POLITICS: 'polityki/',\n STATEMENTS: 'oswiadczenia/'\n },\n\n AUTOPAY: {\n BASE: ENVIRONMENT_URL,\n COMMITMENTS: '/commitments',\n REGULATIONS: '/regulations',\n SUBSCRIPTION: '/subscription'\n },\n\n PAYMENT_PROCESSOR: {\n BASE: `${ENVIRONMENT_URL}/api/payment-processor`\n },\n\n CMS_API: {\n INFOCAR_URL: `${WP_API_HOST}/infocar`,\n DEFAULT_URL: `${WP_API_HOST}/wp/v2`\n },\n\n INFOBARS_ENDPOINT: `${ENVIRONMENT_URL}/api/infobars/`,\n\n BACKEND_API: {\n ANONYMOUS: '/anonymous',\n OBJECTS: '/objects',\n KIND: '/kind',\n BASE: `${ENVIRONMENT_URL}/api/stc`,\n BASE_ACCOUNT_MANAGMENT: `${ENVIRONMENT_URL}/api/account-management`,\n STC_STATUS: '/check-status',\n EMPLOYERS: '/employers',\n EMPLOYEES: '/employees',\n EMPLOYEES_BY_REASON: '/employees/reason-type',\n EMPLOYEES_SEARCH: '/employees/search',\n EDOHUB: '/edohub',\n REASONS: '/reasons',\n CARDHOLDERS: '/cardholders',\n APPLICATIONS: '/applications',\n PAPER_FORM: '/paper-forms',\n CORRECTIONS: '/corrections',\n ATTACHMENTS: '/attachments',\n REQUIRED_ATTACHMENTS: '/required-attachments',\n CONFIRM_SUMMARY: '/confirm-summary',\n SIGN: '/sign',\n SIGN_QUALIFIED: '/sign-qualified',\n SIGN_STATUS: '/front/sign-status',\n SIGN_LINK: '/link',\n SIGN_CANCEL: '/front/cancel',\n JNLP_URL: '/jnlp-url',\n IS_EPUAP_AVAILABLE: '/is-epuap-available',\n IS_EDO_AVAILABLE: '/is-edo-available',\n CARD_PROPERTIES: '/card-properties',\n DRIVER_CARD: '/driver-card',\n TEMPORARY_DRIVER_CARD: '/temporary-driver-card',\n WORKSHOP_CARD: '/workshop-card',\n CONTROL_CARD: '/control-card',\n COMPANY_CARD: '/company-card',\n SAVE_CARD_SHIPPING_ADDRESS: '/save-card-shipping-address',\n SAVE_SHIPPING_ADDRESSES: '/save-shipping-addresses',\n IS_PAPER: '/is-paper',\n PAYMENTS: '/payments',\n PERSONS: '/persons',\n STATUS: '/status',\n STATUSES: '/statuses',\n BACK: '/back/',\n PERSONAL: '/personal',\n PROCEED_ATTACHMENTS: '/proceed-attachments',\n ACCOUNT_MANAGMENT: '/account-management',\n CLIENT: '/client',\n COMPLAINT: '/complaint',\n COMPLAINT_REASONS: '/complaints/reasons',\n SUMMARY_AGGREGATION: '/summary',\n PAYMENT_MANUAL: '/payment-manual',\n MANUAL_PAYMENT_SUMMARY: '/manual-payment-summary'\n },\n\n CORRECTIONS: {\n ERROR_ENTRIES: '/error-entries',\n ERROR_ENTRIES_FILTERS: {\n PARAM_NAME: 'filter=',\n PERSONAL_DATA: 'onlyApplicantEntries',\n ATTACHMENTS_ONLY: 'onlyAttachments'\n }\n },\n\n ACCOUNT_MANAGEMENT: {\n BASE: `${ENVIRONMENT_URL}/api/account-management`,\n ACCOUNT_MANAGEMENT: '/account-management',\n BUSINESS_CLIENT: '/business-client',\n INDIVIDUAL_CLIENT: '/individual-client',\n CLIENT: '/client',\n AVAILABLE_ACCEPTANCES: '/available-acceptances',\n STC: '/stc',\n RESET_PASSWORD: '/reset-password',\n CHANGE_PASSWORD: '/change-password'\n },\n\n WORD: {\n BASE: `${ENVIRONMENT_URL}/api/word`,\n HOLIDAYS: '/holidays',\n EXAM_SCHEDULE: `${ENVIRONMENT_URL}/api/word-exam-schedule`,\n OSKS: {\n BASE: '/osks',\n CITYID_FILTER: '?cityId='\n },\n RESERVATIONS: {\n BASE: '/reservations',\n PAYMENTS: '/payments',\n CANCEL: '/cancel'\n },\n PDFS: '/pdfs',\n PAYMENTS: {\n BASE: '/payments',\n ACCOUNT: '/account',\n BLIK: '/blik',\n REDIRECT: '/redirect',\n BILLS: '/bills'\n },\n PROVINCES: {\n BASE: '/provinces',\n CITIES: '/cities'\n },\n DISTRICT_OFFICES: {\n BASE: '/district-offices'\n },\n CENTERS: {\n BASE: '/word-centers',\n SCHEDULE: '/exam-schedule',\n WORD: '/word',\n WORDS: '/words',\n OFFLINE: '/offline'\n }\n },\n\n DEALS: {\n BASE: `${ENVIRONMENT_URL}/api/deals`,\n STC_PACK: '/stc-pack'\n },\n\n STC: {\n TOKEN: `${ENVIRONMENT_URL}/oauth/token`,\n ME: `${ENVIRONMENT_URL}/me`\n },\n NEW: '/new',\n\n ESP: {\n BASE: `${ENVIRONMENT_URL}/api/esp-payment`,\n PAYMENTS: '/payments',\n BILLS: '/bills',\n REDIRECT: '/redirect',\n BLIK: '/blik'\n },\n FAST_PAYMENTS: {\n BASE: `${ENVIRONMENT_URL}/api/fast-payments`,\n PAYMENTS: '/payment',\n PDF: '/pdf'\n },\n POSK: {\n BASE: `${ENVIRONMENT_URL}/api/osk`,\n LICENCE: '/license-payments',\n WORD: '/word-payments',\n PAYMENTS: '/payments',\n BILLS: '/bills',\n REDIRECT: 'redirect',\n BLIK: 'blik',\n REDIRECT_URL: 'https://www.portalosk.pl/'\n },\n\n SSI: {\n BASE: `${ENVIRONMENT_URL}/api/ssi`,\n STATUS: '/status',\n REGISTRATION_DOCUMENT: '/driver/registration-document',\n PKK: '/pkk/pkk-status',\n DRIVER_LICENCE: '/driver/driver-licence'\n },\n\n ADR: {\n BASE: `${ENVIRONMENT_URL}/api/adr`,\n STATUS: '/status'\n },\n\n SUBSCRIPTIONS: {\n BASE: `${ENVIRONMENT_URL}/api/subscriptions`,\n WEBPUSH: '/webpush',\n KEY: '/key',\n TOPICS: '/topics'\n },\n\n PIK_PAYMENT: {\n BASE: `${ENVIRONMENT_URL}/api/pik-payment`,\n MAP: '/map',\n CATALOG: 'catalog',\n CATEGORY: 'category',\n DOCUMENT_PAYMENT: {\n BLIK: '/blik',\n PURCHASE: '/purchase-orders',\n REDIRECT: '/redirect',\n PAYED: '/payed',\n CONFIRMATION: '/confirmation'\n }\n },\n ATTESTATION: {\n BASE: `${ENVIRONMENT_URL}/api/stc-attestation`,\n REPORT: '/reports'\n },\n\n FEATURE_TOGGLES: window['env']['FEATURE_TOGGLES'],\n auth: {\n OAUTH_ALLOWED_URLS: window['env']['OAUTH_ALLOWED_URLS']\n }\n};\n\n","import { Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment as env } from 'src/environments/environment';\nimport { WordPaymentConfirmationDto } from '../_models/word-payment-confirmation.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WordConfirmationService {\n constructor(private httpClient: HttpClient) {}\n\n getPaymentSummary$(billId: string): Observable {\n return this.httpClient.get(\n `${env.WORD.BASE}${env.WORD.PAYMENTS.BILLS}/${billId}`\n );\n }\n}\n","import { CONFIRMATION_STEP_ROUTE } from './../../../word-exam-registration/confirmation-step/_const/confirmation-step-route.const';\nimport { WORD_EXAM_ROUTE } from 'src/app/applications/word-exam-registration/_consts/word-exam-route.const';\nimport { WordConfirmationService } from './word-confirmation.service';\nimport { WordPaymentConfirmationDto } from './../_models/word-payment-confirmation.model';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map, take, catchError, switchMap } from 'rxjs/operators';\nimport { AuthService } from 'src/app/core/auth';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WordPaymentConfirmationGuard {\n constructor(\n private router: Router,\n private wordPaymentConfirmation: WordConfirmationService,\n private auth: AuthService\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n return this.auth.user$\n .pipe(\n take(1),\n map((result) => {\n if (result == null) {\n this.auth.login(state.url);\n return false;\n }\n }),\n switchMap(() =>\n this.wordPaymentConfirmation.getPaymentSummary$(route.paramMap.get('billid'))\n )\n )\n .pipe(\n take(1),\n map((result: WordPaymentConfirmationDto) => {\n this.router.navigate([\n '/',\n WORD_EXAM_ROUTE,\n CONFIRMATION_STEP_ROUTE,\n result.reservationId\n ]);\n return false;\n })\n );\n }\n}\n","import { environment } from 'src/environments/environment';\nimport { TRAINING_CARD_ROUTE } from './applications/training-cards/_consts/training-cards-route.const';\nimport { ERROR_ROUTE } from './core/error/_consts/error-route.const';\nimport { Routes } from '@angular/router';\nimport { OBTAIN_TACHOGRAPH_CARD_ROUTE } from './application-landing-pages/obtain-tachograph-card/_consts/obtain-tachograph-route.const';\nimport { WORD_EXAM_ROUTE } from './applications/word-exam-registration/_consts/word-exam-route.const';\nimport { MAIN_PAGE_ROUTE } from './main-page/_consts/main-page-routing.const';\nimport { MY_ACCOUNT_ROUTE } from './my-account/_consts/my-account-route.const';\nimport { NEWS_ROUTE } from './news/_consts/new-route.const';\nimport { REGISTRATION_ROUTE } from './registration/_consts/registration-routes.const';\nimport { SEARCH_ROUTE } from './search-results/_consts/search-route.const';\nimport {\n ADR_ROUTE,\n SERVICE_CATEGORY_ROUTE,\n TACHOGRAPH_ROUTE\n} from 'src/app/service-category/_consts/service-category-route.const';\nimport { LOGIN_ROUTE } from './login/_consts/login-route.const';\nimport { DRIVERS_LICENCE_ROUTE } from './applications/drivers-license/_consts/driver-license-routes';\nimport { VEHICLE_REGISTRATION_ROUTE } from './applications/vehicle-registration/_consts/vehicle-registration.routes';\nimport { REPORT_CARD_DAMAGE_OR_LOSS_ROUTE } from './applications/stc/report-card-damage-or-loss/_consts/report-card-damage-or-loss-routes.conts';\nimport { COMPLAINT_ROUTE } from './application-landing-pages/complaint/_consts/complaint-route.const';\nimport { STC_TACHOGRAPH_CORRECTIONS_ROUTE } from './applications/stc/_consts/stc-route.const';\nimport { OVERPAY_RETURN_ROUTE } from './applications/stc/overpay-return/consts/overpay-return-routes.const';\nimport { FAST_PAYMENTS_ROUTE } from './external-payments/fast-payments/_consts/fast-payments-route.const';\nimport { PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE } from './applications/payment-confirmation/_consts/payment-confirmation-route.const';\nimport { PaymentConfirmationResolver } from './applications/payment-confirmation/_services/payment-confirmation.resolver';\nimport { MAIL_PAYMENT_CONFIRMATION } from './applications/payment-confirmation/mail-payment-confirmation/const/mail-payment-confirmation.route.const';\nimport { WORD_PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE } from './applications/payment-confirmation/word-confirmation/_consts/word-payment-confirmation-route.const';\nimport { WordPaymentConfirmationGuard } from './applications/payment-confirmation/word-confirmation/_services/word-confirmation.guard';\n\nexport const APP_ROUTING: Routes = [\n {\n path: SEARCH_ROUTE,\n loadChildren: () =>\n import('./search-results/search-results.module').then((m) => m.SearchResultsModule)\n },\n {\n path: MAIN_PAGE_ROUTE,\n loadChildren: () => import('./main-page/main-page.module').then((m) => m.MainPageModule)\n },\n {\n path: SERVICE_CATEGORY_ROUTE,\n loadChildren: () =>\n import('./service-category/service-category.module').then((m) => m.ServiceCategoryModule)\n },\n {\n path: LOGIN_ROUTE,\n loadChildren: () => import('./login/login.module').then((m) => m.LoginModule)\n },\n {\n path: MY_ACCOUNT_ROUTE,\n loadChildren: () => import('./my-account/my-account.module').then((m) => m.MyAccountModule)\n },\n {\n path: REGISTRATION_ROUTE,\n loadChildren: () =>\n import('./registration/registration.module').then((m) => m.RegistrationModule)\n },\n {\n path: WORD_EXAM_ROUTE,\n loadChildren: () =>\n import('./applications/word-exam-registration/word-exam-registration.module').then(\n (m) => m.WordExamRegistrationModule\n )\n },\n {\n path: TACHOGRAPH_ROUTE,\n loadChildren: () => import('./applications/stc/stc.module').then((m) => m.StcModule)\n },\n {\n path: OBTAIN_TACHOGRAPH_CARD_ROUTE,\n loadChildren: () =>\n import(\n './application-landing-pages/obtain-tachograph-card/obtain-tachograph-card.module'\n ).then((m) => m.ObtainTachographCardModule)\n },\n {\n path: COMPLAINT_ROUTE,\n loadChildren: () =>\n import('./application-landing-pages/complaint/complaint.module').then(\n (m) => m.ComplaintModule\n )\n },\n {\n path: `${TACHOGRAPH_ROUTE}/${REPORT_CARD_DAMAGE_OR_LOSS_ROUTE}`,\n loadChildren: () =>\n import(\n './applications/stc/report-card-damage-or-loss/report-card-damage-or-loss.module'\n ).then((m) => m.ReportCardDamageOrLossModule)\n },\n {\n path: PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE,\n loadComponent: () => import('./applications/payment-confirmation//payment-confirmation.component').then((m) => m.PaymentConfirmationComponent),\n resolve: {\n content: PaymentConfirmationResolver\n },\n runGuardsAndResolvers: 'always',\n providers: [PaymentConfirmationResolver]\n },\n {\n path: `${TACHOGRAPH_ROUTE}/${MAIL_PAYMENT_CONFIRMATION}`,\n loadComponent: () => import('./applications/payment-confirmation/mail-payment-confirmation/mail-payment-confirmation.component').then((m) => m.MailPaymentConfirmationComponent),\n runGuardsAndResolvers: 'always'\n },\n {\n path: WORD_PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE,\n loadComponent: () => import('./applications/payment-confirmation/word-confirmation/word-confirmation.component').then((m) => m.WordConfirmationComponent),\n canActivate: [WordPaymentConfirmationGuard],\n providers: [WordPaymentConfirmationGuard],\n runGuardsAndResolvers: 'always'\n },\n {\n path: `${STC_TACHOGRAPH_CORRECTIONS_ROUTE}`,\n loadChildren: () =>\n import('./applications/stc/corrections/confirmation/confirmation.module').then(\n (m) => m.ConfirmationModule\n )\n },\n {\n path: NEWS_ROUTE,\n loadChildren: () => import('./news/news.module').then((m) => m.NewsModule)\n },\n {\n path: `${DRIVERS_LICENCE_ROUTE}`,\n loadChildren: () =>\n import('./applications/drivers-license/drivers-license.module').then(\n (m) => m.DriversLicenseModule\n )\n },\n {\n path: `${VEHICLE_REGISTRATION_ROUTE}`,\n loadChildren: () =>\n import('./applications/vehicle-registration/vehicle-registration.module').then(\n (m) => m.VehicleRegistrationModule\n )\n },\n {\n path: ADR_ROUTE,\n loadChildren: () => import('./applications/adr/adr.module').then((m) => m.AdrModule)\n },\n {\n path: TRAINING_CARD_ROUTE,\n loadChildren: () =>\n import('./applications/training-cards/training-cards.module').then(\n (m) => m.TrainingCardsModule\n )\n },\n {\n path: '',\n loadChildren: () =>\n import('./external-payments/external-payments.module').then((m) => m.ExternalPaymentsModule)\n },\n {\n path: FAST_PAYMENTS_ROUTE,\n loadChildren: () =>\n import('./external-payments/fast-payments/_consts/fast-payments-routing.const').then((m) => m.FAST_PAYMENTS_ROUTING)\n },\n {\n path: '',\n loadChildren: () => import('./info-pages/info-pages.module').then((m) => m.InfoPagesModule)\n },\n {\n path: '**',\n redirectTo: `/${ERROR_ROUTE}/404`\n }\n];\n\nif (environment.FEATURE_TOGGLES.OVERPAY_RETURN) {\n APP_ROUTING.push({\n path: `${TACHOGRAPH_ROUTE}/${OVERPAY_RETURN_ROUTE}`,\n loadChildren: () =>\n import(\n './applications/stc/overpay-return/overpay-return.module'\n ).then((m) => m.OverpayReturnModule)\n },)\n}","export const WORD_PAYMENT_CONFIRMATION_BILL_ID_PARAMETRIZED_ROUTE = 'word-payment/:billid';\n","import { BaseModalDirective } from 'src/app/shared/components/modal/base-modal';\nimport { Component } from '@angular/core';\nimport { GhostButtonType } from '../../ghost-button/ghost-button-type.enum';\n\n@Component({\n selector: 'app-app-version-changed-modal',\n templateUrl: './app-version-changed-modal.component.html',\n styleUrl: './app-version-changed-modal.component.scss'\n})\nexport class AppVersionChangedModalComponent extends BaseModalDirective {\n GhostButtonType = GhostButtonType;\n onCancelClick(): void {\n this.close(null);\n }\n\n onConfirmClick(): void {\n window.location.reload();\n }\n}\n","
\n \n
\n
\n

{{'SHARED.VERSION_MODAL.title' | translate}}

\n

{{'SHARED.VERSION_MODAL.description' | translate}}

\n
\n \n
\n
\n\n
\n \n \n \n\n \n \n \n
\n
\n
\n
\n ","import { map, switchMap, catchError } from 'rxjs/operators';\nimport { Observable, of, timer } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppVersionService {\n private etag: string;\n private version: string;\n\n constructor(private http: HttpClient) { }\n\n checkAppVersion(time: number): Observable {\n let headers = new HttpHeaders().set('Access-Control-Expose-Headers', 'ETag');\n \n return timer(0, time).pipe(\n switchMap(_ => {\n if (this.etag) {\n headers = headers.set('If-None-Match', this.etag);\n }\n\n return this.http.get<{version: string}>('assets/version.json', {\n headers: headers,\n observe: 'response',\n params: {\n 't': Date.now().toString() // Dodajemy parametr cacheBust\n },\n }).pipe(\n catchError((err) => {\n if (err.status === 304) {\n return of(undefined); // Return undefined if response is 304\n } else {\n throw err; // Throw error for other cases\n }\n })\n )\n }),\n map((resp: HttpResponse<{version: string}>) =>{\n if (!resp) {\n return this.version;\n } else {\n this.etag = resp.headers.get('ETag');\n this.version = resp.body.version\n return this.version;\n }\n })\n )\n }\n}\n","
\n
\n

{{ content.title }}

\n
\n
\n

{{ content.desc }}

\n
\n
\n \n \n
\n\n \n \n {{ content.save }}\n \n \n \n
\n
\n","import { AcceptanceType } from './../../core/model/acceptances-model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { BaseModalDirective } from 'src/app/shared/components/modal/base-modal';\nimport { ModalRef } from 'src/app/shared/components/modal/modal-ref';\nimport { AcceptancesService } from 'src/app/core/services/acceptances-service';\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { AcceptancesFormValidation } from 'src/app/shared/components/acceptances-checboxes/acceptances-validation';\nimport { AuthService } from 'src/app/core/auth';\nimport { Subscription } from 'rxjs';\nimport { AcceptanceDto } from 'src/app/core/model/acceptances-model';\n\nconst ACCEPTANCES_FORMGROUP_NAME = 'acceptances';\n\n@Component({\n selector: 'app-acceptances-modal',\n templateUrl: './acceptances-modal.component.html',\n styleUrls: ['./acceptances-modal.component.scss']\n})\nexport class AcceptancesModalComponent extends BaseModalDirective implements OnInit, OnDestroy {\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n availableAcceptances: AcceptanceDto[];\n acceptances: AcceptanceType[];\n userMail: string;\n accModal: ModalRef;\n updatedAcceptances: AcceptanceType[] = [];\n formGroup: UntypedFormGroup;\n formValidation: AcceptancesFormValidation;\n sub: Subscription;\n content: any;\n loading: boolean;\n constructor(\n private accService: AcceptancesService,\n private auth: AuthService,\n private fb: UntypedFormBuilder,\n private tosr: ToastrService,\n private translateService: TranslateService\n ) {\n super();\n this.formGroup = this.fb.group({});\n }\n\n ngOnInit() {\n this.translateService.get('ACCEPTANCES_MODAL').subscribe({\n next: (content) => {\n this.content = content;\n }\n });\n this.availableAcceptances = this.getData().acceptances.availableAcceptances;\n this.acceptances = [...this.getData().acceptances.actualAcceptances];\n this.getAcceptances(this.acceptances);\n this.userMail = this.getData().acceptances.userName;\n this.createFormValidation();\n }\n\n createFormValidation() {\n this.formValidation = {\n formGroupName: ACCEPTANCES_FORMGROUP_NAME,\n formFields: {}\n };\n for (const acceptance of this.availableAcceptances) {\n this.formValidation.formFields[acceptance.name] = Validators.compose([\n acceptance.required ? Validators.requiredTrue : Validators.nullValidator\n ]);\n }\n }\n\n onSubmit() {\n if (this.formGroup.valid) {\n this.loading = true;\n this.accService.updateAcceptances(this.updatedAcceptances, this.userMail).subscribe(\n () => {\n this.loading = false;\n this.auth.setAcceptances(true);\n this.close();\n },\n () => {\n this.loading = false;\n this.tosr.error('Wystąpił nieznany błąd. Spróbuj ponownie później.');\n this.close();\n }\n );\n }\n }\n ngOnDestroy(): void {}\n\n getAcceptances(acceptances: AcceptanceType[]) {\n this.updatedAcceptances = [...acceptances];\n }\n}\n","import { NavigationEnd, Router } from '@angular/router';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { GhostButtonType } from '../../ghost-button/ghost-button-type.enum';\nimport { BaseModalDirective } from '../base-modal';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-translation-modal',\n templateUrl: './translation-modal.component.html',\n styleUrls: ['./translation-modal.component.scss']\n})\nexport class TranslationModalComponent extends BaseModalDirective implements OnInit, OnDestroy {\n GhostButtonType = GhostButtonType;\n lastUrl = null;\n private destroy$ = new Subject();\n constructor(private router: Router) {\n super();\n }\n\n ngOnInit(): void {\n this.lastUrl = this.getData().lastRoute;\n this.router.events\n .pipe(\n filter((routerEvent) => routerEvent instanceof NavigationEnd),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.close());\n }\n\n goBack() {\n if (this.lastUrl) {\n this.router.navigateByUrl(this.lastUrl);\n } else {\n this.router.navigateByUrl('/');\n }\n this.close();\n }\n\n ngOnDestroy() {\n this.destroy$.next(null);\n this.destroy$.unsubscribe();\n }\n}\n","
\n
\n
\n

{{ 'TRANSLATION_MODAL.title' | translate }}

\n \n \n \n
\n
\n

{{ 'TRANSLATION_MODAL.desc' | translate }}

\n

\n
\n
\n {{\n 'TRANSLATION_MODAL.nextBtn' | translate\n }}\n {{\n lastUrl\n ? ('TRANSLATION_MODAL.backBtn' | translate)\n : ('TRANSLATION_MODAL.backBtnDefault' | translate)\n }}\n
\n
\n
\n","export const TRANSLATED_PAGES = [\n '/tachograf/uzyskaj-karte-do-tachografu',\n '/tachograf/sprawdz-czy-twoja-karta-do-tachografu-jest-gotowa',\n '/tachograf/informacje-o-dokumencie',\n '/tachograf/zglos-zgubienie-uszkodzenie-lub-kradziez-karty-do-tachografu',\n '/tachograf/zloz-reklamacje-karty-do-tachografu-i-uzyskaj-karte-zastepcza',\n '/tachograf/wnioski/',\n '/tachograf/reklamacje/',\n '/tachograf/regulacje-prawne',\n '/tachograf/kontakt',\n '/tachograf',\n '/tachograf/ua-faq',\n '/kontakt',\n '/konto/ustawienia',\n '/konto/tachograf',\n '/rejestracja',\n '/blad',\n '/payment',\n '/prace-serwisowe',\n '/adr',\n '/rejestracja-pojazdu',\n '/prawo-jazdy',\n '/?state='\n];\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ModalService } from 'src/app/shared/components/modal/modal.service';\nimport { TranslationModalComponent } from 'src/app/shared/components/modal/translation-modal/translation-modal.component';\nimport { TRANSLATED_PAGES } from '../_const/layout.const';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n lastRoute: string;\n\n constructor(private router: Router, private modalService: ModalService) {}\n\n checkIfStartWithRoute() {\n const splitedRoute = this.router.url.split('/');\n const firstPart = splitedRoute[1] ? '/' + splitedRoute[1] : '';\n const secondPart = splitedRoute[2] ? '/' + splitedRoute[2] : '';\n return TRANSLATED_PAGES.some((el) => el.startsWith(firstPart + secondPart));\n }\n detectTranslatedPage(lng: string) {\n if (lng !== 'pl') {\n if (this.checkIfStartWithRoute()) {\n this.lastRoute = this.router.url;\n return;\n } else {\n this.modalService.open(TranslationModalComponent, {\n data: { lastRoute: this.lastRoute, freezeOverlay: true }\n });\n }\n }\n }\n}\n","import { MY_ACCOUNT_ROUTE } from 'src/app/my-account/_consts/my-account-route.const';\nimport { PARTNERS_ROUTE } from 'src/app/service-category/services-info-pages/tachograph/partners/_consts/partners-route.const';\nimport {\n DRIVER_LICENSE_ROUTE,\n VEHICLE_REGISTRATION_ROUTE,\n TACHOGRAPH_ROUTE,\n ADR_ROUTE\n} from 'src/app/service-category/_consts/service-category-route.const';\nimport {\n SITE_MAP_PAGE,\n CONTACTPAGE_ROUTE,\n ABOUT_US,\n TERMS_OF_SERVICE_ROUTE\n} from 'src/app/info-pages/_consts/info-pages-route.const';\nimport { Footer } from '../_models/footer.model';\nimport { REGISTRATION_ROUTE } from 'src/app/registration/_consts/registration-routes.const';\nimport { LOGIN_ROUTE } from 'src/app/login/_consts/login-route.const';\n\nexport const FOOTER_LINKS: Footer = {\n top: {\n facebook: { href: 'https://www.facebook.com/infocarpl/' },\n twitter: { href: 'https://twitter.com/pwpw_sa' }\n },\n middle: {\n firstColumn: {\n about: { routerLink: ABOUT_US },\n regulations: { routerLink: TERMS_OF_SERVICE_ROUTE },\n privacyPolicy: { routerLink: TERMS_OF_SERVICE_ROUTE, fragment: '5' },\n siteMap: { routerLink: SITE_MAP_PAGE }\n },\n secondColumn: {\n driverLicense: { routerLink: '/' + DRIVER_LICENSE_ROUTE },\n vehicleRegistration: { routerLink: '/' + VEHICLE_REGISTRATION_ROUTE },\n tachograph: { routerLink: '/' + TACHOGRAPH_ROUTE },\n adr: { routerLink: '/' + ADR_ROUTE }\n },\n thirdColumn: {\n partners: { routerLink: '/' + TACHOGRAPH_ROUTE + '/' + PARTNERS_ROUTE },\n myAccount: { routerLink: MY_ACCOUNT_ROUTE },\n login: { routerLink: LOGIN_ROUTE },\n register: { routerLink: REGISTRATION_ROUTE },\n contact: { routerLink: CONTACTPAGE_ROUTE }\n },\n tachographColumn: {\n tachograph_phone: { href: 'tel:+48223329290' },\n tachograph_email: { href: 'mailto:tachograf@pwpw.pl' },\n tachograph: {}\n },\n otherColumn: {\n other_phone: { href: 'tel:+48224647999' },\n other_email: { href: 'mailto:infocar@pwpw.pl' },\n other: {}\n }\n },\n bottom: {\n edoApp: { href: 'https://www.edoapp.pl/' },\n edoPost: { href: 'https://edopost.pl/' },\n sigillum: { href: 'https://sigillum.pl/' },\n exciseBand: { href: 'https://www.banderolaakcyzowa.pl/#/sprawdz' },\n peopleAndDocs: { href: 'https://www.pwpw.pl/Czlowiek_i_dokumenty' },\n }\n};\n","
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FooterTop } from '../_models/footer.model';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'app-footer-top',\n templateUrl: './footer-top.component.html',\n styleUrls: ['./footer-top.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, RouterModule]\n})\nexport class FooterTopComponent implements OnInit {\n @Input() content: FooterTop;\n constructor() { }\n\n ngOnInit() { }\n}\n","
\n
\n {{ 'FOOTER.bottom.otherProducts' | translate }}\n
\n
\n \n \n {{ product.text }}\n \n \n
\n
\n
\n \"{{\n
\n {{ 'FOOTER.bottom.pwpw' | translate }}\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FooterLinkModel } from '../_models/footer-link.model';\nimport { GhostButtonType } from './../../../shared/components/ghost-button/ghost-button-type.enum';\nimport { FooterBottom } from './../_models/footer.model';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GhostButtonComponent } from 'src/app/shared/components/ghost-button/ghost-button.component';\n\n@Component({\n selector: 'app-footer-products',\n templateUrl: './footer-products.component.html',\n styleUrls: ['./footer-products.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, GhostButtonComponent]\n})\nexport class FooterProductsComponent implements OnInit {\n @Input() content: FooterBottom;\n otherProducts: FooterLinkModel[];\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n constructor() { }\n\n ngOnInit() {\n this.otherProducts = [\n this.content.edoApp,\n this.content.edoPost,\n this.content.sigillum,\n this.content.exciseBand,\n this.content.peopleAndDocs\n ];\n }\n}\n","
\n
\n
\n
\n
\n
    \n \n \n {{ item.text }}\n \n \n {{ item.text }}\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { FooterMiddle } from '../_models/footer.model';\nimport { FooterLinkModel } from '../_models/footer-link.model';\nimport { AppLanguage } from '../../../app-language.enum';\nimport { CommonModule } from '@angular/common';\nimport { ExternalLinkDirective } from 'src/app/shared/directives/external-link/external-link.directive';\n\n@Component({\n selector: 'app-footer-content',\n templateUrl: './footer-content.component.html',\n styleUrls: ['./footer-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n ExternalLinkDirective\n ]\n})\nexport class FooterContentComponent implements OnInit {\n @Input() content: FooterMiddle;\n currentLng: string;\n appLanguage = AppLanguage;\n\n constructor(private router: Router) {\n }\n\n ngOnInit() {\n this.currentLng = localStorage.getItem('lang');\n }\n\n firstColumnAsArray(): FooterLinkModel[] {\n return [\n this.content.firstColumn.about,\n this.content.firstColumn.regulations,\n this.content.firstColumn.privacyPolicy,\n this.content.firstColumn.siteMap\n ];\n }\n\n secondColumnAsArray(): FooterLinkModel[] {\n return [\n this.content.secondColumn.driverLicense,\n this.content.secondColumn.vehicleRegistration,\n this.content.secondColumn.tachograph,\n this.content.secondColumn.adr\n ];\n }\n\n thirdColumnAsArray(): FooterLinkModel[] {\n return [\n this.content.thirdColumn.partners,\n this.content.thirdColumn.myAccount,\n this.content.thirdColumn.login,\n this.content.thirdColumn.register,\n this.content.thirdColumn.contact\n ];\n }\n\n tachographColumnAsArray(): FooterLinkModel[] {\n return [\n this.content.tachographColumn.tachograph,\n this.content.tachographColumn.tachograph_phone,\n this.content.tachographColumn.tachograph_email\n ];\n }\n\n otherColumnAsArray(): FooterLinkModel[] {\n return [\n this.content.otherColumn.other,\n this.content.otherColumn.other_phone,\n this.content.otherColumn.other_email\n ];\n }\n}\n","
\n \n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Extensions } from 'src/app/shared/extensions/extensions';\nimport { FOOTER_LINKS } from './_consts/footer-links.const';\nimport { Footer } from './_models/footer.model';\nimport { CommonModule } from '@angular/common';\nimport { FooterTopComponent } from './footer-top/footer-top.component';\nimport { FooterProductsComponent } from './footer-products/footer-products.component';\nimport { FooterContentComponent } from './footer-content/footer-content.component';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FooterTopComponent,\n FooterProductsComponent,\n FooterContentComponent\n ]\n})\nexport class FooterComponent implements OnInit {\n content: Footer;\n\n constructor(private translateService: TranslateService) { }\n\n ngOnInit(): void {\n this.translateService.get('FOOTER').subscribe((footerTexts: Footer) => {\n this.content = Extensions.deepMerge(footerTexts, FOOTER_LINKS) as Footer;\n });\n }\n}\n","
\n
\n
\n
\n
\n","import { Component, OnInit, Input, ElementRef, OnDestroy } from '@angular/core';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError\n} from '@angular/router';\nimport { LoaderStripeService } from '../_service/loader-stripe.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-loader-stripe',\n templateUrl: './loader-stripe.component.html',\n styleUrls: ['./loader-stripe.component.scss']\n})\nexport class LoaderStripeComponent implements OnInit, OnDestroy {\n public isOpened: boolean;\n private isOpenedFromRouter: boolean;\n private isOpenedNotFromRouter: boolean;\n private subscription: Subscription;\n\n constructor(\n private el: ElementRef,\n private router: Router,\n private loaderService: LoaderStripeService,\n ) {\n this.router.events.subscribe((routerEvent) => {\n this.onRouterEvent(routerEvent);\n });\n }\n\n ngOnInit() {\n this.subscription = this.loaderService.notifyIsOpened().subscribe((result) => {\n this.isOpenedNotFromRouter = result;\n this.updateIsOpened();\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n onRouterEvent(event): void {\n if (event instanceof NavigationStart) {\n this.open();\n } else if (\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel ||\n event instanceof NavigationError\n ) {\n this.close();\n }\n }\n\n open(): void {\n this.isOpenedFromRouter = true;\n this.updateIsOpened();\n }\n close(): void {\n this.isOpenedFromRouter = false;\n this.updateIsOpened();\n }\n\n private updateIsOpened() {\n this.isOpened = this.isOpenedFromRouter || this.isOpenedNotFromRouter;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-header-minimal',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n RouterModule\n ],\n templateUrl: './header-minimal.component.html',\n styleUrl: './header-minimal.component.scss'\n})\nexport class HeaderMinimalComponent {\n onClickScroll(element) {\n const scrollElement = document.querySelector(element).nextSibling.nextElementSibling;\n scrollElement.setAttribute('tabindex', '-1');\n scrollElement.scrollIntoView();\n scrollElement.focus();\n }\n}\n","","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { BaseModalDirective } from 'src/app/shared/components/modal/base-modal';\n\nimport { Translation } from '../../../models/search/translation.model';\nimport * as fromShared from '../../../store/shared.reducer';\n\n@Component({\n selector: 'app-search-modal',\n templateUrl: './search-modal.component.html',\n styleUrls: ['./search-modal.component.scss']\n})\nexport class SearchModalComponent extends BaseModalDirective implements OnInit, OnDestroy {\n translation: Translation;\n subscription: Subscription;\n\n constructor(private servicesStore: Store) {\n super();\n this.subscription = this.servicesStore\n .select(fromShared.selectSearchServicesData)\n .subscribe((result) => (this.translation = result));\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n close(): void {\n this.ref.close();\n }\n}\n","
\n
\n

{{ 'SEARCH.title' | translate }}

\n \n
\n \n
\n","
\n
\n \n Polski\n
\n\n
\n
\n \n {{ 'HEADER.service_categories_menu' | translate }}\n \n
\n \n \n
\n \n {{ 'HEADER.about_us' | translate }}\n \n
\n
\n\n
\n \n {{ 'HEADER.logout' | translate | uppercase }}\n \n
\n \n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { filter, take } from 'rxjs/operators';\nimport { AuthService } from 'src/app/core/auth/auth.service';\nimport { User } from 'src/app/core/model/user.model';\nimport { ABOUT_US } from 'src/app/info-pages/_consts/info-pages-route.const';\nimport { ServiceCategory } from 'src/app/shared/models/service-category.model';\nimport { AppLanguage } from '../../../app-language.enum';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-header-categories',\n standalone: true,\n imports: [CommonModule, TranslateModule, RouterModule],\n templateUrl: './header-categories.component.html',\n styleUrls: ['./header-categories.component.scss']\n})\nexport class HeaderCategoriesComponent implements OnInit {\n public activeServiceCategory: ServiceCategory;\n @Input() currentLng: string;\n\n @Input()\n services: ServiceCategory[];\n\n @Output()\n selectOption = new EventEmitter();\n appLanguage = AppLanguage;\n @Output() changeLng = new EventEmitter();\n aboutLink = ABOUT_US;\n user: User = null;\n constructor(private auth: AuthService, private router: Router) { }\n\n ngOnInit() {\n this.auth.user$\n .pipe(\n filter((result) => result != null),\n take(1)\n )\n .subscribe((userResult) => (this.user = userResult));\n }\n\n onLogout() {\n this.auth.logout();\n this.selectOption.emit();\n this.router.navigate(['/']);\n }\n\n setActiveServiceCategory(service) {\n this.activeServiceCategory = service;\n this.selectOption.emit();\n }\n\n onClick(lang: string) {\n this.changeLng.emit(lang);\n }\n}\n","
\n \n Skip to main content\n \n
\n \n Polski\n
\n\n
\n \"Info\n
\n\n \n \n
\n
\n \n \n {{ auth.user.firstname }}
{{ auth.user.lastname }}
\n
\n \n \n {{ 'HEADER.my_account_btn' | translate }}\n \n \n
\n\n \n \n \n\n \n \n {{ 'HEADER.login_error' | translate }}\n \n \n
\n
\n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n
\n
\n \"{{\n \"{{\n
\n
\n
\n
\n
\n \n \n \n
\n

{{ 'HEADER.open' | translate }}

\n \n

{{ 'HEADER.close' | translate }}

\n
\n
\n
\n\n\n
","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { CommonModule, DOCUMENT, ViewportScroller } from '@angular/common';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { AuthState } from 'src/app/core/auth/auth.reducer';\nimport { AuthService } from 'src/app/core/auth/auth.service';\nimport { ABOUT_US } from 'src/app/info-pages/_consts/info-pages-route.const';\nimport { SearchModalComponent } from 'src/app/shared/components/modal/search-modal/search-modal.component';\nimport { MY_ACCOUNT_ROUTE } from '../../my-account/_consts/my-account-route.const';\nimport { ModalService } from '../../shared/components/modal/modal.service';\nimport { Header } from './_models/header.model';\nimport { GhostButtonType } from 'src/app/shared/components/ghost-button/ghost-button-type.enum';\nimport { AppLanguage } from '../../app-language.enum';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { LoadersComponent } from '../loaders/loaders.component';\nimport { GhostButtonComponent } from 'src/app/shared/components/ghost-button/ghost-button.component';\nimport { HeaderCategoriesComponent } from './header-categories-mobile/header-categories.component';\nimport { TriggerClickDirective } from 'src/app/shared/directives/trigger-click/trigger-click.directive';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n NgbDropdownModule,\n LoadersComponent,\n TranslateModule,\n RouterModule,\n GhostButtonComponent,\n HeaderCategoriesComponent,\n TriggerClickDirective\n ],\n animations: [\n trigger('showHideAnimation', [\n transition(':enter', [\n style({ transform: 'translateX(-100%)' }),\n animate(200, style({ transform: 'translateX(0)' }))\n ]),\n transition(':leave', [\n style({ transform: 'translateX(0)' }),\n animate(200, style({ transform: 'translateX(-100%)' }))\n ])\n ])\n ]\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n @Output() changeLng = new EventEmitter();\n @Input() currentLng: string;\n appLanguage = AppLanguage;\n headerData$: Observable
;\n open: boolean;\n catOpen: boolean;\n auth$: Observable = this.auth.state$;\n routeSubscribcion: Subscription;\n minimal: boolean;\n aboutLink = ABOUT_US;\n GhostButtonType: typeof GhostButtonType = GhostButtonType;\n constructor(\n private modalService: ModalService,\n private router: Router,\n private auth: AuthService,\n private translate: TranslateService,\n private viewportScroller: ViewportScroller,\n @Inject(DOCUMENT) private document: Document,\n private renderer: Renderer2\n ) { }\n\n ngOnInit() {\n this.open = false;\n this.catOpen = false;\n this.currentLng = localStorage.getItem('lang');\n }\n\n onLogout() {\n this.auth.logout();\n }\n\n onClick(lang: string) {\n this.changeLng.emit(lang);\n }\n\n onClickScroll(element) {\n const scrollElement = document.querySelector(element).nextSibling.nextElementSibling;\n scrollElement.setAttribute('tabindex', '-1');\n scrollElement.scrollIntoView();\n scrollElement.focus();\n }\n menuOnClick() {\n this.open = !this.open;\n if (this.open) {\n this.renderer.addClass(this.document.documentElement, 'disable-scroll');\n } else {\n this.renderer.removeClass(this.document.documentElement, 'disable-scroll');\n }\n }\n catOnClick() {\n this.catOpen = !this.catOpen;\n }\n\n onSearchIconClick() {\n this.modalService.open(SearchModalComponent, {\n data: { blueOverlay: true }\n });\n }\n\n onMyAccountClick() {\n this.router.navigate(['/', MY_ACCOUNT_ROUTE]);\n this.closeMenuIfOpen();\n }\n\n onAuthRetryClick() {\n this.auth.retry();\n }\n\n ngOnDestroy(): void {\n this.routeSubscribcion?.unsubscribe();\n }\n\n closeMenuIfOpen(): void {\n if (this.open) {\n this.menuOnClick();\n }\n }\n}\n","\n\n \n \n\n@if(showElements.showOnlyLogo) {\n\n} @else {\n\n}\n\n\n","import { PaymentConfirmationComponent } from 'src/app/external-payments/posk-payment/payment-confirmation/payment-confirmation.component';\nimport { Extensions } from 'src/app/shared/extensions/extensions';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Observable, Subscription, throwError } from 'rxjs';\nimport { catchError, filter, map, switchMap, tap } from 'rxjs/operators';\n\nimport { AuthService } from '../core/auth';\nimport { AcceptancesService } from '../core/services/acceptances-service';\nimport { ModalService } from '../shared/components/modal/modal.service';\nimport { ActivationService } from './_service/activation.service';\nimport { AcceptancesModalComponent } from './acceptances-modal/acceptances-modal.component';\nimport { InfoBarMessage } from './info-bar/_models/info-bar-message.model';\nimport { InfoBarsFacadeService } from './info-bar/info-bars-facade.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { PaymentComponent } from '../external-payments/esp-payment/payment/payment.component';\nimport { PaymentComponent as PoskPaymentComponent } from '../external-payments/posk-payment/payment/payment.component';\nimport { PaymentConfirmationComponent as EspPaymentConfirmation } from '../external-payments/esp-payment/payment-confirmation/payment-confirmation.component';\nimport { PaymentConfirmationComponent as PoskPaymentConfirmationComponent } from '../external-payments/posk-payment/payment-confirmation/payment-confirmation.component';\nimport { LanguageService } from './_service/language.service';\nimport { FastPaymentsComponent } from '../external-payments/fast-payments/payment/fast-payments.component';\nimport { PaymentConfirmationComponent as FastPaymentConfirmation } from '../external-payments/fast-payments/payment-confirmation/payment-confirmation.component';\n\n@Component({\n selector: 'app-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss']\n})\nexport class LayoutComponent implements OnInit {\n @Output() changeLng = new EventEmitter();\n infobars$: Observable = this.infoBarService.infoBars$;\n userMail: string;\n sub: Subscription = new Subscription();\n pageText: any;\n\n showElements = {\n showOnlyLogo: false,\n hideInfobars: false\n };\n\n onlyLogoComponents = [\n PaymentComponent,\n PaymentConfirmationComponent,\n PoskPaymentComponent,\n PoskPaymentConfirmationComponent,\n FastPaymentsComponent,\n FastPaymentConfirmation,\n EspPaymentConfirmation\n ];\n\n noInfobarsComponents = [PoskPaymentComponent, PoskPaymentConfirmationComponent];\n lastRoute = null;\n\n constructor(\n private infoBarService: InfoBarsFacadeService,\n private modalService: ModalService,\n private auth: AuthService,\n private acc: AcceptancesService,\n private activationService: ActivationService,\n private toastrService: ToastrService,\n private translateService: TranslateService,\n private router: Router,\n private language: LanguageService\n ) {\n this.translateService.get('STC.ACTIVE_ACCOUNT').subscribe({\n next: (content) => {\n this.pageText = content;\n }\n });\n this.sub.add(\n this.activationService.accountActivated$.subscribe(() =>\n this.toastrService.info(this.pageText.title)\n )\n );\n\n this.sub.add(\n this.router.events\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe((value) => {\n this.language.detectTranslatedPage(this.translateService.currentLang);\n })\n );\n }\n\n ngOnInit(): void {\n const sub = this.auth.state$\n .pipe(\n filter((state) => !!state.user),\n filter((state) => !state?.user?.hasAcc && !state.anonymous),\n switchMap((state) => this.acc.getAcceptances(state.user.email)),\n catchError((e) => {\n this.auth.logout();\n return throwError(() => e);\n })\n )\n .subscribe(\n (acceptances) => {\n let modalRef = this.modalService.open(AcceptancesModalComponent, {\n data: {\n acceptances: acceptances,\n user: this.userMail,\n freezeOverlay: true\n }\n });\n const sub = modalRef.afterClosed.subscribe((res) => {\n sub.unsubscribe();\n modalRef = null;\n });\n sub.unsubscribe();\n },\n () => {\n this.auth.logout();\n }\n );\n }\n\n changeLngMethod(lang: string) {\n this.changeLng.emit(lang);\n }\n checkIfShowElement(event, componentsList, flag: keyof LayoutComponent['showElements']) {\n if (componentsList.find((component) => event instanceof component)) {\n this.showElements[flag] = true;\n } else {\n this.showElements[flag] = false;\n }\n }\n\n onComponentActivated(event) {\n this.checkIfShowElement(event, this.onlyLogoComponents, 'showOnlyLogo');\n this.checkIfShowElement(event, this.noInfobarsComponents, 'hideInfobars');\n }\n}\n","import { MODAL_OVERLAY_CLICKED } from 'src/app/shared/components/modal/modal-ref';\nimport { AppVersionChangedModalComponent } from './shared/components/modal/app-version-changed-modal/app-version-changed-modal.component';\nimport { AppVersionService } from './shared/services/app-version/app-version.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { trigger } from '@angular/animations';\nimport { Component, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { NavigationEnd, NavigationError, Router } from '@angular/router';\nimport { filter, startWith, Subscription } from 'rxjs';\nimport { FADEOUT_ANIMATION } from './shared/extensions/animations';\nimport { PushNotificationsService } from './shared/services/push-notifications/push-notifications.service';\nimport { version } from 'os';\nimport { ModalRef } from './shared/components/modal/modal-ref';\nimport { ModalService } from './shared/components/modal/modal.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n animations: [trigger('fadeOut', FADEOUT_ANIMATION)]\n})\nexport class AppComponent implements OnDestroy {\n public title = 'Info-Car';\n routerLoaded = false;\n routerSubscription: Subscription;\n routerEventsSubscription: Subscription;\n focusOnTab = false;\n appVersion: string;\n modalRef: ModalRef;\n\n constructor(\n private router: Router, // private pushService: PushNotificationsService,\n private translate: TranslateService,\n private appVersionService: AppVersionService,\n private modal: ModalService\n ) {\n this.waitForRouterToResolveData();\n if (localStorage.getItem('lang')) {\n this.translate.use(localStorage.getItem('lang'));\n } else {\n localStorage.setItem('lang', 'pl');\n }\n // this.translate.use('pl');\n\n this.appVersionService.checkAppVersion(30000).subscribe({\n next: value => {\n if (!this.appVersion) {\n this.appVersion = value;\n }\n\n if (this.appVersion !== value && !this.modalRef) {\n this.modalRef = this.modal.open(AppVersionChangedModalComponent);\n }\n\n if (this.modalRef) {\n const sub = this.modalRef.afterClosed.subscribe((value) => {\n if (!value || value === MODAL_OVERLAY_CLICKED) {\n const modalTimeout = setTimeout(() => {\n this.modalRef = null\n sub.unsubscribe();\n clearTimeout(modalTimeout);\n }, 15 * 60 * 1000)\n } else {\n sub.unsubscribe();\n }\n });\n }\n\n\n },\n error: err => {\n // Silent error\n this.appVersion === '1.0.0'\n }\n })\n }\n\n private waitForRouterToResolveData() {\n this.routerSubscription = this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n ).subscribe({\n next: (x) => {\n this.routerLoaded = true;\n // if (environment.FEATURE_TOGGLES.PUSH_NOTIFICATIONS) {\n // this.pushService.registerServiceWorker();\n // }\n },\n error:(e) => {\n console.error(e)\n },\n complete: () => {\n this.routerSubscription.unsubscribe();\n }\n });\n }\n\n addFocusClass() {\n this.focusOnTab = true;\n }\n\n removeFocusClass() {\n this.focusOnTab = false;\n }\n\n changeLng(lang: string) {\n this.translate.use(lang).subscribe;\n localStorage.setItem('lang', lang);\n window.location.reload();\n }\n ngOnDestroy(): void {\n this.routerEventsSubscription.unsubscribe();\n }\n}\n","\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../../shared/shared.module';\nimport { LoaderStripeComponent } from './loader-stripe.component';\n\n@NgModule({\n declarations: [LoaderStripeComponent],\n imports: [CommonModule, SharedModule],\n exports: [LoaderStripeComponent],\n providers: []\n})\nexport class LoaderStripeModule {}\n","import { Injectable } from '@angular/core';\n\nconst LAYOUT_ENDPOINT = '/layout';\n\n@Injectable()\nexport class LayoutService {\n constructor() {}\n}\n","import { Action } from '@ngrx/store';\nimport { Header } from '../header/_models/header.model';\nimport { Footer } from '../footer/_models/footer.model';\nimport { InfoBarMessage } from '../info-bar/_models/info-bar-message.model';\n\nexport interface LayoutActions {\n SET_HEADER: string;\n SET_FOOTER: string;\n SET_INFO_BARS: string;\n}\n\nexport const ActionTypes: LayoutActions = {\n SET_HEADER: '[Layout] SetHeader',\n SET_FOOTER: '[Layout] SetFooter',\n SET_INFO_BARS: '[Layout] SetInfoBars'\n};\n\nexport class SetHeaderAction implements Action {\n type = ActionTypes.SET_HEADER;\n constructor(public payload: Header) {}\n}\nexport class SetFooterAction implements Action {\n type = ActionTypes.SET_FOOTER;\n constructor(public payload: Footer) {}\n}\nexport class SetInfoBars implements Action {\n type = ActionTypes.SET_INFO_BARS;\n constructor(public payload: InfoBarMessage[]) {}\n}\n\nexport type Actions = SetHeaderAction | SetFooterAction | SetInfoBars;\n","import * as layout from './layout.action';\nimport { Header } from '../header/_models/header.model';\nimport { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { Footer } from '../footer/_models/footer.model';\nimport { InfoBarMessage } from '../info-bar/_models/info-bar-message.model';\n\nexport interface LayoutState {\n infoBarsData: InfoBarMessage[];\n headerData: Header;\n footerData: Footer;\n}\n\nexport const layoutInitialState: LayoutState = {\n infoBarsData: new Array(),\n headerData: null,\n footerData: null\n};\n\nexport function layoutReducer(\n state: LayoutState = layoutInitialState,\n action: layout.Actions\n): LayoutState {\n switch (action.type) {\n case layout.ActionTypes.SET_HEADER:\n return Object.assign({}, state, {\n headerData: action.payload\n });\n case layout.ActionTypes.SET_FOOTER:\n return Object.assign({}, state, {\n footerData: action.payload\n });\n case layout.ActionTypes.SET_INFO_BARS:\n return Object.assign({}, state, {\n infoBarsData: action.payload\n });\n default:\n return state;\n }\n}\n\nexport const featureName = 'layout';\n\nexport const selectLayoutState = createFeatureSelector(featureName);\n\nexport const selectHeaderData = createSelector(selectLayoutState, (state) => state.headerData);\n\nexport const selectFooterData = createSelector(selectLayoutState, (state) => state.footerData);\n\nexport const selectInfoBarsData = createSelector(selectLayoutState, (state) => state.infoBarsData);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { StoreModule } from '@ngrx/store';\nimport { LayoutComponent } from './layout.component';\nimport { LoaderStripeModule } from './loader-stripe/loader-stripe.module';\nimport { LayoutService } from './_service/layout.service';\nimport * as fromLayout from './_store/layout.reducer';\nimport { AcceptancesModalComponent } from './acceptances-modal/acceptances-modal.component';\nimport { LoadersComponent } from './loaders/loaders.component';\nimport { HeaderMinimalComponent } from './header-minimal/header-minimal.component';\nimport { HeaderComponent } from './header/header.component';\nimport { InfoBarComponent } from './info-bar/info-bar/info-bar.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { BreadcrumbsComponent } from '../shared/components/breadcrumbs/breadcrumbs.component';\nimport { GhostButtonComponent } from '../shared/components/ghost-button/ghost-button.component';\nimport { FormCheckboxComponent } from '../shared/components/forms/form-checkbox/form-checkbox.component';\nimport { AcceptancesChecboxesComponent } from '../shared/components/acceptances-checboxes/acceptances-checboxes.component';\n\n@NgModule({\n declarations: [LayoutComponent, AcceptancesModalComponent],\n exports: [LayoutComponent, AcceptancesModalComponent],\n imports: [\n CommonModule,\n InfoBarComponent,\n FooterComponent,\n StoreModule.forFeature(fromLayout.featureName, fromLayout.layoutReducer),\n FormsModule,\n RouterModule,\n ReactiveFormsModule,\n LoaderStripeModule,\n LoadersComponent,\n HeaderMinimalComponent,\n HeaderComponent,\n BreadcrumbsComponent,\n GhostButtonComponent,\n FormCheckboxComponent,\n AcceptancesChecboxesComponent\n ],\n providers: [LayoutService]\n})\nexport class LayoutModule { }\n","import { LOCATION_INITIALIZED, registerLocaleData } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport localePL from '@angular/common/locales/pl';\nimport { APP_INITIALIZER, Injector, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NoPreloading, RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { ToastrModule } from 'ngx-toastr';\nimport * as fromAuth from 'src/app/core/auth/auth.reducer';\nimport { environment } from 'src/environments/environment';\nimport { APP_ROUTING } from './app-routing.const';\nimport { AppComponent } from './app.component';\nimport { AuthEffects } from './core/auth/auth.effects';\nimport { CoreModule } from './core/core.module';\nimport { LayoutModule } from './layout/layout.module';\nimport { RouteEventsService } from './shared/services/route-events-service/route-events.service';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { TranslationModalComponent } from './shared/components/modal/translation-modal/translation-modal.component';\nimport { AppLanguage } from './app-language.enum';\nimport { LoadersComponent } from './layout/loaders/loaders.component';\nimport { InfoBarComponent } from './layout/info-bar/info-bar/info-bar.component';\nimport { SafeHtmlPipe } from './shared/pipes/safe-html.pipe';\nimport { GhostButtonComponent } from './shared/components/ghost-button/ghost-button.component';\nimport { PaymentConfirmationResolver } from './applications/payment-confirmation/_services/payment-confirmation.resolver';\n\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(\n http,\n `assets/i18n/`,\n `.json?v=${Date.now().toString()}`\n );\n}\n\nexport function appInitializerFactory(translate: TranslateService, injector: Injector) {\n return () =>\n new Promise((resolve: any) => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n locationInitialized.then(() => {\n const langToSet = AppLanguage.POLISH;\n translate.use(langToSet).subscribe(\n () => {\n console.log(`Successfully initialized '${langToSet}' language.'`);\n },\n () => {\n console.error(`Problem with '${langToSet}' language initialization.'`);\n },\n () => {\n resolve(null);\n }\n );\n });\n });\n}\n\nregisterLocaleData(localePL);\n\n@NgModule({\n declarations: [AppComponent, TranslationModalComponent],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n AngularSvgIconModule.forRoot(),\n ToastrModule.forRoot({\n preventDuplicates: true,\n timeOut: 3000,\n positionClass: 'toast-top-right',\n resetTimeoutOnDuplicate: true\n }),\n // NOTE: [RK] Preloading all modules disabled to check UX with on demand loading modules\n RouterModule.forRoot(APP_ROUTING, {\n onSameUrlNavigation: 'reload',\n scrollPositionRestoration: 'enabled',\n preloadingStrategy: NoPreloading,\n anchorScrolling: 'enabled',\n enableTracing: !environment.production && JSON.parse(localStorage.getItem('DEBUG_TRACING')) === true\n }),\n StoreModule.forRoot({ auth: fromAuth.authReducer }),\n EffectsModule.forRoot([AuthEffects]),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n CoreModule,\n InfoBarComponent,\n LayoutModule,\n LoadersComponent,\n SafeHtmlPipe,\n GhostButtonComponent,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TranslateService, Injector],\n multi: true\n },\n RouteEventsService,\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { environment } from 'src/environments/environment';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { enableDebugTools } from '@angular/platform-browser';\nimport { ApplicationRef, enableProdMode } from '@angular/core';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then((moduleRef) => {\n const applicationRef = moduleRef.injector.get(ApplicationRef);\n const componentRef = applicationRef.components[0];\n enableDebugTools(componentRef);\n })\n .catch(err => console.error(err));\n"],"x_google_ignoreList":[]}