rebill-web-components-sdk 1.8.21 → 1.8.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cjs/apm-checkout_19.cjs.entry.js +11 -5
  2. package/dist/cjs/index-C-VTnc0I.js.map +1 -1
  3. package/dist/cjs/rebill-checkout.cjs.entry.js +1 -1
  4. package/dist/cjs/rebill-renewal.cjs.entry.js +1 -1
  5. package/dist/cjs/{required-fields-mappers-U6myFlpn.js → required-fields-mappers-DWU2V-eY.js} +3 -2
  6. package/dist/cjs/{required-fields-mappers-U6myFlpn.js.map → required-fields-mappers-DWU2V-eY.js.map} +1 -1
  7. package/dist/collection/components/checkout/address/address.js +10 -4
  8. package/dist/collection/components/checkout/address/address.js.map +1 -1
  9. package/dist/collection/components/checkout/payment-button/payment-button.js +1 -1
  10. package/dist/collection/components/checkout/payment-button/payment-button.js.map +1 -1
  11. package/dist/collection/utils/required-fields-mappers.js +1 -0
  12. package/dist/collection/utils/required-fields-mappers.js.map +1 -1
  13. package/dist/components/p-8BpuJ_V5.js.map +1 -1
  14. package/dist/components/{p-BI62ypLw.js → p-BRI7iMx8.js} +3 -2
  15. package/dist/components/p-BRI7iMx8.js.map +1 -0
  16. package/dist/components/{p-aO8Az5Xi.js → p-DZKiNnX2.js} +3 -3
  17. package/dist/components/{p-aO8Az5Xi.js.map → p-DZKiNnX2.js.map} +1 -1
  18. package/dist/components/{p-s8WhwKwq.js → p-DgIW2T8E.js} +12 -6
  19. package/dist/components/p-DgIW2T8E.js.map +1 -0
  20. package/dist/components/payment-button.js +1 -1
  21. package/dist/components/rebill-address.js +1 -1
  22. package/dist/components/rebill-checkout.js +3 -3
  23. package/dist/components/rebill-renewal.js +3 -3
  24. package/dist/esm/apm-checkout_19.entry.js +11 -5
  25. package/dist/esm/index-D8cwEAmw.js.map +1 -1
  26. package/dist/esm/rebill-checkout.entry.js +1 -1
  27. package/dist/esm/rebill-renewal.entry.js +1 -1
  28. package/dist/esm/{required-fields-mappers-BOaTKbNe.js → required-fields-mappers-BErrHwHk.js} +3 -2
  29. package/dist/esm/{required-fields-mappers-BOaTKbNe.js.map → required-fields-mappers-BErrHwHk.js.map} +1 -1
  30. package/dist/rebill-web-components-sdk/{p-ea3de987.entry.js → p-4a8ad442.entry.js} +2 -2
  31. package/dist/rebill-web-components-sdk/p-7d0e00c6.entry.js +2 -0
  32. package/dist/rebill-web-components-sdk/p-7d0e00c6.entry.js.map +1 -0
  33. package/dist/rebill-web-components-sdk/{p-b616775b.entry.js → p-9afddef2.entry.js} +2 -2
  34. package/dist/rebill-web-components-sdk/{p-Bz-GsiI3.js → p-BP5Qpv7O.js} +2 -2
  35. package/dist/rebill-web-components-sdk/{p-Bz-GsiI3.js.map → p-BP5Qpv7O.js.map} +1 -1
  36. package/dist/rebill-web-components-sdk/p-D8cwEAmw.js.map +1 -1
  37. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  38. package/dist/types/utils/required-fields-mappers.d.ts +1 -0
  39. package/package.json +1 -1
  40. package/dist/components/p-BI62ypLw.js.map +0 -1
  41. package/dist/components/p-s8WhwKwq.js.map +0 -1
  42. package/dist/rebill-web-components-sdk/p-b306912b.entry.js +0 -2
  43. package/dist/rebill-web-components-sdk/p-b306912b.entry.js.map +0 -1
  44. /package/dist/rebill-web-components-sdk/{p-ea3de987.entry.js.map → p-4a8ad442.entry.js.map} +0 -0
  45. /package/dist/rebill-web-components-sdk/{p-b616775b.entry.js.map → p-9afddef2.entry.js.map} +0 -0
