epp-lib 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/esm2022/lib/component/index.mjs +2 -1
  2. package/esm2022/lib/component/payment.mjs +147 -0
  3. package/esm2022/lib/component/rapyd/rapyd.component.mjs +85 -43
  4. package/esm2022/lib/component/vodds-loader/vodds-loader.component.mjs +3 -3
  5. package/esm2022/lib/model/domain.mjs +4 -2
  6. package/esm2022/lib/model/index.mjs +1 -3
  7. package/esm2022/lib/pipe/index.mjs +2 -0
  8. package/esm2022/lib/pipe/transloco.pipe.mjs +22 -0
  9. package/esm2022/lib/service/common-util.mjs +7 -0
  10. package/esm2022/lib/service/iframe-message.service.mjs +22 -13
  11. package/esm2022/lib/service/index.mjs +2 -2
  12. package/esm2022/lib/service/vodds-http.service.mjs +7 -8
  13. package/esm2022/lib/translation/epp-lib-loader.mjs +23 -0
  14. package/esm2022/lib/translation/epp-lib-translation.service.mjs +23 -0
  15. package/esm2022/lib/translation/epp-lib.providers.mjs +25 -0
  16. package/esm2022/lib/translation/i18n/cs.json +6 -0
  17. package/esm2022/lib/translation/i18n/en.json +7 -0
  18. package/esm2022/lib/translation/i18n/es.json +6 -0
  19. package/esm2022/lib/translation/i18n/ru.json +6 -0
  20. package/esm2022/lib/translation/index.mjs +4 -0
  21. package/esm2022/public-api.mjs +4 -2
  22. package/fesm2022/epp-lib-cs-Cq7S0zUq.mjs +13 -0
  23. package/fesm2022/epp-lib-cs-Cq7S0zUq.mjs.map +1 -0
  24. package/fesm2022/epp-lib-en-Bt5VLnlu.mjs +15 -0
  25. package/fesm2022/epp-lib-en-Bt5VLnlu.mjs.map +1 -0
  26. package/fesm2022/epp-lib-es--n1OPBgV.mjs +13 -0
  27. package/fesm2022/epp-lib-es--n1OPBgV.mjs.map +1 -0
  28. package/fesm2022/epp-lib-ru-DCZzQ5FE.mjs +13 -0
  29. package/fesm2022/epp-lib-ru-DCZzQ5FE.mjs.map +1 -0
  30. package/fesm2022/epp-lib.mjs +530 -411
  31. package/fesm2022/epp-lib.mjs.map +1 -1
  32. package/lib/component/index.d.ts +1 -0
  33. package/lib/{service/payment.service.d.ts → component/payment.d.ts} +9 -4
  34. package/lib/component/rapyd/rapyd.component.d.ts +7 -6
  35. package/lib/model/domain.d.ts +2 -0
  36. package/lib/model/index.d.ts +0 -2
  37. package/lib/pipe/index.d.ts +1 -0
  38. package/lib/pipe/transloco.pipe.d.ts +9 -0
  39. package/lib/service/common-util.d.ts +3 -0
  40. package/lib/service/iframe-message.service.d.ts +7 -5
  41. package/lib/service/index.d.ts +1 -1
  42. package/lib/service/vodds-http.service.d.ts +1 -3
  43. package/lib/translation/epp-lib-loader.d.ts +31 -0
  44. package/lib/translation/epp-lib-translation.service.d.ts +8 -0
  45. package/lib/translation/epp-lib.providers.d.ts +6 -0
  46. package/lib/translation/index.d.ts +3 -0
  47. package/package.json +4 -2
  48. package/public-api.d.ts +3 -1
  49. package/src/lib/translation/i18n/cs.json +6 -0
  50. package/src/lib/translation/i18n/en.json +7 -0
  51. package/src/lib/translation/i18n/es.json +6 -0
  52. package/src/lib/translation/i18n/ru.json +6 -0
  53. package/esm2022/lib/model/base-form.mjs +0 -49
  54. package/esm2022/lib/model/broadcast/broadcast-event.mjs +0 -13
  55. package/esm2022/lib/model/callback-message.mjs +0 -7
  56. package/esm2022/lib/service/payment.service.mjs +0 -100
  57. package/lib/model/base-form.d.ts +0 -28
  58. package/lib/model/broadcast/broadcast-event.d.ts +0 -9
  59. package/lib/model/callback-message.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.html","../../../projects/epp-lib/src/lib/service/event-emitter.service.ts","../../../projects/epp-lib/src/lib/model/broadcast/broadcast-event.ts","../../../projects/epp-lib/src/lib/model/broadcast/broadcast-event-type.ts","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.ts","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.html","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/timer.ts","../../../projects/epp-lib/src/lib/service/payment.service.ts","../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/base-form.ts","../../../projects/epp-lib/src/lib/model/callback-message.ts","../../../projects/epp-lib/src/lib/model/count-down-time.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vodds-loader',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './vodds-loader.component.html',\r\n styleUrl: './vodds-loader.component.scss'\r\n})\r\nexport class VoddsLoaderComponent {\r\n @Input() message: string = '';\r\n @Input() showAjaxLoader: boolean = false;\r\n}\r\n","@if (showAjaxLoader) {\r\n <div class=\"load-indicator\">\r\n <img src=\"/assets/jayeson/common/img/ajax-loader16.gif\">\r\n {{message != undefined ? message : ''}}\r\n </div>\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { IBroadcastEvent } from '../model/broadcast/ibroadcast-event';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EventEmitterService {\r\n private readonly eventBus: Subject<IBroadcastEvent> = new Subject<IBroadcastEvent>();\r\n\r\n broadcast(event: IBroadcastEvent) {\r\n this.eventBus.next(event);\r\n }\r\n\r\n getEventBus(): Subject<IBroadcastEvent> {\r\n return this.eventBus;\r\n }\r\n}\r\n","import { BroadcastEventType } from \"./broadcast-event-type\";\r\nimport { IBroadcastEvent } from \"./ibroadcast-event\";\r\n\r\nexport class BroadcastEvent implements IBroadcastEvent {\r\n eventType: BroadcastEventType;\r\n eventData: any;\r\n\r\n constructor(eventType: BroadcastEventType, eventData?: any) {\r\n this.eventType = eventType;\r\n this.eventData = eventData;\r\n }\r\n\r\n getEventType(): BroadcastEventType {\r\n return this.eventType;\r\n }\r\n getEventData(): any {\r\n return this.eventData;\r\n }\r\n}\r\n","export enum BroadcastEventType {\r\n COMPLETE_RAPYD\r\n}\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { VoddsLoaderComponent } from '../vodds-loader/vodds-loader.component';\r\nimport { Checkout } from '../../model/checkout';\r\nimport { EventEmitterService } from '../../service/event-emitter.service';\r\nimport { BroadcastEvent } from '../../model/broadcast/broadcast-event';\r\nimport { BroadcastEventType } from '../../model/broadcast/broadcast-event-type';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\ndeclare var RapydCheckoutToolkit: any;\r\n\r\n@Component({\r\n selector: 'v-rapyd',\r\n standalone: true,\r\n imports: [VoddsLoaderComponent],\r\n providers: [EventEmitterService],\r\n templateUrl: './rapyd.component.html',\r\n styleUrl: './rapyd.component.scss'\r\n})\r\nexport class RapydComponent {\r\n @Input() checkout: Checkout | undefined;\r\n\tisOpen: boolean = false;\r\n checkoutToolKit: any = undefined;\r\n visaMasterTimeout: number = 300;\r\n visaMasterCheckoutId: string = '';\r\n visaMasterTimer: any; // interval\r\n displayTimer: string = \"00:00\";\r\n isShow: boolean = false;\r\n isLoading: boolean = true;\r\n errorMessage: string = \"\";\r\n defaultExpirationSec = 300; // 5mins\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private eventEmitter: EventEmitterService,\r\n ) {\r\n this.visaMasterTimeout = data.expiration ?? data.expiration;\r\n this.visaMasterCheckoutId = data.checkoutUrl;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopTimer();\r\n window.removeEventListener('onLoading', this.handleLoading);\r\n window.removeEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\r\n window.removeEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.checkout) {\r\n this.visaMasterTimeout = this.checkout.expiration;\r\n this.visaMasterCheckoutId = this.checkout.url;\r\n }\r\n console.log(\"constructor: \", this.visaMasterCheckoutId, this.visaMasterTimeout);\r\n this.createCheckoutToolKit();\r\n }\r\n\r\n createCheckoutToolKit() {\r\n this.checkoutToolKit = new RapydCheckoutToolkit({\r\n pay_button_text: \"Rapyd checkout\",\r\n id: this.visaMasterCheckoutId,\r\n wait_on_payment_redirect: true,\r\n\r\n style: {\r\n cardFields: {\r\n title: {\r\n color: '#80807F'\r\n },\r\n saveForFutureLabel:{\r\n color: '#80807F'\r\n }\r\n },\r\n input: {\r\n base: {\r\n fontWeight: \"400\",\r\n borderRadius: \"5px\",\r\n }\r\n },\r\n orderDetails: {\r\n title: {\r\n color: '#80807F'\r\n },\r\n totalLabel: {\r\n color: '#80807F'\r\n },\r\n totalValue: {\r\n color: '#80807F'\r\n }\r\n },\r\n submit: {\r\n base: {\r\n backgroundColor: \"#F48215\",\r\n color: \"#FFFFFF\",\r\n fontWeight: \"900\",\r\n borderRadius: \"5px\",\r\n border: \"none\",\r\n boxShadow: \"0px 0px 20px 0px #28303A33\",\r\n height: \"35px\",\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.displayCheckout();\r\n\r\n window.addEventListener('onLoading', this.handleLoading);\r\n\r\n window.addEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\r\n\r\n window.addEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\r\n }\r\n\r\n handleLoading = (event: any) => {\r\n console.log(\"handleLoading\");\r\n if (!event.detail.loading && this.isLoading) {\r\n this.isShow = true;\r\n this.isLoading = false;\r\n this.startTimer();\r\n }\r\n }\r\n\r\n handleCheckoutPaymentSuccess = (event: any) => {\r\n console.log(\"handleCheckoutPaymentSuccess\");\r\n this.closeDialog(false);\r\n this.emitCompleteRapyd('');\r\n }\r\n\r\n handleCheckoutPaymentFailure = (event: any) => {\r\n console.log(\"handleCheckoutPaymentFailure\");\r\n this.stopTimer();\r\n this.isShow = false;\r\n console.error(\"Failed to deposit visa!\", event.detail);\r\n this.emitCompleteRapyd(event.detail.message);\r\n }\r\n\r\n closeDialog(isCloseCheckout = true) {\r\n console.log(\"closeDialog\");\r\n this.stopTimer();\r\n if(this.checkoutToolKit && isCloseCheckout) {\r\n try {\r\n this.checkoutToolKit.closeCheckout();\r\n } catch(err) {\r\n console.error(\"Error when closing checkout\", err);\r\n }\r\n }\r\n this.checkoutToolKit = undefined;\r\n this.isShow = false;\r\n // this.dialogRef.close();\r\n\t};\r\n\r\n startTimer() {\r\n console.log(\"startTimer\");\r\n if(this.visaMasterTimer) this.stopTimer();\r\n this.visaMasterTimer = setInterval(() => {\r\n if(this.visaMasterTimeout <= 0) {\r\n this.closeDialog();\r\n return;\r\n }\r\n this.visaMasterTimeout--;\r\n this.updateDisplayTimer();\r\n }, 1000);\r\n }\r\n\r\n stopTimer() {\r\n console.log(\"stopTimer\");\r\n clearInterval(this.visaMasterTimer);\r\n }\r\n\r\n updateDisplayTimer() {\r\n console.log(\"updateDisplayTimer\");\r\n const min = this.pad(Math.floor(this.visaMasterTimeout / 60));\r\n const sec = this.pad(this.visaMasterTimeout % 60);\r\n\r\n this.displayTimer = `${min}:${sec}`;\r\n }\r\n\r\n pad(number: number) {\r\n console.log(\"pad\");\r\n return `${number < 10 ? '0' : ''}${number}`;\r\n }\r\n\r\n displayCheckout() {\r\n console.log(\"padisplayCheckoutd\");\r\n if(document.getElementById(\"rapyd-checkout\")) {\r\n this.checkoutToolKit.displayCheckout();\r\n } else {\r\n setTimeout(() => {\r\n this.displayCheckout();\r\n }, 10);\r\n }\r\n }\r\n\r\n emitCompleteRapyd(errorMessage: string) {\r\n console.log(\"emitCompleteRapyd\");\r\n this.eventEmitter.broadcast(new BroadcastEvent(BroadcastEventType.COMPLETE_RAPYD, errorMessage));\r\n }\r\n}\r\n","<div id=\"visa-card\">\r\n <div class=\"top\">\r\n <h2>$-addpwdr_paymentInformation-$</h2>\r\n <svg class=\"clsbtn my-account\" (click)=\"closeDialog()\" width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M9.89214 0L5.5 4.39214L1.10786 0L0 1.10786L4.39214 5.5L0 9.89214L1.10786 11L5.5 6.60786L9.89214 11L11 9.89214L6.60786 5.5L11 1.10786L9.89214 0Z\" fill=\"white\"/>\r\n </svg>\r\n </div>\r\n <div class=\"flex-center\">\r\n <vodds-loader [showAjaxLoader]=\"isLoading\"></vodds-loader>\r\n </div>\r\n @if (!isLoading && !isShow) {\r\n <div class=\"visa-card-message\">\r\n $-addpwdr_visaCardErrorMessage-$ <br> $-addpwdr_visaCardErrorMessage2-$\r\n </div>\r\n }\r\n <div class=\"visa-card-form\" [style]=\"{display: isShow ? 'flex' : 'none'}\">\r\n <div class=\"timer\">\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\" fill=\"#B5B5B5\"/>\r\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#B5B5B5\" stroke-width=\"1.5\"/>\r\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\" transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82861 1.06067)\" stroke=\"#B5B5B5\" stroke-width=\"1.5\"/>\r\n </svg>\r\n <span class=\"label\">&nbsp;$-addpwdr_visaCardTimeout-$&nbsp;</span> <span class=\"display-time\"> {{displayTimer}}</span>\r\n </div>\r\n <div id=\"rapyd-checkout\"></div>\r\n </div>\r\n</div>\r\n","export class Domain {\r\n defaultDomain: string = '';\r\n allowedOrigins: string[] = ['http://localhost:9000'];\r\n specialDomain: string[] = [];\r\n jetonDomain: string = '';\r\n constructor() {}\r\n}\r\n","export const ApiRoute = {\r\n GET_DOMAIN: { url: \"/getDomain\", method: \"get\" }\r\n}\r\n\r\n","export enum PaymentType {\r\n NA,\r\n JETON,\r\n ECOPAYZ,\r\n RAPYD\r\n}\r\n","export enum IframeMessageType {\r\n OPEN_PAYMENT_FORM,\r\n PAYMENT_CALLBACK\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IParam } from '../model/iparam';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VoddsHttpService {\r\n\r\n constructor(public httpClient: HttpClient) { }\r\n\r\n postJson(url: string, request: IParam): Observable<any> {\r\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\r\n return this.httpClient.post(url, request.toJson(), { headers });\r\n }\r\n\r\n get<T>(url: string, param?: IParam): Observable<T> {\r\n if(param) {\r\n url = url + '?' + param.toFormUrlEncoded();\r\n }\r\n return this.httpClient.get<T>(url);\r\n }\r\n get2<T>(url: string, option?: any): Observable<T> {\r\n const observable: Observable<any> = new Observable(observer => {\r\n this.httpClient.get<any>(url, option).subscribe(\r\n res => {\r\n observer.next(res);\r\n },\r\n err => {\r\n observer.next(err);\r\n }\r\n );\r\n });\r\n return observable;\r\n }\r\n\r\n postFormUrlEncoded(url: string, request: IParam) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n return this.httpClient.post(url, request.toFormUrlEncoded(), options);\r\n }\r\n\r\n getMainDomain(url: string){\r\n let mainDomain = url;\r\n let domain = window.location.origin;\r\n if(domain.includes(\"promo.\")){\r\n domain = domain.replace(\"promo.\", \"\");\r\n mainDomain = domain + url;\r\n }\r\n\r\n return mainDomain;\r\n }\r\n\r\n getFullUrl(url: string, param: IParam): string {\r\n return `${url}?${param.toFormUrlEncoded()}`;\r\n }\r\n}\r\n","import { ElementRef, Injectable, NgZone } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Domain } from '../model/domain';\r\nimport { VoddsHttpService } from './vodds-http.service';\r\nimport { ApiRoute } from '../api-route.const';\r\nimport { PaymentType } from '../model/payment-type';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IframeMessageService {\r\n private readonly messages$ = new Subject<IframeMessage>();\r\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\r\n private domain: Domain;\r\n\r\n private readonly listener = (event: MessageEvent) => {\r\n // console.log(\"message: \", event);\r\n if (!this.domain.allowedOrigins.includes(event.origin)) {\r\n console.log(\"listener not allow: \", event);\r\n if (this.domain.jetonDomain == event.origin) {\r\n this.ngZone.run(() => {\r\n this.thirdPartyMessages$.next(event);\r\n });\r\n return;\r\n }\r\n return;\r\n }\r\n if (event.data && IframeMessageType[event.data.type]) {\r\n this.ngZone.run(() => {\r\n this.messages$.next(event.data);\r\n });\r\n }\r\n };\r\n\r\n constructor(private readonly ngZone: NgZone, private http: VoddsHttpService) {\r\n this.domain = new Domain();\r\n this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({\r\n next: (resp: any) => {\r\n if (resp.data) {\r\n this.domain = resp.data;\r\n }\r\n },\r\n error: err => {}\r\n });\r\n window.addEventListener('message', this.listener);\r\n }\r\n\r\n messages(): Observable<IframeMessage> {\r\n return this.messages$.asObservable();\r\n }\r\n thirdPartyMessages(): Observable<MessageEvent> {\r\n return this.thirdPartyMessages$.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener('message', this.listener);\r\n this.messages$.complete();\r\n this.thirdPartyMessages$.complete();\r\n }\r\n\r\n isValidDomain(paymentType: PaymentType, origin: string) {\r\n if (paymentType == null) return false;\r\n switch(paymentType) {\r\n case PaymentType.JETON:\r\n return this.domain.jetonDomain == origin;\r\n default:\r\n return false;\r\n }\r\n\r\n }\r\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage) {\r\n if (iframe == undefined) return;\r\n iframe.nativeElement.contentWindow?.postMessage(\r\n message,\r\n window.location.origin\r\n );\r\n }\r\n}\r\n","import { PaymentType } from \"./payment-type\";\r\n\r\nexport class Checkout {\r\n requestId: number = 0;\r\n paymentType: PaymentType = PaymentType.NA;\r\n url: string = '';\r\n expiration: number = 300;\r\n errorMessage: string = '';\r\n successMessage: string = '';\r\n callback: any;\r\n popup: any;\r\n\r\n setErrorMessage(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n this.popup = undefined;\r\n }\r\n\r\n setCallback(callback: any) {\r\n this.successMessage = 'success';\r\n this.callback = callback;\r\n this.popup = undefined;\r\n }\r\n}\r\n","import { Checkout } from \"./checkout\";\r\n\r\nexport class Timer {\r\n interval: number = 0;\r\n maxTime: number = 120000; // 2 minute\r\n currentTime: number = 0;\r\n private popupTimer: ReturnType<typeof setInterval> | null = null;\r\n private popup: Window | null = null;\r\n\r\n constructor(interval: number, maxTime?: number) {\r\n this.interval = interval;\r\n if (maxTime) this.maxTime = maxTime;\r\n\t}\r\n oberserableTimer(data: any, callback?: Function) {\r\n this.popup = data.popup;\r\n console.log(\"investigate popup status begin: \", this.popup?.name, this.popup);\r\n this.popupTimer = setInterval(() => {\r\n console.log(\"investigate popup status: \", data);\r\n if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {\r\n this.stopWatcher();\r\n // TODO Hit expire time\r\n return;\r\n }\r\n this.currentTime += this.interval;\r\n if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user\r\n console.log(\"Close popup\");\r\n this.stopWatcher();\r\n if (callback) {\r\n data.setErrorMessage(\"Payment popup is closed\");\r\n callback(data);\r\n }\r\n }\r\n }, this.interval);\r\n }\r\n stopWatcher() {\r\n if (this.popupTimer) {\r\n clearInterval(this.popupTimer);\r\n this.popupTimer = null;\r\n }\r\n }\r\n}","import { ElementRef, inject, Injectable, ViewChild } from '@angular/core';\r\nimport { IframeMessageService } from './iframe-message.service';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\nimport { Checkout } from '../model/checkout';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Timer } from '../model/timer';\r\nimport { PaymentType } from '../model/payment-type';\r\n\r\nexport class PaymentService {\r\n cache: Map<number, Checkout> = new Map();\r\n iframe: ElementRef<HTMLIFrameElement> | undefined;//Set from the component\r\n timer: Timer = new Timer(500); // 0.5s\r\n result: Checkout | undefined;\r\n private iframeMessageService = inject(IframeMessageService);\r\n\r\n constructor() {\r\n /**\r\n * Listen OPEN_PAYMENT_FORM message to open 3th party page\r\n */\r\n this.iframeMessageService.messages().subscribe(message => {\r\n console.log('Received from iframe:', message);\r\n if (IframeMessageType.OPEN_PAYMENT_FORM == message.type) {\r\n const checkout: Checkout = Object.assign(new Checkout(), message.payload);\r\n if (!checkout || this.cache.get(checkout.requestId)) return;\r\n if (this.cache.size > 0) {\r\n this.cache.clear();\r\n //TODO clear the current popup\r\n }\r\n switch (checkout.paymentType) {\r\n case PaymentType.JETON:\r\n case PaymentType.ECOPAYZ:\r\n this.openWindow(checkout);\r\n break;\r\n case PaymentType.RAPYD:\r\n this.openVisaCheckout(checkout);\r\n break;\r\n default:\r\n }\r\n }\r\n if (IframeMessageType.PAYMENT_CALLBACK == message.type) {\r\n this.result = Object.assign(new Checkout(), message.payload);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Open 3th party page on the popup windown or new tab\r\n */\r\n openWindow(checkout: Checkout) {\r\n console.log(\"Open windown: \", this.cache);\r\n const width = 470;\r\n const height = 550;\r\n // var left = Math.max(0, (screen.width - width) / 2) + (screen.availLeft | 0),\r\n // top = Math.max(0, (screen.height - height) / 2) + (screen.availTop | 0);\r\n // var popup = window.open(url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\r\n const popup = window.open(checkout.url, 'VOdds', 'width=' + width + ',height=' + height + ',status=0,location=0,menubar=0,toolbar=0');\r\n if (!popup) {\r\n checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';\r\n this.sendMessageToIframe(checkout);\r\n return;\r\n }\r\n checkout.popup = popup;\r\n window.addEventListener(\"beforeunload\", () => {\r\n window.opener?.postMessage(\r\n { type: \"vodds-popup-closing12\" },\r\n window.location.origin\r\n );\r\n });\r\n popup.postMessage(\r\n { type: \"vodds-popup-closing\" },\r\n window.location.origin\r\n );\r\n this.cache.set(checkout.requestId, checkout);\r\n popup.focus();\r\n this.onThirdPartyPopupClose(checkout);\r\n }\r\n\r\n /**\r\n * Listen message or action from 3th party on the popup\r\n */\r\n onThirdPartyPopupClose(checkout: Checkout) {\r\n this.iframeMessageService.thirdPartyMessages().subscribe(event => {\r\n if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {\r\n console.log('Received from 3th party:', event.data);\r\n checkout.setCallback(event.data);\r\n this.timer.stopWatcher();\r\n this.sendMessageToIframe(checkout);\r\n }\r\n });\r\n this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));\r\n }\r\n\r\n /**\r\n * send the message from the parent to the iframe\r\n */\r\n sendMessageToIframe(checkout: Checkout) {\r\n console.log(\"send message to iframe\");\r\n if (this.iframe == undefined) return;\r\n let message: IframeMessage = {\r\n type: IframeMessageType.PAYMENT_CALLBACK,\r\n payload: checkout\r\n }\r\n this.iframeMessageService.sendMessageToIframe(this.iframe, message);\r\n }\r\n // removePaymentIframe() {\r\n // //TODO\r\n // this.iframe = undefined;\r\n // }\r\n async openVisaCheckout(checkout: Checkout) {\r\n\r\n }\r\n}\r\n","export class IParam {\r\n getMobileFlag(): boolean {\r\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\r\n }\r\n \r\n toJson(): string {\r\n return JSON.stringify(this);\r\n }\r\n\r\n toFormUrlEncoded(): string {\r\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\r\n }\r\n}\r\n","import { HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { IParam } from './iparam';\r\n\r\nexport class BaseForm extends IParam {\r\n\tisMobile: string;\r\n\r\n\tconstructor() {\r\n super();\r\n\t\tthis.isMobile = 'false';\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building POST params with form url encoded content type.\r\n\t * Remeber to call params.toString() when passing to http request\r\n\t */\r\n\tgetUrlSearchParam() {\r\n\t\tconst params = new URLSearchParams();\r\n\t\tparams.set('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Use this function for building GET params\r\n\t */\r\n\tgetHttpParams() {\r\n\t\tlet params = new HttpParams();\r\n\t\tparams = params.append('isMobile', this.isMobile);\r\n\t\treturn params;\r\n\t}\r\n\r\n\t/**\r\n\t * Add isMobile = 'true' to paramters\r\n\t * @param params : object\r\n\t */\r\n\taddIsMobile(params: any) {\r\n\t\tparams['isMobile'] = this.isMobile;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with form-urlencoded\r\n\t */\r\n\tgetHeaderWithContentTypeForm() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n\t\treturn headers;\r\n\t}\r\n\r\n\t/**\r\n\t * For POST request with json body\r\n\t */\r\n\tgetHeaderWithContentTypeJson() {\r\n\t\tconst headers = new HttpHeaders()\r\n\t\t\t.set('Content-Type', 'application/json; charset=utf-8');\r\n\t\treturn headers;\r\n\t}\r\n}","export class CallbackMessage {\r\n errorMessage: string = '';\r\n \r\n constructor(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n }\r\n}\r\n","import { Subject, takeUntil, timer } from \"rxjs\";\r\n\r\nexport class CountDownTime {\r\n\tisStart: boolean = false;\r\n isStop: boolean = false;\r\n nextRound: boolean = false;\r\n initTime: number = 0;\r\n\ttimeLeft: number = 0;\r\n isCancel: boolean = false;\r\n private destroy$ = new Subject<void>();\r\n\r\n\tconstructor(initTime: number) {\r\n\t\tthis.initTime = initTime;\r\n\t}\r\n\r\n\tstart() {\r\n\t\tthis.isStart = true;\r\n\t\tthis.isStop = false;\r\n\t\tthis.timeLeft = this.initTime;\r\n\t}\r\n\r\n\tstop() {\r\n\t\tthis.isStart = false;\r\n\t\tthis.isStop = true;\r\n\t\tthis.timeLeft = 0;\r\n\t\tthis.nextRound = true;\r\n\t}\r\n\r\n\tdownTime() {\r\n\t\tthis.timeLeft = this.timeLeft - 1;\r\n\t}\r\n cancel() {\r\n this.isCancel = true;\r\n this.stop();\r\n }\r\n oberserableTimer(isStop: any) {\r\n timer(0, 1000)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(val => {\r\n if (this.timeLeft === 0) {\r\n if (this.isStart) {\r\n this.stop();\r\n }\r\n } else {\r\n this.downTime();\r\n }\r\n if (this.nextRound) {\r\n this.nextRound = false;\r\n if (isStop) {\r\n isStop.emit();\r\n }\r\n }\r\n });\r\n }\r\n onDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}","/*\r\n * Public API Surface of epp-lib\r\n */\r\n\r\nexport * from './lib//component';\r\nexport * from './lib/service';\r\nexport * from './lib/model';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EventEmitterService","i1","i1.VoddsHttpService"],"mappings":";;;;;;;;MASa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,OAAO,GAAW,EAAE;QACpB,IAAA,CAAA,cAAc,GAAY,KAAK;AACzC,IAAA;+GAHY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0ICTjC,kMAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDGa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,kMAAA,EAAA;8BAKF,OAAO,EAAA,CAAA;sBAAf;gBACQ,cAAc,EAAA,CAAA;sBAAtB;;;MELU,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,OAAO,EAAmB;AASvF,IAAA;AAPG,IAAA,SAAS,CAAC,KAAsB,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;IAEA,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;IACxB;+GATS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCFY,cAAc,CAAA;IAIvB,WAAA,CAAY,SAA6B,EAAE,SAAe,EAAA;AACtD,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC9B;IAEA,YAAY,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;IACA,YAAY,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;AACH;;AClBD,IAAY,kBAEX;AAFD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,kBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc;AAClB,CAAC,EAFW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;;MCkBjB,cAAc,CAAA;AAavB,IAAA,WAAA,CACW,SAA4B,EACH,IAAS,EACjC,YAAiC,EAAA;QAFlC,IAAA,CAAA,SAAS,GAAT,SAAS;QACgB,IAAA,CAAA,IAAI,GAAJ,IAAI;QAC5B,IAAA,CAAA,YAAY,GAAZ,YAAY;QAd3B,IAAA,CAAA,MAAM,GAAY,KAAK;QACpB,IAAA,CAAA,eAAe,GAAQ,SAAS;QAChC,IAAA,CAAA,iBAAiB,GAAW,GAAG;QAC/B,IAAA,CAAA,oBAAoB,GAAW,EAAE;QAEjC,IAAA,CAAA,YAAY,GAAW,OAAO;QAC9B,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,SAAS,GAAY,IAAI;QACzB,IAAA,CAAA,YAAY,GAAW,EAAE;AACzB,QAAA,IAAA,CAAA,oBAAoB,GAAG,GAAG,CAAC;AAiF3B,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAU,KAAI;AAC3B,YAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;AACzC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,IAAI,CAAC,UAAU,EAAE;YACrB;AACJ,QAAA,CAAC;AAED,QAAA,IAAA,CAAA,4BAA4B,GAAG,CAAC,KAAU,KAAI;AAC1C,YAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;AAC9B,QAAA,CAAC;AAED,QAAA,IAAA,CAAA,4BAA4B,GAAG,CAAC,KAAU,KAAI;AAC1C,YAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACnB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AAChD,QAAA,CAAC;QA/FG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AAC3D,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW;IAChD;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,SAAS,EAAE;QAChB,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAC3D,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,IAAI,CAAC,4BAA4B,CAAC;QACzF,MAAM,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,IAAI,CAAC,4BAA4B,CAAC;IAC7F;IACA,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;YACjD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;QACjD;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC/E,IAAI,CAAC,qBAAqB,EAAE;IAChC;IAEA,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC;AAC5C,YAAA,eAAe,EAAE,gBAAgB;YACjC,EAAE,EAAE,IAAI,CAAC,oBAAoB;AAC7B,YAAA,wBAAwB,EAAE,IAAI;AAE9B,YAAA,KAAK,EAAE;AACH,gBAAA,UAAU,EAAE;AACR,oBAAA,KAAK,EAAE;AACH,wBAAA,KAAK,EAAE;AACV,qBAAA;AACD,oBAAA,kBAAkB,EAAC;AACf,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;AACD,gBAAA,KAAK,EAAE;AACH,oBAAA,IAAI,EAAE;AACF,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,YAAY,EAAE,KAAK;AACtB;AACJ,iBAAA;AACA,gBAAA,YAAY,EAAE;AACX,oBAAA,KAAK,EAAE;AACH,wBAAA,KAAK,EAAE;AACV,qBAAA;AACD,oBAAA,UAAU,EAAE;AACR,wBAAA,KAAK,EAAE;AACV,qBAAA;AACD,oBAAA,UAAU,EAAE;AACR,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE,SAAS;AAC1B,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,YAAY,EAAE,KAAK;AACnB,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,SAAS,EAAE,4BAA4B;AACvC,wBAAA,MAAM,EAAE,MAAM;AACjB;AACJ;AACJ;AACJ,SAAA,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;QAEtB,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAExD,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,IAAI,CAAC,4BAA4B,CAAC;QAEtF,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,IAAI,CAAC,4BAA4B,CAAC;IAC1F;IAyBA,WAAW,CAAC,eAAe,GAAG,IAAI,EAAA;AAC9B,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAG,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE;AACxC,YAAA,IAAI;AACA,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;YACxC;YAAE,OAAM,GAAG,EAAE;AACT,gBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC;YACrD;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;IAE1B;;IAEG,UAAU,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,IAAG,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,SAAS,EAAE;AACzC,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,MAAK;AACpC,YAAA,IAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,WAAW,EAAE;gBAClB;YACJ;YACA,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE;QAC7B,CAAC,EAAE,IAAI,CAAC;IACZ;IAEA,SAAS,GAAA;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACxB,QAAA,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC;IACvC;IAEA,kBAAkB,GAAA;AACd,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAEjD,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,GAAG,EAAE;IACvC;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;AACd,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAClB,QAAA,OAAO,CAAA,EAAG,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA,EAAG,MAAM,EAAE;IAC/C;IAEA,eAAe,GAAA;AACX,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACjC,QAAA,IAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;QAC1C;aAAO;YACH,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,eAAe,EAAE;YAC1B,CAAC,EAAE,EAAE,CAAC;QACV;IACJ;AAEA,IAAA,iBAAiB,CAAC,YAAoB,EAAA;AAClC,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,kBAAkB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACpG;AA/KS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,8CAeX,eAAe,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAflB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,wFAJd,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdlC,s2DA2BA,u9CDdY,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;+BACE,SAAS,EAAA,UAAA,EACP,IAAI,EAAA,OAAA,EACP,CAAC,oBAAoB,CAAC,EAAA,SAAA,EACpB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,s2DAAA,EAAA,MAAA,EAAA,CAAA,+5CAAA,CAAA,EAAA;;0BAmBzB,MAAM;2BAAC,eAAe;wEAdlB,QAAQ,EAAA,CAAA;sBAAhB;;;MEnBQ,MAAM,CAAA;AAKf,IAAA,WAAA,GAAA;QAJA,IAAA,CAAA,aAAa,GAAW,EAAE;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAa,CAAC,uBAAuB,CAAC;QACpD,IAAA,CAAA,aAAa,GAAa,EAAE;QAC5B,IAAA,CAAA,WAAW,GAAW,EAAE;IACT;AAClB;;ACNM,MAAM,QAAQ,GAAG;IACpB,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK;CACjD;;ICFW;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACT,CAAC,EALW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;;ICAX;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB;AACjB,IAAA,iBAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB;AACpB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;MCQhB,gBAAgB,CAAA;AAEzB,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAAgB;IAE7C,QAAQ,CAAC,GAAW,EAAE,OAAe,EAAA;QACjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACnE;IAEA,GAAG,CAAI,GAAW,EAAE,KAAc,EAAA;QAC9B,IAAG,KAAK,EAAE;YACN,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE;QAC9C;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,GAAG,CAAC;IACtC;IACA,IAAI,CAAI,GAAW,EAAE,MAAY,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAoB,IAAI,UAAU,CAAC,QAAQ,IAAG;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAM,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAC3C,GAAG,IAAG;AACF,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACtB,CAAC,EACD,GAAG,IAAG;AACF,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,YAAA,CAAC,CACJ;AACL,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,UAAU;IACrB;IAEA,kBAAkB,CAAC,GAAW,EAAE,OAAe,EAAA;AAC3C,QAAA,IAAI,OAAO,GAAG;YACV,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,mCAAmC;SACrF;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,OAAO,CAAC;IACzE;AAEA,IAAA,aAAa,CAAC,GAAW,EAAA;QACrB,IAAI,UAAU,GAAG,GAAG;AACpB,QAAA,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;AACnC,QAAA,IAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAC;YACzB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AACrC,YAAA,UAAU,GAAG,MAAM,GAAG,GAAG;QAC7B;AAEA,QAAA,OAAO,UAAU;IACrB;IAEA,UAAU,CAAC,GAAW,EAAE,KAAa,EAAA;QACjC,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAC,gBAAgB,EAAE,EAAE;IAC/C;+GAjDS,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCKY,oBAAoB,CAAA;IAwB7B,WAAA,CAA6B,MAAc,EAAU,IAAsB,EAAA;QAA9C,IAAA,CAAA,MAAM,GAAN,MAAM;QAAkB,IAAA,CAAA,IAAI,GAAJ,IAAI;AAvBxC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAiB;AACxC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAgB;AAGjD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAmB,KAAI;;AAEhD,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACpD,gBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC;gBAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,oBAAA,CAAC,CAAC;oBACF;gBACJ;gBACA;YACJ;AACA,YAAA,IAAI,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;oBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC;AAGG,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AAC7C,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAChB,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACX,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI;gBAC3B;YACJ,CAAC;AACD,YAAA,KAAK,EAAE,GAAG,MAAK;AAClB,SAAA,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;IACrD;IAEA,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;IACxC;IACA,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;IAClD;IAEA,WAAW,GAAA;QACP,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACzB,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;IACvC;IAEA,aAAa,CAAC,WAAwB,EAAE,MAAc,EAAA;QAClD,IAAI,WAAW,IAAI,IAAI;AAAE,YAAA,OAAO,KAAK;QACrC,QAAO,WAAW;YACd,KAAK,WAAW,CAAC,KAAK;AAClB,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM;AAC5C,YAAA;AACI,gBAAA,OAAO,KAAK;;IAGxB;IACA,mBAAmB,CAAC,MAAqC,EAAE,OAAsB,EAAA;QAC7E,IAAI,MAAM,IAAI,SAAS;YAAE;AACzB,QAAA,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,CAC3C,OAAO,EACP,MAAM,CAAC,QAAQ,CAAC,MAAM,CACzB;IACL;+GAlES,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCTY,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;QACI,IAAA,CAAA,SAAS,GAAW,CAAC;AACrB,QAAA,IAAA,CAAA,WAAW,GAAgB,WAAW,CAAC,EAAE;QACzC,IAAA,CAAA,GAAG,GAAY,EAAE;QACjB,IAAA,CAAA,UAAU,GAAW,GAAG;QACxB,IAAA,CAAA,YAAY,GAAW,EAAE;QACzB,IAAA,CAAA,cAAc,GAAW,EAAE;IAc/B;AAVI,IAAA,eAAe,CAAC,YAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;IAC1B;AAEA,IAAA,WAAW,CAAC,QAAa,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;IAC1B;AACH;;MCpBY,KAAK,CAAA;IAOd,WAAA,CAAY,QAAgB,EAAE,OAAgB,EAAA;QAN9C,IAAA,CAAA,QAAQ,GAAW,CAAC;AACpB,QAAA,IAAA,CAAA,OAAO,GAAW,MAAM,CAAC;QACzB,IAAA,CAAA,WAAW,GAAW,CAAC;QACf,IAAA,CAAA,UAAU,GAA0C,IAAI;QACxD,IAAA,CAAA,KAAK,GAAkB,IAAI;AAG/B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,OAAO;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IAC1C;IACG,gBAAgB,CAAC,IAAS,EAAE,QAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAC7E,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAK;AAC/B,YAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE;gBACjE,IAAI,CAAC,WAAW,EAAE;;gBAElB;YACJ;AACA,YAAA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ;YACjC,IAAI,IAAI,YAAY,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAChF,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC1B,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,QAAQ,EAAE;AACV,oBAAA,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CAAC;gBAClB;YACJ;AACJ,QAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACrB;IACA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QAC1B;IACJ;AACH;;MChCY,cAAc,CAAA;AAOvB,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,KAAK,GAA0B,IAAI,GAAG,EAAE;QAExC,IAAA,CAAA,KAAK,GAAU,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtB,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAGvD;;AAEG;QACH,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,OAAO,IAAG;AACrD,YAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC;YAC7C,IAAI,iBAAiB,CAAC,iBAAiB,IAAI,OAAO,CAAC,IAAI,EAAE;AACrD,gBAAA,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC;AACzE,gBAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE;gBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;;gBAEtB;AACA,gBAAA,QAAQ,QAAQ,CAAC,WAAW;oBACxB,KAAK,WAAW,CAAC,KAAK;oBACtB,KAAK,WAAW,CAAC,OAAO;AACpB,wBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;wBACzB;oBACJ,KAAK,WAAW,CAAC,KAAK;AAClB,wBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBAC/B;oBACJ;;YAER;YACA,IAAI,iBAAiB,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE;AACpD,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC;YAChE;AACJ,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;AACH,IAAA,UAAU,CAAC,QAAkB,EAAA;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG;QACjB,MAAM,MAAM,GAAG,GAAG;;;;QAIlB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,0CAA0C,CAAC;QACrI,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,QAAQ,CAAC,YAAY,GAAG,uEAAuE;AAC/F,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAClC;QACJ;AACA,QAAA,QAAQ,CAAC,KAAK,GAAG,KAAK;AACtB,QAAA,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAK;AACzC,YAAA,MAAM,CAAC,MAAM,EAAE,WAAW,CACtB,EAAE,IAAI,EAAE,uBAAuB,EAAE,EACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,CACzB;AACL,QAAA,CAAC,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,CACb,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,CACzB;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC5C,KAAK,CAAC,KAAK,EAAE;AACb,QAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;IACzC;AAEA;;AAEG;AACH,IAAA,sBAAsB,CAAC,QAAkB,EAAA;QACrC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;AAC7D,YAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC7E,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,IAAI,CAAC;AACnD,gBAAA,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YACtC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpF;AAEA;;AAEG;AACH,IAAA,mBAAmB,CAAC,QAAkB,EAAA;AAClC,QAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE;AAC9B,QAAA,IAAI,OAAO,GAAkB;YACzB,IAAI,EAAE,iBAAiB,CAAC,gBAAgB;AACxC,YAAA,OAAO,EAAE;SACZ;QACD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE;;;;;IAKA,MAAM,gBAAgB,CAAC,QAAkB,EAAA;IAEzC;AACH;;MC/GY,MAAM,CAAA;IACf,aAAa,GAAA;QACT,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IAClE;IAEA,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC/B;IAEA,gBAAgB,GAAA;AACZ,QAAA,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3G;AACH;;ACTK,MAAO,QAAS,SAAQ,MAAM,CAAA;AAGnC,IAAA,WAAA,GAAA;AACO,QAAA,KAAK,EAAE;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;IACxB;AAEA;;;AAGG;IACH,iBAAiB,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrC,QAAA,OAAO,MAAM;IACd;AAEA;;AAEG;IACH,aAAa,GAAA;AACZ,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE;QAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;AACjD,QAAA,OAAO,MAAM;IACd;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,MAAW,EAAA;AACtB,QAAA,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ;IACnC;AAEA;;AAEG;IACH,4BAA4B,GAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW;AAC7B,aAAA,GAAG,CAAC,cAAc,EAAE,kDAAkD,CAAC;AACzE,QAAA,OAAO,OAAO;IACf;AAEA;;AAEG;IACH,4BAA4B,GAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW;AAC7B,aAAA,GAAG,CAAC,cAAc,EAAE,iCAAiC,CAAC;AACxD,QAAA,OAAO,OAAO;IACf;AACA;;MCvDY,eAAe,CAAA;AAGxB,IAAA,WAAA,CAAY,YAAoB,EAAA;QAFhC,IAAA,CAAA,YAAY,GAAW,EAAE;AAGrB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IACpC;AACH;;MCJY,aAAa,CAAA;AASzB,IAAA,WAAA,CAAY,QAAgB,EAAA;QAR5B,IAAA,CAAA,OAAO,GAAY,KAAK;QACrB,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,SAAS,GAAY,KAAK;QAC1B,IAAA,CAAA,QAAQ,GAAW,CAAC;QACvB,IAAA,CAAA,QAAQ,GAAW,CAAC;QACjB,IAAA,CAAA,QAAQ,GAAY,KAAK;AACjB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAGxC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IACzB;IAEA,KAAK,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;IAC9B;IAEA,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACtB;IAEA,QAAQ,GAAA;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;IAClC;IACG,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,IAAI,EAAE;IACf;AACA,IAAA,gBAAgB,CAAC,MAAW,EAAA;AACxB,QAAA,KAAK,CAAC,CAAC,EAAE,IAAI;AACR,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,GAAG,IAAG;AACb,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACrB,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,IAAI,EAAE;gBACf;YACJ;iBAAO;gBACH,IAAI,CAAC,QAAQ,EAAE;YACnB;AACA,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,IAAI,EAAE;gBACjB;YACJ;AACJ,QAAA,CAAC,CAAC;IACV;IACA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC5B;AACH;;AC1DD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/translation/epp-lib-loader.ts","../../../projects/epp-lib/src/lib/translation/epp-lib-translation.service.ts","../../../projects/epp-lib/src/lib/translation/epp-lib.providers.ts","../../../projects/epp-lib/src/lib/service/event-emitter.service.ts","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/lib/service/common-util.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/count-down-time.ts","../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/timer.ts","../../../projects/epp-lib/src/lib/pipe/transloco.pipe.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.html","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.ts","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.html","../../../projects/epp-lib/src/lib/component/payment.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { TranslocoLoader } from '@jsverse/transloco';\r\n\r\n@Injectable()\r\nexport class EppLibLoader implements TranslocoLoader {\r\n getTranslation(lang: string) {\r\n switch (lang) {\r\n case 'cs':\r\n return import('./i18n/cs.json');\r\n case 'ru':\r\n return import('./i18n/ru.json');\r\n case 'es':\r\n return import('./i18n/es.json');\r\n case 'en':\r\n default:\r\n return import('./i18n/en.json');\r\n }\r\n }\r\n}","import { inject, Injectable } from '@angular/core';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EppLibTranslationService {\r\n private transloco = inject(TranslocoService);\r\n\r\n setLanguage(lang: string): void {\r\n this.transloco.setActiveLang(lang);\r\n }\r\n\r\n getLanguage(): string {\r\n return this.transloco.getActiveLang();\r\n }\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\r\nimport { provideTransloco, provideTranslocoScope } from '@jsverse/transloco';\r\nimport { EppLibLoader } from './epp-lib-loader';\r\n\r\nexport interface EppLibConfig {\r\n defaultLang: string;\r\n availableLangs: string[];\r\n}\r\n\r\nexport function provideEppLibTranslations(config: EppLibConfig): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n provideTransloco({\r\n config: {\r\n availableLangs: config.availableLangs,\r\n defaultLang: config.defaultLang,\r\n reRenderOnLangChange: true,\r\n },\r\n loader: EppLibLoader,\r\n }),\r\n provideTranslocoScope({\r\n scope: 'epp-lib',\r\n loader: {\r\n en: () => import('./i18n/en.json'),\r\n cs: () => import('./i18n/cs.json'),\r\n es: () => import('./i18n/es.json'),\r\n ru: () => import('./i18n/ru.json'),\r\n },\r\n })\r\n ]);\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { IBroadcastEvent } from '../model/broadcast/ibroadcast-event';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EventEmitterService {\r\n private readonly eventBus: Subject<IBroadcastEvent> = new Subject<IBroadcastEvent>();\r\n\r\n broadcast(event: IBroadcastEvent) {\r\n this.eventBus.next(event);\r\n }\r\n\r\n getEventBus(): Subject<IBroadcastEvent> {\r\n return this.eventBus;\r\n }\r\n}\r\n","export class Domain {\r\n defaultDomain: string = '';\r\n allowedOrigins: string[] = ['http://localhost:9000', 'http://localhost:4200'];\r\n specialDomain: string[] = [];\r\n jetonDomain: string = '';\r\n ecopayzDomain: string = '';\r\n rapydDomain: string = 'https://sandboxcheckout.rapyd.net';\r\n constructor() {}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IParam } from '../model/iparam';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class VoddsHttpService {\r\n private httpClient = inject(HttpClient);\r\n\r\n postJson(url: string, request: IParam): Observable<any> {\r\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\r\n return this.httpClient.post(url, request.toJson(), { headers });\r\n }\r\n\r\n get<T>(url: string, param?: IParam): Observable<T> {\r\n if(param) {\r\n url = url + '?' + param.toFormUrlEncoded();\r\n }\r\n return this.httpClient.get<T>(url);\r\n }\r\n get2<T>(url: string, option?: any): Observable<T> {\r\n const observable: Observable<any> = new Observable(observer => {\r\n this.httpClient.get<any>(url, option).subscribe(\r\n res => {\r\n observer.next(res);\r\n },\r\n err => {\r\n observer.next(err);\r\n }\r\n );\r\n });\r\n return observable;\r\n }\r\n\r\n postFormUrlEncoded(url: string, request: IParam) {\r\n let options = {\r\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\r\n };\r\n return this.httpClient.post(url, request.toFormUrlEncoded(), options);\r\n }\r\n\r\n getMainDomain(url: string){\r\n let mainDomain = url;\r\n let domain = window.location.origin;\r\n if(domain.includes(\"promo.\")){\r\n domain = domain.replace(\"promo.\", \"\");\r\n mainDomain = domain + url;\r\n }\r\n\r\n return mainDomain;\r\n }\r\n\r\n getFullUrl(url: string, param: IParam): string {\r\n return `${url}?${param.toFormUrlEncoded()}`;\r\n }\r\n}\r\n","export const ApiRoute = {\r\n GET_DOMAIN: { url: \"/getDomain\", method: \"get\" }\r\n}\r\n\r\n","export enum PaymentType {\r\n NA,\r\n JETON,\r\n ECOPAYZ,\r\n RAPYD\r\n}\r\n","export enum IframeMessageType {\r\n OPEN_PAYMENT_FORM,\r\n PAYMENT_CALLBACK\r\n}\r\n","import { ElementRef, inject, Injectable, NgZone } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Domain } from '../model/domain';\r\nimport { VoddsHttpService } from './vodds-http.service';\r\nimport { ApiRoute } from '../api-route.const';\r\nimport { PaymentType } from '../model/payment-type';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IframeMessageService {\r\n private readonly messages$ = new Subject<IframeMessage>();\r\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\r\n private domain: Domain;\r\n\r\n private http = inject(VoddsHttpService);\r\n\r\n private readonly listener = (event: MessageEvent) => {\r\n if (!this.domain.allowedOrigins.includes(event.origin)) {\r\n if (this.isValidDomain(PaymentType.NA, event.origin)) {\r\n this.ngZone.run(() => {\r\n this.thirdPartyMessages$.next(event);\r\n });\r\n return;\r\n }\r\n return;\r\n }\r\n if (event.data && IframeMessageType[event.data.type]) {\r\n this.ngZone.run(() => {\r\n this.messages$.next(event.data);\r\n });\r\n }\r\n };\r\n\r\n constructor(private readonly ngZone: NgZone) {\r\n this.domain = new Domain();\r\n this.http.get(ApiRoute.GET_DOMAIN.url).subscribe({\r\n next: (resp: any) => {\r\n if (resp.data) {\r\n this.domain = resp.data;\r\n }\r\n },\r\n error: err => {}\r\n });\r\n window.addEventListener('message', this.listener);\r\n }\r\n\r\n onMessages(): Observable<IframeMessage> {\r\n return this.messages$.asObservable();\r\n }\r\n onThirdPartyMessages(): Observable<MessageEvent> {\r\n return this.thirdPartyMessages$.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener('message', this.listener);\r\n this.messages$.complete();\r\n this.thirdPartyMessages$.complete();\r\n }\r\n\r\n /**\r\n * Skip for RAPYD - It will process when the dialog close\r\n */\r\n isValidDomain(paymentType: PaymentType, origin: string) {\r\n if (paymentType == undefined || paymentType == null) return false;\r\n switch(paymentType) {\r\n case PaymentType.JETON:\r\n return this.domain.jetonDomain == origin;\r\n case PaymentType.ECOPAYZ:\r\n return this.domain.ecopayzDomain == origin;\r\n // case PaymentType.RAPYD:\r\n // return this.domain.rapydDomain == origin;\r\n case PaymentType.NA:\r\n return this.domain.jetonDomain == origin\r\n // || this.domain.rapydDomain == origin\r\n || this.domain.ecopayzDomain == origin;\r\n default:\r\n return false;\r\n }\r\n\r\n }\r\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage) {\r\n if (iframe == undefined) return;\r\n iframe.nativeElement.contentWindow?.postMessage(\r\n message,\r\n window.location.origin\r\n );\r\n }\r\n}\r\n","export class CommonUtil {\r\n static isMobileTemplate(): boolean {\r\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\r\n return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|Mobile/i.test(userAgent.toLowerCase());\r\n }\r\n}\r\n","import { PaymentType } from \"./payment-type\";\r\n\r\nexport class Checkout {\r\n requestId: number = 0;\r\n paymentType: PaymentType = PaymentType.NA;\r\n url: string = '';\r\n expiration: number = 300;\r\n errorMessage: string = '';\r\n successMessage: string = '';\r\n callback: any;\r\n popup: any;\r\n\r\n setErrorMessage(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n this.popup = undefined;\r\n }\r\n\r\n setCallback(callback: any) {\r\n this.successMessage = 'success';\r\n this.callback = callback;\r\n this.popup = undefined;\r\n }\r\n}\r\n","import { Subject, takeUntil, timer } from \"rxjs\";\r\n\r\nexport class CountDownTime {\r\n\tisStart: boolean = false;\r\n isStop: boolean = false;\r\n nextRound: boolean = false;\r\n initTime: number = 0;\r\n\ttimeLeft: number = 0;\r\n isCancel: boolean = false;\r\n private destroy$ = new Subject<void>();\r\n\r\n\tconstructor(initTime: number) {\r\n\t\tthis.initTime = initTime;\r\n\t}\r\n\r\n\tstart() {\r\n\t\tthis.isStart = true;\r\n\t\tthis.isStop = false;\r\n\t\tthis.timeLeft = this.initTime;\r\n\t}\r\n\r\n\tstop() {\r\n\t\tthis.isStart = false;\r\n\t\tthis.isStop = true;\r\n\t\tthis.timeLeft = 0;\r\n\t\tthis.nextRound = true;\r\n\t}\r\n\r\n\tdownTime() {\r\n\t\tthis.timeLeft = this.timeLeft - 1;\r\n\t}\r\n cancel() {\r\n this.isCancel = true;\r\n this.stop();\r\n }\r\n oberserableTimer(isStop: any) {\r\n timer(0, 1000)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(val => {\r\n if (this.timeLeft === 0) {\r\n if (this.isStart) {\r\n this.stop();\r\n }\r\n } else {\r\n this.downTime();\r\n }\r\n if (this.nextRound) {\r\n this.nextRound = false;\r\n if (isStop) {\r\n isStop.emit();\r\n }\r\n }\r\n });\r\n }\r\n onDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}","export class IParam {\r\n getMobileFlag(): boolean {\r\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\r\n }\r\n \r\n toJson(): string {\r\n return JSON.stringify(this);\r\n }\r\n\r\n toFormUrlEncoded(): string {\r\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\r\n }\r\n}\r\n","import { Checkout } from \"./checkout\";\r\n\r\nexport class Timer {\r\n interval: number = 0;\r\n maxTime: number = 120000; // 2 minute\r\n currentTime: number = 0;\r\n private popupTimer: ReturnType<typeof setInterval> | null = null;\r\n private popup: Window | null = null;\r\n\r\n constructor(interval: number, maxTime?: number) {\r\n this.interval = interval;\r\n if (maxTime) this.maxTime = maxTime;\r\n\t}\r\n oberserableTimer(data: any, callback?: Function) {\r\n this.popup = data.popup;\r\n console.log(\"investigate popup status begin: \", this.popup?.name, this.popup);\r\n this.popupTimer = setInterval(() => {\r\n console.log(\"investigate popup status: \", data);\r\n if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {\r\n this.stopWatcher();\r\n // TODO Hit expire time\r\n return;\r\n }\r\n this.currentTime += this.interval;\r\n if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user\r\n console.log(\"Close popup\");\r\n this.stopWatcher();\r\n if (callback) {\r\n data.setErrorMessage(\"Payment popup is closed\");\r\n callback(data);\r\n }\r\n }\r\n }, this.interval);\r\n }\r\n stopWatcher() {\r\n if (this.popupTimer) {\r\n clearInterval(this.popupTimer);\r\n this.popupTimer = null;\r\n }\r\n }\r\n}","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Pipe({\r\n name: 'vTransloco',\r\n standalone: true\r\n})\r\nexport class TranslocoPipe implements PipeTransform {\r\n private transloco = inject(TranslocoService);\r\n\r\n transform(key: string): Observable<string> {\r\n return this.transloco.translate(key, {}, 'epp-lib');\r\n // return this.transloco.selectTranslate(key, {}, 'epp-lib');\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vodds-loader',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './vodds-loader.component.html',\r\n styleUrl: './vodds-loader.component.scss'\r\n})\r\nexport class VoddsLoaderComponent {\r\n @Input() message: string = '';\r\n @Input() showAjaxLoader: boolean = false;\r\n}\r\n","@if (showAjaxLoader) {\r\n <div class=\"load-indicator\">\r\n <img src=\"https://cdn.voddos.net/vodds/static/ajax-loader16.gif\">\r\n {{message != undefined ? message : ''}}\r\n </div>\r\n}\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { VoddsLoaderComponent } from '../vodds-loader/vodds-loader.component';\r\nimport { Checkout } from '../../model/checkout';\r\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\r\nimport { CommonUtil } from '../../service/common-util';\r\nimport { NgStyle } from '@angular/common';\r\n\r\ndeclare var RapydCheckoutToolkit: any;\r\n\r\n@Component({\r\n selector: 'v-rapyd',\r\n standalone: true,\r\n imports: [ NgStyle, VoddsLoaderComponent, MatDialogModule, MatProgressSpinnerModule, TranslocoModule ],\r\n templateUrl: './rapyd.component.html',\r\n styleUrl: './rapyd.component.scss'\r\n})\r\nexport class RapydComponent {\r\n @Input() checkout: Checkout | undefined;\r\n\tisOpen: boolean = false;\r\n checkoutToolKit: any = undefined;\r\n visaMasterTimeout: number = 300;\r\n visaMasterCheckoutId: string = '';\r\n visaMasterTimer: any; // interval\r\n displayTimer: string = \"00:00\";\r\n isShow: boolean = false;\r\n isLoading: boolean = true;\r\n errorMessage: string = \"\";\r\n defaultExpirationSec = 300; // 5mins\r\n checkoutFailureMessage: string = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<any>,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private translocoService: TranslocoService\r\n ) {\r\n this.visaMasterTimeout = data.expiration ?? data.expiration;\r\n this.visaMasterCheckoutId = data.checkoutUrl;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopTimer();\r\n window.removeEventListener('onLoading', this.handleLoading);\r\n window.removeEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\r\n window.removeEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.checkout) {\r\n this.visaMasterTimeout = this.checkout.expiration;\r\n this.visaMasterCheckoutId = this.checkout.url;\r\n }\r\n\r\n this.translocoService.selectTranslate('mobile_payment_form_title').subscribe(buttonText => {\r\n console.log('Async translations loaded:', buttonText);\r\n this.checkoutToolKit = this.isMobile() ? this.createCheckoutToolKitOnMobile(buttonText) : this.createCheckoutToolKitOnDesktop(buttonText);\r\n this.displayCheckout();\r\n window.addEventListener('onLoading', this.handleLoading);\r\n window.addEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\r\n window.addEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\r\n });\r\n }\r\n\r\n createCheckoutToolKitOnDesktop(buttonText: string) {\r\n return new RapydCheckoutToolkit({\r\n pay_button_text: buttonText,\r\n id: this.visaMasterCheckoutId,\r\n wait_on_payment_redirect: true,\r\n\r\n style: {\r\n cardFields: {\r\n title: {\r\n color: '#80807F'\r\n },\r\n saveForFutureLabel:{\r\n color: '#80807F'\r\n }\r\n },\r\n input: {\r\n base: {\r\n fontWeight: \"400\",\r\n borderRadius: \"5px\",\r\n }\r\n },\r\n orderDetails: {\r\n title: {\r\n color: '#80807F'\r\n },\r\n totalLabel: {\r\n color: '#80807F'\r\n },\r\n totalValue: {\r\n color: '#80807F'\r\n }\r\n },\r\n submit: {\r\n base: {\r\n backgroundColor: \"#F48215\",\r\n color: \"#FFFFFF\",\r\n fontWeight: \"900\",\r\n borderRadius: \"5px\",\r\n border: \"none\",\r\n boxShadow: \"0px 0px 20px 0px #28303A33\",\r\n height: \"35px\",\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n createCheckoutToolKitOnMobile(buttonText: string) {\r\n return new RapydCheckoutToolkit({\r\n pay_button_text: buttonText,\r\n id: this.visaMasterCheckoutId,\r\n wait_on_payment_redirect: true,\r\n style: {\r\n input: {\r\n base: {\r\n fontWeight: \"400\",\r\n borderRadius: \"5px\",\r\n fontSize: \"12px\"\r\n },\r\n placeholder: {\r\n fontSize: \"12px !important\",\r\n fontWeight: \"700\",\r\n fontFamily: \"Manrope\",\r\n color: '#8C8C8C',\r\n },\r\n },\r\n cardFields: {\r\n title: {\r\n color: '#8C8C8C'\r\n },\r\n saveForFutureLabel: {\r\n color: '#8C8C8C',\r\n }\r\n },\r\n orderDetails: {\r\n title: {\r\n color: '#8C8C8C',\r\n },\r\n totalLabel: {\r\n color: '#8C8C8C',\r\n },\r\n totalValue: {\r\n color: '#8C8C8C',\r\n }\r\n },\r\n submit: {\r\n base: {\r\n backgroundColor: \"#28303A\",\r\n color: \"#FFFFFF\",\r\n fontWeight: \"900 !important\",\r\n borderRadius: \"12px\",\r\n boxShadow: \"0 0 8.57px #ff6b0066 !important\",\r\n height: \"40px\",\r\n width: \"100%\",\r\n fontSize: \"12px !important\",\r\n border: \"none\"\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n handleLoading = (event: any) => {\r\n if (!event.detail.loading && this.isLoading) {\r\n this.isShow = true;\r\n this.isLoading = false;\r\n this.startTimer();\r\n }\r\n }\r\n\r\n handleCheckoutPaymentSuccess = (event: any) => {\r\n this.closeDialog(false);\r\n }\r\n\r\n handleCheckoutPaymentFailure = (event: any) => {\r\n this.stopTimer();\r\n this.isShow = false;\r\n this.checkoutFailureMessage = event.detail.message;\r\n }\r\n\r\n closeDialog(isCloseCheckout = true) {\r\n this.stopTimer();\r\n if(this.checkoutToolKit && isCloseCheckout) {\r\n try {\r\n this.checkoutToolKit.closeCheckout();\r\n } catch(err) {\r\n console.error(\"Error when closing checkout\", err);\r\n }\r\n }\r\n this.checkoutToolKit = undefined;\r\n this.isShow = false;\r\n this.dialogRef.close(this.checkoutFailureMessage);\r\n\t};\r\n\r\n startTimer() {\r\n if(this.visaMasterTimer) this.stopTimer();\r\n this.visaMasterTimer = setInterval(() => {\r\n if(this.visaMasterTimeout <= 0) {\r\n this.closeDialog();\r\n return;\r\n }\r\n this.visaMasterTimeout--;\r\n this.displayTimer = `${this.pad(Math.floor(this.visaMasterTimeout / 60))}:${this.pad(this.visaMasterTimeout % 60)}`;\r\n }, 1000);\r\n }\r\n\r\n stopTimer() {\r\n clearInterval(this.visaMasterTimer);\r\n }\r\n\r\n pad(number: number) {\r\n return `${number < 10 ? '0' : ''}${number}`;\r\n }\r\n\r\n displayCheckout() {\r\n if(document.getElementById(\"rapyd-checkout\")) {\r\n this.checkoutToolKit.displayCheckout();\r\n } else {\r\n setTimeout(() => {\r\n this.displayCheckout();\r\n }, 10);\r\n }\r\n }\r\n\r\n isMobile() {\r\n return true;\r\n // return CommonUtil.isMobileTemplate();\r\n }\r\n}\r\n","@if(isMobile()) {\r\n <div class=\"v-dialog mobile\">\r\n <div class=\"v-flex-center-between header text-black-cs\">\r\n <div class=\"v-flex-center-none\">\r\n <span class=\"ml-8\">{{ 'mobile_payment_form_title' | transloco }}</span>\r\n </div>\r\n <div class=\"v-flex-center-between mr-8\">\r\n <div (click)=\"closeDialog()\">\r\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M11.0121 12.3959L16.6455 18.0293C16.8333 18.2107 17.0849 18.3111 17.346 18.3088C17.6071 18.3065 17.8569 18.2018 18.0415 18.0172C18.2261 17.8325 18.3309 17.5828 18.3331 17.3217C18.3354 17.0606 18.235 16.809 18.0536 16.6212L12.4202 10.9878L18.0536 5.35431C18.235 5.16649 18.3354 4.91494 18.3331 4.65384C18.3309 4.39273 18.2261 4.14297 18.0415 3.95833C17.8569 3.77369 17.6071 3.66896 17.346 3.66669C17.0849 3.66443 16.8333 3.7648 16.6455 3.9462L11.0121 9.57964L5.37863 3.9462C5.18997 3.76928 4.93988 3.67271 4.68128 3.67691C4.42268 3.68111 4.17585 3.78575 3.99304 3.9687C3.81022 4.15165 3.70575 4.39854 3.70173 4.65715C3.69772 4.91575 3.79447 5.16577 3.97152 5.35431L9.60396 10.9878L3.97052 16.6212C3.87541 16.7131 3.79954 16.8229 3.74735 16.9444C3.69516 17.0659 3.66769 17.1966 3.66654 17.3288C3.66539 17.4611 3.69059 17.5922 3.74066 17.7146C3.79073 17.837 3.86468 17.9481 3.95818 18.0416C4.05168 18.1352 4.16287 18.2091 4.28525 18.2592C4.40764 18.3092 4.53877 18.3344 4.67099 18.3333C4.80322 18.3321 4.93389 18.3047 5.05539 18.2525C5.17688 18.2003 5.28677 18.1244 5.37863 18.0293L11.0121 12.3959Z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n @if (isLoading) {\r\n <div class=\"v-spinner\">\r\n <mat-spinner diameter=\"50\" strokeWidth=\"4\"></mat-spinner>\r\n </div>\r\n }\r\n <div class=\"v-content\" id=\"deposit-id\">\r\n @if (!isLoading && !isShow) {\r\n <div class=\"visa-card-message\">\r\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\r\n </div>\r\n }\r\n <div class=\"vodds-checkout-deposit\">\r\n @if(!isLoading && isShow) {\r\n <div class=\"vodds-checkout-expiration\">\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\r\n fill=\"#8C8C8C\" />\r\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\r\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\" transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82843 1.06067)\"\r\n stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\r\n </svg>\r\n <span>{{ 'visaCardTimeout' | transloco }} <span class=\"countdown-timer\">{{displayTimer}}</span></span>\r\n </div>\r\n }\r\n <div id=\"rapyd-checkout\" class=\"iframe-wrapper\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n} @else {\r\n <div id=\"visa-card\">\r\n <div class=\"top\">\r\n <h2>{{ 'payment_form_title' | transloco }}</h2>\r\n <svg class=\"clsbtn my-account\" (click)=\"closeDialog()\" width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M9.89214 0L5.5 4.39214L1.10786 0L0 1.10786L4.39214 5.5L0 9.89214L1.10786 11L5.5 6.60786L9.89214 11L11 9.89214L6.60786 5.5L11 1.10786L9.89214 0Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <div class=\"flex-center\">\r\n <vodds-loader [showAjaxLoader]=\"isLoading\"></vodds-loader>\r\n </div>\r\n @if (!isLoading && !isShow) {\r\n <div class=\"visa-card-message\">\r\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\r\n </div>\r\n }\r\n <div class=\"visa-card-form\" [style]=\"{display: isShow ? 'flex' : 'none'}\">\r\n <div class=\"timer\">\r\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\r\n fill=\"#B5B5B5\" />\r\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#B5B5B5\" stroke-width=\"1.5\" />\r\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\"\r\n transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82861 1.06067)\" stroke=\"#B5B5B5\"\r\n stroke-width=\"1.5\" />\r\n </svg>\r\n <span class=\"label\">&nbsp;{{ 'visaCardTimeout' | transloco }}&nbsp;</span> <span class=\"display-time\">\r\n {{displayTimer}}</span>\r\n </div>\r\n <div id=\"rapyd-checkout\"></div>\r\n </div>\r\n </div>\r\n}","import { ElementRef, inject } from '@angular/core';\r\nimport { IframeMessageService } from '../service/iframe-message.service';\r\nimport { IframeMessageType } from '../model/iframe-message-type';\r\nimport { Checkout } from '../model/checkout';\r\nimport { IframeMessage } from '../model/iframe-message';\r\nimport { Timer } from '../model/timer';\r\nimport { PaymentType } from '../model/payment-type';\r\nimport { RapydComponent } from './rapyd/rapyd.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nexport class Payment {\r\n cache: Map<number, Checkout> = new Map();\r\n iframe: ElementRef<HTMLIFrameElement> | undefined;//Set from the component\r\n timer: Timer = new Timer(500); // 0.5s\r\n result: Checkout | undefined;\r\n private iframeMessageService = inject(IframeMessageService);\r\n private rapydScriptLoaded = false;\r\n\r\n constructor(public dialog: MatDialog) {\r\n /**\r\n * Listen OPEN_PAYMENT_FORM message to open 3th party page\r\n */\r\n this.iframeMessageService.onMessages().subscribe(message => {\r\n console.log('Received from iframe:', message);\r\n if (IframeMessageType.OPEN_PAYMENT_FORM == message.type) {\r\n const checkout: Checkout = Object.assign(new Checkout(), message.payload);\r\n if (!checkout || this.cache.get(checkout.requestId)) return;\r\n if (this.cache.size > 0) {\r\n this.cache.clear();\r\n //TODO clear the current popup\r\n }\r\n switch (checkout.paymentType) {\r\n case PaymentType.JETON:\r\n case PaymentType.ECOPAYZ:\r\n this.openWindow(checkout);\r\n break;\r\n case PaymentType.RAPYD:\r\n this.openVisaCheckout(checkout);\r\n break;\r\n default:\r\n }\r\n }\r\n if (IframeMessageType.PAYMENT_CALLBACK == message.type) {\r\n this.result = Object.assign(new Checkout(), message.payload);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Open 3th party page on the popup windown or new tab\r\n */\r\n openWindow(checkout: Checkout) {\r\n console.log(\"Open windown: \", this.cache);\r\n const width = 470;\r\n const height = 550;\r\n var left = Math.max(0, (screen.width - width) / 2),\r\n top = Math.max(0, (screen.height - height) / 2);\r\n // var popup = window.open(url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\r\n let popup = window.open(checkout.url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\r\n if (!popup) {\r\n checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';\r\n this.sendMessageToIframe(checkout);\r\n return;\r\n }\r\n checkout.popup = popup;\r\n // window.addEventListener(\"beforeunload\", () => {\r\n // window.opener?.postMessage(\r\n // { type: \"vodds-popup-closing12\" },\r\n // window.location.origin\r\n // );\r\n // });\r\n // popup.postMessage(\r\n // { type: \"vodds-popup-closing\" },\r\n // window.location.origin\r\n // );\r\n this.cache.set(checkout.requestId, checkout);\r\n popup.focus();\r\n this.onThirdPartyMessage(checkout);\r\n this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));\r\n }\r\n async openVisaCheckout(checkout: Checkout) {\r\n try {\r\n await this.load();\r\n this.dialog.open(RapydComponent, {\r\n data: {\r\n checkoutUrl: checkout.url,\r\n expiration: checkout.expiration\r\n },\r\n width: '500px',\r\n maxWidth: '90vw'\r\n }).afterClosed().subscribe(checkoutFailureMessage => {\r\n checkout.errorMessage = checkoutFailureMessage;\r\n this.sendMessageToIframe(checkout);\r\n })\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n load(): Promise<void> {\r\n if (this.rapydScriptLoaded) {\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script');\r\n\r\n script.src = 'https://sandboxcheckouttoolkit.rapyd.net';\r\n script.async = true;\r\n\r\n script.onload = () => {\r\n this.rapydScriptLoaded = true;\r\n resolve();\r\n };\r\n\r\n script.onerror = () => {\r\n reject(new Error('Failed to load Rapyd Checkout Toolkit'));\r\n };\r\n\r\n document.head.appendChild(script);\r\n });\r\n }\r\n\r\n /**\r\n * Listen message or action from 3th party on the popup\r\n * Skip for RAPYD - It will process when the dialog close\r\n */\r\n onThirdPartyMessage(checkout: Checkout) {\r\n this.iframeMessageService.onThirdPartyMessages().subscribe(event => {\r\n if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {\r\n switch (checkout.paymentType) {\r\n case PaymentType.NA:\r\n break;\r\n case PaymentType.JETON:\r\n case PaymentType.ECOPAYZ:\r\n\r\n }\r\n console.log('Received from 3th party:', event.data);\r\n checkout.setCallback(event.data);\r\n this.timer.stopWatcher();\r\n this.sendMessageToIframe(checkout);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * send the message from the parent to the iframe\r\n */\r\n sendMessageToIframe(checkout: Checkout) {\r\n console.log(\"send message to iframe: \", checkout);\r\n if (this.iframe == undefined) return;\r\n let message: IframeMessage = {\r\n type: IframeMessageType.PAYMENT_CALLBACK,\r\n payload: checkout\r\n }\r\n this.iframeMessageService.sendMessageToIframe(this.iframe, message);\r\n this.cache.delete(checkout.requestId);\r\n }\r\n // removePaymentIframe() {\r\n // //TODO\r\n // this.iframe = undefined;\r\n // }\r\n}\r\n","/*\r\n * Public API Surface of epp-lib\r\n */\r\nexport * from './lib/translation';\r\n\r\nexport * from './lib/service';\r\nexport * from './lib/model';\r\nexport * from './lib/pipe';\r\nexport * from './lib/component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export * from './payment';
