vk-payments 0.2.21 → 0.2.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"vk-payments.js","sources":["ng://vk-payments/lib/mercadopago/services/mercadopago.api.service.ts","ng://vk-payments/lib/mercadopago/components/mercadopago.component.ts","ng://vk-payments/lib/mercadopago/components/promotion-bank.component.ts","ng://vk-payments/lib/mercadopago/mercadopago.module.ts","ng://vk-payments/lib/paypal/components/paypal-new.component.ts","ng://vk-payments/lib/paypal/paypal.module.ts","ng://vk-payments/lib/sps-decidir/services/sps-decidir.api.service.ts","ng://vk-payments/lib/sps-decidir/components/sps-decidir.component.ts","ng://vk-payments/lib/sps-decidir/sps-decidir.module.ts","ng://vk-payments/lib/go-cuotas/services/go-cuotas.api.service.ts","ng://vk-payments/lib/go-cuotas/components/modal/modal.component.ts","ng://vk-payments/lib/go-cuotas/components/go-cuotas.component.ts","ng://vk-payments/lib/go-cuotas/go-cuotas.module.ts","ng://vk-payments/lib/modo/services/modo-api.service.ts","ng://vk-payments/lib/modo/components/modo/modo.component.ts","ng://vk-payments/lib/modo/modo.module.ts","ng://vk-payments/lib/vk-payments.module.ts"],"sourcesContent":["import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CardPayment } from '../models/mercadopago.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MercadopagoApiService {\r\n private authHeaders: HttpHeaders;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n makePayment(cardPayment: CardPayment, access_token: string, url: string): Observable<any> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.post(this.normalizeUrl(url) + '/Payment', cardPayment, { headers: this.authHeaders });\r\n }\r\n\r\n getMercadoPagoPromotions(url: string): Observable<any> {\r\n return this.httpClient.get(url);\r\n }\r\n\r\n normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n return url;\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { CardPayment, CreateTokenResponse, PaymentResult, ResponseInstallment } from '../models/mercadopago.model';\nimport { MercadopagoApiService } from '../services/mercadopago.api.service';\nimport sha256 from 'sha256';\n\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: 'mp-form-pay',\n templateUrl: './mercadopago.component.html',\n styleUrls: ['./mercadopago.component.scss']\n})\nexport class MercadoPagoComponent implements OnInit, OnChanges {\n\n totalAmount: number;\n totalFinancedAmount: number;\n currentBin: string;\n recommendedLabel: string;\n currentTEA: string;\n currentCFT: string;\n ticket: string;\n defaultName: string;\n defaultDocType: string;\n issuerId: string;\n currentPaymentMethod: any;\n currentIssuers: any[];\n currentInstallments: any[];\n cardPayment: CardPayment;\n\n // input bind\n yearText: string;\n monthText: string;\n dniText: string;\n cvcText: string;\n cardText: string;\n errorMessage: string;\n\n paymentState = 'unsubmitted';\n tokenId = '';\n disabled = false;\n addScript = false;\n requiredIssuer = false;\n submitted = false;\n\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'MP' };\n\n @Input() paymentAmount: number;\n @Input() payerName: string;\n @Input() payerEmail: string;\n @Input() accessToken: string;\n @Input() vkUrlApi: string;\n @Input() description: string;\n @Input() publishableKey: string;\n @Input() successUrl: string;\n @Input() failureUrl: string;\n @Input() imgCreditCards: string;\n @Input() imgMercadoPago: string;\n @Input() iconExpandMore: string;\n @Input() debugLog: boolean;\n @Input() storeId: string;\n @Input() idVen: number;\n @Input() data: string;\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n @ViewChild('f', { static: false }) checkOutForm: NgForm;\n\n constructor(private router: Router, private mercadopagoApiService: MercadopagoApiService) { }\n\n ngOnInit() {\n this.initMercadoPago();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.paymentAmount.isFirstChange()) {\n this.disabled = false;\n this.checkOutForm.reset();\n }\n }\n\n private initMercadoPago() {\n this.addMercadopagoScript()\n .then(() => {\n Mercadopago.setPublishableKey(this.publishableKey);\n Mercadopago.getIdentificationTypes();\n\n this.totalAmount = this.paymentAmount;\n this.defaultName = this.payerName;\n this.defaultDocType = 'DNI';\n });\n }\n\n private addMercadopagoScript() {\n this.addScript = true;\n return new Promise((resolve, reject) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js?2345';\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n\n private createToken(sendForm: any) {\n this.paymentState = 'processing';\n Mercadopago.createToken(sendForm, (status, response: any) => {\n \n if (status !== 200 && status !== 201) {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.errorMessage = 'Revisa los datos del formulario.';\n // const causes: Cause[] = (response as ErrorTokenResponse).cause;\n // if (causes !== null && causes.length > 0) {\n // causes.forEach((item) => {\n // this.errorMessage += this.getErrorMessage(item.code) + '\\n';\n // });\n // }\n } else {\n this.tokenId = (response as CreateTokenResponse).id;\n this.makePayment();\n }\n });\n }\n\n private makePayment() {\n const hashedCard = this.hashText(this.cardText,100000);\n this.cardPayment = {\n tokenId: this.tokenId,\n transactionAmount: this.totalAmount,\n description: this.description,\n installments: Number(this.checkOutForm.value.installments),\n issuerId: this.checkOutForm.value.issuer,\n paymentMethodId: this.currentPaymentMethod[0].id,\n codCP: this.idVen,\n docNumber: this.checkOutForm.value.docNumber,\n additionalData: this.data,\n storeId: this.storeId,\n hash: hashedCard\n };\n this.mercadoPagoPayment();\n }\n\n private hashText(text: string, iterations:number): string{\n let hashedtext = text;\n for (let i = 0; i < iterations; i++) {\n hashedtext = sha256(hashedtext);\n }\n return hashedtext\n }\n\n private paymentResponseHandler(response: any) {\n if (response.success) {\n this.paymentState = response.data.statusDetails;\n this.ticket = response.data.transactionId;\n this.paymentResult = { success: true, paymentId: this.ticket, integrator: 'MP' };\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n\n this.logger('paymentResponseHandler:', response);\n if (this.successUrl && this.successUrl.length > 0) {\n this.router.navigate([`${this.successUrl}`]);\n }\n } else {\n this.paymentState = 'apiError';\n this.statusPay.emit(this.paymentResult);\n if (this.successUrl && this.failureUrl.length > 0) {\n this.router.navigate([`${this.failureUrl}`]).then();\n }\n }\n }\n\n checkPaymentMethod() {\n if (this.checkOutForm.value.cardNumber != null) {\n this.currentInstallments = null;\n this.currentIssuers = null;\n if (this.checkOutForm.value.cardNumber.toString().length >= 6) {\n this.currentBin = this.checkOutForm.value.cardNumber.toString().substring(0, 6);\n const self = this;\n Mercadopago.getPaymentMethod(\n {\n 'bin': this.checkOutForm.value.cardNumber.toString()\n }, function (respCode, respBody) {\n if (respCode === 200) {\n self.setCurrentMethod(respBody);\n }\n });\n }\n if (this.checkOutForm.value.cardNumber.toString().length < 6) {\n this.requiredIssuer = false;\n }\n }\n }\n\n setCurrentMethod(res: any) {\n if (res) {\n this.logger('setCurrentMethod:', res);\n\n const additionalInfo: String[] = res[0].additional_info_needed;\n const issuerIdKey = 'issuer_id';\n\n if (additionalInfo.find(x => x == issuerIdKey) == undefined) {\n this.requiredIssuer = false;\n }\n else {\n this.requiredIssuer = true;\n }\n \n this.logger('requiredIssuer:', this.requiredIssuer);\n\n this.currentPaymentMethod = res;\n const self = this;\n Mercadopago.getIssuers(res[0].id, function (respCode, respBody) {\n if (respCode === 200) {\n self.setIssuers(respBody);\n }\n });\n\n self.checkInstallments(this.requiredIssuer);\n }\n }\n\n checkInstallments(requiredIssuer: boolean) {\n if (this.currentBin == undefined || this.currentBin.length < 6) {\n return;\n }\n const self = this;\n self.currentInstallments = null;\n\n let requestObject:any\n \n if (requiredIssuer) {\n requestObject = {\n 'bin': this.currentBin,\n 'amount': this.totalAmount,\n 'issuer_id': this.issuerId\n } \n }\n else {\n requestObject = {\n 'bin': this.currentBin,\n 'amount': this.totalAmount\n } \n }\n\n Mercadopago.getInstallments(requestObject, function (respCode, respBody) {\n if (respCode === 200) {\n self.setInstallments(respBody);\n } else {\n self.currentInstallments = null;\n }\n });\n }\n\n setInstallments(res: ResponseInstallment[]) {\n //this.logger('setInstallments:', res);\n\n if (res.length > 0) {\n if (this.issuerId != undefined && res.length > 1 && this.currentPaymentMethod.length > 0) {\n const result = res.filter(card => card.issuer.id === this.issuerId && card.payment_method_id === this.currentPaymentMethod[0].id);\n this.currentInstallments = result[0].payer_costs;\n this.issuerId = result[0].issuer.id;\n }\n else {\n this.currentInstallments = res[0].payer_costs;\n this.issuerId = res[0].issuer.id;\n }\n }\n }\n\n setIssuers(res: any) {\n //this.logger('setIssuers res', res);\n this.currentIssuers = res;\n }\n\n onDuesSelection(res: any) {\n for (const ins of this.currentInstallments) {\n if (ins.installments === Number(res.value.installments)) {\n this.totalFinancedAmount = ins.total_amount;\n for (const label of ins.labels) {\n if (label.includes('CFT')) {\n this.recommendedLabel = label.replace(/_/g, ': ').split('|', 2);\n this.currentTEA = this.recommendedLabel[1];\n this.currentCFT = this.recommendedLabel[0];\n }\n }\n }\n }\n }\n\n onSubmit(form: NgForm) {\n this.submitted = true;\n this.paymentResult = { success: false, paymentId: '', integrator: 'MP' };\n if (this.checkOutForm.valid) {\n const sendForm = {\n cardNumber: this.cardText,\n securityCode: this.cvcText,\n cardExpirationMonth: this.monthText,\n cardExpirationYear: this.yearText,\n cardholderName: this.defaultName,\n docType: this.defaultDocType,\n docNumber: this.dniText\n };\n\n if (this.debugLog) {\n console.log('sendForm', sendForm);\n }\n\n if (this.tokenId !== '') {\n Mercadopago.clearSession();\n }\n\n this.createToken(sendForm);\n }\n }\n\n // Input controls\n onYearChange() {\n if (isNaN(+this.yearText)) {\n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText == '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n onDniChange() {\n if (isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.defaultName)) {\n setTimeout(() => {\n this.defaultName = '';\n });\n }\n }\n\n onCardChange() {\n if (isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n }\n\n onPaste(): boolean {\n return false;\n }\n\n logger(message: string, data: any): void {\n if (this.debugLog) {\n console.log(message, JSON.stringify(data));\n }\n }\n\n mercadoPagoPayment(){\n this.mercadopagoApiService.makePayment(this.cardPayment, this.accessToken, this.vkUrlApi)\n .subscribe(res => {\n this.paymentResponseHandler(res);\n }, error => {\n this.statusPay.emit(this.paymentResult);\n this.paymentState = 'apiError';\n console.log(error);\n });\n }\n\n resetForm() {\n this.disabled = false;\n this.totalAmount\n this.totalFinancedAmount = undefined;\n this.currentBin = undefined;\n this.recommendedLabel = undefined;\n this.currentTEA = undefined;\n this.currentCFT = undefined;\n this.ticket = undefined;\n this.defaultName = undefined;\n this.defaultDocType = undefined;\n this.issuerId = undefined;\n this.currentPaymentMethod = undefined;\n this.currentIssuers = null;\n this.currentInstallments = null;\n this.cardPayment = undefined;\n\n this.paymentResult = { success: false, paymentId: '', integrator: 'MP' };\n \n // Form bind\n this.monthText = undefined;\n this.yearText = undefined;\n this.cvcText = undefined;\n this.dniText = undefined;\n this.cardText = undefined;\n this.requiredIssuer = false;\n this.submitted = false;\n this.addScript = false;\n this.paymentState = 'unsubmitted';\n this.payerName = undefined;\n this.tokenId = '';\n this.errorMessage = undefined;\n\n this.checkOutForm.reset()\n\n this.initMercadoPago();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { MercadopagoApiService } from '../services/mercadopago.api.service';\r\n\r\n\r\n@Component({\r\n selector: 'mp-promotion',\r\n templateUrl: './promotion-bank.component.html',\r\n styleUrls: ['./promotion-bank.component.scss']\r\n})\r\nexport class PromotionBankComponent implements OnInit {\r\n @Input() url: string;\r\n @Input() contentSource: string;\r\n\r\n cardPromotions: any;\r\n\r\n constructor(private mercadoPagoService: MercadopagoApiService) { }\r\n\r\n ngOnInit() {\r\n this.mercadoPagoService\r\n .getMercadoPagoPromotions(this.url)\r\n .subscribe(res => this.cardPromotions = res);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MercadoPagoComponent } from './components/mercadopago.component';\nimport { PromotionBankComponent } from './components/promotion-bank.component';\n\nconst COMPONENTS = [\n MercadoPagoComponent,\n PromotionBankComponent\n];\n\n@NgModule({\n declarations: COMPONENTS,\n exports: COMPONENTS,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule\n ]\n})\nexport class MercadopagoModule { }\n","import { AfterViewChecked, Component, Input, OnInit } from '@angular/core';\n\nimport { PaypalResponse } from '../models/response-paypal.model';\n\ndeclare let paypal: any;\n\n@Component({\n selector: 'paypal-new-form-pay',\n templateUrl: './paypal-new.component.html',\n styleUrls: ['./paypal-new.component.scss']\n})\nexport class PayPalNewComponent implements OnInit, AfterViewChecked {\n @Input() accessToken: string;\n @Input() clientId: string;\n @Input() vkUrlApi: string;\n @Input() storeId: string;\n @Input() userId: string;\n @Input() transactionId: string;\n @Input() amount: string;\n @Input() currency: string;\n @Input() cancelUrl: string;\n @Input() successUrl: string;\n @Input() data: string;\n @Input() urlSignout: string;\n\n private addScript = false;\n\n errorsMessage: any;\n\n showError = false;\n loading = true;\n status = '';\n linkToPay = '';\n linkExecutePay = '';\n\n constructor() {\n // if (this.urlSignout === '') {\n // const wnd = window.open(this.urlSignout, 'myWindow', 'width=100,height=100');\n // setTimeout(function () { wnd.close(); }, 1000);\n // }\n }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewChecked(): void {\n if (!this.addScript) {\n this.addPaypalScript().then(() => {\n\n const paypalConfig = {\n style: {\n color: 'blue',\n shape: 'pill',\n label: 'pay',\n height: 40\n },\n commit: true,\n createOrder: function (data, actions) {\n return actions.order.create({\n purchase_units: [{\n amount: { value: (<HTMLInputElement>document.getElementById('amount')).value },\n reference_id: '\\'' + (<HTMLInputElement>document.getElementById('transactionId')).value + '\\'',\n custom_id: '\\'' + (<HTMLInputElement>document.getElementById('storeId')).value + '\\''\n }],\n application_context: {\n shipping_preference: 'NO_SHIPPING'\n }\n });\n },\n\n // Finalize the transaction\n onApprove: function (data, actions) {\n return actions.order.capture().then(function (details: PaypalResponse) {\n details.data = (<HTMLInputElement>document.getElementById('data')).value;\n details.userid = (<HTMLInputElement>document.getElementById('userId')).value;\n\n fetch((<HTMLInputElement>document.getElementById('vkUrlApi')).value, {\n method: 'post',\n headers: {\n 'content-type': 'application/json',\n 'Authorization': 'Bearer ' + (<HTMLInputElement>document.getElementById('accessToken')).value\n },\n body: JSON.stringify({ details })\n }).then((response) => {\n console.log('response-> api', response);\n }).then(() => {\n window.location.href = (<HTMLInputElement>document.getElementById('successUrl')).value;\n });\n });\n },\n onError: function (error) {\n window.location.reload();\n },\n onCancel: (data, actions) => {\n window.location.href = (<HTMLInputElement>document.getElementById('cancelUrl')).value;\n }\n };\n\n paypal.Buttons(paypalConfig).render('#paypal-button-container');\n this.loading = false;\n });\n }\n }\n\n private addPaypalScript() {\n this.addScript = true;\n return new Promise((resolve, reject) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = `https://www.paypal.com/sdk/js?client-id=${this.clientId}&currency=${this.currency}`;\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { PayPalNewComponent } from './components/paypal-new.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n RouterModule\n ],\n declarations: [\n PayPalNewComponent\n ],\n exports: [\n PayPalNewComponent\n ]\n})\nexport class PaypalModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CreditCard, CreditCardPlans, Payment, ResponseApi } from '../models/payment.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpsDecidirApiService {\r\n private authHeaders: HttpHeaders;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public makePayment(payment: Payment, access_token: string, url: string): Observable<any> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.post(this.normalizeUrl(url) + '/Payment', payment, { headers: this.authHeaders });\r\n }\r\n\r\n public getDecidirConfigByBin(bin: string, url: string,): Observable<any> {\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) +`/GetDecidirConfigByBin?bin=${bin}`);\r\n }\r\n\r\n\r\n public normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n return url;\r\n }\r\n\r\n public getCreditCards(access_token: string, url: string, domainId: number): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) + '/GetCreditCardsEnable?domainId='+ domainId, { headers: this.authHeaders });\r\n }\r\n\r\n public getPlansByCreditCardId(access_token: string, url: string, amount: string, creditCardId: number, domainId: number, bin: string): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n const body = { amount: amount, creditCardId: creditCardId, domainId: domainId, bin: bin};\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/CalculateAmountInInstallments', body, { headers: this.authHeaders });\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport sha256 from 'sha256';\n\nimport {\n CreditCard,\n CreditCardPlans,\n ErrorToken,\n Payment,\n PaymentResponseInfo,\n PaymentResult,\n ResponseApi,\n SpsResponsePayment,\n} from '../models/payment.model';\nimport { SpsDecidirApiService } from '../services/sps-decidir.api.service';\n\ndeclare var Decidir: any;\n\n@Component({\n selector: 'sps-form-pay',\n templateUrl: './sps-decidir.component.html',\n styleUrls: ['./sps-decidir.component.scss']\n})\nexport class SpsDecidirComponent implements OnInit, OnChanges {\n\n @ViewChild('f', { static: false }) checkOutForm: NgForm;\n @Input() accessToken: string;\n @Input() spsUrlApi: string;\n @Input() vkUrlApi: string;\n @Input() paymentAmount: string;\n @Input() logoSps: string;\n @Input() currency: string;\n @Input() defaultPublishableKey: string;\n @Input() superviellePublishableKey: string;\n @Input() successUrl: string;\n @Input() failureUrl: string;\n @Input() useCybersource: boolean;\n @Input() debugLog: boolean;\n @Input() storeId: string;\n @Input() domainId: number;\n @Input() idVen: number;\n @Input() data: string;\n @Input() labelButton: string;\n @Input() language = 'es';\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n disabled = false;\n disableSelect = false;\n totalAmount: string;\n totalFinancedAmount: string;\n currentTEA: string;\n currentCFT: string;\n\n creditCards: CreditCard[];\n selectCreditCardPlan: CreditCardPlans = null;\n creditCardPlans: CreditCardPlans[];\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n\n // Form bind\n monthText: string;\n yearText: string;\n cvcText: string;\n dniText: string;\n payerNameText: string;\n cardText: string;\n submitPressed = false;\n invalidDate = false;\n\n private decidir: any;\n addScript = true;\n\n paymentState = 'unsubmitted';\n payerName: string;\n issuer?: number = null;\n payment: Payment;\n paymentSuccessInfo: PaymentResponseInfo;\n errorMessage: string;\n\n constructor(private router: Router, public spsDecidirApiService: SpsDecidirApiService) { }\n\n ngOnInit() {\n this.initDecidir();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.paymentAmount.isFirstChange()) {\n this.checkOutForm.reset();\n this.disabled = false;\n this.disableSelect = false;\n }\n }\n\n private initDecidir() {\n this.addDecidirScript()\n .then(() => {\n this.getCreditCards();\n this.initializeSpsDecidir();\n });\n }\n\n addDecidirScript() {\n this.addScript = true;\n return new Promise((resolve) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = 'https://live.decidir.com/static/v2.4/decidir.js';\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n\n private getCreditCards() {\n this.spsDecidirApiService.getCreditCards(this.accessToken, this.vkUrlApi, this.domainId)\n .subscribe((res: ResponseApi) => {\n this.creditCards = res.data as CreditCard[];\n this.logger('getCreditCards', this.creditCards);\n }, _ => this.paymentState = 'apiError');\n }\n\n private getPlansByCreditCardId(amount: string, creditCardId: number, domainId: number, bin: string) {\n this.spsDecidirApiService.getPlansByCreditCardId(this.accessToken, this.vkUrlApi, amount, creditCardId, domainId, bin)\n .subscribe((res: ResponseApi) => {\n this.creditCardPlans = res.data as CreditCardPlans[];\n this.logger('getPlansByCreditCardId', this.creditCardPlans);\n }, _ => this.paymentState = 'apiError');\n }\n\n private initializeSpsDecidir() {\n this.decidir = new Decidir(this.spsDecidirApiService.normalizeUrl(this.spsUrlApi), !this.useCybersource);\n this.decidir.setTimeout(15000);\n this.decidir.setPublishableKey(this.defaultPublishableKey);\n }\n\n private logger(message: string, data: any): void {\n if (!this.debugLog) { return; }\n console.log(message, data);\n }\n\n public selectedCreditCard() {\n if (!this.issuer) { return; }\n\n this.selectCreditCardPlan = null;\n if (this.currency === 'ARS' && this.cardText.substring(0,8) !== '00000000') {\n this.getPlansByCreditCardId(this.paymentAmount, this.issuer, this.domainId, this.cardText.substring(0,8));\n return;\n } else {\n this.cardText ='';\n }\n\n if (this.currency === 'USD') {\n this.totalAmount = this.totalFinancedAmount = this.paymentAmount;\n }\n }\n\n selectedCreditCardPlan() {\n if (this.selectCreditCardPlan === null) { return; }\n\n this.totalFinancedAmount = this.selectCreditCardPlan.totalAmount;\n this.totalAmount = this.paymentAmount;\n this.currentTEA = this.selectCreditCardPlan.tna;\n this.currentCFT = this.selectCreditCardPlan.cft;\n }\n\n onSubmit(event) {\n event.preventDefault();\n this.submitPressed = true;\n this.paymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n\n if (!this.checkOutForm.valid) { return; }\n\n this.paymentState = 'processing';\n\n this.spsDecidirApiService.getDecidirConfigByBin(this.cardText.substring(0, 8), this.vkUrlApi)\n .subscribe(config => {\n if(config =='SPS-Decidir-Supervielle'){\n this.decidir.setPublishableKey(this.superviellePublishableKey);\n } else {\n this.decidir.setPublishableKey(this.defaultPublishableKey);\n }\n\n const form = document.querySelector('#formulario');\n this.decidir.createToken(form, (status: number, response: SpsResponsePayment) => {\n if (status !== 200 && status !== 201) {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.processErrorToken(response);\n } else {\n this.makePayment(form, response);\n }\n });\n\n });\n }\n\n makePayment(form: any, paymentResponse: SpsResponsePayment): void {\n this.logger('makePayment:', JSON.stringify(paymentResponse));\n const hashedCard = this.hashText(this.cardText,100000);\n this.payment = {\n token: paymentResponse.id,\n amount: this.totalAmount,\n totalFinancedAmount: this.totalFinancedAmount,\n bin: paymentResponse.bin,\n currency: 'ARS',\n documentNumber: this.currency === 'USD' ? '0' : paymentResponse.cardholder.identification.number,\n idVen: this.idVen,\n paymentType: 'single',\n installments: this.currency === 'USD' ? 1 : this.selectCreditCardPlan.installments,\n creditCardPlanId: this.currency === 'USD' ? 0 : this.selectCreditCardPlan.id,\n paymentMethodId: this.issuer,\n cardholder: this.payerNameText,\n storeId: this.storeId,\n data: this.data,\n subPayments: [],\n creditCardHash: hashedCard,\n lastFourDigits: this.cardText.slice(-4)\n };\n \n\n this.logger('payment:', JSON.stringify(this.payment));\n this.spsDecidirApiService.makePayment(this.payment, this.accessToken, this.vkUrlApi)\n .subscribe((res: ResponseApi) => {\n this.paymentResponseHandler(res);\n }, error => {\n this.statusPay.emit(this.paymentResult);\n this.paymentState = 'apiError';\n console.error(error);\n });\n }\n\n private hashText(text: string, iterations:number): string{\n let hashedtext = text;\n for (let i = 0; i < iterations; i++) {\n hashedtext = sha256(hashedtext);\n }\n return hashedtext\n }\n\n paymentResponseHandler(response: ResponseApi) {\n this.logger('paymentResponseHandler:', JSON.stringify(response));\n\n if (response.success) {\n this.paymentState = 'success';\n this.paymentSuccessInfo = response.data as PaymentResponseInfo;\n this.paymentResult = { success: true, paymentId: this.paymentSuccessInfo.payment_id, integrator: 'DECIDIR' };\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n this.disableSelect = true;\n\n if (this.successUrl && this.successUrl.length > 0) {\n this.router.navigate([`${this.successUrl}`]).then();\n return;\n }\n } else {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.processErrorMessage(response.data);\n\n if (this.failureUrl && this.failureUrl.length > 0) {\n this.router.navigate([`${this.failureUrl}`]).then()\n return;\n }\n }\n }\n\n processErrorToken(response: any): void {\n this.disabled = true;\n this.disableSelect = true;\n\n const error: ErrorToken = response as ErrorToken;\n\n // obtenemos mensajes de error\n error.error.forEach((x) => {\n if (x.error.type === 'invalid_expiry_date') {\n this.errorMessage = 'Revisá la fecha de vencimiento.';\n } else {\n this.errorMessage = JSON.stringify(error);\n }\n });\n }\n\n // diferentes tipos de error nos devuelve decidir\n processErrorMessage(responseError: PaymentResponseInfo): void {\n this.disabled = true;\n this.disableSelect = true;\n\n if (responseError.error) {\n this.errorMessage = responseError.error.reason.description;\n\n if (responseError.error.reason.additional_description) {\n this.errorMessage = this.errorMessage + ' - ' + responseError.error.reason.additional_description;\n }\n\n if (this.errorMessage == '' || this.errorMessage == undefined) {\n this.errorMessage = JSON.stringify(responseError);\n }\n }\n else if (responseError.error_type) {\n switch (responseError.error_type) {\n case 'invalid_request_error':\n if (responseError.validation_errors.length > 0) {\n if (responseError.validation_errors[0].code === 'invalid_param') {\n switch (responseError.validation_errors[0].param) {\n case 'card_number':\n this.errorMessage = 'Tarjeta inválida';\n break;\n case 'bin':\n this.errorMessage = 'Tarjeta inválida';\n break;\n default:\n this.errorMessage = responseError.error.reason.description;\n if (this.errorMessage == '' || this.errorMessage == undefined) {\n this.errorMessage = JSON.stringify(responseError);\n }\n break;\n }\n }\n }\n break;\n case 'not_found_error':\n this.errorMessage = 'Datos no encontrados (404).';\n break;\n case 'authentication_error':\n this.errorMessage = 'Error (401).';\n break;\n case 'malformed_request_error':\n this.errorMessage = 'Error al enviar los datos (400).';\n break;\n case 'api_error':\n this.errorMessage = 'Error interno (409).';\n break;\n default:\n this.errorMessage = JSON.stringify(responseError);\n break;\n }\n }\n }\n\n compareDate(year: number, month: number, day: number): number {\n const d1: Date = new Date(year, month, day);\n const d2: Date = new Date();\n\n const same = d1.getTime() === d2.getTime();\n if (same) { return 0; }\n if (d1 > d2) { return 1; }\n if (d1 < d2) { return -1; }\n }\n\n // Input controls\n onYearChange() {\n if (Number.isNaN(+this.yearText)) {\n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onYearBlur(element: any) {\n if (this.compareDate(\n Number(`20${this.yearText}`),\n Number(this.monthText),\n new Date().getDate()) < 0) {\n setTimeout(() => {\n this.yearText = '';\n this.invalidDate = true;\n element.target.focus();\n });\n } else {\n this.invalidDate = false;\n }\n\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText === '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (Number.isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n\n if (this.cvcText.search(' ') > -1) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n\n onDniChange() {\n if (Number.isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n\n if (this.dniText.search(' ') > -1) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.payerNameText)) {\n setTimeout(() => {\n this.payerNameText = '';\n });\n }\n }\n\n onCardChange() {\n if (Number.isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n\n if (this.cardText.search(' ') > -1) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n\n if(this.cardText.length <8) {\n this.disableSelect = true;\n this.issuer = null;\n } else {\n this.disableSelect = false;\n }\n\n // setea tarjeta\n if (this.cardText.length === 8 && this.cardText !== '00000000'){\n this.setCreditType(this.cardText);\n }\n \n }\n\n setCreditType(bin: string): void {\n if (bin.length < 8) {\n this.issuer = null;\n return;\n }\n\n if (bin.length === 8) {\n this.issuer = null;\n\n // visa debito\n if (bin.substring(0, 4) === '4770' ||\n bin.substring(0, 6) === '442548' ||\n bin.substring(0, 6) === '406809' ||\n bin.substring(0, 6) === '408738' ||\n bin.substring(0, 6) === '411521' ||\n bin.substring(0, 6) === '411663' ||\n bin.substring(0, 6) === '426359' ||\n bin.substring(0, 6) === '429780' ||\n bin.substring(0, 6) === '438267' ||\n bin.substring(0, 6) === '461187' ||\n bin.substring(0, 6) === '500334' ||\n bin.substring(0, 6) === '509413' ||\n bin.substring(0, 6) === '512285' ||\n bin.substring(0, 6) === '512881' ||\n bin.substring(0, 6) === '518635' ||\n bin.substring(0, 6) === '538449' ||\n bin.substring(0, 6) === '550553' ||\n bin.substring(0, 6) === '566057' ||\n bin.substring(0, 6) === '567933' ||\n bin.substring(0, 6) === '572140' ||\n bin.substring(0, 6) === '584257' ||\n bin.substring(0, 6) === '598718' ||\n bin.substring(0, 6) === '605801' ||\n bin.substring(0, 6) === '606120' ||\n bin.substring(0, 6) === '631057' ||\n bin.substring(0, 6) === '676215' ||\n bin.substring(0, 6) === '713274' ||\n bin.substring(0, 6) === '713284' ||\n bin.substring(0, 6) === '717515' ||\n bin.substring(0, 6) === '748761' ||\n bin.substring(0, 6) === '753371' ||\n bin.substring(0, 6) === '753600' ||\n bin.substring(0, 6) === '912394' ||\n bin.substring(0, 6) === '916148' ||\n bin.substring(0, 6) === '916773' ||\n bin.substring(0, 6) === '923405' ||\n bin.substring(0, 6) === '930965' ||\n bin.substring(0, 6) === '934091' ||\n bin.substring(0, 6) === '935761' ||\n bin.substring(0, 6) === '943313' ||\n bin.substring(0, 6) === '945721' ||\n bin.substring(0, 6) === '948809' ||\n bin.substring(0, 6) === '960644' ||\n bin.substring(0, 6) === '969085' ||\n bin.substring(0, 6) === '970167' ||\n bin.substring(0, 6) === '978061' ||\n bin.substring(0, 8) === '40267919' ||\n bin.substring(0, 8) === '40327176' ||\n bin.substring(0, 8) === '40416004' ||\n bin.substring(0, 8) === '40421933' ||\n bin.substring(0, 8) === '40451556' ||\n bin.substring(0, 8) === '40541010' ||\n bin.substring(0, 8) === '40623835' ||\n bin.substring(0, 8) === '40733469' ||\n bin.substring(0, 8) === '40733586' ||\n bin.substring(0, 8) === '40872498' ||\n bin.substring(0, 8) === '45007789' ||\n bin.substring(0, 8) === '45024822' ||\n bin.substring(0, 8) === '45034751' ||\n bin.substring(0, 8) === '45046987' ||\n bin.substring(0, 8) === '45060549' ||\n bin.substring(0, 8) === '45062482' ||\n bin.substring(0, 8) === '45070071' ||\n bin.substring(0, 8) === '45084708' ||\n bin.substring(0, 8) === '45091433' ||\n bin.substring(0, 8) === '45100902' ||\n bin.substring(0, 8) === '45103869' ||\n bin.substring(0, 8) === '45131047' ||\n bin.substring(0, 8) === '45168884' ||\n bin.substring(0, 8) === '45174306' ||\n bin.substring(0, 8) === '45184611' ||\n bin.substring(0, 8) === '45191921' ||\n bin.substring(0, 8) === '45201881' ||\n bin.substring(0, 8) === '45206401' ||\n bin.substring(0, 8) === '45245294' ||\n bin.substring(0, 8) === '45314944' ||\n bin.substring(0, 8) === '45317847' ||\n bin.substring(0, 8) === '45357409' ||\n bin.substring(0, 8) === '45374587' ||\n bin.substring(0, 8) === '45394705' ||\n bin.substring(0, 8) === '45456584' ||\n bin.substring(0, 8) === '45541924' ||\n bin.substring(0, 8) === '45545795' ||\n bin.substring(0, 8) === '45567746' ||\n bin.substring(0, 8) === '45583759' ||\n bin.substring(0, 8) === '45648838' ||\n bin.substring(0, 8) === '45672506' ||\n bin.substring(0, 8) === '45678421' ||\n bin.substring(0, 8) === '45710756' ||\n bin.substring(0, 8) === '45716006' ||\n bin.substring(0, 8) === '45725029' ||\n bin.substring(0, 8) === '45732113' ||\n bin.substring(0, 8) === '45732698' ||\n bin.substring(0, 8) === '45793917' ||\n bin.substring(0, 8) === '45841185' ||\n bin.substring(0, 8) === '45862021' ||\n bin.substring(0, 8) === '45915336' ||\n bin.substring(0, 8) === '45971496') {\n this.issuer = 31;\n }\n // mastercard\n else if (bin.substring(0, 2) === '51' ||\n bin.substring(0, 2) === '52' ||\n bin.substring(0, 2) === '53' ||\n bin.substring(0, 2) === '54' ||\n bin.substring(0, 2) === '55') {\n this.issuer = 104;\n }\n // tarjeta naranja\n else if (bin.substring(0, 6) === '589562') {\n this.issuer = 24;\n }\n // visa credito\n else if (bin.substring(0, 1) === '4') {\n this.issuer = 1;\n }\n\n this.selectedCreditCard();\n }\n }\n\n onPaste(): boolean {\n return false;\n }\n\n resetForm() {\n this.disabled = false;\n this.disableSelect = false;\n this.totalAmount\n this.totalFinancedAmount = undefined;\n this.currentTEA = undefined;\n this.currentCFT = undefined;\n // creditCards: CreditCard[];\n this.creditCards = undefined;\n this.selectCreditCardPlan = null;\n // creditCardPlans: CreditCardPlans[];\n this.creditCardPlans = undefined;\n this.paymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n \n // Form bind\n this.monthText = undefined;\n this.yearText = undefined;\n this.cvcText = undefined;\n this.dniText = undefined;\n this.payerNameText = undefined;\n this.cardText = undefined;\n this.submitPressed = false;\n this.invalidDate = false;\n \n this.decidir = undefined;\n this.addScript = true;\n \n this.paymentState = 'unsubmitted';\n this.payerName = undefined;\n this.issuer = null;\n this.payment = undefined;\n this.paymentSuccessInfo = undefined;\n this.errorMessage = undefined;\n\n this.initDecidir();\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { SpsDecidirComponent } from './components/sps-decidir.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n RouterModule\n ],\n declarations: [\n SpsDecidirComponent\n ],\n exports: [\n SpsDecidirComponent\n ]\n})\nexport class SpsDecidirModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { InitPayment, ResponseApi, Payment } from '../models/go-cuotas.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GoCuotasApiService {\r\n private authHeaders: HttpHeaders | undefined;\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) { }\r\n \r\n public normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n\r\n return url;\r\n }\r\n\r\n public initPayment(access_token: string, url: string, initPayment: InitPayment): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token); \r\n\r\n const body = {\r\n cardholder: initPayment.cardholder,\r\n creditCardHash: initPayment.creditCardHash,\r\n amount: initPayment.amount,\r\n installments: initPayment.installments,\r\n documentNumber: initPayment.documentNumber,\r\n areaCode: initPayment.areaCode,\r\n phoneNumber: initPayment.phoneNumber,\r\n email: initPayment.email,\r\n idVen: initPayment.idVen,\r\n storeId: initPayment.storeId,\r\n data: initPayment.data\r\n };\r\n\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/init-payment', body, { headers: this.authHeaders });\r\n }\r\n\r\n public getOrders(access_token: string, url: string): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) + '/orders', { headers: this.authHeaders });\r\n }\r\n\r\n public payment(access_token: string, url: string, payment: Payment): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n const body = {\r\n id: payment.id,\r\n cardholder: payment.cardholder,\r\n sale_token: payment.sale_token,\r\n code: payment.code,\r\n creditCardHash: payment.creditCardHash,\r\n cardMonthExpiration: payment.cardMonthExpiration,\r\n cardYearExpiration: payment.cardYearExpiration,\r\n cardSecurityCode: payment.cardSecurityCode,\r\n idVen: payment.idVen,\r\n storeId: payment.storeId,\r\n data: payment.data\r\n }\r\n\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/payment', body, { headers: this.authHeaders });\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit {\n\n modalVisible: boolean = false;\n verificationCode: string = '';\n\n @Output() codeVerified = new EventEmitter<string>();\n\n constructor() { }\n\n ngOnInit() {\n this.verificationCode = ''; \n }\n\n openModal() {\n this.verificationCode = '';\n this.modalVisible = true;\n document.body.style.overflow = '';\n }\n\n closeModal() {\n this.modalVisible = false;\n document.body.style.overflow = 'hidden';\n }\n\n onSubmitCode() {\n if (this.verificationCode) {\n this.codeVerified.emit(this.verificationCode); // Emitir el código ingresado\n this.modalVisible = false; \n } else {\n alert('Por favor ingrese el código.');\n }\n }\n\n onVerificationCodeChange() {\n if (isNaN(+this.verificationCode)) {\n setTimeout(() => {\n this.verificationCode = '';\n });\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { PaymentResult, ResponseApi, InitPayment, Payment } from '../models/go-cuotas.models';\nimport { GoCuotasApiService } from '../services/go-cuotas.api.service';\nimport { ModalComponent } from './modal/modal.component';\n\n@Component({\n selector: 'lib-go-cuotas',\n templateUrl: './go-cuotas.component.html',\n styleUrls: ['./go-cuotas.component.scss']\n})\nexport class GoCuotasComponent implements OnInit {\n\n @Input() accessToken!: string;\n @Input() gcUrlApi!: string;\n @Input() vkUrlApi!: string;\n @Input() paymentAmount!: string;\n @Input() logoGC!: string;\n @Input() idVen!: number;\n @Input() storeId!: string;\n @Input() data!: string;\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n defaultName!: string;\n mailText!: string;\n codAreaText!: string;\n telText!: string;\n cardText!: string;\n yearText!: string;\n monthText!: string;\n dniText!: string;\n cvcText!: string;\n installments!: number;\n defaultDocType!: string;\n currentInstallments!: any[];\n totalAmount!: number;\n OinitPayment!: InitPayment;\n Opayment!: Payment;\n sale_token: string = '';\n error_message: string = '';\n paymentCompleted: boolean = false; \n loadingMessage: string = 'Iniciando el pago...';\n paymentStatus = 'unsubmitted';\n\n disabled = false;\n disabledSelect = false;\n submitted = false;\n isLoading: boolean = false;\n hasError: boolean = false;\n\n // accessToken: string = '2569793-51e1725c-9334-4ea2-ada0-b0c87187443c';\n // url: string = 'https://sandbox.gocuotas.com/api/full_sale/v1/';\n\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'GOCUOTAS' };\n\n @ViewChild('f', { static: false }) checkOutForm!: NgForm;\n @ViewChild(ModalComponent, {static: false}) modal!: ModalComponent;\n\n constructor(\n private goCuotasApiService: GoCuotasApiService\n ) { }\n\n ngOnInit() {\n this.defaultDocType = '';\n this.installments = 0;\n this.currentInstallments = [\n { value: 2, label: '2 Cuotas' },\n { value: 3, label: '3 Cuotas' },\n { value: 4, label: '4 Cuotas' }\n ]; // Opciones para \"Cantidad de cuotas\"\n\n this.totalAmount = Number(this.paymentAmount);\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n this.submitted = true;\n \n if (!this.checkOutForm.valid) { return; }\n\n this.isLoading = true;\n this.paymentCompleted = false;\n this.loadingMessage = 'Iniciando el pago...';\n this.paymentResult = { success: false, paymentId: '', integrator: 'GOCUOTAS' };\n\n \n this.OinitPayment = {\n amount: Number(this.paymentAmount) * 100,\n areaCode: this.codAreaText,\n installments: this.installments, \n documentNumber: this.dniText,\n phoneNumber: this.telText,\n email: this.mailText.toLowerCase(),\n cardholder: this.defaultName,\n creditCardHash: this.cardText,\n idVen: this.idVen,\n storeId: this.storeId,\n data: this.data\n }; \n\n this.initPayment();\n }\n\n initPayment() {\n this.isLoading = true;\n this.loadingMessage = 'Enviando código...';\n\n this.goCuotasApiService.initPayment(this.accessToken, this.vkUrlApi, this.OinitPayment)\n .subscribe({\n next: (v) => this.initPaymentResponseHandler(v),\n error: (v) => this.ResponseHandlerError(v)\n })\n }\n\n private initPaymentResponseHandler(response: ResponseApi) {\n if(!response.success) {\n this.error_message = response.errorsMessages[0];\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n this.disabledSelect = true;\n\n return;\n }\n\n this.Opayment = {\n id: response.data.id,\n cardholder: this.defaultName,\n sale_token: response.data.response.sale_token,\n creditCardHash: this.cardText,\n cardMonthExpiration: Number(this.monthText),\n cardYearExpiration: Number(this.yearText),\n cardSecurityCode: Number(this.cvcText),\n idVen: this.idVen,\n storeId: this.storeId,\n data: this.data\n };\n\n this.isLoading = false;\n this.disabled = true;\n this.disabledSelect = true;\n this.modal.openModal();\n this.paymentStatus = 'sentCode';\n }\n\n onCodeSent(code: string) {\n this.isLoading = true;\n this.loadingMessage = 'Procesando pago...';\n \n this.Opayment.code = Number(code);\n \n if(code !== null){\n this.finishPayment();\n }\n }\n\n public finishPayment() {\n this.paymentStatus = 'processing';\n\n this.goCuotasApiService.payment(this.accessToken, this.vkUrlApi, this.Opayment)\n .subscribe({\n next: (v) => this.FinishPaymentResponseHandler(v), \n error: (v) => this.ResponseHandlerError(v)\n });\n }\n\n private ResponseHandlerError(response: any) {\n this.paymentStatus = 'error';\n this.disabled = true;\n this.disabledSelect = true;\n this.statusPay.emit(this.paymentResult);\n\n if(!response.ok && response.error === null && response.status === 500){\n this.error_message = \"Error en el servidor. Vuelva a intentar más tarde.\";\n this.isLoading = false;\n this.hasError = true; \n\n return;\n }\n\n this.error_message = response.error.errorsMessages[0];\n this.isLoading = false;\n this.hasError = true; \n }\n\n private FinishPaymentResponseHandler(response: ResponseApi){\n this.paymentStatus = 'success';\n\n if(!response.success) {\n this.error_message = response.errorsMessages[0];\n this.statusPay.emit(this.paymentResult);\n\n return;\n } \n\n this.Opayment.paymentId = response.data.paymentId\n this.paymentResult = { success: true, paymentId: String(this.Opayment.paymentId) , integrator: 'GOGUOTAS' };\n this.statusPay.emit(this.paymentResult);\n this.loadingMessage = '¡Pago procesado correctamente!';\n this.paymentCompleted = true; \n }\n\n restartForm() {\n this.hasError = false;\n this.submitted = false;\n this.disabled = false;\n this.disabledSelect = false;\n this.paymentStatus = 'unsubmitted';\n this.checkOutForm.reset(); \n this.installments = 0;\n this.defaultDocType = '';\n }\n\n // Input controls\n onYearChange() {\n if (isNaN(+this.yearText)) { \n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText == '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n\n onDniChange() {\n if (isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onMailChange() {\n if (!isNaN(+this.mailText)) {\n setTimeout(() => {\n this.mailText = '';\n });\n }\n }\n\n onCodAreaChange() {\n if (isNaN(+this.codAreaText)) {\n setTimeout(() => {\n this.codAreaText = '';\n });\n }\n }\n\n onTelChange() {\n if (isNaN(+this.telText)) {\n setTimeout(() => {\n this.telText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.defaultName)) {\n setTimeout(() => {\n this.defaultName = '';\n });\n }\n }\n\n onCardChange() {\n if (isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n }\n\n onInstallmentsChange() {\n //console.log('cuotas seleccionadas' ,this.installments)\n }\n\n onPaste(): boolean {\n return false;\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GoCuotasComponent } from './components/go-cuotas.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { GoCuotasApiService } from './services/go-cuotas.api.service';\nimport { ModalComponent } from './components/modal/modal.component';\n\nconst COMPONENTS = [\n GoCuotasComponent,\n ModalComponent\n]\n\n@NgModule({\n declarations: [\n COMPONENTS \n ],\n exports: [\n COMPONENTS\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule\n ],\n providers: [\n GoCuotasApiService\n ]\n})\nexport class GoCuotasModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CreatePaymentRequest, PaymentResponse } from '../models/modo.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModoApiService {\n private authHeaders: HttpHeaders | undefined;\n\n constructor(private http: HttpClient) { }\n\n createPayment(accessToken: string, paymentRequest: CreatePaymentRequest,apiUrl: string): Observable<PaymentResponse> {\n this._setAuthHeaders(accessToken); \n return this.http.post<PaymentResponse>(`${apiUrl}create-payment`, paymentRequest, { headers: this.authHeaders });\n }\n\n private _setAuthHeaders(accessToken: string) {\n const userToken = 'Bearer ' + accessToken;\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\n }\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ModoApiService } from '../../services/modo-api.service';\nimport { CreatePaymentRequest } from '../../models/modo.models';\n\n// Declara la variable global del SDK\ndeclare var ModoSDK: any;\n\ntype ExecutionEnvironment = 'desktop' | 'mobile-browser' | 'native-app';\n\n@Component({\n selector: 'vk-modo-payment',\n templateUrl: './modo.component.html',\n styleUrls: ['./modo.component.scss']\n})\nexport class ModoComponent implements OnInit {\n\n @Input() accessToken!: string;\n @Input() storeId: string;\n @Input() idVen: number;\n @Input() data: string;\n @Input() amount: number;\n @Input() orderId: string;\n @Input() mobileAppEnv: string;\n @Input() vkUrlApi: string;\n @Input() callbackUrl: string;\n @Input() callbackUrlSuccess: string;\n @Output() statusPay = new EventEmitter<{ success: boolean; paymentId: string }>();\n\n isLoading = false;\n private executionEnv: ExecutionEnvironment = 'desktop';\n private devicePlatform: 'iOS' | 'Android' | undefined;\n private deeplinkURL: string;\n\n constructor(\n private modoApi: ModoApiService\n ) { }\n\n ngOnInit(): void {\n this.detectEnvironment();\n if (this.executionEnv === 'desktop') {\n this.loadModoScript();\n }\n }\n\n private detectEnvironment(): void {\n try {\n if (this.mobileAppEnv === 'iOS' || this.mobileAppEnv === 'Android') {\n this.executionEnv = 'native-app';\n this.devicePlatform = this.mobileAppEnv;\n console.log(`MODO Payment: Entorno detectado -> Nativo (${this.devicePlatform || 'app'})`);\n return;\n }\n } catch (error) {\n console.warn('MODO Payment: No se pudo leer los parámetros de la ruta. Se continuará con la detección por User Agent.');\n }\n\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\n if (/android/i.test(userAgent) || /iPad|iPhone|iPod/.test(userAgent)) {\n this.executionEnv = 'mobile-browser';\n console.log('MODO Payment: Entorno detectado -> Navegador Móvil');\n } else {\n this.executionEnv = 'desktop';\n console.log('MODO Payment: Entorno detectado -> Desktop');\n }\n }\n\n async startModoPayment(): Promise<void> {\n this.isLoading = true;\n\n try {\n const initialData = await this.createModoPayment();\n this.deeplinkURL = this.createDeeplinkURL(initialData);\n switch (this.executionEnv) {\n case 'native-app':\n // Llama a la función nativa para abrir en un navegador externo\n this.openOnNativeNavigator(this.deeplinkURL);\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n break;\n case 'mobile-browser':\n // Abre el deeplink en una nueva pestaña\n window.open(this.deeplinkURL, '_blank');\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n break;\n case 'desktop':\n default:\n // Abrir el modal del SDK\n this.initModoSdkModal(initialData);\n break;\n }\n\n \n } catch (error) {\n this.isLoading = false;\n this.statusPay.emit({ success: false, paymentId: '' });\n console.error(\"Error al iniciar el pago con MODO\", error);\n }\n }\n\n private createDeeplinkURL(initialData: { qrString: string; checkoutId: string; deeplink: string }): string{\n return initialData.deeplink + '?qr=' + initialData.qrString + \n '&callback=' + this.callbackUrl + '&callbackSuccess='+ this.callbackUrlSuccess \n +'&paymentRequestId=' + initialData.checkoutId;\n }\n\n private openOnNativeNavigator(url: string): void {\n try {\n if (this.devicePlatform === 'iOS') {\n (window as any).webkit.messageHandlers.externalURL.postMessage(url);\n } else if (this.devicePlatform === 'Android') {\n (window as any).externalURL.postMessage(url);\n } else {\n // Fallback si por alguna razón no se detectó la plataforma pero sí el entorno nativo\n window.open(url, '_blank');\n }\n } catch (e) {\n console.error('Error al intentar invocar el message handler nativo:', e);\n }\n }\n\n private initModoSdkModal(initialData: { qrString: string; checkoutId: string; deeplink: string }): void {\n\n const modalObject = {\n version: '2',\n qrString: initialData.qrString,\n checkoutId: initialData.checkoutId,\n deeplink: {\n url: initialData.deeplink,\n callbackURL: this.callbackUrl,\n callbackURLSuccess: this.callbackUrlSuccess\n },\n\n callbackURL: this.callbackUrl,\n\n refreshData: () => this.createModoPayment(),\n\n onSuccess: () => {\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n },\n onFailure: () => {\n this.statusPay.emit({ success: false, paymentId: initialData.checkoutId });\n },\n onCancel: () => {\n console.log('Pago cancelado por el usuario en el celular.');\n },\n onClose: () => {\n console.log('Modal de MODO cerrado.');\n },\n };\n\n // 3. Inicia el SDK de MODO\n ModoSDK.modoInitPayment(modalObject);\n\n }\n\n\n private async createModoPayment(): Promise<{ qrString: string; checkoutId: string; deeplink: string }> {\n const paymentRequest: CreatePaymentRequest = {\n amount: this.amount,\n orderId: this.orderId,\n storeId: this.storeId,\n idVen: this.idVen,\n data: this.data\n };\n\n const response = await this.modoApi.createPayment(this.accessToken, paymentRequest, this.vkUrlApi).toPromise();\n\n if (response.success && response.data) {\n return {\n qrString: response.data.qrString,\n checkoutId: response.data.internalPaymentId,\n deeplink: response.data.deeplink\n };\n } else {\n throw new Error('La respuesta de la API no fue exitosa.');\n }\n }\n\n private loadModoScript(): void {\n const scriptUrl = 'https://ecommerce-modal.modo.com.ar/bundle.js';\n if (!document.querySelector(`script[src=\"${scriptUrl}\"]`)) {\n const script = document.createElement('script');\n script.src = scriptUrl;\n document.body.appendChild(script);\n }\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ModoComponent } from './components/modo/modo.component';\n\n@NgModule({\n declarations: [\n ModoComponent\n ],\n imports: [\n CommonModule,\n HttpClientModule\n ],\n exports: [\n ModoComponent\n ]\n})\nexport class ModoModule { }","import { NgModule } from '@angular/core';\n\nimport { MercadopagoModule } from './mercadopago/mercadopago.module';\nimport { PaypalModule } from './paypal/paypal.module';\nimport { SpsDecidirModule } from './sps-decidir/sps-decidir.module';\nimport { GoCuotasModule } from './go-cuotas/go-cuotas.module';\nimport { ModoModule } from './modo/modo.module';\n\nconst LIB_MODULES = [\n MercadopagoModule,\n SpsDecidirModule,\n PaypalModule,\n GoCuotasModule,\n ModoModule\n];\n\n@NgModule({\n imports: LIB_MODULES,\n exports: LIB_MODULES\n})\nexport class VkPaymentsModule { }\n"],"names":["tslib_1.__values","COMPONENTS"],"mappings":"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,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAA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"}
1
+ {"version":3,"file":"vk-payments.js","sources":["ng://vk-payments/lib/mercadopago/services/mercadopago.api.service.ts","ng://vk-payments/lib/mercadopago/components/mercadopago.component.ts","ng://vk-payments/lib/mercadopago/components/promotion-bank.component.ts","ng://vk-payments/lib/mercadopago/mercadopago.module.ts","ng://vk-payments/lib/paypal/components/paypal-new.component.ts","ng://vk-payments/lib/paypal/paypal.module.ts","ng://vk-payments/lib/sps-decidir/services/sps-decidir.api.service.ts","ng://vk-payments/lib/sps-decidir/components/sps-decidir.component.ts","ng://vk-payments/lib/sps-decidir/sps-decidir.module.ts","ng://vk-payments/lib/go-cuotas/services/go-cuotas.api.service.ts","ng://vk-payments/lib/go-cuotas/components/modal/modal.component.ts","ng://vk-payments/lib/go-cuotas/components/go-cuotas.component.ts","ng://vk-payments/lib/go-cuotas/go-cuotas.module.ts","ng://vk-payments/lib/modo/services/modo-api.service.ts","ng://vk-payments/lib/modo/components/modo/modo.component.ts","ng://vk-payments/lib/modo/modo.module.ts","ng://vk-payments/lib/vk-payments.module.ts"],"sourcesContent":["import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CardPayment } from '../models/mercadopago.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MercadopagoApiService {\r\n private authHeaders: HttpHeaders;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n makePayment(cardPayment: CardPayment, access_token: string, url: string): Observable<any> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.post(this.normalizeUrl(url) + '/Payment', cardPayment, { headers: this.authHeaders });\r\n }\r\n\r\n getMercadoPagoPromotions(url: string): Observable<any> {\r\n return this.httpClient.get(url);\r\n }\r\n\r\n normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n return url;\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { CardPayment, CreateTokenResponse, PaymentResult, ResponseInstallment } from '../models/mercadopago.model';\nimport { MercadopagoApiService } from '../services/mercadopago.api.service';\nimport sha256 from 'sha256';\n\n\ndeclare var Mercadopago: any;\n\n@Component({\n selector: 'mp-form-pay',\n templateUrl: './mercadopago.component.html',\n styleUrls: ['./mercadopago.component.scss']\n})\nexport class MercadoPagoComponent implements OnInit, OnChanges {\n\n totalAmount: number;\n totalFinancedAmount: number;\n currentBin: string;\n recommendedLabel: string;\n currentTEA: string;\n currentCFT: string;\n ticket: string;\n defaultName: string;\n defaultDocType: string;\n issuerId: string;\n currentPaymentMethod: any;\n currentIssuers: any[];\n currentInstallments: any[];\n cardPayment: CardPayment;\n\n // input bind\n yearText: string;\n monthText: string;\n dniText: string;\n cvcText: string;\n cardText: string;\n errorMessage: string;\n\n paymentState = 'unsubmitted';\n tokenId = '';\n disabled = false;\n addScript = false;\n requiredIssuer = false;\n submitted = false;\n\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'MP' };\n\n @Input() paymentAmount: number;\n @Input() payerName: string;\n @Input() payerEmail: string;\n @Input() accessToken: string;\n @Input() vkUrlApi: string;\n @Input() description: string;\n @Input() publishableKey: string;\n @Input() successUrl: string;\n @Input() failureUrl: string;\n @Input() imgCreditCards: string;\n @Input() imgMercadoPago: string;\n @Input() iconExpandMore: string;\n @Input() debugLog: boolean;\n @Input() storeId: string;\n @Input() idVen: number;\n @Input() data: string;\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n @ViewChild('f', { static: false }) checkOutForm: NgForm;\n\n constructor(private router: Router, private mercadopagoApiService: MercadopagoApiService) { }\n\n ngOnInit() {\n this.initMercadoPago();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.paymentAmount.isFirstChange()) {\n this.disabled = false;\n this.checkOutForm.reset();\n }\n }\n\n private initMercadoPago() {\n this.addMercadopagoScript()\n .then(() => {\n Mercadopago.setPublishableKey(this.publishableKey);\n Mercadopago.getIdentificationTypes();\n\n this.totalAmount = this.paymentAmount;\n this.defaultName = this.payerName;\n this.defaultDocType = 'DNI';\n });\n }\n\n private addMercadopagoScript() {\n this.addScript = true;\n return new Promise((resolve, reject) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = 'https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js?2345';\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n\n private createToken(sendForm: any) {\n this.paymentState = 'processing';\n Mercadopago.createToken(sendForm, (status, response: any) => {\n \n if (status !== 200 && status !== 201) {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.errorMessage = 'Revisa los datos del formulario.';\n // const causes: Cause[] = (response as ErrorTokenResponse).cause;\n // if (causes !== null && causes.length > 0) {\n // causes.forEach((item) => {\n // this.errorMessage += this.getErrorMessage(item.code) + '\\n';\n // });\n // }\n } else {\n this.tokenId = (response as CreateTokenResponse).id;\n this.makePayment();\n }\n });\n }\n\n private makePayment() {\n const hashedCard = this.hashText(this.cardText,100000);\n this.cardPayment = {\n tokenId: this.tokenId,\n transactionAmount: this.totalAmount,\n description: this.description,\n installments: Number(this.checkOutForm.value.installments),\n issuerId: this.checkOutForm.value.issuer,\n paymentMethodId: this.currentPaymentMethod[0].id,\n codCP: this.idVen,\n docNumber: this.checkOutForm.value.docNumber,\n additionalData: this.data,\n storeId: this.storeId,\n hash: hashedCard\n };\n this.mercadoPagoPayment();\n }\n\n private hashText(text: string, iterations:number): string{\n let hashedtext = text;\n for (let i = 0; i < iterations; i++) {\n hashedtext = sha256(hashedtext);\n }\n return hashedtext\n }\n\n private paymentResponseHandler(response: any) {\n if (response.success) {\n this.paymentState = response.data.statusDetails;\n this.ticket = response.data.transactionId;\n this.paymentResult = { success: true, paymentId: this.ticket, integrator: 'MP' };\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n\n this.logger('paymentResponseHandler:', response);\n if (this.successUrl && this.successUrl.length > 0) {\n this.router.navigate([`${this.successUrl}`]);\n }\n } else {\n this.paymentState = 'apiError';\n this.statusPay.emit(this.paymentResult);\n if (this.successUrl && this.failureUrl.length > 0) {\n this.router.navigate([`${this.failureUrl}`]).then();\n }\n }\n }\n\n checkPaymentMethod() {\n if (this.checkOutForm.value.cardNumber != null) {\n this.currentInstallments = null;\n this.currentIssuers = null;\n if (this.checkOutForm.value.cardNumber.toString().length >= 6) {\n this.currentBin = this.checkOutForm.value.cardNumber.toString().substring(0, 6);\n const self = this;\n Mercadopago.getPaymentMethod(\n {\n 'bin': this.checkOutForm.value.cardNumber.toString()\n }, function (respCode, respBody) {\n if (respCode === 200) {\n self.setCurrentMethod(respBody);\n }\n });\n }\n if (this.checkOutForm.value.cardNumber.toString().length < 6) {\n this.requiredIssuer = false;\n }\n }\n }\n\n setCurrentMethod(res: any) {\n if (res) {\n this.logger('setCurrentMethod:', res);\n\n const additionalInfo: String[] = res[0].additional_info_needed;\n const issuerIdKey = 'issuer_id';\n\n if (additionalInfo.find(x => x == issuerIdKey) == undefined) {\n this.requiredIssuer = false;\n }\n else {\n this.requiredIssuer = true;\n }\n \n this.logger('requiredIssuer:', this.requiredIssuer);\n\n this.currentPaymentMethod = res;\n const self = this;\n Mercadopago.getIssuers(res[0].id, function (respCode, respBody) {\n if (respCode === 200) {\n self.setIssuers(respBody);\n }\n });\n\n self.checkInstallments(this.requiredIssuer);\n }\n }\n\n checkInstallments(requiredIssuer: boolean) {\n if (this.currentBin == undefined || this.currentBin.length < 6) {\n return;\n }\n const self = this;\n self.currentInstallments = null;\n\n let requestObject:any\n \n if (requiredIssuer) {\n requestObject = {\n 'bin': this.currentBin,\n 'amount': this.totalAmount,\n 'issuer_id': this.issuerId\n } \n }\n else {\n requestObject = {\n 'bin': this.currentBin,\n 'amount': this.totalAmount\n } \n }\n\n Mercadopago.getInstallments(requestObject, function (respCode, respBody) {\n if (respCode === 200) {\n self.setInstallments(respBody);\n } else {\n self.currentInstallments = null;\n }\n });\n }\n\n setInstallments(res: ResponseInstallment[]) {\n //this.logger('setInstallments:', res);\n\n if (res.length > 0) {\n if (this.issuerId != undefined && res.length > 1 && this.currentPaymentMethod.length > 0) {\n const result = res.filter(card => card.issuer.id === this.issuerId && card.payment_method_id === this.currentPaymentMethod[0].id);\n this.currentInstallments = result[0].payer_costs;\n this.issuerId = result[0].issuer.id;\n }\n else {\n this.currentInstallments = res[0].payer_costs;\n this.issuerId = res[0].issuer.id;\n }\n }\n }\n\n setIssuers(res: any) {\n //this.logger('setIssuers res', res);\n this.currentIssuers = res;\n }\n\n onDuesSelection(res: any) {\n for (const ins of this.currentInstallments) {\n if (ins.installments === Number(res.value.installments)) {\n this.totalFinancedAmount = ins.total_amount;\n for (const label of ins.labels) {\n if (label.includes('CFT')) {\n this.recommendedLabel = label.replace(/_/g, ': ').split('|', 2);\n this.currentTEA = this.recommendedLabel[1];\n this.currentCFT = this.recommendedLabel[0];\n }\n }\n }\n }\n }\n\n onSubmit(form: NgForm) {\n this.submitted = true;\n this.paymentResult = { success: false, paymentId: '', integrator: 'MP' };\n if (this.checkOutForm.valid) {\n const sendForm = {\n cardNumber: this.cardText,\n securityCode: this.cvcText,\n cardExpirationMonth: this.monthText,\n cardExpirationYear: this.yearText,\n cardholderName: this.defaultName,\n docType: this.defaultDocType,\n docNumber: this.dniText\n };\n\n if (this.debugLog) {\n console.log('sendForm', sendForm);\n }\n\n if (this.tokenId !== '') {\n Mercadopago.clearSession();\n }\n\n this.createToken(sendForm);\n }\n }\n\n // Input controls\n onYearChange() {\n if (isNaN(+this.yearText)) {\n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText == '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n onDniChange() {\n if (isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.defaultName)) {\n setTimeout(() => {\n this.defaultName = '';\n });\n }\n }\n\n onCardChange() {\n if (isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n }\n\n onPaste(): boolean {\n return false;\n }\n\n logger(message: string, data: any): void {\n if (this.debugLog) {\n console.log(message, JSON.stringify(data));\n }\n }\n\n mercadoPagoPayment(){\n this.mercadopagoApiService.makePayment(this.cardPayment, this.accessToken, this.vkUrlApi)\n .subscribe(res => {\n this.paymentResponseHandler(res);\n }, error => {\n this.statusPay.emit(this.paymentResult);\n this.paymentState = 'apiError';\n console.log(error);\n });\n }\n\n resetForm() {\n this.disabled = false;\n this.totalAmount\n this.totalFinancedAmount = undefined;\n this.currentBin = undefined;\n this.recommendedLabel = undefined;\n this.currentTEA = undefined;\n this.currentCFT = undefined;\n this.ticket = undefined;\n this.defaultName = undefined;\n this.defaultDocType = undefined;\n this.issuerId = undefined;\n this.currentPaymentMethod = undefined;\n this.currentIssuers = null;\n this.currentInstallments = null;\n this.cardPayment = undefined;\n\n this.paymentResult = { success: false, paymentId: '', integrator: 'MP' };\n \n // Form bind\n this.monthText = undefined;\n this.yearText = undefined;\n this.cvcText = undefined;\n this.dniText = undefined;\n this.cardText = undefined;\n this.requiredIssuer = false;\n this.submitted = false;\n this.addScript = false;\n this.paymentState = 'unsubmitted';\n this.payerName = undefined;\n this.tokenId = '';\n this.errorMessage = undefined;\n\n this.checkOutForm.reset()\n\n this.initMercadoPago();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { MercadopagoApiService } from '../services/mercadopago.api.service';\r\n\r\n\r\n@Component({\r\n selector: 'mp-promotion',\r\n templateUrl: './promotion-bank.component.html',\r\n styleUrls: ['./promotion-bank.component.scss']\r\n})\r\nexport class PromotionBankComponent implements OnInit {\r\n @Input() url: string;\r\n @Input() contentSource: string;\r\n\r\n cardPromotions: any;\r\n\r\n constructor(private mercadoPagoService: MercadopagoApiService) { }\r\n\r\n ngOnInit() {\r\n this.mercadoPagoService\r\n .getMercadoPagoPromotions(this.url)\r\n .subscribe(res => this.cardPromotions = res);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MercadoPagoComponent } from './components/mercadopago.component';\nimport { PromotionBankComponent } from './components/promotion-bank.component';\n\nconst COMPONENTS = [\n MercadoPagoComponent,\n PromotionBankComponent\n];\n\n@NgModule({\n declarations: COMPONENTS,\n exports: COMPONENTS,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule\n ]\n})\nexport class MercadopagoModule { }\n","import { AfterViewChecked, Component, Input, OnInit } from '@angular/core';\n\nimport { PaypalResponse } from '../models/response-paypal.model';\n\ndeclare let paypal: any;\n\n@Component({\n selector: 'paypal-new-form-pay',\n templateUrl: './paypal-new.component.html',\n styleUrls: ['./paypal-new.component.scss']\n})\nexport class PayPalNewComponent implements OnInit, AfterViewChecked {\n @Input() accessToken: string;\n @Input() clientId: string;\n @Input() vkUrlApi: string;\n @Input() storeId: string;\n @Input() userId: string;\n @Input() transactionId: string;\n @Input() amount: string;\n @Input() currency: string;\n @Input() cancelUrl: string;\n @Input() successUrl: string;\n @Input() data: string;\n @Input() urlSignout: string;\n\n private addScript = false;\n\n errorsMessage: any;\n\n showError = false;\n loading = true;\n status = '';\n linkToPay = '';\n linkExecutePay = '';\n\n constructor() {\n // if (this.urlSignout === '') {\n // const wnd = window.open(this.urlSignout, 'myWindow', 'width=100,height=100');\n // setTimeout(function () { wnd.close(); }, 1000);\n // }\n }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewChecked(): void {\n if (!this.addScript) {\n this.addPaypalScript().then(() => {\n\n const paypalConfig = {\n style: {\n color: 'blue',\n shape: 'pill',\n label: 'pay',\n height: 40\n },\n commit: true,\n createOrder: function (data, actions) {\n return actions.order.create({\n purchase_units: [{\n amount: { value: (<HTMLInputElement>document.getElementById('amount')).value },\n reference_id: '\\'' + (<HTMLInputElement>document.getElementById('transactionId')).value + '\\'',\n custom_id: '\\'' + (<HTMLInputElement>document.getElementById('storeId')).value + '\\''\n }],\n application_context: {\n shipping_preference: 'NO_SHIPPING'\n }\n });\n },\n\n // Finalize the transaction\n onApprove: function (data, actions) {\n return actions.order.capture().then(function (details: PaypalResponse) {\n details.data = (<HTMLInputElement>document.getElementById('data')).value;\n details.userid = (<HTMLInputElement>document.getElementById('userId')).value;\n\n fetch((<HTMLInputElement>document.getElementById('vkUrlApi')).value, {\n method: 'post',\n headers: {\n 'content-type': 'application/json',\n 'Authorization': 'Bearer ' + (<HTMLInputElement>document.getElementById('accessToken')).value\n },\n body: JSON.stringify({ details })\n }).then((response) => {\n console.log('response-> api', response);\n }).then(() => {\n window.location.href = (<HTMLInputElement>document.getElementById('successUrl')).value;\n });\n });\n },\n onError: function (error) {\n window.location.reload();\n },\n onCancel: (data, actions) => {\n window.location.href = (<HTMLInputElement>document.getElementById('cancelUrl')).value;\n }\n };\n\n paypal.Buttons(paypalConfig).render('#paypal-button-container');\n this.loading = false;\n });\n }\n }\n\n private addPaypalScript() {\n this.addScript = true;\n return new Promise((resolve, reject) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = `https://www.paypal.com/sdk/js?client-id=${this.clientId}&currency=${this.currency}`;\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { PayPalNewComponent } from './components/paypal-new.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n RouterModule\n ],\n declarations: [\n PayPalNewComponent\n ],\n exports: [\n PayPalNewComponent\n ]\n})\nexport class PaypalModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CreditCard, CreditCardPlans, Payment, ResponseApi } from '../models/payment.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpsDecidirApiService {\r\n private authHeaders: HttpHeaders;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public makePayment(payment: Payment, access_token: string, url: string): Observable<any> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.post(this.normalizeUrl(url) + '/Payment', payment, { headers: this.authHeaders });\r\n }\r\n\r\n public getDecidirConfigByBin(bin: string, url: string,): Observable<any> {\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) +`/GetDecidirConfigByBin?bin=${bin}`);\r\n }\r\n\r\n\r\n public normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n return url;\r\n }\r\n\r\n public getCreditCards(access_token: string, url: string, domainId: number): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) + '/GetCreditCardsEnable?domainId='+ domainId, { headers: this.authHeaders });\r\n }\r\n\r\n public getPlansByCreditCardId(access_token: string, url: string, amount: string, creditCardId: number, domainId: number, bin: string): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n const body = { amount: amount, creditCardId: creditCardId, domainId: domainId, bin: bin};\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/CalculateAmountInInstallments', body, { headers: this.authHeaders });\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport sha256 from 'sha256';\n\nimport {\n CreditCard,\n CreditCardPlans,\n ErrorToken,\n Payment,\n PaymentResponseInfo,\n PaymentResult,\n ResponseApi,\n SpsResponsePayment,\n} from '../models/payment.model';\nimport { SpsDecidirApiService } from '../services/sps-decidir.api.service';\n\ndeclare var Decidir: any;\n\n@Component({\n selector: 'sps-form-pay',\n templateUrl: './sps-decidir.component.html',\n styleUrls: ['./sps-decidir.component.scss']\n})\nexport class SpsDecidirComponent implements OnInit, OnChanges {\n\n @ViewChild('f', { static: false }) checkOutForm: NgForm;\n @Input() accessToken: string;\n @Input() spsUrlApi: string;\n @Input() vkUrlApi: string;\n @Input() paymentAmount: string;\n @Input() logoSps: string;\n @Input() currency: string;\n @Input() defaultPublishableKey: string;\n @Input() superviellePublishableKey: string;\n @Input() successUrl: string;\n @Input() failureUrl: string;\n @Input() useCybersource: boolean;\n @Input() debugLog: boolean;\n @Input() storeId: string;\n @Input() domainId: number;\n @Input() idVen: number;\n @Input() data: string;\n @Input() labelButton: string;\n @Input() language = 'es';\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n disabled = false;\n disableSelect = false;\n totalAmount: string;\n totalFinancedAmount: string;\n currentTEA: string;\n currentCFT: string;\n\n creditCards: CreditCard[];\n selectCreditCardPlan: CreditCardPlans = null;\n creditCardPlans: CreditCardPlans[];\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n\n // Form bind\n monthText: string;\n yearText: string;\n cvcText: string;\n dniText: string;\n payerNameText: string;\n cardText: string;\n submitPressed = false;\n invalidDate = false;\n\n private decidir: any;\n addScript = true;\n\n paymentState = 'unsubmitted';\n payerName: string;\n issuer?: number = null;\n payment: Payment;\n paymentSuccessInfo: PaymentResponseInfo;\n errorMessage: string;\n\n constructor(private router: Router, public spsDecidirApiService: SpsDecidirApiService) { }\n\n ngOnInit() {\n this.initDecidir();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.paymentAmount.isFirstChange()) {\n this.checkOutForm.reset();\n this.disabled = false;\n this.disableSelect = false;\n }\n }\n\n private initDecidir() {\n this.addDecidirScript()\n .then(() => {\n this.getCreditCards();\n this.initializeSpsDecidir();\n });\n }\n\n addDecidirScript() {\n this.addScript = true;\n return new Promise((resolve) => {\n const scripttagElement = document.createElement('script');\n scripttagElement.src = 'https://live.decidir.com/static/v2.4/decidir.js';\n scripttagElement.onload = resolve;\n document.body.appendChild(scripttagElement);\n });\n }\n\n private getCreditCards() {\n this.spsDecidirApiService.getCreditCards(this.accessToken, this.vkUrlApi, this.domainId)\n .subscribe((res: ResponseApi) => {\n this.creditCards = res.data as CreditCard[];\n this.logger('getCreditCards', this.creditCards);\n }, _ => this.paymentState = 'apiError');\n }\n\n private getPlansByCreditCardId(amount: string, creditCardId: number, domainId: number, bin: string) {\n this.spsDecidirApiService.getPlansByCreditCardId(this.accessToken, this.vkUrlApi, amount, creditCardId, domainId, bin)\n .subscribe((res: ResponseApi) => {\n this.creditCardPlans = res.data as CreditCardPlans[];\n this.logger('getPlansByCreditCardId', this.creditCardPlans);\n }, _ => this.paymentState = 'apiError');\n }\n\n private initializeSpsDecidir() {\n this.decidir = new Decidir(this.spsDecidirApiService.normalizeUrl(this.spsUrlApi), !this.useCybersource);\n this.decidir.setTimeout(15000);\n this.decidir.setPublishableKey(this.defaultPublishableKey);\n }\n\n private logger(message: string, data: any): void {\n if (!this.debugLog) { return; }\n console.log(message, data);\n }\n\n public selectedCreditCard() {\n if (!this.issuer) { return; }\n\n this.selectCreditCardPlan = null;\n if (this.currency === 'ARS' && this.cardText.substring(0,8) !== '00000000') {\n this.getPlansByCreditCardId(this.paymentAmount, this.issuer, this.domainId, this.cardText.substring(0,8));\n return;\n } else {\n this.cardText ='';\n }\n\n if (this.currency === 'USD') {\n this.totalAmount = this.totalFinancedAmount = this.paymentAmount;\n }\n }\n\n selectedCreditCardPlan() {\n if (this.selectCreditCardPlan === null) { return; }\n\n this.totalFinancedAmount = this.selectCreditCardPlan.totalAmount;\n this.totalAmount = this.paymentAmount;\n this.currentTEA = this.selectCreditCardPlan.tna;\n this.currentCFT = this.selectCreditCardPlan.cft;\n }\n\n onSubmit(event) {\n event.preventDefault();\n this.submitPressed = true;\n this.paymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n\n if (!this.checkOutForm.valid) { return; }\n\n this.paymentState = 'processing';\n\n this.spsDecidirApiService.getDecidirConfigByBin(this.cardText.substring(0, 8), this.vkUrlApi)\n .subscribe(config => {\n if(config =='SPS-Decidir-Supervielle'){\n this.decidir.setPublishableKey(this.superviellePublishableKey);\n } else {\n this.decidir.setPublishableKey(this.defaultPublishableKey);\n }\n\n const form = document.querySelector('#formulario');\n this.decidir.createToken(form, (status: number, response: SpsResponsePayment) => {\n if (status !== 200 && status !== 201) {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.processErrorToken(response);\n } else {\n this.makePayment(form, response);\n }\n });\n\n });\n }\n\n makePayment(form: any, paymentResponse: SpsResponsePayment): void {\n this.logger('makePayment:', JSON.stringify(paymentResponse));\n const hashedCard = this.hashText(this.cardText,100000);\n this.payment = {\n token: paymentResponse.id,\n amount: this.totalAmount,\n totalFinancedAmount: this.totalFinancedAmount,\n bin: paymentResponse.bin,\n currency: 'ARS',\n documentNumber: this.currency === 'USD' ? '0' : paymentResponse.cardholder.identification.number,\n idVen: this.idVen,\n paymentType: 'single',\n installments: this.currency === 'USD' ? 1 : this.selectCreditCardPlan.installments,\n creditCardPlanId: this.currency === 'USD' ? 0 : this.selectCreditCardPlan.id,\n paymentMethodId: this.issuer,\n cardholder: this.payerNameText,\n storeId: this.storeId,\n data: this.data,\n subPayments: [],\n creditCardHash: hashedCard,\n lastFourDigits: this.cardText.slice(-4)\n };\n \n\n this.logger('payment:', JSON.stringify(this.payment));\n this.spsDecidirApiService.makePayment(this.payment, this.accessToken, this.vkUrlApi)\n .subscribe((res: ResponseApi) => {\n this.paymentResponseHandler(res);\n }, error => {\n this.statusPay.emit(this.paymentResult);\n this.paymentState = 'apiError';\n console.error(error);\n });\n }\n\n private hashText(text: string, iterations:number): string{\n let hashedtext = text;\n for (let i = 0; i < iterations; i++) {\n hashedtext = sha256(hashedtext);\n }\n return hashedtext\n }\n\n paymentResponseHandler(response: ResponseApi) {\n this.logger('paymentResponseHandler:', JSON.stringify(response));\n\n if (response.success) {\n this.paymentState = 'success';\n this.paymentSuccessInfo = response.data as PaymentResponseInfo;\n this.paymentResult = { success: true, paymentId: this.paymentSuccessInfo.payment_id, integrator: 'DECIDIR' };\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n this.disableSelect = true;\n\n if (this.successUrl && this.successUrl.length > 0) {\n this.router.navigate([`${this.successUrl}`]).then();\n return;\n }\n } else {\n this.paymentState = 'error';\n this.statusPay.emit(this.paymentResult);\n this.processErrorMessage(response.data);\n\n if (this.failureUrl && this.failureUrl.length > 0) {\n this.router.navigate([`${this.failureUrl}`]).then()\n return;\n }\n }\n }\n\n processErrorToken(response: any): void {\n this.disabled = true;\n this.disableSelect = true;\n\n const error: ErrorToken = response as ErrorToken;\n\n // obtenemos mensajes de error\n error.error.forEach((x) => {\n if (x.error.type === 'invalid_expiry_date') {\n this.errorMessage = 'Revisá la fecha de vencimiento.';\n } else {\n this.errorMessage = JSON.stringify(error);\n }\n });\n }\n\n // diferentes tipos de error nos devuelve decidir\n processErrorMessage(responseError: PaymentResponseInfo): void {\n this.disabled = true;\n this.disableSelect = true;\n\n if (responseError.error) {\n this.errorMessage = responseError.error.reason.description;\n\n if (responseError.error.reason.additional_description) {\n this.errorMessage = this.errorMessage + ' - ' + responseError.error.reason.additional_description;\n }\n\n if (this.errorMessage == '' || this.errorMessage == undefined) {\n this.errorMessage = JSON.stringify(responseError);\n }\n }\n else if (responseError.error_type) {\n switch (responseError.error_type) {\n case 'invalid_request_error':\n if (responseError.validation_errors.length > 0) {\n if (responseError.validation_errors[0].code === 'invalid_param') {\n switch (responseError.validation_errors[0].param) {\n case 'card_number':\n this.errorMessage = 'Tarjeta inválida';\n break;\n case 'bin':\n this.errorMessage = 'Tarjeta inválida';\n break;\n default:\n this.errorMessage = responseError.error.reason.description;\n if (this.errorMessage == '' || this.errorMessage == undefined) {\n this.errorMessage = JSON.stringify(responseError);\n }\n break;\n }\n }\n }\n break;\n case 'not_found_error':\n this.errorMessage = 'Datos no encontrados (404).';\n break;\n case 'authentication_error':\n this.errorMessage = 'Error (401).';\n break;\n case 'malformed_request_error':\n this.errorMessage = 'Error al enviar los datos (400).';\n break;\n case 'api_error':\n this.errorMessage = 'Error interno (409).';\n break;\n default:\n this.errorMessage = JSON.stringify(responseError);\n break;\n }\n }\n }\n\n compareDate(year: number, month: number, day: number): number {\n const d1: Date = new Date(year, month, day);\n const d2: Date = new Date();\n\n const same = d1.getTime() === d2.getTime();\n if (same) { return 0; }\n if (d1 > d2) { return 1; }\n if (d1 < d2) { return -1; }\n }\n\n // Input controls\n onYearChange() {\n if (Number.isNaN(+this.yearText)) {\n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onYearBlur(element: any) {\n if (this.compareDate(\n Number(`20${this.yearText}`),\n Number(this.monthText),\n new Date().getDate()) < 0) {\n setTimeout(() => {\n this.yearText = '';\n this.invalidDate = true;\n element.target.focus();\n });\n } else {\n this.invalidDate = false;\n }\n\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText === '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (Number.isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n\n if (this.cvcText.search(' ') > -1) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n\n onDniChange() {\n if (Number.isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n\n if (this.dniText.search(' ') > -1) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.payerNameText)) {\n setTimeout(() => {\n this.payerNameText = '';\n });\n }\n }\n\n onCardChange() {\n if (Number.isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n\n if (this.cardText.search(' ') > -1) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n\n if(this.cardText.length <8) {\n this.disableSelect = true;\n this.issuer = null;\n } else {\n this.disableSelect = false;\n }\n\n // setea tarjeta\n if (this.cardText.length === 8 && this.cardText !== '00000000'){\n this.setCreditType(this.cardText);\n }\n \n }\n\n setCreditType(bin: string): void {\n if (bin.length < 8) {\n this.issuer = null;\n return;\n }\n\n if (bin.length === 8) {\n this.issuer = null;\n\n // visa debito\n if (bin.substring(0, 4) === '4770' ||\n bin.substring(0, 6) === '442548' ||\n bin.substring(0, 6) === '406809' ||\n bin.substring(0, 6) === '408738' ||\n bin.substring(0, 6) === '411521' ||\n bin.substring(0, 6) === '411663' ||\n bin.substring(0, 6) === '426359' ||\n bin.substring(0, 6) === '429780' ||\n bin.substring(0, 6) === '438267' ||\n bin.substring(0, 6) === '461187' ||\n bin.substring(0, 6) === '500334' ||\n bin.substring(0, 6) === '509413' ||\n bin.substring(0, 6) === '512285' ||\n bin.substring(0, 6) === '512881' ||\n bin.substring(0, 6) === '518635' ||\n bin.substring(0, 6) === '538449' ||\n bin.substring(0, 6) === '550553' ||\n bin.substring(0, 6) === '566057' ||\n bin.substring(0, 6) === '567933' ||\n bin.substring(0, 6) === '572140' ||\n bin.substring(0, 6) === '584257' ||\n bin.substring(0, 6) === '598718' ||\n bin.substring(0, 6) === '605801' ||\n bin.substring(0, 6) === '606120' ||\n bin.substring(0, 6) === '631057' ||\n bin.substring(0, 6) === '676215' ||\n bin.substring(0, 6) === '713274' ||\n bin.substring(0, 6) === '713284' ||\n bin.substring(0, 6) === '717515' ||\n bin.substring(0, 6) === '748761' ||\n bin.substring(0, 6) === '753371' ||\n bin.substring(0, 6) === '753600' ||\n bin.substring(0, 6) === '912394' ||\n bin.substring(0, 6) === '916148' ||\n bin.substring(0, 6) === '916773' ||\n bin.substring(0, 6) === '923405' ||\n bin.substring(0, 6) === '930965' ||\n bin.substring(0, 6) === '934091' ||\n bin.substring(0, 6) === '935761' ||\n bin.substring(0, 6) === '943313' ||\n bin.substring(0, 6) === '945721' ||\n bin.substring(0, 6) === '948809' ||\n bin.substring(0, 6) === '960644' ||\n bin.substring(0, 6) === '969085' ||\n bin.substring(0, 6) === '970167' ||\n bin.substring(0, 6) === '978061' ||\n bin.substring(0, 8) === '40267919' ||\n bin.substring(0, 8) === '40327176' ||\n bin.substring(0, 8) === '40416004' ||\n bin.substring(0, 8) === '40421933' ||\n bin.substring(0, 8) === '40451556' ||\n bin.substring(0, 8) === '40541010' ||\n bin.substring(0, 8) === '40623835' ||\n bin.substring(0, 8) === '40733469' ||\n bin.substring(0, 8) === '40733586' ||\n bin.substring(0, 8) === '40872498' ||\n bin.substring(0, 8) === '45007789' ||\n bin.substring(0, 8) === '45024822' ||\n bin.substring(0, 8) === '45034751' ||\n bin.substring(0, 8) === '45046987' ||\n bin.substring(0, 8) === '45060549' ||\n bin.substring(0, 8) === '45062482' ||\n bin.substring(0, 8) === '45070071' ||\n bin.substring(0, 8) === '45084708' ||\n bin.substring(0, 8) === '45091433' ||\n bin.substring(0, 8) === '45100902' ||\n bin.substring(0, 8) === '45103869' ||\n bin.substring(0, 8) === '45131047' ||\n bin.substring(0, 8) === '45168884' ||\n bin.substring(0, 8) === '45174306' ||\n bin.substring(0, 8) === '45184611' ||\n bin.substring(0, 8) === '45191921' ||\n bin.substring(0, 8) === '45201881' ||\n bin.substring(0, 8) === '45206401' ||\n bin.substring(0, 8) === '45245294' ||\n bin.substring(0, 8) === '45314944' ||\n bin.substring(0, 8) === '45317847' ||\n bin.substring(0, 8) === '45357409' ||\n bin.substring(0, 8) === '45374587' ||\n bin.substring(0, 8) === '45394705' ||\n bin.substring(0, 8) === '45456584' ||\n bin.substring(0, 8) === '45541924' ||\n bin.substring(0, 8) === '45545795' ||\n bin.substring(0, 8) === '45567746' ||\n bin.substring(0, 8) === '45583759' ||\n bin.substring(0, 8) === '45648838' ||\n bin.substring(0, 8) === '45672506' ||\n bin.substring(0, 8) === '45678421' ||\n bin.substring(0, 8) === '45710756' ||\n bin.substring(0, 8) === '45716006' ||\n bin.substring(0, 8) === '45725029' ||\n bin.substring(0, 8) === '45732113' ||\n bin.substring(0, 8) === '45732698' ||\n bin.substring(0, 8) === '45793917' ||\n bin.substring(0, 8) === '45841185' ||\n bin.substring(0, 8) === '45862021' ||\n bin.substring(0, 8) === '45915336' ||\n bin.substring(0, 8) === '45971496') {\n this.issuer = 31;\n }\n // mastercard\n else if (bin.substring(0, 2) === '51' ||\n bin.substring(0, 2) === '52' ||\n bin.substring(0, 2) === '53' ||\n bin.substring(0, 2) === '54' ||\n bin.substring(0, 2) === '55') {\n this.issuer = 104;\n }\n // tarjeta naranja\n else if (bin.substring(0, 6) === '589562') {\n this.issuer = 24;\n }\n // visa credito\n else if (bin.substring(0, 1) === '4') {\n this.issuer = 1;\n }\n\n this.selectedCreditCard();\n }\n }\n\n onPaste(): boolean {\n return false;\n }\n\n resetForm() {\n this.disabled = false;\n this.disableSelect = false;\n this.totalAmount\n this.totalFinancedAmount = undefined;\n this.currentTEA = undefined;\n this.currentCFT = undefined;\n // creditCards: CreditCard[];\n this.creditCards = undefined;\n this.selectCreditCardPlan = null;\n // creditCardPlans: CreditCardPlans[];\n this.creditCardPlans = undefined;\n this.paymentResult = { success: false, paymentId: '', integrator: 'DECIDIR' };\n \n // Form bind\n this.monthText = undefined;\n this.yearText = undefined;\n this.cvcText = undefined;\n this.dniText = undefined;\n this.payerNameText = undefined;\n this.cardText = undefined;\n this.submitPressed = false;\n this.invalidDate = false;\n \n this.decidir = undefined;\n this.addScript = true;\n \n this.paymentState = 'unsubmitted';\n this.payerName = undefined;\n this.issuer = null;\n this.payment = undefined;\n this.paymentSuccessInfo = undefined;\n this.errorMessage = undefined;\n\n this.initDecidir();\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { SpsDecidirComponent } from './components/sps-decidir.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n RouterModule\n ],\n declarations: [\n SpsDecidirComponent\n ],\n exports: [\n SpsDecidirComponent\n ]\n})\nexport class SpsDecidirModule { }\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { InitPayment, ResponseApi, Payment } from '../models/go-cuotas.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GoCuotasApiService {\r\n private authHeaders: HttpHeaders | undefined;\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) { }\r\n \r\n public normalizeUrl(url: string): string {\r\n if (url.length > 0 && url.charAt(url.length - 1) == '/') {\r\n url = url.substr(0, url.length - 1);\r\n }\r\n\r\n return url;\r\n }\r\n\r\n public initPayment(access_token: string, url: string, initPayment: InitPayment): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token); \r\n\r\n const body = {\r\n cardholder: initPayment.cardholder,\r\n creditCardHash: initPayment.creditCardHash,\r\n amount: initPayment.amount,\r\n installments: initPayment.installments,\r\n documentNumber: initPayment.documentNumber,\r\n areaCode: initPayment.areaCode,\r\n phoneNumber: initPayment.phoneNumber,\r\n email: initPayment.email,\r\n idVen: initPayment.idVen,\r\n storeId: initPayment.storeId,\r\n data: initPayment.data\r\n };\r\n\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/init-payment', body, { headers: this.authHeaders });\r\n }\r\n\r\n public getOrders(access_token: string, url: string): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n return this.httpClient.get<ResponseApi>(this.normalizeUrl(url) + '/orders', { headers: this.authHeaders });\r\n }\r\n\r\n public payment(access_token: string, url: string, payment: Payment): Observable<ResponseApi> {\r\n this._setAuthHeaders(access_token);\r\n const body = {\r\n id: payment.id,\r\n cardholder: payment.cardholder,\r\n sale_token: payment.sale_token,\r\n code: payment.code,\r\n creditCardHash: payment.creditCardHash,\r\n cardMonthExpiration: payment.cardMonthExpiration,\r\n cardYearExpiration: payment.cardYearExpiration,\r\n cardSecurityCode: payment.cardSecurityCode,\r\n idVen: payment.idVen,\r\n storeId: payment.storeId,\r\n data: payment.data\r\n }\r\n\r\n return this.httpClient.post<ResponseApi>(this.normalizeUrl(url) + '/payment', body, { headers: this.authHeaders });\r\n }\r\n\r\n private _setAuthHeaders(access_token: string) {\r\n const userToken = 'Bearer ' + access_token;\r\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\r\n }\r\n}","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit {\n\n modalVisible: boolean = false;\n verificationCode: string = '';\n\n @Output() codeVerified = new EventEmitter<string>();\n\n constructor() { }\n\n ngOnInit() {\n this.verificationCode = ''; \n }\n\n openModal() {\n this.verificationCode = '';\n this.modalVisible = true;\n document.body.style.overflow = '';\n }\n\n closeModal() {\n this.modalVisible = false;\n document.body.style.overflow = 'hidden';\n }\n\n onSubmitCode() {\n if (this.verificationCode) {\n this.codeVerified.emit(this.verificationCode); // Emitir el código ingresado\n this.modalVisible = false; \n } else {\n alert('Por favor ingrese el código.');\n }\n }\n\n onVerificationCodeChange() {\n if (isNaN(+this.verificationCode)) {\n setTimeout(() => {\n this.verificationCode = '';\n });\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { PaymentResult, ResponseApi, InitPayment, Payment } from '../models/go-cuotas.models';\nimport { GoCuotasApiService } from '../services/go-cuotas.api.service';\nimport { ModalComponent } from './modal/modal.component';\n\n@Component({\n selector: 'lib-go-cuotas',\n templateUrl: './go-cuotas.component.html',\n styleUrls: ['./go-cuotas.component.scss']\n})\nexport class GoCuotasComponent implements OnInit {\n\n @Input() accessToken!: string;\n @Input() gcUrlApi!: string;\n @Input() vkUrlApi!: string;\n @Input() paymentAmount!: string;\n @Input() logoGC!: string;\n @Input() idVen!: number;\n @Input() storeId!: string;\n @Input() data!: string;\n @Output() statusPay = new EventEmitter<PaymentResult>();\n\n defaultName!: string;\n mailText!: string;\n codAreaText!: string;\n telText!: string;\n cardText!: string;\n yearText!: string;\n monthText!: string;\n dniText!: string;\n cvcText!: string;\n installments!: number;\n defaultDocType!: string;\n currentInstallments!: any[];\n totalAmount!: number;\n OinitPayment!: InitPayment;\n Opayment!: Payment;\n sale_token: string = '';\n error_message: string = '';\n paymentCompleted: boolean = false; \n loadingMessage: string = 'Iniciando el pago...';\n paymentStatus = 'unsubmitted';\n\n disabled = false;\n disabledSelect = false;\n submitted = false;\n isLoading: boolean = false;\n hasError: boolean = false;\n\n // accessToken: string = '2569793-51e1725c-9334-4ea2-ada0-b0c87187443c';\n // url: string = 'https://sandbox.gocuotas.com/api/full_sale/v1/';\n\n paymentResult: PaymentResult = { success: false, paymentId: '', integrator: 'GOCUOTAS' };\n\n @ViewChild('f', { static: false }) checkOutForm!: NgForm;\n @ViewChild(ModalComponent, {static: false}) modal!: ModalComponent;\n\n constructor(\n private goCuotasApiService: GoCuotasApiService\n ) { }\n\n ngOnInit() {\n this.defaultDocType = '';\n this.installments = 0;\n this.currentInstallments = [\n { value: 2, label: '2 Cuotas' },\n { value: 3, label: '3 Cuotas' },\n { value: 4, label: '4 Cuotas' }\n ]; // Opciones para \"Cantidad de cuotas\"\n\n this.totalAmount = Number(this.paymentAmount);\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n this.submitted = true;\n \n if (!this.checkOutForm.valid) { return; }\n\n this.isLoading = true;\n this.paymentCompleted = false;\n this.loadingMessage = 'Iniciando el pago...';\n this.paymentResult = { success: false, paymentId: '', integrator: 'GOCUOTAS' };\n\n \n this.OinitPayment = {\n amount: Number(this.paymentAmount) * 100,\n areaCode: this.codAreaText,\n installments: this.installments, \n documentNumber: this.dniText,\n phoneNumber: this.telText,\n email: this.mailText.toLowerCase(),\n cardholder: this.defaultName,\n creditCardHash: this.cardText,\n idVen: this.idVen,\n storeId: this.storeId,\n data: this.data\n }; \n\n this.initPayment();\n }\n\n initPayment() {\n this.isLoading = true;\n this.loadingMessage = 'Enviando código...';\n\n this.goCuotasApiService.initPayment(this.accessToken, this.vkUrlApi, this.OinitPayment)\n .subscribe({\n next: (v) => this.initPaymentResponseHandler(v),\n error: (v) => this.ResponseHandlerError(v)\n })\n }\n\n private initPaymentResponseHandler(response: ResponseApi) {\n if(!response.success) {\n this.error_message = response.errorsMessages[0];\n this.statusPay.emit(this.paymentResult);\n this.disabled = true;\n this.disabledSelect = true;\n\n return;\n }\n\n this.Opayment = {\n id: response.data.id,\n cardholder: this.defaultName,\n sale_token: response.data.response.sale_token,\n creditCardHash: this.cardText,\n cardMonthExpiration: Number(this.monthText),\n cardYearExpiration: Number(this.yearText),\n cardSecurityCode: this.cvcText,\n idVen: this.idVen,\n storeId: this.storeId,\n data: this.data\n };\n\n this.isLoading = false;\n this.disabled = true;\n this.disabledSelect = true;\n this.modal.openModal();\n this.paymentStatus = 'sentCode';\n }\n\n onCodeSent(code: string) {\n this.isLoading = true;\n this.loadingMessage = 'Procesando pago...';\n \n this.Opayment.code = Number(code);\n \n if(code !== null){\n this.finishPayment();\n }\n }\n\n public finishPayment() {\n this.paymentStatus = 'processing';\n\n this.goCuotasApiService.payment(this.accessToken, this.vkUrlApi, this.Opayment)\n .subscribe({\n next: (v) => this.FinishPaymentResponseHandler(v), \n error: (v) => this.ResponseHandlerError(v)\n });\n }\n\n private ResponseHandlerError(response: any) {\n this.paymentStatus = 'error';\n this.disabled = true;\n this.disabledSelect = true;\n this.statusPay.emit(this.paymentResult);\n\n if(!response.ok && response.error === null && response.status === 500){\n this.error_message = \"Error en el servidor. Vuelva a intentar más tarde.\";\n this.isLoading = false;\n this.hasError = true; \n\n return;\n }\n\n this.error_message = response.error.errorsMessages[0];\n this.isLoading = false;\n this.hasError = true; \n }\n\n private FinishPaymentResponseHandler(response: ResponseApi){\n this.paymentStatus = 'success';\n\n if(!response.success) {\n this.error_message = response.errorsMessages[0];\n this.statusPay.emit(this.paymentResult);\n\n return;\n } \n\n this.Opayment.paymentId = response.data.paymentId\n this.paymentResult = { success: true, paymentId: String(this.Opayment.paymentId) , integrator: 'GOGUOTAS' };\n this.statusPay.emit(this.paymentResult);\n this.loadingMessage = '¡Pago procesado correctamente!';\n this.paymentCompleted = true; \n }\n\n restartForm() {\n this.hasError = false;\n this.submitted = false;\n this.disabled = false;\n this.disabledSelect = false;\n this.paymentStatus = 'unsubmitted';\n this.checkOutForm.reset(); \n this.installments = 0;\n this.defaultDocType = '';\n }\n\n // Input controls\n onYearChange() {\n if (isNaN(+this.yearText)) { \n setTimeout(() => {\n this.yearText = '';\n });\n }\n }\n\n onMonthLostFocus() {\n if (+this.monthText > 0 && !isNaN(+this.monthText)) {\n if (this.monthText == '1') {\n this.monthText = '01';\n }\n }\n }\n\n onMonthChange() {\n if (+this.monthText >= 0 && +this.monthText < 13 && !isNaN(+this.monthText)) {\n switch (this.monthText) {\n case '2': {\n this.monthText = '02';\n break;\n }\n case '3': {\n this.monthText = '03';\n break;\n }\n case '4': {\n this.monthText = '04';\n break;\n }\n case '5': {\n this.monthText = '05';\n break;\n }\n case '6': {\n this.monthText = '06';\n break;\n }\n case '7': {\n this.monthText = '07';\n break;\n }\n case '8': {\n this.monthText = '08';\n break;\n }\n case '9': {\n this.monthText = '09';\n break;\n }\n }\n } else {\n setTimeout(() => {\n this.monthText = '';\n });\n }\n }\n\n onCodeChange() {\n if (isNaN(+this.cvcText)) {\n setTimeout(() => {\n this.cvcText = '';\n });\n }\n }\n\n onDniChange() {\n if (isNaN(+this.dniText)) {\n setTimeout(() => {\n this.dniText = '';\n });\n }\n }\n\n onMailChange() {\n if (!isNaN(+this.mailText)) {\n setTimeout(() => {\n this.mailText = '';\n });\n }\n }\n\n onCodAreaChange() {\n if (isNaN(+this.codAreaText)) {\n setTimeout(() => {\n this.codAreaText = '';\n });\n }\n }\n\n onTelChange() {\n if (isNaN(+this.telText)) {\n setTimeout(() => {\n this.telText = '';\n });\n }\n }\n\n onPayerNameChange() {\n if (!isNaN(+this.defaultName)) {\n setTimeout(() => {\n this.defaultName = '';\n });\n }\n }\n\n onCardChange() {\n if (isNaN(+this.cardText)) {\n setTimeout(() => {\n this.cardText = '';\n });\n }\n }\n\n onInstallmentsChange() {\n //console.log('cuotas seleccionadas' ,this.installments)\n }\n\n onPaste(): boolean {\n return false;\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GoCuotasComponent } from './components/go-cuotas.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { GoCuotasApiService } from './services/go-cuotas.api.service';\nimport { ModalComponent } from './components/modal/modal.component';\n\nconst COMPONENTS = [\n GoCuotasComponent,\n ModalComponent\n]\n\n@NgModule({\n declarations: [\n COMPONENTS \n ],\n exports: [\n COMPONENTS\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule\n ],\n providers: [\n GoCuotasApiService\n ]\n})\nexport class GoCuotasModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CreatePaymentRequest, PaymentResponse } from '../models/modo.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModoApiService {\n private authHeaders: HttpHeaders | undefined;\n\n constructor(private http: HttpClient) { }\n\n createPayment(accessToken: string, paymentRequest: CreatePaymentRequest,apiUrl: string): Observable<PaymentResponse> {\n this._setAuthHeaders(accessToken); \n return this.http.post<PaymentResponse>(`${apiUrl}create-payment`, paymentRequest, { headers: this.authHeaders });\n }\n\n private _setAuthHeaders(accessToken: string) {\n const userToken = 'Bearer ' + accessToken;\n this.authHeaders = new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': userToken });\n }\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ModoApiService } from '../../services/modo-api.service';\nimport { CreatePaymentRequest } from '../../models/modo.models';\n\n// Declara la variable global del SDK\ndeclare var ModoSDK: any;\n\ntype ExecutionEnvironment = 'desktop' | 'mobile-browser' | 'native-app';\n\n@Component({\n selector: 'vk-modo-payment',\n templateUrl: './modo.component.html',\n styleUrls: ['./modo.component.scss']\n})\nexport class ModoComponent implements OnInit {\n\n @Input() accessToken!: string;\n @Input() storeId: string;\n @Input() idVen: number;\n @Input() data: string;\n @Input() amount: number;\n @Input() orderId: string;\n @Input() mobileAppEnv: string;\n @Input() vkUrlApi: string;\n @Input() callbackUrl: string;\n @Input() callbackUrlSuccess: string;\n @Output() statusPay = new EventEmitter<{ success: boolean; paymentId: string }>();\n\n isLoading = false;\n private executionEnv: ExecutionEnvironment = 'desktop';\n private devicePlatform: 'iOS' | 'Android' | undefined;\n private deeplinkURL: string;\n\n constructor(\n private modoApi: ModoApiService\n ) { }\n\n ngOnInit(): void {\n this.detectEnvironment();\n if (this.executionEnv === 'desktop') {\n this.loadModoScript();\n }\n }\n\n private detectEnvironment(): void {\n try {\n if (this.mobileAppEnv === 'iOS' || this.mobileAppEnv === 'Android') {\n this.executionEnv = 'native-app';\n this.devicePlatform = this.mobileAppEnv;\n console.log(`MODO Payment: Entorno detectado -> Nativo (${this.devicePlatform || 'app'})`);\n return;\n }\n } catch (error) {\n console.warn('MODO Payment: No se pudo leer los parámetros de la ruta. Se continuará con la detección por User Agent.');\n }\n\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\n if (/android/i.test(userAgent) || /iPad|iPhone|iPod/.test(userAgent)) {\n this.executionEnv = 'mobile-browser';\n console.log('MODO Payment: Entorno detectado -> Navegador Móvil');\n } else {\n this.executionEnv = 'desktop';\n console.log('MODO Payment: Entorno detectado -> Desktop');\n }\n }\n\n async startModoPayment(): Promise<void> {\n this.isLoading = true;\n\n try {\n const initialData = await this.createModoPayment();\n this.deeplinkURL = this.createDeeplinkURL(initialData);\n switch (this.executionEnv) {\n case 'native-app':\n // Llama a la función nativa para abrir en un navegador externo\n this.openOnNativeNavigator(this.deeplinkURL);\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n break;\n case 'mobile-browser':\n // Abre el deeplink en una nueva pestaña\n window.open(this.deeplinkURL, '_blank');\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n break;\n case 'desktop':\n default:\n // Abrir el modal del SDK\n this.initModoSdkModal(initialData);\n break;\n }\n\n \n } catch (error) {\n this.isLoading = false;\n this.statusPay.emit({ success: false, paymentId: '' });\n console.error(\"Error al iniciar el pago con MODO\", error);\n }\n }\n\n private createDeeplinkURL(initialData: { qrString: string; checkoutId: string; deeplink: string }): string{\n return initialData.deeplink + '?qr=' + initialData.qrString + \n '&callback=' + this.callbackUrl + '&callbackSuccess='+ this.callbackUrlSuccess \n +'&paymentRequestId=' + initialData.checkoutId;\n }\n\n private openOnNativeNavigator(url: string): void {\n try {\n if (this.devicePlatform === 'iOS') {\n (window as any).webkit.messageHandlers.externalURL.postMessage(url);\n } else if (this.devicePlatform === 'Android') {\n (window as any).externalURL.postMessage(url);\n } else {\n // Fallback si por alguna razón no se detectó la plataforma pero sí el entorno nativo\n window.open(url, '_blank');\n }\n } catch (e) {\n console.error('Error al intentar invocar el message handler nativo:', e);\n }\n }\n\n private initModoSdkModal(initialData: { qrString: string; checkoutId: string; deeplink: string }): void {\n\n const modalObject = {\n version: '2',\n qrString: initialData.qrString,\n checkoutId: initialData.checkoutId,\n deeplink: {\n url: initialData.deeplink,\n callbackURL: this.callbackUrl,\n callbackURLSuccess: this.callbackUrlSuccess\n },\n\n callbackURL: this.callbackUrl,\n\n refreshData: () => this.createModoPayment(),\n\n onSuccess: () => {\n this.statusPay.emit({ success: true, paymentId: initialData.checkoutId });\n },\n onFailure: () => {\n this.statusPay.emit({ success: false, paymentId: initialData.checkoutId });\n },\n onCancel: () => {\n console.log('Pago cancelado por el usuario en el celular.');\n },\n onClose: () => {\n console.log('Modal de MODO cerrado.');\n },\n };\n\n // 3. Inicia el SDK de MODO\n ModoSDK.modoInitPayment(modalObject);\n\n }\n\n\n private async createModoPayment(): Promise<{ qrString: string; checkoutId: string; deeplink: string }> {\n const paymentRequest: CreatePaymentRequest = {\n amount: this.amount,\n orderId: this.orderId,\n storeId: this.storeId,\n idVen: this.idVen,\n data: this.data\n };\n\n const response = await this.modoApi.createPayment(this.accessToken, paymentRequest, this.vkUrlApi).toPromise();\n\n if (response.success && response.data) {\n return {\n qrString: response.data.qrString,\n checkoutId: response.data.internalPaymentId,\n deeplink: response.data.deeplink\n };\n } else {\n throw new Error('La respuesta de la API no fue exitosa.');\n }\n }\n\n private loadModoScript(): void {\n const scriptUrl = 'https://ecommerce-modal.modo.com.ar/bundle.js';\n if (!document.querySelector(`script[src=\"${scriptUrl}\"]`)) {\n const script = document.createElement('script');\n script.src = scriptUrl;\n document.body.appendChild(script);\n }\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ModoComponent } from './components/modo/modo.component';\n\n@NgModule({\n declarations: [\n ModoComponent\n ],\n imports: [\n CommonModule,\n HttpClientModule\n ],\n exports: [\n ModoComponent\n ]\n})\nexport class ModoModule { }","import { NgModule } from '@angular/core';\n\nimport { MercadopagoModule } from './mercadopago/mercadopago.module';\nimport { PaypalModule } from './paypal/paypal.module';\nimport { SpsDecidirModule } from './sps-decidir/sps-decidir.module';\nimport { GoCuotasModule } from './go-cuotas/go-cuotas.module';\nimport { ModoModule } from './modo/modo.module';\n\nconst LIB_MODULES = [\n MercadopagoModule,\n SpsDecidirModule,\n PaypalModule,\n GoCuotasModule,\n ModoModule\n];\n\n@NgModule({\n imports: LIB_MODULES,\n exports: LIB_MODULES\n})\nexport class VkPaymentsModule { }\n"],"names":["tslib_1.__values","COMPONENTS"],"mappings":"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,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ;gBAChC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU;gBAClC,GAAG,CAAC,SAA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"}