@@ -206,6 +206,7 @@ const requiredFieldsMapper = {
206
206
  'customer.identification': 'documentNumber',
207
207
  'customer.identification_type': 'documentType',
208
208
  'address.line_one': 'billing-address',
209
+ 'address.line_two': 'billing-address',
209
210
  'address.zip_code': 'billing-zip',
210
211
  'address.state': 'billing-state',
211
212
  'address.city': 'billing-city',
@@ -245,6 +246,6 @@ const getFieldValues = (fieldName, requiredFields) => {
245
246
  };
246
247
 
247
248
  export { CheckoutStatusE as C, PaymentMessageE as P, PaymentErrorMapper as a, getFieldValues as b, generateIdempotencyKey as g, isFieldRequired as i, mapRequiredFields as m };
248
- //# sourceMappingURL=p-BI62ypLw.js.map
249
+ //# sourceMappingURL=p-BRI7iMx8.js.map
249
250
 
250
- //# sourceMappingURL=p-BI62ypLw.js.map
251
+ //# sourceMappingURL=p-BRI7iMx8.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BRI7iMx8.js","mappings":"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","names":[],"sources":["src/api/entities/checkout/types.ts","src/utils/generate-idempotency-key.ts","src/models/enums/payment-status.enum.ts","src/utils/payment-error-mapper.ts","src/utils/required-fields-mappers.ts"],"sourcesContent":["import { PaymentMethodNameE } from '../../../models/enums/payment-method-name.enum';\nimport { STATUS_REQ_CHECKOUT_APM } from '../../../models/enums/status-req-checkout-apm.enum';\n\n// Checkout request status\nexport enum CheckoutStatusE {\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n REJECTED = 'REJECTED',\n ERROR = 'ERROR',\n}\n\n// APM Transaction interface (based on documentation)\nexport interface APMTransaction {\n name?: { text: string; language: string }[];\n description?: { text: string; language: string }[];\n isPriceFixed?: boolean;\n tiers?: any[];\n plan?: any;\n quantity: number;\n amount?: number;\n currency?: string;\n productId?: string;\n planId?: string;\n couponCode?: string;\n}\n\n// APM Customer interface (based on documentation)\nexport interface APMCustomer {\n firstName: string;\n lastName: string;\n email: string;\n phone: {\n countryCode: string;\n number: string;\n };\n shippingAddress?: APMAddress;\n}\n\n// APM Address interface (based on documentation)\nexport interface APMAddress {\n country: string;\n state: string;\n city: string;\n zipCode: string;\n lineOne: string;\n lineTwo?: string;\n}\n\n// APM Redirect URLs interface (based on documentation)\nexport interface APMRedirect {\n approved: string;\n rejected: string;\n}\n\n// Metadata interface\nexport interface Metadata {\n [key: string]: unknown;\n}\n\n// Create APM checkout request interface (based on documentation)\nexport interface CreateAPMCheckoutRequest {\n transaction: APMTransaction;\n method: PaymentMethodNameE;\n customer?: APMCustomer; // Optional for authenticated users\n billingDetails?: {\n address: {\n lineOne: string;\n city: string;\n state: string;\n zipCode: string;\n country: string;\n };\n identification: {\n type: string;\n value: string;\n };\n };\n redirect: APMRedirect;\n paymentMetadata?: Metadata;\n subscriptionMetadata?: Metadata;\n customAttributes?: {\n bank?: string;\n };\n targetCurrency?: string;\n}\n\n// Legacy interfaces for backward compatibility\nexport interface Transaction {\n amount: number;\n currency: string;\n description: string;\n}\n\nexport interface Customer {\n email: string;\n name: string;\n phone: string;\n documentType?: string;\n documentNumber?: string;\n shippingAddress: Address;\n}\n\nexport interface Address {\n lineOne: string;\n lineTwo?: string;\n city: string;\n state: string;\n zipCode: string;\n country: string;\n}\n\nexport interface Redirect {\n successUrl: string;\n failureUrl: string;\n cancelUrl: string;\n}\n\nexport interface CreateCardCheckoutRequest {\n transaction: {\n quantity: number;\n currency?: string;\n amount?: number;\n couponCode?: string;\n };\n installments?: number;\n cardTokenId?: string | null; // Optional, if card is saved\n cardId?: string | null; // Optional, if card is saved\n customer?: {\n firstName: string;\n lastName: string;\n email: string;\n phone: {\n countryCode: string;\n number: string;\n };\n };\n billingDetails?: {\n address: {\n lineOne: string;\n city: string;\n state: string;\n zipCode: string;\n country: string;\n };\n identification: {\n type: string;\n value: string;\n };\n };\n paymentMetadata?: {\n bankCode?: string;\n };\n customAttributes?: {\n deviceId?: string;\n };\n saveCard?: boolean;\n}\nexport interface CreateCardCheckoutResponse {\n traceId: string;\n date: string;\n result?: {\n paymentId: string;\n status: CheckoutStatusE;\n subscriptionId: string;\n cardId: string;\n cardLastFour: string;\n customerId: string;\n statusDetail?: string;\n type?: string;\n };\n error: {\n traceId: string;\n date: string;\n error: {\n message: string;\n type: string;\n };\n statusCode: number;\n };\n}\nexport interface Card {\n cardHolderName: string;\n cardExpirationMonth: string;\n cardExpirationYear: string;\n securityCode: string;\n number: string;\n identification: {\n type: string;\n value: string;\n };\n saveCard: boolean;\n}\n// Instruction interface for payment reference\nexport interface PaymentInstruction {\n text: string;\n language: string;\n}\n\n// Bank transfer data interface\nexport interface BankTransferData {\n bbvAccountNumber?: string;\n account: string; // CLABE\n bankName: string;\n reference: string;\n}\n\n// Checkout data interface (provider-specific)\nexport interface CheckoutData {\n // For QR codes\n qrCode?: string;\n\n // For barcodes\n barcode?: string;\n\n // For bank transfer payments (new - multiple data sets)\n bankTransferData?: BankTransferData[];\n\n // For reference payments\n referenceId?: string;\n instructions?: PaymentInstruction[];\n\n // For redirect payments\n url?: string;\n message?: string;\n // For vouchers\n voucherUrl?: string;\n\n // Additional provider-specific data\n [key: string]: any;\n}\n\n// Checkout result interface\nexport interface CheckoutResult {\n checkoutRequestId: string;\n status: CheckoutStatusE;\n data: CheckoutData;\n}\n\n// Error interface\nexport interface CheckoutError {\n message: string;\n type: string;\n}\n\n// Bank interface for PSE payments\nexport interface Bank {\n code: string;\n name: string;\n}\n\n// Required fields request interface\nexport interface RequiredFieldsRequest {\n currency: string;\n method: string;\n bin?: number;\n}\n\n// Required fields response interface\nexport type RequiredFieldsResponse = {\n name: string;\n values?: {\n code: string;\n name: string;\n }[];\n}[];\n\n// Create APM checkout response interface\nexport interface CreateAPMCheckoutResponse {\n traceId: string;\n date: string;\n result?: CheckoutResult;\n error?: CheckoutError;\n}\n\nexport interface PaymentMethod {\n name: string;\n type: string;\n}\n\nexport interface TrackingData {\n locale: string;\n utmTerm: string;\n referrer: string;\n ipAddress: string;\n}\nexport interface Source {\n source: string;\n version: string;\n}\n\nexport interface APMSession {\n country: string;\n createdAt: string;\n deviceId: string;\n email: string | null;\n expiresAt: string;\n id: string;\n isCreatedDuringCheckout: boolean;\n metadata: Record<string, unknown>;\n organizationId: string;\n paymentLinkId: string;\n paymentMethods: PaymentMethod[];\n planId: string;\n priceId: string;\n productId: string | null;\n providerKey: string;\n source: Source;\n status: string;\n trackingData: TrackingData;\n updatedAt: string;\n}\n\nexport interface CheckoutRequestPayment {\n id: string;\n createdAt: string;\n updatedAt: string;\n organizationId: string;\n amount: number;\n currency: string;\n customer: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n phoneNumbers: {\n number: string;\n countryCode: string;\n }[];\n };\n status: string;\n metadata: Record<string, unknown>;\n paymentMethodType: string;\n paymentMethodMetadata: Record<string, unknown>;\n card: {\n id: string;\n name: string;\n expiration: {\n month: string;\n year: string;\n };\n lastFour: string;\n brand: string;\n };\n quantity: number;\n paymentProviderReference: string | null;\n paymentProviderDescription: string | null;\n installments: number | null;\n priceFixedIn: string | null;\n conversionRate: number | null;\n couponId: string | null;\n description: [\n {\n text: string;\n language: string;\n },\n ];\n processingMode: string;\n processingFee: number | null;\n country: string;\n timezone: string;\n}\n\nexport interface CheckoutRequestPaymentAPM {\n checkoutRequestId: string;\n status: STATUS_REQ_CHECKOUT_APM;\n type: string;\n data: {\n message: string;\n url: string;\n };\n session: APMSession;\n payment: CheckoutRequestPayment | null;\n}\n","export const generateIdempotencyKey = () => {\n return `idmp_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n};\n","export enum PaymentMessageE {\n PENDING = 'pending',\n APPROVED = 'approved',\n REJECTED = 'rejected',\n DECLINED = 'declined',\n ERROR = 'error',\n REFUNDED = 'refunded',\n CANCELLED = 'cancelled',\n PARTIALLY_REFUNDED = 'partially_refunded',\n EXPIRED = 'expired',\n GENERIC_REJECT = 'generic_reject',\n INVALID_CARD = 'invalid_card',\n INVALID_CARD_NUMBER = 'invalid_card_number',\n INVALID_CARD_HOLDER_NAME = 'invalid_card_holder_name',\n INVALID_CARD_EXPIRATION_DATE = 'invalid_card_expiration_date',\n INVALID_CARD_CVC = 'invalid_card_cvc',\n INSUFFICIENT_FUNDS = 'insufficient_funds',\n\n BLACKLISTED_CARD = 'blacklisted_card',\n INVALID_CUSTOMER_EMAIL = 'invalid_customer_email',\n INVALID_CUSTOMER_PHONE = 'invalid_customer_phone',\n INVALID_CUSTOMER_BILLING_ADDRESS = 'invalid_customer_billing_address',\n REQUIRED_CUSTOMER_EMAIL = 'required_customer_email',\n REQUIRED_CUSTOMER_PHONE = 'required_customer_phone',\n REQUIRED_CUSTOMER_BILLING_ADDRESS = 'required_customer_billing_address',\n INVALID_CHECKOUT_REQUEST = 'invalid_checkout_request',\n UNAVAILABLE_PAYMENT_METHOD = 'unavailable_payment_method',\n INVALID_AMOUNT = 'invalid_amount',\n INVALID_CURRENCY = 'invalid_currency',\n INVALID_COUNTRY = 'invalid_country',\n MAX_ATTEMPTS = 'max_attempts',\n PAYMENT_EXPIRED = 'payment_expired',\n FRAUD_HIGH_RISK = 'fraud_high_risk',\n INTERNAL_ERROR = 'internal_error',\n INVALID_SESSION = 'invalid_session',\n APM_MESSAGE_ERROR = 'apm_message_error',\n APM_ERROR_GENERIC = 'apm_error_generic',\n APM_ERROR_BANK_TRANSFER = 'apm_error_bank_transfer',\n PROVIDER_ERROR = 'provider_error',\n BANK_REJECTED = 'bank_rejected',\n CALL_BANK_FOR_AUTHORIZE = 'call_bank_for_authorize',\n REQUIRED_3DS = 'required_3ds',\n BLACKLISTED = 'blacklisted',\n HARD_DECLINE = 'hard-decline',\n SOFT_DECLINE = 'soft-decline',\n HUMAN_DECLINE = 'human-decline',\n INTERNAL = 'internal',\n INVALID_CARD_TOKENIZE_COUNTRY = 'invalid_card_tokenize_country',\n INVALID_CUSTOMER_ADDRESS = 'invalid_customer_address',\n INVALID_CUSTOMER_CITY = 'invalid_customer_city',\n INVALID_CUSTOMER_STATE = 'invalid_customer_state',\n INVALID_CUSTOMER_ZIP = 'invalid_customer_zip',\n INVALID_CUSTOMER_COUNTRY = 'invalid_customer_country',\n INVALID_CUSTOMER_DOCUMENT = 'invalid_customer_document',\n INVALID_CUSTOMER_DOCUMENT_NUMBER = 'invalid_customer_document_number',\n INVALID_CUSTOMER_DOCUMENT_TYPE = 'invalid_customer_document_type',\n INVALID_CHECKOUT_PAYMENT_METHOD = 'invalid_checkout_payment_method',\n REQUIRED_CUSTOMER_ADDRESS = 'required_customer_address',\n REQUIRED_CUSTOMER_CITY = 'required_customer_city',\n REQUIRED_CUSTOMER_STATE = 'required_customer_state',\n REQUIRED_CUSTOMER_ZIP = 'required_customer_zip',\n REQUIRED_CUSTOMER_COUNTRY = 'required_customer_country',\n REQUIRED_CUSTOMER_DOCUMENT = 'required_customer_document',\n REQUIRED_CUSTOMER_DOCUMENT_NUMBER = 'required_customer_document_number',\n REQUIRED_CUSTOMER_DOCUMENT_TYPE = 'required_customer_document_type',\n EXPIRED_CARD = 'expired_card',\n SANDBOX_ERROR = 'sandbox_error',\n}\n","import { I18nService } from '../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../models/enums/payment-status.enum';\n\nexport interface AlertErrorKeys {\n alertTitle?: PaymentMessageE;\n message: PaymentMessageE;\n}\n\n//currency country\n\nexport class PaymentErrorMapper {\n static getErrorMessage(\n errorMessageKey: AlertErrorKeys['message'] | null,\n paymentMethod: PAYMENT_METHOD_ENUM,\n currencyCountry?: string,\n ): string {\n if (\n !errorMessageKey ||\n !Object.values(PaymentMessageE).includes(errorMessageKey as PaymentMessageE) ||\n errorMessageKey === PaymentMessageE.GENERIC_REJECT\n ) {\n if (paymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return I18nService.translate('paymentErrors.genericErrorCard');\n }\n if (paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER) {\n if (currencyCountry === 'BR') {\n return I18nService.translate('paymentErrors.genericErrorMessagePIX');\n }\n if (currencyCountry === 'AR') {\n return I18nService.translate('paymentErrors.genericErrorMessageQR');\n }\n if (currencyCountry === 'CO') {\n return I18nService.translate('paymentErrors.genericErrorMessagePSE');\n }\n return I18nService.translate('paymentErrors.genericErrorMessageBankTransfer');\n }\n return I18nService.translate('paymentErrors.genericErrorMessage');\n }\n return PaymentErrorMapper.getMessage(errorMessageKey);\n }\n\n static getErrorTitle(\n paymentMethod: PAYMENT_METHOD_ENUM,\n currencyCountry: string,\n errorTitleKey?: AlertErrorKeys['alertTitle'],\n ): string {\n if (errorTitleKey && !(errorTitleKey in PaymentMessageE)) {\n return PaymentErrorMapper.getMessage(errorTitleKey);\n }\n if (paymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return I18nService.translate('paymentErrors.genericErrorTitleCard');\n }\n if (paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER) {\n if (currencyCountry === 'BR') {\n return I18nService.translate('paymentErrors.genericErrorTitlePIX');\n }\n if (currencyCountry === 'AR') {\n return I18nService.translate('paymentErrors.genericErrorTitleQR');\n }\n if (currencyCountry === 'CO') {\n return I18nService.translate('paymentErrors.genericErrorTitlePSE');\n }\n }\n return I18nService.translate('paymentErrors.genericErrorTitleBankTransfer');\n }\n\n private static getMessage(errorMessageKey: PaymentMessageE): string {\n const messageMap: Record<PaymentMessageE, string> = {\n [PaymentMessageE.PENDING]: I18nService.translate('paymentErrors.pending'),\n [PaymentMessageE.APPROVED]: I18nService.translate('paymentErrors.approved'),\n [PaymentMessageE.REJECTED]: I18nService.translate('paymentErrors.rejected'),\n [PaymentMessageE.DECLINED]: I18nService.translate('paymentErrors.declined'),\n [PaymentMessageE.ERROR]: I18nService.translate('paymentErrors.error'),\n [PaymentMessageE.REFUNDED]: I18nService.translate('paymentErrors.refunded'),\n [PaymentMessageE.CANCELLED]: I18nService.translate('paymentErrors.cancelled'),\n [PaymentMessageE.PARTIALLY_REFUNDED]: I18nService.translate(\n 'paymentErrors.partiallyRefunded',\n ),\n [PaymentMessageE.EXPIRED]: I18nService.translate('paymentErrors.expired'),\n [PaymentMessageE.GENERIC_REJECT]: I18nService.translate('paymentErrors.genericReject'),\n [PaymentMessageE.INVALID_CARD]: I18nService.translate('paymentErrors.invalidCard'),\n [PaymentMessageE.INVALID_CARD_NUMBER]: I18nService.translate(\n 'paymentErrors.invalidCardNumber',\n ),\n [PaymentMessageE.INVALID_CARD_HOLDER_NAME]: I18nService.translate(\n 'paymentErrors.invalidCardHolderName',\n ),\n [PaymentMessageE.INVALID_CARD_EXPIRATION_DATE]: I18nService.translate(\n 'paymentErrors.invalidCardExpirationDate',\n ),\n [PaymentMessageE.INVALID_CARD_CVC]: I18nService.translate('paymentErrors.invalidCardCvc'),\n [PaymentMessageE.INSUFFICIENT_FUNDS]: I18nService.translate(\n 'paymentErrors.insufficientFunds',\n ),\n [PaymentMessageE.BLACKLISTED_CARD]: I18nService.translate('paymentErrors.blacklistedCard'),\n [PaymentMessageE.INVALID_CUSTOMER_EMAIL]: I18nService.translate(\n 'paymentErrors.invalidCustomerEmail',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_PHONE]: I18nService.translate(\n 'paymentErrors.invalidCustomerPhone',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_BILLING_ADDRESS]: I18nService.translate(\n 'paymentErrors.invalidCustomerBillingAddress',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_EMAIL]: I18nService.translate(\n 'paymentErrors.requiredCustomerEmail',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_PHONE]: I18nService.translate(\n 'paymentErrors.requiredCustomerPhone',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_BILLING_ADDRESS]: I18nService.translate(\n 'paymentErrors.requiredCustomerBillingAddress',\n ),\n [PaymentMessageE.INVALID_CHECKOUT_REQUEST]: I18nService.translate(\n 'paymentErrors.invalidCheckoutRequest',\n ),\n [PaymentMessageE.UNAVAILABLE_PAYMENT_METHOD]: I18nService.translate(\n 'paymentErrors.unavailablePaymentMethod',\n ),\n [PaymentMessageE.INVALID_AMOUNT]: I18nService.translate('paymentErrors.invalidAmount'),\n [PaymentMessageE.INVALID_CURRENCY]: I18nService.translate('paymentErrors.invalidCurrency'),\n [PaymentMessageE.INVALID_COUNTRY]: I18nService.translate('paymentErrors.invalidCountry'),\n [PaymentMessageE.MAX_ATTEMPTS]: I18nService.translate('paymentErrors.maxAttempts'),\n [PaymentMessageE.PAYMENT_EXPIRED]: I18nService.translate('paymentErrors.paymentExpired'),\n\n [PaymentMessageE.INTERNAL_ERROR]: I18nService.translate('paymentErrors.internalError'),\n [PaymentMessageE.INVALID_SESSION]: I18nService.translate('paymentErrors.invalidSession'),\n [PaymentMessageE.APM_MESSAGE_ERROR]: I18nService.translate('paymentErrors.APMMessageError'),\n [PaymentMessageE.APM_ERROR_GENERIC]: I18nService.translate('paymentErrors.APMErrorGeneric'),\n [PaymentMessageE.APM_ERROR_BANK_TRANSFER]: I18nService.translate(\n 'paymentErrors.APMErrorBankTransfer',\n ),\n [PaymentMessageE.PROVIDER_ERROR]: I18nService.translate('paymentErrors.providerError'),\n [PaymentMessageE.BANK_REJECTED]: I18nService.translate('paymentErrors.bankRejected'),\n\n [PaymentMessageE.FRAUD_HIGH_RISK]: I18nService.translate('paymentErrors.fraudHighRisk'),\n [PaymentMessageE.CALL_BANK_FOR_AUTHORIZE]: I18nService.translate(\n 'paymentErrors.callBankForAuthorize',\n ),\n [PaymentMessageE.REQUIRED_3DS]: I18nService.translate('paymentErrors.required3ds'),\n [PaymentMessageE.BLACKLISTED]: I18nService.translate('paymentErrors.blacklisted'),\n [PaymentMessageE.HARD_DECLINE]: I18nService.translate('paymentErrors.hardDecline'),\n [PaymentMessageE.SOFT_DECLINE]: I18nService.translate('paymentErrors.softDecline'),\n [PaymentMessageE.HUMAN_DECLINE]: I18nService.translate('paymentErrors.humanDecline'),\n [PaymentMessageE.INTERNAL]: I18nService.translate('paymentErrors.internal'),\n [PaymentMessageE.INVALID_CARD_TOKENIZE_COUNTRY]: I18nService.translate(\n 'paymentErrors.invalidCardTokenizeCountry',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_ADDRESS]: I18nService.translate(\n 'paymentErrors.invalidCustomerAddress',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_CITY]: I18nService.translate(\n 'paymentErrors.invalidCustomerCity',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_STATE]: I18nService.translate(\n 'paymentErrors.invalidCustomerState',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_ZIP]: I18nService.translate(\n 'paymentErrors.invalidCustomerZip',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_COUNTRY]: I18nService.translate(\n 'paymentErrors.invalidCustomerCountry',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_DOCUMENT]: I18nService.translate(\n 'paymentErrors.invalidCustomerDocument',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_DOCUMENT_NUMBER]: I18nService.translate(\n 'paymentErrors.invalidCustomerDocumentNumber',\n ),\n [PaymentMessageE.INVALID_CUSTOMER_DOCUMENT_TYPE]: I18nService.translate(\n 'paymentErrors.invalidCustomerDocumentType',\n ),\n [PaymentMessageE.INVALID_CHECKOUT_PAYMENT_METHOD]: I18nService.translate(\n 'paymentErrors.invalidCheckoutPaymentMethod',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_ADDRESS]: I18nService.translate(\n 'paymentErrors.requiredCustomerAddress',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_CITY]: I18nService.translate(\n 'paymentErrors.requiredCustomerCity',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_STATE]: I18nService.translate(\n 'paymentErrors.requiredCustomerState',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_ZIP]: I18nService.translate(\n 'paymentErrors.requiredCustomerZip',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_COUNTRY]: I18nService.translate(\n 'paymentErrors.requiredCustomerCountry',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_DOCUMENT]: I18nService.translate(\n 'paymentErrors.requiredCustomerDocument',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_DOCUMENT_NUMBER]: I18nService.translate(\n 'paymentErrors.requiredCustomerDocumentNumber',\n ),\n [PaymentMessageE.REQUIRED_CUSTOMER_DOCUMENT_TYPE]: I18nService.translate(\n 'paymentErrors.requiredCustomerDocumentType',\n ),\n [PaymentMessageE.EXPIRED_CARD]: I18nService.translate('paymentErrors.expiredCard'),\n [PaymentMessageE.SANDBOX_ERROR]: I18nService.translate('paymentErrors.sandboxError'),\n };\n\n return messageMap[errorMessageKey] || I18nService.translate('paymentErrors.genericError');\n }\n}\n","export interface RequiredField {\n name: string;\n values?: {\n code: string;\n name: string;\n }[];\n}\n\nconst requiredFieldsMapper = {\n 'customer.email': 'email',\n 'customer.first_name': 'fullName',\n 'customer.last_name': 'fullName',\n 'customer.identification': 'documentNumber',\n 'customer.identification_type': 'documentType',\n\n 'address.line_one': 'billing-address',\n 'address.line_two': 'billing-address',\n 'address.zip_code': 'billing-zip',\n 'address.state': 'billing-state',\n 'address.city': 'billing-city',\n 'address.country': 'billing-country',\n\n 'phone.number': 'phoneNumber',\n 'phone.country_code': 'countryCodePhoneNumber',\n\n 'bank': 'bankId',\n};\n\nexport const mapRequiredFields = (apiFields: RequiredField[]): string[] => {\n if (!apiFields || !Array.isArray(apiFields)) {\n return [];\n }\n\n const uniqueFields = new Set<string>();\n\n apiFields.forEach(field => {\n const mappedField = requiredFieldsMapper[field.name];\n if (mappedField) {\n uniqueFields.add(mappedField);\n } else {\n uniqueFields.add(field.name);\n }\n });\n\n return Array.from(uniqueFields);\n};\n\nexport const isFieldRequired = (fieldName: string, mappedFields: string[]): boolean => {\n if (!mappedFields || !Array.isArray(mappedFields)) {\n return false;\n }\n return mappedFields.includes(fieldName);\n};\n\nexport const getFieldValues = (\n fieldName: string,\n requiredFields: RequiredField[],\n): Array<{ code: string; name: string }> | null => {\n if (!requiredFields || !Array.isArray(requiredFields)) {\n return null;\n }\n\n const field = requiredFields.find(f => f.name === fieldName);\n return field?.values || null;\n};\n\nexport const hasFieldValues = (fieldName: string, requiredFields: RequiredField[]): boolean => {\n const values = getFieldValues(fieldName, requiredFields);\n return values !== null && values.length > 0;\n};\n\nexport default requiredFieldsMapper;\n"],"version":3}
@@ -122,7 +122,7 @@ const PaymentButton = /*@__PURE__*/ proxyCustomElement(class PaymentButton exten
122
122
  return I18nService.translate('buttons.payNow');
123
123
  };
124
124
  render() {
125
- return (h("rebill-button", { key: 'bcc6dda253cdb26b320d3f6fe69a6afcbf288f5e', type: "submit", disabled: this.isDisabled, loading: this.shouldShowLoading(), showSpinnerWithText: this.redirectUrl === true && this.timeToRedirect != null, nonClickable: this.redirectUrl === true && this.timeToRedirect != null, variant: "filled", theme: "primary-dark", onClick: this.handleSubmit, id: "payment-button" }, this.getButtonText()));
125
+ return (h("rebill-button", { key: 'bcc6dda253cdb26b320d3f6fe69a6afcbf288f5e', type: "button", disabled: this.isDisabled, loading: this.shouldShowLoading(), showSpinnerWithText: this.redirectUrl === true && this.timeToRedirect != null, nonClickable: this.redirectUrl === true && this.timeToRedirect != null, variant: "filled", theme: "primary-dark", onClick: this.handleSubmit, id: "payment-button" }, this.getButtonText()));
126
126
  }
127
127
  static get watchers() { return {
128
128
  "redirectUrl": ["onRedirectPropsChange"],
@@ -171,6 +171,6 @@ function defineCustomElement() {
171
171
  defineCustomElement();
172
172
 
173
173
  export { PaymentButton as P, defineCustomElement as d };
174
- //# sourceMappingURL=p-aO8Az5Xi.js.map
174
+ //# sourceMappingURL=p-DZKiNnX2.js.map
175
175
 
176
- //# sourceMappingURL=p-aO8Az5Xi.js.map
176
+ //# sourceMappingURL=p-DZKiNnX2.js.map
@@ -1 +1 @@
1
- {"file":"p-aO8Az5Xi.js","mappings":";;;;;;;AAAA,MAAM,gBAAgB,GAAG,EAAE;;MCed,aAAa,iBAAAA,kBAAA,CAAA,MAAA,aAAA,SAAAC,CAAA,CAAA;;;;;;;;IAChB,UAAU,GAAY,KAAK;IAC3B,SAAS,GAAY,KAAK;AAC1B,IAAA,aAAa;IACb,SAAS,GAAY,KAAK;AAC1B,IAAA,eAAe;AACf,IAAA,WAAW;AACX,IAAA,cAAc;AACd,IAAA,OAAO;AAEN,IAAA,eAAe,GAAW,WAAW,CAAC,kBAAkB,EAAE;IAC1D,gBAAgB,GAAW,CAAC;IAC5B,wBAAwB,GAAW,EAAE;AAErC,IAAA,MAAM;IAIf,qBAAqB,GAAA;QACnB,IAAI,CAAC,mBAAmB,EAAE;;IAGpB,cAAc,GAAmD,IAAI;IAErE,iBAAiB,GAAoC,SAAS;IAC9D,WAAW,GAAuB,SAAS;IAEnD,iBAAiB,GAAA;QACfC,QAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QACrD,IAAI,CAAC,8BAA8B,EAAE;;IAGvC,gBAAgB,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE;;IAG5B,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;AACtF,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;YAC/B,IAAI,CAAC,8BAA8B,EAAE;;;IAIzC,oBAAoB,GAAA;QAClBA,QAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,aAAa,EAAE;;IAGd,oBAAoB,GAAG,MAAK;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,kBAAkB,EAAE;AACzD,KAAC;IAEO,8BAA8B,GAAG,MAAK;AAC5C,QAAA,IAAI,CAAC,wBAAwB,GAAG,2BAA2B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AAC/F,KAAC;IAEO,YAAY,GAAG,MAAK;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACpB,KAAC;IAEO,mBAAmB,GAAG,MAAK;AACjC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;AAC5D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AACrD,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO;YAE/B,IAAI,CAAC,aAAa,EAAE;AAEpB,YAAA,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;AACzC,gBAAA,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,QAAQ,IAAG;AACjB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;iBACjC;gBACD,UAAU,EAAE,MAAK;AACf,oBAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;iBAC1B;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;aACtB;YACL,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;;AAE7B,KAAC;IAEO,aAAa,GAAG,MAAK;AAC3B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;AAE9B,KAAC;IAEO,iBAAiB,GAAG,MAAc;AACxC,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;AACrF,KAAC;IAEO,aAAa,GAAG,MAAa;AACnC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;AAC5D,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,qBAAqB,EAAE;gBAClD,OAAO,EAAE,IAAI,CAAC,gBAAgB;AAC/B,aAAA,CAAC;;AAGJ,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,oBAAoB,EAAE;gBACjD,SAAS,EAAEC,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe;AACtE,aAAA,CAAC;;AAEJ,QAAA,IACE,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC,IAAI;AAC/C,YAAA,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC,aAAa,EACxD;AACA,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,gBAAA,OAAO,WAAW,CAAC,SAAS,CAAC,mCAAmC,EAAE;oBAChE,aAAa,EAAE,IAAI,CAAC,wBAAwB;AAC7C,iBAAA,CAAC;;iBACG;AACL,gBAAA,OAAO,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC;;;;AAKpD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,2BAA2B,CAAC;;AAE3D,QAAA,IAAIA,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,sBAAsB,CAAC,IAAI,EAAE;AAC5E,YAAA,OAAO,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC;;AAEnD,QAAA,OAAO,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC;AAChD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,eAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACjC,mBAAmB,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAC7E,YAAY,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EACtE,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,EAAE,EAAC,gBAAgB,EAAA,EAElB,IAAI,CAAC,aAAa,EAAE,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/checkout/payment-button/payment-button.css?tag=payment-button","src/components/checkout/payment-button/payment-button.tsx"],"sourcesContent":["","import { Component, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../models';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { getPaymentMethodDisplayName } from '../../../utils/get-payment-method-display-name';\nimport { createCountdownTimer } from '../../../utils/timer';\nimport '../../shared/button/button';\n\n@Component({\n tag: 'payment-button',\n styleUrl: 'payment-button.css',\n shadow: false,\n})\nexport class PaymentButton {\n @Prop() isDisabled: boolean = false;\n @Prop() isLoading: boolean = false;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() isRenewal: boolean = false;\n @Prop() trialPeriodDays?: number;\n @Prop() redirectUrl?: boolean;\n @Prop() timeToRedirect?: number;\n @Prop() country?: string;\n\n @State() currentLanguage: string = I18nService.getCurrentLanguage();\n @State() countdownSeconds: number = 0;\n @State() paymentMethodDisplayName: string = '';\n\n @Event() submit: EventEmitter<void>;\n\n @Watch('redirectUrl')\n @Watch('timeToRedirect')\n onRedirectPropsChange() {\n this.initializeCountdown();\n }\n\n private countdownTimer: ReturnType<typeof createCountdownTimer> | null = null;\n\n private lastPaymentMethod: PAYMENT_METHOD_ENUM | undefined = undefined;\n private lastCountry: string | undefined = undefined;\n\n componentWillLoad() {\n i18n.on('languageChanged', this.handleLanguageChange);\n this.updatePaymentMethodDisplayName();\n }\n\n componentDidLoad() {\n this.initializeCountdown();\n }\n\n componentWillUpdate() {\n if (this.paymentMethod !== this.lastPaymentMethod || this.country !== this.lastCountry) {\n this.lastPaymentMethod = this.paymentMethod;\n this.lastCountry = this.country;\n this.updatePaymentMethodDisplayName();\n }\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n this.stopCountdown();\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = I18nService.getCurrentLanguage();\n };\n\n private updatePaymentMethodDisplayName = () => {\n this.paymentMethodDisplayName = getPaymentMethodDisplayName(this.paymentMethod, this.country);\n };\n\n private handleSubmit = () => {\n this.submit.emit();\n };\n\n private initializeCountdown = () => {\n if (this.redirectUrl === true && this.timeToRedirect != null) {\n const seconds = Math.ceil(this.timeToRedirect / 1000);\n this.countdownSeconds = seconds;\n\n this.stopCountdown();\n\n this.countdownTimer = createCountdownTimer({\n duration: seconds,\n onTick: timeLeft => {\n this.countdownSeconds = timeLeft;\n },\n onComplete: () => {\n this.countdownSeconds = 0;\n },\n });\n\n this.countdownTimer.start();\n } else {\n this.stopCountdown();\n this.countdownSeconds = 0;\n }\n };\n\n private stopCountdown = () => {\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n this.countdownTimer = null;\n }\n };\n\n private shouldShowLoading = (): boolean => {\n return this.isLoading || (this.redirectUrl === true && this.timeToRedirect != null);\n };\n\n private getButtonText = (): string => {\n if (this.redirectUrl === true && this.timeToRedirect != null) {\n return I18nService.translate('buttons.redirecting', {\n seconds: this.countdownSeconds,\n });\n }\n\n if (this.trialPeriodDays) {\n return I18nService.translate('buttons.startTrial', {\n trialDays: sessionState.data?.itemInformation?.trial?.trialPeriodDays,\n });\n }\n if (\n this.paymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n if (this.paymentMethodDisplayName) {\n return I18nService.translate('buttons.continueWithPaymentMethod', {\n paymentMethod: this.paymentMethodDisplayName,\n });\n } else {\n return I18nService.translate('buttons.continue');\n }\n }\n\n // Check if it's renewal to use different translation\n if (this.isRenewal) {\n return I18nService.translate('buttons.renewSubscription');\n }\n if (sessionState.data?.itemInformation?.type === SESSION_ITEM_TYPE_ENUM.PLAN) {\n return I18nService.translate('buttons.subscribe');\n }\n return I18nService.translate('buttons.payNow');\n };\n\n render() {\n return (\n <rebill-button\n type=\"submit\"\n disabled={this.isDisabled}\n loading={this.shouldShowLoading()}\n showSpinnerWithText={this.redirectUrl === true && this.timeToRedirect != null}\n nonClickable={this.redirectUrl === true && this.timeToRedirect != null}\n variant=\"filled\"\n theme=\"primary-dark\"\n onClick={this.handleSubmit}\n id=\"payment-button\"\n >\n {this.getButtonText()}\n </rebill-button>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-DZKiNnX2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/checkout/payment-button/payment-button.css?tag=payment-button","src/components/checkout/payment-button/payment-button.tsx"],"sourcesContent":["","import { Component, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../models';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { getPaymentMethodDisplayName } from '../../../utils/get-payment-method-display-name';\nimport { createCountdownTimer } from '../../../utils/timer';\nimport '../../shared/button/button';\n\n@Component({\n tag: 'payment-button',\n styleUrl: 'payment-button.css',\n shadow: false,\n})\nexport class PaymentButton {\n @Prop() isDisabled: boolean = false;\n @Prop() isLoading: boolean = false;\n @Prop() paymentMethod: PAYMENT_METHOD_ENUM;\n @Prop() isRenewal: boolean = false;\n @Prop() trialPeriodDays?: number;\n @Prop() redirectUrl?: boolean;\n @Prop() timeToRedirect?: number;\n @Prop() country?: string;\n\n @State() currentLanguage: string = I18nService.getCurrentLanguage();\n @State() countdownSeconds: number = 0;\n @State() paymentMethodDisplayName: string = '';\n\n @Event() submit: EventEmitter<void>;\n\n @Watch('redirectUrl')\n @Watch('timeToRedirect')\n onRedirectPropsChange() {\n this.initializeCountdown();\n }\n\n private countdownTimer: ReturnType<typeof createCountdownTimer> | null = null;\n\n private lastPaymentMethod: PAYMENT_METHOD_ENUM | undefined = undefined;\n private lastCountry: string | undefined = undefined;\n\n componentWillLoad() {\n i18n.on('languageChanged', this.handleLanguageChange);\n this.updatePaymentMethodDisplayName();\n }\n\n componentDidLoad() {\n this.initializeCountdown();\n }\n\n componentWillUpdate() {\n if (this.paymentMethod !== this.lastPaymentMethod || this.country !== this.lastCountry) {\n this.lastPaymentMethod = this.paymentMethod;\n this.lastCountry = this.country;\n this.updatePaymentMethodDisplayName();\n }\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n this.stopCountdown();\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = I18nService.getCurrentLanguage();\n };\n\n private updatePaymentMethodDisplayName = () => {\n this.paymentMethodDisplayName = getPaymentMethodDisplayName(this.paymentMethod, this.country);\n };\n\n private handleSubmit = () => {\n this.submit.emit();\n };\n\n private initializeCountdown = () => {\n if (this.redirectUrl === true && this.timeToRedirect != null) {\n const seconds = Math.ceil(this.timeToRedirect / 1000);\n this.countdownSeconds = seconds;\n\n this.stopCountdown();\n\n this.countdownTimer = createCountdownTimer({\n duration: seconds,\n onTick: timeLeft => {\n this.countdownSeconds = timeLeft;\n },\n onComplete: () => {\n this.countdownSeconds = 0;\n },\n });\n\n this.countdownTimer.start();\n } else {\n this.stopCountdown();\n this.countdownSeconds = 0;\n }\n };\n\n private stopCountdown = () => {\n if (this.countdownTimer) {\n this.countdownTimer.stop();\n this.countdownTimer = null;\n }\n };\n\n private shouldShowLoading = (): boolean => {\n return this.isLoading || (this.redirectUrl === true && this.timeToRedirect != null);\n };\n\n private getButtonText = (): string => {\n if (this.redirectUrl === true && this.timeToRedirect != null) {\n return I18nService.translate('buttons.redirecting', {\n seconds: this.countdownSeconds,\n });\n }\n\n if (this.trialPeriodDays) {\n return I18nService.translate('buttons.startTrial', {\n trialDays: sessionState.data?.itemInformation?.trial?.trialPeriodDays,\n });\n }\n if (\n this.paymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.paymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n if (this.paymentMethodDisplayName) {\n return I18nService.translate('buttons.continueWithPaymentMethod', {\n paymentMethod: this.paymentMethodDisplayName,\n });\n } else {\n return I18nService.translate('buttons.continue');\n }\n }\n\n // Check if it's renewal to use different translation\n if (this.isRenewal) {\n return I18nService.translate('buttons.renewSubscription');\n }\n if (sessionState.data?.itemInformation?.type === SESSION_ITEM_TYPE_ENUM.PLAN) {\n return I18nService.translate('buttons.subscribe');\n }\n return I18nService.translate('buttons.payNow');\n };\n\n render() {\n return (\n <rebill-button\n type=\"button\"\n disabled={this.isDisabled}\n loading={this.shouldShowLoading()}\n showSpinnerWithText={this.redirectUrl === true && this.timeToRedirect != null}\n nonClickable={this.redirectUrl === true && this.timeToRedirect != null}\n variant=\"filled\"\n theme=\"primary-dark\"\n onClick={this.handleSubmit}\n id=\"payment-button\"\n >\n {this.getButtonText()}\n </rebill-button>\n );\n }\n}\n"],"version":3}
@@ -63,9 +63,10 @@ const Address = /*@__PURE__*/ proxyCustomElement(class Address extends H {
63
63
  .toLowerCase()
64
64
  .normalize('NFD')
65
65
  .replace(/[\u0300-\u036f]/g, '') // Remove accents
66
+ .replace(/\./g, '') // Remove dots
67
+ .replace(/\s+/g, ' ') // Normalize spaces
66
68
  .trim();
67
69
  };
68
- SessionStore.setBillingAddress(address);
69
70
  this.billingView = 'form';
70
71
  if (address.country) {
71
72
  await this.loadStatesForCountry(address.country);
@@ -95,15 +96,20 @@ const Address = /*@__PURE__*/ proxyCustomElement(class Address extends H {
95
96
  else if (normalizedMatch) {
96
97
  address.state = normalizedMatch.value;
97
98
  }
98
- else
99
+ else if (partialMatch) {
99
100
  address.state = partialMatch.value;
101
+ }
102
+ else {
103
+ address.state = undefined;
104
+ }
100
105
  }
101
106
  }
107
+ SessionStore.setBillingAddress(address);
102
108
  this.addressUpdated.emit({
103
109
  country: address.country || '',
104
110
  address: address.address || '',
105
111
  city: address.city || '',
106
- state: address.state || '',
112
+ state: address.state || undefined,
107
113
  zip: address.zip || '',
108
114
  });
109
115
  // Use requestAnimationFrame to ensure the form is rendered with the new state options
@@ -191,7 +197,7 @@ const Address = /*@__PURE__*/ proxyCustomElement(class Address extends H {
191
197
  return (h("div", null, this.renderAddressHeader(), h("rebill-address-form", { countryOptions: this.countryOptions, stateOptions: this.currentBillingStateOptions, errors: errorsToShow, disabled: this.disabled, onFieldChanged: e => this.handleInput(e.detail.field, e.detail.value), onSearchRequested: () => this.handleSearchEntry() })));
192
198
  }
193
199
  render() {
194
- return (h("div", { key: '9bab5a0a737b99dd7d0966f6543b9e7a0d03753b' }, this.renderAddressForm()));
200
+ return (h("div", { key: 'f8078c9118473f6316e43558237a489de8e7e8bf' }, this.renderAddressForm()));
195
201
  }
196
202
  static get style() { return addressCss; }
197
203
  }, [256, "rebill-address", {
@@ -248,6 +254,6 @@ function defineCustomElement() {
248
254
  defineCustomElement();
249
255
 
250
256
  export { Address as A, defineCustomElement as d };
251
- //# sourceMappingURL=p-s8WhwKwq.js.map
257
+ //# sourceMappingURL=p-DgIW2T8E.js.map
252
258
 
253
- //# sourceMappingURL=p-s8WhwKwq.js.map
259
+ //# sourceMappingURL=p-DgIW2T8E.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-DgIW2T8E.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/address/address.css?tag=rebill-address","src/components/checkout/address/address.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n:host {\n display: block;\n}\n\n.billing-header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.address-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n.state-zip-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n}\n\n.state-zip-row rebill-input-select,\n.state-zip-row rebill-input-text {\n flex: 1;\n}\n\n.search-input-container {\n margin-top: 8px;\n}\n\n.manual-entry-link-wrapper {\n margin-top: 8px;\n text-align: left;\n}\n\n.manual-entry-link {\n background: none;\n border: none;\n color: var(--rebill-color-primary);\n cursor: pointer;\n text-decoration: underline;\n font-size: 14px;\n padding: 4px 8px;\n transition: color 0.2s ease;\n text-decoration: none;\n}\n\n.manual-entry-link:hover {\n text-decoration: underline;\n text-decoration-color: var(--rebill-color-text-secondary);\n}\n\n.same-as-shipping-section {\n margin: 24px 0;\n padding: 16px 0;\n}\n\n.shipping-address-section {\n margin-top: 24px;\n padding-top: 24px;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { api } from '../../../api';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { onChange, sessionState, SessionStore } from '../../../store/session.store';\nimport { AddressComponents } from '../../../utils';\n\n@Component({\n tag: 'rebill-address',\n styleUrl: 'address.css',\n shadow: false,\n})\nexport class Address {\n @Element() el: HTMLElement;\n @Prop({ mutable: true, reflect: true }) billingView: 'search' | 'form' = 'search';\n @State() currentBillingStateOptions: { label: string; value: string }[] = [];\n @State() isLoadingAddress: boolean = false;\n @Prop() disabled: boolean = false;\n\n @Prop() countryOptions: { label: string; value: string }[] = [];\n\n @Prop() errors?: {\n 'billing-country': string;\n 'billing-state': string;\n 'billing-address': string;\n 'billing-city': string;\n 'billing-zip': string;\n } | null = null;\n\n private unsubscribeAddressStore?: () => void;\n\n private translateError(errorKey: string | undefined): string {\n if (!errorKey) return '';\n if (errorKey.includes('validation.') || errorKey.includes('paymentErrors.')) {\n return I18nService.translate(errorKey);\n }\n return errorKey;\n }\n\n @Event() addressUpdated: EventEmitter<{\n country: string;\n state: string;\n address: string;\n city: string;\n zip: string;\n }>;\n\n componentDidLoad() {\n this.unsubscribeAddressStore = onChange('data', () => {\n const billingAddress = sessionState.data.userInformation.address?.billingAddress;\n\n if (billingAddress) {\n const addressData: AddressComponents = {\n country: billingAddress.country || '',\n state: billingAddress.state || '',\n address: billingAddress.address || '',\n city: billingAddress.city || '',\n zip: billingAddress.zip || '',\n };\n\n this.emitInputEventsForAddress(addressData);\n }\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeAddressStore) {\n this.unsubscribeAddressStore();\n }\n }\n\n private async handleAddressSelected(address: AddressComponents) {\n this.isLoadingAddress = true;\n\n // Normalize text function for handling accents and special characters\n const normalizeText = (text: string) => {\n return text\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') // Remove accents\n .replace(/\\./g, '') // Remove dots\n .replace(/\\s+/g, ' ') // Normalize spaces\n .trim();\n };\n this.billingView = 'form';\n\n if (address.country) {\n await this.loadStatesForCountry(address.country);\n\n // Compare Google state with API states\n if (address.state && this.currentBillingStateOptions.length > 0) {\n const exactMatch = this.currentBillingStateOptions.find(\n option => option.value.toLowerCase() === address.state.toLowerCase(),\n );\n\n const partialMatch = this.currentBillingStateOptions.find(\n option =>\n option.value.toLowerCase().includes(address.state.toLowerCase()) ||\n address.state.toLowerCase().includes(option.value.toLowerCase()),\n );\n\n // Try to find matches with common variations\n const normalizedGoogleState = normalizeText(address.state)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const normalizedMatch = this.currentBillingStateOptions.find(option => {\n const normalizedOption = normalizeText(option.value)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const matches =\n normalizedOption === normalizedGoogleState ||\n normalizedOption.startsWith(normalizedGoogleState + ' ') ||\n normalizedGoogleState.startsWith(normalizedOption + ' ');\n return matches;\n });\n\n if (exactMatch) {\n address.state = exactMatch.value;\n } else if (normalizedMatch) {\n address.state = normalizedMatch.value;\n } else if (partialMatch) {\n address.state = partialMatch.value;\n } else {\n address.state = undefined;\n }\n }\n }\n SessionStore.setBillingAddress(address);\n\n this.addressUpdated.emit({\n country: address.country || '',\n address: address.address || '',\n city: address.city || '',\n state: address.state || undefined,\n zip: address.zip || '',\n });\n\n // Use requestAnimationFrame to ensure the form is rendered with the new state options\n // before emitting events. This ensures the state field can be properly populated.\n requestAnimationFrame(() => {\n this.emitInputEventsForAddress(address);\n setTimeout(() => {\n this.isLoadingAddress = false;\n }, 500);\n });\n }\n\n private emitInputEventsForAddress(address: AddressComponents) {\n // Emit input events for each address field that has a value\n // This mimics user input to properly clear validation errors\n const fields = [\n { id: `billing-country`, value: address.country },\n { id: `billing-address`, value: address.address },\n { id: `billing-city`, value: address.city },\n { id: `billing-state`, value: address.state },\n { id: `billing-zip`, value: address.zip },\n ];\n\n fields.forEach(field => {\n if (field.value) {\n this.emitInputEvent(field.id, field.value);\n }\n });\n }\n\n private emitInputEvent(id: string, value: string) {\n if (value) {\n // Create and dispatch a custom input event that the form component can listen to\n const inputEvent = new CustomEvent('input', {\n detail: { id, value },\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n }\n\n private async loadStatesForCountry(countryCode: string) {\n try {\n const response = await api.data.getStates(countryCode);\n const statesResponse = response.data;\n const stateOptions =\n statesResponse && statesResponse.states\n ? statesResponse.states.map(state => ({ label: state, value: state }))\n : [];\n\n this.currentBillingStateOptions = stateOptions;\n } catch (error) {\n this.currentBillingStateOptions = [];\n }\n }\n\n private handleManualEntry = () => {\n this.billingView = 'form';\n };\n\n private handleSearchEntry = () => {\n this.billingView = 'search';\n };\n\n private async handleInput(field: string, value: string) {\n if (value === undefined) return;\n SessionStore.setBillingAddress({ [field]: value } as any);\n // Emit input event to form to sync with form data\n this.emitInputEvent(`billing-${field}`, value);\n\n // If country changes, load states for the new country\n if (field === 'country') {\n await this.loadStatesForCountry(value);\n // Clear the current state selection since the country changed\n SessionStore.setBillingAddress({ state: '' } as any);\n }\n }\n\n private renderAddressHeader() {\n return (\n <div class=\"billing-header-row\">\n <rebill-typography variant=\"body2\">\n {I18nService.translate('billingAddress.title')}\n </rebill-typography>\n </div>\n );\n }\n\n private renderAddressForm() {\n if (this.billingView === 'search') {\n const addressError =\n this.translateError(this.errors?.['billing-address']) ||\n this.translateError(this.errors?.['billing-country']) ||\n this.translateError(this.errors?.['billing-state']) ||\n this.translateError(this.errors?.['billing-city']) ||\n this.translateError(this.errors?.['billing-zip']) ||\n '';\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-search\n onAddressSelected={e => this.handleAddressSelected(e.detail)}\n onManualEntryRequested={() => this.handleManualEntry()}\n error={addressError}\n disabled={this.disabled}\n />\n </div>\n );\n }\n\n const errorsToShow = this.isLoadingAddress ? null : this.errors;\n\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-form\n countryOptions={this.countryOptions}\n stateOptions={this.currentBillingStateOptions}\n errors={errorsToShow}\n disabled={this.disabled}\n onFieldChanged={e => this.handleInput(e.detail.field, e.detail.value)}\n onSearchRequested={() => this.handleSearchEntry()}\n />\n </div>\n );\n }\n\n render() {\n return (\n <div>\n {/* Billing Address */}\n {this.renderAddressForm()}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { P as PaymentButton$1, d as defineCustomElement$1 } from './p-aO8Az5Xi.js';
1
+ import { P as PaymentButton$1, d as defineCustomElement$1 } from './p-DZKiNnX2.js';
2
2
 
3
3
  const PaymentButton = PaymentButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { A as Address, d as defineCustomElement$1 } from './p-s8WhwKwq.js';
1
+ import { A as Address, d as defineCustomElement$1 } from './p-DgIW2T8E.js';
2
2
 
3
3
  const RebillAddress = Address;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,9 +1,9 @@
1
1
  import { proxyCustomElement, H, createEvent, h } from './p-8BpuJ_V5.js';
2
2
  import { c as create$6 } from './p-MMCcKmy_.js';
3
3
  import { a as api } from './p-Dh-yfb0D.js';
4
- import { m as mapRequiredFields, g as generateIdempotencyKey, P as PaymentMessageE, C as CheckoutStatusE, i as isFieldRequired, a as PaymentErrorMapper, b as getFieldValues } from './p-BI62ypLw.js';
4
+ import { m as mapRequiredFields, g as generateIdempotencyKey, P as PaymentMessageE, C as CheckoutStatusE, i as isFieldRequired, a as PaymentErrorMapper, b as getFieldValues } from './p-BRI7iMx8.js';
5
5
  import { P as PaymentMethodMapper, S as STATUS_REQ_CHECKOUT_APM, d as defineCustomElement$P } from './p-yU1zKrb6.js';
6
- import { d as defineCustomElement$D } from './p-aO8Az5Xi.js';
6
+ import { d as defineCustomElement$D } from './p-DZKiNnX2.js';
7
7
  import { d as defineCustomElement$e } from './p-DLh7v0Ng.js';
8
8
  import { d as defineCustomElement$d } from './p-D9Eow84L.js';
9
9
  import { d as defineCustomElement$2 } from './p-QHSLjyEd.js';
@@ -24,7 +24,7 @@ import { d as defineCustomElement$G } from './p-b3y0ldGK.js';
24
24
  import { d as defineCustomElement$E } from './p-2hFT3wni.js';
25
25
  import { d as defineCustomElement$C } from './p-B8GIr65u.js';
26
26
  import { d as defineCustomElement$B } from './p-qmr2qRdk.js';
27
- import { d as defineCustomElement$A } from './p-s8WhwKwq.js';
27
+ import { d as defineCustomElement$A } from './p-DgIW2T8E.js';
28
28
  import { d as defineCustomElement$z } from './p-y5rBN7LS.js';
29
29
  import { d as defineCustomElement$x } from './p-DaYZxslj.js';
30
30
  import { d as defineCustomElement$w } from './p-c9SkZ__E.js';
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, H, createEvent, h } from './p-8BpuJ_V5.js';
2
2
  import { c as create$6 } from './p-MMCcKmy_.js';
3
3
  import { a as api } from './p-Dh-yfb0D.js';
4
- import { m as mapRequiredFields, i as isFieldRequired, g as generateIdempotencyKey, C as CheckoutStatusE, a as PaymentErrorMapper, b as getFieldValues } from './p-BI62ypLw.js';
4
+ import { m as mapRequiredFields, i as isFieldRequired, g as generateIdempotencyKey, C as CheckoutStatusE, a as PaymentErrorMapper, b as getFieldValues } from './p-BRI7iMx8.js';
5
5
  import { P as PaymentMethodMapper, a as PaymentMethodNameE, d as defineCustomElement$E } from './p-yU1zKrb6.js';
6
6
  import { d as defineCustomElement$a } from './p-DLh7v0Ng.js';
7
7
  import { P as PAYMENT_METHOD_ENUM, I as I18nService } from './p-DEZl2gyc.js';
@@ -17,10 +17,10 @@ import { d as defineCustomElement$z } from './p-BKlWxPzb.js';
17
17
  import { d as defineCustomElement$y } from './p-C1PdnVhw.js';
18
18
  import { d as defineCustomElement$x } from './p-C40S4S5D.js';
19
19
  import { d as defineCustomElement$w } from './p-B48kVXFC.js';
20
- import { d as defineCustomElement$v } from './p-aO8Az5Xi.js';
20
+ import { d as defineCustomElement$v } from './p-DZKiNnX2.js';
21
21
  import { d as defineCustomElement$u } from './p-B8GIr65u.js';
22
22
  import { d as defineCustomElement$t } from './p-qmr2qRdk.js';
23
- import { d as defineCustomElement$s } from './p-s8WhwKwq.js';
23
+ import { d as defineCustomElement$s } from './p-DgIW2T8E.js';
24
24
  import { d as defineCustomElement$r } from './p-y5rBN7LS.js';
25
25
  import { d as defineCustomElement$p } from './p-DaYZxslj.js';
26
26
  import { d as defineCustomElement$o } from './p-c9SkZ__E.js';
@@ -345,7 +345,7 @@ const PaymentButton = class {
345
345
  return I18nService.translate('buttons.payNow');
346
346
  };
347
347
  render() {
348
- return (h("rebill-button", { key: 'bcc6dda253cdb26b320d3f6fe69a6afcbf288f5e', type: "submit", disabled: this.isDisabled, loading: this.shouldShowLoading(), showSpinnerWithText: this.redirectUrl === true && this.timeToRedirect != null, nonClickable: this.redirectUrl === true && this.timeToRedirect != null, variant: "filled", theme: "primary-dark", onClick: this.handleSubmit, id: "payment-button" }, this.getButtonText()));
348
+ return (h("rebill-button", { key: 'bcc6dda253cdb26b320d3f6fe69a6afcbf288f5e', type: "button", disabled: this.isDisabled, loading: this.shouldShowLoading(), showSpinnerWithText: this.redirectUrl === true && this.timeToRedirect != null, nonClickable: this.redirectUrl === true && this.timeToRedirect != null, variant: "filled", theme: "primary-dark", onClick: this.handleSubmit, id: "payment-button" }, this.getButtonText()));
349
349
  }
350
350
  static get watchers() { return {
351
351
  "redirectUrl": ["onRedirectPropsChange"],
@@ -815,9 +815,10 @@ const Address = class {
815
815
  .toLowerCase()
816
816
  .normalize('NFD')
817
817
  .replace(/[\u0300-\u036f]/g, '') // Remove accents
818
+ .replace(/\./g, '') // Remove dots
819
+ .replace(/\s+/g, ' ') // Normalize spaces
818
820
  .trim();
819
821
  };
820
- SessionStore.setBillingAddress(address);
821
822
  this.billingView = 'form';
822
823
  if (address.country) {
823
824
  await this.loadStatesForCountry(address.country);
@@ -847,15 +848,20 @@ const Address = class {
847
848
  else if (normalizedMatch) {
848
849
  address.state = normalizedMatch.value;
849
850
  }
850
- else
851
+ else if (partialMatch) {
851
852
  address.state = partialMatch.value;
853
+ }
854
+ else {
855
+ address.state = undefined;
856
+ }
852
857
  }
853
858
  }
859
+ SessionStore.setBillingAddress(address);
854
860
  this.addressUpdated.emit({
855
861
  country: address.country || '',
856
862
  address: address.address || '',
857
863
  city: address.city || '',
858
- state: address.state || '',
864
+ state: address.state || undefined,
859
865
  zip: address.zip || '',
860
866
  });
861
867
  // Use requestAnimationFrame to ensure the form is rendered with the new state options
@@ -943,7 +949,7 @@ const Address = class {
943
949
  return (h("div", null, this.renderAddressHeader(), h("rebill-address-form", { countryOptions: this.countryOptions, stateOptions: this.currentBillingStateOptions, errors: errorsToShow, disabled: this.disabled, onFieldChanged: e => this.handleInput(e.detail.field, e.detail.value), onSearchRequested: () => this.handleSearchEntry() })));
944
950
  }
945
951
  render() {
946
- return (h("div", { key: '9bab5a0a737b99dd7d0966f6543b9e7a0d03753b' }, this.renderAddressForm()));
952
+ return (h("div", { key: 'f8078c9118473f6316e43558237a489de8e7e8bf' }, this.renderAddressForm()));
947
953
  }
948
954
  };
949
955
  Address.style = addressCss;