1
2
  export * from './rapyd/rapyd.component';
2
3
  export * from './vodds-loader/vodds-loader.component';
@@ -1,24 +1,29 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import { Checkout } from '../model/checkout';
3
3
  import { Timer } from '../model/timer';
4
- export declare class PaymentService {
4
+ import { MatDialog } from '@angular/material/dialog';
5
+ export declare class Payment {
6
+ dialog: MatDialog;
5
7
  cache: Map<number, Checkout>;
6
8
  iframe: ElementRef<HTMLIFrameElement> | undefined;
7
9
  timer: Timer;
8
10
  result: Checkout | undefined;
9
11
  private iframeMessageService;
10
- constructor();
12
+ private rapydScriptLoaded;
13
+ constructor(dialog: MatDialog);
11
14
  /**
12
15
  * Open 3th party page on the popup windown or new tab
13
16
  */
14
17
  openWindow(checkout: Checkout): void;
18
+ openVisaCheckout(checkout: Checkout): Promise<void>;
19
+ load(): Promise<void>;
15
20
  /**
16
21
  * Listen message or action from 3th party on the popup
22
+ * Skip for RAPYD - It will process when the dialog close
17
23
  */
18
- onThirdPartyPopupClose(checkout: Checkout): void;
24
+ onThirdPartyMessage(checkout: Checkout): void;
19
25
  /**
20
26
  * send the message from the parent to the iframe
21
27
  */
22
28
  sendMessageToIframe(checkout: Checkout): void;
23
- openVisaCheckout(checkout: Checkout): Promise<void>;
24
29
  }
@@ -1,11 +1,11 @@
1
1
  import { Checkout } from '../../model/checkout';
2
- import { EventEmitterService } from '../../service/event-emitter.service';
3
2
  import { MatDialogRef } from '@angular/material/dialog';
3
+ import { TranslocoService } from '@jsverse/transloco';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class RapydComponent {
6
6
  dialogRef: MatDialogRef<any>;
7
7
  data: any;
8
- private eventEmitter;
8
+ private translocoService;
9
9
  checkout: Checkout | undefined;
10
10
  isOpen: boolean;
11
11
  checkoutToolKit: any;
@@ -17,20 +17,21 @@ export declare class RapydComponent {
17
17
  isLoading: boolean;
18
18
  errorMessage: string;
19
19
  defaultExpirationSec: number;
20
- constructor(dialogRef: MatDialogRef<any>, data: any, eventEmitter: EventEmitterService);
20
+ checkoutFailureMessage: string;
21
+ constructor(dialogRef: MatDialogRef<any>, data: any, translocoService: TranslocoService);
21
22
  ngOnDestroy(): void;
22
23
  ngAfterViewInit(): void;
23
- createCheckoutToolKit(): void;
24
+ createCheckoutToolKitOnDesktop(buttonText: string): any;
25
+ createCheckoutToolKitOnMobile(buttonText: string): any;
24
26
  handleLoading: (event: any) => void;
25
27
  handleCheckoutPaymentSuccess: (event: any) => void;
26
28
  handleCheckoutPaymentFailure: (event: any) => void;
27
29
  closeDialog(isCloseCheckout?: boolean): void;
28
30
  startTimer(): void;
29
31
  stopTimer(): void;
30
- updateDisplayTimer(): void;
31
32
  pad(number: number): string;
32
33
  displayCheckout(): void;
33
- emitCompleteRapyd(errorMessage: string): void;
34
+ isMobile(): boolean;
34
35
  static ɵfac: i0.ɵɵFactoryDeclaration<RapydComponent, never>;
35
36
  static ɵcmp: i0.ɵɵComponentDeclaration<RapydComponent, "v-rapyd", never, { "checkout": { "alias": "checkout"; "required": false; }; }, {}, never, never, true, never>;
36
37
  }
@@ -3,5 +3,7 @@ export declare class Domain {
3
3
  allowedOrigins: string[];
4
4
  specialDomain: string[];
5
5
  jetonDomain: string;
6
+ ecopayzDomain: string;
7
+ rapydDomain: string;
6
8
  constructor();
7
9
  }
@@ -1,5 +1,3 @@
1
- export * from './base-form';
2
- export * from './callback-message';
3
1
  export * from './checkout';
4
2
  export * from './count-down-time';
5
3
  export * from './domain';
@@ -0,0 +1 @@
1
+ export * from './transloco.pipe';
@@ -0,0 +1,9 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TranslocoPipe implements PipeTransform {
5
+ private transloco;
6
+ transform(key: string): Observable<string>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TranslocoPipe, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<TranslocoPipe, "vTransloco", true>;
9
+ }
@@ -0,0 +1,3 @@
1
+ export declare class CommonUtil {
2
+ static isMobileTemplate(): boolean;
3
+ }
@@ -1,20 +1,22 @@
1
1
  import { ElementRef, NgZone } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { IframeMessage } from '../model/iframe-message';
4
- import { VoddsHttpService } from './vodds-http.service';
5
4
  import { PaymentType } from '../model/payment-type';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class IframeMessageService {
8
7
  private readonly ngZone;
9
- private http;
10
8
  private readonly messages$;
11
9
  private readonly thirdPartyMessages$;
12
10
  private domain;
11
+ private http;
13
12
  private readonly listener;
14
- constructor(ngZone: NgZone, http: VoddsHttpService);
15
- messages(): Observable<IframeMessage>;
16
- thirdPartyMessages(): Observable<MessageEvent>;
13
+ constructor(ngZone: NgZone);
14
+ onMessages(): Observable<IframeMessage>;
15
+ onThirdPartyMessages(): Observable<MessageEvent>;
17
16
  ngOnDestroy(): void;
17
+ /**
18
+ * Skip for RAPYD - It will process when the dialog close
19
+ */
18
20
  isValidDomain(paymentType: PaymentType, origin: string): boolean;
19
21
  sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage): void;
20
22
  static ɵfac: i0.ɵɵFactoryDeclaration<IframeMessageService, never>;
@@ -1,4 +1,4 @@
1
1
  export * from './event-emitter.service';
2
2
  export * from './iframe-message.service';
3
3
  export * from './vodds-http.service';
4
- export * from './payment.service';
4
+ export * from './common-util';
@@ -1,10 +1,8 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { Observable } from 'rxjs';
3
2
  import { IParam } from '../model/iparam';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class VoddsHttpService {
6
- httpClient: HttpClient;
7
- constructor(httpClient: HttpClient);
5
+ private httpClient;
8
6
  postJson(url: string, request: IParam): Observable<any>;
9
7
  get<T>(url: string, param?: IParam): Observable<T>;
10
8
  get2<T>(url: string, option?: any): Observable<T>;
@@ -0,0 +1,31 @@
1
+ import { TranslocoLoader } from '@jsverse/transloco';
2
+ import * as i0 from "@angular/core";
3
+ export declare class EppLibLoader implements TranslocoLoader {
4
+ getTranslation(lang: string): Promise<{
5
+ default: {
6
+ payment_form_title: string;
7
+ visaCardErrorMessage: string;
8
+ visaCardErrorMessage2: string;
9
+ visaCardTimeout: string;
10
+ };
11
+ payment_form_title: string;
12
+ visaCardErrorMessage: string;
13
+ visaCardErrorMessage2: string;
14
+ visaCardTimeout: string;
15
+ }> | Promise<{
16
+ default: {
17
+ payment_form_title: string;
18
+ visaCardErrorMessage: string;
19
+ visaCardErrorMessage2: string;
20
+ visaCardTimeout: string;
21
+ mobile_payment_form_title: string;
22
+ };
23
+ payment_form_title: string;
24
+ visaCardErrorMessage: string;
25
+ visaCardErrorMessage2: string;
26
+ visaCardTimeout: string;
27
+ mobile_payment_form_title: string;
28
+ }>;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<EppLibLoader, never>;
30
+ static ɵprov: i0.ɵɵInjectableDeclaration<EppLibLoader>;
31
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EppLibTranslationService {
3
+ private transloco;
4
+ setLanguage(lang: string): void;
5
+ getLanguage(): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<EppLibTranslationService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<EppLibTranslationService>;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ export interface EppLibConfig {
3
+ defaultLang: string;
4
+ availableLangs: string[];
5
+ }
6
+ export declare function provideEppLibTranslations(config: EppLibConfig): EnvironmentProviders;
@@ -0,0 +1,3 @@
1
+ export * from './epp-lib-loader';
2
+ export * from './epp-lib-translation.service';
3
+ export * from './epp-lib.providers';
package/package.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "name": "epp-lib",
3
- "version": "0.0.5",
3
+ "version": "0.1.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",
7
- "@angular/material": "^17.3.0"
7
+ "@jsverse/transloco": "^8.4.0",
8
+ "@angular/material": "^17.3.0",
9
+ "@angular/cdk": "^17.3.0"
8
10
  },
9
11
  "dependencies": {
10
12
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- export * from './lib//component';
1
+ export * from './lib/translation';
2
2
  export * from './lib/service';
3
3
  export * from './lib/model';
4
+ export * from './lib/pipe';
5
+ export * from './lib/component';
@@ -0,0 +1,6 @@
1
+ {
2
+ "payment_form_title": "支付信息",
3
+ "visaCardErrorMessage": "我们无法识别您输入的卡号。请尝试输入另一张卡号。",
4
+ "visaCardErrorMessage2": "如果问题仍然存在,我们建议您检查您的银行卡信息或联系客服寻求帮助。",
5
+ "visaCardTimeout": "结账将在倒计时结束后失效"
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "payment_form_title": "PAYMENT INFORMATION",
3
+ "visaCardErrorMessage": "It looks like the card number entered wasn’t recognized, so your request could not be processed.",
4
+ "visaCardErrorMessage2": "Please try again using a valid card. If the issue persists, we recommend checking your card details or contacting support for assistance.",
5
+ "visaCardTimeout": "Your checkout will expire in",
6
+ "mobile_payment_form_title": "DEPOSIT"
7
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "payment_form_title": "INFORMACIÓN DE PAGO",
3
+ "visaCardErrorMessage": "Parece que no se ha reconocido el número de tarjeta introducido, por lo que no se ha podido procesar tu solicitud.",
4
+ "visaCardErrorMessage2": "Inténtelo de nuevo con una tarjeta válida. Si el problema persiste, le recomendamos que compruebes los datos de su tarjeta o que se ponga en contacto con el servicio de atención al cliente para obtener ayuda.",
5
+ "visaCardTimeout": "Tu proceso de pago caducará en"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "payment_form_title": "ПЛАТЕЖНАЯ ИНФОРМАЦИЯ",
3
+ "visaCardErrorMessage": "Похоже, номер карты был введен некорректно, поэтому нам не удалось обработать Ваш запрос. ",
4
+ "visaCardErrorMessage2": "Попробуйте использовать другую карту. Если проблема повторится, пожалуйста, проверьте введенную информацию или обратитесь в службу поддержки.",
5
+ "visaCardTimeout": "Время оплаты истечет через"
6
+ }
@@ -1,49 +0,0 @@
1
- import { HttpParams, HttpHeaders } from '@angular/common/http';
2
- import { IParam } from './iparam';
3
- export class BaseForm extends IParam {
4
- constructor() {
5
- super();
6
- this.isMobile = 'false';
7
- }
8
- /**
9
- * Use this function for building POST params with form url encoded content type.
10
- * Remeber to call params.toString() when passing to http request
11
- */
12
- getUrlSearchParam() {
13
- const params = new URLSearchParams();
14
- params.set('isMobile', this.isMobile);
15
- return params;
16
- }
17
- /**
18
- * Use this function for building GET params
19
- */
20
- getHttpParams() {
21
- let params = new HttpParams();
22
- params = params.append('isMobile', this.isMobile);
23
- return params;
24
- }
25
- /**
26
- * Add isMobile = 'true' to paramters
27
- * @param params : object
28
- */
29
- addIsMobile(params) {
30
- params['isMobile'] = this.isMobile;
31
- }
32
- /**
33
- * For POST request with form-urlencoded
34
- */
35
- getHeaderWithContentTypeForm() {
36
- const headers = new HttpHeaders()
37
- .set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
38
- return headers;
39
- }
40
- /**
41
- * For POST request with json body
42
- */
43
- getHeaderWithContentTypeJson() {
44
- const headers = new HttpHeaders()
45
- .set('Content-Type', 'application/json; charset=utf-8');
46
- return headers;
47
- }
48
- }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL21vZGVsL2Jhc2UtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLFFBQVMsU0FBUSxNQUFNO0lBR25DO1FBQ08sS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNaLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsTUFBVztRQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCw0QkFBNEI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUU7YUFDL0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxrREFBa0QsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILDRCQUE0QjtRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRTthQUMvQixHQUFHLENBQUMsY0FBYyxFQUFFLGlDQUFpQyxDQUFDLENBQUM7UUFDekQsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IElQYXJhbSB9IGZyb20gJy4vaXBhcmFtJztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlRm9ybSBleHRlbmRzIElQYXJhbSB7XHJcblx0aXNNb2JpbGU6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHRcdHRoaXMuaXNNb2JpbGUgPSAnZmFsc2UnO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVXNlIHRoaXMgZnVuY3Rpb24gZm9yIGJ1aWxkaW5nIFBPU1QgcGFyYW1zIHdpdGggZm9ybSB1cmwgZW5jb2RlZCBjb250ZW50IHR5cGUuXHJcblx0ICogUmVtZWJlciB0byBjYWxsIHBhcmFtcy50b1N0cmluZygpIHdoZW4gcGFzc2luZyB0byBodHRwIHJlcXVlc3RcclxuXHQgKi9cclxuXHRnZXRVcmxTZWFyY2hQYXJhbSgpIHtcclxuXHRcdGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuXHRcdHBhcmFtcy5zZXQoJ2lzTW9iaWxlJywgdGhpcy5pc01vYmlsZSk7XHJcblx0XHRyZXR1cm4gcGFyYW1zO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVXNlIHRoaXMgZnVuY3Rpb24gZm9yIGJ1aWxkaW5nIEdFVCBwYXJhbXNcclxuXHQgKi9cclxuXHRnZXRIdHRwUGFyYW1zKCkge1xyXG5cdFx0bGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblx0XHRwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdpc01vYmlsZScsIHRoaXMuaXNNb2JpbGUpO1xyXG5cdFx0cmV0dXJuIHBhcmFtcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBpc01vYmlsZSA9ICd0cnVlJyB0byBwYXJhbXRlcnNcclxuXHQgKiBAcGFyYW0gcGFyYW1zIDogb2JqZWN0XHJcblx0ICovXHJcblx0YWRkSXNNb2JpbGUocGFyYW1zOiBhbnkpIHtcclxuXHRcdHBhcmFtc1snaXNNb2JpbGUnXSA9IHRoaXMuaXNNb2JpbGU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBGb3IgUE9TVCByZXF1ZXN0IHdpdGggZm9ybS11cmxlbmNvZGVkXHJcblx0ICovXHJcblx0Z2V0SGVhZGVyV2l0aENvbnRlbnRUeXBlRm9ybSgpIHtcclxuXHRcdGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxyXG5cdFx0XHQuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04Jyk7XHJcblx0XHRyZXR1cm4gaGVhZGVycztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEZvciBQT1NUIHJlcXVlc3Qgd2l0aCBqc29uIGJvZHlcclxuXHQgKi9cclxuXHRnZXRIZWFkZXJXaXRoQ29udGVudFR5cGVKc29uKCkge1xyXG5cdFx0Y29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXHJcblx0XHRcdC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jyk7XHJcblx0XHRyZXR1cm4gaGVhZGVycztcclxuXHR9XHJcbn0iXX0=