rebill-web-components-sdk 1.8.6 → 1.8.7
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/rebill-button.cjs.entry.js +2 -2
- package/dist/cjs/rebill-button.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-checkout.cjs.entry.js +14 -13
- package/dist/cjs/rebill-checkout.entry.cjs.js.map +1 -1
- package/dist/collection/components/checkout/rebill-checkout.js +14 -13
- package/dist/collection/components/checkout/rebill-checkout.js.map +1 -1
- package/dist/collection/components/shared/button/button.css +8 -8
- package/dist/collection/components/shared/button/button.js +1 -1
- package/dist/collection/components/shared/button/button.js.map +1 -1
- package/dist/components/apm-checkout.js +1 -1
- package/dist/components/discount-coupon.js +1 -1
- package/dist/components/otp-component.js +1 -1
- package/dist/components/{p-DZI13wtJ.js → p-C9MOJKD4.js} +3 -3
- package/dist/components/{p-DZI13wtJ.js.map → p-C9MOJKD4.js.map} +1 -1
- package/dist/components/{p-BwpjM0Zf.js → p-CG7X0Z3m.js} +3 -3
- package/dist/components/{p-BwpjM0Zf.js.map → p-CG7X0Z3m.js.map} +1 -1
- package/dist/components/{p-CcZQGsZ8.js → p-CL6COaBj.js} +3 -3
- package/dist/components/{p-CcZQGsZ8.js.map → p-CL6COaBj.js.map} +1 -1
- package/dist/components/{p-C69QonMT.js → p-Cb9WV_NL.js} +3 -3
- package/dist/components/{p-C69QonMT.js.map → p-Cb9WV_NL.js.map} +1 -1
- package/dist/components/{p-C1THyrZh.js → p-D6oZSjpl.js} +3 -3
- package/dist/components/{p-C1THyrZh.js.map → p-D6oZSjpl.js.map} +1 -1
- package/dist/components/{p-W2zrB3tA.js → p-D6rWKLL8.js} +3 -3
- package/dist/components/{p-W2zrB3tA.js.map → p-D6rWKLL8.js.map} +1 -1
- package/dist/components/{p-ByRz5YWN.js → p-DavSndum.js} +3 -3
- package/dist/components/{p-ByRz5YWN.js.map → p-DavSndum.js.map} +1 -1
- package/dist/components/{p-Cp7iacZh.js → p-DgIOuUN1.js} +4 -4
- package/dist/components/p-DgIOuUN1.js.map +1 -0
- package/dist/components/{p-CHIajnDg.js → p-DljAUFZC.js} +3 -3
- package/dist/components/{p-CHIajnDg.js.map → p-DljAUFZC.js.map} +1 -1
- package/dist/components/{p-djD6Hoxd.js → p-Dum_FpHV.js} +3 -3
- package/dist/components/{p-djD6Hoxd.js.map → p-Dum_FpHV.js.map} +1 -1
- package/dist/components/{p-DJEotc3n.js → p-FFCF5_17.js} +4 -4
- package/dist/components/{p-DJEotc3n.js.map → p-FFCF5_17.js.map} +1 -1
- package/dist/components/{p-BBiYeY9C.js → p-LoXXimMi.js} +3 -3
- package/dist/components/{p-BBiYeY9C.js.map → p-LoXXimMi.js.map} +1 -1
- package/dist/components/payment-button.js +1 -1
- package/dist/components/rebill-button.js +1 -1
- package/dist/components/rebill-checkout.js +25 -24
- package/dist/components/rebill-checkout.js.map +1 -1
- package/dist/components/rebill-mode-sandbox-mobile.js +1 -1
- package/dist/components/rebill-mode-sandbox.js +1 -1
- package/dist/components/rebill-renewal.js +5 -5
- package/dist/components/rebill-summary.js +1 -1
- package/dist/components/renewal-success-page.js +1 -1
- package/dist/components/root-component.js +1 -1
- package/dist/components/success-page.js +1 -1
- package/dist/components/user-information-static.js +1 -1
- package/dist/components/user-information.js +1 -1
- package/dist/esm/rebill-button.entry.js +2 -2
- package/dist/esm/rebill-button.entry.js.map +1 -1
- package/dist/esm/rebill-checkout.entry.js +14 -13
- package/dist/esm/rebill-checkout.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/{p-91a86735.entry.js → p-297a5c76.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-91a86735.entry.js.map → p-297a5c76.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-738fbc04.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-b3837047.entry.js.map → p-738fbc04.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/rebill-button.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-checkout.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
- package/package.json +1 -1
- package/dist/components/p-Cp7iacZh.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-b3837047.entry.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebill-checkout.entry.js","sources":["src/models/display.model.ts","src/models/enums/provider.enum.ts","src/components/checkout/utils/getRequiredFields.ts","src/components/checkout/utils/getSessionToInitialize.ts","src/components/checkout/rebill-checkout.css?tag=rebill-checkout","src/components/checkout/rebill-checkout.tsx"],"sourcesContent":["import { PAYMENT_METHOD_ENUM } from './enums/payment-methods.enum';\n\n/**\n * Interface that defines which sections of the checkout should be displayed\n */\nexport interface DisplayConfig {\n /**\n * Whether to show the checkout summary section\n * @default true\n */\n checkoutSummary?: boolean;\n\n /**\n * Whether to show the submit/payment button\n * @default true\n */\n submitButton?: boolean;\n\n /**\n * Whether to show the billing address section\n * @default true\n */\n billingAddress?: boolean;\n\n /**\n * Whether to show the customer information section\n * @default true\n */\n customerInformation?: boolean;\n\n /**\n * Whether to show the discount code section\n * @default true\n */\n discountCode?: boolean;\n\n /**\n * Whether to show the organization logo\n * @default true\n */\n logo?: boolean;\n\n /**\n * Whether to show the footer\n * @default true\n */\n footer?: boolean;\n\n /**\n * Whether to show the sandbox mode interactive tools (test cards and documentation links)\n * @default true\n */\n sandboxMode?: boolean;\n\n /**\n * Array of payment methods to exclude from being displayed in the checkout\n * @default undefined\n * @example ['card', 'cash']\n */\n excludePaymentMethods?: PAYMENT_METHOD_ENUM[];\n\n /**\n * Whether to show the processing payment screen (loading state)\n * @default true\n */\n processingPayment?: boolean;\n\n /**\n * Whether to show the success page after a successful payment\n * @default true\n */\n successPage?: boolean;\n\n /**\n * Whether to show the error message when a payment fails\n * @default true\n */\n errorMessage?: boolean;\n}\n\n/**\n * Default display configuration with all sections enabled\n */\nexport const DEFAULT_DISPLAY_CONFIG: DisplayConfig = {\n checkoutSummary: true,\n submitButton: true,\n billingAddress: true,\n customerInformation: true,\n discountCode: true,\n logo: true,\n footer: true,\n sandboxMode: true,\n processingPayment: true,\n successPage: true,\n errorMessage: true,\n};\n","export enum PROVIDER_ENUM {\n BAMBOO = 'bamboo_payment',\n FISERV = 'fiserv',\n KUSHKI = 'kushki',\n PAYWAY = 'payway',\n DOCK = 'dock',\n KLAP = 'klap',\n MOVII = 'movii',\n STRIPE = 'stripe',\n DECIDIR = 'decidir',\n}\n","import { api } from '../../../api';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { PaymentMethodMapper } from '../../../utils/payment-method-mapper';\nimport { mapRequiredFields, RequiredField } from '../../../utils/required-fields-mappers';\n\nexport interface RequiredFieldsResult {\n fields: string[];\n original: RequiredField[];\n}\n\nexport interface AllRequiredFieldsMap {\n [key: string]: RequiredFieldsResult;\n}\n\nconst getRequiredFields = async (\n currency: string,\n method: string,\n organizationId: string,\n): Promise<RequiredFieldsResult> => {\n const requiredFieldsResponse = await api.checkout.getRequiredFields(\n {\n currency,\n method,\n },\n organizationId,\n );\n\n return {\n fields: mapRequiredFields(requiredFieldsResponse.data),\n original: requiredFieldsResponse.data,\n };\n};\n\nexport const getAllRequiredFields = async (): Promise<AllRequiredFieldsMap> => {\n const paymentMethods = sessionState.data?.itemInformation?.paymentMethods;\n const promises = paymentMethods.map(async paymentMethod => {\n try {\n const apiPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data?.pricing?.country,\n );\n\n const result = await getRequiredFields(\n sessionState.data.pricing.currency,\n apiPaymentMethod,\n sessionState.data.organization.id,\n );\n\n return {\n paymentMethod,\n ...result,\n };\n } catch (error) {\n console.error(`Error getting required fields for ${paymentMethod}:`, error);\n return {\n paymentMethod,\n fields: [],\n original: [],\n };\n }\n });\n\n const results = await Promise.all(promises);\n const fieldsMap: AllRequiredFieldsMap = {};\n\n results.forEach(result => {\n fieldsMap[result.paymentMethod] = {\n fields: result.fields,\n original: result.original,\n };\n });\n return fieldsMap;\n};\n\nexport const getRequiredFieldsForMethod = (\n paymentMethod: PAYMENT_METHOD_ENUM,\n allRequiredFields: AllRequiredFieldsMap,\n): RequiredFieldsResult => {\n const storedFields = allRequiredFields[paymentMethod];\n if (storedFields) {\n return storedFields;\n } else {\n return {\n fields: [],\n original: [],\n };\n }\n};\n","import { api } from 'api';\nimport { SESSION_TYPE_ENUM } from 'models/enums/session.enum';\nimport { generateIdempotencyKey } from 'utils/generate-idempotency-key';\n\nconst parseSession = (session: string) =>\n typeof session === 'string' ? JSON.parse(session) : session;\n\nconst getCheckoutLandingSession = (checkoutLandingSession: string) => {\n return parseSession(checkoutLandingSession);\n};\n\n// TODO: Remove this\nconst getCurerntIP = () => {\n return '190.188.127.250';\n};\n\nconst getSDKInstantItemSession = async ({\n publicKey,\n instantProduct,\n instantPlan,\n}: {\n publicKey: string;\n instantProduct?: string;\n instantPlan?: string;\n}) => {\n const session = parseSession(instantProduct ? instantProduct : instantPlan);\n const response = await api.sessions.createSDKInstantSessionRequest(\n session,\n generateIdempotencyKey(),\n getCurerntIP(),\n publicKey,\n );\n const dataWithDescription = {\n ...response.data,\n ...(response.data.plan && {\n plan: { ...response.data.plan, description: session.description || [] },\n }),\n ...(response.data.product && {\n product: { ...response.data.product, description: session.description || [] },\n }),\n };\n const instantSession = dataWithDescription;\n return instantSession;\n};\n\nconst getSDKItemSession = async ({\n publicKey,\n productId,\n planId,\n}: {\n publicKey: string;\n productId?: string;\n planId?: string;\n}) => {\n const response = await api.sessions.createSDKItemSessionRequest({\n ...(productId ? { productId } : {}),\n ...(planId ? { planId } : {}),\n idempotencyKey: generateIdempotencyKey(),\n deviceId: '123123123',\n clientIP: getCurerntIP(),\n publicKey,\n });\n\n const itemSession = response.data;\n return itemSession;\n};\n\nexport const getSessionToInitialize = async ({\n publicKey,\n checkoutLandingSession,\n instantProduct,\n instantPlan,\n productId,\n planId,\n}: {\n publicKey: string;\n checkoutLandingSession?: string;\n instantProduct?: string;\n instantPlan?: string;\n productId?: string;\n planId?: string;\n}) => {\n if (checkoutLandingSession) {\n const session = await getCheckoutLandingSession(checkoutLandingSession);\n return { session, type: SESSION_TYPE_ENUM.CHECKOUT_LANDING };\n }\n if (instantProduct || instantPlan) {\n const session = await getSDKInstantItemSession({ publicKey, instantProduct, instantPlan });\n return { session, type: SESSION_TYPE_ENUM.INSTANT };\n }\n if (productId || planId) {\n const session = await getSDKItemSession({ publicKey, productId, planId });\n return { session, type: SESSION_TYPE_ENUM.SDK_ITEM };\n }\n};\n","@media (max-width: 1024px) {\n .rebill-checkout {\n width: 100%;\n flex-direction: column;\n gap: 0;\n justify-content: flex-start;\n background: var(--rebill-color-background);\n padding: 20px;\n }\n .right-section-checkout .left-section {\n width: 100%;\n height: 100%;\n background: var(--rebill-color-background);\n }\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n height: 100%;\n }\n .otp-container {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n }\n\n /* Full width layout when summary is hidden - Mobile/Tablet */\n .rebill-checkout.full-width-layout .left-section {\n width: 100%;\n }\n\n .rebill-checkout.full-width-layout .left-section-container {\n max-width: none;\n width: 100%;\n }\n}\n\n@media (min-width: 1025px) {\n .rebill-checkout {\n width: 100%;\n min-height: 600px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n overflow-y: auto;\n }\n\n .left-section {\n display: flex;\n width: 60%;\n background: var(--rebill-color-background-left);\n justify-content: space-around;\n }\n\n .right-section-checkout {\n display: flex;\n padding-top: 72px;\n width: 40%;\n background: var(--rebill-color-background-right);\n position: sticky;\n top: 0;\n\n justify-content: center;\n }\n\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-bottom: 36px;\n gap: 32px;\n }\n .left-section-container {\n max-width: 450px;\n min-width: 450px;\n margin: 2.5rem 2rem 1.5rem 2rem;\n display: flex;\n flex-direction: column;\n }\n\n .checkout-summary-section {\n max-width: 450px;\n min-width: 350px;\n margin: 0rem 2rem;\n background: var(--rebill-color-background-right);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n width: 100%;\n }\n\n .checkout-form-section user-information,\n .checkout-form-section payment-method-selector,\n .checkout-form-section rebill-address,\n .checkout-summary-section rebill-summary {\n width: 100%;\n }\n\n /* Full width layout when summary is hidden - Desktop */\n .rebill-checkout.full-width-layout .left-section {\n width: 100%;\n justify-content: stretch;\n }\n\n .rebill-checkout.full-width-layout .left-section-container {\n max-width: none;\n min-width: auto;\n width: 100%;\n margin: 2.5rem 2rem 1.5rem 2rem;\n }\n\n /* Google Maps Autocomplete Styles */\n .pac-container {\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border: 1px solid #e0e0e0;\n margin-top: 4px;\n font-family: inherit;\n }\n\n .pac-item {\n padding: 10px 12px;\n cursor: pointer;\n border-top: none;\n }\n\n .pac-item:first-child {\n border-top: none;\n }\n\n .pac-item:hover {\n background-color: #f5f5f5;\n }\n\n .pac-item-query {\n font-weight: 500;\n }\n\n .pac-icon {\n display: none;\n }\n}\n\n.payment-button-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-bottom: 16px;\n}\n/* Animaciones para componentes condicionales */\n.animated-component {\n transition: all 0.3s ease-in-out;\n overflow: visible;\n}\n\n/* Keep overflow hidden only for sliding height animations */\n/* .animated-component.slide-in {\n overflow: hidden;\n} */\n\n.fade-in {\n animation: fadeIn 0.4s ease-in-out;\n}\n\n.slide-in {\n animation: slideIn 0.5s ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-20px);\n max-height: 0;\n }\n to {\n opacity: 1;\n transform: translateX(0);\n max-height: 450px;\n }\n}\n\n/* Animación para cuando se ocultan los componentes */\n.animated-component.hide {\n animation: fadeOut 0.3s ease-in-out forwards;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* Test Mode Chip Positioning */\nrebill-mode-sandbox {\n position: fixed;\n bottom: 50px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n}\n\n/* Ensure the chip is visible on all screen sizes */\n@media (max-width: 1024px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n\n@media (min-width: 1025px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n.mode-sandbox-mobile-container {\n display: flex;\n align-items: center;\n width: 100%;\n\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n}\n\n/* Desktop grande - mantener tamaños originales */\n@media (min-width: 1451px) {\n .left-section-container {\n min-width: 450px;\n margin: 2.5rem 5rem 1.5rem 5rem;\n }\n\n .checkout-summary-section {\n min-width: 450px;\n margin: 0rem 5rem;\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport {\n CheckoutStatusE,\n CreateAPMCheckoutRequest,\n CreateAPMCheckoutResponse,\n CreateCardCheckoutRequest,\n CreateCardCheckoutResponse,\n} from '../../api/entities/checkout/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/payment-button/payment-button';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport '../../components/checkout/summary/summary';\nimport '../../components/renewal/user-information-static/user-information-static';\nimport '../../components/shared/organization-logo/organization-logo';\nimport { initializeI18nWithSessionLanguage } from '../../i18n/i18n.config';\nimport { I18nService } from '../../i18n/i18n.service';\nimport {\n DEFAULT_DISPLAY_CONFIG,\n DisplayConfig,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n} from '../../models';\n\nimport { LOCALES_ENUM } from '../../models/enums/locales.enum';\n\nimport { PaymentMethodNameE } from '../../models/enums/payment-method-name.enum';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { PROVIDER_ENUM } from '../../models/enums/provider.enum';\nimport { STATUS_REQ_CHECKOUT_APM } from '../../models/enums/status-req-checkout-apm.enum';\nimport {\n onChange as sessionOnChange,\n sessionState,\n SessionStore,\n UserInformation,\n} from '../../store/session.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { generateIdempotencyKey } from '../../utils/generate-idempotency-key';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys, PaymentErrorMapper } from '../../utils/payment-error-mapper';\nimport { PaymentMethodMapper } from '../../utils/payment-method-mapper';\nimport { getFieldValues, isFieldRequired } from '../../utils/required-fields-mappers';\nimport '../shared/mode-sandbox/mode-sandbox';\nimport { CardError } from './payment-method-selector/payment-method-selector';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFields,\n getRequiredFieldsForMethod,\n} from './utils/getRequiredFields';\nimport { getSessionToInitialize } from './utils/getSessionToInitialize';\n\n@Component({\n tag: 'rebill-checkout',\n styleUrl: 'rebill-checkout.css',\n shadow: false,\n})\nexport class RebillCheckout {\n // Public properties\n /**\n * The ID of the item (product or plan) to be purchased\n */\n @Prop() productId?: string;\n @Prop() planId?: string;\n\n /**\n * The organization's public key\n */\n @Prop() publicKey!: string;\n\n /**\n * Instant product data for creating checkout on-the-fly (alternative to externalSession)\n */\n @Prop() instantProduct?: string;\n\n /**\n * Instant plan data for creating checkout on-the-fly (alternative to externalSession)\n */\n @Prop() instantPlan?: string;\n\n /**\n * Display object that determines the sections to be displayed in the checkout\n */\n @Prop() display?: DisplayConfig | string;\n\n /**\n * Customer information to override default user information when sections are hidden\n * This data will be used in the submit process when provided\n */\n @Prop() customerInformation?: UserInformation | string;\n\n /**\n * One click checkout feature availability\n * @default true\n */\n @Prop() oneClickCheckout: boolean = true;\n\n /**\n * Custom CSS to be injected into the component\n * Can be a string of CSS or a URL to a CSS file\n */\n @Prop() css?: string;\n\n /**\n * Language code for the application display\n * If not provided, the language will be determined by the current session logic\n * Supported languages: 'en', 'es', 'pt'\n */\n @Prop() language?: string;\n\n /**\n * Watch for language prop changes and update i18n accordingly\n */\n @Watch('language')\n async handleLanguageChange(newLanguage: string, oldLanguage: string) {\n // Only update if the language actually changed and is not empty\n if (newLanguage && newLanguage !== oldLanguage) {\n try {\n await I18nService.changeLanguage(newLanguage);\n SessionStore.changeLanguage(newLanguage as LOCALES_ENUM);\n console.log(`[RebillCheckout] Language changed from ${oldLanguage} to ${newLanguage}`);\n } catch (error) {\n console.error('[RebillCheckout] Failed to change language:', error);\n }\n }\n }\n\n /**\n * Event when there is an error in the payment process\n */\n @Event() error: EventEmitter<any>;\n\n /**\n * Event when the payment is successful\n */\n @Event() success: EventEmitter<any>;\n\n @Event() successRedirect: EventEmitter<any>;\n\n /**\n * Event when the form data changes\n */\n @Event() formChange: EventEmitter<{\n data: any;\n isValid: boolean;\n errors?: any;\n }>;\n\n // Internal\n @Prop() checkoutLandingSession?: string;\n @Prop() externalPayment?: string;\n @State() rejectedPaymentCard: boolean = false;\n @State() rejectedPaymentAPM: boolean = false;\n @State() countries: Country[] = [];\n @State() currentPaymentMethod: PAYMENT_METHOD_ENUM;\n @State() checkoutResponse: CreateAPMCheckoutResponse | null = null;\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() isAPMSubmitting: boolean = false;\n @State() isAPMSuccess: boolean = false;\n @State() storedCheckoutResults: Map<PAYMENT_METHOD_ENUM, CreateAPMCheckoutResponse> = new Map();\n @State() alertErrorKeys: AlertErrorKeys | null = null;\n @State() currentApmPaymentMethod: PaymentMethodNameE | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() showRefreshModal: boolean = false;\n @State() cardError: CardError = {\n showCardInvalid: false,\n type: null,\n };\n @State() initialData: any = {};\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() customerExists: boolean = false;\n @State() showOtp: boolean = false;\n @State() otpVerified: boolean = false;\n @State() responseCheckoutCard: CreateCardCheckoutResponse | null = null;\n @State() cardMode: 'input' | 'select' | null = null;\n private formElement: any;\n private emailDebounceTimeout: number | null = null;\n private injectedStyleElement: HTMLStyleElement | null = null;\n\n /**\n * Get the display configuration, merging user config with defaults\n */\n private get displayConfig(): DisplayConfig {\n if (!this.display) {\n return DEFAULT_DISPLAY_CONFIG;\n }\n\n // If display is a string, try to parse it as JSON\n if (typeof this.display === 'string') {\n try {\n const parsed = JSON.parse(this.display);\n return { ...DEFAULT_DISPLAY_CONFIG, ...parsed };\n } catch (error) {\n console.warn('Invalid display configuration string, using defaults:', error);\n return DEFAULT_DISPLAY_CONFIG;\n }\n }\n\n // If display is an object, merge with defaults\n return { ...DEFAULT_DISPLAY_CONFIG, ...this.display };\n }\n\n /**\n * Get the customer information configuration, parsing if needed\n */\n private get parsedCustomerInformation(): UserInformation | null {\n if (!this.customerInformation) {\n return null;\n }\n\n // If customerInformation is a string, try to parse it as JSON\n if (typeof this.customerInformation === 'string') {\n try {\n return JSON.parse(this.customerInformation);\n } catch (error) {\n console.warn('Invalid customerInformation configuration string, ignoring:', error);\n return null;\n }\n }\n\n // If customerInformation is an object, return as is\n return this.customerInformation;\n }\n\n /**\n * Get filtered payment methods based on excludePaymentMethods configuration\n */\n private get filteredPaymentMethods(): PAYMENT_METHOD_ENUM[] {\n const allPaymentMethods = sessionState.data?.itemInformation?.paymentMethods || [];\n const excludedMethods = this.displayConfig.excludePaymentMethods;\n\n // If no exclusion list, return all payment methods\n if (!excludedMethods || excludedMethods.length === 0) {\n return allPaymentMethods;\n }\n\n // Filter out excluded payment methods\n return allPaymentMethods.filter(method => !excludedMethods.includes(method));\n }\n\n /**\n * Get combined user data with priority: formData > customerInformation > sessionState.userInformation\n */\n private getCombinedUserData(formData: any = {}): any {\n const sessionUserInfo = sessionState.data.userInformation;\n const customerInformation = this.parsedCustomerInformation;\n\n return {\n // Email\n 'email': formData.email || customerInformation?.email || sessionUserInfo.email,\n\n // Full name\n 'fullName': formData.fullName || customerInformation?.fullName || sessionUserInfo.fullName,\n\n // Phone\n 'countryCodePhoneNumber':\n formData.countryCodePhoneNumber ||\n customerInformation?.phoneNumber?.countryCode ||\n customerInformation?.countryCode ||\n sessionUserInfo.countryCode,\n 'phoneNumber':\n formData.phoneNumber ||\n customerInformation?.phoneNumber?.number ||\n sessionUserInfo.phoneNumber,\n // Document\n 'documentType':\n formData.documentType || customerInformation?.documentType || sessionUserInfo.documentType,\n 'documentNumber':\n formData.documentNumber ||\n customerInformation?.documentNumber ||\n sessionUserInfo.documentNumber,\n\n // Billing address\n 'billing-country':\n formData['billing-country'] ||\n customerInformation?.address?.billingAddress?.country ||\n sessionUserInfo.address?.billingAddress?.country,\n 'billing-state':\n formData['billing-state'] ||\n customerInformation?.address?.billingAddress?.state ||\n sessionUserInfo.address?.billingAddress?.state,\n 'billing-address':\n formData['billing-address'] ||\n customerInformation?.address?.billingAddress?.address ||\n sessionUserInfo.address?.billingAddress?.address,\n 'billing-city':\n formData['billing-city'] ||\n customerInformation?.address?.billingAddress?.city ||\n sessionUserInfo.address?.billingAddress?.city,\n 'billing-zip':\n formData['billing-zip'] ||\n customerInformation?.address?.billingAddress?.zip ||\n sessionUserInfo.address?.billingAddress?.zip,\n };\n }\n\n /**\n * Inject custom CSS into the document\n */\n private injectCustomCSS() {\n if (!this.css) {\n return;\n }\n\n // Clean up any existing injected CSS\n this.cleanupInjectedCSS();\n\n // Create a unique ID for this component's CSS\n const cssId = `rebill-checkout-css-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n\n // Check if CSS is a URL or raw CSS\n if (\n this.css.startsWith('http://') ||\n this.css.startsWith('https://') ||\n this.css.startsWith('//')\n ) {\n // Load CSS from URL\n const linkElement = document.createElement('link');\n linkElement.rel = 'stylesheet';\n linkElement.href = this.css;\n linkElement.id = cssId;\n linkElement.setAttribute('data-rebill-injected', 'true');\n document.head.appendChild(linkElement);\n this.injectedStyleElement = linkElement as any; // Store reference for cleanup\n } else {\n // Inject raw CSS\n const styleElement = document.createElement('style');\n styleElement.id = cssId;\n styleElement.setAttribute('data-rebill-injected', 'true');\n styleElement.textContent = this.css;\n document.head.appendChild(styleElement);\n this.injectedStyleElement = styleElement;\n }\n }\n\n /**\n * Clean up injected CSS\n */\n private cleanupInjectedCSS() {\n if (this.injectedStyleElement) {\n try {\n this.injectedStyleElement.remove();\n } catch (error) {\n console.warn('Error removing injected CSS:', error);\n }\n this.injectedStyleElement = null;\n }\n }\n\n private timeToRedirectAPM: number = 5000;\n resizeHandler = () => {\n const newBreakpoint = getBreakpoint(window.innerWidth);\n if (newBreakpoint !== this.breakpoint) {\n this.breakpoint = newBreakpoint;\n }\n };\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n if (this.emailDebounceTimeout) {\n clearTimeout(this.emailDebounceTimeout);\n this.emailDebounceTimeout = null;\n }\n this.cleanupInjectedCSS();\n }\n\n async componentWillLoad() {\n try {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n // Inject custom CSS if provided\n this.injectCustomCSS();\n\n // Initialize language - use prop if provided, otherwise use current session logic\n if (this.language) {\n await I18nService.changeLanguage(this.language);\n } else {\n initializeI18nWithSessionLanguage();\n }\n\n const { session: sessionToInitialize, type } = await getSessionToInitialize({\n publicKey: this.publicKey,\n checkoutLandingSession: this.checkoutLandingSession,\n instantProduct: this.instantProduct,\n instantPlan: this.instantPlan,\n productId: this.productId,\n planId: this.planId,\n });\n\n SessionStore.initializeSession({\n session: sessionToInitialize,\n type,\n payment:\n typeof this.externalPayment === 'string'\n ? JSON.parse(this.externalPayment)\n : this.externalPayment,\n });\n if (sessionState.sessionRefreshed) {\n this.showRefreshModal = true;\n }\n\n GoogleMapsService.loadGoogleMapsScript();\n\n const response = await api.data.getCountries();\n this.countries = response.data;\n\n this.initialData = this.getInitialData();\n\n this.allRequiredFields = await getAllRequiredFields();\n if (this.filteredPaymentMethods.length > 0) {\n if (\n sessionState.data.paymentStatus === PaymentMessageE.REJECTED ||\n (sessionState.data.paymentStatus === PaymentMessageE.APPROVED &&\n this.filteredPaymentMethods.includes(PAYMENT_METHOD_ENUM.BANK_TRANSFER))\n ) {\n //buscar el metodo de pago bank_transfer\n const bankTransferMethod = this.filteredPaymentMethods.find(\n method => method === PAYMENT_METHOD_ENUM.BANK_TRANSFER,\n );\n if (bankTransferMethod) {\n this.changePaymentMethod(bankTransferMethod);\n SessionStore.setPaymentMethodSelected(bankTransferMethod);\n }\n } else {\n // En caso contrario, usar el primer método disponible\n this.changePaymentMethod(this.filteredPaymentMethods[0]);\n }\n }\n if (this.oneClickCheckout) {\n api.customers\n .exists({ email: sessionState.data?.prefilledData?.email }, this.publicKey)\n .then(res => {\n this.customerExists = res.data.exists;\n });\n }\n\n this.cardMode = sessionState.cardMode;\n sessionOnChange('cardMode', () => {\n this.cardMode = sessionState.cardMode;\n });\n } catch (error) {\n console.error('Error initializing checkout:', error);\n }\n }\n\n componentWillUpdate() {\n // Re-inject CSS when css prop changes\n this.injectCustomCSS();\n }\n\n private async changePaymentMethod(paymentMethod: PAYMENT_METHOD_ENUM) {\n if (\n paymentMethod !== this.currentPaymentMethod &&\n this.filteredPaymentMethods.includes(paymentMethod)\n ) {\n // Store current checkout result if switching away from a fulfilled APM method\n // Clear any existing checkout response when changing payment methods\n if (this.checkoutResponse) {\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n }\n\n this.currentPaymentMethod = paymentMethod;\n SessionStore.setPaymentMethodSelected(paymentMethod);\n\n // Reset cardMode to 'input' when switching to non-card payment methods\n if (paymentMethod !== PAYMENT_METHOD_ENUM.CARD) {\n this.cardMode = 'input';\n SessionStore.setCardMode('input');\n }\n\n // Reset loading state when changing payment methods\n this.isSubmitting = false;\n // Map and store the APM payment method\n this.currentApmPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data?.pricing?.country,\n );\n // // Restore stored result if switching back to a previously fulfilled APM method\n // Clear checkout response when switching to non-APM methods\n if (\n paymentMethod !== PAYMENT_METHOD_ENUM.CASH &&\n paymentMethod !== PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n } else {\n // For APM methods, always clear the checkout response to force new generation\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n }\n\n this.paymentMethodSelected.emit(paymentMethod);\n try {\n // Call required fields endpoint\n this.currentRequiredFields = getRequiredFieldsForMethod(\n paymentMethod,\n this.allRequiredFields,\n ).fields;\n\n const response = await api.sessions.updateCurrentSessionPaymentMethod(\n sessionState.data.sessionId,\n {\n paymentMethodName: PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data.pricing.country,\n ),\n paymentMethodType: paymentMethod,\n currency: sessionState.data.pricing.currency,\n },\n );\n SessionStore.setProviderKey(response.providerKey);\n if (\n response.providerKey === PROVIDER_ENUM.DECIDIR ||\n sessionState.data.providerKey === PROVIDER_ENUM.DECIDIR\n ) {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n sessionState.deviceId = uuid;\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n }\n } catch (error) {\n console.error('Failed to update payment method or get required fields:', error);\n }\n }\n }\n\n private get currentPaymentError(): boolean {\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return this.rejectedPaymentCard;\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return this.rejectedPaymentAPM;\n }\n return false;\n }\n\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n @Listen('paymentMethodSelected')\n async handlePaymentMethodSelected(event: CustomEvent<PAYMENT_METHOD_ENUM>) {\n event.stopPropagation();\n const paymentMethod = event.detail;\n\n // Only make API call if payment method actually changed\n this.changePaymentMethod(paymentMethod);\n if (this.formElement) {\n this.formElement.resetValidation();\n }\n }\n\n private async handleSubmit(event: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n this.rejectedPaymentCard = false;\n this.rejectedPaymentAPM = false;\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n this.handleSubmitCard(event);\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n this.handleSubmitAPM(event);\n }\n }\n\n private handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n\n // Validate the form to check if it's valid\n let isValid = true;\n let errors = {};\n\n if (this.formElement?.errors) {\n errors = this.formElement.errors;\n isValid = Object.keys(errors).length === 0;\n }\n\n this.formChange.emit({\n data: formData,\n isValid,\n errors: Object.keys(errors).length > 0 ? errors : undefined,\n });\n }\n\n private async handleSubmitCard(event: CustomEvent) {\n const formData = event.detail;\n const combinedData = this.getCombinedUserData(formData);\n\n if (!sessionState.data.cardTokenId && !sessionState.data.cardId) {\n this.cardError = {\n showCardInvalid: true,\n type: 'card_error',\n };\n return;\n }\n\n if (!sessionState.data.cardInformation && !sessionState.data.cardId) {\n this.cardError = {\n showCardInvalid: true,\n type: 'tokenization_error',\n };\n return;\n }\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n const checkoutRequest: CreateCardCheckoutRequest = {\n transaction: {\n quantity: 1,\n ...(sessionState.data.discount.couponCode && {\n couponCode: sessionState.data.discount.couponCode,\n }),\n },\n installments: Number(\n formData.installments ||\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n ),\n ...(sessionState.data.cardTokenId && {\n cardTokenId: sessionState.data.cardTokenId,\n ...(sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN && {\n saveCard: sessionState.saveCard,\n }),\n }),\n ...(sessionState.data.cardId && {\n cardId: sessionState.data.cardId,\n }),\n\n ...((!this.otpVerified || this.cardMode === 'input') && {\n customer: {\n firstName: combinedData.fullName?.split(' ')[0],\n lastName: combinedData.fullName?.split(' ').slice(1).join(' '),\n email: combinedData.email,\n phone: {\n countryCode: combinedData.countryCodePhoneNumber,\n number: combinedData.phoneNumber,\n },\n },\n }),\n billingDetails: {\n address: {\n lineOne: combinedData['billing-address'],\n city: combinedData['billing-city'],\n state: combinedData['billing-state'],\n country: combinedData['billing-country'],\n zipCode: combinedData['billing-zip'],\n },\n identification: {\n type: combinedData.documentType,\n value: combinedData.documentNumber,\n },\n },\n customAttributes: {\n ...(sessionState.deviceId && { deviceId: sessionState.deviceId }),\n },\n ...(sessionState.metadata && { paymentMetadata: sessionState.metadata }),\n };\n\n const idempotencyKey = generateIdempotencyKey();\n\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n\n try {\n const response = await api.checkout.createCardCheckoutRequest(\n sessionState.data.sessionId,\n idempotencyKey,\n checkoutRequest,\n sessionState.data.accessToken || undefined,\n );\n\n SessionStore.setCheckoutResponse(response.data);\n this.responseCheckoutCard = response.data;\n\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n SessionStore.setPaymentStatus(PaymentMessageE.APPROVED);\n this.success.emit({\n paymentMethod: this.currentPaymentMethod,\n data: response.data,\n });\n sessionState.data.cardInformation.lastFour = response.data.result?.cardLastFour;\n } else {\n this.error.emit({\n paymentMethod: this.currentPaymentMethod,\n data: response.data,\n });\n SessionStore.setCheckoutResponse(response.data);\n this.rejectedPaymentCard = true;\n\n this.alertErrorKeys = {\n message:\n (response.data.result?.statusDetail.toLowerCase() as PaymentMessageE) ??\n (response.data.error?.error?.message?.toLowerCase() as PaymentMessageE),\n };\n }\n } catch (error) {\n this.error.emit({\n paymentMethod: this.currentPaymentMethod,\n data: error.data,\n });\n SessionStore.setCheckoutResponse(error.data);\n this.responseCheckoutCard = error.data;\n this.rejectedPaymentCard = true;\n\n this.alertErrorKeys = {\n message:\n (error.data?.error?.type?.toLowerCase() as PaymentMessageE) ??\n (error.data?.result?.statusDetail?.toLowerCase() as PaymentMessageE),\n };\n } finally {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n }\n }\n\n private async handleSubmitAPM(data: any) {\n // Only handle cash and transfer payments for now\n if (\n this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CASH &&\n this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return;\n }\n this.isSubmitting = true;\n const formData = data.detail;\n const combinedData = this.getCombinedUserData(formData);\n\n try {\n // Transform form data to match CreateAPMCheckoutRequest structure\n const billingDetails = {\n address: {\n country: combinedData['billing-country'] || '',\n state: combinedData['billing-state'] || '',\n city: combinedData['billing-city'] || '',\n zipCode: combinedData['billing-zip'] || '',\n lineOne: combinedData['billing-address'] || '',\n },\n\n identification: {\n type: combinedData.documentType,\n value: combinedData.documentNumber,\n },\n };\n\n // Use stored APM payment method\n const apmPaymentMethod =\n this.currentApmPaymentMethod ||\n PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country,\n );\n\n const checkoutRequest: CreateAPMCheckoutRequest = {\n transaction: {\n quantity: 1,\n ...(sessionState.data.discount.couponCode && {\n couponCode: sessionState.data.discount.couponCode,\n }),\n },\n method: apmPaymentMethod,\n billingDetails,\n redirect: {\n approved: window.location.origin + '/payment/success',\n rejected: window.location.origin + '/payment/failure',\n },\n paymentMetadata: sessionState.metadata,\n customAttributes: {\n bank: formData.bankId || sessionState.data?.bankId?.code,\n },\n };\n\n // Add customer data only for unauthenticated users\n // For authenticated users, the customer data is retrieved from the session\n const isAuthenticated = false; // TODO: Check authentication status from session\n\n if (!isAuthenticated) {\n checkoutRequest.customer = {\n firstName: combinedData.fullName?.split(' ')[0] || '',\n lastName: combinedData.fullName?.split(' ').slice(1).join(' ') || '',\n email: combinedData.email,\n phone: {\n countryCode: combinedData.countryCodePhoneNumber || '',\n number: combinedData.phoneNumber || '',\n },\n };\n }\n\n const idempotencyKey = generateIdempotencyKey();\n // Call APM checkout endpoint\n const response = await api.checkout.createAPMCheckoutRequest(\n sessionState.data.sessionId,\n idempotencyKey,\n checkoutRequest,\n );\n this.isSubmitting = false;\n this.checkoutResponse = response.data;\n this.storedCheckoutResults.set(this.currentPaymentMethod, response.data);\n\n if (response.data?.date) {\n sessionState.data.paymentDate = response.data.date;\n sessionState.createdAt = response.data.date;\n }\n if (response.data?.traceId) {\n sessionState.data.paymentReference = response.data.traceId;\n }\n } catch (error) {\n this.isSubmitting = false;\n this.checkoutResponse = error.data;\n\n this.alertErrorKeys = {\n message:\n (error.data?.error?.type?.toLowerCase() as PaymentMessageE) ??\n (error.data?.result?.statusDetail?.toLowerCase() as PaymentMessageE),\n };\n this.rejectedPaymentAPM = true;\n }\n }\n\n /**\n * Public method to submit the checkout form programmatically from external platforms\n * This method can be called when submitButton is set to false in display config\n */\n @Method()\n async submit(): Promise<void> {\n if (this.formElement && typeof this.formElement.submit === 'function') {\n this.formElement.submit();\n } else {\n // Fallback: trigger handleSubmit directly with empty event\n await this.handleSubmit({ detail: {} } as CustomEvent);\n }\n }\n\n /**\n * Listen for payment status changes from APM QR code\n */\n private handlePaymentStatusChange = (statusData: {\n status: STATUS_REQ_CHECKOUT_APM;\n isCompleted: boolean;\n data: any;\n }) => {\n if (statusData.isCompleted) {\n if (statusData.status === STATUS_REQ_CHECKOUT_APM.APPROVED) {\n SessionStore.setPaymentStatus(PaymentMessageE.APPROVED);\n this.success.emit({\n paymentMethod: this.currentPaymentMethod,\n data: this.checkoutResponse,\n });\n } else if (statusData.status === STATUS_REQ_CHECKOUT_APM.REJECTED) {\n SessionStore.setPaymentStatus(PaymentMessageE.REJECTED);\n\n this.alertErrorKeys = {\n alertTitle: PaymentMessageE.APM_ERROR_GENERIC,\n message: PaymentMessageE.APM_MESSAGE_ERROR,\n };\n }\n }\n };\n\n @Listen('input')\n async handleInputChange(event: CustomEvent<{ id: string; value: string }>) {\n if (event?.detail?.id === 'email' && this.oneClickCheckout) {\n if (this.emailDebounceTimeout) {\n clearTimeout(this.emailDebounceTimeout);\n }\n\n if (!event.detail.value || event.detail.value.trim() === '') {\n this.customerExists = false;\n SessionStore.clearCustomerIdAndToken();\n return;\n }\n\n this.emailDebounceTimeout = setTimeout(async () => {\n try {\n const response = await api.customers.exists(\n { email: sessionState.data.userInformation.email },\n this.publicKey,\n );\n this.customerExists = response.data.exists;\n } catch (error) {\n this.customerExists = false;\n }\n }, 500) as unknown as number;\n }\n }\n\n private validationSchema = {\n 'email': yup.string().when([], {\n is: () => !this.otpVerified,\n then: schema =>\n schema\n .email('validation.emailInvalid')\n .matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/, 'validation.emailInvalid')\n .required('validation.emailRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'fullName': yup.string().when([], {\n is: () => !this.otpVerified,\n then: schema =>\n schema\n .required('validation.fullNameRequired')\n .matches(\n /^[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s]{2,}\\s+[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s]{2,}$/,\n 'validation.fullNameInvalid',\n ),\n otherwise: schema => schema.notRequired(),\n }),\n 'isValidPhoneNumber': yup.string().when([], {\n is: () =>\n (isFieldRequired('phoneNumber', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.equals(['true'], 'validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-country', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.countryRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-state': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-state', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.stateRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-address': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-address', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.addressRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-city': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-city', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.cityRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-zip': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-zip', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'bankId': yup.string().when([], {\n is: () => isFieldRequired('bankId', this.currentRequiredFields),\n then: schema => schema.required('validation.bankRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'installments': yup.string().when([], {\n is: () =>\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD &&\n sessionState.data.cardInformation.installments.isAvailableInstallments &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 &&\n sessionState.data.itemInformation.type !== SESSION_ITEM_TYPE_ENUM.PLAN,\n then: schema => schema.required('validation.installmentsRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n (isFieldRequired('documentType', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.documentTypeRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentNumber': yup.string().when([], {\n is: () =>\n (isFieldRequired('documentNumber', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema =>\n schema.required('validation.documentNumberRequired').min(7, 'validation.documentInvalid'),\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private getInitialData = () => {\n return {\n 'email': sessionState.data.userInformation.email || '',\n 'fullName': sessionState.data.userInformation.fullName || '',\n 'phoneNumber': sessionState.data.userInformation.phoneNumber?.number || '',\n 'countryCodePhoneNumber': sessionState.data.userInformation.countryCode || '',\n 'documentType': '',\n 'documentNumber': '',\n 'billing-country': sessionState.data.userInformation.address?.billingAddress?.country || '',\n 'billing-state': sessionState.data.userInformation?.address?.billingAddress?.state || '',\n 'billing-address': sessionState.data.userInformation?.address?.billingAddress?.address || '',\n 'billing-city': sessionState.data.userInformation?.address?.billingAddress?.city || '',\n 'billing-zip': sessionState.data.userInformation?.address?.billingAddress?.zip || '',\n 'bankId': sessionState.data.bankId?.code || '',\n 'card': '',\n 'installments':\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment?.toString() ||\n '',\n };\n };\n\n private hasPrefilledAddress = () => {\n const billingFields = [\n 'billing-country',\n 'billing-state',\n 'billing-address',\n 'billing-city',\n 'billing-zip',\n ];\n return billingFields.some(key => {\n const value = this.initialData[key];\n return value && value.trim() !== '';\n });\n };\n private get isQrCodeVisible(): boolean {\n return !!this.checkoutResponse?.result?.data?.qrCode;\n }\n private isPaymentApproved = (): boolean => {\n if (sessionState.data.paymentStatus === PaymentMessageE.APPROVED) {\n return true;\n }\n\n return false;\n };\n\n @Listen('onRebillAccountClick')\n handleRebillAccountClick(event: CustomEvent<boolean>) {\n this.showOtp = event.detail;\n }\n\n @Listen('returnForm')\n handleReturnForm(event: CustomEvent<boolean>) {\n this.showOtp = event.detail;\n SessionStore.clearCustomerIdAndToken();\n }\n\n @Listen('signOut')\n handleSignOut() {\n this.showOtp = false;\n this.otpVerified = false;\n if (!sessionState?.data?.prefilledData?.email) {\n this.customerExists = false;\n }\n SessionStore.clearCustomerIdAndToken();\n SessionStore.clearUserInformation();\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n this.alertErrorKeys = null;\n this.rejectedPaymentCard = false;\n this.rejectedPaymentAPM = false;\n }\n\n @Listen('codeVerified')\n handleCodeVerified() {\n this.otpVerified = true;\n this.showOtp = false;\n\n this.rejectedPaymentCard = false;\n this.alertErrorKeys = null;\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n if (this.formElement) {\n this.formElement.resetValidation();\n }\n }\n private isPaymentRejected(): boolean {\n return (\n sessionState.data.paymentStatus === PaymentMessageE.REJECTED &&\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n );\n }\n\n render() {\n const countryOptions = this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }));\n\n const renderRebillSummary = (props: any = {}) => (\n <rebill-summary\n totalAmount={sessionState.data.pricing.total}\n currency={sessionState.data.pricing.currency}\n itemTitle={sessionState._session?.getTitle()}\n itemDescription={sessionState._session?.getDescription()}\n itemAmount={sessionState.data.pricing.subtotal}\n subtotal={sessionState.data.pricing.subtotal}\n allowCoupon={sessionState._session?.getAllowCoupon(this.displayConfig)}\n currentBreakpoint={this.breakpoint}\n planFrequency={sessionState._session?.getPlanFrequency()}\n planFrequencyCount={sessionState._session?.getPlanFrequencyCount()}\n discountType={sessionState.data.discount.discountType}\n discountedPercentage={sessionState.data.discount.discountedPercentage}\n discountDuration={sessionState.data.discount.discountDuration}\n discountAmount={sessionState.data.discount.discountAmount}\n {...props}\n />\n );\n\n return (\n sessionState.isInitialized && (\n <>\n {this.showRefreshModal && <rebill-modal-overlay />}\n {this.displayConfig.processingPayment && (\n <rebill-processing-payment\n style={{ display: this.isCardSubmitting ? 'block' : 'none' }}\n />\n )}\n {this.displayConfig.successPage &&\n this.isPaymentApproved() &&\n sessionState.isInitialized ? (\n <success-page\n typePaymentMethod={sessionState.data.paymentMethodSelected}\n paymentMethodName={PaymentMethodMapper.mapToAPMPaymentMethod(\n sessionState.data.paymentMethodSelected ||\n (sessionState.data.payment as any)?.paymentMethodType,\n sessionState.data?.pricing?.country,\n )}\n country={sessionState.data?.pricing?.country}\n bank={\n (sessionState.data.payment as any)?.paymentMethodMetadata?.bank ||\n (sessionState.data.payment as any)?.paymentMethodMetadata?.bank\n }\n cardLastFour={\n this.responseCheckoutCard?.result?.cardLastFour ||\n sessionState.data.cardInformation?.lastFour\n }\n paymentDate={\n sessionState.data.paymentDate ||\n this.responseCheckoutCard?.date ||\n (sessionState.data.payment as any)?.createdAt ||\n this.checkoutResponse?.result?.data?.createdAt\n }\n referenceNumber={\n sessionState.data.paymentReference ||\n (sessionState.data.payment as any)?.traceId ||\n this.responseCheckoutCard?.traceId\n }\n onSuccessRedirect={payload => {\n this.successRedirect.emit(payload.detail);\n }}\n trialPeriodDays={sessionState.data?.itemInformation?.trial?.trialPeriodDays}\n debitDay={sessionState.data?.itemInformation?.debitDay}\n planAmount={sessionState.data?.pricing?.planAmount}\n />\n ) : (\n <>\n {/* Modo sandbox para mobile - posicionado arriba del logo */}\n {this.displayConfig.sandboxMode &&\n sessionState.isSandbox &&\n sessionState.data.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING &&\n isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div\n class=\"mode-sandbox-mobile-container\"\n style={{\n display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block',\n }}\n >\n <rebill-mode-sandbox-mobile />\n </div>\n )}\n <rebill-checkout-form\n ref={el => (this.formElement = el)}\n style={{ display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block' }}\n validationSchema={this.validationSchema}\n initialData={this.initialData}\n onSubmit={(args: any) => this.handleSubmit(args)}\n onChange={(args: any) => this.handleFormChange(args)}\n renderForm={({ submit, formData, errors }) => {\n const isAPMCheckoutVisible =\n !this.isCardSuccess &&\n this.checkoutResponse?.result &&\n (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER);\n return (\n <div\n class={`rebill-checkout ${!this.displayConfig.checkoutSummary ? 'full-width-layout' : ''}`}\n >\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n {this.displayConfig.logo && (\n <organization-logo organization={sessionState.data.organization} />\n )}\n <div\n class=\"otp-container\"\n style={{ display: this.showOtp ? 'block' : 'none' }}\n >\n <otp-component />\n </div>\n <div style={{ display: this.showOtp ? 'none' : 'block' }}>\n <div class=\"checkout-form-section\">\n {this.displayConfig.checkoutSummary && (\n <div\n class=\"summary-mobile-tablet\"\n style={{\n display: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary({\n displayedComponents: [\n 'totalAmount',\n 'discount',\n 'timelineFreeTrial',\n 'timelineDebitDay',\n 'itemDetails',\n ],\n })}\n </div>\n )}\n {!this.otpVerified && this.displayConfig.customerInformation && (\n <user-information\n customerExists={this.customerExists}\n disabled={this.isSubmitting}\n errors={{\n email: errors.email,\n fullName: errors.fullName,\n }}\n />\n )}\n {this.otpVerified && this.displayConfig.customerInformation && (\n <user-information-static\n variant=\"otp\"\n userInfo={{\n customerName:\n sessionState.data.userInformation.fullName?.split(' ')[0],\n customerEmail: sessionState.data.userInformation.email,\n }}\n />\n )}\n <div\n style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}\n >\n <payment-method-selector\n enabledPaymentMethods={this.filteredPaymentMethods}\n defaultSelected={this.currentPaymentMethod}\n disabled={this.isSubmitting}\n errorComponent={{\n showErrorComponent:\n this.displayConfig.errorMessage &&\n (this.currentPaymentError || this.isPaymentRejected()),\n alertTitle: PaymentErrorMapper.getErrorTitle(\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country || '',\n this.alertErrorKeys?.alertTitle,\n ),\n message: PaymentErrorMapper.getErrorMessage(\n this.alertErrorKeys?.message,\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country,\n ),\n }}\n country={sessionState.data?.pricing?.country}\n installmentsError={errors.installments}\n showDocument={\n (!this.otpVerified ||\n (this.otpVerified && this.cardMode === 'input')) &&\n !isAPMCheckoutVisible &&\n !this.isQrCodeVisible &&\n (isFieldRequired(\n 'documentNumber',\n this.currentRequiredFields,\n ) ||\n isFieldRequired('documentType', this.currentRequiredFields))\n }\n documentTypeError={errors.documentType}\n documentNumberError={errors.documentNumber}\n cardError={this.cardError}\n customCSS={this.css}\n />\n {!isAPMCheckoutVisible &&\n (() => {\n const isBankRequired = isFieldRequired(\n 'bankId',\n this.currentRequiredFields,\n );\n\n return isBankRequired;\n })() && (\n <div class=\"animated-component fade-in\">\n <rebill-bank-selector\n banks={\n getFieldValues(\n 'bank',\n this.allRequiredFields[this.currentPaymentMethod]\n .original,\n ) || []\n }\n defaultSelectedBankId={formData.bankId || ''}\n error={errors?.bankId}\n />\n </div>\n )}\n </div>\n {!isAPMCheckoutVisible &&\n (!this.otpVerified || this.cardMode === 'input') && (\n <>\n {this.displayConfig.billingAddress &&\n (isFieldRequired(\n 'billing-country',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-state',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-address',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-city',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-zip',\n this.currentRequiredFields,\n )) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n disabled={this.isSubmitting}\n countryOptions={countryOptions}\n billingView={\n this.hasPrefilledAddress() ? 'form' : 'search'\n }\n errors={{\n 'billing-country': errors['billing-country'],\n 'billing-state': errors['billing-state'],\n 'billing-address': errors['billing-address'],\n 'billing-city': errors['billing-city'],\n 'billing-zip': errors['billing-zip'],\n }}\n />\n </div>\n )}\n {this.displayConfig.customerInformation &&\n isFieldRequired(\n 'phoneNumber',\n this.currentRequiredFields,\n ) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone\n disabled={this.isSubmitting}\n error={errors?.phoneNumber}\n countryCode={\n sessionState.data.userInformation?.countryCode ||\n sessionState.data.country\n }\n />\n </div>\n )}\n </>\n )}\n {/* Show APM checkout response after successful payment submission */}\n {isAPMCheckoutVisible && (\n <apm-checkout\n paymentMethod={this.currentPaymentMethod}\n referenceId={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH\n ? this.checkoutResponse?.result?.data?.referenceId\n : undefined\n }\n qrCodeData={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ? this.checkoutResponse?.result?.data?.qrCode\n : undefined\n }\n checkoutRequestId={\n this.checkoutResponse?.result?.checkoutRequestId\n }\n providerName={sessionState.data.providerKey}\n expirationDate={(() => {\n const expirationDate = new Date();\n expirationDate.setDate(expirationDate.getDate() + 30);\n return expirationDate.toISOString();\n })()}\n onPaymentStatusChange={event =>\n this.handlePaymentStatusChange(event.detail)\n }\n country={sessionState.data?.pricing?.country}\n redirectUrl={this.checkoutResponse?.result?.data?.url}\n timeToRedirect={this.timeToRedirectAPM}\n bearerToken={this.checkoutResponse?.result?.data?.bearerToken}\n />\n )}\n {this.displayConfig.checkoutSummary && (\n <div\n class=\"summary-price-details\"\n style={{\n display: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary({\n displayedComponents: ['priceDetails'],\n })}\n </div>\n )}\n {this.displayConfig.submitButton && !this.isQrCodeVisible && (\n <div class=\"payment-button-container\">\n <payment-button\n paymentMethod={this.currentPaymentMethod}\n isLoading={this.isSubmitting}\n trialPeriodDays={\n sessionState.data?.itemInformation?.trial?.trialPeriodDays\n }\n onSubmit={() => {\n submit();\n }}\n redirectUrl={!!this.checkoutResponse?.result?.data?.url}\n timeToRedirect={this.timeToRedirectAPM}\n isDisabled={sessionState.data.fetchingInstallments}\n country={sessionState.data?.pricing?.country}\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 )}\n </div>\n {this.displayConfig.sandboxMode &&\n sessionState.isSandbox &&\n sessionState.data.sessionType ===\n SESSION_TYPE_ENUM.CHECKOUT_LANDING &&\n !isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <rebill-mode-sandbox />\n )}\n </div>\n {this.displayConfig.footer && (\n <rebill-footer\n style={{\n marginTop: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? '16px'\n : 'auto',\n }}\n />\n )}\n </div>\n </div>\n\n {this.displayConfig.checkoutSummary && (\n <div class=\"right-section-checkout\">\n <div class=\"checkout-summary-section\">\n <div\n class=\"summary-desktop\"\n style={{\n display: !isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary()}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }}\n />\n </>\n )}\n </>\n )\n );\n }\n}\n"],"names":["sessionState","sessionOnChange","yup.string"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rebill-checkout.entry.js","sources":["src/models/display.model.ts","src/models/enums/provider.enum.ts","src/components/checkout/utils/getRequiredFields.ts","src/components/checkout/utils/getSessionToInitialize.ts","src/components/checkout/rebill-checkout.css?tag=rebill-checkout","src/components/checkout/rebill-checkout.tsx"],"sourcesContent":["import { PAYMENT_METHOD_ENUM } from './enums/payment-methods.enum';\n\n/**\n * Interface that defines which sections of the checkout should be displayed\n */\nexport interface DisplayConfig {\n /**\n * Whether to show the checkout summary section\n * @default true\n */\n checkoutSummary?: boolean;\n\n /**\n * Whether to show the submit/payment button\n * @default true\n */\n submitButton?: boolean;\n\n /**\n * Whether to show the billing address section\n * @default true\n */\n billingAddress?: boolean;\n\n /**\n * Whether to show the customer information section\n * @default true\n */\n customerInformation?: boolean;\n\n /**\n * Whether to show the discount code section\n * @default true\n */\n discountCode?: boolean;\n\n /**\n * Whether to show the organization logo\n * @default true\n */\n logo?: boolean;\n\n /**\n * Whether to show the footer\n * @default true\n */\n footer?: boolean;\n\n /**\n * Whether to show the sandbox mode interactive tools (test cards and documentation links)\n * @default true\n */\n sandboxMode?: boolean;\n\n /**\n * Array of payment methods to exclude from being displayed in the checkout\n * @default undefined\n * @example ['card', 'cash']\n */\n excludePaymentMethods?: PAYMENT_METHOD_ENUM[];\n\n /**\n * Whether to show the processing payment screen (loading state)\n * @default true\n */\n processingPayment?: boolean;\n\n /**\n * Whether to show the success page after a successful payment\n * @default true\n */\n successPage?: boolean;\n\n /**\n * Whether to show the error message when a payment fails\n * @default true\n */\n errorMessage?: boolean;\n}\n\n/**\n * Default display configuration with all sections enabled\n */\nexport const DEFAULT_DISPLAY_CONFIG: DisplayConfig = {\n checkoutSummary: true,\n submitButton: true,\n billingAddress: true,\n customerInformation: true,\n discountCode: true,\n logo: true,\n footer: true,\n sandboxMode: true,\n processingPayment: true,\n successPage: true,\n errorMessage: true,\n};\n","export enum PROVIDER_ENUM {\n BAMBOO = 'bamboo_payment',\n FISERV = 'fiserv',\n KUSHKI = 'kushki',\n PAYWAY = 'payway',\n DOCK = 'dock',\n KLAP = 'klap',\n MOVII = 'movii',\n STRIPE = 'stripe',\n DECIDIR = 'decidir',\n}\n","import { api } from '../../../api';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { PaymentMethodMapper } from '../../../utils/payment-method-mapper';\nimport { mapRequiredFields, RequiredField } from '../../../utils/required-fields-mappers';\n\nexport interface RequiredFieldsResult {\n fields: string[];\n original: RequiredField[];\n}\n\nexport interface AllRequiredFieldsMap {\n [key: string]: RequiredFieldsResult;\n}\n\nconst getRequiredFields = async (\n currency: string,\n method: string,\n organizationId: string,\n): Promise<RequiredFieldsResult> => {\n const requiredFieldsResponse = await api.checkout.getRequiredFields(\n {\n currency,\n method,\n },\n organizationId,\n );\n\n return {\n fields: mapRequiredFields(requiredFieldsResponse.data),\n original: requiredFieldsResponse.data,\n };\n};\n\nexport const getAllRequiredFields = async (): Promise<AllRequiredFieldsMap> => {\n const paymentMethods = sessionState.data?.itemInformation?.paymentMethods;\n const promises = paymentMethods.map(async paymentMethod => {\n try {\n const apiPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data?.pricing?.country,\n );\n\n const result = await getRequiredFields(\n sessionState.data.pricing.currency,\n apiPaymentMethod,\n sessionState.data.organization.id,\n );\n\n return {\n paymentMethod,\n ...result,\n };\n } catch (error) {\n console.error(`Error getting required fields for ${paymentMethod}:`, error);\n return {\n paymentMethod,\n fields: [],\n original: [],\n };\n }\n });\n\n const results = await Promise.all(promises);\n const fieldsMap: AllRequiredFieldsMap = {};\n\n results.forEach(result => {\n fieldsMap[result.paymentMethod] = {\n fields: result.fields,\n original: result.original,\n };\n });\n return fieldsMap;\n};\n\nexport const getRequiredFieldsForMethod = (\n paymentMethod: PAYMENT_METHOD_ENUM,\n allRequiredFields: AllRequiredFieldsMap,\n): RequiredFieldsResult => {\n const storedFields = allRequiredFields[paymentMethod];\n if (storedFields) {\n return storedFields;\n } else {\n return {\n fields: [],\n original: [],\n };\n }\n};\n","import { api } from 'api';\nimport { SESSION_TYPE_ENUM } from 'models/enums/session.enum';\nimport { generateIdempotencyKey } from 'utils/generate-idempotency-key';\n\nconst parseSession = (session: string) =>\n typeof session === 'string' ? JSON.parse(session) : session;\n\nconst getCheckoutLandingSession = (checkoutLandingSession: string) => {\n return parseSession(checkoutLandingSession);\n};\n\n// TODO: Remove this\nconst getCurerntIP = () => {\n return '190.188.127.250';\n};\n\nconst getSDKInstantItemSession = async ({\n publicKey,\n instantProduct,\n instantPlan,\n}: {\n publicKey: string;\n instantProduct?: string;\n instantPlan?: string;\n}) => {\n const session = parseSession(instantProduct ? instantProduct : instantPlan);\n const response = await api.sessions.createSDKInstantSessionRequest(\n session,\n generateIdempotencyKey(),\n getCurerntIP(),\n publicKey,\n );\n const dataWithDescription = {\n ...response.data,\n ...(response.data.plan && {\n plan: { ...response.data.plan, description: session.description || [] },\n }),\n ...(response.data.product && {\n product: { ...response.data.product, description: session.description || [] },\n }),\n };\n const instantSession = dataWithDescription;\n return instantSession;\n};\n\nconst getSDKItemSession = async ({\n publicKey,\n productId,\n planId,\n}: {\n publicKey: string;\n productId?: string;\n planId?: string;\n}) => {\n const response = await api.sessions.createSDKItemSessionRequest({\n ...(productId ? { productId } : {}),\n ...(planId ? { planId } : {}),\n idempotencyKey: generateIdempotencyKey(),\n deviceId: '123123123',\n clientIP: getCurerntIP(),\n publicKey,\n });\n\n const itemSession = response.data;\n return itemSession;\n};\n\nexport const getSessionToInitialize = async ({\n publicKey,\n checkoutLandingSession,\n instantProduct,\n instantPlan,\n productId,\n planId,\n}: {\n publicKey: string;\n checkoutLandingSession?: string;\n instantProduct?: string;\n instantPlan?: string;\n productId?: string;\n planId?: string;\n}) => {\n if (checkoutLandingSession) {\n const session = await getCheckoutLandingSession(checkoutLandingSession);\n return { session, type: SESSION_TYPE_ENUM.CHECKOUT_LANDING };\n }\n if (instantProduct || instantPlan) {\n const session = await getSDKInstantItemSession({ publicKey, instantProduct, instantPlan });\n return { session, type: SESSION_TYPE_ENUM.INSTANT };\n }\n if (productId || planId) {\n const session = await getSDKItemSession({ publicKey, productId, planId });\n return { session, type: SESSION_TYPE_ENUM.SDK_ITEM };\n }\n};\n","@media (max-width: 1024px) {\n .rebill-checkout {\n width: 100%;\n flex-direction: column;\n gap: 0;\n justify-content: flex-start;\n background: var(--rebill-color-background);\n padding: 20px;\n }\n .right-section-checkout .left-section {\n width: 100%;\n height: 100%;\n background: var(--rebill-color-background);\n }\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n height: 100%;\n }\n .otp-container {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n }\n\n /* Full width layout when summary is hidden - Mobile/Tablet */\n .rebill-checkout.full-width-layout .left-section {\n width: 100%;\n }\n\n .rebill-checkout.full-width-layout .left-section-container {\n max-width: none;\n width: 100%;\n }\n}\n\n@media (min-width: 1025px) {\n .rebill-checkout {\n width: 100%;\n min-height: 600px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n overflow-y: auto;\n }\n\n .left-section {\n display: flex;\n width: 60%;\n background: var(--rebill-color-background-left);\n justify-content: space-around;\n }\n\n .right-section-checkout {\n display: flex;\n padding-top: 72px;\n width: 40%;\n background: var(--rebill-color-background-right);\n position: sticky;\n top: 0;\n\n justify-content: center;\n }\n\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-bottom: 36px;\n gap: 32px;\n }\n .left-section-container {\n max-width: 450px;\n min-width: 450px;\n margin: 2.5rem 2rem 1.5rem 2rem;\n display: flex;\n flex-direction: column;\n }\n\n .checkout-summary-section {\n max-width: 450px;\n min-width: 350px;\n margin: 0rem 2rem;\n background: var(--rebill-color-background-right);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n width: 100%;\n }\n\n .checkout-form-section user-information,\n .checkout-form-section payment-method-selector,\n .checkout-form-section rebill-address,\n .checkout-summary-section rebill-summary {\n width: 100%;\n }\n\n /* Full width layout when summary is hidden - Desktop */\n .rebill-checkout.full-width-layout .left-section {\n width: 100%;\n justify-content: stretch;\n }\n\n .rebill-checkout.full-width-layout .left-section-container {\n max-width: none;\n min-width: auto;\n width: 100%;\n margin: 2.5rem 2rem 1.5rem 2rem;\n }\n\n /* Google Maps Autocomplete Styles */\n .pac-container {\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border: 1px solid #e0e0e0;\n margin-top: 4px;\n font-family: inherit;\n }\n\n .pac-item {\n padding: 10px 12px;\n cursor: pointer;\n border-top: none;\n }\n\n .pac-item:first-child {\n border-top: none;\n }\n\n .pac-item:hover {\n background-color: #f5f5f5;\n }\n\n .pac-item-query {\n font-weight: 500;\n }\n\n .pac-icon {\n display: none;\n }\n}\n\n.payment-button-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-bottom: 16px;\n}\n/* Animaciones para componentes condicionales */\n.animated-component {\n transition: all 0.3s ease-in-out;\n overflow: visible;\n}\n\n/* Keep overflow hidden only for sliding height animations */\n/* .animated-component.slide-in {\n overflow: hidden;\n} */\n\n.fade-in {\n animation: fadeIn 0.4s ease-in-out;\n}\n\n.slide-in {\n animation: slideIn 0.5s ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-20px);\n max-height: 0;\n }\n to {\n opacity: 1;\n transform: translateX(0);\n max-height: 450px;\n }\n}\n\n/* Animación para cuando se ocultan los componentes */\n.animated-component.hide {\n animation: fadeOut 0.3s ease-in-out forwards;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* Test Mode Chip Positioning */\nrebill-mode-sandbox {\n position: fixed;\n bottom: 50px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n}\n\n/* Ensure the chip is visible on all screen sizes */\n@media (max-width: 1024px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n\n@media (min-width: 1025px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n.mode-sandbox-mobile-container {\n display: flex;\n align-items: center;\n width: 100%;\n\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n}\n\n/* Desktop grande - mantener tamaños originales */\n@media (min-width: 1451px) {\n .left-section-container {\n min-width: 450px;\n margin: 2.5rem 5rem 1.5rem 5rem;\n }\n\n .checkout-summary-section {\n min-width: 450px;\n margin: 0rem 5rem;\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport {\n CheckoutStatusE,\n CreateAPMCheckoutRequest,\n CreateAPMCheckoutResponse,\n CreateCardCheckoutRequest,\n CreateCardCheckoutResponse,\n} from '../../api/entities/checkout/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/payment-button/payment-button';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport '../../components/checkout/summary/summary';\nimport '../../components/renewal/user-information-static/user-information-static';\nimport '../../components/shared/organization-logo/organization-logo';\nimport { initializeI18nWithSessionLanguage } from '../../i18n/i18n.config';\nimport { I18nService } from '../../i18n/i18n.service';\nimport {\n DEFAULT_DISPLAY_CONFIG,\n DisplayConfig,\n SESSION_ITEM_TYPE_ENUM,\n SESSION_TYPE_ENUM,\n} from '../../models';\n\nimport { LOCALES_ENUM } from '../../models/enums/locales.enum';\n\nimport { PaymentMethodNameE } from '../../models/enums/payment-method-name.enum';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { PROVIDER_ENUM } from '../../models/enums/provider.enum';\nimport { STATUS_REQ_CHECKOUT_APM } from '../../models/enums/status-req-checkout-apm.enum';\nimport {\n onChange as sessionOnChange,\n sessionState,\n SessionStore,\n UserInformation,\n} from '../../store/session.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { generateIdempotencyKey } from '../../utils/generate-idempotency-key';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys, PaymentErrorMapper } from '../../utils/payment-error-mapper';\nimport { PaymentMethodMapper } from '../../utils/payment-method-mapper';\nimport { getFieldValues, isFieldRequired } from '../../utils/required-fields-mappers';\nimport '../shared/mode-sandbox/mode-sandbox';\nimport { CardError } from './payment-method-selector/payment-method-selector';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFields,\n getRequiredFieldsForMethod,\n} from './utils/getRequiredFields';\nimport { getSessionToInitialize } from './utils/getSessionToInitialize';\n\n@Component({\n tag: 'rebill-checkout',\n styleUrl: 'rebill-checkout.css',\n shadow: false,\n})\nexport class RebillCheckout {\n // Public properties\n /**\n * The ID of the item (product or plan) to be purchased\n */\n @Prop() productId?: string;\n @Prop() planId?: string;\n\n /**\n * The organization's public key\n */\n @Prop() publicKey!: string;\n\n /**\n * Instant product data for creating checkout on-the-fly (alternative to externalSession)\n */\n @Prop() instantProduct?: string;\n\n /**\n * Instant plan data for creating checkout on-the-fly (alternative to externalSession)\n */\n @Prop() instantPlan?: string;\n\n /**\n * Display object that determines the sections to be displayed in the checkout\n */\n @Prop() display?: DisplayConfig | string;\n\n /**\n * Customer information to override default user information when sections are hidden\n * This data will be used in the submit process when provided\n */\n @Prop() customerInformation?: UserInformation | string;\n\n /**\n * One click checkout feature availability\n * @default true\n */\n @Prop() oneClickCheckout: boolean = true;\n\n /**\n * Custom CSS to be injected into the component\n * Can be a string of CSS or a URL to a CSS file\n */\n @Prop() css?: string;\n\n /**\n * Language code for the application display\n * If not provided, the language will be determined by the current session logic\n * Supported languages: 'en', 'es', 'pt'\n */\n @Prop() language?: string;\n\n /**\n * Watch for language prop changes and update i18n accordingly\n */\n @Watch('language')\n async handleLanguageChange(newLanguage: string, oldLanguage: string) {\n // Only update if the language actually changed and is not empty\n if (newLanguage && newLanguage !== oldLanguage) {\n try {\n await I18nService.changeLanguage(newLanguage);\n SessionStore.changeLanguage(newLanguage as LOCALES_ENUM);\n console.log(`[RebillCheckout] Language changed from ${oldLanguage} to ${newLanguage}`);\n } catch (error) {\n console.error('[RebillCheckout] Failed to change language:', error);\n }\n }\n }\n\n /**\n * Event when there is an error in the payment process\n */\n @Event() error: EventEmitter<any>;\n\n /**\n * Event when the payment is successful\n */\n @Event() success: EventEmitter<any>;\n\n @Event() successRedirect: EventEmitter<any>;\n\n /**\n * Event when the form data changes\n */\n @Event() formChange: EventEmitter<{\n data: any;\n isValid: boolean;\n errors?: any;\n }>;\n\n // Internal\n @Prop() checkoutLandingSession?: string;\n @Prop() externalPayment?: string;\n @State() rejectedPaymentCard: boolean = false;\n @State() rejectedPaymentAPM: boolean = false;\n @State() countries: Country[] = [];\n @State() currentPaymentMethod: PAYMENT_METHOD_ENUM;\n @State() checkoutResponse: CreateAPMCheckoutResponse | null = null;\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() isAPMSubmitting: boolean = false;\n @State() isAPMSuccess: boolean = false;\n @State() storedCheckoutResults: Map<PAYMENT_METHOD_ENUM, CreateAPMCheckoutResponse> = new Map();\n @State() alertErrorKeys: AlertErrorKeys | null = null;\n @State() currentApmPaymentMethod: PaymentMethodNameE | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() showRefreshModal: boolean = false;\n @State() cardError: CardError = {\n showCardInvalid: false,\n type: null,\n };\n @State() initialData: any = {};\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() customerExists: boolean = false;\n @State() showOtp: boolean = false;\n @State() otpVerified: boolean = false;\n @State() responseCheckoutCard: CreateCardCheckoutResponse | null = null;\n @State() cardMode: 'input' | 'select' | null = null;\n private formElement: any;\n private emailDebounceTimeout: number | null = null;\n private injectedStyleElement: HTMLStyleElement | null = null;\n\n /**\n * Get the display configuration, merging user config with defaults\n */\n private get displayConfig(): DisplayConfig {\n if (!this.display) {\n return DEFAULT_DISPLAY_CONFIG;\n }\n\n // If display is a string, try to parse it as JSON\n if (typeof this.display === 'string') {\n try {\n const parsed = JSON.parse(this.display);\n return { ...DEFAULT_DISPLAY_CONFIG, ...parsed };\n } catch (error) {\n console.warn('Invalid display configuration string, using defaults:', error);\n return DEFAULT_DISPLAY_CONFIG;\n }\n }\n\n // If display is an object, merge with defaults\n return { ...DEFAULT_DISPLAY_CONFIG, ...this.display };\n }\n\n /**\n * Get the customer information configuration, parsing if needed\n */\n private get parsedCustomerInformation(): UserInformation | null {\n if (!this.customerInformation) {\n return null;\n }\n\n // If customerInformation is a string, try to parse it as JSON\n if (typeof this.customerInformation === 'string') {\n try {\n return JSON.parse(this.customerInformation);\n } catch (error) {\n console.warn('Invalid customerInformation configuration string, ignoring:', error);\n return null;\n }\n }\n\n // If customerInformation is an object, return as is\n return this.customerInformation;\n }\n\n /**\n * Get filtered payment methods based on excludePaymentMethods configuration\n */\n private get filteredPaymentMethods(): PAYMENT_METHOD_ENUM[] {\n const allPaymentMethods = sessionState.data?.itemInformation?.paymentMethods || [];\n const excludedMethods = this.displayConfig.excludePaymentMethods;\n\n // If no exclusion list, return all payment methods\n if (!excludedMethods || excludedMethods.length === 0) {\n return allPaymentMethods;\n }\n\n // Filter out excluded payment methods\n return allPaymentMethods.filter(method => !excludedMethods.includes(method));\n }\n\n /**\n * Get combined user data with priority: formData > customerInformation > sessionState.userInformation\n */\n private getCombinedUserData(formData: any = {}): any {\n const sessionUserInfo = sessionState.data.userInformation;\n const customerInformation = this.parsedCustomerInformation;\n\n return {\n // Email\n 'email': formData?.email || customerInformation?.email || sessionUserInfo.email,\n\n // Full name\n 'fullName': formData?.fullName || customerInformation?.fullName || sessionUserInfo.fullName,\n\n // Phone\n 'countryCodePhoneNumber':\n formData?.countryCodePhoneNumber ||\n customerInformation?.phoneNumber?.countryCode ||\n customerInformation?.countryCode ||\n sessionUserInfo.countryCode,\n 'phoneNumber':\n formData?.phoneNumber ||\n customerInformation?.phoneNumber?.number ||\n sessionUserInfo.phoneNumber,\n // Document\n 'documentType':\n formData?.documentType || customerInformation?.documentType || sessionUserInfo.documentType,\n 'documentNumber':\n formData?.documentNumber ||\n customerInformation?.documentNumber ||\n sessionUserInfo.documentNumber,\n\n // Billing address\n 'billing-country':\n formData?.['billing-country'] ||\n customerInformation?.address?.billingAddress?.country ||\n sessionUserInfo.address?.billingAddress?.country,\n 'billing-state':\n formData?.['billing-state'] ||\n customerInformation?.address?.billingAddress?.state ||\n sessionUserInfo.address?.billingAddress?.state,\n 'billing-address':\n formData?.['billing-address'] ||\n customerInformation?.address?.billingAddress?.address ||\n sessionUserInfo.address?.billingAddress?.address,\n 'billing-city':\n formData?.['billing-city'] ||\n customerInformation?.address?.billingAddress?.city ||\n sessionUserInfo.address?.billingAddress?.city,\n 'billing-zip':\n formData?.['billing-zip'] ||\n customerInformation?.address?.billingAddress?.zip ||\n sessionUserInfo.address?.billingAddress?.zip,\n };\n }\n\n /**\n * Inject custom CSS into the document\n */\n private injectCustomCSS() {\n if (!this.css) {\n return;\n }\n\n // Clean up any existing injected CSS\n this.cleanupInjectedCSS();\n\n // Create a unique ID for this component's CSS\n const cssId = `rebill-checkout-css-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n\n // Check if CSS is a URL or raw CSS\n if (\n this.css.startsWith('http://') ||\n this.css.startsWith('https://') ||\n this.css.startsWith('//')\n ) {\n // Load CSS from URL\n const linkElement = document.createElement('link');\n linkElement.rel = 'stylesheet';\n linkElement.href = this.css;\n linkElement.id = cssId;\n linkElement.setAttribute('data-rebill-injected', 'true');\n document.head.appendChild(linkElement);\n this.injectedStyleElement = linkElement as any; // Store reference for cleanup\n } else {\n // Inject raw CSS\n const styleElement = document.createElement('style');\n styleElement.id = cssId;\n styleElement.setAttribute('data-rebill-injected', 'true');\n styleElement.textContent = this.css;\n document.head.appendChild(styleElement);\n this.injectedStyleElement = styleElement;\n }\n }\n\n /**\n * Clean up injected CSS\n */\n private cleanupInjectedCSS() {\n if (this.injectedStyleElement) {\n try {\n this.injectedStyleElement.remove();\n } catch (error) {\n console.warn('Error removing injected CSS:', error);\n }\n this.injectedStyleElement = null;\n }\n }\n\n private timeToRedirectAPM: number = 5000;\n resizeHandler = () => {\n const newBreakpoint = getBreakpoint(window.innerWidth);\n if (newBreakpoint !== this.breakpoint) {\n this.breakpoint = newBreakpoint;\n }\n };\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n if (this.emailDebounceTimeout) {\n clearTimeout(this.emailDebounceTimeout);\n this.emailDebounceTimeout = null;\n }\n this.cleanupInjectedCSS();\n }\n\n async componentWillLoad() {\n try {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n // Inject custom CSS if provided\n this.injectCustomCSS();\n\n // Initialize language - use prop if provided, otherwise use current session logic\n if (this.language) {\n await I18nService.changeLanguage(this.language);\n } else {\n initializeI18nWithSessionLanguage();\n }\n\n const { session: sessionToInitialize, type } = await getSessionToInitialize({\n publicKey: this.publicKey,\n checkoutLandingSession: this.checkoutLandingSession,\n instantProduct: this.instantProduct,\n instantPlan: this.instantPlan,\n productId: this.productId,\n planId: this.planId,\n });\n\n SessionStore.initializeSession({\n session: sessionToInitialize,\n type,\n payment:\n typeof this.externalPayment === 'string'\n ? JSON.parse(this.externalPayment)\n : this.externalPayment,\n });\n if (sessionState.sessionRefreshed) {\n this.showRefreshModal = true;\n }\n\n GoogleMapsService.loadGoogleMapsScript();\n\n const response = await api.data.getCountries();\n this.countries = response.data;\n\n this.initialData = this.getInitialData();\n\n this.allRequiredFields = await getAllRequiredFields();\n if (this.filteredPaymentMethods.length > 0) {\n if (\n sessionState.data.paymentStatus === PaymentMessageE.REJECTED ||\n (sessionState.data.paymentStatus === PaymentMessageE.APPROVED &&\n this.filteredPaymentMethods.includes(PAYMENT_METHOD_ENUM.BANK_TRANSFER))\n ) {\n //buscar el metodo de pago bank_transfer\n const bankTransferMethod = this.filteredPaymentMethods.find(\n method => method === PAYMENT_METHOD_ENUM.BANK_TRANSFER,\n );\n if (bankTransferMethod) {\n this.changePaymentMethod(bankTransferMethod);\n SessionStore.setPaymentMethodSelected(bankTransferMethod);\n }\n } else {\n // En caso contrario, usar el primer método disponible\n this.changePaymentMethod(this.filteredPaymentMethods[0]);\n }\n }\n if (this.oneClickCheckout) {\n api.customers\n .exists({ email: sessionState.data?.prefilledData?.email }, this.publicKey)\n .then(res => {\n this.customerExists = res.data.exists;\n });\n }\n\n this.cardMode = sessionState.cardMode;\n sessionOnChange('cardMode', () => {\n this.cardMode = sessionState.cardMode;\n });\n } catch (error) {\n console.error('Error initializing checkout:', error);\n }\n }\n\n componentWillUpdate() {\n // Re-inject CSS when css prop changes\n this.injectCustomCSS();\n }\n\n private async changePaymentMethod(paymentMethod: PAYMENT_METHOD_ENUM) {\n if (\n paymentMethod !== this.currentPaymentMethod &&\n this.filteredPaymentMethods.includes(paymentMethod)\n ) {\n // Store current checkout result if switching away from a fulfilled APM method\n // Clear any existing checkout response when changing payment methods\n if (this.checkoutResponse) {\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n }\n\n this.currentPaymentMethod = paymentMethod;\n SessionStore.setPaymentMethodSelected(paymentMethod);\n\n // Reset cardMode to 'input' when switching to non-card payment methods\n if (paymentMethod !== PAYMENT_METHOD_ENUM.CARD) {\n this.cardMode = 'input';\n SessionStore.setCardMode('input');\n }\n\n // Reset loading state when changing payment methods\n this.isSubmitting = false;\n // Map and store the APM payment method\n this.currentApmPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data?.pricing?.country,\n );\n // // Restore stored result if switching back to a previously fulfilled APM method\n // Clear checkout response when switching to non-APM methods\n if (\n paymentMethod !== PAYMENT_METHOD_ENUM.CASH &&\n paymentMethod !== PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n } else {\n // For APM methods, always clear the checkout response to force new generation\n this.checkoutResponse = null;\n SessionStore.clearCheckoutResponse();\n }\n\n this.paymentMethodSelected.emit(paymentMethod);\n try {\n // Call required fields endpoint\n this.currentRequiredFields = getRequiredFieldsForMethod(\n paymentMethod,\n this.allRequiredFields,\n ).fields;\n\n const response = await api.sessions.updateCurrentSessionPaymentMethod(\n sessionState.data.sessionId,\n {\n paymentMethodName: PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n sessionState.data.pricing.country,\n ),\n paymentMethodType: paymentMethod,\n currency: sessionState.data.pricing.currency,\n },\n );\n SessionStore.setProviderKey(response.providerKey);\n if (\n response.providerKey === PROVIDER_ENUM.DECIDIR ||\n sessionState.data.providerKey === PROVIDER_ENUM.DECIDIR\n ) {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n sessionState.deviceId = uuid;\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n }\n } catch (error) {\n console.error('Failed to update payment method or get required fields:', error);\n }\n }\n }\n\n private get currentPaymentError(): boolean {\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return this.rejectedPaymentCard;\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return this.rejectedPaymentAPM;\n }\n return false;\n }\n\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n @Listen('paymentMethodSelected')\n async handlePaymentMethodSelected(event: CustomEvent<PAYMENT_METHOD_ENUM>) {\n event.stopPropagation();\n const paymentMethod = event.detail;\n\n // Only make API call if payment method actually changed\n this.changePaymentMethod(paymentMethod);\n if (this.formElement) {\n this.formElement.resetValidation();\n }\n }\n\n private async handleSubmit(event: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n this.rejectedPaymentCard = false;\n this.rejectedPaymentAPM = false;\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n this.handleSubmitCard(event);\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n this.handleSubmitAPM(event);\n }\n }\n\n private handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n\n // Validate the form to check if it's valid\n let isValid = true;\n let errors = {};\n\n if (this.formElement?.errors) {\n errors = this.formElement.errors;\n isValid = Object.keys(errors).length === 0;\n }\n\n this.formChange.emit({\n data: formData,\n isValid,\n errors: Object.keys(errors).length > 0 ? errors : undefined,\n });\n }\n\n private async handleSubmitCard(event: CustomEvent) {\n const formData = event.detail;\n const combinedData = this.getCombinedUserData(formData);\n\n if (!sessionState.data.cardTokenId && !sessionState.data.cardId) {\n this.cardError = {\n showCardInvalid: true,\n type: 'card_error',\n };\n return;\n }\n\n if (!sessionState.data.cardInformation && !sessionState.data.cardId) {\n this.cardError = {\n showCardInvalid: true,\n type: 'tokenization_error',\n };\n return;\n }\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n const checkoutRequest: CreateCardCheckoutRequest = {\n transaction: {\n quantity: 1,\n ...(sessionState.data.discount.couponCode && {\n couponCode: sessionState.data.discount.couponCode,\n }),\n },\n installments: Number(\n formData.installments ||\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n ),\n ...(sessionState.data.cardTokenId && {\n cardTokenId: sessionState.data.cardTokenId,\n ...(sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN && {\n saveCard: sessionState.saveCard,\n }),\n }),\n ...(sessionState.data.cardId && {\n cardId: sessionState.data.cardId,\n }),\n\n ...((!this.otpVerified || this.cardMode === 'input') && {\n customer: {\n firstName: combinedData.fullName?.split(' ')[0],\n lastName: combinedData.fullName?.split(' ').slice(1).join(' '),\n email: combinedData.email,\n phone: {\n countryCode: combinedData.countryCodePhoneNumber,\n number: combinedData.phoneNumber,\n },\n },\n }),\n billingDetails: {\n address: {\n lineOne: combinedData['billing-address'],\n city: combinedData['billing-city'],\n state: combinedData['billing-state'],\n country: combinedData['billing-country'],\n zipCode: combinedData['billing-zip'],\n },\n identification: {\n type: combinedData.documentType,\n value: combinedData.documentNumber,\n },\n },\n customAttributes: {\n ...(sessionState.deviceId && { deviceId: sessionState.deviceId }),\n },\n ...(sessionState.metadata && { paymentMetadata: sessionState.metadata }),\n };\n\n const idempotencyKey = generateIdempotencyKey();\n\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n\n try {\n const response = await api.checkout.createCardCheckoutRequest(\n sessionState.data.sessionId,\n idempotencyKey,\n checkoutRequest,\n sessionState.data.accessToken || undefined,\n );\n\n SessionStore.setCheckoutResponse(response.data);\n this.responseCheckoutCard = response.data;\n\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n SessionStore.setPaymentStatus(PaymentMessageE.APPROVED);\n this.success.emit({\n paymentMethod: this.currentPaymentMethod,\n data: response.data,\n });\n sessionState.data.cardInformation.lastFour = response.data.result?.cardLastFour;\n } else {\n this.error.emit({\n paymentMethod: this.currentPaymentMethod,\n data: response.data,\n });\n SessionStore.setCheckoutResponse(response.data);\n this.rejectedPaymentCard = true;\n\n this.alertErrorKeys = {\n message:\n (response.data.result?.statusDetail.toLowerCase() as PaymentMessageE) ??\n (response.data.error?.error?.message?.toLowerCase() as PaymentMessageE),\n };\n }\n } catch (error) {\n this.error.emit({\n paymentMethod: this.currentPaymentMethod,\n data: error.data,\n });\n SessionStore.setCheckoutResponse(error.data);\n this.responseCheckoutCard = error.data;\n this.rejectedPaymentCard = true;\n\n this.alertErrorKeys = {\n message:\n (error.data?.error?.type?.toLowerCase() as PaymentMessageE) ??\n (error.data?.result?.statusDetail?.toLowerCase() as PaymentMessageE),\n };\n } finally {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n }\n }\n\n private async handleSubmitAPM(data: any) {\n // Only handle cash and transfer payments for now\n console.log('handleSubmitAPM', this.currentPaymentMethod);\n if (\n this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CASH &&\n this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return;\n }\n this.isSubmitting = true;\n const formData = data.detail;\n const combinedData = this.getCombinedUserData(formData);\n\n try {\n // Transform form data to match CreateAPMCheckoutRequest structure\n const billingDetails = {\n address: {\n country: combinedData['billing-country'] || '',\n state: combinedData['billing-state'] || '',\n city: combinedData['billing-city'] || '',\n zipCode: combinedData['billing-zip'] || '',\n lineOne: combinedData['billing-address'] || '',\n },\n\n identification: {\n type: combinedData.documentType,\n value: combinedData.documentNumber,\n },\n };\n\n // Use stored APM payment method\n const apmPaymentMethod =\n this.currentApmPaymentMethod ||\n PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country,\n );\n\n const checkoutRequest: CreateAPMCheckoutRequest = {\n transaction: {\n quantity: 1,\n ...(sessionState.data.discount.couponCode && {\n couponCode: sessionState.data.discount.couponCode,\n }),\n },\n method: apmPaymentMethod,\n billingDetails,\n redirect: {\n approved: window.location.origin + '/payment/success',\n rejected: window.location.origin + '/payment/failure',\n },\n paymentMetadata: sessionState.metadata,\n customAttributes: {\n bank: formData.bankId || sessionState.data?.bankId?.code,\n },\n };\n\n // Add customer data only for unauthenticated users\n // For authenticated users, the customer data is retrieved from the session\n const isAuthenticated = false; // TODO: Check authentication status from session\n\n if (!isAuthenticated) {\n checkoutRequest.customer = {\n firstName: combinedData.fullName?.split(' ')[0] || '',\n lastName: combinedData.fullName?.split(' ').slice(1).join(' ') || '',\n email: combinedData.email,\n phone: {\n countryCode: combinedData.countryCodePhoneNumber || '',\n number: combinedData.phoneNumber || '',\n },\n };\n }\n\n const idempotencyKey = generateIdempotencyKey();\n // Call APM checkout endpoint\n const response = await api.checkout.createAPMCheckoutRequest(\n sessionState.data.sessionId,\n idempotencyKey,\n checkoutRequest,\n );\n this.isSubmitting = false;\n this.checkoutResponse = response.data;\n this.storedCheckoutResults.set(this.currentPaymentMethod, response.data);\n\n if (response.data?.date) {\n sessionState.data.paymentDate = response.data.date;\n sessionState.createdAt = response.data.date;\n }\n if (response.data?.traceId) {\n sessionState.data.paymentReference = response.data.traceId;\n }\n } catch (error) {\n this.isSubmitting = false;\n this.checkoutResponse = error.data;\n\n this.alertErrorKeys = {\n message:\n (error.data?.error?.type?.toLowerCase() as PaymentMessageE) ??\n (error.data?.result?.statusDetail?.toLowerCase() as PaymentMessageE),\n };\n this.rejectedPaymentAPM = true;\n }\n }\n\n /**\n * Public method to submit the checkout form programmatically from external platforms\n * This method can be called when submitButton is set to false in display config\n */\n @Method()\n async submit(): Promise<void> {\n if (this.formElement && typeof this.formElement.submit === 'function') {\n this.formElement.submit();\n } else {\n // Fallback: trigger handleSubmit directly with empty event\n await this.handleSubmit({ detail: {} } as CustomEvent);\n }\n }\n\n /**\n * Listen for payment status changes from APM QR code\n */\n private handlePaymentStatusChange = (statusData: {\n status: STATUS_REQ_CHECKOUT_APM;\n isCompleted: boolean;\n data: any;\n }) => {\n if (statusData.isCompleted) {\n if (statusData.status === STATUS_REQ_CHECKOUT_APM.APPROVED) {\n SessionStore.setPaymentStatus(PaymentMessageE.APPROVED);\n this.success.emit({\n paymentMethod: this.currentPaymentMethod,\n data: this.checkoutResponse,\n });\n } else if (statusData.status === STATUS_REQ_CHECKOUT_APM.REJECTED) {\n SessionStore.setPaymentStatus(PaymentMessageE.REJECTED);\n\n this.alertErrorKeys = {\n alertTitle: PaymentMessageE.APM_ERROR_GENERIC,\n message: PaymentMessageE.APM_MESSAGE_ERROR,\n };\n }\n }\n };\n\n @Listen('input')\n async handleInputChange(event: CustomEvent<{ id: string; value: string }>) {\n if (event?.detail?.id === 'email' && this.oneClickCheckout) {\n if (this.emailDebounceTimeout) {\n clearTimeout(this.emailDebounceTimeout);\n }\n\n if (!event.detail.value || event.detail.value.trim() === '') {\n this.customerExists = false;\n SessionStore.clearCustomerIdAndToken();\n return;\n }\n\n this.emailDebounceTimeout = setTimeout(async () => {\n try {\n const response = await api.customers.exists(\n { email: sessionState.data.userInformation.email },\n this.publicKey,\n );\n this.customerExists = response.data.exists;\n } catch (error) {\n this.customerExists = false;\n }\n }, 500) as unknown as number;\n }\n }\n\n private validationSchema = {\n 'email': yup.string().when([], {\n is: () => !this.otpVerified,\n then: schema =>\n schema\n .email('validation.emailInvalid')\n .matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/, 'validation.emailInvalid')\n .required('validation.emailRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'fullName': yup.string().when([], {\n is: () => !this.otpVerified,\n then: schema =>\n schema\n .required('validation.fullNameRequired')\n .matches(\n /^[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s]{2,}\\s+[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s]{2,}$/,\n 'validation.fullNameInvalid',\n ),\n otherwise: schema => schema.notRequired(),\n }),\n 'isValidPhoneNumber': yup.string().when([], {\n is: () =>\n (isFieldRequired('phoneNumber', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.equals(['true'], 'validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-country', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.countryRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-state': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-state', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.stateRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-address': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-address', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.addressRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-city': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-city', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.cityRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-zip': yup.string().when([], {\n is: () =>\n (isFieldRequired('billing-zip', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'bankId': yup.string().when([], {\n is: () => isFieldRequired('bankId', this.currentRequiredFields),\n then: schema => schema.required('validation.bankRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'installments': yup.string().when([], {\n is: () =>\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD &&\n sessionState.data.cardInformation.installments.isAvailableInstallments &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 &&\n sessionState.data.itemInformation.type !== SESSION_ITEM_TYPE_ENUM.PLAN,\n then: schema => schema.required('validation.installmentsRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n (isFieldRequired('documentType', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema => schema.required('validation.documentTypeRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentNumber': yup.string().when([], {\n is: () =>\n (isFieldRequired('documentNumber', this.currentRequiredFields) && !this.otpVerified) ||\n (this.otpVerified && this.cardMode === 'input'),\n then: schema =>\n schema.required('validation.documentNumberRequired').min(7, 'validation.documentInvalid'),\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private getInitialData = () => {\n return {\n 'email': sessionState.data.userInformation.email || '',\n 'fullName': sessionState.data.userInformation.fullName || '',\n 'phoneNumber': sessionState.data.userInformation.phoneNumber?.number || '',\n 'countryCodePhoneNumber': sessionState.data.userInformation.countryCode || '',\n 'documentType': '',\n 'documentNumber': '',\n 'billing-country': sessionState.data.userInformation.address?.billingAddress?.country || '',\n 'billing-state': sessionState.data.userInformation?.address?.billingAddress?.state || '',\n 'billing-address': sessionState.data.userInformation?.address?.billingAddress?.address || '',\n 'billing-city': sessionState.data.userInformation?.address?.billingAddress?.city || '',\n 'billing-zip': sessionState.data.userInformation?.address?.billingAddress?.zip || '',\n 'bankId': sessionState.data.bankId?.code || '',\n 'card': '',\n 'installments':\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment?.toString() ||\n '',\n };\n };\n\n private hasPrefilledAddress = () => {\n const billingFields = [\n 'billing-country',\n 'billing-state',\n 'billing-address',\n 'billing-city',\n 'billing-zip',\n ];\n return billingFields.some(key => {\n const value = this.initialData[key];\n return value && value.trim() !== '';\n });\n };\n private get isQrCodeVisible(): boolean {\n return !!this.checkoutResponse?.result?.data?.qrCode;\n }\n private isPaymentApproved = (): boolean => {\n if (sessionState.data.paymentStatus === PaymentMessageE.APPROVED) {\n return true;\n }\n\n return false;\n };\n\n @Listen('onRebillAccountClick')\n handleRebillAccountClick(event: CustomEvent<boolean>) {\n this.showOtp = event.detail;\n }\n\n @Listen('returnForm')\n handleReturnForm(event: CustomEvent<boolean>) {\n this.showOtp = event.detail;\n SessionStore.clearCustomerIdAndToken();\n }\n\n @Listen('signOut')\n handleSignOut() {\n this.showOtp = false;\n this.otpVerified = false;\n if (!sessionState?.data?.prefilledData?.email) {\n this.customerExists = false;\n }\n SessionStore.clearCustomerIdAndToken();\n SessionStore.clearUserInformation();\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n this.alertErrorKeys = null;\n this.rejectedPaymentCard = false;\n this.rejectedPaymentAPM = false;\n }\n\n @Listen('codeVerified')\n handleCodeVerified() {\n this.otpVerified = true;\n this.showOtp = false;\n\n this.rejectedPaymentCard = false;\n this.alertErrorKeys = null;\n this.cardError = {\n showCardInvalid: false,\n type: null,\n };\n if (this.formElement) {\n this.formElement.resetValidation();\n }\n }\n private isPaymentRejected(): boolean {\n return (\n sessionState.data.paymentStatus === PaymentMessageE.REJECTED &&\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n );\n }\n\n render() {\n const countryOptions = this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }));\n\n const renderRebillSummary = (props: any = {}) => (\n <rebill-summary\n totalAmount={sessionState.data.pricing.total}\n currency={sessionState.data.pricing.currency}\n itemTitle={sessionState._session?.getTitle()}\n itemDescription={sessionState._session?.getDescription()}\n itemAmount={sessionState.data.pricing.subtotal}\n subtotal={sessionState.data.pricing.subtotal}\n allowCoupon={sessionState._session?.getAllowCoupon(this.displayConfig)}\n currentBreakpoint={this.breakpoint}\n planFrequency={sessionState._session?.getPlanFrequency()}\n planFrequencyCount={sessionState._session?.getPlanFrequencyCount()}\n discountType={sessionState.data.discount.discountType}\n discountedPercentage={sessionState.data.discount.discountedPercentage}\n discountDuration={sessionState.data.discount.discountDuration}\n discountAmount={sessionState.data.discount.discountAmount}\n {...props}\n />\n );\n\n return (\n sessionState.isInitialized && (\n <>\n {this.showRefreshModal && <rebill-modal-overlay />}\n {this.displayConfig.processingPayment && (\n <rebill-processing-payment\n style={{ display: this.isCardSubmitting ? 'block' : 'none' }}\n />\n )}\n {this.displayConfig.successPage &&\n this.isPaymentApproved() &&\n sessionState.isInitialized ? (\n <success-page\n typePaymentMethod={sessionState.data.paymentMethodSelected}\n paymentMethodName={PaymentMethodMapper.mapToAPMPaymentMethod(\n sessionState.data.paymentMethodSelected ||\n (sessionState.data.payment as any)?.paymentMethodType,\n sessionState.data?.pricing?.country,\n )}\n country={sessionState.data?.pricing?.country}\n bank={\n (sessionState.data.payment as any)?.paymentMethodMetadata?.bank ||\n (sessionState.data.payment as any)?.paymentMethodMetadata?.bank\n }\n cardLastFour={\n this.responseCheckoutCard?.result?.cardLastFour ||\n sessionState.data.cardInformation?.lastFour\n }\n paymentDate={\n sessionState.data.paymentDate ||\n this.responseCheckoutCard?.date ||\n (sessionState.data.payment as any)?.createdAt ||\n this.checkoutResponse?.result?.data?.createdAt\n }\n referenceNumber={\n sessionState.data.paymentReference ||\n (sessionState.data.payment as any)?.traceId ||\n this.responseCheckoutCard?.traceId\n }\n onSuccessRedirect={payload => {\n this.successRedirect.emit(payload.detail);\n }}\n trialPeriodDays={sessionState.data?.itemInformation?.trial?.trialPeriodDays}\n debitDay={sessionState.data?.itemInformation?.debitDay}\n planAmount={sessionState.data?.pricing?.planAmount}\n />\n ) : (\n <>\n {/* Modo sandbox para mobile - posicionado arriba del logo */}\n {this.displayConfig.sandboxMode &&\n sessionState.isSandbox &&\n sessionState.data.sessionType === SESSION_TYPE_ENUM.CHECKOUT_LANDING &&\n isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div\n class=\"mode-sandbox-mobile-container\"\n style={{\n display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block',\n }}\n >\n <rebill-mode-sandbox-mobile />\n </div>\n )}\n <rebill-checkout-form\n ref={el => (this.formElement = el)}\n style={{ display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block' }}\n validationSchema={this.validationSchema}\n initialData={this.initialData}\n onSubmit={(args: any) => this.handleSubmit(args)}\n onChange={(args: any) => this.handleFormChange(args)}\n renderForm={({ submit, formData, errors }) => {\n const isAPMCheckoutVisible =\n !this.isCardSuccess &&\n this.checkoutResponse?.result &&\n (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER);\n return (\n <div\n class={`rebill-checkout ${!this.displayConfig.checkoutSummary ? 'full-width-layout' : ''}`}\n >\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n {this.displayConfig.logo && (\n <organization-logo organization={sessionState.data.organization} />\n )}\n <div\n class=\"otp-container\"\n style={{ display: this.showOtp ? 'block' : 'none' }}\n >\n <otp-component />\n </div>\n <div style={{ display: this.showOtp ? 'none' : 'block' }}>\n <div class=\"checkout-form-section\">\n {this.displayConfig.checkoutSummary && (\n <div\n class=\"summary-mobile-tablet\"\n style={{\n display: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary({\n displayedComponents: [\n 'totalAmount',\n 'discount',\n 'timelineFreeTrial',\n 'timelineDebitDay',\n 'itemDetails',\n ],\n })}\n </div>\n )}\n {!this.otpVerified && this.displayConfig.customerInformation && (\n <user-information\n customerExists={this.customerExists}\n disabled={this.isSubmitting}\n errors={{\n email: errors.email,\n fullName: errors.fullName,\n }}\n />\n )}\n {this.otpVerified && this.displayConfig.customerInformation && (\n <user-information-static\n variant=\"otp\"\n userInfo={{\n customerName:\n sessionState.data.userInformation.fullName?.split(' ')[0],\n customerEmail: sessionState.data.userInformation.email,\n }}\n />\n )}\n <div\n style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}\n >\n <payment-method-selector\n enabledPaymentMethods={this.filteredPaymentMethods}\n defaultSelected={this.currentPaymentMethod}\n disabled={this.isSubmitting}\n errorComponent={{\n showErrorComponent:\n this.displayConfig.errorMessage &&\n (this.currentPaymentError || this.isPaymentRejected()),\n alertTitle: PaymentErrorMapper.getErrorTitle(\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country || '',\n this.alertErrorKeys?.alertTitle,\n ),\n message: PaymentErrorMapper.getErrorMessage(\n this.alertErrorKeys?.message,\n this.currentPaymentMethod,\n sessionState.data?.pricing?.country,\n ),\n }}\n country={sessionState.data?.pricing?.country}\n installmentsError={errors.installments}\n showDocument={\n (!this.otpVerified ||\n (this.otpVerified && this.cardMode === 'input')) &&\n !isAPMCheckoutVisible &&\n !this.isQrCodeVisible &&\n (isFieldRequired(\n 'documentNumber',\n this.currentRequiredFields,\n ) ||\n isFieldRequired('documentType', this.currentRequiredFields))\n }\n documentTypeError={errors.documentType}\n documentNumberError={errors.documentNumber}\n cardError={this.cardError}\n customCSS={this.css}\n />\n {!isAPMCheckoutVisible &&\n (() => {\n const isBankRequired = isFieldRequired(\n 'bankId',\n this.currentRequiredFields,\n );\n\n return isBankRequired;\n })() && (\n <div class=\"animated-component fade-in\">\n <rebill-bank-selector\n banks={\n getFieldValues(\n 'bank',\n this.allRequiredFields[this.currentPaymentMethod]\n .original,\n ) || []\n }\n defaultSelectedBankId={formData.bankId || ''}\n error={errors?.bankId}\n />\n </div>\n )}\n </div>\n {!isAPMCheckoutVisible &&\n (!this.otpVerified || this.cardMode === 'input') && (\n <>\n {this.displayConfig.billingAddress &&\n (isFieldRequired(\n 'billing-country',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-state',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-address',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-city',\n this.currentRequiredFields,\n ) ||\n isFieldRequired(\n 'billing-zip',\n this.currentRequiredFields,\n )) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n disabled={this.isSubmitting}\n countryOptions={countryOptions}\n billingView={\n this.hasPrefilledAddress() ? 'form' : 'search'\n }\n errors={{\n 'billing-country': errors['billing-country'],\n 'billing-state': errors['billing-state'],\n 'billing-address': errors['billing-address'],\n 'billing-city': errors['billing-city'],\n 'billing-zip': errors['billing-zip'],\n }}\n />\n </div>\n )}\n {this.displayConfig.customerInformation &&\n isFieldRequired(\n 'phoneNumber',\n this.currentRequiredFields,\n ) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone\n disabled={this.isSubmitting}\n error={errors?.phoneNumber}\n countryCode={\n sessionState.data.userInformation?.countryCode ||\n sessionState.data.country\n }\n />\n </div>\n )}\n </>\n )}\n {/* Show APM checkout response after successful payment submission */}\n {isAPMCheckoutVisible && (\n <apm-checkout\n paymentMethod={this.currentPaymentMethod}\n referenceId={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH\n ? this.checkoutResponse?.result?.data?.referenceId\n : undefined\n }\n qrCodeData={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ? this.checkoutResponse?.result?.data?.qrCode\n : undefined\n }\n checkoutRequestId={\n this.checkoutResponse?.result?.checkoutRequestId\n }\n providerName={sessionState.data.providerKey}\n expirationDate={(() => {\n const expirationDate = new Date();\n expirationDate.setDate(expirationDate.getDate() + 30);\n return expirationDate.toISOString();\n })()}\n onPaymentStatusChange={event =>\n this.handlePaymentStatusChange(event.detail)\n }\n country={sessionState.data?.pricing?.country}\n redirectUrl={this.checkoutResponse?.result?.data?.url}\n timeToRedirect={this.timeToRedirectAPM}\n bearerToken={this.checkoutResponse?.result?.data?.bearerToken}\n />\n )}\n {this.displayConfig.checkoutSummary && (\n <div\n class=\"summary-price-details\"\n style={{\n display: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary({\n displayedComponents: ['priceDetails'],\n })}\n </div>\n )}\n {this.displayConfig.submitButton && !this.isQrCodeVisible && (\n <div class=\"payment-button-container\">\n <payment-button\n paymentMethod={this.currentPaymentMethod}\n isLoading={this.isSubmitting}\n trialPeriodDays={\n sessionState.data?.itemInformation?.trial?.trialPeriodDays\n }\n onSubmit={() => {\n submit();\n }}\n redirectUrl={!!this.checkoutResponse?.result?.data?.url}\n timeToRedirect={this.timeToRedirectAPM}\n isDisabled={sessionState.data.fetchingInstallments}\n country={sessionState.data?.pricing?.country}\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 )}\n </div>\n {this.displayConfig.sandboxMode &&\n sessionState.isSandbox &&\n sessionState.data.sessionType ===\n SESSION_TYPE_ENUM.CHECKOUT_LANDING &&\n !isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <rebill-mode-sandbox />\n )}\n </div>\n {this.displayConfig.footer && (\n <rebill-footer\n style={{\n marginTop: isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? '16px'\n : 'auto',\n }}\n />\n )}\n </div>\n </div>\n\n {this.displayConfig.checkoutSummary && (\n <div class=\"right-section-checkout\">\n <div class=\"checkout-summary-section\">\n <div\n class=\"summary-desktop\"\n style={{\n display: !isBreakpointBelow(\n this.breakpoint,\n BREAKPOINT_ENUM.DESKTOP,\n )\n ? 'block'\n : 'none',\n }}\n >\n {renderRebillSummary()}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }}\n />\n </>\n )}\n </>\n )\n );\n }\n}\n"],"names":["sessionState","sessionOnChange","yup.string"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r,h as o}from"./p-D8cwEAmw.js";const t=".button{border:1px solid transparent;border-radius:0.375rem;padding:0.75rem 1.5rem;width:100%;font-size:1rem;font-family:inherit;box-shadow:0 2px 4px var(--rebill-color-shadow);cursor:pointer;transition:background 0.2s,\n color 0.2s,\n border-color 0.2s;position:relative;display:flex;align-items:center;justify-content:center}.button.small{padding:4px 8px;font-size:14px;min-height:2rem}.button.medium{padding:0.75rem 1.5rem;font-size:1rem;min-height:2.5rem}.button.large{padding:1rem 2rem;font-size:1.125rem;min-height:3rem}.button.filled.primary{background:var(--rebill-color-primary);color:var(--rebill-color-text-on-primary)}.button.filled.primary:hover{background:var(--rebill-color-primary-hover)}.button.filled.error{background:var(--rebill-color-error);color:var(--rebill-color-text-on-primary)}.button.filled.primary-dark{background:var(--rebill-color-primary-dark);color:var(--rebill-color-text-on-primary)}.button.filled.primary-dark:hover{background:var(--rebill-color-primary-dark-hover)}.button.filled.button.secondary{background:var(--rebill-color-border);color:var(--rebill-color-neutrals-700)}.button.outline{background:transparent;box-shadow:none}.button.outline.primary{border-color:var(--rebill-color-primary);color:var(--rebill-color-primary)}.button.outline.primary:hover{background:var(--rebill-color-primary-light)}.button.outline.primary-dark{border-color:var(--rebill-color-primary-dark);color:var(--rebill-color-primary-dark)}.button.outline.primary-dark:hover{background:var(--rebill-color-primary-dark-light)}.button.outline.error{border-color:var(--rebill-color-error);color:var(--rebill-color-error)}.button.outline.error:hover{background:var(--rebill-color-error-light)}.button.text{background:transparent;box-shadow:none}.button.text.primary{color:var(--rebill-color-primary)}.button.text.primary:hover{background:var(--rebill-color-background-secondary-light)}.button.text.primary-dark{color:var(--rebill-color-primary-dark)}.button.text.primary-dark:hover{background:var(--rebill-color-primary-dark-light)}.button.text.error{color:var(--rebill-color-error)}.button.text.error:hover{background:var(--rebill-color-error-light)}.button.secondary{background:var(--rebill-color-background);color:var(--rebill-color-text-primary);border:1px solid var(--rebill-color-border-primary);border-radius:6px;padding:4px 8px;font-weight:500;font-size:14px;box-sizing:border-box;box-shadow:0px 1px 2px rgba(0, 0, 0, 0.05);font-family:Inter, sans-serif}.button.secondary:hover{background:var(--rebill-color-background-secondary);border-color:var(--rebill-color-border)}.button.download{background:transparent;box-shadow:none;border:none;padding:4px 8px;font-family:Inter, semibold;font-size:12px;font-weight:600;line-height:16px;letter-spacing:0%;color:#000000;cursor:pointer;transition:none;min-height:auto;width:auto}.button.download:hover{background:transparent;color:#000000;transform:none}.button.download:focus{background:transparent;color:#000000;outline:none}.button.download:active{background:transparent;color:#000000;transform:none}.button:disabled{background:var(--rebill-color-disabled);color:var(--rebill-color-text-on-primary);opacity:0.7;cursor:not-allowed;box-shadow:none;border-color:transparent}.button:disabled:hover{background:var(--rebill-color-disabled)}.button.outline:disabled,.button.text:disabled{background:transparent;border-color:var(--rebill-color-disabled, #ccc);color:var(--rebill-color-disabled, #ccc)}.button.outline:disabled:hover,.button.text:disabled:hover{background:transparent}.
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r,h as o}from"./p-D8cwEAmw.js";const t=".button{border:1px solid transparent;border-radius:0.375rem;padding:0.75rem 1.5rem;width:100%;font-size:1rem;font-family:inherit;box-shadow:0 2px 4px var(--rebill-color-shadow);cursor:pointer;transition:background 0.2s,\n color 0.2s,\n border-color 0.2s;position:relative;display:flex;align-items:center;justify-content:center}.button.small{padding:4px 8px;font-size:14px;min-height:2rem}.button.medium{padding:0.75rem 1.5rem;font-size:1rem;min-height:2.5rem}.button.large{padding:1rem 2rem;font-size:1.125rem;min-height:3rem}.button.filled.primary{background:var(--rebill-color-primary);color:var(--rebill-color-text-on-primary)}.button.filled.primary:hover{background:var(--rebill-color-primary-hover)}.button.filled.error{background:var(--rebill-color-error);color:var(--rebill-color-text-on-primary)}.button.filled.primary-dark{background:var(--rebill-color-primary-dark);color:var(--rebill-color-text-on-primary)}.button.filled.primary-dark:hover{background:var(--rebill-color-primary-dark-hover)}.button.filled.button.secondary{background:var(--rebill-color-border);color:var(--rebill-color-neutrals-700)}.button.outline{background:transparent;box-shadow:none}.button.outline.primary{border-color:var(--rebill-color-primary);color:var(--rebill-color-primary)}.button.outline.primary:hover{background:var(--rebill-color-primary-light)}.button.outline.primary-dark{border-color:var(--rebill-color-primary-dark);color:var(--rebill-color-primary-dark)}.button.outline.primary-dark:hover{background:var(--rebill-color-primary-dark-light)}.button.outline.error{border-color:var(--rebill-color-error);color:var(--rebill-color-error)}.button.outline.error:hover{background:var(--rebill-color-error-light)}.button.text{background:transparent;box-shadow:none}.button.text.primary{color:var(--rebill-color-primary)}.button.text.primary:hover{background:var(--rebill-color-background-secondary-light)}.button.text.primary-dark{color:var(--rebill-color-primary-dark)}.button.text.primary-dark:hover{background:var(--rebill-color-primary-dark-light)}.button.text.error{color:var(--rebill-color-error)}.button.text.error:hover{background:var(--rebill-color-error-light)}.button.secondary{background:var(--rebill-color-background);color:var(--rebill-color-text-primary);border:1px solid var(--rebill-color-border-primary);border-radius:6px;padding:4px 8px;font-weight:500;font-size:14px;box-sizing:border-box;box-shadow:0px 1px 2px rgba(0, 0, 0, 0.05);font-family:Inter, sans-serif}.button.secondary:hover{background:var(--rebill-color-background-secondary);border-color:var(--rebill-color-border)}.button.download{background:transparent;box-shadow:none;border:none;padding:4px 8px;font-family:Inter, semibold;font-size:12px;font-weight:600;line-height:16px;letter-spacing:0%;color:#000000;cursor:pointer;transition:none;min-height:auto;width:auto}.button.download:hover{background:transparent;color:#000000;transform:none}.button.download:focus{background:transparent;color:#000000;outline:none}.button.download:active{background:transparent;color:#000000;transform:none}.button:disabled{background:var(--rebill-color-disabled);color:var(--rebill-color-text-on-primary);opacity:0.7;cursor:not-allowed;box-shadow:none;border-color:transparent}.button:disabled:hover{background:var(--rebill-color-disabled)}.button.outline:disabled,.button.text:disabled{background:transparent;border-color:var(--rebill-color-disabled, #ccc);color:var(--rebill-color-disabled, #ccc)}.button.outline:disabled:hover,.button.text:disabled:hover{background:transparent}.button__spinner{width:15px;height:15px;border:2px solid rgba(255, 255, 255, 0.3);border-radius:50%;border-top-color:white;animation:spin 1s linear infinite;display:inline-block;flex-shrink:0;vertical-align:middle}.button.outline .button__spinner,.button.text .button__spinner{border:2px solid var(--rebill-color-primary-light, rgba(0, 0, 0, 0.1));border-top-color:var(--rebill-color-primary)}.button.outline.primary-dark .button__spinner,.button.text.primary-dark .button__spinner{border:2px solid var(--rebill-color-primary-light, rgba(0, 0, 0, 0.1));border-top-color:var(--rebill-color-primary-dark)}.button.outline.error .button__spinner,.button.text.error .button__spinner{border:2px solid var(--rebill-color-error-light, rgba(0, 0, 0, 0.1));border-top-color:var(--rebill-color-error)}@keyframes spin{to{transform:rotate(360deg)}}.button.spinner-with-text{display:flex !important;align-items:center !important;justify-content:center !important;flex-direction:row !important}.button.spinner-with-text .button__spinner{margin-left:12px;vertical-align:middle}.button.with-icon{display:flex;align-items:center;justify-content:center;gap:0.5rem}.button.secondary.with-icon{font-weight:500}.button.non-clickable{cursor:not-allowed !important;pointer-events:none}";const e=class{constructor(o){r(this,o)}type="button";disabled=false;id;loading=false;showSpinnerWithText=false;nonClickable=false;variant="filled";theme="primary";size="medium";icon;iconColor;handleClick(r){if(this.nonClickable){r.preventDefault();r.stopPropagation();return false}}render(){return o("button",{key:"fc87b19d501ec07d7729381fb5bca367a766fcab",class:`button ${this.variant} ${this.theme} ${this.size} ${this.loading?"loading":""} ${this.icon?"with-icon":""} ${this.showSpinnerWithText&&this.loading?"spinner-with-text":""} ${this.nonClickable?"non-clickable":""}`,id:this.id,type:this.type,disabled:this.disabled||this.loading,onClick:this.handleClick,style:{cursor:this.nonClickable?"not-allowed":undefined}},this.icon&&o("rebill-icon",{key:"11d3d71070a883dd0d0c2528b06d5692aec5d634",name:this.icon,size:"16px",color:this.iconColor}),this.loading&&!this.showSpinnerWithText?o("div",{class:"button__spinner"}):this.loading&&this.showSpinnerWithText?o(o.Fragment,null,o("slot",null),o("div",{class:"button__spinner"})):o("slot",null))}};e.style=t;export{e as rebill_button};
|
|
2
|
+
//# sourceMappingURL=p-297a5c76.entry.js.map
|