{"version":3,"file":"fas-payment-mobile.mjs","sources":["../../../projects/fas-payment/src/lib/fas-payment.service.ts","../../../projects/fas-payment/src/lib/fas-payment.component.ts","../../../projects/fas-payment/src/lib/fas-payment/services/split-text.pipe.ts","../../../projects/fas-payment/src/lib/fas-payment/services/api/access-from-book.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/config.service.ts","../../../projects/fas-payment/src/lib/fas-payment/components/custom-components/book/book.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/custom-components/book/book.component.html","../../../projects/fas-payment/src/lib/fas-payment/services/selected-plan.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/login-status.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/shared-data.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/api/new-payment.service.ts","../../../projects/fas-payment/src/lib/fas-payment/components/offer/offer.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/offer/offer.component.html","../../../projects/fas-payment/src/lib/fas-payment/services/move-focus.helpers.ts","../../../projects/fas-payment/src/lib/fas-payment/components/card/card.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/card/card.component.html","../../../projects/fas-payment/src/lib/fas-payment/services/api/invoice-data.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/api/my-account.service.ts","../../../projects/fas-payment/src/lib/fas-payment/components/summary/summary.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/summary/summary.component.html","../../../projects/fas-payment/src/lib/fas-payment/services/api/subscriptions.service.ts","../../../projects/fas-payment/src/lib/fas-payment/services/api/payment-success.service.ts","../../../projects/fas-payment/src/lib/fas-payment/components/success/success.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/success/success.component.html","../../../projects/fas-payment/src/lib/fas-payment/services/api/payment-canceled.service.ts","../../../projects/fas-payment/src/lib/fas-payment/components/failure/failure.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/failure/failure.component.html","../../../projects/fas-payment/src/lib/fas-payment/components/trial/trial.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/trial/trial.component.html","../../../projects/fas-payment/src/lib/fas-payment/components/main/main.component.ts","../../../projects/fas-payment/src/lib/fas-payment/components/main/main.component.html","../../../projects/fas-payment/src/lib/fas-payment/fas-payment.module.ts","../../../projects/fas-payment/src/public-api.ts","../../../projects/fas-payment/src/fas-payment-mobile.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FasPaymentService {\n\n  constructor() { }\n}\n","import {Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-fas-payment',\n  standalone: false,\n  template: `<p>work</p>`,\n  styles: [``]\n})\nexport class FasPaymentComponent{\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'splitText',\n  standalone: true,\n})\nexport class SplitTextPipe implements PipeTransform {\n\n  transform(value: string, separator: string, part: number): string {\n    if (!value) return value;\n    const parts = value.split(separator);\n    return parts[part] || '';\n  }\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, inject, Injectable } from '@angular/core';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { IAccessFromBookIm } from '../../../../fas-payments/access-from-book-im.model';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AccessFromBookService {\n  http = inject(HttpClient);\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {}\n\n  headers = new HttpHeaders({\n    Authorization: `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTg3ZDgwNC1mZWZkLTRhNjMtOTUxMi1iYzVjYmQzMzk1MDciLCJqdGkiOiIxZmI1MjhjNS1lZjVmLTRmNzAtYWUyNy1mY2MzOGE0YTlmZDEiLCJMYXN0VXNlZENvbXBhbnlHdWlkIjoiMDhkYzJlZTUtZTEzZi00MjZjLTg5NDctMDA4ODExMDcwZWI5IiwiTGFuZ3VhZ2UiOiJwbCIsIkRpc3BsYXlOYW1lIjoiS2FjcGVyIEt3aWVrIiwiRW1haWwiOiJrd2llay5rcEBnbWFpbC5jb20iLCJVc2VyQWNjb3VudE1vZHVsZXMiOiIiLCJSb2xlcyI6IlBsYXRmb3JtT3BlcmF0b3IiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJQbGF0Zm9ybU9wZXJhdG9yIiwiZXhwIjoxNzI5NDI3MDA2LCJpc3MiOiJDdXN0b21lckFsZXJ0SXNzdWVyIiwiYXVkIjoiQ3VzdG9tZXJBbGVydEF1ZGllbmNlIn0.NjmW4kN4uyQJZmgklI4MUstCANWUij67Sl4X2yhKlmU`,\n    'Content-Type': 'application/json',\n  });\n\n  postNewPaymentSubscription$(body: IAccessFromBookIm): Observable<any> {\n    return this.http.post<any>(this.config.apiUrl + '/AccessFromBook',body);\n  }\n}\n","import { inject, Inject, Injectable } from '@angular/core';\nimport { FAS_PAYMENT_CONFIG } from '../fas-payment.module';\nimport { FasPaymentConfig } from '../models/fas-payment-config';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, of, switchMap } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConfigService {\n\n  public getConfig$: BehaviorSubject<FasPaymentConfig>;\n  public getContent$: BehaviorSubject<any> = new BehaviorSubject({});\n  public getMainColor$: BehaviorSubject<string> = new BehaviorSubject('');\n  public getUseLocalstorage$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n  public getCheckIsLogged$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n  private defaultConfig: FasPaymentConfig = {\n    apiUrl: '',\n    mainColor: 'red-600',\n    contentConfigUrl: '../../../assets/content-config.json',\n    useLocalstorage: false,\n    checkIsLogged:false\n  }\n\n  private http = inject(HttpClient)\n\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n    const outConfig = { ...this.defaultConfig, ...config };\n    this.getConfig$ = new BehaviorSubject(outConfig);\n    outConfig.mainColor ? this.getMainColor$.next(outConfig.mainColor) : null;\n    outConfig.useLocalstorage ? this.getUseLocalstorage$.next(outConfig.useLocalstorage): null;\n    outConfig.checkIsLogged ? this.getCheckIsLogged$.next(outConfig.checkIsLogged): null;\n\n    this.http.get<any>(outConfig.contentConfigUrl).subscribe(res => {\n      this.getContent$.next(res);\n    })\n    \n  }\n\n\n\n}\n\n","import { IPlatformSubscriptionPlanVm } from '../../../../../fas-payments/platform-subscription-plan-vm.model';\nimport { IAccessFromBookIm } from '../../../../../fas-payments/access-from-book-im.model';\nimport { SplitTextPipe } from '../../../services/split-text.pipe';\nimport { ConfigService } from '../../../services/config.service';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport {\n  ReactiveFormsModule,\n  FormBuilder,\n  Validators,\n  FormGroup,\n} from '@angular/forms';\nimport { AccessFromBookService } from '../../../services/api/access-from-book.service';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'lib-book',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ButtonModule,\n    SplitTextPipe,\n    InputTextModule,\n    ReactiveFormsModule,\n  ],\n  templateUrl: './book.component.html',\n  styleUrl: './book.component.css',\n})\nexport class BookComponent {\n  @Input() bookOffer!: IPlatformSubscriptionPlanVm;\n\n  constructor(\n    private accessFromBookService: AccessFromBookService,\n    private configService: ConfigService,\n    private formBuilder: FormBuilder,\n    private router: Router\n  ) {}\n\n  public loadingBookBtn: boolean = false;\n  public splitBadgeText!: { price: string; period: string };\n  public plans!: IPlatformSubscriptionPlanVm[];\n  public bookForm!: FormGroup;\n  public content: any = null;\n  public mainColor = '';\n  public submitBookForm = false;\n  public errorMessages = {\n    global: '',\n    login: [],\n    password: [],\n  };\n\n  ngOnInit() {\n    this.configService.getContent$.subscribe((content) => {\n      if (content) {\n        this.content = content;\n      }\n    });\n\n    this.configService.getMainColor$.subscribe(\n      (color) => (this.mainColor = color)\n    );\n\n    this.bookForm = this.formBuilder.group({\n      loginBook: [, [Validators.required]],\n      passwordBook: [, [Validators.required]],\n    });\n  }\n\n  nextStep() {\n    this.submitBookForm = true;\n    if (this.bookForm.valid) {\n      this.loadingBookBtn = true;\n      const dataToPut: IAccessFromBookIm = {\n        login: this.bookForm.get('loginBook')?.value,\n        pass: this.bookForm.get('passwordBook')?.value,\n      };\n      this.accessFromBookService\n        .postNewPaymentSubscription$(dataToPut)\n        .subscribe(\n          (res) => {\n            this.submitBookForm = false;\n            this.loadingBookBtn = false;\n            if (res.success === true) {\n                this.router.navigate(['/']).then(() => {\n                  window.location.reload();\n                });\n            } else {\n              this.errorMessages = {\n                global: res.message,\n                login: res?.error?.errors ? res?.error?.errors['Login'] : [],\n                password: res?.error?.errors ? res?.error?.errors['Pass'] : [],\n              };\n            }\n          },\n          (err) => {\n            this.loadingBookBtn = false;\n            console.error(err);\n            this.errorMessages = {\n              global: typeof err.error === 'string' ? err.error : err.message,\n              login: err.error.errors ? err.error.errors['Login'] : [],\n              password: err.error.errors ? err.error.errors['Pass'] : [],\n            };\n          }\n        );\n    }\n  }\n}\n","<div\n*ngIf=\"bookOffer\"\n    class=\"shadow-2 h-full card-book-container\"\n    [ngClass]=\"\n      bookOffer.mostPopular ? 'main-price-container border-' + mainColor : ''\n    \"\n  >\n    <div class=\"flex flex-column justify-content-between h-full\">\n      <div>\n        <div class=\"flex flex-column justify-content-start gap-5 card-header\">\n          <div\n            class=\"font-bold text-2xl text-center plan-name\">\n            {{ bookOffer.planName }}\n          </div>\n          <div class=\"font-bold text-base text-center plan-title\">\n            {{ bookOffer.title }}\n          </div>\n            <form [formGroup]=\"bookForm\">\n              <label class=\"book-primary-label block\" for=\"loginBook\">{{\n                content?.customOffer?.book?.loginBook\n              }}</label>\n              <input\n                pInputText\n                type=\"text\"\n                class=\"w-full primary-input\"\n                id=\"loginBook\"\n                name=\"loginBook\"\n                formControlName=\"loginBook\"\n                [placeholder]=\"content?.customOffer?.book?.loginBook\"\n              />\n              <div class=\"error-container\">\n                <em class=\"error\">{{ errorMessages.login }}</em> \n            <em\n              *ngIf=\"bookForm?.controls?.['loginBook']?.errors?.['required']  && submitBookForm===true\"\n              >{{content?.errors?.required}}\n            </em>\n              </div>\n\n              <label class=\"book-primary-label block\" for=\"passwordBook\">{{\n                content?.customOffer?.book?.passwordBook\n              }}</label>\n              <input\n                pInputText\n                type=\"text\"\n                class=\"w-full primary-input\"\n                id=\"passwordBook\"\n                name=\"passwordBook\"\n                formControlName=\"passwordBook\"\n                [placeholder]=\"content?.customOffer?.book?.passwordBook\"\n              />\n              <div class=\"error-container\">\n                <em class=\"error\">{{ errorMessages.password }}</em> \n            <em\n              *ngIf=\"bookForm?.controls?.['passwordBook']?.errors?.['required']  && submitBookForm===true\"\n              >{{content?.errors?.required}}\n            </em>\n              </div>\n            </form>\n            <em class=\"error\">{{ errorMessages.global }}</em> \n\n          <div class=\"button-header\">\n            <p-button\n              class=\"w-full flex justify-content-center align-items-center bottom-buttons\"\n              [label]=\"bookOffer.buttonText\"\n              (onClick)=\"nextStep()\"\n              [outlined]=\"bookOffer.mostPopular ? false : true\"\n              icon=\"pi pi-arrow-right ml-2\"\n              iconPos=\"right\"\n              [loading]=\"loadingBookBtn\"\n            ></p-button>\n          </div>\n        </div>\n        <div *ngIf=\"bookOffer.planFeatures.length >0\" class=\"card-content\">\n          <ul class=\"list-none p-0 m-0 font-light\">\n            <li\n              *ngFor=\"let feature of bookOffer.planFeatures\"\n              class=\"flex align-items-center mb-3\"\n            >\n              <i class=\"pi pi-check mr-2 bullet-points\"></i>\n              <span>{{ feature.featureName }}</span>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"card-footer\">\n        <p-button\n          class=\"w-full flex justify-content-center align-items-center bottom-buttons\"\n          [label]=\"bookOffer.buttonText\"\n          (onClick)=\"nextStep()\"\n          [outlined]=\"bookOffer.mostPopular ? false : true\"\n          icon=\"pi pi-arrow-right ml-2\"\n          iconPos=\"right\"\n          [loading]=\"loadingBookBtn\"\n          ></p-button>\n      </div>\n    </div>\n  </div>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { IPlatformSubscriptionPlanVm } from '../../../fas-payments/platform-subscription-plan-vm.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SelectedPlanService {\n\n  private allPlansListSubject = new BehaviorSubject<IPlatformSubscriptionPlanVm[] | null>(null);\n  private allPlansList$ = this.allPlansListSubject.asObservable();\n\n  getAllPlansList(): Observable<IPlatformSubscriptionPlanVm[] | null> {\n    return this.allPlansList$;\n  }\n\n  setAllPlansList(value: IPlatformSubscriptionPlanVm[]): void {\n    this.allPlansListSubject.next(value);\n  }\n\n  private availablePlanListSubject = new BehaviorSubject<IPlatformSubscriptionPlanVm[] | null>(null);\n  private availablePlanList$ = this.availablePlanListSubject.asObservable();\n\n  getAvailablePlansList(): Observable<IPlatformSubscriptionPlanVm[] | null> {\n    return this.availablePlanList$;\n  }\n\n  setAvailablePlansList(value: IPlatformSubscriptionPlanVm[]): void {\n    this.availablePlanListSubject.next(value);\n  }\n\n\n  private selectedPlanSubject = new BehaviorSubject<IPlatformSubscriptionPlanVm | null>(null);\n  private selectedPlan$ = this.selectedPlanSubject.asObservable();\n\n  getSelectedPlan(): Observable<IPlatformSubscriptionPlanVm | null> {\n    return this.selectedPlan$;\n  }\n\n  setSelectedPlan(value: IPlatformSubscriptionPlanVm): void {\n    this.selectedPlanSubject.next(value);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { IMyAccountVm } from '../../../fas-payments/my-account-vm.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LoginStatusService {\n\n  private loginStatusSubject = new BehaviorSubject<boolean>(false);\n  private loginStatus$ = this.loginStatusSubject.asObservable();\n\n  getLoginStatus(): Observable<boolean> {\n    return this.loginStatus$;\n  }\n\n  setLoginStatus(value: boolean): void {\n    this.loginStatusSubject.next(value);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { IMyAccountVm } from '../../../fas-payments/my-account-vm.model';\nimport { IInvoiceDataVm } from '../../../fas-payments/invoice-data-vm.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SharedDataService {\n\n  private myAccountDataSubject = new BehaviorSubject<IMyAccountVm | null>(null);\n  private myAccountData$ = this.myAccountDataSubject.asObservable();\n\n  getMyAccountData(): Observable<IMyAccountVm | null> {\n    return this.myAccountData$;\n  }\n\n  setMyAccountData(value: IMyAccountVm): void {\n    this.myAccountDataSubject.next(value);\n  }\n\n\n  private invoiceDataSubject = new BehaviorSubject<IInvoiceDataVm | null>(null);\n  private invoiceData$ = this.invoiceDataSubject.asObservable();\n\n  getInvoiceData(): Observable<IInvoiceDataVm | null> {\n    return this.invoiceData$;\n  }\n\n  setInvoiceData(value: IInvoiceDataVm): void {\n    this.invoiceDataSubject.next(value);\n  }\n}\n","import { Inject, inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { INewPaymentIm } from '../../../../fas-payments/new-payment-im.model';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { IInitialisedPaymentLinkVm } from '../../../../fas-payments/initialised-payment-link-vm.model';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { INewPaymentSubscriptionIm } from '../../../../fas-payments/new-payment-subscription-im.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NewPaymentService {\n  http = inject(HttpClient)\n\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n\n  headers = new HttpHeaders({\n    'Authorization': `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTg3ZDgwNC1mZWZkLTRhNjMtOTUxMi1iYzVjYmQzMzk1MDciLCJqdGkiOiIxZmI1MjhjNS1lZjVmLTRmNzAtYWUyNy1mY2MzOGE0YTlmZDEiLCJMYXN0VXNlZENvbXBhbnlHdWlkIjoiMDhkYzJlZTUtZTEzZi00MjZjLTg5NDctMDA4ODExMDcwZWI5IiwiTGFuZ3VhZ2UiOiJwbCIsIkRpc3BsYXlOYW1lIjoiS2FjcGVyIEt3aWVrIiwiRW1haWwiOiJrd2llay5rcEBnbWFpbC5jb20iLCJVc2VyQWNjb3VudE1vZHVsZXMiOiIiLCJSb2xlcyI6IlBsYXRmb3JtT3BlcmF0b3IiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJQbGF0Zm9ybU9wZXJhdG9yIiwiZXhwIjoxNzI5NDI3MDA2LCJpc3MiOiJDdXN0b21lckFsZXJ0SXNzdWVyIiwiYXVkIjoiQ3VzdG9tZXJBbGVydEF1ZGllbmNlIn0.NjmW4kN4uyQJZmgklI4MUstCANWUij67Sl4X2yhKlmU`,\n    'Content-Type': 'application/json',\n  });\n\n\n  postNewPayment$(body: INewPaymentIm):Observable<IInitialisedPaymentLinkVm>{\n    return this.http.post<IInitialisedPaymentLinkVm>(this.config.apiUrl + '/NewPayment', body )\n   }\n\n  postNewPaymentSubscription$(body: INewPaymentSubscriptionIm):Observable<IInitialisedPaymentLinkVm>{\n    return this.http.post<IInitialisedPaymentLinkVm>(this.config.apiUrl + '/NewPaymentSubscription', body,)\n   }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { SubscriptionsService } from '../../services/api/subscriptions.service';\nimport { SelectedPlanService } from '../../services/selected-plan.service';\nimport { IPlatformSubscriptionPlanVm } from '../../../../fas-payments/platform-subscription-plan-vm.model';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { CarouselModule, CarouselResponsiveOptions } from 'primeng/carousel';\nimport { FormsModule } from '@angular/forms';\nimport { ConfigService } from '../../services/config.service';\nimport { SplitTextPipe } from '../../services/split-text.pipe';\nimport { LoginStatusService } from '../../services/login-status.service';\nimport { IMyAccountVm } from '../../../../fas-payments/my-account-vm.model';\nimport { ToastModule } from 'primeng/toast';\nimport { MessageService } from 'primeng/api';\nimport { map, Observable, of, Subject, switchMap, takeUntil } from 'rxjs';\nimport { SharedDataService } from '../../services/shared-data.service';\nimport { NewPaymentService } from '../../services/api/new-payment.service';\nimport { BookComponent } from '../custom-components/book/book.component';\n\n@Component({\n  selector: 'lib-offer',\n  standalone: true,\n  imports: [\n    BookComponent,\n    CommonModule,\n    RouterLink,\n    ButtonModule,\n    CarouselModule,\n    SelectButtonModule,\n    FormsModule,\n    SplitTextPipe,\n    ToastModule,\n  ],\n  providers: [MessageService],\n  templateUrl: './offer.component.html',\n  styleUrls: ['./offer.component.css'],\n})\nexport class OfferComponent implements OnInit, OnDestroy {\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private selectedPlanService: SelectedPlanService,\n    private loginStatusService: LoginStatusService,\n    private sharedDataService: SharedDataService,\n    private newPaymentService: NewPaymentService,\n    private messageService: MessageService,\n    private configService: ConfigService,\n    private router: Router\n  ) {}\n\n  public splitBadgeText!: { price: string; period: string };\n  public plans!: IPlatformSubscriptionPlanVm[];\n  public isFreeOfferAvailable = true;\n  public isExtended: boolean = false;\n  public content: any = null;\n  public annualPrice = true;\n  public mainColor = '';\n  public useLocalstorage: boolean = false;\n  public isLogged!: boolean;\n  public myAccountData!: IMyAccountVm;\n  public isTrialNotAvailable!: boolean;\n  public invoiceDataGuid!: string;\n  public bookOffer!: IPlatformSubscriptionPlanVm;\n\n  public stateOptions: any[] = [\n    { label: 'Miesięcznie', value: false },\n    { label: 'Rocznie', value: true },\n  ];\n\n  ngOnInit() {\n    this.configService.getContent$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((content) => {\n        if (content) {\n          this.content = content;\n        }\n      });\n\n    this.configService.getMainColor$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((color) => (this.mainColor = color));\n\n    this.configService.getUseLocalstorage$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((res) => {\n        this.useLocalstorage = res;\n      });\n\n    this.getLoginStatus()\n      .pipe(\n        switchMap((isLogged) =>\n          isLogged ? this.getMyAccountData() : of(null)\n        ),\n        switchMap(() => this.getInvoiceData()),\n        switchMap(() => this.getAllPlansList()),\n        takeUntil(this.destroy$)\n      )\n      .subscribe();\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  getLoginStatus(): Observable<boolean> {\n    return this.loginStatusService.getLoginStatus().pipe(\n      map((res) => {\n        this.isLogged = res;\n        return this.isLogged;\n      })\n    );\n  }\n\n  getMyAccountData(): Observable<any> {\n    if (!this.isLogged) {\n      return of(null);\n    }\n    return this.sharedDataService.getMyAccountData().pipe(\n      map((res) => {\n        if (res) {\n          this.myAccountData = res;\n        }\n        return this.myAccountData;\n      })\n    );\n  }\n\n  getInvoiceData(): Observable<any> {\n    if (!this.isLogged) {\n      return of(null);\n    }\n    return this.sharedDataService.getInvoiceData().pipe(\n      map((res) => {\n        if (res) {\n          this.invoiceDataGuid = res.guid;\n        }\n        return this.invoiceDataGuid;\n      })\n    );\n  }\n\n  getAllPlansList(): Observable<any[]> {\n    return this.selectedPlanService.getAvailablePlansList().pipe(\n      map((res) => {\n        if (res) {\n          this.plans = res;\n          const customBookOffer = this.plans.find(\n            (plan) => plan.customImplementationTypeName === 'AccessFromBookCode'\n          );\n          if (customBookOffer) {\n            this.bookOffer = customBookOffer;\n          }\n        }\n        return this.plans;\n      })\n    );\n  }\n\n  nextStep(plan: IPlatformSubscriptionPlanVm) {\n    this.selectedPlanService.setSelectedPlan(plan);\n    if (plan.isTrial) {\n      if (this.isLogged) {\n        const invoiceDataToPost = {\n          companyGuid: this.myAccountData.lastUsedCompanyGuid,\n          platformSubscriptionPlanGuid: plan.guid ?? '',\n          invoiceDataGuid: this.invoiceDataGuid,\n          successUrl: null,\n          failureUrl: null,\n        };\n        this.newPaymentService\n          .postNewPaymentSubscription$(invoiceDataToPost)\n          .subscribe({\n            next: async (res) => {\n              this.router.navigate(['/']).then(() => {\n                window.location.reload();\n              });\n            },\n            error: (error) => {\n              console.error(error);\n            },\n          });\n      } else {\n        if (this.useLocalstorage) {\n          localStorage.setItem('startAssign', 'start');\n          localStorage.setItem('duringPayment', 'true');\n          this.router.navigateByUrl('/auth/register');\n        } else {\n          const invoiceDataToPost = {\n            companyGuid: this.myAccountData.lastUsedCompanyGuid,\n            platformSubscriptionPlanGuid: plan.guid ?? '',\n            invoiceDataGuid: this.invoiceDataGuid,\n            successUrl: null,\n            failureUrl: null,\n          };\n          this.newPaymentService\n            .postNewPaymentSubscription$(invoiceDataToPost)\n            .subscribe({\n              next: async (res) => {\n                this.router.navigate(['/']).then(() => {\n                  window.location.reload();\n                });\n              },\n              error: (error) => {\n                this.router.navigate(['/']).then(() => {\n                  window.location.reload();\n                });\n                console.error(error);\n              },\n            });\n        }\n      }\n    } else {\n      if (this.isLogged) {\n        if (this.isExtended) {\n          this.router.navigateByUrl('select');\n        } else {\n          this.router.navigateByUrl('/subscriptions/summary');\n        }\n      } else {\n        if (this.useLocalstorage) {\n          localStorage.setItem('startAssign', 'start');\n          localStorage.setItem('duringPayment', 'true');\n          this.router.navigateByUrl('/auth/register');\n        } else {\n          this.router.navigateByUrl('/subscriptions/summary');\n        }\n      }\n    }\n  }\n\n  responsiveOptions: CarouselResponsiveOptions[] = [\n    {\n      breakpoint: '991px',\n      numVisible: 2,\n      numScroll: 1,\n    },\n    {\n      breakpoint: '500px',\n      numVisible: 1,\n      numScroll: 1,\n    },\n  ];\n}\n","<div class=\"offer-background\">\n  <div class=\"offer-main-container\">\n    <div class=\"header-container\">\n      <div class=\"header-img\">\n        <div class=\" text-center py-3 offer-header\" [innerHTML]=\"content?.offer?.header\">\n        </div>\n        <div class=\" text-center py-4 offer-description\" [innerHTML]=\"content?.offer?.description\">\n        </div>\n      </div>\n    </div>\n    <div *ngIf=\"isExtended\" class=\"switch-wrapper\">\n      <p-selectButton\n        [options]=\"stateOptions\"\n        [(ngModel)]=\"annualPrice\"\n        optionLabel=\"label\"\n        optionValue=\"value\"\n      ></p-selectButton>\n    </div>\n      <div class=\"offer-container\">\n        <lib-book [bookOffer]=\"bookOffer\"></lib-book>\n        <ng-container *ngFor=\"let plan of plans\" >\n          <div\n          *ngIf=\"plan.customImplementation===false\"\n            class=\"shadow-2 h-full card-container\"\n            [ngClass]=\"plan.mostPopular ? 'main-price-container border-' + mainColor : ''\"\n          >\n            <div class=\"flex flex-column justify-content-between h-full\">\n              <div>\n                <div class=\"flex flex-column justify-content-start gap-5 card-header\">\n                  <div\n                    class=\"font-bold text-2xl text-center plan-name\">\n                    {{ plan.planName }}\n                  </div>\n                  <div\n                    class=\"font-bold text-base  text-center plan-title\"\n                  >\n                    {{ plan.title }}\n                  </div>\n                  <div\n                    class=\"font-bold text-lg text-center plan-badge\"\n                  >\n                  <ng-container>\n                    <span class=\"badge-price\">{{ plan.badgeText | splitText:' / ':0 }}</span>\n                    /\n                    <span class=\"badge-period\">{{ plan.badgeText | splitText:' / ':1 }}</span>\n                  </ng-container>\n                  </div>\n                  <div\n                  class=\"button-header\">\n                  <p-button\n                  class=\"w-full flex justify-content-center align-items-center bottom-buttons\"\n                  [label]=\"plan.buttonText\"\n                  (onClick)=\"nextStep(plan)\"\n                  [outlined]=\"plan.mostPopular ? false : true\"\n                  icon=\"pi pi-arrow-right ml-2\"\n                  iconPos=\"right\"\n                  [size]=\"'small'\"\n                  ></p-button>\n                </div>\n                </div>\n                <div *ngIf=\"plan.planFeatures.length >0\" class=\"card-content\">\n                  <ul class=\"list-none p-0 m-0 font-light\">\n                    <li\n                      *ngFor=\"let feature of plan.planFeatures\"\n                      class=\"flex align-items-center mb-3\"\n                    >\n                      <i\n                        class=\"pi pi-check mr-2 bullet-points\"></i>\n                      <span>{{ feature.featureName }}</span>\n                    </li>\n                  </ul>\n                </div>\n              </div>\n              <div\n                class=\" card-footer\"\n              >\n              <p-button\n              class=\"w-full flex justify-content-center align-items-center bottom-buttons\"\n              [label]=\"plan.buttonText\"\n              (onClick)=\"nextStep(plan)\"\n              [outlined]=\"plan.mostPopular ? false : true\"\n              icon=\"pi pi-arrow-right ml-2\"\n              iconPos=\"right\"\n              [size]=\"'small'\"\n            ></p-button>\n              </div>\n            </div>\n          </div>\n        </ng-container>\n      </div>\n    <div *ngIf=\"content?.offer?.footer\" class=\"offer-footer text-base font-light text-center py-5\" [innerHTML]=\"content?.offer?.footer\">\n    </div>\n  </div>\n</div>\n","export const moveFocusTo = (elementId: string): void => {\n  const nextElement = document.getElementById(elementId);\n  if (nextElement?.tagName === \"INPUT\" || nextElement?.tagName === \"BUTTON\") {\n    nextElement.focus();\n  } else {\n    const inputElement = nextElement?.querySelector<HTMLInputElement>('input');\n    if (inputElement) {\n      inputElement.focus();\n    }\n  }\n};","import { Component, Input, OnInit } from '@angular/core';\nimport { SelectedPlanService } from '../../services/selected-plan.service';\nimport { CommonModule } from '@angular/common';\nimport { ConfigService } from '../../services/config.service';\n\n@Component({\n  selector: 'lib-card',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './card.component.html',\n  styleUrls: ['./card.component.css'],\n})\nexport class CardComponent implements OnInit {\n  constructor(private selectedPlanService: SelectedPlanService, private configService: ConfigService) {}\n\n  selectedPlanData!: any;\n  mainColor = '';\n  content: any = null;\n\n  ngOnInit() {\n    this.selectedPlanService.getSelectedPlan().subscribe((selectedPlan) => {\n      this.selectedPlanData = selectedPlan;\n    });\n    this.configService.getMainColor$.subscribe(color => this.mainColor = color);\n\n      this.configService.getContent$.subscribe((content) => {\n        if (content) {\n          this.content = content;\n        }\n      });\n  \n    }}\n","<div\n  *ngIf=\"selectedPlanData\"\n  class=\"flex flex-column shadow-2 surface-card border-round p-5 mb-4 w-full selected-card\"\n  [class]=\"'border-' + mainColor\"\n>\n  <div\n    class=\"flex flex-wrap align-items-center justify-content-between border-bottom-1 py-2 gap-1 sm:gap-3 xl:justify-content-between\"\n  >\n    <strong class=\"font-bold text-center\"\n      >{{ selectedPlanData.planName }}\n    </strong>\n    <strong class=\"text-2xl text-center font-bold\">{{\n      selectedPlanData.badgeText\n    }}</strong>\n  </div>\n  <!-- <div class=\"bottom-container flex flex-wrap justify-content-between mb-2\">\n    <p class=\"text-base mb-0 text-center sm:text-left\">Kwota netto</p>\n    <p class=\"text-base mb-0 text-center sm:text-right\">{{option.netPrice}} zł</p>\n  </div>\n  <div class=\"bottom-container flex flex-wrap justify-content-between mb-2\">\n    <p class=\"text-base mb-0 text-center sm:text-left\">Podatek VAT (23%)</p>\n    <p class=\"text-base mb-0 text-center sm:text-right\">{{ (option.netPrice) * (23 / 100 )  }} zł</p>\n  </div> -->\n  <div class=\"bottom-container flex flex-wrap justify-content-between py-2\">\n    <p class=\"text-base mb-0 text-center sm:text-left\">{{content?.card?.toPaid}}</p>\n    <p class=\"text-base mb-0 text-center sm:text-right\">\n      {{ selectedPlanData.value | number:'1.2-2'}} {{ selectedPlanData.currency }}\n    </p>\n  </div>\n</div>\n","import { Inject, inject, Injectable } from '@angular/core';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { Observable } from 'rxjs';\nimport { IInvoiceDataVm } from '../../../../fas-payments/invoice-data-vm.model';\nimport { IInvoiceDataIm } from '../../../../fas-payments/invoice-data-im.model';\nimport { IInvoiceDataUm } from '../../../../fas-payments/invoice-data-um.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class InvoiceDataService {\n\n  http = inject(HttpClient)\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n\n  headers = new HttpHeaders({\n    'Authorization': `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTg3ZDgwNC1mZWZkLTRhNjMtOTUxMi1iYzVjYmQzMzk1MDciLCJqdGkiOiIxZmI1MjhjNS1lZjVmLTRmNzAtYWUyNy1mY2MzOGE0YTlmZDEiLCJMYXN0VXNlZENvbXBhbnlHdWlkIjoiMDhkYzJlZTUtZTEzZi00MjZjLTg5NDctMDA4ODExMDcwZWI5IiwiTGFuZ3VhZ2UiOiJwbCIsIkRpc3BsYXlOYW1lIjoiS2FjcGVyIEt3aWVrIiwiRW1haWwiOiJrd2llay5rcEBnbWFpbC5jb20iLCJVc2VyQWNjb3VudE1vZHVsZXMiOiIiLCJSb2xlcyI6IlBsYXRmb3JtT3BlcmF0b3IiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJQbGF0Zm9ybU9wZXJhdG9yIiwiZXhwIjoxNzI5NDI3MDA2LCJpc3MiOiJDdXN0b21lckFsZXJ0SXNzdWVyIiwiYXVkIjoiQ3VzdG9tZXJBbGVydEF1ZGllbmNlIn0.NjmW4kN4uyQJZmgklI4MUstCANWUij67Sl4X2yhKlmU`,\n    'Content-Type': 'application/json',\n  });\n\n  getInvoiceData$(companyGuid:string):Observable<IInvoiceDataVm>{ \n   return this.http.get<IInvoiceDataVm>(this.config.apiUrl +'/InvoiceData?companyGuid=' + companyGuid)\n  }\n\n  putInvoiceData$(body:IInvoiceDataUm):Observable<IInvoiceDataVm>{\n   return this.http.put<IInvoiceDataVm>(this.config.apiUrl +'/InvoiceData' , body)\n  }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { inject, Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { IMyAccountVm } from '../../../../fas-payments/my-account-vm.model';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { IMyAccountIm } from '../../../../fas-payments/my-account-im.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MyAccountService {\n\n  http = inject(HttpClient)\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n\n  headers = new HttpHeaders({\n    'Authorization': `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTg3ZDgwNC1mZWZkLTRhNjMtOTUxMi1iYzVjYmQzMzk1MDciLCJqdGkiOiIxZmI1MjhjNS1lZjVmLTRmNzAtYWUyNy1mY2MzOGE0YTlmZDEiLCJMYXN0VXNlZENvbXBhbnlHdWlkIjoiMDhkYzJlZTUtZTEzZi00MjZjLTg5NDctMDA4ODExMDcwZWI5IiwiTGFuZ3VhZ2UiOiJwbCIsIkRpc3BsYXlOYW1lIjoiS2FjcGVyIEt3aWVrIiwiRW1haWwiOiJrd2llay5rcEBnbWFpbC5jb20iLCJVc2VyQWNjb3VudE1vZHVsZXMiOiIiLCJSb2xlcyI6IlBsYXRmb3JtT3BlcmF0b3IiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJQbGF0Zm9ybU9wZXJhdG9yIiwiZXhwIjoxNzI5NDI3MDA2LCJpc3MiOiJDdXN0b21lckFsZXJ0SXNzdWVyIiwiYXVkIjoiQ3VzdG9tZXJBbGVydEF1ZGllbmNlIn0.NjmW4kN4uyQJZmgklI4MUstCANWUij67Sl4X2yhKlmU`,\n    'Content-Type': 'application/json',\n  });\n\n  \n  getMyAccount$(): Observable<IMyAccountVm> {\n    return this.http.get<IMyAccountVm>(`${this.config.apiUrl}/MyAccount` );\n  }\n\n  putMyAccount$(body: IMyAccountIm): Observable<IMyAccountVm> {\n    return this.http.put<IMyAccountVm>(`${this.config.apiUrl}/MyAccount`, body, );\n  }\n}\n","import {\n  FormBuilder,\n  FormGroup,\n  ReactiveFormsModule,\n  Validators,\n} from '@angular/forms';\nimport { NewPaymentService } from '../../services/api/new-payment.service';\nimport { nipValidator } from '../../services/custom-NIP-validator';\nimport { moveFocusTo } from '../../services/move-focus.helpers';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CardComponent } from '../card/card.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ConfigService } from '../../services/config.service';\nimport { SelectedPlanService } from '../../services/selected-plan.service';\nimport { MyAccountService } from '../../services/api/my-account.service';\nimport { InvoiceDataService } from '../../services/api/invoice-data.service';\nimport { Subject, switchMap, takeUntil } from 'rxjs';\nimport { IMyAccountVm } from '../../../../fas-payments/my-account-vm.model';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { IInvoiceDataVm } from '../../../../fas-payments/invoice-data-vm.model';\nimport { IPlatformSubscriptionPlanVm } from '../../../../fas-payments/platform-subscription-plan-vm.model';\nimport { Capacitor } from '@capacitor/core';\nimport { App } from '@capacitor/app';\nimport {\n  InAppBrowser,\n  InAppBrowserOptions,\n} from '@awesome-cordova-plugins/in-app-browser/ngx';\nimport { SharedDataService } from '../../services/shared-data.service';\n\ninterface PlanDropdownList {\n  label: string;\n  value: string;\n}\n\n@Component({\n  selector: 'lib-summary',\n  standalone: true,\n  imports: [\n    ReactiveFormsModule,\n    CommonModule,\n    ButtonModule,\n    DropdownModule,\n    CardComponent,\n    InputMaskModule,\n    InputTextModule,\n    InputNumberModule,\n    CheckboxModule,\n  ],\n  templateUrl: './summary.component.html',\n  styleUrls: ['./summary.component.css'],\n  providers: [InAppBrowser],\n})\nexport class SummaryComponent {\n  @ViewChild('summary-background', { static: true }) formContainer!: ElementRef;\n  \n  subscriptionForm!: FormGroup;\n  mainForm!: FormGroup;\n  additionalForm!: FormGroup;\n  submitPay: boolean = false;\n  submitUpdate: boolean = false;\n  planDropdownList: PlanDropdownList[] = [];\n  selectedPlan!: any;\n  recivedValue: string = '';\n  currentCompanyGuid: string = '';\n  loadingSubmit: boolean = false;\n  loadingUpdate: boolean = false;\n  buttonDisable: boolean = false;\n  errorMessage: string = '';\n  planData: any;\n  content: any = null;\n  isInvoice!: boolean;\n  invoiceData!: IInvoiceDataVm;\n  myAccountData!: IMyAccountVm;\n  selectedPlanData!: any;\n  isUpdate!: boolean;\n  allPlans!: IPlatformSubscriptionPlanVm[];\n  mainColor = '';\n  platform: any;\n  \n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private selectedPlanService: SelectedPlanService,\n    private invoiceDataService: InvoiceDataService,\n    private sharedDataService: SharedDataService,\n    private newPaymentServce: NewPaymentService,\n    private myAccountService: MyAccountService,\n    private configService: ConfigService,\n    private formBuilder: FormBuilder,\n    private iab: InAppBrowser,\n    private router: Router,\n  ) {\n    this.initializeApp();\n\n    this.subscriptionForm = this.formBuilder.group({\n      plan: [, [Validators.required]],\n    });\n\n    this.mainForm = this.formBuilder.group({\n      email: ['', [Validators.required, Validators.email]],\n      firstName: ['', [Validators.required, Validators.minLength(3)]],\n      lastName: ['', [Validators.required, Validators.minLength(3)]],\n      country: [''],\n      phoneNum: [''],\n    });\n\n    this.additionalForm = this.formBuilder.group({\n      companyName: [''],\n      NIP: [''],\n      street: [''],\n      postCode: [''],\n      city: [''],\n      emailAccount: [''],\n      isInvoice: [''],\n    });\n  }\n\n  ngOnInit(){\n    this.selectedPlanService.getAvailablePlansList()\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((res) => {\n        if (res) {\n          this.allPlans = res;\n          this.planDropdownList = res.map((plan: any) => ({\n            label: `${plan.planName}`,\n            value: plan,\n          }));\n\n          const selectedPlanGuid = localStorage.getItem('selectedPlanGuid');\n          if (selectedPlanGuid) {\n            const selectedPlan = this.allPlans.find(\n              (plan: any) => plan.guid === selectedPlanGuid\n            );\n            if (selectedPlan) {\n              this.selectedPlanService.setSelectedPlan(selectedPlan);\n            }\n          }\n        }\n      });\n\n    this.selectedPlanService.getSelectedPlan()\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((selectedPlan) => {\n        this.selectedPlanData = selectedPlan;\n        this.selectedPlan = {\n          label: selectedPlan?.planName,\n          value: selectedPlan?.value,\n        };\n        this.subscriptionForm.get('plan')?.setValue(this.selectedPlan);\n      });\n\n    this.sharedDataService.getMyAccountData()\n      .pipe(\n        switchMap((res) => {\n          if (res != null) {\n            this.mainForm.get('email')?.setValue(res.email);\n            this.mainForm.get('firstName')?.setValue(res.firstName);\n            this.mainForm.get('lastName')?.setValue(res.lastName);\n            this.mainForm.get('phoneNum')?.setValue(res.phone);\n            this.myAccountData = res;\n          }\n          return this.invoiceDataService.getInvoiceData$(this.myAccountData.lastUsedCompanyGuid);\n        }),\n        takeUntil(this.destroy$)\n      )\n      .subscribe(\n        (res) => {\n          if (res != null) {\n            this.invoiceData = res;\n            this.additionalForm.get('companyName')?.setValue(res.companyName);\n            this.additionalForm.get('NIP')?.setValue(res.nip);\n            this.additionalForm.get('street')?.setValue(res.street);\n            this.additionalForm.get('postCode')?.setValue(res.postCode);\n            this.additionalForm.get('city')?.setValue(res.city);\n            this.additionalForm.get('country')?.setValue(res.country);\n            this.additionalForm.get('emailAccount')?.setValue(res.invoiceEmail);\n            this.additionalForm.get('isInvoice')?.setValue(res.invoiceRequested);\n            this.isInvoice = res.invoiceRequested;\n          }\n          this.handleInvoiceToggle(this.isInvoice);\n        },\n        (error) => {\n          this.router.navigateByUrl('subscriptions/offer');\n          console.error('Error:', error);\n        }\n      );\n\n    this.configService.getContent$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((content) => {\n        if (content) {\n          this.content = content;\n        }\n      });\n\n    this.configService.getMainColor$\n      .pipe(takeUntil(this.destroy$)) \n      .subscribe((color) => (this.mainColor = color));\n\n    this.mainForm.valueChanges\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => this.updateIsUpdate());\n\n    this.additionalForm.valueChanges\n      .pipe(takeUntil(this.destroy$)) \n      .subscribe(() => this.updateIsUpdate());\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next(); \n    this.destroy$.complete();\n  }\n\n  initializeApp() {\n    App.addListener('appUrlOpen', (data: any) => {\n      if (data.url.includes('paymentSuccess')) {\n        this.router.navigate(data.url);\n      } else if (data.url.includes('paymentCancel')) {\n        this.router.navigate(data.url);\n      }\n    });\n  }\n\n  private updateIsUpdate() {\n    this.isUpdate = this.mainForm.dirty || this.additionalForm.dirty;\n  }\n\n  setSubscriptionPlan(plan: any) {\n    this.selectedPlanData = plan.value;\n    this.selectedPlanService.setSelectedPlan(plan.value);\n    localStorage.setItem('selectedPlanGuid', this.selectedPlanData.guid);\n  }\n\n  onKeyDown(inputId: string): void {\n    moveFocusTo(inputId);\n  }\n\n  handleInvoiceToggle(isInvoice: boolean) {\n    if (isInvoice) {\n      this.setValidators();\n    } else {\n      this.removeValidators();\n    }\n    this.updateValidators();\n  }\n\n  toggleInvoice() {\n    this.isInvoice = !this.isInvoice;\n    this.handleInvoiceToggle(this.isInvoice);\n  }\n\n  setValidators() {\n    this.additionalForm\n      .get('companyName')\n      ?.setValidators([Validators.required, Validators.minLength(3)]);\n    this.additionalForm\n      .get('street')\n      ?.setValidators([Validators.required, Validators.minLength(3)]);\n    this.additionalForm\n      .get('postCode')\n      ?.setValidators([Validators.required, Validators.minLength(5)]);\n    this.additionalForm\n      .get('city')\n      ?.setValidators([Validators.required, Validators.minLength(3)]);\n    this.additionalForm\n      .get('emailAccount')\n      ?.setValidators([Validators.required, Validators.email]);\n  }\n\n  removeValidators() {\n    this.additionalForm.get('companyName')?.clearValidators();\n    this.additionalForm.get('street')?.clearValidators();\n    this.additionalForm.get('postCode')?.clearValidators();\n    this.additionalForm.get('city')?.clearValidators();\n    this.additionalForm.get('emailAccount')?.clearValidators();\n  }\n\n  updateValidators() {\n    this.additionalForm.get('companyName')?.updateValueAndValidity();\n    this.additionalForm.get('street')?.updateValueAndValidity();\n    this.additionalForm.get('postCode')?.updateValueAndValidity();\n    this.additionalForm.get('city')?.updateValueAndValidity();\n    this.additionalForm.get('emailAccount')?.updateValueAndValidity();\n  }\n\n  findFirstInvalidControl(): HTMLElement | null {\n    const controls = { ...this.mainForm.controls, ...this.additionalForm.controls };\n    for (const controlName in controls) {\n      if (controls[controlName].invalid) {\n        return document.querySelector(`[formControlName=\"${controlName}\"]`) as HTMLElement;\n      }\n    }\n    return null;\n  }\n\n  scrollToInvalid(){\n    const firstInvalidControl = this.findFirstInvalidControl();\n    if (firstInvalidControl) {\n      firstInvalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });\n    }\n  }\n\n  onUpdate() {\n    this.submitUpdate = true;\n    this.scrollToInvalid()\n    if (this.mainForm.valid && this.additionalForm.valid) {\n      this.loadingUpdate = true;\n      this.isUpdate = false;\n      this.submitUpdate = false;\n      const dataToPutMyAccount = {\n        email: this.mainForm.get('email')?.value,\n        phone: String(this.mainForm.get('phoneNum')?.value),\n        firstName: this.mainForm.get('firstName')?.value,\n        lastName: this.mainForm.get('lastName')?.value,\n        lastUsedCompanyGuid: this.myAccountData.lastUsedCompanyGuid,\n        language: this.myAccountData.language,\n      };\n\n      const dataToPutInvoice = {\n        companyGuid: this.myAccountData.lastUsedCompanyGuid,\n        nip: this.additionalForm.get('NIP')?.value ?? '',\n        street: this.additionalForm.get('street')?.value ?? '',\n        city: this.additionalForm.get('city')?.value ?? '',\n        country: this.additionalForm.get('country')?.value ?? '',\n        companyName: this.additionalForm.get('companyName')?.value ?? '',\n        postCode: this.additionalForm.get('postCode')?.value ?? '',\n        invoiceEmail: this.additionalForm.get('emailAccount')?.value ?? '',\n        subscriptionPlanGuid: this.selectedPlanData.guid,\n        invoiceRequested: this.additionalForm.get('isInvoice')?.value ?? '',\n        subscriptionPlan: this.selectedPlanData.planName,\n        guid: this.invoiceData.guid,\n      };\n\n      this.myAccountService\n        .putMyAccount$(dataToPutMyAccount)\n        .pipe(\n          switchMap((res) => {\n            return this.invoiceDataService.putInvoiceData$(dataToPutInvoice);\n          })\n        )\n        .subscribe(\n          (res) => {\n            this.loadingUpdate = false;\n          },\n          (erorr) => {\n            this.loadingUpdate = false;\n          }\n        );\n    }\n  }\n\n  onSubmit() {\n    this.submitUpdate = true;\n\n    if (this.isUpdate) {\n      this.onUpdate();\n    }\n    this.scrollToInvalid()\n\n\n    if (this.mainForm.valid && this.additionalForm.valid) {\n      this.loadingSubmit = true;\n      const platform = Capacitor.getPlatform();\n      const isMobile = platform === 'ios' || platform === 'android';\n\n      const invoiceDataToPost = {\n        companyGuid: this.myAccountData.lastUsedCompanyGuid,\n        platformSubscriptionPlanGuid: this.selectedPlanData.guid ?? '',\n        invoiceDataGuid: this.invoiceData.guid,\n        successUrl: null,\n        failureUrl: null,\n      };\n\n      const browserOptions: InAppBrowserOptions = {\n        location: 'yes',\n        clearcache: 'yes',\n        clearsessioncache: 'yes',\n        hideurlbar: 'yes',\n        zoom: 'no',\n        toolbar: 'no',\n        hidenavigationbuttons: 'yes',\n      };\n\n      this.newPaymentServce\n        .postNewPaymentSubscription$(invoiceDataToPost)\n        .subscribe({\n          next: (res) => {\n            if (isMobile) {\n              const browser = this.iab.create(\n                res.sessionUrl,\n                '_blank',\n                browserOptions\n              );\n              browser.on('loadstart').subscribe((event) => {\n                if (event.url.includes('paymentSuccess')) {\n                  browser.close();\n                  const url = event.url\n                  const splitUrl = url.split('guid=')\n                  const guid = splitUrl[1]\n                  const finalUrl = '/subscriptions/paymentSuccess?guid=' + guid\n                  this.router.navigateByUrl(finalUrl)\n                }\n                if (event.url.includes('paymentCancel')) {\n                  browser.close();\n                  const url = event.url\n                  const splitUrl = url.split('guid=')\n                  const guid = splitUrl[1]\n                  const finalUrl = '/subscriptions/paymentCancel?guid=' + guid\n                  this.router.navigateByUrl(finalUrl)\n                }\n              });\n              this.loadingSubmit = false;\n            } else {\n              window.open(res.sessionUrl, '_self');\n              this.loadingSubmit = false;\n            }\n          },\n          error: (error) => {\n            console.error('Error during payment:', error);\n            this.loadingSubmit = false;\n          },\n        });\n    }\n  }\n}\n","<div class=\"summary-background min-h-screen\">\n  <div\n    class=\"flex flex-column justify-content-center align-content-center px-4 py-4 gap-6 flex-wrap md:flex-row flex-nowrap\"\n  >\n    <div class=\"wrap-container\">\n      <p\n        class=\"text-container text-4xl font-bold text-center mb-2 md:text-left\"\n      >\n      {{ content?.summary?.formTitle }}\n      </p>\n      <p class=\"text-base text-center md:text-left\">\n        {{ content?.summary?.formDescription }}\n      </p>\n      <form [formGroup]=\"subscriptionForm\" autocomplete=\"off\">\n        <p\n          class=\"summary-subtitle font-bold text-2xl text-left mt-4 mb-3\">\n        {{ content?.summary?.selectedSubscription }}\n        </p>\n        <p-dropdown\n          [style]=\"{ 'min-width': '150px', width: '100%' }\"\n          [options]=\"planDropdownList\"\n          name=\"plan\"\n          formControlName=\"plan\"\n          dataKey=\"value\"\n          (onChange)=\"setSubscriptionPlan($event)\"\n        ></p-dropdown>\n      </form>\n      <form [formGroup]=\"mainForm\">\n        <p\n          class=\"summary-subtitle font-bold text-2xl text-left mt-4\">\n        {{ content?.summary?.yourData }}\n        </p>\n        <div class=\"flex flex-column\">\n          <label class=\"primary-label\" for=\"email\">{{ content?.summary?.email }}</label>\n          <input\n            pInputText\n            type=\"text\"\n            class=\"w-full primary-input\"\n            id=\"email\"\n            name=\"email\"\n            formControlName=\"email\"\n            [placeholder]=\"content?.summary?.email\"\n            (keydown.enter)=\"onKeyDown('firstName')\"\n          />\n          <div class=\"error-container\">\n            <em\n              *ngIf=\"mainForm?.controls?.['email']?.errors?.['email']  && submitUpdate===true\"\n              >{{content?.errors?.emailIncorrect}}\n            </em>\n            <em\n              *ngIf=\"mainForm?.controls?.['email']?.errors?.['required']  && submitUpdate===true\"\n              >{{content?.errors?.required}}\n            </em>\n          </div>\n        </div>\n        <div class=\"flex flex-column gap-3 w-full sm:flex-row\">\n          <div class=\"w-full\">\n            <label class=\"primary-label block\" for=\"firstName\">{{ content?.summary?.firstName }}</label>\n            <input\n              input\n              pInputText\n              type=\"text\"\n              class=\"w-full primary-input\"\n              id=\"firstName\"\n              name=\"firstName\"\n              type=\"text\"\n              formControlName=\"firstName\"\n              [placeholder]=\" content?.summary?.firstName \"\n              (keydown.enter)=\"onKeyDown('lastName')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"mainForm?.controls?.['firstName']?.errors?.['required'] && submitUpdate===true \"\n                >{{content?.errors?.required}}\n              </em>\n              <em\n                *ngIf=\"mainForm?.controls?.['firstName']?.errors?.['minlength'] && submitUpdate===true \"\n                >{{content?.errors?.atLeast2}}\n              </em>\n            </div>\n          </div>\n          <div class=\"w-full\">\n            <label class=\"primary-label block\" for=\"lastName\">{{ content?.summary?.lastName }}</label>\n            <input\n              pInputText\n              type=\"text\"\n              class=\"w-full primary-input\"\n              id=\"lastName\"\n              name=\"lastName\"\n              type=\"text\"\n              formControlName=\"lastName\"\n              [placeholder]=\" content?.summary?.lastName\"\n              (keydown.enter)=\"onKeyDown('country')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"mainForm?.controls?.['lastName']?.errors?.['required'] && submitUpdate===true\"\n                >{{content?.errors?.required}}\n              </em>\n              <em\n                *ngIf=\"mainForm?.controls?.['lastName']?.errors?.['minlength'] && submitUpdate===true\"\n                >{{content?.errors?.atLeast2}}\n              </em>\n            </div>\n          </div>\n        </div>\n        <div class=\"flex flex-column\">\n          <label class=\"primary-label\" for=\"country\">{{ content?.summary?.country }}</label>\n          <input\n            pInputText\n            type=\"text\"\n            class=\"w-full primary-input\"\n            id=\"country\"\n            name=\"country\"\n            formControlName=\"country\"\n            [placeholder]=\" content?.summary?.country \"\n            (keydown.enter)=\"onKeyDown('phoneNum')\"\n          />\n          <div class=\"error-container\">\n            <em\n              *ngIf=\"mainForm?.controls?.['country']?.errors?.['required'] && submitUpdate===true\"\n              >{{content?.errors?.required}}\n            </em>\n            <em\n              *ngIf=\"mainForm?.controls?.['country']?.errors?.['minlength'] && submitUpdate===true\"\n              >{{content?.errors?.atLeast2}}\n            </em>\n          </div>\n        </div>\n        <div class=\"flex flex-column\">\n          <label class=\"primary-label\" for=\"phoneNum\">{{ content?.summary?.phoneNumber }}</label>\n          <input\n            pInputText\n            pKeyFilter=\"int\"\n            class=\"w-full primary-input\"\n            id=\"phoneNum\"\n            name=\"phoneNum\"\n            [maxlength]=\"9\"\n            formControlName=\"phoneNum\"\n            placeholder=\"000-000-000\"\n            (keydown.enter)=\"onKeyDown('companyName')\"\n          />\n          <div class=\"error-container\">\n            <em\n              *ngIf=\"mainForm?.controls?.['phoneNum']?.errors?.['required'] && submitUpdate===true\"\n              >{{content?.errors?.required}}\n            </em>\n            <em\n              *ngIf=\"mainForm?.controls?.['phoneNum']?.errors?.['minlength'] && submitUpdate===true \"\n              >{{content?.errors?.atLeast9}}\n            </em>\n          </div>\n        </div>\n      </form>\n      <form [formGroup]=\"additionalForm\">\n        <div class=\"flex justify-content-between align-items-center mt-4\">\n          <p class=\"summary-subtitle font-bold text-2xl text-left\">\n            {{ content?.summary?.invoiceData }}\n          </p>\n          <div>\n            <p-checkbox\n              formControlName=\"isInvoice\"\n              [binary]=\"true\"\n              inputId=\"invoice\"\n              (onChange)=\"toggleInvoice()\"\n            />\n            <label\n              class=\"summary-subtitle-invoice ml-2 font-semibold text-lg\"\n              for=\"invoice\"\n              >{{ content?.summary?.invoice }}</label\n            >\n          </div>\n        </div>\n        <ng-container *ngIf=\"isInvoice\">\n          <div class=\"flex flex-column\">\n            <label class=\"primary-label\" for=\"companyName\">{{ content?.summary?.companyName }}</label>\n            <input\n              pInputText\n              type=\"number\"\n              class=\"w-full primary-input\"\n              id=\"companyName\"\n              name=\"companyName\"\n              type=\"text\"\n              formControlName=\"companyName\"\n              [placeholder]=\" content?.summary?.companyName \"\n              (keydown.enter)=\"onKeyDown('NIP')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"additionalForm?.controls?.['companyName']?.errors?.['required'] && submitUpdate===true \"\n                >{{content?.errors?.required}}\n              </em>\n              <em\n                *ngIf=\"additionalForm?.controls?.['companyName']?.errors?.['minlength'] && submitUpdate===true\"\n                >{{content?.errors?.atLeast2}}\n              </em>\n            </div>\n          </div>\n          <div class=\"flex flex-column\">\n            <label class=\"primary-label\" for=\"NIP\">{{ content?.summary?.NIP }}</label>\n            <input\n              pInputText\n              pKeyFilter=\"int\"\n              class=\"w-full primary-input\"\n              id=\"NIP\"\n              name=\"NIP\"\n              [maxlength]=\"10\"\n              formControlName=\"NIP\"\n              [placeholder]=\" content?.summary?.NIP \"\n              (keydown.enter)=\"onKeyDown('street')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"additionalForm?.controls?.['NIP']?.errors?.['required'] && submitUpdate===true \"\n                >{{content?.errors?.required}}\n              </em>\n              <em\n                *ngIf=\"additionalForm.get('NIP')?.errors?.['wrongNipNumber']  && submitUpdate===true\"\n                >{{content?.errors?.NIPIncorrect}}</em\n              >\n            </div>\n          </div>\n          <div class=\"filflex flex-column\">\n            <label class=\"primary-label block\" for=\"street\">{{ content?.summary?.street }}</label>\n            <input\n              pInputText\n              type=\"text\"\n              class=\"w-full primary-input\"\n              id=\"street\"\n              name=\"street\"\n              type=\"text\"\n              formControlName=\"street\"\n              [placeholder]=\" content?.summary?.street \"\n              (keydown.enter)=\"onKeyDown('postCode')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"additionalForm?.controls?.['street']?.errors?.['required']  && submitUpdate===true\"\n                >{{content?.errors?.required}}\n              </em>\n              <em\n                *ngIf=\"additionalForm?.controls?.['street']?.errors?.['minlength'] &&  submitUpdate===true\"\n                >{{content?.errors?.atLeast2}}\n              </em>\n            </div>\n          </div>\n          <div class=\"flex flex-column gap-3 w-full sm:flex-row\">\n            <div class=\"w-full\">\n              <label class=\"primary-label block\" for=\"postCode\"\n                >{{ content?.summary?.postalCode }}</label\n              >\n              <p-inputMask\n                [style]=\"{ 'min-width': '150px', width: '100%' }\"\n                mask=\"99-999\"\n                id=\"postCode\"\n                name=\"postCode\"\n                type=\"text\"\n                formControlName=\"postCode\"\n                [placeholder]=\" content?.summary?.postalCode \"\n                (keydown.enter)=\"onKeyDown('city')\"\n              />\n              <div class=\"error-container\">\n                <em\n                  *ngIf=\"additionalForm?.controls?.['postCode']?.errors?.['required'] &&   submitUpdate===true\"\n                  >{{content?.errors?.required}}\n                </em>\n                <em\n                  *ngIf=\"additionalForm?.controls?.['postCode']?.errors?.['minlength'] && submitUpdate===true\"\n                  >{{content?.errors?.atLeast5}}\n                </em>\n              </div>\n            </div>\n            <div class=\"w-full\">\n              <label class=\"primary-label block\" for=\"city\">{{ content?.summary?.city }}</label>\n              <input\n                pInputText\n                type=\"text\"\n                class=\"w-full primary-input\"\n                id=\"city\"\n                name=\"city\"\n                type=\"text\"\n                formControlName=\"city\"\n                [placeholder]=\" content?.summary?.city \"\n                (keydown.enter)=\"onKeyDown('emailAccount')\"\n              />\n              <div class=\"error-container\">\n                <em\n                  *ngIf=\"additionalForm?.controls?.['city']?.errors?.['required'] &&   submitUpdate===true\"\n                  >{{content?.errors?.required}}\n                </em>\n                <em\n                  *ngIf=\"additionalForm?.controls?.['city']?.errors?.['minlength'] &&  submitUpdate===true\"\n                  >{{content?.errors?.atLeast2}}\n                </em>\n              </div>\n            </div>\n          </div>\n          <div class=\"flex flex-column\">\n            <label class=\"primary-label\" for=\"email\"\n              >{{ content?.summary?.accountingEmail }}</label\n            >\n            <input\n              pInputText\n              type=\"text\"\n              class=\"w-full primary-input\"\n              id=\"email\"\n              name=\"email\"\n              formControlName=\"emailAccount\"\n              [placeholder]=\"content?.summary?.accountingEmail\"\n              (keydown.enter)=\"onKeyDown('summarySubmit')\"\n            />\n            <div class=\"error-container\">\n              <em\n                *ngIf=\"additionalForm?.controls?.['emailAccount']?.errors?.['email']  && submitUpdate===true\"\n                >{{content?.errors?.emailIncorrect}}\n              </em>\n              <em\n                *ngIf=\"additionalForm?.controls?.['emailAccount']?.errors?.['required']  && submitUpdate===true\"\n                >{{content?.errors?.required}}\n              </em>\n            </div>\n          </div>\n        </ng-container>\n      </form>\n        <button\n        pButton\n        pRipple\n        [label]=\"content?.buttons?.update\"\n          (click)=\"onUpdate()\"\n          [loading]=\"loadingUpdate\"\n          [disabled]=\"!isUpdate\"\n          class=\"w-full mx-auto my-4 primary-button\"\n        ></button>\n    </div>\n    <div class=\"wrap-container flex flex-column flex-start\">\n      <div\n        class=\"text-container text-4xl font-bold text-center mb-2 md:text-left\"\n        [innerHTML]=\"content?.summary?.summaryTitle\"\n      >\n      </div>\n      <lib-card></lib-card>\n      <div class=\"text-base mb-4\" [innerHTML]=\"content?.summary?.summaryDescription\">\n      </div>\n      <section class=\"text-center text-red-500\">\n        <p>{{ errorMessage }}</p>\n      </section>\n      <button\n        pButton\n        pRipple\n        id=\"summarySubmit\"\n        [label]=\"content?.buttons?.order\"\n        [loading]=\"loadingSubmit\"\n        (click)=\"onSubmit()\"\n        class=\"w-full mx-auto mb-4 primary-button\"\n      ></button>\n      <div class=\"text-base mb-4\" [innerHTML]=\"content?.summary?.summaryRights\">\n      </div>\n      <div class=\"text-base mb-4\" [innerHTML]=\"content?.summary?.summaryPersonalData\">\n      </div>\n    </div>\n  </div>\n</div>\n","import { inject, Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { Observable } from 'rxjs';\nimport { IPlatformSubscriptionPlanVm } from '../../../../fas-payments/platform-subscription-plan-vm.model';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SubscriptionsService {\n\n  http = inject(HttpClient)\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n  \n  getSubscriptions$():Observable<IPlatformSubscriptionPlanVm[]>{\n   return this.http.get<IPlatformSubscriptionPlanVm[]>(this.config.apiUrl +'/PlatformAvailableSubscriptionPlans')\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, inject, Injectable } from '@angular/core';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { Observable } from 'rxjs';\nimport { IPaymentSessionConfirmationVm } from '../../../../fas-payments/payment-session-confirmation-vm.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PaymentSuccessService {\n  http = inject(HttpClient)\n\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n\n\n  getPaymentSuccess$(guid: string):Observable<IPaymentSessionConfirmationVm>{\n    return this.http.get<IPaymentSessionConfirmationVm>(this.config.apiUrl + '/PaymentSuccess?paymentSessionGuid=' + guid)\n   }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { PaymentSuccessService } from '../../services/api/payment-success.service';\nimport { ConfigService } from '../../services/config.service';\n\n@Component({\n  selector: 'lib-success',\n  standalone: true,\n  imports: [ButtonModule],\n  templateUrl: './success.component.html',\n  styleUrls: ['./success.component.css']\n})\nexport class SuccessComponent implements OnInit {\n\n  constructor(\n    private route:ActivatedRoute,\n    private router:Router,\n    private paymentSuccessService:PaymentSuccessService,\n    private configService: ConfigService,\n\n  ){}\n\n  content: any = null;\n\n  ngOnInit() {\n    this.configService.getContent$.subscribe(content => {\n      if (content) {\n        this.content = content;\n      }\n    });\n\n    localStorage.removeItem('selectedPlanGuid');\n\n    const routeParts = this.router.url.split('guid=')\n    this.paymentSuccessService.getPaymentSuccess$(routeParts[1]).subscribe(res =>{\n    })\n  }\n\n  start(){\n    this.router.navigateByUrl('/')\n  }\n}\n\n","<div\n  class=\"w-full h-full min-h-screen line-height-3 flex flex-column align-items-center justify-content-center success-background p-2\"\n>\n  <img class=\"success-image\" style=\"width: 130px\" src=\"{{content?.success?.imageUrl}}\" />\n  <div class=\"font-semibold text-center mt-6 text-5xl\" style=\"max-width: 750px\" [innerHTML]=\"content?.success?.header\">\n  </div>\n  <div class=\"text-xl text-center mt-4\" style=\"max-width: 750px\" [innerHTML]=\"content?.success?.message\">\n  </div>\n  <div class=\"mt-6 w-full flex align-items-center justify-content-center gap-4\">\n    <p-button [label]=\"content?.buttons?.startUsing\" icon=\"pi pi-arrow-right ml-2\" iconPos=\"right\" (onClick)=\"start()\"></p-button>\n  </div>\n</div>","import { HttpClient } from '@angular/common/http';\nimport { Inject, inject, Injectable } from '@angular/core';\nimport { FasPaymentConfig } from '../../models/fas-payment-config';\nimport { IPaymentSessionConfirmationVm } from '../../../../fas-payments/payment-session-confirmation-vm.model';\nimport { Observable } from 'rxjs';\nimport { FAS_PAYMENT_CONFIG } from '../../fas-payment.module';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PaymentCanceledService {\n\n  http = inject(HttpClient)\n\n  constructor(@Inject(FAS_PAYMENT_CONFIG) private config: FasPaymentConfig) {\n  }\n\n\n  getPaymentCanceled$(guid: string):Observable<IPaymentSessionConfirmationVm>{\n    return this.http.get<IPaymentSessionConfirmationVm>(this.config.apiUrl + '/PaymentCanceled?paymentSessionGuid=' + guid)\n   }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { ConfigService } from '../../services/config.service';\nimport { PaymentCanceledService } from '../../services/api/payment-canceled.service';\n\n@Component({\n  selector: 'lib-failure',\n  standalone: true,\n  imports: [ButtonModule],\n  templateUrl: './failure.component.html',\n  styleUrls: ['./failure.component.css'],\n})\nexport class FailureComponent implements OnInit {\n\n  constructor(private router: Router, private configService: ConfigService, private paymentCanceledService: PaymentCanceledService) {}\n  \n  content: any = null;\n\n\n  ngOnInit(): void {\n    this.configService.getContent$.subscribe((content) => {\n      if (content) {\n        this.content = content;\n      }\n    });\n\n    const routeParts = this.router.url.split('guid=');\n\n  this.paymentCanceledService.getPaymentCanceled$(routeParts[1]).subscribe(res => {})\n  }\n\n  cancel() {\n    this.router.navigateByUrl('/');\n  }\n\n  tryAgain() {\n    this.router.navigateByUrl('/subscriptions/summary');\n  }\n}\n","<div\n  class=\"w-full h-full min-h-screen line-height-3 flex flex-column align-items-center justify-content-center failure-background p-2\"\n>\n  <img\n  class=\"failure-image\"\n    style=\"width: 130px\"\n    src=\"{{content?.failure?.imageUrl}}\"\n  />\n  <div class=\"font-semibold text-center mt-6 text-5xl\" style=\"max-width: 750px\" [innerHTML]=\"content?.failure?.header\">\n  </div>\n  <div class=\"text-xl text-center mt-6\" style=\"max-width: 750px\" [innerHTML]=\"content?.failure?.message\">\n  </div>\n  <div class=\"text-base text-center mt-8\" style=\"max-width: 750px\" [innerHTML]=\"content?.failure?.supportMessage\">\n  </div>\n  <div class=\"flex flex-column align-items-center justify-items-center gap-5 mt-3 sm:flex-row\">\n    <div class=\"flex align-items-center justify-items-center gap-3\">\n      <i class=\"pi pi-envelope\"></i>\n      <div class=\"failure-email\" [innerHTML]=\"content?.failure?.email\"></div>\n    </div>\n    <div class=\"flex align-items-center justify-items-center gap-3\">\n      <i class=\"pi pi-phone\"></i>\n      <div class=\"failure-phone\" [innerHTML]=\"content?.failure?.phone\"></div>\n    </div>\n  </div>\n  <div class=\"mt-6 w-full flex-column flex align-items-center justify-content-center gap-4 sm:flex-row\">\n    <p-button [label]=\"content?.buttons.cancel\" [link]=\"true\" (onClick)=\"cancel()\"></p-button>\n    <p-button\n    [label]=\"content?.buttons.retryPayment\"\n      icon=\"pi pi-arrow-right ml-2\"\n      iconPos=\"right\"\n      (onClick)=\"tryAgain()\"\n    ></p-button>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { ConfigService } from '../../services/config.service';\nimport { map, Observable, of, switchMap } from 'rxjs';\nimport { IMyAccountVm } from '../../../../fas-payments/my-account-vm.model';\nimport { IPlatformSubscriptionPlanVm } from '../../../../fas-payments/platform-subscription-plan-vm.model';\nimport { SelectedPlanService } from '../../services/selected-plan.service';\nimport { LoginStatusService } from '../../services/login-status.service';\nimport { CommonModule } from '@angular/common';\nimport { SharedDataService } from '../../services/shared-data.service';\n\n@Component({\n  selector: 'lib-trial',\n  standalone: true,\n  imports: [ButtonModule, CommonModule, RouterLink],\n  templateUrl: './trial.component.html',\n  styleUrls: ['./trial.component.css']\n})\nexport class TrialComponent implements OnInit{\n\n  constructor(\n    private router:Router,\n    private configService: ConfigService,\n    private sharedDataService: SharedDataService,\n    private selectedPlanService: SelectedPlanService,\n    private loginStatusService: LoginStatusService\n\n  ){}\n\n  public isLogged!: boolean;\n  public myAccountData!: IMyAccountVm;\n  public plans!: IPlatformSubscriptionPlanVm[];\n  public content: any = null;\n  public currentPlanData!: any\n  public currentCompanydata!:any\n  public daysToEnd!: number\n  public mainColor= ''\n\n \n\n  ngOnInit() {\n    this.configService.getContent$.subscribe(content => {\n      if (content) {\n        this.content = content;\n      }\n    });\n\n    this.configService.getMainColor$.subscribe(\n      (color) => (this.mainColor = color)\n    );\n\n    this.getLoginStatus().pipe(\n      switchMap(isLogged => isLogged ? this.getMyAccountData() : of(null)),\n      switchMap(() => this.getAllPlansList())\n    ).subscribe();\n  }\n\n  getLoginStatus(): Observable<boolean> {\n    return this.loginStatusService.getLoginStatus().pipe(\n      map((res) => {\n        this.isLogged = res;\n        return this.isLogged;\n      })\n    );\n  }\n\n  getMyAccountData(): Observable<any> {\n    if (!this.isLogged) {\n      return of(null);\n    }\n    return this.sharedDataService.getMyAccountData().pipe(\n      map((res) => {\n        if (res) {\n          this.myAccountData = res;\n          this.currentCompanydata = res.companies.find(x => x.guid === res.lastUsedCompanyGuid);\n          this.getDaysRemaining(this.currentCompanydata.companyPlatformSubscription.subscriptionActiveTo)\n        }\n        return this.myAccountData;\n      })\n    );\n  }\n\n  getDaysRemaining(targetDate: string) {\n    const currentDate = new Date();\n    const endDate = new Date(targetDate);\n    const timeDifference = endDate.getTime() - currentDate.getTime();\n    const daysRemaining = Math.ceil(timeDifference / (1000 * 3600 * 24));\n    this.daysToEnd= daysRemaining;\n  }\n\n  getAllPlansList(): Observable<any[]> {\n    return this.selectedPlanService.getAllPlansList().pipe(\n      map((res) => {\n        if (res) {\n          this.plans = res;\n          this.currentPlanData = res.find(plan => plan.guid === this.currentCompanydata.companyPlatformSubscription.subscriptionPlanGuid);\n        }\n        return this.plans;\n      })\n    );\n  }\n\n  buyPlan(){\n    this.router.navigateByUrl('/subscriptions/offer')\n  }\n\n  \n\n}","<div\n  class=\"w-full h-full min-h-screen line-height-3 flex flex-column align-items-center justify-content-center trial-background\"\n>\n  <ng-container *ngIf=\"daysToEnd <= 0; else activeTrial\">\n    <div class=\"font-semibold text-center mt-6 text-5xl\" style=\"max-width: 750px\">\n      {{ content?.trail?.headerInactive }}\n    </div>\n    <div class=\"text-xl text-center mt-4\" style=\"max-width: 750px\">\n      {{ content?.trail?.messageInactive }}\n    </div>\n    <div class=\"mt-6 w-full flex align-items-center justify-content-center gap-4\">\n      <p-button\n        label=\"Wykup plan\"\n        icon=\"pi pi-arrow-right ml-2\"\n        iconPos=\"right\"\n        (onClick)=\"buyPlan()\"\n      ></p-button>\n    </div>\n  </ng-container>\n\n  <ng-template #activeTrial>\n    <div class=\"flex align-items-end justify-content-center gap-3\" [class]=\"'text-' + mainColor\">\n      <div class=\"font-semibold\" style=\"font-size: 200px\">{{ daysToEnd }}</div>\n      <div class=\"font-semibold mb-5\" style=\"font-size: 84px\">{{ content?.trail?.days }}</div>\n    </div>\n\n    <ng-container *ngIf=\"currentPlanData?.isTrial; else notTrial\">\n      <div class=\"font-semibold text-center mt-6 text-5xl\" style=\"max-width: 750px\">\n        {{ content?.trail?.headerTrial }}\n      </div>\n      <div class=\"text-xl text-center mt-4\" style=\"max-width: 750px\">\n        {{ content?.trail?.messageTrial }}\n      </div>\n      <div class=\"mt-6 w-full flex align-items-center justify-content-center gap-4\">\n        <p-button\n          [label]= \"content?.buttons.return\"\n          icon=\"pi pi-arrow-right ml-2\"\n          iconPos=\"right\"\n          (onClick)=\"buyPlan()\"\n        ></p-button>\n      </div>\n    </ng-container>\n\n    <ng-template #notTrial>\n      <div class=\"font-semibold text-center mt-6 text-5xl\" style=\"max-width: 750px\">\n        {{ content?.trail?.header }}\n      </div>\n      <div class=\"text-xl text-center mt-4\" style=\"max-width: 750px\">\n        {{ content?.trail?.message }}\n      </div>\n      <div class=\"mt-6 w-full flex align-items-center justify-content-center gap-4\">\n        <p-button\n          label=\"Powrót\"\n          icon=\"pi pi-arrow-left mr-2\"\n          [routerLink]=\"['/']\"\n        ></p-button>\n      </div>\n    </ng-template>\n  </ng-template>\n</div>","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { SubscriptionsService } from '../../services/api/subscriptions.service';\nimport { SelectedPlanService } from '../../services/selected-plan.service';\nimport { LoginStatusService } from '../../services/login-status.service';\nimport { MyAccountService } from '../../services/api/my-account.service';\nimport { Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { SharedDataService } from '../../services/shared-data.service';\nimport { InvoiceDataService } from '../../services/api/invoice-data.service';\nimport { ConfigService } from '../../services/config.service';\n\n@Component({\n  selector: 'lib-main',\n  standalone: true,\n  imports: [RouterOutlet],\n  templateUrl: './main.component.html',\n  styleUrls: ['./main.component.css'],\n})\nexport class MainComponent implements OnInit, OnDestroy {\n  private destroy$ = new Subject<void>();\n  \n  constructor(\n    private subscriptionsService: SubscriptionsService,\n    private selectedPlanService: SelectedPlanService,\n    private loginStatusService: LoginStatusService,\n    private invoiceDataService:InvoiceDataService,\n    private sharedDataService: SharedDataService,\n    private myAccountService: MyAccountService,\n    private configService: ConfigService,\n  ) {}\n\n  public isTrialNotAvailable!: boolean\n  public checkIsLogged!:boolean\n  public companyGuid!: string\n  public isLogged!: boolean\n\n  ngOnInit() {\n    this.configService.getCheckIsLogged$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((res) => {\n        this.checkIsLogged = res;\n        this.checkAndSetLoginStatus()\n          .pipe(\n            switchMap(() => this.getLoginStatus()),\n            switchMap(() => this.getMyAccountData()),\n            switchMap(() => this.getSubscriptions()),\n            takeUntil(this.destroy$)\n          )\n          .subscribe();\n      });\n  }\n\n  ngOnDestroy() {\n    this.destroy$.next(); \n    this.destroy$.complete();\n  }\n\n  checkAndSetLoginStatus() {\n    return new Observable<boolean>(observer => {\n      if (!this.checkIsLogged) {\n        this.loginStatusService.setLoginStatus(true);\n        observer.next(true);\n        observer.complete();\n        return;\n      }\n\n      const authToken = localStorage.getItem('authToken') || localStorage.getItem('authTokenGoogle');\n      if (authToken) {\n        const tokenExpiredDate = localStorage.getItem('authTokenExpired');\n        if (!tokenExpiredDate) {\n          this.loginStatusService.setLoginStatus(false);\n          observer.next(false);\n        } else {\n          const dateNow = new Date();\n          const dateExpired = new Date(tokenExpiredDate);\n          if (dateNow > dateExpired) {\n            this.loginStatusService.setLoginStatus(false);\n            observer.next(false);\n          } else {\n            this.loginStatusService.setLoginStatus(true);\n            observer.next(true);\n          }\n        }\n      } else {\n        this.loginStatusService.setLoginStatus(false);\n        observer.next(false);\n      }\n      observer.complete();\n    });\n  }\n  \n  getLoginStatus() {\n    return this.loginStatusService.getLoginStatus().pipe(\n      tap(res => this.isLogged = res)\n    );\n  }\n  \n  getMyAccountData(){\n    if (!this.isLogged) {\n      return of(null);\n    }\n    return this.myAccountService.getMyAccount$().pipe(\n      tap(res => {\n        this.sharedDataService.setMyAccountData(res);\n        this.companyGuid=res.lastUsedCompanyGuid\n        if(res.lastUsedCompany.companyPlatformSubscription != null){\n          this.isTrialNotAvailable = res.lastUsedCompany.companyPlatformSubscription.trialNotAvailable\n        }\n      })\n    );\n  }\n\n  getInvoiceData(){\n    if (!this.isLogged) {\n      return of(null);\n    }\n    return this.invoiceDataService.getInvoiceData$(this.companyGuid).pipe(\n      tap(res => {\n        this.sharedDataService.setInvoiceData(res);\n      })\n    );\n  }\n  \n  getSubscriptions() {\n    return this.subscriptionsService.getSubscriptions$().pipe(\n      tap(res => {\n        this.selectedPlanService.setAllPlansList(res)\n        if(this.isLogged && this.isTrialNotAvailable){\n          const plans = res.filter(plan => plan.isTrial !== true)\n          this.selectedPlanService.setAvailablePlansList(plans)\n        }\n        else{\n          const plans = res\n          this.selectedPlanService.setAvailablePlansList(plans)\n        }\n      })\n    );\n  }\n}\n","<router-outlet></router-outlet>","\nimport { RouterModule, Routes } from '@angular/router';\nimport { OfferComponent } from './components/offer/offer.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { SummaryComponent } from './components/summary/summary.component';\nimport {InjectionToken, NgModule} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FasPaymentComponent} from \"../fas-payment.component\";\nimport { SubscriptionsService } from './services/api/subscriptions.service';\nimport { NewPaymentService } from './services/api/new-payment.service';\nimport { SuccessComponent } from './components/success/success.component';\nimport { FasPaymentConfig } from './models/fas-payment-config';\nimport { FailureComponent } from './components/failure/failure.component';\nimport { TrialComponent } from './components/trial/trial.component';\nimport { ConfigService } from './services/config.service';\nimport { MyAccountService } from './services/api/my-account.service';\nimport { InvoiceDataService } from './services/api/invoice-data.service';\nimport { PaymentSuccessService } from './services/api/payment-success.service';\nimport { MainComponent } from './components/main/main.component';\nimport { PaymentCanceledService } from './services/api/payment-canceled.service';\nimport { AccessFromBookService } from './services/api/access-from-book.service';\n\nexport const FAS_PAYMENT_CONFIG = new InjectionToken<FasPaymentConfig>(\"Configuration object for fas-payment\");\n\nconst routes: Routes = [\n  {\n    path: '',\n    component: MainComponent,\n    children: [\n      {\n        path :'',\n        redirectTo: 'offer',\n        pathMatch: 'full'\n      },\n      {\n        path: 'offer',\n        component: OfferComponent,\n      },\n      // {\n      //   path: 'select',\n      //   component: SelectComponent,\n      // },\n      {\n        path: 'summary',\n        component: SummaryComponent,\n      },\n      {\n        path: 'paymentSuccess',\n        component: SuccessComponent,\n      },\n      {\n        path: 'paymentCancel',\n        component: FailureComponent,\n      },\n      {\n        path: 'status',\n        component: TrialComponent,\n      },\n    ]\n  },\n];\n\n\n@NgModule({\n  declarations: [\n    FasPaymentComponent\n  ],\n  imports: [\n    CommonModule,\n    RouterModule.forChild(routes)\n  ],\n  exports: [\n    FasPaymentComponent\n  ],\n  providers: [SubscriptionsService, NewPaymentService, ConfigService, MyAccountService, InvoiceDataService, PaymentSuccessService, PaymentCanceledService, AccessFromBookService]\n})\nexport class FasPaymentModule { }\n","/*\n * Public API Surface of fas-payment\n */\n\nexport * from './lib/fas-payment.service';\nexport * from './lib/fas-payment.component';\nexport * from './lib/fas-payment/fas-payment.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AccessFromBookService","i2.ConfigService","i3","i4","i6","i7","i1.SelectedPlanService","i2.LoginStatusService","i3.SharedDataService","i4.NewPaymentService","i5","i6.ConfigService","i9","i11","i2.InvoiceDataService","i5.MyAccountService","i10","i14","i2.PaymentSuccessService","i3.ConfigService","i3.PaymentCanceledService","i4.SelectedPlanService","i5.LoginStatusService","i1.SubscriptionsService","i2.SelectedPlanService","i3.LoginStatusService","i4.InvoiceDataService","i5.SharedDataService","i6.MyAccountService","i7.ConfigService"],"mappings":"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"}