{"version":3,"file":"main.c0650c262de21aec.js","mappings":"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","names":["animationDuration","offsetNavigation","UtilNavigationService","constructor","activatedRoute","router","viewportScroller","this","navigateToPageThatContainsFragment","targetPath","anchor","url","startsWith","scrollToAnchor","navigate","queryParams","fragment","captureFragmentAndScroll","pipe","tap","element","document","getElementById","setTimeout","offsetPosition","getBoundingClientRect","top","window","scrollY","scrollTo","behavior","t","i0","i1","i2","_angular_core__WEBPACK_IMPORTED_MODULE_2__","Yz7","factory","ɵfac","providedIn","CartStoreService","http","offerService","cartItems","cartSubject","BehaviorSubject","initializedSub","initialized$","asObservable","firstInit","updateSubjectAndLocalStorage","next","localStorage","setItem","JSON","stringify","initCartFromLocalStorage","storedCartItemsJson","getItem","storedCartItems","parse","observables","getOffers","map","paidOffers","offer","id","offersIdArray","filter","includes","offer_id","Set","item","get","switchMap","forkJoin","arr","variants","variant","finalize","subscribe","variantIds","flat","addToCart","existingItem","find","cartItem","quantity","newItem","push","removeItem","itemId","index","findIndex","splice","getCart","getTotalQuantity","items","reduce","totalQuantity","updateQuantity","value","getTotalPrice","totalPrice","price","clearCart","payOrder","data","post","_angular_core__WEBPACK_IMPORTED_MODULE_6__","OfferService","getOneOffer","getLandingPageOffers","getCarouselOffers","getOtherOffersExcludingOne","params","HttpParams","set","offerType","orderBy","_angular_core__WEBPACK_IMPORTED_MODULE_1__","offer_r5","MobileCarouselComponent_ng_container_0_app_offer_card_3_Template","ctx_r0","offers","MobileCarouselComponent_ng_template_1_app_offer_card_1_Template","ctx_r2","MobileCarouselComponent","slider","ngAfterViewInit","length","KeenSlider","sliderRef","nativeElement","loop","enableLoop","mode","slides","perView","spacing","origin","ngOnDestroy","destroy","_angular_core__WEBPACK_IMPORTED_MODULE_0__","Xpm","selectors","viewQuery","rf","ctx","MobileCarouselComponent_ng_container_0_Template","MobileCarouselComponent_ng_template_1_Template","_r1","CommonModule","OfferCardComponent","styles","encapsulation","goToDetails","navigateByUrl","inputs","standalone","features","decls","vars","consts","template","_c0","active","offer_image","HowToUseComponent","core","changeDetection","DemoOffersComponent_div_4_app_offer_card_1_Template","ctx_r1","DemoOffersComponent","breakpointObserver","isXSmallScreen$","observe","Breakpoints","XSmall","result","matches","DemoOffersComponent_div_4_Template","DemoOffersComponent_app_mobile_carousel_6_Template","PartnersService","getDesktopSlides","logos","src","getTabletSlides","getMobileSlides","logo_r7","PartnersComponent_ng_container_4_div_1_div_1_Template","slide_r5","PartnersComponent_ng_container_4_div_1_Template","slidesMobile","logo_r11","PartnersComponent_ng_container_6_div_1_div_1_Template","slide_r9","PartnersComponent_ng_container_6_div_1_Template","slidesTablet","logo_r15","PartnersComponent_ng_container_8_div_1_div_1_Template","slide_r13","PartnersComponent_ng_container_8_div_1_Template","ctx_r3","slidesDesktop","animation","duration","easing","PartnersComponent","partnerService","breakpointSubscriptions","isSmallScreen$","Small","subscribeToBreakPoints","buildSlider","renderMode","drag","created","s","moveToIdx","updated","track","details","abs","animationEnded","xSmallSubscription","refreshSlider","smallSubscription","forEach","subscription","unsubscribe","PartnersComponent_ng_container_4_Template","PartnersComponent_ng_container_6_Template","PartnersComponent_ng_container_8_Template","i3","ContactComponent","navigateToForm","offers_r1","LandingPageComponent_ng_container_3_section_1_Template","LandingPageComponent","utilNavigationService","offers$","anchorSub","LandingPageComponent_ng_container_3_Template","TokenService","getToken","authToken","getTokenAndExp","token","expiry","tokenExpiry","isTokenValid","exp","now","Date","saveTokenAndExp","apiToken","destroyToken","AuthService","tokenService","authSubject","isAuthenticated","distinctUntilChanged","login","purgeAuth","setAuth","logout","environment","authGuard","inject","location","href","routes","path","component","loadComponent","__webpack_require__","e","then","bind","m","OffersComponent","children","Promise","all","OffersListComponent","canActivate","OfferDetailsComponent","RegulationsComponent","redirectTo","pathMatch","PlatformComponent","PrivacyPolicyComponent","FormsComponent","PartnerComponent","OrderHistoryComponent","CartComponent","CheckoutSuccessComponent","AppRoutingModule","oAB","cJS","RouterModule","forRoot","scrollPositionRestoration","anchorScrolling","scrollOffset","options","transition","style","opacity","animate","routingAnimation","trigger","AppInitService","authService","cartService","loginWithUrlToken","initFinish","error","err","console","log","checkAuthCookies","navSubscription","initializeApp","events","event","NavigationEnd","take","userTokenFromUrl","snapshot","queryParamMap","skipLocationChange","userToken","queryParamsHandling","i4","UserActivityService","inactivityTime","startMonitoring","mouseMove$","fromEvent","click$","keydown$","touchstart$","touchmove$","merge","startWith","timer","hamburguerXAnimation","state","transform","transformOrigin","width","margin","borderRadius","backgroundColor","_r9","ctx_r8","total_r7","_r11","ctx_r10","_r13","ctx_r12","MobileNavComponent_ul_8_ng_container_7_ng_container_5_Template","MobileNavComponent_ul_8_ng_container_7_ng_template_7_Template","ctx_r14","totalCartQuantity$","_r5","_r16","ctx_r15","_r18","ctx_r17","ctx_r19","MobileNavComponent_ul_8_ng_container_7_Template","MobileNavComponent_ul_8_ng_template_9_Template","_r2","MobileNavComponent","cartStoreService","isNavigationOpen","toggleNav","body","classList","add","remove","MobileNavComponent_ul_8_Template","RouterLink","ScrollFixNavbarDirective","renderer","hostElement","scrollThreshold","onScroll","documentElement","scrollTop","addClass","removeClass","DOCUMENT","lG2","hostBindings","HeaderService","getAdminBanner","total_r10","_r12","ctx_r11","ctx_r13","HeaderComponent_nav_4_ng_container_12_Template","HeaderComponent_nav_4_ng_template_14_Template","_r8","ctx_r18","adminBanner","heading_text","ctx_r4","additional_text","_r20","_r22","ctx_r21","HeaderComponent","headerService","destroy$","Subject","ngOnInit","takeUntil","boolean","loadAdminBanner","breakpointSubscription","isXSmallScreen","setAdminBanner","image_mobile","image_desktop","i5","i6","HeaderComponent_nav_4_Template","HeaderComponent_ng_template_5_Template","HeaderComponent_h1_10_Template","HeaderComponent_p_11_Template","HeaderComponent_button_12_Template","HeaderComponent_button_13_Template","i7","FooterComponent","navigateToRegulations","LoaderComponent","AppComponent","appInitService","userActivityService","isLoading","animateRouting","initApp","monitorUserActivity","routingAnimationHelper","delay","initialized","withLatestFrom","isActive","AppComponent_app_loader_0_Template","ApiInterceptor","intercept","request","apiReq","clone","handle","TokenInterceptor","URL","setHeaders","Authorization","ErrorInterceptor","catchError","HttpErrorResponse","status","externalAuthUrl","throwError","MAT_DIALOG_GLOBAL_CONFIG","maxWidth","minWidth","registerLocaleData","localePl","AppModule","bootstrap","provide","APP_INITIALIZER","useFactory","appLoadService","deps","multi","LOCALE_ID","useValue","DEFAULT_CURRENCY_CODE","HTTP_INTERCEPTORS","useClass","RECAPTCHA_V3_SITE_KEY","MAT_DIALOG_DEFAULT_OPTIONS","imports","BrowserModule","BrowserAnimationsModule","HttpClientModule","RecaptchaV3Module","MatDialogModule","__NgCli_bootstrap_1","bootstrapModule","catch"],"sourceRoot":"webpack:///","sources":["./src/app/core/constants/data.ts","./src/app/core/services/util-navigation.service.ts","./src/app/features/cart/cart-store.service.ts","./src/app/features/offers/services/offer.service.ts","./src/app/shared/components/mobile-carousel/mobile-carousel.component.html","./src/app/shared/components/mobile-carousel/mobile-carousel.component.ts","./src/app/shared/components/offer-card/offer-card.component.ts","./src/app/shared/components/offer-card/offer-card.component.html","./src/app/features/landing-page/components/how-to-use/how-to-use.component.ts","./src/app/features/landing-page/components/how-to-use/how-to-use.component.html","./src/app/features/landing-page/components/demo-offers/demo-offers.component.html","./src/app/features/landing-page/components/demo-offers/demo-offers.component.ts","./src/app/features/landing-page/components/partners/partners.service.ts","./src/app/features/landing-page/components/partners/partners.component.html","./src/app/features/landing-page/components/partners/partners.component.ts","./src/app/features/landing-page/components/contact/contact.component.ts","./src/app/features/landing-page/components/contact/contact.component.html","./src/app/features/landing-page/landing-page.component.html","./src/app/features/landing-page/landing-page.component.ts","./src/app/core/services/token.service.ts","./src/app/core/services/auth.service.ts","./src/environments/environment.ts","./src/app/core/guards/auth.guard.ts","./src/app/app-routing.module.ts","./src/app/core/animations/fade.animations.ts","./src/app/core/services/app-init.service.ts","./src/app/core/services/user-activity.service.ts","./src/app/core/layout/header/components/mobile-nav/mobile-nav.animations.ts","./src/app/core/layout/header/components/mobile-nav/mobile-nav.component.html","./src/app/core/layout/header/components/mobile-nav/mobile-nav.component.ts","./src/app/shared/directives/scroll-fix-navbar.directive.ts","./src/app/core/layout/header/header.service.ts","./src/app/core/layout/header/header.component.html","./src/app/core/layout/header/header.component.ts","./src/app/core/layout/footer/footer.component.ts","./src/app/core/layout/footer/footer.component.html","./src/app/shared/components/loader/loader.component.ts","./src/app/shared/components/loader/loader.component.html","./src/app/app.component.ts","./src/app/core/interceptors/api.interceptor.ts","./src/app/core/interceptors/token.interceptor.ts","./src/app/core/interceptors/error.interceptor.ts","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["export const animationDuration = 300; //ms\nexport const offsetNavigation = 400;\n","import { Injectable } from '@angular/core';\nimport { animationDuration } from '../constants/data';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { ViewportScroller } from '@angular/common';\nimport { Observable, tap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilNavigationService {\n constructor(\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private viewportScroller: ViewportScroller\n ) {}\n\n navigateToPageThatContainsFragment(targetPath: string, anchor?: string): void {\n if (anchor) {\n if (this.router.url.startsWith(`/${targetPath}?fragment`)) {\n this.viewportScroller.scrollToAnchor(anchor);\n } else {\n this.router.navigate([`/${targetPath}`], { queryParams: { fragment: anchor } });\n }\n } else {\n this.router.navigate([`/${targetPath}`]);\n }\n }\n\n captureFragmentAndScroll(): Observable {\n return this.activatedRoute.queryParams.pipe(\n tap(queryParams => {\n const anchor = queryParams['fragment'];\n if (anchor) {\n const element = document.getElementById(anchor);\n setTimeout(() => {\n if (element) {\n const elementPosition = element.getBoundingClientRect().top + window.scrollY;\n const offsetPosition = elementPosition - 72;\n\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth',\n });\n }\n // if (element) element.scrollIntoView({ behavior: 'smooth' });\n // this.viewportScroller.scrollToAnchor(anchor);\n }, animationDuration + 50);\n }\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, finalize, forkJoin, map, Observable, switchMap, tap } from 'rxjs';\nimport { Offer, OfferDetails, OfferVariant } from '../offers/models/offer.interface';\nimport { ApiFormCart, Cart } from './cart.interface';\nimport { HttpClient } from '@angular/common/http';\nimport { OfferService } from '../offers/services/offer.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartStoreService {\n private cartItems: Cart[] = [];\n private cartSubject = new BehaviorSubject(this.cartItems);\n\n private initializedSub = new BehaviorSubject(false);\n public initialized$ = this.initializedSub.asObservable();\n private firstInit = true;\n constructor(\n private http: HttpClient,\n private offerService: OfferService\n ) {}\n\n private updateSubjectAndLocalStorage() {\n this.cartSubject.next(this.cartItems);\n localStorage.setItem('cartItems', JSON.stringify(this.cartItems));\n }\n\n initCartFromLocalStorage() {\n setTimeout(() => {\n const storedCartItemsJson = localStorage.getItem('cartItems');\n if (storedCartItemsJson && this.firstInit) {\n let storedCartItems: Cart[] = JSON.parse(storedCartItemsJson);\n let observables: Observable[] = [];\n\n this.offerService\n .getOffers('paid')\n .pipe(\n map(paidOffers => paidOffers.map(offer => offer.id)),\n tap(offersIdArray => {\n storedCartItems = storedCartItems.filter(offer => offersIdArray.includes(offer.offer_id));\n observables = [...new Set(storedCartItems.map(item => item.offer_id))].map(id =>\n this.http.get(`offers/${id}/`)\n );\n }),\n switchMap(() => {\n return forkJoin(observables).pipe(\n map(arr => arr.map(offer => offer.variants.map(variant => variant.id)))\n );\n }),\n finalize(() => {\n this.firstInit = false;\n this.initializedSub.next(true);\n })\n )\n .subscribe(variantIds => {\n storedCartItems = storedCartItems.filter(offer => variantIds.flat().includes(offer.id));\n this.cartItems = storedCartItems;\n this.updateSubjectAndLocalStorage();\n });\n } else {\n this.initializedSub.next(true);\n }\n }, 10);\n }\n\n addToCart(offer: Offer, variant: OfferVariant): void {\n const existingItem = this.cartItems.find(cartItem => cartItem.id === variant.id);\n\n if (existingItem) {\n existingItem.quantity++;\n } else {\n //IMPORTANT! both interfaces own 'id' property name, bear in mind the 'id' in Cart interface should come from OfferVariant\n const newItem: Cart = { ...offer, ...variant, quantity: 1, offer_id: offer.id };\n this.cartItems.push(newItem);\n }\n this.updateSubjectAndLocalStorage();\n }\n\n removeItem(itemId: number) {\n const index = this.cartItems.findIndex(item => item.id === itemId);\n if (index !== -1) {\n this.cartItems.splice(index, 1);\n this.updateSubjectAndLocalStorage();\n }\n }\n\n getCart(): Observable {\n return this.cartSubject.asObservable();\n }\n\n getTotalQuantity(): Observable {\n return this.cartSubject.asObservable().pipe(\n map(items => {\n return items.reduce((totalQuantity, item) => totalQuantity + item.quantity, 0);\n })\n );\n }\n\n updateQuantity(itemId: number, value: number) {\n const existingItem = this.cartItems.find(cartItem => cartItem.id === itemId);\n if (existingItem) {\n existingItem.quantity += value;\n this.updateSubjectAndLocalStorage();\n }\n }\n\n getTotalPrice(): Observable {\n return this.cartSubject.asObservable().pipe(\n map(items => {\n return items.reduce((totalPrice, item) => totalPrice + item.price * item.quantity, 0);\n })\n );\n }\n\n clearCart() {\n localStorage.removeItem('cartItems');\n this.cartItems = [];\n this.cartSubject.next(this.cartItems);\n }\n\n payOrder(data: ApiFormCart): Observable {\n return this.http.post('orders/paid_order_offer/', data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Offer, OfferDetails } from '../models/offer.interface';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { OfferTypeType, OrderByType } from '../models/types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OfferService {\n constructor(private http: HttpClient) {}\n\n getOneOffer(id: number): Observable {\n return this.http.get(`offers/${id}/`);\n }\n\n getLandingPageOffers(): Observable {\n return this.http.get('offers/landing_page/');\n }\n\n getCarouselOffers(): Observable {\n return this.http.get('offers/promoted/');\n }\n\n getOtherOffersExcludingOne(id: number): Observable {\n const params = new HttpParams().set('exclude_id', id);\n return this.http.get('offers/random/', { params });\n }\n\n getOffers(offerType: OfferTypeType | null, orderBy?: OrderByType): Observable {\n let params = new HttpParams();\n if (offerType) params = params.set('offer_type', offerType);\n if (orderBy) params = params.set('order_by', orderBy);\n\n return this.http.get('offers/', { params });\n }\n}\n"," 2; else noCarousel\">\n
\n \n \n
\n
\n\n
\n \n
\n
\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport KeenSlider, { KeenSliderInstance } from 'keen-slider';\nimport { OfferCardComponent } from '../offer-card/offer-card.component';\nimport { Offer } from '../../../features/offers/models/offer.interface';\nimport { animationDuration } from '../../../core/constants/data';\n\n@Component({\n selector: 'app-mobile-carousel',\n standalone: true,\n imports: [CommonModule, OfferCardComponent],\n templateUrl: './mobile-carousel.component.html',\n styleUrls: ['../../../../../node_modules/keen-slider/keen-slider.min.css', './mobile-carousel.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MobileCarouselComponent implements AfterViewInit, OnDestroy {\n @Input({ required: true }) offers!: Offer[];\n @Input() enableLoop!: boolean;\n @ViewChild('sliderRef') sliderRef!: ElementRef;\n slider: KeenSliderInstance | null = null;\n\n ngAfterViewInit() {\n if (this.offers.length > 2) {\n this.slider = new KeenSlider(this.sliderRef.nativeElement, {\n loop: this.enableLoop,\n mode: 'free',\n slides: {\n perView: 2,\n spacing: 0,\n origin: this.enableLoop ? 0.5 : 0,\n },\n });\n }\n }\n\n ngOnDestroy() {\n setTimeout(() => {\n if (this.slider) this.slider.destroy();\n }, animationDuration);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Offer, OfferDetails } from '../../../features/offers/models/offer.interface';\nimport { Router, RouterLink } from '@angular/router';\nimport { Cart } from '../../../features/cart/cart.interface';\n\n@Component({\n selector: 'app-offer-card',\n standalone: true,\n imports: [CommonModule, RouterLink],\n templateUrl: './offer-card.component.html',\n styleUrls: ['./offer-card.component.scss'],\n})\nexport class OfferCardComponent {\n @Input() offer!: Offer | OfferDetails | Cart;\n\n constructor(private router: Router) {}\n\n goToDetails(id: number) {\n this.router.navigateByUrl(`/offers/${id}`);\n }\n}\n","
\n
\n
\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-how-to-use',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './how-to-use.component.html',\n styleUrls: ['./how-to-use.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HowToUseComponent {}\n","

Jak skorzystać ze zniżek?

\n
\n
\n
\"\"
\n

Kliknij \"Sprawdzam\"

\n
\n\n
\n
\"\"
\n

Wybierz interesującą Cię ofertę

\n
\n\n
\n
\"\"
\n

Skorzystaj z rabatu u naszego partnera

\n
\n
\n","

\n Kliknij i poznaj
\n oferty naszych partnerów\n

\n
\n \n
\n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OfferCardComponent } from '../../../../shared/components/offer-card/offer-card.component';\nimport { Offer } from '../../../offers/models/offer.interface';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { map } from 'rxjs';\nimport { MobileCarouselComponent } from '../../../../shared/components/mobile-carousel/mobile-carousel.component';\n\n@Component({\n selector: 'app-demo-offers',\n standalone: true,\n imports: [CommonModule, OfferCardComponent, MobileCarouselComponent],\n templateUrl: './demo-offers.component.html',\n styleUrls: ['./demo-offers.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DemoOffersComponent {\n @Input() offers!: Offer[];\n isXSmallScreen$ = this.breakpointObserver.observe(Breakpoints.XSmall).pipe(map(result => result.matches));\n\n constructor(private breakpointObserver: BreakpointObserver) {}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PartnersService {\n getDesktopSlides() {\n return [\n {\n logos: [\n { src: '4F_Logo.png' },\n { src: 'Answear_Logo.png' },\n { src: 'BodyChief_Logo.png' },\n { src: 'Bonito_Logo.png' },\n { src: 'Chocholowskie_termy_Logo.png' },\n { src: 'CostaCoffee_Logo.png' },\n { src: 'Dajar_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Duka_Logo.png' },\n { src: 'Empik_Logo.png' },\n { src: 'FlixBus_Logo.png' },\n { src: 'Frisco_Logo.png' },\n { src: 'Gerlach_logo_Logo.png' },\n { src: 'Hebe_Logo.png' },\n { src: 'LegalneLody_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Lerni_Logo.png' },\n { src: 'L_Occitane_Logo.png' },\n { src: 'Martes_Sport_Logo.png' },\n { src: 'Medicine_Logo.png' },\n { src: 'Mojcatering_Logo.png' },\n { src: 'NewBalance_Logo.png' },\n { src: 'NTFY_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Onet_Premium_Logo.png' },\n { src: 'SaladStory_Logo.png' },\n { src: 'Sephora_Logo.png' },\n { src: 'Smyk_Logo.png' },\n { src: 'Sphinx_Logo.png' },\n { src: 'Sportroom_Logo.png' },\n { src: 'Sun&Snow_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Suntago_Logo.png' },\n { src: 'SuperMenu_Logo.png' },\n { src: 'TaniaKsiazka_Logo.png' },\n { src: 'ThaiWok_Logo.png' },\n { src: 'Woblink_Logo.png' },\n { src: 'Wolt_Logo.png' },\n { src: 'Wyjotkowy_prezent_Logo.png' },\n { src: 'Zatorland_Logo.png' },\n ],\n },\n ];\n }\n getTabletSlides() {\n return [\n {\n logos: [\n { src: '4F_Logo.png' },\n { src: 'Answear_Logo.png' },\n { src: 'BodyChief_Logo.png' },\n { src: 'Bonito_Logo.png' },\n { src: 'Chocholowskie_termy_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'CostaCoffee_Logo.png' },\n { src: 'Dajar_Logo.png' },\n { src: 'Duka_Logo.png' },\n { src: 'Empik_Logo.png' },\n { src: 'FlixBus_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Frisco_Logo.png' },\n { src: 'Gerlach_logo_Logo.png' },\n { src: 'Hebe_Logo.png' },\n { src: 'LegalneLody_Logo.png' },\n { src: 'Lerni_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'L_Occitane_Logo.png' },\n { src: 'Martes_Sport_Logo.png' },\n { src: 'Medicine_Logo.png' },\n { src: 'Mojcatering_Logo.png' },\n { src: 'NewBalance_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'NTFY_Logo.png' },\n { src: 'Onet_Premium_Logo.png' },\n { src: 'SaladStory_Logo.png' },\n { src: 'Sephora_Logo.png' },\n { src: 'Smyk_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'Sphinx_Logo.png' },\n { src: 'Sportroom_Logo.png' },\n { src: 'Sun&Snow_Logo.png' },\n { src: 'Suntago_Logo.png' },\n { src: 'SuperMenu_Logo.png' },\n ],\n },\n {\n logos: [\n { src: 'TaniaKsiazka_Logo.png' },\n { src: 'ThaiWok_Logo.png' },\n { src: 'Woblink_Logo.png' },\n { src: 'Wolt_Logo.png' },\n { src: 'Wyjotkowy_prezent_Logo.png' },\n { src: 'Zatorland_Logo.png' },\n ],\n },\n ];\n }\n getMobileSlides() {\n return [\n {\n logos: [{ src: '4F_Logo.png' }, { src: 'Answear_Logo.png' }, { src: 'BodyChief_Logo.png' }],\n },\n {\n logos: [{ src: 'Bonito_Logo.png' }, { src: 'Chocholowskie_termy_Logo.png' }, { src: 'CostaCoffee_Logo.png' }],\n },\n {\n logos: [{ src: 'Dajar_Logo.png' }, { src: 'Duka_Logo.png' }, { src: 'Empik_Logo.png' }],\n },\n {\n logos: [{ src: 'FlixBus_Logo.png' }, { src: 'Frisco_Logo.png' }, { src: 'Gerlach_logo_Logo.png' }],\n },\n {\n logos: [{ src: 'Hebe_Logo.png' }, { src: 'LegalneLody_Logo.png' }, { src: 'Lerni_Logo.png' }],\n },\n {\n logos: [{ src: 'L_Occitane_Logo.png' }, { src: 'Martes_Sport_Logo.png' }, { src: 'Medicine_Logo.png' }],\n },\n {\n logos: [{ src: 'Mojcatering_Logo.png' }, { src: 'NewBalance_Logo.png' }, { src: 'NTFY_Logo.png' }],\n },\n {\n logos: [{ src: 'Onet_Premium_Logo.png' }, { src: 'SaladStory_Logo.png' }, { src: 'Sephora_Logo.png' }],\n },\n {\n logos: [{ src: 'Smyk_Logo.png' }, { src: 'Sphinx_Logo.png' }, { src: 'Sportroom_Logo.png' }],\n },\n {\n logos: [{ src: 'Sun&Snow_Logo.png' }, { src: 'Suntago_Logo.png' }, { src: 'SuperMenu_Logo.png' }],\n },\n {\n logos: [{ src: 'TaniaKsiazka_Logo.png' }, { src: 'ThaiWok_Logo.png' }, { src: 'Woblink_Logo.png' }],\n },\n {\n logos: [{ src: 'Wolt_Logo.png' }, { src: 'Wyjotkowy_prezent_Logo.png' }, { src: 'Zatorland_Logo.png' }],\n },\n ];\n }\n}\n","

Nasi Partnerzy

\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 { AfterViewInit, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport KeenSlider, { KeenSliderInstance } from 'keen-slider';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { map, Subscription } from 'rxjs';\nimport { animationDuration } from '../../../../core/constants/data';\nimport { PartnersService } from './partners.service';\n\nconst animation = { duration: 50000, easing: (t: any) => t };\n@Component({\n selector: 'app-partners',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './partners.component.html',\n styleUrls: ['../../../../../../node_modules/keen-slider/keen-slider.min.css', './partners.component.scss'],\n})\nexport class PartnersComponent implements AfterViewInit, OnDestroy {\n private breakpointSubscriptions: Subscription[] = [];\n slidesDesktop = this.partnerService.getDesktopSlides();\n slidesTablet = this.partnerService.getTabletSlides();\n slidesMobile = this.partnerService.getMobileSlides();\n\n //important to test it on mobiles and not DOM environment\n @ViewChild('sliderRef') sliderRef!: ElementRef;\n slider!: KeenSliderInstance | null;\n isXSmallScreen$ = this.breakpointObserver.observe(Breakpoints.XSmall).pipe(map(result => result.matches));\n isSmallScreen$ = this.breakpointObserver.observe(Breakpoints.Small).pipe(map(result => result.matches));\n\n constructor(\n private breakpointObserver: BreakpointObserver,\n private partnerService: PartnersService\n ) {}\n\n ngAfterViewInit() {\n this.subscribeToBreakPoints();\n this.buildSlider();\n }\n\n buildSlider() {\n if (!this.slider) {\n this.slider = new KeenSlider(this.sliderRef.nativeElement, {\n loop: true,\n renderMode: 'performance',\n drag: true,\n created(s) {\n s.moveToIdx(5, true, animation);\n },\n updated(s) {\n s.moveToIdx(s.track.details.abs + 5, true, animation);\n },\n animationEnded(s) {\n s.moveToIdx(s.track.details.abs + 5, true, animation);\n },\n });\n }\n }\n\n subscribeToBreakPoints() {\n const xSmallSubscription = this.isXSmallScreen$.subscribe(matches => {\n if (matches) {\n this.refreshSlider();\n }\n });\n this.breakpointSubscriptions.push(xSmallSubscription);\n\n const smallSubscription = this.isSmallScreen$.subscribe(matches => {\n if (matches) {\n this.refreshSlider();\n }\n });\n this.breakpointSubscriptions.push(smallSubscription);\n }\n\n refreshSlider() {\n if (this.slider) this.slider.destroy();\n this.slider = null;\n this.buildSlider();\n }\n\n ngOnDestroy() {\n this.breakpointSubscriptions.forEach(subscription => subscription.unsubscribe());\n setTimeout(() => {\n if (this.slider) this.slider.destroy();\n }, animationDuration);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-contact',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './contact.component.html',\n styleUrls: ['./contact.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactComponent {\n constructor(private router: Router) {}\n navigateToForm() {\n this.router.navigate(['/forms/contact']);\n }\n}\n","
\n
\n

Masz pytanie?

\n

Skontaktuj się z nami!

\n \n
\n
\n","
\n
\n \n
\n \n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HowToUseComponent } from './components/how-to-use/how-to-use.component';\nimport { DemoOffersComponent } from './components/demo-offers/demo-offers.component';\nimport { PartnersComponent } from './components/partners/partners.component';\nimport { ContactComponent } from './components/contact/contact.component';\nimport { OfferService } from '../offers/services/offer.service';\nimport { Offer } from '../offers/models/offer.interface';\nimport { Observable, Subscription } from 'rxjs';\nimport { UtilNavigationService } from '../../core/services/util-navigation.service';\n\n@Component({\n selector: 'app-landing-page',\n standalone: true,\n imports: [CommonModule, HowToUseComponent, DemoOffersComponent, PartnersComponent, ContactComponent],\n templateUrl: './landing-page.component.html',\n styleUrls: ['./landing-page.component.scss'],\n})\nexport class LandingPageComponent implements AfterViewInit, OnDestroy {\n offers$: Observable = this.offerService.getLandingPageOffers();\n anchorSub!: Subscription;\n constructor(\n private offerService: OfferService,\n private utilNavigationService: UtilNavigationService\n ) {}\n\n ngAfterViewInit() {\n this.anchorSub = this.utilNavigationService.captureFragmentAndScroll().subscribe();\n }\n\n ngOnDestroy(): void {\n this.anchorSub.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiToken } from '../models/api-token.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TokenService {\n getToken(): string | undefined {\n return window.localStorage['authToken'];\n }\n\n getTokenAndExp(): ApiToken {\n return {\n token: window.localStorage['authToken'],\n expiry: window.localStorage['tokenExpiry'],\n };\n }\n\n isTokenValid(): boolean {\n const token = window.localStorage['authToken'];\n const exp = window.localStorage['tokenExpiry'];\n if (!token || !exp) {\n return false;\n }\n const now = new Date();\n return new Date(exp) > now;\n }\n\n saveTokenAndExp(apiToken: ApiToken): void {\n window.localStorage['authToken'] = apiToken.token;\n window.localStorage['tokenExpiry'] = apiToken.expiry;\n }\n\n destroyToken(): void {\n window.localStorage.removeItem('authToken');\n window.localStorage.removeItem('tokenExpiry');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable, tap } from 'rxjs';\nimport { ApiToken } from '../models/api-token.interface';\nimport { HttpClient } from '@angular/common/http';\nimport { TokenService } from './token.service';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private authSubject = new BehaviorSubject(false);\n\n public isAuthenticated = this.authSubject.asObservable().pipe(\n distinctUntilChanged(),\n map(() => this.tokenService.isTokenValid())\n );\n constructor(\n private readonly http: HttpClient,\n private readonly tokenService: TokenService,\n private readonly router: Router\n ) {}\n\n login(token: string): Observable {\n void this.router.navigate(['/welcome']);\n this.purgeAuth();\n return this.http\n .post(`api/auth/login/`, { token })\n .pipe(tap((apiToken: ApiToken) => this.setAuth(apiToken)));\n }\n\n logout(): void {\n const token = this.tokenService.getToken();\n this.http.post(`api/auth/logout/`, { token }).subscribe();\n this.purgeAuth();\n void this.router.navigate(['/welcome']);\n }\n\n setAuth(apiToken: ApiToken): void {\n this.tokenService.saveTokenAndExp(apiToken);\n\n if (this.tokenService.isTokenValid()) {\n this.authSubject.next(true);\n } else {\n this.purgeAuth();\n }\n }\n\n purgeAuth(): void {\n this.tokenService.destroyToken();\n this.authSubject.next(false);\n }\n}\n","export const environment = {\n env: 'prod',\n api: 'https://apirabaty.santander.pl/',\n externalAuthUrl: 'https://www.centrum24.pl/centrum24-web/multi/vas-retail',\n recaptcha: {\n siteKey: '6LflS98nAAAAAL-EmaGuunScGbYp57VVolJn1ued',\n },\n};\n","import { CanActivateFn } from '@angular/router';\nimport { AuthService } from '../services/auth.service';\nimport { inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { environment } from '../../../environments/environment';\n\nexport const authGuard: CanActivateFn = () => {\n const isAuthenticated = inject(AuthService).isAuthenticated;\n\n return isAuthenticated.pipe(\n map(isAuthenticated => {\n if (isAuthenticated) {\n return true;\n } else {\n window.location.href = `${environment.externalAuthUrl}`;\n return false;\n }\n })\n );\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { LandingPageComponent } from './features/landing-page/landing-page.component';\nimport { authGuard } from './core/guards/auth.guard';\n\nconst routes: Routes = [\n {\n path: 'welcome',\n component: LandingPageComponent,\n },\n {\n path: 'offers',\n loadComponent: () => import('./features/offers/offers.component').then(m => m.OffersComponent),\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/offers/pages/offers-list/offers-list.component').then(m => m.OffersListComponent),\n canActivate: [authGuard],\n },\n {\n path: ':id',\n loadComponent: () =>\n import('./features/offers/pages/offer-details/offer-details.component').then(m => m.OfferDetailsComponent),\n canActivate: [authGuard],\n },\n ],\n },\n {\n path: 'regulations',\n loadComponent: () => import('./features/regulations/regulations.component').then(m => m.RegulationsComponent),\n children: [\n {\n path: '',\n redirectTo: 'platform',\n pathMatch: 'full',\n },\n {\n path: 'platform',\n loadComponent: () =>\n import('./features/regulations/pages/platform/platform.component').then(m => m.PlatformComponent),\n },\n {\n path: 'privacy-policy',\n loadComponent: () =>\n import('./features/regulations/pages/privacy-policy/privacy-policy.component').then(\n m => m.PrivacyPolicyComponent\n ),\n },\n ],\n },\n {\n path: 'forms',\n loadComponent: () => import('./features/forms/forms.component').then(m => m.FormsComponent),\n children: [\n {\n path: 'contact',\n loadComponent: () => import('./features/forms/pages/contact/contact.component').then(m => m.ContactComponent),\n },\n {\n path: 'partner',\n loadComponent: () => import('./features/forms/pages/partner/partner.component').then(m => m.PartnerComponent),\n },\n ],\n },\n {\n path: 'order-history',\n loadComponent: () => import('./features/order-history/order-history.component').then(m => m.OrderHistoryComponent),\n canActivate: [authGuard],\n },\n {\n path: 'cart',\n loadComponent: () => import('./features/cart/cart.component').then(m => m.CartComponent),\n canActivate: [authGuard],\n },\n {\n path: 'checkout-success',\n loadComponent: () =>\n import('./features/checkout-success/checkout-success.component').then(m => m.CheckoutSuccessComponent),\n canActivate: [authGuard],\n },\n {\n path: '**',\n redirectTo: 'welcome',\n },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, {\n scrollPositionRestoration: 'disabled',\n anchorScrolling: 'enabled',\n scrollOffset: [0, 72],\n }),\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { animationDuration } from '../constants/data';\n\nconst options = [\n transition('*<=>*', [style({ opacity: 0 }), animate(`${animationDuration}ms ease-in-out`, style({ opacity: 1 }))]),\n];\n\nexport const routingAnimation = trigger('fadeAnimation', options);\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, filter, finalize, Subscription, take } from 'rxjs';\nimport { AuthService } from './auth.service';\nimport { TokenService } from './token.service';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { CartStoreService } from '../../features/cart/cart-store.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppInitService {\n private initializedSub = new BehaviorSubject(false);\n public initialized$ = this.initializedSub.asObservable();\n private navSubscription!: Subscription;\n constructor(\n private authService: AuthService,\n private tokenService: TokenService,\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private cartService: CartStoreService\n ) {}\n\n private loginWithUrlToken(token: string) {\n this.authService\n .login(token)\n .pipe(\n finalize(() => {\n this.initFinish();\n })\n )\n .subscribe({\n next: () => {\n this.cartService.initCartFromLocalStorage();\n this.router.navigate(['/offers']);\n },\n error: err => {\n console.log(err);\n },\n });\n }\n\n private checkAuthCookies() {\n const isAuth: boolean = this.tokenService.isTokenValid();\n if (isAuth) {\n this.authService.setAuth(this.tokenService.getTokenAndExp());\n this.cartService.initCartFromLocalStorage();\n }\n this.initFinish();\n }\n\n private initFinish() {\n this.navSubscription.unsubscribe();\n this.initializedSub.next(true);\n }\n\n public initializeApp(): void {\n this.navSubscription = this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n take(1)\n )\n .subscribe(() => {\n const userTokenFromUrl = this.activatedRoute.snapshot.queryParamMap.get('userToken');\n\n this.router.navigate([], {\n skipLocationChange: true,\n queryParams: { userToken: null },\n queryParamsHandling: 'merge',\n });\n return userTokenFromUrl ? this.loginWithUrlToken(userTokenFromUrl) : this.checkAuthCookies();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { fromEvent, map, merge, Observable, startWith, switchMap, timer } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserActivityService {\n private inactivityTime = 15 * 60 * 1000; // 15 minutes\n\n startMonitoring(): Observable {\n const mouseMove$ = fromEvent(document, 'mousemove').pipe(map(() => true));\n const click$ = fromEvent(document, 'click').pipe(map(() => true));\n const keydown$ = fromEvent(document, 'keydown').pipe(map(() => true));\n const touchstart$ = fromEvent(document, 'touchstart').pipe(map(() => true));\n const touchmove$ = fromEvent(document, 'touchmove').pipe(map(() => true));\n\n return merge(mouseMove$, click$, keydown$, touchstart$, touchmove$).pipe(\n startWith(true),\n switchMap(() => timer(this.inactivityTime).pipe(map(() => false)))\n );\n }\n}\n","import { trigger, state, style, transition, animate } from '@angular/animations';\n\nexport const hamburguerXAnimation = trigger('hamburguerX', [\n /*\n state 'hamburguer' is the regular 3 lines style.\n states 'topX', 'hide', and 'bottomX' are used to style the X element\n */\n state('hamburguer', style({})),\n // style top bar to create the X\n state(\n 'topX',\n style({\n transform: 'rotate(45deg)',\n transformOrigin: 'left',\n width: '28px',\n margin: '8px',\n borderRadius: '20px',\n backgroundColor: '#ec0000',\n })\n ),\n // hides element when create the X (used in the middle bar)\n state(\n 'hide',\n style({\n opacity: 0,\n })\n ),\n // style bottom bar to create the X\n state(\n 'bottomX',\n style({\n transform: 'rotate(-45deg)',\n transformOrigin: 'left',\n width: '28px',\n margin: '8px',\n borderRadius: '20px',\n backgroundColor: '#ec0000',\n })\n ),\n transition('* => *', [\n animate('.2s'), // controls animation speed\n ]),\n]);\n","\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { hamburguerXAnimation } from './mobile-nav.animations';\nimport { RouterLink } from '@angular/router';\nimport { UtilNavigationService } from '../../../../services/util-navigation.service';\nimport { CartStoreService } from '../../../../../features/cart/cart-store.service';\nimport { AuthService } from '../../../../services/auth.service';\nimport { environment } from '../../../../../../environments/environment';\n\n@Component({\n selector: 'app-mobile-nav',\n standalone: true,\n imports: [CommonModule, RouterLink],\n templateUrl: './mobile-nav.component.html',\n styleUrls: ['./mobile-nav.component.scss'],\n animations: [hamburguerXAnimation],\n})\nexport class MobileNavComponent {\n isNavigationOpen = false;\n totalCartQuantity$ = this.cartStoreService.getTotalQuantity();\n isAuthenticated = this.authService.isAuthenticated;\n\n constructor(\n private utilNavigationService: UtilNavigationService,\n private cartStoreService: CartStoreService,\n private authService: AuthService\n ) {}\n\n toggleNav() {\n this.isNavigationOpen = !this.isNavigationOpen;\n if (this.isNavigationOpen) {\n document.body.classList.add('disable-scroll');\n } else {\n document.body.classList.remove('disable-scroll');\n }\n }\n\n navigate(targetPath: string, anchor?: string) {\n this.isNavigationOpen = false;\n document.body.classList.remove('disable-scroll');\n setTimeout(() => {\n this.utilNavigationService.navigateToPageThatContainsFragment(targetPath, anchor);\n }, 50);\n }\n\n login() {\n this.toggleNav();\n window.location.href = `${environment.externalAuthUrl}`;\n }\n\n logout() {\n this.authService.logout();\n this.toggleNav();\n }\n}\n","import { Directive, ElementRef, HostListener, Inject, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({\n selector: '[appScrollFixNavbar]',\n standalone: true,\n})\nexport class ScrollFixNavbarDirective {\n private scrollThreshold = 12;\n constructor(\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document,\n private hostElement: ElementRef\n ) {}\n\n @HostListener('document:scroll') onScroll(): void {\n const scrollPosition = window.scrollY || this.document.documentElement.scrollTop || this.document.body.scrollTop;\n\n if (scrollPosition > this.scrollThreshold) {\n this.renderer.addClass(this.hostElement.nativeElement, 'fixed-navbar');\n } else {\n this.renderer.removeClass(this.hostElement.nativeElement, 'fixed-navbar');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { AdminBanner } from './header.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HeaderService {\n constructor(private http: HttpClient) {}\n\n getAdminBanner(): Observable {\n return this.http.get('banners/active_or_default/');\n }\n}\n","
\n \n
\n
\n \n \n \n \n
\n \n
\n
\n
\n

\n

\n \n \n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterLink } from '@angular/router';\nimport { Subject, Subscription, takeUntil } from 'rxjs';\nimport { MobileNavComponent } from './components/mobile-nav/mobile-nav.component';\nimport { UtilNavigationService } from '../../services/util-navigation.service';\nimport { CartStoreService } from '../../../features/cart/cart-store.service';\nimport { AuthService } from '../../services/auth.service';\nimport { HeaderService } from './header.service';\nimport { AdminBanner } from './header.interface';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { ScrollFixNavbarDirective } from '../../../shared/directives/scroll-fix-navbar.directive';\nimport { environment } from '../../../../environments/environment';\n@Component({\n selector: 'app-layout-header',\n standalone: true,\n imports: [CommonModule, RouterLink, MobileNavComponent, ScrollFixNavbarDirective],\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n private readonly destroy$: Subject = new Subject();\n isAuthenticated!: boolean;\n totalCartQuantity$ = this.cartStoreService.getTotalQuantity();\n adminBanner!: AdminBanner;\n isXSmallScreen!: boolean;\n private breakpointSubscription!: Subscription;\n constructor(\n private router: Router,\n private utilNavigationService: UtilNavigationService,\n private cartStoreService: CartStoreService,\n private authService: AuthService,\n private headerService: HeaderService,\n private breakpointObserver: BreakpointObserver\n ) {}\n\n ngOnInit(): void {\n this.authService.isAuthenticated.pipe(takeUntil(this.destroy$)).subscribe(boolean => {\n this.isAuthenticated = boolean;\n this.loadAdminBanner();\n });\n\n this.breakpointSubscription = this.breakpointObserver.observe(Breakpoints.XSmall).subscribe(result => {\n this.isXSmallScreen = result.matches;\n });\n }\n\n loadAdminBanner() {\n this.headerService.getAdminBanner().subscribe(data => {\n this.adminBanner = data;\n });\n }\n setAdminBanner(): string | void {\n if (this.adminBanner) {\n const path = this.isXSmallScreen ? this.adminBanner.image_mobile : this.adminBanner.image_desktop;\n return `url(${path})`;\n }\n }\n\n navigate(targetPath: string, anchor?: string) {\n this.utilNavigationService.navigateToPageThatContainsFragment(targetPath, anchor);\n }\n\n login() {\n window.location.href = `${environment.externalAuthUrl}`;\n }\n\n logout() {\n this.authService.logout();\n }\n\n ngOnDestroy() {\n this.breakpointSubscription.unsubscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { UtilNavigationService } from '../../services/util-navigation.service';\n\n@Component({\n selector: 'app-layout-footer',\n standalone: true,\n imports: [CommonModule, RouterLink],\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FooterComponent {\n constructor(private utilNavigationService: UtilNavigationService) {}\n navigateToRegulations(targetPath: string) {\n this.utilNavigationService.navigateToPageThatContainsFragment(targetPath, 'menu');\n }\n}\n","\n","import { Component, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-loader',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnInit, OnDestroy {\n constructor(private renderer: Renderer2) {}\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'disable-scroll');\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'disable-scroll');\n }\n}\n","
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { routingAnimation } from './core/animations/fade.animations';\nimport { delay, filter, withLatestFrom } from 'rxjs';\nimport { AppInitService } from './core/services/app-init.service';\nimport { UserActivityService } from './core/services/user-activity.service';\nimport { AuthService } from './core/services/auth.service';\n\n@Component({\n selector: 'app-root',\n template: `\n \n \n
\n \n
\n \n `,\n animations: [routingAnimation],\n styles: [],\n})\nexport class AppComponent implements OnInit {\n isLoading = true;\n animateRouting = false;\n\n constructor(\n private appInitService: AppInitService,\n private router: Router,\n private userActivityService: UserActivityService,\n private authService: AuthService\n ) {}\n\n ngOnInit(): void {\n this.initApp();\n this.monitorUserActivity();\n this.routingAnimationHelper();\n }\n\n initApp() {\n this.appInitService.initialized$.pipe(delay(1500)).subscribe(initialized => {\n this.isLoading = !initialized;\n });\n }\n\n monitorUserActivity() {\n this.userActivityService\n .startMonitoring()\n .pipe(withLatestFrom(this.authService.isAuthenticated))\n .subscribe(([isActive, isAuthenticated]) => {\n if (!isActive && isAuthenticated) {\n this.authService.logout();\n }\n });\n }\n\n routingAnimationHelper() {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n this.animateRouting = !this.animateRouting;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n const apiReq = request.clone({ url: `${environment.api}${request.url}` });\n return request.url.startsWith('http') ? next.handle(request) : next.handle(apiReq);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TokenService } from '../services/token.service';\nimport { environment } from '../../../environments/environment';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n constructor(private readonly tokenService: TokenService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n const reqOrigin = new URL(request.url).origin;\n const apiOrigin = new URL(environment.api).origin;\n\n if (reqOrigin === apiOrigin && this.tokenService.isTokenValid()) {\n const token = this.tokenService.getToken();\n const apiReq = request.clone({\n setHeaders: {\n ...(token ? { Authorization: `Token ${token}` } : {}),\n },\n });\n return next.handle(apiReq);\n } else {\n return next.handle(request);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, Observable, throwError } from 'rxjs';\nimport { environment } from '../../../environments/environment';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(request).pipe(\n catchError(error => {\n if (error instanceof HttpErrorResponse && (error.status === 401 || error.status === 403)) {\n window.location.href = `${environment.externalAuthUrl}`;\n }\n return throwError(() => error);\n })\n );\n }\n}\n","import { APP_INITIALIZER, DEFAULT_CURRENCY_CODE, LOCALE_ID, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HeaderComponent } from './core/layout/header/header.component';\nimport { FooterComponent } from './core/layout/footer/footer.component';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { ApiInterceptor } from './core/interceptors/api.interceptor';\nimport { registerLocaleData } from '@angular/common';\nimport { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';\nimport { AppInitService } from './core/services/app-init.service';\nimport { LoaderComponent } from './shared/components/loader/loader.component';\nimport localePl from '@angular/common/locales/pl';\nimport { RECAPTCHA_V3_SITE_KEY, RecaptchaV3Module } from 'ng-recaptcha';\nimport { environment } from '../environments/environment';\nimport { TokenInterceptor } from './core/interceptors/token.interceptor';\nimport { ErrorInterceptor } from './core/interceptors/error.interceptor';\n\nconst MAT_DIALOG_GLOBAL_CONFIG: MatDialogConfig = { maxWidth: '90vw', minWidth: '300px' };\nregisterLocaleData(localePl);\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n HttpClientModule,\n RecaptchaV3Module,\n HeaderComponent,\n FooterComponent,\n MatDialogModule,\n LoaderComponent,\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (appLoadService: AppInitService) => () => appLoadService.initializeApp(),\n deps: [AppInitService],\n multi: true,\n },\n { provide: LOCALE_ID, useValue: 'pl-PL' },\n { provide: DEFAULT_CURRENCY_CODE, useValue: 'PLN' },\n { provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n {\n provide: RECAPTCHA_V3_SITE_KEY,\n useValue: environment.recaptcha.siteKey,\n },\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: MAT_DIALOG_GLOBAL_CONFIG },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"x_google_ignoreList":[]}