rebill 1.17.11-beta.3 → 1.17.11-beta.4
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.
- package/dist/cjs/apm-checkout.apm-download.bank-transfer.boleto-payment.qr-code.rebill-bank-selector.rebill-processing-payment.reference-code.user-information-static.entry.cjs.js.map +1 -1
- package/dist/cjs/apm-checkout_9.cjs.entry.js +6 -5
- package/dist/cjs/card-fields-wrapper_16.cjs.entry.js +1 -1
- package/dist/cjs/collapsible-card_3.cjs.entry.js +1 -1
- package/dist/cjs/{document-validations-C8UjjNhZ.js → document-validations-Z81JjRlc.js} +3 -3
- package/dist/cjs/{document-validations-C8UjjNhZ.js.map → document-validations-Z81JjRlc.js.map} +1 -1
- package/dist/cjs/{getRequiredFieldsRenewal-pWidfDy-.js → getRequiredFieldsRenewal-iVNnItVO.js} +4 -4
- package/dist/cjs/{getRequiredFieldsRenewal-pWidfDy-.js.map → getRequiredFieldsRenewal-iVNnItVO.js.map} +1 -1
- package/dist/cjs/index-CoibgVZr.js.map +1 -1
- package/dist/cjs/{index-BtYNTtE0.js → index-Cr4YHGTh.js} +19 -9
- package/dist/cjs/{index-BtYNTtE0.js.map → index-Cr4YHGTh.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/otp-component_4.cjs.entry.js +1 -1
- package/dist/cjs/{payment-error-mapper-BeU70Lmg.js → payment-error-mapper-BmuF0unC.js} +3 -3
- package/dist/cjs/{payment-error-mapper-BeU70Lmg.js.map → payment-error-mapper-BmuF0unC.js.map} +1 -1
- package/dist/cjs/rebill-card_5.cjs.entry.js +1 -1
- package/dist/cjs/rebill-change-card.cjs.entry.js +3 -3
- package/dist/cjs/rebill-checkout.cjs.entry.js +4 -4
- package/dist/cjs/rebill-checkout.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-renewal.cjs.entry.js +5 -5
- package/dist/cjs/rebill-renewal.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-save-card.cjs.entry.js +2 -2
- package/dist/cjs/rebill.cjs.js +1 -1
- package/dist/collection/api/endpoints/checkout-status.js +2 -2
- package/dist/collection/api/endpoints/checkout-status.js.map +1 -1
- package/dist/collection/api/entities/checkout/endpoints.js +11 -6
- package/dist/collection/api/entities/checkout/endpoints.js.map +1 -1
- package/dist/collection/api/entities/discount-coupon/endpoints.js +5 -1
- package/dist/collection/api/entities/discount-coupon/endpoints.js.map +1 -1
- package/dist/collection/api/entities/sessions/endpoints.js +1 -0
- package/dist/collection/api/entities/sessions/endpoints.js.map +1 -1
- package/dist/collection/components/checkout/apm/apm-checkout/apm-checkout.js +22 -2
- package/dist/collection/components/checkout/apm/apm-checkout/apm-checkout.js.map +1 -1
- package/dist/collection/components/checkout/rebill-checkout.js +1 -1
- package/dist/collection/components/checkout/rebill-checkout.js.map +1 -1
- package/dist/collection/components/renewal/rebill-renewal.js +1 -1
- package/dist/collection/components/renewal/rebill-renewal.js.map +1 -1
- package/dist/components/apm-checkout.js +1 -1
- package/dist/components/card-fields-wrapper.js +1 -1
- package/dist/components/card-identification.js +1 -1
- package/dist/components/discount-coupon.js +1 -1
- package/dist/components/otp-component.js +1 -1
- package/dist/components/{p-DzFMsUhS.js → p-4wHgTXMq.js} +3 -3
- package/dist/components/{p-DzFMsUhS.js.map → p-4wHgTXMq.js.map} +1 -1
- package/dist/components/{p-D15gi19K.js → p-BKHbhAym.js} +3 -3
- package/dist/components/{p-D15gi19K.js.map → p-BKHbhAym.js.map} +1 -1
- package/dist/components/{p-DV_Hf-MZ.js → p-BLGnpJgC.js} +3 -3
- package/dist/components/{p-DV_Hf-MZ.js.map → p-BLGnpJgC.js.map} +1 -1
- package/dist/components/{p-HdrNOYzp.js → p-BUOwacuM.js} +4 -4
- package/dist/components/{p-HdrNOYzp.js.map → p-BUOwacuM.js.map} +1 -1
- package/dist/components/p-BjXn3y1C.js.map +1 -1
- package/dist/components/{p-CRkYcWbU.js → p-C-oDUAnL.js} +19 -9
- package/dist/components/p-C-oDUAnL.js.map +1 -0
- package/dist/components/{p-CfevM7TH.js → p-CQE5JPxn.js} +3 -3
- package/dist/components/{p-CfevM7TH.js.map → p-CQE5JPxn.js.map} +1 -1
- package/dist/components/{p-CFjTX4Kj.js → p-CTnXUsAS.js} +3 -3
- package/dist/components/{p-CFjTX4Kj.js.map → p-CTnXUsAS.js.map} +1 -1
- package/dist/components/{p-BLgaY5Rl.js → p-D-s9Akkh.js} +3 -3
- package/dist/components/{p-BLgaY5Rl.js.map → p-D-s9Akkh.js.map} +1 -1
- package/dist/components/{p-K7gEbFs9.js → p-DEIVEHgb.js} +4 -4
- package/dist/components/{p-K7gEbFs9.js.map → p-DEIVEHgb.js.map} +1 -1
- package/dist/components/{p-CKYrvblL.js → p-DZYoSeYr.js} +9 -7
- package/dist/components/p-DZYoSeYr.js.map +1 -0
- package/dist/components/{p-UNGTo3ey.js → p-Dcy4a8OT.js} +3 -3
- package/dist/components/{p-UNGTo3ey.js.map → p-Dcy4a8OT.js.map} +1 -1
- package/dist/components/{p-kkLlUjlL.js → p-DoLa70zc.js} +3 -3
- package/dist/components/{p-kkLlUjlL.js.map → p-DoLa70zc.js.map} +1 -1
- package/dist/components/{p-DvKC9Z8t.js → p-Ey8MeXq5.js} +3 -3
- package/dist/components/{p-DvKC9Z8t.js.map → p-Ey8MeXq5.js.map} +1 -1
- package/dist/components/{p-DESAJUBX.js → p-v7s32V8A.js} +3 -3
- package/dist/components/{p-DESAJUBX.js.map → p-v7s32V8A.js.map} +1 -1
- package/dist/components/payment-method-selector.js +1 -1
- package/dist/components/rebill-address.js +1 -1
- package/dist/components/rebill-change-card.js +9 -9
- package/dist/components/rebill-checkout.js +13 -13
- package/dist/components/rebill-checkout.js.map +1 -1
- package/dist/components/rebill-renewal.js +12 -12
- package/dist/components/rebill-renewal.js.map +1 -1
- package/dist/components/rebill-save-card.js +7 -7
- package/dist/components/rebill-summary.js +1 -1
- package/dist/components/renewal-summary.js +1 -1
- package/dist/components/user-information.js +1 -1
- package/dist/esm/apm-checkout.apm-download.bank-transfer.boleto-payment.qr-code.rebill-bank-selector.rebill-processing-payment.reference-code.user-information-static.entry.js.map +1 -1
- package/dist/esm/apm-checkout_9.entry.js +6 -5
- package/dist/esm/card-fields-wrapper_16.entry.js +1 -1
- package/dist/esm/collapsible-card_3.entry.js +1 -1
- package/dist/esm/{document-validations-CI9T5Y1i.js → document-validations-CXrUx5vg.js} +3 -3
- package/dist/esm/{document-validations-CI9T5Y1i.js.map → document-validations-CXrUx5vg.js.map} +1 -1
- package/dist/esm/{getRequiredFieldsRenewal-CITaA4Hg.js → getRequiredFieldsRenewal-CELoFAYa.js} +4 -4
- package/dist/esm/{getRequiredFieldsRenewal-CITaA4Hg.js.map → getRequiredFieldsRenewal-CELoFAYa.js.map} +1 -1
- package/dist/esm/{index-CEZYV6yx.js → index-DB0iNy_J.js} +19 -9
- package/dist/esm/{index-CEZYV6yx.js.map → index-DB0iNy_J.js.map} +1 -1
- package/dist/esm/index-UumHbCAL.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/otp-component_4.entry.js +1 -1
- package/dist/esm/{payment-error-mapper-DK2vYqAW.js → payment-error-mapper-Cjvpm3IU.js} +3 -3
- package/dist/esm/{payment-error-mapper-DK2vYqAW.js.map → payment-error-mapper-Cjvpm3IU.js.map} +1 -1
- package/dist/esm/rebill-card_5.entry.js +1 -1
- package/dist/esm/rebill-change-card.entry.js +3 -3
- package/dist/esm/rebill-checkout.entry.js +4 -4
- package/dist/esm/rebill-checkout.entry.js.map +1 -1
- package/dist/esm/rebill-renewal.entry.js +5 -5
- package/dist/esm/rebill-renewal.entry.js.map +1 -1
- package/dist/esm/rebill-save-card.entry.js +2 -2
- package/dist/esm/rebill.js +1 -1
- package/dist/rebill/apm-checkout.apm-download.bank-transfer.boleto-payment.qr-code.rebill-bank-selector.rebill-processing-payment.reference-code.user-information-static.entry.esm.js.map +1 -1
- package/dist/rebill/{p-e400f36f.entry.js → p-2b23ba16.entry.js} +2 -2
- package/dist/rebill/{p-fee8012b.entry.js → p-35fb7b68.entry.js} +2 -2
- package/dist/rebill/{p-3ced2ec1.entry.js → p-3a92c5ca.entry.js} +2 -2
- package/dist/rebill/{p-3ced2ec1.entry.js.map → p-3a92c5ca.entry.js.map} +1 -1
- package/dist/rebill/{p-d413568d.entry.js → p-4dccee9c.entry.js} +2 -2
- package/dist/rebill/{p-e4dd670b.entry.js → p-6b4e9407.entry.js} +2 -2
- package/dist/rebill/{p-d77ee123.entry.js → p-75780b4b.entry.js} +2 -2
- package/dist/rebill/p-79dd990d.entry.js +2 -0
- package/dist/rebill/p-79dd990d.entry.js.map +1 -0
- package/dist/rebill/{p-e446072d.entry.js → p-7ff024b2.entry.js} +2 -2
- package/dist/rebill/{p-e446072d.entry.js.map → p-7ff024b2.entry.js.map} +1 -1
- package/dist/rebill/{p-DY7W_txC.js → p-B-uiLhnM.js} +2 -2
- package/dist/rebill/{p-DY7W_txC.js.map → p-B-uiLhnM.js.map} +1 -1
- package/dist/rebill/{p-O0-yTDvf.js → p-BD-ica6g.js} +2 -2
- package/dist/rebill/{p-O0-yTDvf.js.map → p-BD-ica6g.js.map} +1 -1
- package/dist/rebill/{p-DxKsrygt.js → p-BLpBM1ei.js} +2 -2
- package/dist/rebill/{p-DxKsrygt.js.map → p-BLpBM1ei.js.map} +1 -1
- package/dist/rebill/p-DX9aMe0K.js +2 -0
- package/dist/rebill/{p-lAdqvV00.js.map → p-DX9aMe0K.js.map} +1 -1
- package/dist/rebill/p-UumHbCAL.js.map +1 -1
- package/dist/rebill/{p-750ea08c.entry.js → p-a26c0109.entry.js} +2 -2
- package/dist/rebill/rebill-checkout.entry.esm.js.map +1 -1
- package/dist/rebill/rebill-renewal.entry.esm.js.map +1 -1
- package/dist/rebill/rebill.esm.js +1 -1
- package/dist/types/api/endpoints/checkout-status.d.ts +1 -1
- package/dist/types/api/entities/checkout/endpoints.d.ts +1 -1
- package/dist/types/components/checkout/apm/apm-checkout/apm-checkout.d.ts +1 -0
- package/dist/types/components.d.ts +2 -0
- package/package.json +1 -1
- package/dist/components/p-CKYrvblL.js.map +0 -1
- package/dist/components/p-CRkYcWbU.js.map +0 -1
- package/dist/rebill/p-1ca8f7b3.entry.js +0 -2
- package/dist/rebill/p-1ca8f7b3.entry.js.map +0 -1
- package/dist/rebill/p-lAdqvV00.js +0 -2
- /package/dist/rebill/{p-e400f36f.entry.js.map → p-2b23ba16.entry.js.map} +0 -0
- /package/dist/rebill/{p-fee8012b.entry.js.map → p-35fb7b68.entry.js.map} +0 -0
- /package/dist/rebill/{p-d413568d.entry.js.map → p-4dccee9c.entry.js.map} +0 -0
- /package/dist/rebill/{p-e4dd670b.entry.js.map → p-6b4e9407.entry.js.map} +0 -0
- /package/dist/rebill/{p-d77ee123.entry.js.map → p-75780b4b.entry.js.map} +0 -0
- /package/dist/rebill/{p-750ea08c.entry.js.map → p-a26c0109.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apm-checkout.apm-download.bank-transfer.boleto-payment.qr-code.rebill-bank-selector.rebill-processing-payment.reference-code.user-information-static.entry.cjs.js","sources":["src/api/endpoints/checkout-status.ts","src/components/checkout/apm/apm-checkout/apm-checkout.css?tag=apm-checkout","src/components/checkout/apm/apm-checkout/apm-checkout.tsx","src/components/checkout/processing-payment/processing-payment.css?tag=rebill-processing-payment","src/components/checkout/processing-payment/processing-payment.tsx","src/components/checkout/apm/boleto/boleto.css?tag=boleto-payment","src/components/checkout/apm/boleto/boleto.tsx","src/components/renewal/user-information-static/user-information-static.css?tag=user-information-static","src/components/renewal/user-information-static/user-information-static.tsx","src/components/checkout/apm/apm-download/apm-download.css?tag=apm-download","src/components/checkout/apm/apm-download/apm-download.tsx","src/components/checkout/apm/bank-transfer/bank-transfer.css?tag=bank-transfer","src/components/checkout/apm/bank-transfer/bank-transfer.tsx","src/components/checkout/apm/qr-code/qr-code.css?tag=qr-code","src/components/checkout/apm/qr-code/qr-code.tsx","src/components/checkout/bank-selector/bank-selector.css?tag=rebill-bank-selector","src/components/checkout/bank-selector/bank-selector.tsx","src/components/checkout/apm/reference-code/reference-code.css?tag=reference-code","src/components/checkout/apm/reference-code/reference-code.tsx"],"sourcesContent":["import { STATUS_REQ_CHECKOUT_APM } from '../../models/enums/status-req-checkout-apm.enum';\nimport { api } from '../index';\n\n/**\n * Gets the checkout request status by request ID\n * @param reqId - The checkout request ID\n * @param bearerToken - The bearer token for authentication\n * @returns Promise with checkout status information\n */\nexport const getCheckoutRequest = async (reqId: string, bearerToken: string) => {\n try {\n const response = await api.checkout.getCheckoutRequestPaymentAPM(reqId, bearerToken);\n return response.data;\n } catch (error) {\n throw error;\n }\n};\n\n/**\n * GET endpoint handler for checkout status\n * @param reqId - The checkout request ID from URL parameters\n * @param bearerToken - The bearer token for authentication\n * @returns Response with checkout status, completion status, and data\n */\nexport const GET = async (reqId: string, bearerToken?: string) => {\n try {\n if (!reqId || !bearerToken) {\n return {};\n }\n\n const checkoutRequest = await getCheckoutRequest(reqId, bearerToken);\n\n const response = {\n status: checkoutRequest.status,\n isCompleted:\n checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.APPROVED ||\n checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.REJECTED,\n isPending: checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.PENDING_CUSTOMER_CHARGE,\n data: checkoutRequest,\n };\n\n return {\n status: 200,\n body: response,\n };\n } catch (error) {\n console.error('Error fetching checkout status:', error);\n return {\n status: 500,\n body: { error: 'Failed to fetch checkout status' },\n };\n }\n};\n",".apm-checkout {\n display: flex;\n flex-direction: column;\n}\n\n.apm-content {\n margin-bottom: 0;\n}\n\n.apm-content .reference-code,\n.apm-content .qr-code,\n.apm-content .boleto-payment {\n margin-top: 0;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\n\n.apm-actions {\n display: flex;\n gap: 12px;\n padding: 20px 0;\n}\n\n.apm-actions rebill-button,\n.apm-actions payment-button {\n flex: 1;\n width: 100%;\n}\n\n.apm-actions rebill-button .button-content,\n.apm-actions payment-button .button-content {\n display: flex;\n align-items: center;\n gap: 12px;\n overflow: hidden;\n}\n\n.apm-actions rebill-button .button-content rebill-icon {\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n flex-shrink: 0;\n}\n\n/* Redirect message styles */\n.apm-checkout.redirect-message {\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.redirect-content {\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-background-right);\n padding: 16px;\n}\n\n.redirect-content .payment-method-name {\n font-weight: 600 !important;\n}\n\n/* Bank transfer data container */\n.bank-transfer-data-container {\n margin-top: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Bank transfer data styles */\n.bank-transfer-data {\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n}\n\n.instruction-step {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.instruction-step:last-child {\n margin-bottom: 0;\n}\n\n.step-number {\n background: var(--rebill-color-background-right);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.step-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.instruction-text {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n\n.instruction-content {\n flex: 1;\n}\n\n.bank-data-item {\n display: flex;\n gap: 8px;\n align-items: center;\n\n border-bottom: none;\n}\n\n.value-with-copy {\n display: flex;\n align-items: center;\n gap: 2px;\n}\n\n/* Bank transfer simple styles */\n.bank-transfer-simple-container {\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n}\n\n.instruction-text {\n margin-bottom: 16px;\n}\n\n.data-section {\n margin-bottom: 16px;\n}\n\n.bank-transfer-simple {\n margin-bottom: 16px;\n}\n\n.bank-transfer-simple:last-child {\n margin-bottom: 0;\n}\n\n.bank-data-simple {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.bank-data-item-simple {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 0;\n}\n\n/* Mobile responsive */\n@media (max-width: 768px) {\n .apm-actions {\n flex-direction: column;\n gap: 12px;\n padding: 16px 0;\n }\n\n .apm-actions rebill-button {\n width: 100%;\n flex: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { CheckoutRequestPayment } from '../../../../api/entities/checkout/types';\nimport { getCheckoutRequest } from '../../../../api/endpoints/checkout-status';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../../models/enums/payment-methods.enum';\nimport { STATUS_REQ_CHECKOUT_APM } from '../../../../models/enums/status-req-checkout-apm.enum';\nimport { getBoletoInstructionsAsPaymentInstructions } from '../../../../utils/barcode-instructions';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\nimport { PaymentMethodMapper } from '../../../../utils/payment-method-mapper';\nimport { APMDownloadData } from '../apm-download/apm-download';\n\n// Constants\nconst DEFAULT_REDIRECT_TIMEOUT = 5000; // 5 seconds\nconst POLLING_INTERVAL = 3000; // 3 seconds\n\nconst MAX_POLLING_ATTEMPTS = 300; // 15 minutes max (300 attempts * 3 seconds = 900 seconds = 15 minutes)\n\n@Component({\n tag: 'apm-checkout',\n styleUrl: 'apm-checkout.css',\n shadow: false,\n})\nexport class APMCheckout {\n @Element() el: HTMLElement;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() referenceId?: string;\n @Prop() qrCodeData?: string;\n @Prop() code?: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() country?: string;\n @Prop() redirectUrl?: string;\n @Prop() timeToRedirect?: number = DEFAULT_REDIRECT_TIMEOUT;\n @Prop() checkoutRequestId?: string; // ID para hacer polling\n @Prop() bearerToken?: string;\n @Prop() bankTransferData?: any;\n @Prop() barcode?: string;\n @Prop() amount?: number;\n @Prop() currency?: string;\n\n @State() showRedirectMessage = false;\n @State() isPolling = false;\n @State() minutesLeft?: number; // Minutos restantes del contador\n @State() qrStartTime?: Date; // Hora de inicio del QR\n @State() downloadData?: APMDownloadData;\n\n @Event() paymentStatusChange: EventEmitter<{\n status: STATUS_REQ_CHECKOUT_APM;\n isCompleted: boolean;\n data: any;\n payment?: CheckoutRequestPayment | null;\n }>;\n\n private redirectTimeoutId: number | undefined;\n private pollingIntervalId: number | undefined;\n private pollingDelayTimeoutId: NodeJS.Timeout | undefined;\n private pollingAttempts = 0;\n\n componentWillLoad() {\n this.qrStartTime = new Date();\n this.downloadData = this.generateDownloadData();\n\n if (this.redirectUrl) {\n this.handleRedirect();\n }\n\n if (this.checkoutRequestId && (this.qrCodeData || this.bankTransferData)) {\n this.startPolling();\n }\n }\n\n componentDidLoad() {\n const paymentButton = this.el?.querySelector('payment-button');\n if (paymentButton) {\n paymentButton.addEventListener('submit', this.handleRedirect);\n }\n }\n\n disconnectedCallback() {\n if (this.redirectTimeoutId) {\n clearTimeout(this.redirectTimeoutId);\n this.redirectTimeoutId = undefined;\n }\n if (this.pollingDelayTimeoutId) {\n clearTimeout(this.pollingDelayTimeoutId);\n this.pollingDelayTimeoutId = undefined;\n }\n\n if (this.pollingIntervalId) {\n clearInterval(this.pollingIntervalId);\n this.pollingIntervalId = undefined;\n }\n\n const paymentButton = this.el?.querySelector('payment-button');\n if (paymentButton) {\n paymentButton.removeEventListener('submit', this.handleRedirect);\n }\n }\n\n private handleRedirect = () => {\n if (this.redirectTimeoutId) {\n clearTimeout(this.redirectTimeoutId);\n }\n\n this.showRedirectMessage = true;\n\n this.redirectTimeoutId = window.setTimeout(() => {\n window.open(this.redirectUrl, '_self');\n }, this.timeToRedirect);\n };\n\n private handleViewBranches = () => {\n window.open('https://www.pagofacil.com.ar/', '_blank');\n };\n\n private handleTimeUpdate = (event: CustomEvent<number>) => {\n this.minutesLeft = event.detail;\n };\n\n private startPolling = () => {\n if ((!this.qrCodeData && !this.bankTransferData) || !this.checkoutRequestId || this.isPolling) {\n return;\n }\n\n this.isPolling = true;\n this.pollingAttempts = 0;\n\n this.pollingIntervalId = window.setInterval(() => {\n this.checkPaymentStatus();\n }, POLLING_INTERVAL);\n };\n\n private stopPolling = () => {\n if (this.pollingIntervalId) {\n clearInterval(this.pollingIntervalId);\n this.pollingIntervalId = undefined;\n }\n this.isPolling = false;\n };\n\n private checkPaymentStatus = async () => {\n if (!this.checkoutRequestId) {\n return;\n }\n\n try {\n this.pollingAttempts++;\n\n const response = await getCheckoutRequest(this.checkoutRequestId, this.bearerToken);\n const isCompleted =\n response.status === STATUS_REQ_CHECKOUT_APM.APPROVED ||\n response.status === STATUS_REQ_CHECKOUT_APM.REJECTED;\n this.paymentStatusChange.emit({\n status: response.status,\n isCompleted: isCompleted,\n data: response.data,\n payment: response.payment,\n });\n\n if (isCompleted) {\n this.stopPolling();\n return;\n }\n\n if (this.pollingAttempts >= MAX_POLLING_ATTEMPTS) {\n this.stopPolling();\n return;\n }\n } catch (error) {\n console.error('Error checking payment status:', error);\n }\n };\n\n private generateDownloadData(): APMDownloadData {\n const downloadData: APMDownloadData = {\n paymentMethod: this.paymentMethod,\n referenceId: this.referenceId,\n providerName: this.providerName,\n expirationDate: this.expirationDate,\n country: this.country,\n minutesLeft: this.minutesLeft,\n amount: this.amount,\n currency: this.currency,\n };\n\n if (this.bankTransferData) {\n downloadData.bankTransferData = {\n bankName: this.bankTransferData.bankName,\n accountNumber: this.bankTransferData.account || this.bankTransferData.bbvAccountNumber,\n reference: this.bankTransferData.reference,\n clabe: this.bankTransferData.account || this.bankTransferData.clabe,\n destinationBank: this.bankTransferData.bankName,\n paymentReference: this.bankTransferData.reference,\n instructions: this.bankTransferData.instructions,\n };\n } else if (this.qrCodeData) {\n downloadData.qrCodeData = this.qrCodeData;\n } else if (this.barcode) {\n downloadData.barcode = this.barcode;\n }\n\n return downloadData;\n }\n\n private renderResponse() {\n // If redirectUrl is provided, show redirect message\n if (this.redirectUrl && this.showRedirectMessage) {\n const paymentMethodEnum = PaymentMethodMapper.mapToAPMPaymentMethod(\n this.paymentMethod,\n this.country,\n );\n const paymentMethodName = PaymentMethodMapper.getDisplayName(paymentMethodEnum);\n\n return (\n <div class=\"redirect-content\">\n <div class=\"redirect-text\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.GREY_300}>\n {this.currency === 'CLP' ? (\n I18nService.translate('apmCheckout.redirectMessageCLP')\n ) : (\n <span>\n {I18nService.translate('apmCheckout.redirectMessagePrefix')}{' '}\n <rebill-typography variant=\"overline\" color={COLORS_ENUM.GREY_300}>\n {paymentMethodName}\n </rebill-typography>{' '}\n {I18nService.translate('apmCheckout.redirectMessageSuffix')}\n </span>\n )}\n </rebill-typography>\n </div>\n </div>\n );\n }\n\n // If barcode is provided (for boleto), show boleto component\n if (this.barcode) {\n // Always use static boleto instructions for all languages\n const instructions = getBoletoInstructionsAsPaymentInstructions();\n\n return (\n <boleto-payment\n barcode={this.barcode}\n referenceId={this.referenceId}\n providerName={this.providerName}\n expirationDate={this.expirationDate}\n instructions={instructions}\n />\n );\n }\n\n // If referenceId is provided, show reference code component\n if (this.referenceId) {\n return <reference-code referenceId={this.referenceId} expirationDate={this.expirationDate} />;\n }\n\n // If qrCodeData is provided, show QR code component\n if (this.qrCodeData) {\n return (\n <qr-code\n qrCodeData={this.qrCodeData}\n code={this.code}\n providerName={this.providerName}\n expirationDate={this.expirationDate}\n paymentMethod={this.paymentMethod}\n onTimeUpdate={this.handleTimeUpdate}\n />\n );\n }\n\n if (this.bankTransferData) {\n return <bank-transfer bankTransferData={this.bankTransferData} />;\n }\n\n // Fallback - shouldn't happen in normal flow\n return null;\n }\n\n render() {\n const isRedirectMessage = this.redirectUrl && this.showRedirectMessage;\n const isCashPayment = this.paymentMethod === PAYMENT_METHOD_ENUM.CASH;\n const isPagoFacil = isCashPayment && this.country === 'AR';\n\n return (\n <div class={`apm-checkout ${isRedirectMessage ? 'redirect-message' : ''}`}>\n <div class=\"apm-content\">{this.renderResponse()}</div>\n\n <div class=\"apm-actions\">\n {!isRedirectMessage && isPagoFacil && (\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme=\"primary\"\n onClick={this.handleViewBranches}\n >\n <span class=\"button-content\">\n <span>{I18nService.translate('apmCheckout.viewBranches')}</span>\n <rebill-icon name=\"square-arrow-top-right\" />\n </span>\n </rebill-button>\n )}\n\n {!isRedirectMessage && <apm-download data={this.downloadData} />}\n </div>\n </div>\n );\n }\n}\n","/* Lottie Animation */\n.lottie-container {\n margin-bottom: 2rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lottie-animation {\n width: 166px;\n height: 165px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n/* Text Content */\n.text-content {\n margin-bottom: 2rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n/* Security Badge */\n.security-badge {\n width: 100%;\n max-width: 450px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #ebedef;\n border-radius: 8px;\n box-sizing: border-box;\n}\n\n.lock-icon {\n width: 16px;\n height: 16px;\n color: var(--rebill-color-text-secondary, #6b7280);\n}\n\n/* Animation */\n@keyframes pulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n}\n\n.contact-info {\n text-align: left;\n}\n\n/* Responsive Styles */\n@media (max-width: 1024px) {\n .security-badge {\n width: 100%;\n max-width: 100%;\n }\n\n .lottie-animation {\n width: 166px;\n height: 165px;\n }\n\n .text-content {\n gap: 12px;\n }\n}\n\n@media (max-width: 767px) {\n .processing-container {\n padding: 0 16px;\n }\n}\n\n.processing-container {\n width: 100%;\n max-width: 100%;\n overflow-x: hidden;\n box-sizing: border-box;\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\nimport { getAssetURL } from '../../../utils/assets';\nimport { BREAKPOINT_ENUM, getBreakpoint } from '../../../utils/breakpoint';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport '../../shared/card-icon/card-icon';\n\n@Component({\n tag: 'rebill-processing-payment',\n styleUrl: 'processing-payment.css',\n shadow: false,\n})\nexport class ProcessingPayment {\n @Prop() titleKey: string = 'processing.processingTitle';\n @Prop() subtitleKey: string = 'processing.processingSubtitle';\n @State() currentLocale: string = sessionState.currentLocale;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() loaderProgress: number = 0;\n @State() isLoadingLottie: boolean = true;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n private progressInterval?: number;\n private lottieContainer?: HTMLElement;\n private lottieAnimation?: any;\n\n componentWillLoad() {\n this.breakpoint = getBreakpoint(window.innerWidth);\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.currentLocale = sessionState.currentLocale;\n });\n }\n\n componentDidLoad() {\n window.addEventListener('resize', this.handleResize);\n this.loadLottieAnimation();\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n window.removeEventListener('resize', this.handleResize);\n this.stopLoaderAnimation();\n }\n\n private handleResize = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n private loadLottieAnimation = async () => {\n try {\n const lottie = await import('lottie-web');\n const animationData = await fetch(getAssetURL(`loader-card-v2.json`));\n const animationJson = await animationData.json();\n\n if (this.lottieContainer) {\n this.lottieAnimation = lottie.default.loadAnimation({\n container: this.lottieContainer,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: animationJson,\n });\n } else {\n this.startLoaderAnimation();\n }\n } catch (error) {\n this.startLoaderAnimation();\n }\n };\n\n private startLoaderAnimation = () => {\n const duration = 2000;\n const interval = 50; // Update every 50ms\n const increment = (interval / duration) * 100;\n\n this.progressInterval = window.setInterval(() => {\n this.loaderProgress = Math.min(this.loaderProgress + increment, 100);\n if (this.loaderProgress >= 100) {\n this.stopLoaderAnimation();\n }\n }, interval);\n };\n\n private stopLoaderAnimation = () => {\n if (this.progressInterval) {\n clearInterval(this.progressInterval);\n this.progressInterval = undefined;\n }\n if (this.lottieAnimation) {\n this.lottieAnimation.destroy();\n this.lottieAnimation = undefined;\n }\n };\n\n render() {\n return (\n <rebill-checkout-single-column>\n <div class=\"processing-container\">\n {/* Lottie Animation */}\n <div class=\"lottie-container\">\n <div ref={el => (this.lottieContainer = el)} class=\"lottie-animation\"></div>\n </div>\n <div class=\"text-content\">\n <rebill-typography variant=\"h3\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate(this.titleKey)}\n </rebill-typography>\n <rebill-typography variant=\"subtitle-bold\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate(this.subtitleKey)}\n </rebill-typography>\n </div>\n\n <rebill-alert\n type=\"secure\"\n variant=\"variant-secure\"\n icon=\"lock-outline\"\n message={I18nService.translate('otp.secureMessage')}\n />\n </div>\n </rebill-checkout-single-column>\n );\n }\n}\n",".boleto-payment {\n border: 1px solid var(--rebill-color-border, #f4f5f6);\n border-radius: 8px;\n background: var(--rebill-color-background, #ffffff);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.boleto-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-left);\n border-bottom: 1px solid var(--rebill-color-background-right);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-section rebill-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary, #3b4049);\n line-height: 24px;\n text-align: center;\n}\n\n.boleto-content {\n padding: 16px 0px 16px 0px;\n background: #ffffff !important;\n}\n\n.barcode-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n align-items: center;\n width: 100%;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.barcode-number {\n font-size: 12px;\n font-weight: 500;\n color: var(--rebill-color-text-primary, #000000);\n text-align: center;\n line-height: 24px;\n margin: 0;\n word-break: break-all;\n font-family:\n 'SF Pro Display',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.barcode-image-container {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.barcode-image {\n max-width: 100%;\n height: auto;\n display: block;\n}\n\n.copy-button {\n width: 100%;\n margin: 0;\n padding: 8px 16px;\n background: var(--rebill-color-background, #ffffff);\n border: 1px solid var(--rebill-color-border, #f4f5f6);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n font-family: var(--rebill-font-family);\n box-sizing: border-box;\n}\n\n.copy-button:hover {\n background: var(--rebill-color-background-secondary, #fafafa);\n}\n\n.copy-button-text {\n font-size: 14px;\n font-weight: 500;\n color: var(--rebill-color-primary-dark-blue, #001131);\n line-height: 1;\n display: flex;\n align-items: center;\n font-family:\n 'SF Pro Display',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n}\n\n.copy-button rebill-icon {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copy-button svg {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle {\n width: 100%;\n padding: 8px 16px;\n background: none;\n border: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n font-size: 14px;\n font-weight: 400;\n color: var(--rebill-color-text-primary, #000000);\n transition: background-color 0.2s ease;\n font-family:\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n letter-spacing: 0.14px;\n line-height: 26px;\n}\n\n.instructions-toggle:hover {\n background: rgba(174, 174, 174, 0.1);\n}\n\n.instructions-toggle rebill-icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n color: rgba(174, 174, 174, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.instructions-toggle .chevron-open {\n transform: rotate(180deg);\n}\n\n.instructions-toggle .chevron-closed {\n transform: rotate(0deg);\n}\n\n.instructions-content {\n padding: 0 16px;\n background: var(--rebill-color-background);\n max-height: 0;\n overflow: hidden;\n transition:\n max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.instructions-content.open {\n max-height: 2000px;\n padding: 16px;\n}\n\n.instructions-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n padding: 0;\n}\n\n.instruction-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n}\n\n.instruction-number {\n background: var(--rebill-color-background-right);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.instruction-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-primary, #000000);\n line-height: normal;\n margin: 0;\n flex: 1;\n font-family:\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n white-space: pre-wrap;\n}\n\n@media (max-width: 768px) {\n .boleto-content {\n padding: 16px;\n }\n\n .barcode-number {\n font-size: 12px;\n }\n\n .instructions-toggle {\n padding: 8px 16px;\n }\n\n .instructions-content {\n padding: 16px;\n }\n}\n","import { Component, Element, h, Prop, State } from '@stencil/core';\nimport JsBarcode from 'jsbarcode';\nimport { PaymentInstruction } from '../../../../api/entities/checkout/types';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { copyToClipboard } from '../../../../utils/clipboard';\n\n@Component({\n tag: 'boleto-payment',\n styleUrl: 'boleto.css',\n shadow: false,\n})\nexport class BoletoPayment {\n @Element() el: HTMLElement;\n\n @Prop() barcode: string;\n @Prop() referenceId?: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() instructions: PaymentInstruction[] = [];\n\n @State() showInstructions = true;\n @State() hasCopied = false;\n\n private toggleInstructions = () => {\n this.showInstructions = !this.showInstructions;\n };\n\n private getExpirationDate = (): string => {\n // Boleto payments always expire 7 days from now, regardless of prop\n // Calculate 7 days from now using milliseconds to avoid month rollover issues\n const now = new Date();\n const expirationDate = new Date(now);\n expirationDate.setTime(now.getTime() + 7 * 24 * 60 * 60 * 1000);\n\n // Return as ISO string\n return expirationDate.toISOString();\n };\n\n private formatExpirationDateTime = (dateString: string): string => {\n try {\n const date = new Date(dateString);\n // Check if date is valid\n if (isNaN(date.getTime())) {\n return dateString;\n }\n\n const currentLanguage = I18nService.getCurrentLanguage();\n const locale =\n currentLanguage === 'es' ? 'es-ES' : currentLanguage === 'pt' ? 'pt-BR' : 'en-US';\n\n // Format date using local timezone\n const formattedDate = date.toLocaleDateString(locale, {\n day: '2-digit',\n month: '2-digit',\n });\n\n const formattedTime = date.toLocaleTimeString(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${formattedDate} ${formattedTime}`;\n } catch (error) {\n return dateString;\n }\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const instruction = this.instructions.find(inst => inst.language === currentLanguage);\n const instructionText = instruction?.text || this.instructions[0]?.text || '';\n\n // Split by line breaks and filter out empty lines\n return instructionText.split('\\n').filter(line => line.trim().length > 0);\n };\n\n componentDidLoad() {\n this.generateBarcode();\n }\n\n componentDidUpdate() {\n this.generateBarcode();\n }\n\n private generateBarcode = () => {\n if (!this.barcode) return;\n\n const svgElement = this.el.querySelector('.barcode-image') as SVGSVGElement;\n if (!svgElement) return;\n\n try {\n JsBarcode(svgElement, this.barcode, {\n format: 'CODE128',\n displayValue: false, // Hide the text below the barcode\n width: 2,\n height: 60,\n margin: 0,\n });\n } catch (error) {\n console.error('Failed to generate barcode:', error);\n }\n };\n\n private handleCopyCode = async () => {\n if (!this.barcode) return;\n try {\n await copyToClipboard(this.barcode);\n this.hasCopied = true;\n setTimeout(() => {\n this.hasCopied = false;\n }, 2000);\n } catch (error) {\n console.error('Failed to copy barcode:', error);\n }\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n const currentLanguage = I18nService.getCurrentLanguage();\n const payBeforeText =\n currentLanguage === 'es'\n ? 'Pagar antes del'\n : currentLanguage === 'pt'\n ? 'Pagar antes de'\n : 'Pay before';\n\n return (\n <div class=\"boleto-payment\">\n {/* Header with expiration */}\n <div class=\"boleto-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {payBeforeText} {this.formatExpirationDateTime(this.getExpirationDate())}\n </span>\n </div>\n </div>\n\n {/* Barcode section */}\n <div class=\"boleto-content\">\n <div class=\"barcode-section\">\n {this.barcode && (\n <>\n <p class=\"barcode-number\">{this.barcode}</p>\n <div class=\"barcode-image-container\">\n <svg class=\"barcode-image\" aria-label=\"Boleto barcode\" />\n </div>\n <button class=\"copy-button\" onClick={this.handleCopyCode} type=\"button\">\n <span class=\"copy-button-text\">\n {I18nService.translate('qrCode.copyCode') || 'Copiar código'}\n </span>\n {this.hasCopied ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.62256 10.8855L8.24756 13.5418L14.3726 6.45844\"\n stroke=\"#35B093\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n ) : (\n <rebill-icon name=\"copy\" />\n )}\n </button>\n </>\n )}\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {this.instructions.length > 0 && (\n <div class=\"instructions-section\">\n <button\n class=\"instructions-toggle\"\n onClick={this.toggleInstructions}\n type=\"button\"\n aria-expanded={this.showInstructions.toString()}\n aria-controls=\"instructions-content\"\n >\n <span>\n {I18nService.translate('qrCode.instructionsLabel') || 'Ver instrucciones'}\n </span>\n <rebill-icon\n name=\"chevron-down\"\n class={this.showInstructions ? 'chevron-open' : 'chevron-closed'}\n />\n </button>\n\n <div\n class={`instructions-content ${this.showInstructions ? 'open' : ''}`}\n id=\"instructions-content\"\n role=\"region\"\n aria-labelledby=\"instructions-toggle\"\n >\n <div class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <div key={index} class=\"instruction-item\">\n <div class=\"instruction-number\">{index + 1}</div>\n <p class=\"instruction-text\">{line}</p>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n",".user-information-static {\n width: 100%;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n font-size: 14px;\n}\n\n.user-information-static.otp {\n flex-direction: column;\n gap: 12px;\n justify-content: flex-start;\n}\n.user-information-static-content.otp {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n}\n\n.user-information-static-content.otp rebill-button {\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\nexport interface UserInfoData {\n customerName: string;\n customerEmail: string;\n}\n\n@Component({\n tag: 'user-information-static',\n styleUrl: 'user-information-static.css',\n shadow: false,\n})\nexport class UserInformationStatic {\n @Prop() userInfo!: UserInfoData;\n @Prop() variant: 'renewal' | 'otp' = 'renewal';\n @Event() signOut: EventEmitter<boolean>;\n\n handleSignOut() {\n this.signOut.emit(false);\n }\n\n render() {\n return (\n <div class={`user-information-static ${this.variant}`}>\n <div class={`user-information-static-content ${this.variant}`}>\n <rebill-typography variant=\"subtitle-bold\" class=\"greeting\">\n {I18nService.translate('userInformation.greeting', {\n name: this.userInfo.customerName,\n })}\n </rebill-typography>\n {this.variant === 'otp' && (\n <rebill-button variant=\"text\" size=\"small\" onClick={() => this.handleSignOut()}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <rebill-typography variant=\"subtitle-bold\" color={COLORS_ENUM.PRIMARY_DARK}>\n {I18nService.translate('userInformation.signOut')}\n </rebill-typography>\n <rebill-icon name=\"logout\" size=\"12px\" />\n </div>\n </rebill-button>\n )}\n </div>\n\n <span style={{ display: 'flex', alignItems: 'center', gap: '7px' }}>\n <rebill-icon name=\"email\" size=\"12px\" color={COLORS_ENUM.GREY_700} />\n {this.userInfo.customerEmail}\n </span>\n </div>\n );\n }\n}\n","apm-download {\n flex: 1;\n display: block;\n}\n\napm-download rebill-button {\n width: 100%;\n}\n\n.button-content {\n display: flex;\n align-items: center;\n gap: 12px;\n overflow: hidden;\n}\n\n.button-content rebill-icon {\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n flex-shrink: 0;\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../../models/enums/payment-methods.enum';\nimport { PDFGenerator } from '../../../../utils';\n\nexport interface APMDownloadData {\n // QR Code data (for PIX, QR, etc.)\n qrCodeData?: string;\n\n // Barcode data (for Boleto)\n barcode?: string;\n\n // Bank transfer data (for SPEI, PSE, etc.)\n bankTransferData?: {\n accountNumber?: string;\n bankName?: string;\n reference?: string;\n clabe?: string;\n destinationBank?: string;\n paymentReference?: string;\n instructions?: string;\n };\n\n // Common data\n referenceId?: string;\n providerName?: string;\n expirationDate?: string;\n paymentMethod: PAYMENT_METHOD_ENUM;\n country?: string;\n amount?: number;\n currency?: string;\n productTitle?: string;\n customerEmail?: string;\n minutesLeft?: number;\n}\n\n@Component({\n tag: 'apm-download',\n styleUrl: 'apm-download.css',\n shadow: false,\n})\nexport class APMDownload {\n @Prop() data: APMDownloadData;\n\n private handleDownload = async () => {\n if (!this.data) return;\n\n try {\n let minutesLeft = 60;\n\n if (this.data.minutesLeft !== undefined) {\n minutesLeft = this.data.minutesLeft;\n }\n\n await PDFGenerator.generateAndDownloadPDF({\n paymentMethod: this.data.paymentMethod,\n referenceId: this.data.referenceId,\n qrCodeData: this.data.qrCodeData,\n barcode: this.data.barcode,\n bankTransferData: this.data.bankTransferData,\n providerName: this.data.providerName || '',\n expirationDate: this.data.expirationDate || '',\n minutesLeft: minutesLeft,\n country: this.data.country,\n amount: this.data.amount,\n currency: this.data.currency,\n });\n } catch (error) {\n console.error('Error downloading APM instructions:', error);\n }\n };\n\n render() {\n if (!this.data) return null;\n\n return (\n <rebill-button\n type=\"button\"\n variant=\"filled\"\n theme=\"primary-dark\"\n onClick={this.handleDownload}\n >\n <span class=\"button-content\">\n <span>{I18nService.translate('apmCheckout.download')}</span>\n <rebill-icon name=\"download\" />\n </span>\n </rebill-button>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.bank-transfer-data-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n.bank-transfer-data {\n padding: 0 16px;\n background: transparent;\n border: none;\n border-radius: 0;\n}\n\n.bank-transfer-steps {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.instruction-step {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.step-number {\n background: var(--rebill-color-background-right);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.step-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.step-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.bank-data-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n padding: 8px 0;\n border-bottom: none;\n}\n\n.value-with-copy {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Bank transfer simple styles */\n.bank-data-simple {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 0 16px;\n}\n\n.instruction-text {\n margin-bottom: 16px;\n}\n\n.data-section {\n margin-bottom: 16px;\n}\n\n.transfer-data-title {\n text-align: center;\n margin-bottom: 16px;\n padding-bottom: 8px;\n}\n\n.bank-data-item-simple {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Bank logos styles */\n.bank-logos-container {\n margin-top: 16px;\n padding-top: 16px;\n}\n\n.bank-logos-row {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n gap: 11px;\n align-self: stretch;\n flex-wrap: wrap;\n}\n\n.bank-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n border-radius: 4px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n transition: all 0.2s ease;\n}\n\n.bank-logo:hover {\n background: var(--rebill-color-background-secondary);\n transform: translateY(-1px);\n}\n.bank-transfer-data-container {\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.transfer-data-header {\n display: flex;\n padding: 16px 0;\n flex-direction: column;\n align-items: center;\n gap: var(--Spacing-s, 8px);\n align-self: stretch;\n border: 1px solid var(--Neutrals-Neutrals-50, #f4f5f6);\n background: var(--Primary-Base-White, #fafafa);\n}\n\n.transfer-data-header rebill-typography {\n color: var(--Primary-Base-Black, #000) !important;\n text-align: center;\n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n}\n/* Mobile responsive */\n@media (max-width: 768px) {\n .bank-transfer-data-container {\n gap: 12px;\n }\n\n .instruction-step {\n gap: 6px;\n }\n\n .step-number {\n width: 18px;\n height: 18px;\n }\n\n .bank-logos-row {\n gap: 8px;\n }\n\n .bank-logo {\n padding: 6px;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { sessionState } from '../../../../store/session.store';\nimport { formatAmountWithoutCurrency } from '../../../../utils';\nimport { copyToClipboard } from '../../../../utils/clipboard';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\n\n@Component({\n tag: 'bank-transfer',\n styleUrl: 'bank-transfer.css',\n shadow: false,\n})\nexport class BankTransfer {\n @Prop() bankTransferData: any;\n\n private renderSimpleBankData(data: any) {\n return (\n <div class=\"bank-data-simple\">\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.clabe')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {data.account}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard(data.account)}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n\n <div class=\"bank-data-item-simple\" style={{ height: '32px', boxSizing: 'border-box' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.nameSurname')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n Rebill Payments\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard('Rebill Payments')}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('summary.totalAmount')}\n {': '}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {formatAmountWithoutCurrency(\n sessionState.data?.pricing?.total,\n sessionState.data?.pricing?.currency,\n )}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() =>\n copyToClipboard(\n formatAmountWithoutCurrency(\n sessionState.data?.pricing?.total,\n sessionState.data?.pricing?.currency,\n ),\n )\n }\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n <div class=\"bank-data-item-simple\" style={{ height: '32px', boxSizing: 'border-box' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.destinationBank')}\n </rebill-typography>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.paymentTransferSystem')}\n </rebill-typography>\n </div>\n\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.paymentReference')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {data.reference}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard(data.reference)}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n </div>\n );\n }\n\n private renderInstructions() {\n const instructions = [\n I18nService.translate('bankTransfer.step1Instruction'),\n I18nService.translate('bankTransfer.step2Instruction'),\n I18nService.translate('bankTransfer.step3Instruction'),\n I18nService.translate('bankTransfer.step4Instruction'),\n I18nService.translate('bankTransfer.step5Instruction'),\n I18nService.translate('bankTransfer.step6Instruction'),\n ];\n\n return (\n <div class=\"bank-transfer-steps\">\n {instructions.map((instruction, index) => (\n <div class=\"instruction-step\" key={index}>\n <div class=\"step-number\">\n <rebill-typography variant=\"caption\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {index + 1}\n </rebill-typography>\n </div>\n <div class=\"step-content\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {instruction}\n </rebill-typography>\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n private renderBankLogos() {\n const bankLogos = [\n 'banco-azteca',\n 'banamex',\n 'inbursa',\n 'banco-santander',\n 'banorte',\n 'hsbc',\n 'scotiabank',\n ];\n\n return (\n <div class=\"bank-logos-container\">\n <div class=\"bank-logos-row\">\n {bankLogos.map(logoName => (\n <div class=\"bank-logo\" key={logoName}>\n <rebill-icon name={logoName} size=\"32px\" />\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.bankTransferData) {\n return null;\n }\n\n const bankData = Array.isArray(this.bankTransferData)\n ? this.bankTransferData\n : [this.bankTransferData];\n\n if (bankData.length === 0) {\n return null;\n }\n\n return (\n <div class=\"bank-transfer-data-container\">\n <div class=\"transfer-data-header\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT} align=\"center\">\n {I18nService.translate('bankTransfer.transferData')}\n </rebill-typography>\n </div>\n <div class=\"bank-transfer-data\">{this.renderSimpleBankData(bankData[0])}</div>\n <collapsible-card\n header={I18nService.translate('apmCheckout.viewInstructions')}\n open={true}\n variant=\"flat\"\n >\n {this.renderInstructions()}\n {this.renderBankLogos()}\n </collapsible-card>\n </div>\n );\n }\n}\n",".qr-code {\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.qr-code-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-left);\n border-bottom: 1px solid var(--rebill-color-background-right);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary);\n}\n\n.qr-code-content {\n padding: 16px 0px 16px 0px;\n background: #ffffff !important;\n}\n\n.qr-section {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n background: #ffffff !important;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n background: var(--rebill-color-background);\n position: relative;\n border-radius: 8px;\n}\n\n.qr-container::before,\n.qr-container::after {\n content: '';\n position: absolute;\n width: 32px;\n height: 32px;\n border: 2px solid var(--rebill-color-green);\n}\n\n/* Top-left corner */\n.qr-container::before {\n top: -2px;\n left: -2px;\n border-right: none;\n border-bottom: none;\n border-top-left-radius: 8px;\n}\n\n/* Top-right corner */\n.qr-container::after {\n top: -2px;\n right: -2px;\n border-left: none;\n border-bottom: none;\n border-top-right-radius: 8px;\n}\n\n/* Bottom corners */\n.corner-bottom-left,\n.corner-bottom-right {\n position: absolute;\n width: 32px;\n height: 32px;\n border: 2px solid var(--rebill-color-green);\n}\n\n/* Bottom-left corner */\n.corner-bottom-left {\n bottom: -2px;\n left: -2px;\n border-right: none;\n border-top: none;\n border-bottom-left-radius: 8px;\n}\n\n/* Bottom-right corner */\n.corner-bottom-right {\n bottom: -2px;\n right: -2px;\n border-left: none;\n border-top: none;\n border-bottom-right-radius: 8px;\n}\n\n.qr-image {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 146px;\n height: 146px;\n background: #ffffff !important;\n border-radius: 4px;\n}\n\n.qr-image svg {\n width: 146px;\n height: 146px;\n border-radius: 4px;\n background: #ffffff !important;\n}\n\n.qr-image img {\n width: 146px;\n height: 146px;\n border-radius: 4px;\n background: #ffffff !important;\n}\n\n/* Scanner line animation */\n.scanner-line {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background: linear-gradient(90deg, transparent, var(--rebill-color-green), transparent);\n box-shadow: 0 0 10px var(--rebill-color-green);\n animation: scanDown 2s ease-in-out;\n animation-fill-mode: forwards;\n z-index: 10;\n}\n\n@keyframes scanDown {\n 0% {\n top: 100%;\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n top: 0;\n opacity: 0;\n }\n}\n\n.qr-instruction {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-content {\n padding: 16px 16px 16px 16px;\n background: var(--rebill-color-background);\n}\n\n.instructions-list {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.instruction-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n text-align: left;\n}\n\n.instruction-item:not(:last-child) {\n margin-bottom: 8px;\n}\n\n.instruction-number {\n background: var(--rebill-color-background-right);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.instruction-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.instruction-text {\n flex: 1;\n}\n\n.copy-btn {\n display: flex;\n padding: var(--padding-base, 6px) var(--padding-xl, 10px);\n justify-content: center;\n align-items: center;\n gap: var(--padding-lg, 8px);\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { PAYMENT_METHOD_ENUM } from '../../../../components';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { sessionState } from '../../../../store/session.store';\nimport { copyToClipboard } from '../../../../utils/clipboard';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\nimport { decodeQRData, generateQRCodeSVG, isBase64Image } from '../../../../utils/qr-code';\nimport { getCurrencyInstructions } from '../../../../utils/qr-instructions';\nimport { createCountdownTimer, formatTimeMMSSMax60 } from '../../../../utils/timer';\n\n@Component({\n tag: 'qr-code',\n styleUrl: 'qr-code.css',\n shadow: false,\n})\nexport class QrCode {\n @Prop() qrCodeData: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() code: string;\n\n @State() qrCodeSvg: string = '';\n @State() isImage: boolean = false;\n @State() timeLeft: number = 3600; // 1 hora (3600 segundos) por defecto\n @State() formattedTime: string = '59:60';\n @State() hasCopied: boolean = false;\n\n @Event() timeUpdate: EventEmitter<number>; // Emitir minutos restantes\n\n private countdownTimer: ReturnType<typeof createCountdownTimer> | null = null;\n\n async componentWillLoad() {\n await this.generateQRCode();\n this.startCountdownTimer();\n // Emitir el tiempo inicial (60 minutos)\n this.timeUpdate.emit(60);\n }\n\n async componentWillUpdate() {\n // Regenerate QR code if data changes\n await this.generateQRCode();\n }\n\n disconnectedCallback() {\n // Limpiar el timer cuando el componente se desmonte\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n }\n }\n\n private async generateQRCode() {\n try {\n if (!this.qrCodeData) {\n this.qrCodeSvg = '';\n this.isImage = false;\n return;\n }\n\n // Check if the data is already an image\n if (isBase64Image(this.qrCodeData)) {\n this.isImage = true;\n this.qrCodeSvg = ''; // No QR code needed for images\n return;\n }\n\n // For non-image data, generate QR code\n this.isImage = false;\n const decodedData = decodeQRData(this.qrCodeData);\n const qrCodeSvg = await generateQRCodeSVG(decodedData);\n this.qrCodeSvg = qrCodeSvg;\n } catch (error) {\n console.error('Error generating QR code:', error);\n this.qrCodeSvg = '';\n this.isImage = false;\n }\n }\n\n private startCountdownTimer = () => {\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n }\n this.countdownTimer = createCountdownTimer({\n duration: 3600,\n onTick: (timeLeft: number) => {\n this.timeLeft = timeLeft;\n this.formattedTime = formatTimeMMSSMax60(timeLeft);\n\n const minutesLeft = Math.ceil(timeLeft / 60);\n this.timeUpdate.emit(minutesLeft);\n },\n onComplete: () => {\n this.timeLeft = 0;\n this.formattedTime = '00:00';\n this.timeUpdate.emit(0);\n },\n });\n\n this.countdownTimer.start();\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const currency = sessionState.data.pricing.country;\n return getCurrencyInstructions(currency, currentLanguage);\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n\n return (\n <div class=\"qr-code\">\n {/* Header with countdown timer */}\n <div class=\"qr-code-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {I18nService.translate('qrCode.expirationLabel', { time: this.formattedTime })}\n </span>\n </div>\n </div>\n\n {/* QR code content */}\n <div class=\"qr-code-content\">\n <div class=\"qr-section\">\n <div class=\"qr-instruction\">\n <rebill-typography\n variant=\"subtitle-bold\"\n style={{ fontSize: '12px' }}\n color={COLORS_ENUM.GREY_300}\n >\n {I18nService.translate('qrCode.scanInstruction')}\n </rebill-typography>\n </div>\n <div class=\"qr-container\">\n {this.isImage ? (\n <img\n src={`data:image/png;base64,${this.qrCodeData}`}\n alt=\"QR Code\"\n class=\"qr-image\"\n />\n ) : (\n <div class=\"qr-image\" innerHTML={this.qrCodeSvg}></div>\n )}\n <div class=\"scanner-line\"></div>\n <div class=\"corner-bottom-left\"></div>\n <div class=\"corner-bottom-right\"></div>\n </div>\n {this.code && (\n <rebill-button\n class=\"copy-btn\"\n variant=\"secondary\"\n size=\"small\"\n onClick={async () => {\n if (!this.code) return;\n await copyToClipboard(this.code);\n this.hasCopied = true;\n setTimeout(() => (this.hasCopied = false), 2000);\n }}\n type=\"button\"\n >\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('qrCode.copyCode')}\n </rebill-typography>\n {this.hasCopied ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.62256 10.8855L8.24756 13.5418L14.3726 6.45844\"\n stroke=\"#35B093\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n ) : (\n <rebill-icon name=\"copy\" size=\"16px\" />\n )}\n </rebill-button>\n )}\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {instructionLines.length > 0 && (\n <collapsible-card\n variant=\"flat\"\n header={I18nService.translate('qrCode.instructionsLabel')}\n open={false}\n >\n <div>\n <ol class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <li key={index} class=\"instruction-item\">\n <div class=\"instruction-number\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREY_300}>\n {index + 1}\n </rebill-typography>\n </div>\n <div class=\"instruction-text\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREY_300}>\n {line}\n </rebill-typography>\n </div>\n </li>\n ))}\n </ol>\n </div>\n </collapsible-card>\n )}\n </div>\n );\n }\n}\n",".bank-selector {\n margin-top: 16px;\n}\n","import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { Bank } from '../../../api/entities/checkout/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'rebill-bank-selector',\n styleUrl: 'bank-selector.css',\n shadow: false,\n})\nexport class BankSelector {\n @Prop() banks: Bank[] = [];\n @Prop() defaultSelectedBankId: string = '';\n @Prop() error?: string;\n @Prop() disabled?: boolean = false;\n @State() selectedBankId: string = '';\n @State() languageUpdateTrigger: number = 0;\n @Event() bankSelected: EventEmitter<string>;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n\n private handleBankSelection = (bankCode: string) => {\n const selectedBank = this.banks.find(bank => bank.code === bankCode);\n if (selectedBank) {\n SessionStore.setBankId(selectedBank);\n this.bankSelected.emit(selectedBank.code);\n }\n };\n\n componentWillLoad() {\n if (this.defaultSelectedBankId) {\n this.selectedBankId = this.defaultSelectedBankId;\n }\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n render() {\n if (!this.banks || this.banks.length === 0) {\n return null;\n }\n const sortedBanks = [...this.banks].sort((a, b) => a.name.localeCompare(b.name));\n\n const bankOptions = sortedBanks.map(bank => ({\n label: bank.name,\n value: bank.code,\n }));\n\n const translatedError =\n this.error && (this.error.includes('validation.') || this.error.includes('paymentErrors.'))\n ? I18nService.translate(this.error)\n : this.error || '';\n\n return (\n <div class=\"bank-selector\">\n <rebill-input-select\n id=\"bankId\"\n options={bankOptions}\n placeholder={I18nService.translate('bankSelector.placeholder')}\n error={translatedError}\n disabled={this.disabled}\n onInput={e => {\n const eventDetail = (e as CustomEvent).detail;\n if (eventDetail && eventDetail.value) {\n this.handleBankSelection(eventDetail.value);\n }\n }}\n searchable={true}\n searchPlaceholder={I18nService.translate('bankSelector.searchPlaceholder')}\n />\n </div>\n );\n }\n}\n",".reference-code {\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.reference-code-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-secondary);\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary);\n}\n\n.reference-code-content {\n padding: 32px 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 32px;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.reference-section {\n flex: 1;\n text-align: center;\n position: relative;\n}\n\n.reference-section::after {\n content: '';\n position: absolute;\n right: -16px;\n top: 50%;\n transform: translateY(-50%);\n width: 1px;\n height: 60px;\n background: var(--rebill-color-border);\n}\n\n.provider-section {\n flex: 1;\n text-align: center;\n}\n\n.reference-label,\n.provider-label {\n font-size: 12px;\n color: var(--rebill-color-text-secondary-light);\n margin-bottom: 12px;\n text-transform: uppercase;\n font-weight: 400;\n letter-spacing: 0%;\n}\n\n.reference-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.provider-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle {\n width: 100%;\n padding: 20px 24px;\n background: none;\n border: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n font-size: 15px;\n font-weight: 500;\n color: var(--rebill-color-text-primary);\n transition: background-color 0.2s ease;\n}\n\n.instructions-toggle:hover {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle rebill-icon {\n transition: transform 0.2s ease;\n}\n\n.instructions-toggle[aria-expanded='true'] rebill-icon {\n transform: rotate(180deg);\n}\n\n.instructions-content {\n padding: 16px 16px 16px 16px;\n background: var(--rebill-color-background);\n border-top: 1px solid var(--rebill-color-border);\n}\n\n.instructions-title {\n margin: 20px 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.instructions-text {\n color: var(--rebill-color-text-secondary);\n}\n\n.instructions-list {\n list-style: none;\n padding: 0;\n margin: 0;\n counter-reset: instruction-counter;\n}\n\n.instructions-list li {\n counter-increment: instruction-counter;\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 16px;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.instructions-list li::before {\n content: counter(instruction-counter);\n background: #f4f5f6;\n color: black;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 400;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.instructions-list li:last-child {\n margin-bottom: 0;\n}\n\n@media (max-width: 768px) {\n .reference-code-content {\n flex-direction: column;\n gap: 24px;\n padding: 24px 20px;\n }\n\n .reference-section::after {\n display: none;\n }\n\n .reference-section,\n .provider-section {\n text-align: center;\n width: 100%;\n }\n\n .reference-section {\n padding-bottom: 24px;\n border-bottom: 1px solid var(--rebill-color-border);\n }\n\n .instructions-toggle {\n padding: 16px 20px;\n }\n\n .instructions-content {\n padding: 0 20px 20px 20px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { PaymentInstruction } from '../../../../api/entities/checkout/types';\nimport { I18nService } from '../../../../i18n/i18n.service';\n\n@Component({\n tag: 'reference-code',\n styleUrl: 'reference-code.css',\n shadow: false,\n})\nexport class ReferenceCode {\n @Prop() referenceId: string;\n @Prop() expirationDate: string;\n @Prop() instructions: PaymentInstruction[] = [];\n\n @State() showInstructions = false;\n\n private toggleInstructions = () => {\n this.showInstructions = !this.showInstructions;\n };\n\n private formatExpirationDate = (dateString: string): string => {\n try {\n const date = new Date(dateString);\n return date.toLocaleDateString('es-ES', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n } catch (error) {\n return dateString;\n }\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const instruction = this.instructions.find(inst => inst.language === currentLanguage);\n const instructionText = instruction?.text || this.instructions[0]?.text || '';\n\n // Split by line breaks and filter out empty lines\n return instructionText.split('\\n').filter(line => line.trim().length > 0);\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n\n return (\n <div class=\"reference-code\">\n {/* Header with expiration */}\n <div class=\"reference-code-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {I18nService.translate('referenceCode.expirationLabel')}{' '}\n {this.formatExpirationDate(this.expirationDate)}\n </span>\n </div>\n </div>\n\n {/* Reference code and provider */}\n <div class=\"reference-code-content\">\n <div class=\"reference-section\">\n <div class=\"reference-label\">\n {I18nService.translate('referenceCode.referenceLabel')}\n </div>\n <div class=\"reference-value\">{this.referenceId}</div>\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {this.instructions.length > 0 && (\n <div class=\"instructions-section\">\n <button\n class=\"instructions-toggle\"\n onClick={this.toggleInstructions}\n type=\"button\"\n aria-expanded={this.showInstructions.toString()}\n aria-controls=\"instructions-content\"\n >\n <span>{I18nService.translate('referenceCode.instructionsLabel')}</span>\n <rebill-icon name=\"chevron-down\" />\n </button>\n\n {this.showInstructions && (\n <div\n class=\"instructions-content\"\n id=\"instructions-content\"\n role=\"region\"\n aria-labelledby=\"instructions-toggle\"\n >\n <div class=\"instructions-text\">\n <ol class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <li key={index}>{line}</li>\n ))}\n </ol>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\n"],"names":["api","STATUS_REQ_CHECKOUT_APM","PaymentMethodMapper","h","COLORS_ENUM","I18nService","getBoletoInstructionsAsPaymentInstructions","PAYMENT_METHOD_ENUM","sessionState","BREAKPOINT_ENUM","getBreakpoint","SessionStore","getAssetURL","JsBarcode","copyToClipboard","PDFGenerator","formatAmountWithoutCurrency","isBase64Image","decodeQRData","generateQRCodeSVG","createCountdownTimer","formatTimeMMSSMax60","getCurrencyInstructions"],"mappings":";;;;;;;;;;;;;;;;;AAGA;;;;;AAKG;AACI,MAAM,kBAAkB,GAAG,OAAO,KAAa,EAAE,WAAmB,KAAI;AAC7E,IAAA,IAAI;AACF,QAAA,MAAM,QAAQ,GAAG,MAAMA,SAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC;QACpF,OAAO,QAAQ,CAAC,IAAI;;IACpB,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,KAAK;;AAEf,CAAC;;AChBD,MAAM,cAAc,GAAG,63EAA63E;;ACWp5E;AACA,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,oBAAoB,GAAG,GAAG,CAAC;MAOpB,WAAW,GAAA,MAAA;;;;;;AAEd,IAAA,aAAa;AACb,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,IAAI;AACJ,IAAA,YAAY;AACZ,IAAA,cAAc;AACd,IAAA,OAAO;AACP,IAAA,WAAW;IACX,cAAc,GAAY,wBAAwB;IAClD,iBAAiB,CAAU;AAC3B,IAAA,WAAW;AACX,IAAA,gBAAgB;AAChB,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,QAAQ;IAEP,mBAAmB,GAAG,KAAK;IAC3B,SAAS,GAAG,KAAK;IACjB,WAAW,CAAU;IACrB,WAAW,CAAQ;AACnB,IAAA,YAAY;AAEZ,IAAA,mBAAmB;AAOpB,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,qBAAqB;IACrB,eAAe,GAAG,CAAC;IAE3B,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAE/C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE;;AAGvB,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACxE,IAAI,CAAC,YAAY,EAAE;;;IAIvB,gBAAgB,GAAA;QACd,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,gBAAgB,CAAC;QAC9D,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;;IAIjE,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACpC,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;;AAEpC,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxC,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS;;AAGxC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;;QAGpC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,gBAAgB,CAAC;QAC9D,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;;IAI5D,cAAc,GAAG,MAAK;AAC5B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;;AAGtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAE/B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;AACxC,SAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AACzB,KAAC;IAEO,kBAAkB,GAAG,MAAK;AAChC,QAAA,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;AACxD,KAAC;AAEO,IAAA,gBAAgB,GAAG,CAAC,KAA0B,KAAI;AACxD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM;AACjC,KAAC;IAEO,YAAY,GAAG,MAAK;QAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7F;;AAGF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;QAExB,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;YAC/C,IAAI,CAAC,kBAAkB,EAAE;SAC1B,EAAE,gBAAgB,CAAC;AACtB,KAAC;IAEO,WAAW,GAAG,MAAK;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;;AAEpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,KAAC;IAEO,kBAAkB,GAAG,YAAW;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B;;AAGF,QAAA,IAAI;YACF,IAAI,CAAC,eAAe,EAAE;AAEtB,YAAA,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC;YACnF,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAKC,iDAAuB,CAAC,QAAQ;AACpD,gBAAA,QAAQ,CAAC,MAAM,KAAKA,iDAAuB,CAAC,QAAQ;AACtD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,gBAAA,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC1B,aAAA,CAAC;YAEF,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,WAAW,EAAE;gBAClB;;AAGF,YAAA,IAAI,IAAI,CAAC,eAAe,IAAI,oBAAoB,EAAE;gBAChD,IAAI,CAAC,WAAW,EAAE;gBAClB;;;QAEF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC;;AAE1D,KAAC;IAEO,oBAAoB,GAAA;AAC1B,QAAA,MAAM,YAAY,GAAoB;YACpC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,YAAY,CAAC,gBAAgB,GAAG;AAC9B,gBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;gBACxC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;AACtF,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS;gBAC1C,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK;AACnE,gBAAA,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;AAC/C,gBAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS;AACjD,gBAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY;aACjD;;AACI,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;AACpC,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;;AAGrC,QAAA,OAAO,YAAY;;IAGb,cAAc,GAAA;;QAEpB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAChD,YAAA,MAAM,iBAAiB,GAAGC,uCAAmB,CAAC,qBAAqB,CACjE,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CACb;YACD,MAAM,iBAAiB,GAAGA,uCAAmB,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAE/E,QACEC,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kBAAkB,EAAA,EAC3BA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,eAAe,EAAA,EACxBA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAAA,EAC3D,IAAI,CAAC,QAAQ,KAAK,KAAK,IACtBC,wBAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,KAEvDF,SAAA,CAAA,MAAA,EAAA,IAAA,EACGE,wBAAW,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,GAAG,EAChEF,SAAmB,CAAA,mBAAA,EAAA,EAAA,OAAO,EAAC,UAAU,EAAC,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAC9D,EAAA,iBAAiB,CACA,EAAC,GAAG,EACvBC,wBAAW,CAAC,SAAS,CAAC,mCAAmC,CAAC,CACtD,CACR,CACiB,CAChB,CACF;;;AAKV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;;AAEhB,YAAA,MAAM,YAAY,GAAGC,sDAA0C,EAAE;AAEjE,YAAA,QACEH,SAAA,CAAA,gBAAA,EAAA,EACE,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,YAAY,EAAA,CAC1B;;;AAKN,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAOA,SAAgB,CAAA,gBAAA,EAAA,EAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,GAAI;;;AAI/F,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,QACEA,SACE,CAAA,SAAA,EAAA,EAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAA,CACnC;;AAIN,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,OAAOA,6BAAe,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAI;;;AAInE,QAAA,OAAO,IAAI;;IAGb,MAAM,GAAA;QACJ,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,KAAKI,gCAAmB,CAAC,IAAI;QACrE,MAAM,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AAE1D,QAAA,QACEJ,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAA,aAAA,EAAgB,iBAAiB,GAAG,kBAAkB,GAAG,EAAE,CAAE,CAAA,EAAA,EACvEA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EAAE,IAAI,CAAC,cAAc,EAAE,CAAO,EAEtDA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACrB,CAAC,iBAAiB,IAAI,WAAW,KAChCA,SACE,CAAA,eAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAA,EAEhCA,SAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EAC1BA,SAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAOE,wBAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAQ,EAChEF,SAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,IAAI,EAAC,wBAAwB,EAAG,CAAA,CACxC,CACO,CACjB,EAEA,CAAC,iBAAiB,IAAIA,SAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAI,CAAA,CAC5D,CACF;;;;;AC/SZ,MAAM,oBAAoB,GAAG,88BAA88B;;MCa99B,iBAAiB,GAAA,MAAA;;;;IACpB,QAAQ,GAAW,4BAA4B;IAC/C,WAAW,GAAW,+BAA+B;AACpD,IAAA,aAAa,GAAWK,kBAAY,CAAC,aAAa;AAClD,IAAA,UAAU,GAAoBC,0BAAe,CAAC,OAAO;IACrD,cAAc,GAAW,CAAC;IAC1B,eAAe,GAAY,IAAI;AAEhC,IAAA,6BAA6B;AAC7B,IAAA,gBAAgB;AAChB,IAAA,eAAe;AACf,IAAA,eAAe;IAEvB,iBAAiB,GAAA;QACf,IAAI,CAAC,UAAU,GAAGC,wBAAa,CAAC,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,6BAA6B,GAAGC,yBAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;AAC/E,YAAA,IAAI,CAAC,aAAa,GAAGH,kBAAY,CAAC,aAAa;AACjD,SAAC,CAAC;;IAGJ,gBAAgB,GAAA;QACd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,mBAAmB,EAAE;;IAG5B,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE;;QAEtC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,mBAAmB,EAAE;;IAGpB,YAAY,GAAG,MAAK;QAC1B,IAAI,CAAC,UAAU,GAAGE,wBAAa,CAAC,MAAM,CAAC,UAAU,CAAC;AACpD,KAAC;IAEO,mBAAmB,GAAG,YAAW;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,oDAAO,sBAAY,6CAAC;YACzC,MAAM,aAAa,GAAG,MAAM,KAAK,CAACE,kBAAW,CAAC,CAAA,mBAAA,CAAqB,CAAC,CAAC;AACrE,YAAA,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;AAEhD,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;oBAClD,SAAS,EAAE,IAAI,CAAC,eAAe;AAC/B,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,aAAa,EAAE,aAAa;AAC7B,iBAAA,CAAC;;iBACG;gBACL,IAAI,CAAC,oBAAoB,EAAE;;;QAE7B,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;;AAE/B,KAAC;IAEO,oBAAoB,GAAG,MAAK;QAClC,MAAM,QAAQ,GAAG,IAAI;AACrB,QAAA,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,QAAQ,IAAI,GAAG;QAE7C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,EAAE,GAAG,CAAC;AACpE,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,EAAE;;SAE7B,EAAE,QAAQ,CAAC;AACd,KAAC;IAEO,mBAAmB,GAAG,MAAK;AACjC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;;AAEnC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;;AAEpC,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,QACET,SAAA,CAAA,+BAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACEA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAE/BA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3BA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,KAAK,EAAC,kBAAkB,GAAO,CACxE,EACNA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvBA,SAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,OAAO,EAAC,IAAI,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EACjE,EAAAC,wBAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACnB,EACpBF,SAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,OAAO,EAAC,eAAe,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,IAC5EC,wBAAW,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CACtB,CAChB,EAENF,SACE,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,gBAAgB,EACxB,IAAI,EAAC,cAAc,EACnB,OAAO,EAAEE,wBAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,EACnD,CAAA,CACE,CACwB;;;;;ACxHtC,MAAM,SAAS,GAAG,ohIAAohI;;MCWzhI,aAAa,GAAA,MAAA;;;;;AAGhB,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,YAAY;AACZ,IAAA,cAAc;IACd,YAAY,GAAyB,EAAE;IAEtC,gBAAgB,GAAG,IAAI;IACvB,SAAS,GAAG,KAAK;IAElB,kBAAkB,GAAG,MAAK;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAChD,KAAC;IAEO,iBAAiB,GAAG,MAAa;;;AAGvC,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;AACpC,QAAA,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;;AAG/D,QAAA,OAAO,cAAc,CAAC,WAAW,EAAE;AACrC,KAAC;AAEO,IAAA,wBAAwB,GAAG,CAAC,UAAkB,KAAY;AAChE,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;;YAEjC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AACzB,gBAAA,OAAO,UAAU;;AAGnB,YAAA,MAAM,eAAe,GAAGA,wBAAW,CAAC,kBAAkB,EAAE;YACxD,MAAM,MAAM,GACV,eAAe,KAAK,IAAI,GAAG,OAAO,GAAG,eAAe,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO;;AAGnF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACpD,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,KAAK,EAAE,SAAS;AACjB,aAAA,CAAC;AAEF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACpD,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC;AAEF,YAAA,OAAO,CAAG,EAAA,aAAa,CAAI,CAAA,EAAA,aAAa,EAAE;;QAC1C,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,UAAU;;AAErB,KAAC;IAEO,8BAA8B,GAAG,MAAe;AACtD,QAAA,MAAM,eAAe,GAAGA,wBAAW,CAAC,kBAAkB,EAAE;AACxD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC;AACrF,QAAA,MAAM,eAAe,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;;QAG7E,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3E,KAAC;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,eAAe,EAAE;;IAGxB,kBAAkB,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE;;IAGhB,eAAe,GAAG,MAAK;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAkB;AAC3E,QAAA,IAAI,CAAC,UAAU;YAAE;AAEjB,QAAA,IAAI;AACF,YAAAQ,qBAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE;AAClC,gBAAA,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,KAAK;AACnB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;;AAEvD,KAAC;IAEO,cAAc,GAAG,YAAW;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnB,QAAA,IAAI;AACF,YAAA,MAAMC,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;aACvB,EAAE,IAAI,CAAC;;QACR,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;;AAEnD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,EAAE;AAC9D,QAAA,MAAM,eAAe,GAAGT,wBAAW,CAAC,kBAAkB,EAAE;AACxD,QAAA,MAAM,aAAa,GACjB,eAAe,KAAK;AAClB,cAAE;cACA,eAAe,KAAK;AACpB,kBAAE;kBACA,YAAY;AAEpB,QAAA,QACEF,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EAEzBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAA,EACxBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC7BA,SAAa,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,gBAAgB,EAAG,CAAA,EACrCA,SAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,aAAa,OAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CACnE,CACH,CACF,EAGNA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EACzB,IAAI,CAAC,OAAO,KACXA,SAAA,CAAAA,SAAA,CAAA,QAAA,EAAA,IAAA,EACEA,SAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,OAAO,CAAK,EAC5CA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAClCA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAY,YAAA,EAAA,gBAAgB,GAAG,CACrD,EACNA,SAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAC,QAAQ,EAAA,EACrEA,SAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,kBAAkB,EAAA,EAC3BE,wBAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,eAAe,CACvD,EACN,IAAI,CAAC,SAAS,IACbF,SACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,EAElCA,SAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,kDAAkD,EACpD,MAAM,EAAC,SAAS,EAAA,cAAA,EACH,GAAG,EAAA,gBAAA,EACD,OAAO,EAAA,iBAAA,EACN,OAAO,EACvB,CAAA,CACE,KAENA,SAAA,CAAA,aAAA,EAAA,EAAa,IAAI,EAAC,MAAM,EAAA,CAAG,CAC5B,CACM,CACR,CACJ,CACG,CACF,EAGL,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAC3BA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,SACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAA,eAAA,EACjC,sBAAsB,EAAA,EAEpCA,SACG,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAAE,wBAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,mBAAmB,CACpE,EACPF,SAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,cAAc,EACnB,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,GAChE,CACK,EAETA,SACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,wBAAwB,IAAI,CAAC,gBAAgB,GAAG,MAAM,GAAG,EAAE,CAAA,CAAE,EACpE,EAAE,EAAC,sBAAsB,EACzB,IAAI,EAAC,QAAQ,EAAA,iBAAA,EACG,qBAAqB,EAAA,EAErCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAChCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,kBAAkB,EAAA,EACvCA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,oBAAoB,IAAE,KAAK,GAAG,CAAC,CAAO,EACjDA,SAAA,CAAA,GAAA,EAAA,EAAG,KAAK,EAAC,kBAAkB,EAAA,EAAE,IAAI,CAAK,CAClC,CACP,CAAC,CACE,CACF,CACF,CACP,CACG;;;;;ACrNZ,MAAM,wBAAwB,GAAG,6ZAA6Z;;MCcjb,qBAAqB,GAAA,MAAA;;;;;AACxB,IAAA,QAAQ;IACR,OAAO,GAAsB,SAAS;AACrC,IAAA,OAAO;IAEhB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG1B,MAAM,GAAA;AACJ,QAAA,QACEA,oEAAK,KAAK,EAAE,CAA2B,wBAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAA,EACnDA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAmC,gCAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAA,EAC3DA,SAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,UAAU,EAAA,EACxDE,wBAAW,CAAC,SAAS,CAAC,0BAA0B,EAAE;AACjD,YAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;AACjC,SAAA,CAAC,CACgB,EACnB,IAAI,CAAC,OAAO,KAAK,KAAK,KACrBF,SAAA,CAAA,eAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAe,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAA,EAC5EA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,EAC/DA,SAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,OAAO,EAAC,eAAe,EAAC,KAAK,EAAEC,4BAAW,CAAC,YAAY,EAAA,EACvEC,wBAAW,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAC/B,EACpBF,SAAa,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAG,CAAA,CACrC,CACQ,CACjB,CACG,EAENA,SAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,EAChEA,SAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAAI,CAAA,EACpE,IAAI,CAAC,QAAQ,CAAC,aAAa,CACvB,CACH;;;;;AChDZ,MAAM,cAAc,GAAG,wSAAwS;;MCyClT,WAAW,GAAA,MAAA;;;;AACd,IAAA,IAAI;IAEJ,cAAc,GAAG,YAAW;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;AAEhB,QAAA,IAAI;YACF,IAAI,WAAW,GAAG,EAAE;YAEpB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;AACvC,gBAAA,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;;YAGrC,MAAMW,wBAAY,CAAC,sBAAsB,CAAC;AACxC,gBAAA,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;AACtC,gBAAA,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;AAClC,gBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;AAChC,gBAAA,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AAC1B,gBAAA,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;AAC5C,gBAAA,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE;AAC1C,gBAAA,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE;AAC9C,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AAC1B,gBAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,gBAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC7B,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;;AAE/D,KAAC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;AAE3B,QAAA,QACEZ,SACE,CAAA,eAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,IAAI,CAAC,cAAc,EAAA,EAE5BA,SAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EAC1BA,SAAA,CAAA,MAAA,EAAA,IAAA,EAAOE,wBAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAQ,EAC5DF,SAAA,CAAA,aAAA,EAAA,EAAa,IAAI,EAAC,UAAU,GAAG,CAC1B,CACO;;;;;ACtFtB,MAAM,eAAe,GAAG,2+EAA2+E;;MCYt/E,YAAY,GAAA,MAAA;;;;AACf,IAAA,gBAAgB;AAEhB,IAAA,oBAAoB,CAAC,IAAS,EAAA;AACpC,QAAA,QACEA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kBAAkB,EAAA,EAC3BA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAChCA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,CACzB,EACpBF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpE,IAAI,CAAC,OAAO,CACK,EACpBD,SACE,CAAA,eAAA,EAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,MAAMW,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5C,IAAI,EAAC,QAAQ,EAAA,EAEbX,SAAa,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CACzB,CACZ,CACF,EAENA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAA,EACnFA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAC/B,EACpBF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BA,SAAmB,CAAA,mBAAA,EAAA,EAAA,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAEnD,EAAA,iBAAA,CAAA,EACpBD,SACE,CAAA,eAAA,EAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,MAAMW,yBAAe,CAAC,iBAAiB,CAAC,EACjD,IAAI,EAAC,QAAQ,EAAA,EAEbX,SAAa,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CACzB,CACZ,CACF,EAENA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAChCA,SAAmB,CAAA,mBAAA,EAAA,EAAA,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAC5C,IAAI,CACa,EACpBF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEY,wCAA2B,CAC1BR,kBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EACjCA,kBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CACrC,CACiB,EACpBL,SAAA,CAAA,eAAA,EAAA,EACE,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,MACPW,yBAAe,CACbE,wCAA2B,CACzBR,kBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EACjCA,kBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CACrC,CACF,EAEH,IAAI,EAAC,QAAQ,EAAA,EAEbL,SAAa,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CACzB,CACZ,CACF,EACNA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,EAAA,EACnFA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,6BAA6B,CAAC,CACnC,EACpBF,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,mCAAmC,CAAC,CACzC,CAChB,EAENF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAChCA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpEC,wBAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CACpC,EACpBF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACpE,IAAI,CAAC,SAAS,CACG,EACpBD,SACE,CAAA,eAAA,EAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,MAAMW,yBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAC9C,IAAI,EAAC,QAAQ,EAAA,EAEbX,SAAA,CAAA,aAAA,EAAA,EAAa,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CACzB,CACZ,CACF,CACF;;IAIF,kBAAkB,GAAA;AACxB,QAAA,MAAM,YAAY,GAAG;AACnB,YAAAE,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;AACtD,YAAAA,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;AACtD,YAAAA,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;AACtD,YAAAA,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;AACtD,YAAAA,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;AACtD,YAAAA,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;SACvD;QAED,QACEF,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,qBAAqB,IAC7B,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MACnCA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kBAAkB,EAAC,GAAG,EAAE,KAAK,EAAA,EACtCA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtBA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,SAAS,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EACtE,EAAA,KAAK,GAAG,CAAC,CACQ,CAChB,EACND,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvBA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EACpE,EAAA,WAAW,CACM,CAChB,CACF,CACP,CAAC,CACE;;IAIF,eAAe,GAAA;AACrB,QAAA,MAAM,SAAS,GAAG;YAChB,cAAc;YACd,SAAS;YACT,SAAS;YACT,iBAAiB;YACjB,SAAS;YACT,MAAM;YACN,YAAY;SACb;AAED,QAAA,QACED,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACxB,SAAS,CAAC,GAAG,CAAC,QAAQ,KACrBA,mBAAK,KAAK,EAAC,WAAW,EAAC,GAAG,EAAE,QAAQ,EAAA,EAClCA,SAAA,CAAA,aAAA,EAAA,EAAa,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAG,CAAA,CACvC,CACP,CAAC,CACE,CACF;;IAIV,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,OAAO,IAAI;;QAGb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB;cAChD,IAAI,CAAC;AACP,cAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAE3B,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI;;QAGb,QACEA,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,8BAA8B,EAAA,EACvCA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,SAAmB,CAAA,mBAAA,EAAA,EAAA,OAAO,EAAC,OAAO,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAE,KAAK,EAAC,QAAQ,IACpFC,wBAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC,CACjC,CAChB,EACNF,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,oBAAoB,EAAA,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAO,EAC9EA,SAAA,CAAA,kBAAA,EAAA,EACE,MAAM,EAAEE,wBAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,EAC7D,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,MAAM,EAAA,EAEb,IAAI,CAAC,kBAAkB,EAAE,EACzB,IAAI,CAAC,eAAe,EAAE,CACN,CACf;;;;;ACvMZ,MAAM,SAAS,GAAG,8kGAA8kG;;MCenlG,MAAM,GAAA,MAAA;;;;;AACT,IAAA,UAAU;AACV,IAAA,YAAY;AACZ,IAAA,cAAc;AACd,IAAA,aAAa;AACb,IAAA,IAAI;IAEH,SAAS,GAAW,EAAE;IACtB,OAAO,GAAY,KAAK;AACxB,IAAA,QAAQ,GAAW,IAAI,CAAC;IACxB,aAAa,GAAW,OAAO;IAC/B,SAAS,GAAY,KAAK;IAE1B,UAAU,CAAuB;IAElC,cAAc,GAAmD,IAAI;AAE7E,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,MAAM,IAAI,CAAC,cAAc,EAAE;QAC3B,IAAI,CAAC,mBAAmB,EAAE;;AAE1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;;AAG1B,IAAA,MAAM,mBAAmB,GAAA;;AAEvB,QAAA,MAAM,IAAI,CAAC,cAAc,EAAE;;IAG7B,oBAAoB,GAAA;;AAElB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;;;AAItB,IAAA,MAAM,cAAc,GAAA;AAC1B,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;gBACpB;;;AAIF,YAAA,IAAIY,yBAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB;;;AAIF,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,MAAM,WAAW,GAAGC,wBAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAA,MAAM,SAAS,GAAG,MAAMC,6BAAiB,CAAC,WAAW,CAAC;AACtD,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;QAC1B,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;AACjD,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;IAIhB,mBAAmB,GAAG,MAAK;AACjC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;;AAE5B,QAAA,IAAI,CAAC,cAAc,GAAGC,0BAAoB,CAAC;AACzC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,CAAC,QAAgB,KAAI;AAC3B,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,gBAAA,IAAI,CAAC,aAAa,GAAGC,yBAAmB,CAAC,QAAQ,CAAC;gBAElD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC5C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;aAClC;YACD,UAAU,EAAE,MAAK;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACxB;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC7B,KAAC;IAEO,8BAA8B,GAAG,MAAe;AACtD,QAAA,MAAM,eAAe,GAAGhB,wBAAW,CAAC,kBAAkB,EAAE;QACxD,MAAM,QAAQ,GAAGG,kBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;AAClD,QAAA,OAAOc,mCAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC3D,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,EAAE;AAE9D,QAAA,QACEnB,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EAElBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC7BA,SAAa,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,gBAAgB,EAAG,CAAA,EACrCA,SAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BE,wBAAW,CAAC,SAAS,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CACzE,CACH,CACF,EAGNF,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACrBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzBA,SACE,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,OAAO,EAAC,eAAe,EACvB,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAC3B,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAE1B,EAAAC,wBAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAC9B,CAChB,EACNF,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACtB,IAAI,CAAC,OAAO,IACXA,SACE,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAyB,sBAAA,EAAA,IAAI,CAAC,UAAU,EAAE,EAC/C,GAAG,EAAC,SAAS,EACb,KAAK,EAAC,UAAU,EAChB,CAAA,KAEFA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAQ,CACxD,EACDA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAO,CAAA,EAChCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAO,CAAA,EACtCA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,qBAAqB,EAAA,CAAO,CACnC,EACL,IAAI,CAAC,IAAI,KACRA,8EACE,KAAK,EAAC,UAAU,EAChB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,YAAW;gBAClB,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE;AAChB,gBAAA,MAAMW,yBAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,gBAAA,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC;AAClD,aAAC,EACD,IAAI,EAAC,QAAQ,EAAA,EAEbX,SAAA,CAAA,mBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAmB,OAAO,EAAC,WAAW,EAAC,KAAK,EAAEC,4BAAW,CAAC,iBAAiB,EAAA,EACxEC,wBAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CACvB,EACnB,IAAI,CAAC,SAAS,IACbF,SACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,EAElCA,SAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,kDAAkD,EACpD,MAAM,EAAC,SAAS,EAAA,gBAAA,EACD,OAAO,EAAA,iBAAA,EACN,OAAO,EAAA,CACvB,CACE,KAENA,SAAA,CAAA,aAAA,EAAA,EAAa,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAG,CAAA,CACxC,CACa,CACjB,CACG,CACF,EAGL,gBAAgB,CAAC,MAAM,GAAG,CAAC,KAC1BA,SAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,OAAO,EAAC,MAAM,EACd,MAAM,EAAEE,wBAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,EACzD,IAAI,EAAE,KAAK,EAAA,EAEXF,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACEA,SAAI,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAChCA,SAAI,CAAA,IAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,kBAAkB,EAAA,EACtCA,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC7BA,SAAA,CAAA,mBAAA,EAAA,EAAmB,OAAO,EAAC,WAAW,EAAC,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAC/D,EAAA,KAAK,GAAG,CAAC,CACQ,CAChB,EACND,SAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3BA,SAAmB,CAAA,mBAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,KAAK,EAAEC,4BAAW,CAAC,QAAQ,EAC/D,EAAA,IAAI,CACa,CAChB,CACH,CACN,CAAC,CACC,CACD,CACW,CACpB,CACG;;;;;ACtNZ,MAAM,eAAe,GAAG,iCAAiC;;MCU5C,YAAY,GAAA,MAAA;;;;;IACf,KAAK,GAAW,EAAE;IAClB,qBAAqB,GAAW,EAAE;AAClC,IAAA,KAAK;IACL,QAAQ,GAAa,KAAK;IACzB,cAAc,GAAW,EAAE;IAC3B,qBAAqB,GAAW,CAAC;AACjC,IAAA,YAAY;AAEb,IAAA,6BAA6B;AAE7B,IAAA,mBAAmB,GAAG,CAAC,QAAgB,KAAI;AACjD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QACpE,IAAI,YAAY,EAAE;AAChB,YAAAO,yBAAY,CAAC,SAAS,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;AAE7C,KAAC;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB;;;IAIpD,gBAAgB,GAAA;QACd,IAAI,CAAC,6BAA6B,GAAGA,yBAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;YAC/E,IAAI,CAAC,qBAAqB,EAAE;AAC9B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE;;;IAIxC,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK;YAC3C,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,KAAK,EAAE,IAAI,CAAC,IAAI;AACjB,SAAA,CAAC,CAAC;QAEH,MAAM,eAAe,GACnB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;cACtFN,wBAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;AAClC,cAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QAEtB,QACEF,SAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EACxBA,SAAA,CAAA,qBAAA,EAAA,EACE,EAAE,EAAC,QAAQ,EACX,OAAO,EAAE,WAAW,EACpB,WAAW,EAAEE,wBAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAC9D,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,MAAM,WAAW,GAAI,CAAiB,CAAC,MAAM;AAC7C,gBAAA,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;AACpC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE/C,aAAC,EACD,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAEA,wBAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,EAC1E,CAAA,CACE;;;;;AChFZ,MAAM,gBAAgB,GAAG,2gGAA2gG;;MCSvhG,aAAa,GAAA,MAAA;;;;AAChB,IAAA,WAAW;AACX,IAAA,cAAc;IACd,YAAY,GAAyB,EAAE;IAEtC,gBAAgB,GAAG,KAAK;IAEzB,kBAAkB,GAAG,MAAK;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAChD,KAAC;AAEO,IAAA,oBAAoB,GAAG,CAAC,UAAkB,KAAY;AAC5D,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;AACjC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtC,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,UAAU;;AAErB,KAAC;IAEO,8BAA8B,GAAG,MAAe;AACtD,QAAA,MAAM,eAAe,GAAGA,wBAAW,CAAC,kBAAkB,EAAE;AACxD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC;AACrF,QAAA,MAAM,eAAe,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;;QAG7E,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3E,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,EAAE;AAE9D,QAAA,QACEF,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,gBAAgB,EAAA,EAEzBA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAChCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC7BA,SAAa,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,gBAAgB,EAAG,CAAA,EACrCA,SAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1BE,wBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,GAAG,EAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAC1C,CACH,CACF,EAGNF,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EACjCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC5BA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EACzB,EAAAE,wBAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAClD,EACNF,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAAE,IAAI,CAAC,WAAW,CAAO,CACjD,CACF,EAGL,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KAC3BA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,SACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAA,eAAA,EACjC,sBAAsB,EAAA,EAEpCA,SAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAOE,wBAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAQ,EACvEF,SAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,IAAI,EAAC,cAAc,EAAA,CAAG,CAC5B,EAER,IAAI,CAAC,gBAAgB,KACpBA,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,sBAAsB,EAC5B,EAAE,EAAC,sBAAsB,EACzB,IAAI,EAAC,QAAQ,qBACG,qBAAqB,EAAA,EAErCA,SAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC5BA,SAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,KAAK,EAAC,mBAAmB,EAAA,EAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAChCA,SAAI,CAAA,IAAA,EAAA,EAAA,GAAG,EAAE,KAAK,EAAG,EAAA,IAAI,CAAM,CAC5B,CAAC,CACC,CACD,CACF,CACP,CACG,CACP,CACG;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"apm-checkout.apm-download.bank-transfer.boleto-payment.qr-code.rebill-bank-selector.rebill-processing-payment.reference-code.user-information-static.entry.cjs.js","sources":["src/api/endpoints/checkout-status.ts","src/components/checkout/apm/apm-checkout/apm-checkout.css?tag=apm-checkout","src/components/checkout/apm/apm-checkout/apm-checkout.tsx","src/components/checkout/processing-payment/processing-payment.css?tag=rebill-processing-payment","src/components/checkout/processing-payment/processing-payment.tsx","src/components/checkout/apm/boleto/boleto.css?tag=boleto-payment","src/components/checkout/apm/boleto/boleto.tsx","src/components/renewal/user-information-static/user-information-static.css?tag=user-information-static","src/components/renewal/user-information-static/user-information-static.tsx","src/components/checkout/apm/apm-download/apm-download.css?tag=apm-download","src/components/checkout/apm/apm-download/apm-download.tsx","src/components/checkout/apm/bank-transfer/bank-transfer.css?tag=bank-transfer","src/components/checkout/apm/bank-transfer/bank-transfer.tsx","src/components/checkout/apm/qr-code/qr-code.css?tag=qr-code","src/components/checkout/apm/qr-code/qr-code.tsx","src/components/checkout/bank-selector/bank-selector.css?tag=rebill-bank-selector","src/components/checkout/bank-selector/bank-selector.tsx","src/components/checkout/apm/reference-code/reference-code.css?tag=reference-code","src/components/checkout/apm/reference-code/reference-code.tsx"],"sourcesContent":["import { STATUS_REQ_CHECKOUT_APM } from '../../models/enums/status-req-checkout-apm.enum';\nimport { api } from '../index';\n\n/**\n * Gets the checkout request status by request ID\n * @param reqId - The checkout request ID\n * @param bearerToken - The bearer token for authentication\n * @returns Promise with checkout status information\n */\nexport const getCheckoutRequest = async (\n reqId: string,\n bearerToken: string,\n sessionId?: string,\n) => {\n try {\n const response = await api.checkout.getCheckoutRequestPaymentAPM(reqId, bearerToken, sessionId);\n return response.data;\n } catch (error) {\n throw error;\n }\n};\n\n/**\n * GET endpoint handler for checkout status\n * @param reqId - The checkout request ID from URL parameters\n * @param bearerToken - The bearer token for authentication\n * @returns Response with checkout status, completion status, and data\n */\nexport const GET = async (reqId: string, bearerToken?: string) => {\n try {\n if (!reqId || !bearerToken) {\n return {};\n }\n\n const checkoutRequest = await getCheckoutRequest(reqId, bearerToken);\n\n const response = {\n status: checkoutRequest.status,\n isCompleted:\n checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.APPROVED ||\n checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.REJECTED,\n isPending: checkoutRequest.status === STATUS_REQ_CHECKOUT_APM.PENDING_CUSTOMER_CHARGE,\n data: checkoutRequest,\n };\n\n return {\n status: 200,\n body: response,\n };\n } catch (error) {\n console.error('Error fetching checkout status:', error);\n return {\n status: 500,\n body: { error: 'Failed to fetch checkout status' },\n };\n }\n};\n",".apm-checkout {\n display: flex;\n flex-direction: column;\n}\n\n.apm-content {\n margin-bottom: 0;\n}\n\n.apm-content .reference-code,\n.apm-content .qr-code,\n.apm-content .boleto-payment {\n margin-top: 0;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\n\n.apm-actions {\n display: flex;\n gap: 12px;\n padding: 20px 0;\n}\n\n.apm-actions rebill-button,\n.apm-actions payment-button {\n flex: 1;\n width: 100%;\n}\n\n.apm-actions rebill-button .button-content,\n.apm-actions payment-button .button-content {\n display: flex;\n align-items: center;\n gap: 12px;\n overflow: hidden;\n}\n\n.apm-actions rebill-button .button-content rebill-icon {\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n flex-shrink: 0;\n}\n\n/* Redirect message styles */\n.apm-checkout.redirect-message {\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.redirect-content {\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-background-right);\n padding: 16px;\n}\n\n.redirect-content .payment-method-name {\n font-weight: 600 !important;\n}\n\n/* Bank transfer data container */\n.bank-transfer-data-container {\n margin-top: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Bank transfer data styles */\n.bank-transfer-data {\n padding: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n}\n\n.instruction-step {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.instruction-step:last-child {\n margin-bottom: 0;\n}\n\n.step-number {\n background: var(--rebill-color-background-right);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.step-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.instruction-text {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n}\n\n.instruction-content {\n flex: 1;\n}\n\n.bank-data-item {\n display: flex;\n gap: 8px;\n align-items: center;\n\n border-bottom: none;\n}\n\n.value-with-copy {\n display: flex;\n align-items: center;\n gap: 2px;\n}\n\n/* Bank transfer simple styles */\n.bank-transfer-simple-container {\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n}\n\n.instruction-text {\n margin-bottom: 16px;\n}\n\n.data-section {\n margin-bottom: 16px;\n}\n\n.bank-transfer-simple {\n margin-bottom: 16px;\n}\n\n.bank-transfer-simple:last-child {\n margin-bottom: 0;\n}\n\n.bank-data-simple {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.bank-data-item-simple {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 0;\n}\n\n/* Mobile responsive */\n@media (max-width: 768px) {\n .apm-actions {\n flex-direction: column;\n gap: 12px;\n padding: 16px 0;\n }\n\n .apm-actions rebill-button {\n width: 100%;\n flex: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { CheckoutRequestPayment } from '../../../../api/entities/checkout/types';\nimport { getCheckoutRequest } from '../../../../api/endpoints/checkout-status';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../../models/enums/payment-methods.enum';\nimport { STATUS_REQ_CHECKOUT_APM } from '../../../../models/enums/status-req-checkout-apm.enum';\nimport { getBoletoInstructionsAsPaymentInstructions } from '../../../../utils/barcode-instructions';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\nimport { PaymentMethodMapper } from '../../../../utils/payment-method-mapper';\nimport { APMDownloadData } from '../apm-download/apm-download';\n\n// Constants\nconst DEFAULT_REDIRECT_TIMEOUT = 5000; // 5 seconds\nconst POLLING_INTERVAL = 3000; // 3 seconds\n\nconst MAX_POLLING_ATTEMPTS = 300; // 15 minutes max (300 attempts * 3 seconds = 900 seconds = 15 minutes)\n\n@Component({\n tag: 'apm-checkout',\n styleUrl: 'apm-checkout.css',\n shadow: false,\n})\nexport class APMCheckout {\n @Element() el: HTMLElement;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() referenceId?: string;\n @Prop() qrCodeData?: string;\n @Prop() code?: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() country?: string;\n @Prop() redirectUrl?: string;\n @Prop() timeToRedirect?: number = DEFAULT_REDIRECT_TIMEOUT;\n @Prop() checkoutRequestId?: string; // ID para hacer polling\n @Prop() bearerToken?: string;\n @Prop() sessionId?: string;\n @Prop() bankTransferData?: any;\n @Prop() barcode?: string;\n @Prop() amount?: number;\n @Prop() currency?: string;\n\n @State() showRedirectMessage = false;\n @State() isPolling = false;\n @State() minutesLeft?: number; // Minutos restantes del contador\n @State() qrStartTime?: Date; // Hora de inicio del QR\n @State() downloadData?: APMDownloadData;\n\n @Event() paymentStatusChange: EventEmitter<{\n status: STATUS_REQ_CHECKOUT_APM;\n isCompleted: boolean;\n data: any;\n payment?: CheckoutRequestPayment | null;\n }>;\n\n private redirectTimeoutId: number | undefined;\n private pollingIntervalId: number | undefined;\n private pollingDelayTimeoutId: NodeJS.Timeout | undefined;\n private pollingAttempts = 0;\n\n componentWillLoad() {\n this.qrStartTime = new Date();\n this.downloadData = this.generateDownloadData();\n\n if (this.redirectUrl) {\n this.handleRedirect();\n }\n\n if (this.checkoutRequestId && (this.qrCodeData || this.bankTransferData)) {\n this.startPolling();\n }\n }\n\n componentDidLoad() {\n const paymentButton = this.el?.querySelector('payment-button');\n if (paymentButton) {\n paymentButton.addEventListener('submit', this.handleRedirect);\n }\n }\n\n disconnectedCallback() {\n if (this.redirectTimeoutId) {\n clearTimeout(this.redirectTimeoutId);\n this.redirectTimeoutId = undefined;\n }\n if (this.pollingDelayTimeoutId) {\n clearTimeout(this.pollingDelayTimeoutId);\n this.pollingDelayTimeoutId = undefined;\n }\n\n if (this.pollingIntervalId) {\n clearInterval(this.pollingIntervalId);\n this.pollingIntervalId = undefined;\n }\n\n const paymentButton = this.el?.querySelector('payment-button');\n if (paymentButton) {\n paymentButton.removeEventListener('submit', this.handleRedirect);\n }\n }\n\n private handleRedirect = () => {\n if (this.redirectTimeoutId) {\n clearTimeout(this.redirectTimeoutId);\n }\n\n this.showRedirectMessage = true;\n\n this.redirectTimeoutId = window.setTimeout(() => {\n window.open(this.redirectUrl, '_self');\n }, this.timeToRedirect);\n };\n\n private handleViewBranches = () => {\n window.open('https://www.pagofacil.com.ar/', '_blank');\n };\n\n private handleTimeUpdate = (event: CustomEvent<number>) => {\n this.minutesLeft = event.detail;\n };\n\n private startPolling = () => {\n if ((!this.qrCodeData && !this.bankTransferData) || !this.checkoutRequestId || this.isPolling) {\n return;\n }\n\n this.isPolling = true;\n this.pollingAttempts = 0;\n\n this.pollingIntervalId = window.setInterval(() => {\n this.checkPaymentStatus();\n }, POLLING_INTERVAL);\n };\n\n private stopPolling = () => {\n if (this.pollingIntervalId) {\n clearInterval(this.pollingIntervalId);\n this.pollingIntervalId = undefined;\n }\n this.isPolling = false;\n };\n\n private checkPaymentStatus = async () => {\n if (!this.checkoutRequestId) {\n return;\n }\n\n try {\n this.pollingAttempts++;\n\n const response = await getCheckoutRequest(\n this.checkoutRequestId,\n this.bearerToken,\n this.sessionId,\n );\n const isCompleted =\n response.status === STATUS_REQ_CHECKOUT_APM.APPROVED ||\n response.status === STATUS_REQ_CHECKOUT_APM.REJECTED;\n this.paymentStatusChange.emit({\n status: response.status,\n isCompleted: isCompleted,\n data: response.data,\n payment: response.payment,\n });\n\n if (isCompleted) {\n this.stopPolling();\n return;\n }\n\n if (this.pollingAttempts >= MAX_POLLING_ATTEMPTS) {\n this.stopPolling();\n return;\n }\n } catch (error) {\n console.error('Error checking payment status:', error);\n }\n };\n\n private generateDownloadData(): APMDownloadData {\n const downloadData: APMDownloadData = {\n paymentMethod: this.paymentMethod,\n referenceId: this.referenceId,\n providerName: this.providerName,\n expirationDate: this.expirationDate,\n country: this.country,\n minutesLeft: this.minutesLeft,\n amount: this.amount,\n currency: this.currency,\n };\n\n if (this.bankTransferData) {\n downloadData.bankTransferData = {\n bankName: this.bankTransferData.bankName,\n accountNumber: this.bankTransferData.account || this.bankTransferData.bbvAccountNumber,\n reference: this.bankTransferData.reference,\n clabe: this.bankTransferData.account || this.bankTransferData.clabe,\n destinationBank: this.bankTransferData.bankName,\n paymentReference: this.bankTransferData.reference,\n instructions: this.bankTransferData.instructions,\n };\n } else if (this.qrCodeData) {\n downloadData.qrCodeData = this.qrCodeData;\n } else if (this.barcode) {\n downloadData.barcode = this.barcode;\n }\n\n return downloadData;\n }\n\n private renderResponse() {\n // If redirectUrl is provided, show redirect message\n if (this.redirectUrl && this.showRedirectMessage) {\n const paymentMethodEnum = PaymentMethodMapper.mapToAPMPaymentMethod(\n this.paymentMethod,\n this.country,\n );\n const paymentMethodName = PaymentMethodMapper.getDisplayName(paymentMethodEnum);\n\n return (\n <div class=\"redirect-content\">\n <div class=\"redirect-text\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.GREY_300}>\n {this.currency === 'CLP' ? (\n I18nService.translate('apmCheckout.redirectMessageCLP')\n ) : (\n <span>\n {I18nService.translate('apmCheckout.redirectMessagePrefix')}{' '}\n <rebill-typography variant=\"overline\" color={COLORS_ENUM.GREY_300}>\n {paymentMethodName}\n </rebill-typography>{' '}\n {I18nService.translate('apmCheckout.redirectMessageSuffix')}\n </span>\n )}\n </rebill-typography>\n </div>\n </div>\n );\n }\n\n // If barcode is provided (for boleto), show boleto component\n if (this.barcode) {\n // Always use static boleto instructions for all languages\n const instructions = getBoletoInstructionsAsPaymentInstructions();\n\n return (\n <boleto-payment\n barcode={this.barcode}\n referenceId={this.referenceId}\n providerName={this.providerName}\n expirationDate={this.expirationDate}\n instructions={instructions}\n />\n );\n }\n\n // If referenceId is provided, show reference code component\n if (this.referenceId) {\n return <reference-code referenceId={this.referenceId} expirationDate={this.expirationDate} />;\n }\n\n // If qrCodeData is provided, show QR code component\n if (this.qrCodeData) {\n return (\n <qr-code\n qrCodeData={this.qrCodeData}\n code={this.code}\n providerName={this.providerName}\n expirationDate={this.expirationDate}\n paymentMethod={this.paymentMethod}\n onTimeUpdate={this.handleTimeUpdate}\n />\n );\n }\n\n if (this.bankTransferData) {\n return <bank-transfer bankTransferData={this.bankTransferData} />;\n }\n\n // Fallback - shouldn't happen in normal flow\n return null;\n }\n\n render() {\n const isRedirectMessage = this.redirectUrl && this.showRedirectMessage;\n const isCashPayment = this.paymentMethod === PAYMENT_METHOD_ENUM.CASH;\n const isPagoFacil = isCashPayment && this.country === 'AR';\n\n return (\n <div class={`apm-checkout ${isRedirectMessage ? 'redirect-message' : ''}`}>\n <div class=\"apm-content\">{this.renderResponse()}</div>\n\n <div class=\"apm-actions\">\n {!isRedirectMessage && isPagoFacil && (\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme=\"primary\"\n onClick={this.handleViewBranches}\n >\n <span class=\"button-content\">\n <span>{I18nService.translate('apmCheckout.viewBranches')}</span>\n <rebill-icon name=\"square-arrow-top-right\" />\n </span>\n </rebill-button>\n )}\n\n {!isRedirectMessage && <apm-download data={this.downloadData} />}\n </div>\n </div>\n );\n }\n}\n","/* Lottie Animation */\n.lottie-container {\n margin-bottom: 2rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lottie-animation {\n width: 166px;\n height: 165px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n/* Text Content */\n.text-content {\n margin-bottom: 2rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n/* Security Badge */\n.security-badge {\n width: 100%;\n max-width: 450px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #ebedef;\n border-radius: 8px;\n box-sizing: border-box;\n}\n\n.lock-icon {\n width: 16px;\n height: 16px;\n color: var(--rebill-color-text-secondary, #6b7280);\n}\n\n/* Animation */\n@keyframes pulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n}\n\n.contact-info {\n text-align: left;\n}\n\n/* Responsive Styles */\n@media (max-width: 1024px) {\n .security-badge {\n width: 100%;\n max-width: 100%;\n }\n\n .lottie-animation {\n width: 166px;\n height: 165px;\n }\n\n .text-content {\n gap: 12px;\n }\n}\n\n@media (max-width: 767px) {\n .processing-container {\n padding: 0 16px;\n }\n}\n\n.processing-container {\n width: 100%;\n max-width: 100%;\n overflow-x: hidden;\n box-sizing: border-box;\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\nimport { getAssetURL } from '../../../utils/assets';\nimport { BREAKPOINT_ENUM, getBreakpoint } from '../../../utils/breakpoint';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport '../../shared/card-icon/card-icon';\n\n@Component({\n tag: 'rebill-processing-payment',\n styleUrl: 'processing-payment.css',\n shadow: false,\n})\nexport class ProcessingPayment {\n @Prop() titleKey: string = 'processing.processingTitle';\n @Prop() subtitleKey: string = 'processing.processingSubtitle';\n @State() currentLocale: string = sessionState.currentLocale;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() loaderProgress: number = 0;\n @State() isLoadingLottie: boolean = true;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n private progressInterval?: number;\n private lottieContainer?: HTMLElement;\n private lottieAnimation?: any;\n\n componentWillLoad() {\n this.breakpoint = getBreakpoint(window.innerWidth);\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.currentLocale = sessionState.currentLocale;\n });\n }\n\n componentDidLoad() {\n window.addEventListener('resize', this.handleResize);\n this.loadLottieAnimation();\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n window.removeEventListener('resize', this.handleResize);\n this.stopLoaderAnimation();\n }\n\n private handleResize = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n private loadLottieAnimation = async () => {\n try {\n const lottie = await import('lottie-web');\n const animationData = await fetch(getAssetURL(`loader-card-v2.json`));\n const animationJson = await animationData.json();\n\n if (this.lottieContainer) {\n this.lottieAnimation = lottie.default.loadAnimation({\n container: this.lottieContainer,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: animationJson,\n });\n } else {\n this.startLoaderAnimation();\n }\n } catch (error) {\n this.startLoaderAnimation();\n }\n };\n\n private startLoaderAnimation = () => {\n const duration = 2000;\n const interval = 50; // Update every 50ms\n const increment = (interval / duration) * 100;\n\n this.progressInterval = window.setInterval(() => {\n this.loaderProgress = Math.min(this.loaderProgress + increment, 100);\n if (this.loaderProgress >= 100) {\n this.stopLoaderAnimation();\n }\n }, interval);\n };\n\n private stopLoaderAnimation = () => {\n if (this.progressInterval) {\n clearInterval(this.progressInterval);\n this.progressInterval = undefined;\n }\n if (this.lottieAnimation) {\n this.lottieAnimation.destroy();\n this.lottieAnimation = undefined;\n }\n };\n\n render() {\n return (\n <rebill-checkout-single-column>\n <div class=\"processing-container\">\n {/* Lottie Animation */}\n <div class=\"lottie-container\">\n <div ref={el => (this.lottieContainer = el)} class=\"lottie-animation\"></div>\n </div>\n <div class=\"text-content\">\n <rebill-typography variant=\"h3\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate(this.titleKey)}\n </rebill-typography>\n <rebill-typography variant=\"subtitle-bold\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate(this.subtitleKey)}\n </rebill-typography>\n </div>\n\n <rebill-alert\n type=\"secure\"\n variant=\"variant-secure\"\n icon=\"lock-outline\"\n message={I18nService.translate('otp.secureMessage')}\n />\n </div>\n </rebill-checkout-single-column>\n );\n }\n}\n",".boleto-payment {\n border: 1px solid var(--rebill-color-border, #f4f5f6);\n border-radius: 8px;\n background: var(--rebill-color-background, #ffffff);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.boleto-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-left);\n border-bottom: 1px solid var(--rebill-color-background-right);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-section rebill-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary, #3b4049);\n line-height: 24px;\n text-align: center;\n}\n\n.boleto-content {\n padding: 16px 0px 16px 0px;\n background: #ffffff !important;\n}\n\n.barcode-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n align-items: center;\n width: 100%;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.barcode-number {\n font-size: 12px;\n font-weight: 500;\n color: var(--rebill-color-text-primary, #000000);\n text-align: center;\n line-height: 24px;\n margin: 0;\n word-break: break-all;\n font-family:\n 'SF Pro Display',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.barcode-image-container {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.barcode-image {\n max-width: 100%;\n height: auto;\n display: block;\n}\n\n.copy-button {\n width: 100%;\n margin: 0;\n padding: 8px 16px;\n background: var(--rebill-color-background, #ffffff);\n border: 1px solid var(--rebill-color-border, #f4f5f6);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n font-family: var(--rebill-font-family);\n box-sizing: border-box;\n}\n\n.copy-button:hover {\n background: var(--rebill-color-background-secondary, #fafafa);\n}\n\n.copy-button-text {\n font-size: 14px;\n font-weight: 500;\n color: var(--rebill-color-primary-dark-blue, #001131);\n line-height: 1;\n display: flex;\n align-items: center;\n font-family:\n 'SF Pro Display',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n}\n\n.copy-button rebill-icon {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.copy-button svg {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle {\n width: 100%;\n padding: 8px 16px;\n background: none;\n border: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n font-size: 14px;\n font-weight: 400;\n color: var(--rebill-color-text-primary, #000000);\n transition: background-color 0.2s ease;\n font-family:\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n letter-spacing: 0.14px;\n line-height: 26px;\n}\n\n.instructions-toggle:hover {\n background: rgba(174, 174, 174, 0.1);\n}\n\n.instructions-toggle rebill-icon {\n width: 18px;\n height: 18px;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n color: rgba(174, 174, 174, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.instructions-toggle .chevron-open {\n transform: rotate(180deg);\n}\n\n.instructions-toggle .chevron-closed {\n transform: rotate(0deg);\n}\n\n.instructions-content {\n padding: 0 16px;\n background: var(--rebill-color-background);\n max-height: 0;\n overflow: hidden;\n transition:\n max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.instructions-content.open {\n max-height: 2000px;\n padding: 16px;\n}\n\n.instructions-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n padding: 0;\n}\n\n.instruction-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n}\n\n.instruction-number {\n background: var(--rebill-color-background-right);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.instruction-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-primary, #000000);\n line-height: normal;\n margin: 0;\n flex: 1;\n font-family:\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n white-space: pre-wrap;\n}\n\n@media (max-width: 768px) {\n .boleto-content {\n padding: 16px;\n }\n\n .barcode-number {\n font-size: 12px;\n }\n\n .instructions-toggle {\n padding: 8px 16px;\n }\n\n .instructions-content {\n padding: 16px;\n }\n}\n","import { Component, Element, h, Prop, State } from '@stencil/core';\nimport JsBarcode from 'jsbarcode';\nimport { PaymentInstruction } from '../../../../api/entities/checkout/types';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { copyToClipboard } from '../../../../utils/clipboard';\n\n@Component({\n tag: 'boleto-payment',\n styleUrl: 'boleto.css',\n shadow: false,\n})\nexport class BoletoPayment {\n @Element() el: HTMLElement;\n\n @Prop() barcode: string;\n @Prop() referenceId?: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() instructions: PaymentInstruction[] = [];\n\n @State() showInstructions = true;\n @State() hasCopied = false;\n\n private toggleInstructions = () => {\n this.showInstructions = !this.showInstructions;\n };\n\n private getExpirationDate = (): string => {\n // Boleto payments always expire 7 days from now, regardless of prop\n // Calculate 7 days from now using milliseconds to avoid month rollover issues\n const now = new Date();\n const expirationDate = new Date(now);\n expirationDate.setTime(now.getTime() + 7 * 24 * 60 * 60 * 1000);\n\n // Return as ISO string\n return expirationDate.toISOString();\n };\n\n private formatExpirationDateTime = (dateString: string): string => {\n try {\n const date = new Date(dateString);\n // Check if date is valid\n if (isNaN(date.getTime())) {\n return dateString;\n }\n\n const currentLanguage = I18nService.getCurrentLanguage();\n const locale =\n currentLanguage === 'es' ? 'es-ES' : currentLanguage === 'pt' ? 'pt-BR' : 'en-US';\n\n // Format date using local timezone\n const formattedDate = date.toLocaleDateString(locale, {\n day: '2-digit',\n month: '2-digit',\n });\n\n const formattedTime = date.toLocaleTimeString(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${formattedDate} ${formattedTime}`;\n } catch (error) {\n return dateString;\n }\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const instruction = this.instructions.find(inst => inst.language === currentLanguage);\n const instructionText = instruction?.text || this.instructions[0]?.text || '';\n\n // Split by line breaks and filter out empty lines\n return instructionText.split('\\n').filter(line => line.trim().length > 0);\n };\n\n componentDidLoad() {\n this.generateBarcode();\n }\n\n componentDidUpdate() {\n this.generateBarcode();\n }\n\n private generateBarcode = () => {\n if (!this.barcode) return;\n\n const svgElement = this.el.querySelector('.barcode-image') as SVGSVGElement;\n if (!svgElement) return;\n\n try {\n JsBarcode(svgElement, this.barcode, {\n format: 'CODE128',\n displayValue: false, // Hide the text below the barcode\n width: 2,\n height: 60,\n margin: 0,\n });\n } catch (error) {\n console.error('Failed to generate barcode:', error);\n }\n };\n\n private handleCopyCode = async () => {\n if (!this.barcode) return;\n try {\n await copyToClipboard(this.barcode);\n this.hasCopied = true;\n setTimeout(() => {\n this.hasCopied = false;\n }, 2000);\n } catch (error) {\n console.error('Failed to copy barcode:', error);\n }\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n const currentLanguage = I18nService.getCurrentLanguage();\n const payBeforeText =\n currentLanguage === 'es'\n ? 'Pagar antes del'\n : currentLanguage === 'pt'\n ? 'Pagar antes de'\n : 'Pay before';\n\n return (\n <div class=\"boleto-payment\">\n {/* Header with expiration */}\n <div class=\"boleto-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {payBeforeText} {this.formatExpirationDateTime(this.getExpirationDate())}\n </span>\n </div>\n </div>\n\n {/* Barcode section */}\n <div class=\"boleto-content\">\n <div class=\"barcode-section\">\n {this.barcode && (\n <>\n <p class=\"barcode-number\">{this.barcode}</p>\n <div class=\"barcode-image-container\">\n <svg class=\"barcode-image\" aria-label=\"Boleto barcode\" />\n </div>\n <button class=\"copy-button\" onClick={this.handleCopyCode} type=\"button\">\n <span class=\"copy-button-text\">\n {I18nService.translate('qrCode.copyCode') || 'Copiar código'}\n </span>\n {this.hasCopied ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.62256 10.8855L8.24756 13.5418L14.3726 6.45844\"\n stroke=\"#35B093\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n ) : (\n <rebill-icon name=\"copy\" />\n )}\n </button>\n </>\n )}\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {this.instructions.length > 0 && (\n <div class=\"instructions-section\">\n <button\n class=\"instructions-toggle\"\n onClick={this.toggleInstructions}\n type=\"button\"\n aria-expanded={this.showInstructions.toString()}\n aria-controls=\"instructions-content\"\n >\n <span>\n {I18nService.translate('qrCode.instructionsLabel') || 'Ver instrucciones'}\n </span>\n <rebill-icon\n name=\"chevron-down\"\n class={this.showInstructions ? 'chevron-open' : 'chevron-closed'}\n />\n </button>\n\n <div\n class={`instructions-content ${this.showInstructions ? 'open' : ''}`}\n id=\"instructions-content\"\n role=\"region\"\n aria-labelledby=\"instructions-toggle\"\n >\n <div class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <div key={index} class=\"instruction-item\">\n <div class=\"instruction-number\">{index + 1}</div>\n <p class=\"instruction-text\">{line}</p>\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n",".user-information-static {\n width: 100%;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n font-size: 14px;\n}\n\n.user-information-static.otp {\n flex-direction: column;\n gap: 12px;\n justify-content: flex-start;\n}\n.user-information-static-content.otp {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n}\n\n.user-information-static-content.otp rebill-button {\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\nexport interface UserInfoData {\n customerName: string;\n customerEmail: string;\n}\n\n@Component({\n tag: 'user-information-static',\n styleUrl: 'user-information-static.css',\n shadow: false,\n})\nexport class UserInformationStatic {\n @Prop() userInfo!: UserInfoData;\n @Prop() variant: 'renewal' | 'otp' = 'renewal';\n @Event() signOut: EventEmitter<boolean>;\n\n handleSignOut() {\n this.signOut.emit(false);\n }\n\n render() {\n return (\n <div class={`user-information-static ${this.variant}`}>\n <div class={`user-information-static-content ${this.variant}`}>\n <rebill-typography variant=\"subtitle-bold\" class=\"greeting\">\n {I18nService.translate('userInformation.greeting', {\n name: this.userInfo.customerName,\n })}\n </rebill-typography>\n {this.variant === 'otp' && (\n <rebill-button variant=\"text\" size=\"small\" onClick={() => this.handleSignOut()}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <rebill-typography variant=\"subtitle-bold\" color={COLORS_ENUM.PRIMARY_DARK}>\n {I18nService.translate('userInformation.signOut')}\n </rebill-typography>\n <rebill-icon name=\"logout\" size=\"12px\" />\n </div>\n </rebill-button>\n )}\n </div>\n\n <span style={{ display: 'flex', alignItems: 'center', gap: '7px' }}>\n <rebill-icon name=\"email\" size=\"12px\" color={COLORS_ENUM.GREY_700} />\n {this.userInfo.customerEmail}\n </span>\n </div>\n );\n }\n}\n","apm-download {\n flex: 1;\n display: block;\n}\n\napm-download rebill-button {\n width: 100%;\n}\n\n.button-content {\n display: flex;\n align-items: center;\n gap: 12px;\n overflow: hidden;\n}\n\n.button-content rebill-icon {\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n flex-shrink: 0;\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../../../models/enums/payment-methods.enum';\nimport { PDFGenerator } from '../../../../utils';\n\nexport interface APMDownloadData {\n // QR Code data (for PIX, QR, etc.)\n qrCodeData?: string;\n\n // Barcode data (for Boleto)\n barcode?: string;\n\n // Bank transfer data (for SPEI, PSE, etc.)\n bankTransferData?: {\n accountNumber?: string;\n bankName?: string;\n reference?: string;\n clabe?: string;\n destinationBank?: string;\n paymentReference?: string;\n instructions?: string;\n };\n\n // Common data\n referenceId?: string;\n providerName?: string;\n expirationDate?: string;\n paymentMethod: PAYMENT_METHOD_ENUM;\n country?: string;\n amount?: number;\n currency?: string;\n productTitle?: string;\n customerEmail?: string;\n minutesLeft?: number;\n}\n\n@Component({\n tag: 'apm-download',\n styleUrl: 'apm-download.css',\n shadow: false,\n})\nexport class APMDownload {\n @Prop() data: APMDownloadData;\n\n private handleDownload = async () => {\n if (!this.data) return;\n\n try {\n let minutesLeft = 60;\n\n if (this.data.minutesLeft !== undefined) {\n minutesLeft = this.data.minutesLeft;\n }\n\n await PDFGenerator.generateAndDownloadPDF({\n paymentMethod: this.data.paymentMethod,\n referenceId: this.data.referenceId,\n qrCodeData: this.data.qrCodeData,\n barcode: this.data.barcode,\n bankTransferData: this.data.bankTransferData,\n providerName: this.data.providerName || '',\n expirationDate: this.data.expirationDate || '',\n minutesLeft: minutesLeft,\n country: this.data.country,\n amount: this.data.amount,\n currency: this.data.currency,\n });\n } catch (error) {\n console.error('Error downloading APM instructions:', error);\n }\n };\n\n render() {\n if (!this.data) return null;\n\n return (\n <rebill-button\n type=\"button\"\n variant=\"filled\"\n theme=\"primary-dark\"\n onClick={this.handleDownload}\n >\n <span class=\"button-content\">\n <span>{I18nService.translate('apmCheckout.download')}</span>\n <rebill-icon name=\"download\" />\n </span>\n </rebill-button>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.bank-transfer-data-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n.bank-transfer-data {\n padding: 0 16px;\n background: transparent;\n border: none;\n border-radius: 0;\n}\n\n.bank-transfer-steps {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.instruction-step {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.step-number {\n background: var(--rebill-color-background-right);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.step-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.step-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.bank-data-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n padding: 8px 0;\n border-bottom: none;\n}\n\n.value-with-copy {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Bank transfer simple styles */\n.bank-data-simple {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 0 16px;\n}\n\n.instruction-text {\n margin-bottom: 16px;\n}\n\n.data-section {\n margin-bottom: 16px;\n}\n\n.transfer-data-title {\n text-align: center;\n margin-bottom: 16px;\n padding-bottom: 8px;\n}\n\n.bank-data-item-simple {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Bank logos styles */\n.bank-logos-container {\n margin-top: 16px;\n padding-top: 16px;\n}\n\n.bank-logos-row {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n gap: 11px;\n align-self: stretch;\n flex-wrap: wrap;\n}\n\n.bank-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n border-radius: 4px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n transition: all 0.2s ease;\n}\n\n.bank-logo:hover {\n background: var(--rebill-color-background-secondary);\n transform: translateY(-1px);\n}\n.bank-transfer-data-container {\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.transfer-data-header {\n display: flex;\n padding: 16px 0;\n flex-direction: column;\n align-items: center;\n gap: var(--Spacing-s, 8px);\n align-self: stretch;\n border: 1px solid var(--Neutrals-Neutrals-50, #f4f5f6);\n background: var(--Primary-Base-White, #fafafa);\n}\n\n.transfer-data-header rebill-typography {\n color: var(--Primary-Base-Black, #000) !important;\n text-align: center;\n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n}\n/* Mobile responsive */\n@media (max-width: 768px) {\n .bank-transfer-data-container {\n gap: 12px;\n }\n\n .instruction-step {\n gap: 6px;\n }\n\n .step-number {\n width: 18px;\n height: 18px;\n }\n\n .bank-logos-row {\n gap: 8px;\n }\n\n .bank-logo {\n padding: 6px;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { sessionState } from '../../../../store/session.store';\nimport { formatAmountWithoutCurrency } from '../../../../utils';\nimport { copyToClipboard } from '../../../../utils/clipboard';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\n\n@Component({\n tag: 'bank-transfer',\n styleUrl: 'bank-transfer.css',\n shadow: false,\n})\nexport class BankTransfer {\n @Prop() bankTransferData: any;\n\n private renderSimpleBankData(data: any) {\n return (\n <div class=\"bank-data-simple\">\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.clabe')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {data.account}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard(data.account)}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n\n <div class=\"bank-data-item-simple\" style={{ height: '32px', boxSizing: 'border-box' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.nameSurname')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n Rebill Payments\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard('Rebill Payments')}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('summary.totalAmount')}\n {': '}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {formatAmountWithoutCurrency(\n sessionState.data?.pricing?.total,\n sessionState.data?.pricing?.currency,\n )}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() =>\n copyToClipboard(\n formatAmountWithoutCurrency(\n sessionState.data?.pricing?.total,\n sessionState.data?.pricing?.currency,\n ),\n )\n }\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n <div class=\"bank-data-item-simple\" style={{ height: '32px', boxSizing: 'border-box' }}>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.destinationBank')}\n </rebill-typography>\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.paymentTransferSystem')}\n </rebill-typography>\n </div>\n\n <div class=\"bank-data-item-simple\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('apmCheckout.paymentReference')}\n </rebill-typography>\n <div class=\"value-with-copy\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {data.reference}\n </rebill-typography>\n <rebill-button\n variant=\"text\"\n size=\"small\"\n onClick={() => copyToClipboard(data.reference)}\n type=\"button\"\n >\n <rebill-icon name=\"copy\" size=\"16px\" />\n </rebill-button>\n </div>\n </div>\n </div>\n );\n }\n\n private renderInstructions() {\n const instructions = [\n I18nService.translate('bankTransfer.step1Instruction'),\n I18nService.translate('bankTransfer.step2Instruction'),\n I18nService.translate('bankTransfer.step3Instruction'),\n I18nService.translate('bankTransfer.step4Instruction'),\n I18nService.translate('bankTransfer.step5Instruction'),\n I18nService.translate('bankTransfer.step6Instruction'),\n ];\n\n return (\n <div class=\"bank-transfer-steps\">\n {instructions.map((instruction, index) => (\n <div class=\"instruction-step\" key={index}>\n <div class=\"step-number\">\n <rebill-typography variant=\"caption\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {index + 1}\n </rebill-typography>\n </div>\n <div class=\"step-content\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {instruction}\n </rebill-typography>\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n private renderBankLogos() {\n const bankLogos = [\n 'banco-azteca',\n 'banamex',\n 'inbursa',\n 'banco-santander',\n 'banorte',\n 'hsbc',\n 'scotiabank',\n ];\n\n return (\n <div class=\"bank-logos-container\">\n <div class=\"bank-logos-row\">\n {bankLogos.map(logoName => (\n <div class=\"bank-logo\" key={logoName}>\n <rebill-icon name={logoName} size=\"32px\" />\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.bankTransferData) {\n return null;\n }\n\n const bankData = Array.isArray(this.bankTransferData)\n ? this.bankTransferData\n : [this.bankTransferData];\n\n if (bankData.length === 0) {\n return null;\n }\n\n return (\n <div class=\"bank-transfer-data-container\">\n <div class=\"transfer-data-header\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT} align=\"center\">\n {I18nService.translate('bankTransfer.transferData')}\n </rebill-typography>\n </div>\n <div class=\"bank-transfer-data\">{this.renderSimpleBankData(bankData[0])}</div>\n <collapsible-card\n header={I18nService.translate('apmCheckout.viewInstructions')}\n open={true}\n variant=\"flat\"\n >\n {this.renderInstructions()}\n {this.renderBankLogos()}\n </collapsible-card>\n </div>\n );\n }\n}\n",".qr-code {\n border: 1px solid var(--rebill-color-background-right);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.qr-code-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-left);\n border-bottom: 1px solid var(--rebill-color-background-right);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary);\n}\n\n.qr-code-content {\n padding: 16px 0px 16px 0px;\n background: #ffffff !important;\n}\n\n.qr-section {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n background: #ffffff !important;\n}\n\n.qr-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n background: var(--rebill-color-background);\n position: relative;\n border-radius: 8px;\n}\n\n.qr-container::before,\n.qr-container::after {\n content: '';\n position: absolute;\n width: 32px;\n height: 32px;\n border: 2px solid var(--rebill-color-green);\n}\n\n/* Top-left corner */\n.qr-container::before {\n top: -2px;\n left: -2px;\n border-right: none;\n border-bottom: none;\n border-top-left-radius: 8px;\n}\n\n/* Top-right corner */\n.qr-container::after {\n top: -2px;\n right: -2px;\n border-left: none;\n border-bottom: none;\n border-top-right-radius: 8px;\n}\n\n/* Bottom corners */\n.corner-bottom-left,\n.corner-bottom-right {\n position: absolute;\n width: 32px;\n height: 32px;\n border: 2px solid var(--rebill-color-green);\n}\n\n/* Bottom-left corner */\n.corner-bottom-left {\n bottom: -2px;\n left: -2px;\n border-right: none;\n border-top: none;\n border-bottom-left-radius: 8px;\n}\n\n/* Bottom-right corner */\n.corner-bottom-right {\n bottom: -2px;\n right: -2px;\n border-left: none;\n border-top: none;\n border-bottom-right-radius: 8px;\n}\n\n.qr-image {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 146px;\n height: 146px;\n background: #ffffff !important;\n border-radius: 4px;\n}\n\n.qr-image svg {\n width: 146px;\n height: 146px;\n border-radius: 4px;\n background: #ffffff !important;\n}\n\n.qr-image img {\n width: 146px;\n height: 146px;\n border-radius: 4px;\n background: #ffffff !important;\n}\n\n/* Scanner line animation */\n.scanner-line {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background: linear-gradient(90deg, transparent, var(--rebill-color-green), transparent);\n box-shadow: 0 0 10px var(--rebill-color-green);\n animation: scanDown 2s ease-in-out;\n animation-fill-mode: forwards;\n z-index: 10;\n}\n\n@keyframes scanDown {\n 0% {\n top: 100%;\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n top: 0;\n opacity: 0;\n }\n}\n\n.qr-instruction {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-content {\n padding: 16px 16px 16px 16px;\n background: var(--rebill-color-background);\n}\n\n.instructions-list {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.instruction-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n text-align: left;\n}\n\n.instruction-item:not(:last-child) {\n margin-bottom: 8px;\n}\n\n.instruction-number {\n background: var(--rebill-color-background-right);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-align: center;\n line-height: 1;\n}\n\n.instruction-number rebill-typography {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n}\n\n.instruction-text {\n flex: 1;\n}\n\n.copy-btn {\n display: flex;\n padding: var(--padding-base, 6px) var(--padding-xl, 10px);\n justify-content: center;\n align-items: center;\n gap: var(--padding-lg, 8px);\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { PAYMENT_METHOD_ENUM } from '../../../../components';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { sessionState } from '../../../../store/session.store';\nimport { copyToClipboard } from '../../../../utils/clipboard';\nimport { COLORS_ENUM } from '../../../../utils/color-class-mapper';\nimport { decodeQRData, generateQRCodeSVG, isBase64Image } from '../../../../utils/qr-code';\nimport { getCurrencyInstructions } from '../../../../utils/qr-instructions';\nimport { createCountdownTimer, formatTimeMMSSMax60 } from '../../../../utils/timer';\n\n@Component({\n tag: 'qr-code',\n styleUrl: 'qr-code.css',\n shadow: false,\n})\nexport class QrCode {\n @Prop() qrCodeData: string;\n @Prop() providerName: string;\n @Prop() expirationDate: string;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() code: string;\n\n @State() qrCodeSvg: string = '';\n @State() isImage: boolean = false;\n @State() timeLeft: number = 3600; // 1 hora (3600 segundos) por defecto\n @State() formattedTime: string = '59:60';\n @State() hasCopied: boolean = false;\n\n @Event() timeUpdate: EventEmitter<number>; // Emitir minutos restantes\n\n private countdownTimer: ReturnType<typeof createCountdownTimer> | null = null;\n\n async componentWillLoad() {\n await this.generateQRCode();\n this.startCountdownTimer();\n // Emitir el tiempo inicial (60 minutos)\n this.timeUpdate.emit(60);\n }\n\n async componentWillUpdate() {\n // Regenerate QR code if data changes\n await this.generateQRCode();\n }\n\n disconnectedCallback() {\n // Limpiar el timer cuando el componente se desmonte\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n }\n }\n\n private async generateQRCode() {\n try {\n if (!this.qrCodeData) {\n this.qrCodeSvg = '';\n this.isImage = false;\n return;\n }\n\n // Check if the data is already an image\n if (isBase64Image(this.qrCodeData)) {\n this.isImage = true;\n this.qrCodeSvg = ''; // No QR code needed for images\n return;\n }\n\n // For non-image data, generate QR code\n this.isImage = false;\n const decodedData = decodeQRData(this.qrCodeData);\n const qrCodeSvg = await generateQRCodeSVG(decodedData);\n this.qrCodeSvg = qrCodeSvg;\n } catch (error) {\n console.error('Error generating QR code:', error);\n this.qrCodeSvg = '';\n this.isImage = false;\n }\n }\n\n private startCountdownTimer = () => {\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n }\n this.countdownTimer = createCountdownTimer({\n duration: 3600,\n onTick: (timeLeft: number) => {\n this.timeLeft = timeLeft;\n this.formattedTime = formatTimeMMSSMax60(timeLeft);\n\n const minutesLeft = Math.ceil(timeLeft / 60);\n this.timeUpdate.emit(minutesLeft);\n },\n onComplete: () => {\n this.timeLeft = 0;\n this.formattedTime = '00:00';\n this.timeUpdate.emit(0);\n },\n });\n\n this.countdownTimer.start();\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const currency = sessionState.data.pricing.country;\n return getCurrencyInstructions(currency, currentLanguage);\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n\n return (\n <div class=\"qr-code\">\n {/* Header with countdown timer */}\n <div class=\"qr-code-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {I18nService.translate('qrCode.expirationLabel', { time: this.formattedTime })}\n </span>\n </div>\n </div>\n\n {/* QR code content */}\n <div class=\"qr-code-content\">\n <div class=\"qr-section\">\n <div class=\"qr-instruction\">\n <rebill-typography\n variant=\"subtitle-bold\"\n style={{ fontSize: '12px' }}\n color={COLORS_ENUM.GREY_300}\n >\n {I18nService.translate('qrCode.scanInstruction')}\n </rebill-typography>\n </div>\n <div class=\"qr-container\">\n {this.isImage ? (\n <img\n src={`data:image/png;base64,${this.qrCodeData}`}\n alt=\"QR Code\"\n class=\"qr-image\"\n />\n ) : (\n <div class=\"qr-image\" innerHTML={this.qrCodeSvg}></div>\n )}\n <div class=\"scanner-line\"></div>\n <div class=\"corner-bottom-left\"></div>\n <div class=\"corner-bottom-right\"></div>\n </div>\n {this.code && (\n <rebill-button\n class=\"copy-btn\"\n variant=\"secondary\"\n size=\"small\"\n onClick={async () => {\n if (!this.code) return;\n await copyToClipboard(this.code);\n this.hasCopied = true;\n setTimeout(() => (this.hasCopied = false), 2000);\n }}\n type=\"button\"\n >\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('qrCode.copyCode')}\n </rebill-typography>\n {this.hasCopied ? (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.62256 10.8855L8.24756 13.5418L14.3726 6.45844\"\n stroke=\"#35B093\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n ) : (\n <rebill-icon name=\"copy\" size=\"16px\" />\n )}\n </rebill-button>\n )}\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {instructionLines.length > 0 && (\n <collapsible-card\n variant=\"flat\"\n header={I18nService.translate('qrCode.instructionsLabel')}\n open={false}\n >\n <div>\n <ol class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <li key={index} class=\"instruction-item\">\n <div class=\"instruction-number\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREY_300}>\n {index + 1}\n </rebill-typography>\n </div>\n <div class=\"instruction-text\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREY_300}>\n {line}\n </rebill-typography>\n </div>\n </li>\n ))}\n </ol>\n </div>\n </collapsible-card>\n )}\n </div>\n );\n }\n}\n",".bank-selector {\n margin-top: 16px;\n}\n","import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { Bank } from '../../../api/entities/checkout/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'rebill-bank-selector',\n styleUrl: 'bank-selector.css',\n shadow: false,\n})\nexport class BankSelector {\n @Prop() banks: Bank[] = [];\n @Prop() defaultSelectedBankId: string = '';\n @Prop() error?: string;\n @Prop() disabled?: boolean = false;\n @State() selectedBankId: string = '';\n @State() languageUpdateTrigger: number = 0;\n @Event() bankSelected: EventEmitter<string>;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n\n private handleBankSelection = (bankCode: string) => {\n const selectedBank = this.banks.find(bank => bank.code === bankCode);\n if (selectedBank) {\n SessionStore.setBankId(selectedBank);\n this.bankSelected.emit(selectedBank.code);\n }\n };\n\n componentWillLoad() {\n if (this.defaultSelectedBankId) {\n this.selectedBankId = this.defaultSelectedBankId;\n }\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n render() {\n if (!this.banks || this.banks.length === 0) {\n return null;\n }\n const sortedBanks = [...this.banks].sort((a, b) => a.name.localeCompare(b.name));\n\n const bankOptions = sortedBanks.map(bank => ({\n label: bank.name,\n value: bank.code,\n }));\n\n const translatedError =\n this.error && (this.error.includes('validation.') || this.error.includes('paymentErrors.'))\n ? I18nService.translate(this.error)\n : this.error || '';\n\n return (\n <div class=\"bank-selector\">\n <rebill-input-select\n id=\"bankId\"\n options={bankOptions}\n placeholder={I18nService.translate('bankSelector.placeholder')}\n error={translatedError}\n disabled={this.disabled}\n onInput={e => {\n const eventDetail = (e as CustomEvent).detail;\n if (eventDetail && eventDetail.value) {\n this.handleBankSelection(eventDetail.value);\n }\n }}\n searchable={true}\n searchPlaceholder={I18nService.translate('bankSelector.searchPlaceholder')}\n />\n </div>\n );\n }\n}\n",".reference-code {\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n background: var(--rebill-color-background);\n overflow: hidden;\n font-family: var(--rebill-font-family);\n margin-top: 24px;\n}\n\n.reference-code-header {\n padding: 16px 24px;\n background: var(--rebill-color-background-secondary);\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.expiration-section {\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n}\n\n.expiration-text {\n font-size: 12px;\n font-weight: 400;\n color: var(--rebill-color-text-secondary);\n}\n\n.reference-code-content {\n padding: 32px 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 32px;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.reference-section {\n flex: 1;\n text-align: center;\n position: relative;\n}\n\n.reference-section::after {\n content: '';\n position: absolute;\n right: -16px;\n top: 50%;\n transform: translateY(-50%);\n width: 1px;\n height: 60px;\n background: var(--rebill-color-border);\n}\n\n.provider-section {\n flex: 1;\n text-align: center;\n}\n\n.reference-label,\n.provider-label {\n font-size: 12px;\n color: var(--rebill-color-text-secondary-light);\n margin-bottom: 12px;\n text-transform: uppercase;\n font-weight: 400;\n letter-spacing: 0%;\n}\n\n.reference-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.provider-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.instructions-section {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle {\n width: 100%;\n padding: 20px 24px;\n background: none;\n border: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n font-size: 15px;\n font-weight: 500;\n color: var(--rebill-color-text-primary);\n transition: background-color 0.2s ease;\n}\n\n.instructions-toggle:hover {\n background: var(--rebill-color-background-secondary);\n}\n\n.instructions-toggle rebill-icon {\n transition: transform 0.2s ease;\n}\n\n.instructions-toggle[aria-expanded='true'] rebill-icon {\n transform: rotate(180deg);\n}\n\n.instructions-content {\n padding: 16px 16px 16px 16px;\n background: var(--rebill-color-background);\n border-top: 1px solid var(--rebill-color-border);\n}\n\n.instructions-title {\n margin: 20px 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--rebill-color-text-primary);\n}\n\n.instructions-text {\n color: var(--rebill-color-text-secondary);\n}\n\n.instructions-list {\n list-style: none;\n padding: 0;\n margin: 0;\n counter-reset: instruction-counter;\n}\n\n.instructions-list li {\n counter-increment: instruction-counter;\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 16px;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.instructions-list li::before {\n content: counter(instruction-counter);\n background: #f4f5f6;\n color: black;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 400;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.instructions-list li:last-child {\n margin-bottom: 0;\n}\n\n@media (max-width: 768px) {\n .reference-code-content {\n flex-direction: column;\n gap: 24px;\n padding: 24px 20px;\n }\n\n .reference-section::after {\n display: none;\n }\n\n .reference-section,\n .provider-section {\n text-align: center;\n width: 100%;\n }\n\n .reference-section {\n padding-bottom: 24px;\n border-bottom: 1px solid var(--rebill-color-border);\n }\n\n .instructions-toggle {\n padding: 16px 20px;\n }\n\n .instructions-content {\n padding: 0 20px 20px 20px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { PaymentInstruction } from '../../../../api/entities/checkout/types';\nimport { I18nService } from '../../../../i18n/i18n.service';\n\n@Component({\n tag: 'reference-code',\n styleUrl: 'reference-code.css',\n shadow: false,\n})\nexport class ReferenceCode {\n @Prop() referenceId: string;\n @Prop() expirationDate: string;\n @Prop() instructions: PaymentInstruction[] = [];\n\n @State() showInstructions = false;\n\n private toggleInstructions = () => {\n this.showInstructions = !this.showInstructions;\n };\n\n private formatExpirationDate = (dateString: string): string => {\n try {\n const date = new Date(dateString);\n return date.toLocaleDateString('es-ES', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n } catch (error) {\n return dateString;\n }\n };\n\n private getCurrentLanguageInstructions = (): string[] => {\n const currentLanguage = I18nService.getCurrentLanguage();\n const instruction = this.instructions.find(inst => inst.language === currentLanguage);\n const instructionText = instruction?.text || this.instructions[0]?.text || '';\n\n // Split by line breaks and filter out empty lines\n return instructionText.split('\\n').filter(line => line.trim().length > 0);\n };\n\n render() {\n const instructionLines = this.getCurrentLanguageInstructions();\n\n return (\n <div class=\"reference-code\">\n {/* Header with expiration */}\n <div class=\"reference-code-header\">\n <div class=\"expiration-section\">\n <rebill-icon name=\"calendar-clock\" />\n <span class=\"expiration-text\">\n {I18nService.translate('referenceCode.expirationLabel')}{' '}\n {this.formatExpirationDate(this.expirationDate)}\n </span>\n </div>\n </div>\n\n {/* Reference code and provider */}\n <div class=\"reference-code-content\">\n <div class=\"reference-section\">\n <div class=\"reference-label\">\n {I18nService.translate('referenceCode.referenceLabel')}\n </div>\n <div class=\"reference-value\">{this.referenceId}</div>\n </div>\n </div>\n\n {/* Collapsible instructions */}\n {this.instructions.length > 0 && (\n <div class=\"instructions-section\">\n <button\n class=\"instructions-toggle\"\n onClick={this.toggleInstructions}\n type=\"button\"\n aria-expanded={this.showInstructions.toString()}\n aria-controls=\"instructions-content\"\n >\n <span>{I18nService.translate('referenceCode.instructionsLabel')}</span>\n <rebill-icon name=\"chevron-down\" />\n </button>\n\n {this.showInstructions && (\n <div\n class=\"instructions-content\"\n id=\"instructions-content\"\n role=\"region\"\n aria-labelledby=\"instructions-toggle\"\n >\n <div class=\"instructions-text\">\n <ol class=\"instructions-list\">\n {instructionLines.map((line, index) => (\n <li key={index}>{line}</li>\n ))}\n </ol>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n}\n"],"names":["api","STATUS_REQ_CHECKOUT_APM","PaymentMethodMapper","h","COLORS_ENUM","I18nService","getBoletoInstructionsAsPaymentInstructions","PAYMENT_METHOD_ENUM","sessionState","BREAKPOINT_ENUM","getBreakpoint","SessionStore","getAssetURL","JsBarcode","copyToClipboard","PDFGenerator","formatAmountWithoutCurrency","isBase64Image","decodeQRData","generateQRCodeSVG","createCountdownTimer","formatTimeMMSSMax60","getCurrencyInstructions"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index$1 = require('./index-CoibgVZr.js');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-Cr4YHGTh.js');
|
|
5
5
|
var i18n_service = require('./i18n.service-VY7vcrnf.js');
|
|
6
6
|
var statusReqCheckoutApm_enum = require('./status-req-checkout-apm.enum-BcCXZY86.js');
|
|
7
7
|
var html2canvas = require('./pdf-generator-CZDNR3BQ.js');
|
|
@@ -21,9 +21,9 @@ require('./get-payment-method-display-name-dmfPuqA_.js');
|
|
|
21
21
|
* @param bearerToken - The bearer token for authentication
|
|
22
22
|
* @returns Promise with checkout status information
|
|
23
23
|
*/
|
|
24
|
-
const getCheckoutRequest = async (reqId, bearerToken) => {
|
|
24
|
+
const getCheckoutRequest = async (reqId, bearerToken, sessionId) => {
|
|
25
25
|
try {
|
|
26
|
-
const response = await index.api.checkout.getCheckoutRequestPaymentAPM(reqId, bearerToken);
|
|
26
|
+
const response = await index.api.checkout.getCheckoutRequestPaymentAPM(reqId, bearerToken, sessionId);
|
|
27
27
|
return response.data;
|
|
28
28
|
}
|
|
29
29
|
catch (error) {
|
|
@@ -54,6 +54,7 @@ const APMCheckout = class {
|
|
|
54
54
|
timeToRedirect = DEFAULT_REDIRECT_TIMEOUT;
|
|
55
55
|
checkoutRequestId; // ID para hacer polling
|
|
56
56
|
bearerToken;
|
|
57
|
+
sessionId;
|
|
57
58
|
bankTransferData;
|
|
58
59
|
barcode;
|
|
59
60
|
amount;
|
|
@@ -140,7 +141,7 @@ const APMCheckout = class {
|
|
|
140
141
|
}
|
|
141
142
|
try {
|
|
142
143
|
this.pollingAttempts++;
|
|
143
|
-
const response = await getCheckoutRequest(this.checkoutRequestId, this.bearerToken);
|
|
144
|
+
const response = await getCheckoutRequest(this.checkoutRequestId, this.bearerToken, this.sessionId);
|
|
144
145
|
const isCompleted = response.status === statusReqCheckoutApm_enum.STATUS_REQ_CHECKOUT_APM.APPROVED ||
|
|
145
146
|
response.status === statusReqCheckoutApm_enum.STATUS_REQ_CHECKOUT_APM.REJECTED;
|
|
146
147
|
this.paymentStatusChange.emit({
|
|
@@ -223,7 +224,7 @@ const APMCheckout = class {
|
|
|
223
224
|
const isRedirectMessage = this.redirectUrl && this.showRedirectMessage;
|
|
224
225
|
const isCashPayment = this.paymentMethod === i18n_service.PAYMENT_METHOD_ENUM.CASH;
|
|
225
226
|
const isPagoFacil = isCashPayment && this.country === 'AR';
|
|
226
|
-
return (index$1.h("div", { key: '
|
|
227
|
+
return (index$1.h("div", { key: '652b6ddd99c9f5aa4d780c27e28b1ec395ff1692', class: `apm-checkout ${isRedirectMessage ? 'redirect-message' : ''}` }, index$1.h("div", { key: '0cd18a1e8fdd53894dca5f621d0a39bdcad83bf6', class: "apm-content" }, this.renderResponse()), index$1.h("div", { key: 'c0b9dc925360b2a4f18aa58680ee26c85e7d3883', class: "apm-actions" }, !isRedirectMessage && isPagoFacil && (index$1.h("rebill-button", { key: '0bb628948a65f041bbec4c96e714a3e85081e67b', type: "button", variant: "outline", theme: "primary", onClick: this.handleViewBranches }, index$1.h("span", { key: '6b6b4f78eea1895680e7a0ed67d934685927b4ab', class: "button-content" }, index$1.h("span", { key: '41345751ecd09b3148456827270f9e5c89aaf0e2' }, i18n_service.I18nService.translate('apmCheckout.viewBranches')), index$1.h("rebill-icon", { key: '3c81dd30f92fcff44d9f0145abbf888a10c6078d', name: "square-arrow-top-right" })))), !isRedirectMessage && index$1.h("apm-download", { key: '9828888c0c3ad389ef37bd68a677a1d8bd2857a9', data: this.downloadData }))));
|
|
227
228
|
}
|
|
228
229
|
};
|
|
229
230
|
APMCheckout.style = apmCheckoutCss;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var index = require('./index-CoibgVZr.js');
|
|
4
4
|
var renewal_store = require('./renewal.store-DDi85lwj.js');
|
|
5
5
|
var i18n_service = require('./i18n.service-VY7vcrnf.js');
|
|
6
|
-
var index$1 = require('./index-
|
|
6
|
+
var index$1 = require('./index-Cr4YHGTh.js');
|
|
7
7
|
var saveCard_store = require('./save-card.store-vzztPszB.js');
|
|
8
8
|
var config = require('./config-C6FJWh4L.js');
|
|
9
9
|
var assets = require('./assets-D26S_L0v.js');
|