rebill-web-components-sdk 1.10.6 → 1.10.7-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cjs/card-fields-wrapper.card-identification.card-iframe.card-skeleton.rebill-address-form.rebill-address-search.rebill-input-combo.rebill-input-phone.rebill-installments.selectable-card.single-payment-method.entry.cjs.js.map +1 -1
  2. package/dist/cjs/card-fields-wrapper_11.cjs.entry.js +9 -12
  3. package/dist/cjs/index-C-VTnc0I.js.map +1 -1
  4. package/dist/cjs/rebill-change-card.cjs.entry.js +1 -2
  5. package/dist/cjs/rebill-change-card.entry.cjs.js.map +1 -1
  6. package/dist/cjs/rebill-checkout.cjs.entry.js +10 -3
  7. package/dist/cjs/rebill-checkout.entry.cjs.js.map +1 -1
  8. package/dist/cjs/rebill-form.cjs.entry.js +5 -2
  9. package/dist/cjs/rebill-form.entry.cjs.js.map +1 -1
  10. package/dist/collection/components/change-card/rebill-change-card.js +1 -2
  11. package/dist/collection/components/change-card/rebill-change-card.js.map +1 -1
  12. package/dist/collection/components/checkout/rebill-checkout.js +10 -3
  13. package/dist/collection/components/checkout/rebill-checkout.js.map +1 -1
  14. package/dist/collection/components/shared/form/form.js +5 -2
  15. package/dist/collection/components/shared/form/form.js.map +1 -1
  16. package/dist/collection/components/shared/inputs/input-phone/input-phone.js +9 -12
  17. package/dist/collection/components/shared/inputs/input-phone/input-phone.js.map +1 -1
  18. package/dist/components/p-8BpuJ_V5.js.map +1 -1
  19. package/dist/components/{p-0y1EkPsV.js → p-CRMAYXj0.js} +3 -3
  20. package/dist/components/{p-0y1EkPsV.js.map → p-CRMAYXj0.js.map} +1 -1
  21. package/dist/components/{p-BFqhozQ0.js → p-DKPrueOT.js} +3 -3
  22. package/dist/components/{p-BFqhozQ0.js.map → p-DKPrueOT.js.map} +1 -1
  23. package/dist/components/{p-Cs-pA3OO.js → p-DVaxhIJe.js} +7 -4
  24. package/dist/components/p-DVaxhIJe.js.map +1 -0
  25. package/dist/components/{p-RbKsk0NK.js → p-Dsv10JVE.js} +11 -14
  26. package/dist/components/p-Dsv10JVE.js.map +1 -0
  27. package/dist/components/rebill-change-card.js +5 -6
  28. package/dist/components/rebill-change-card.js.map +1 -1
  29. package/dist/components/rebill-checkout-form.js +1 -1
  30. package/dist/components/rebill-checkout.js +14 -7
  31. package/dist/components/rebill-checkout.js.map +1 -1
  32. package/dist/components/rebill-form.js +1 -1
  33. package/dist/components/rebill-input-phone.js +1 -1
  34. package/dist/components/rebill-renewal.js +4 -4
  35. package/dist/components/root-component.js +1 -1
  36. package/dist/components/user-information-phone.js +1 -1
  37. package/dist/esm/card-fields-wrapper.card-identification.card-iframe.card-skeleton.rebill-address-form.rebill-address-search.rebill-input-combo.rebill-input-phone.rebill-installments.selectable-card.single-payment-method.entry.js.map +1 -1
  38. package/dist/esm/card-fields-wrapper_11.entry.js +9 -12
  39. package/dist/esm/index-BTZ7D7jU.js.map +1 -1
  40. package/dist/esm/rebill-change-card.entry.js +1 -2
  41. package/dist/esm/rebill-change-card.entry.js.map +1 -1
  42. package/dist/esm/rebill-checkout.entry.js +10 -3
  43. package/dist/esm/rebill-checkout.entry.js.map +1 -1
  44. package/dist/esm/rebill-form.entry.js +5 -2
  45. package/dist/esm/rebill-form.entry.js.map +1 -1
  46. package/dist/rebill-web-components-sdk/card-fields-wrapper.card-identification.card-iframe.card-skeleton.rebill-address-form.rebill-address-search.rebill-input-combo.rebill-input-phone.rebill-installments.selectable-card.single-payment-method.entry.esm.js.map +1 -1
  47. package/dist/rebill-web-components-sdk/{p-a8726b6d.entry.js → p-85e7cd6f.entry.js} +2 -2
  48. package/dist/rebill-web-components-sdk/{p-a8726b6d.entry.js.map → p-85e7cd6f.entry.js.map} +1 -1
  49. package/dist/rebill-web-components-sdk/{p-d827e221.entry.js → p-90c50e5b.entry.js} +2 -2
  50. package/dist/rebill-web-components-sdk/p-90c50e5b.entry.js.map +1 -0
  51. package/dist/rebill-web-components-sdk/p-BTZ7D7jU.js.map +1 -1
  52. package/dist/rebill-web-components-sdk/{p-14fb1c5c.entry.js → p-ae158592.entry.js} +2 -2
  53. package/dist/rebill-web-components-sdk/p-ae158592.entry.js.map +1 -0
  54. package/dist/rebill-web-components-sdk/{p-1a99d53d.entry.js → p-e6df1fe2.entry.js} +2 -2
  55. package/dist/rebill-web-components-sdk/{p-1a99d53d.entry.js.map → p-e6df1fe2.entry.js.map} +1 -1
  56. package/dist/rebill-web-components-sdk/rebill-change-card.entry.esm.js.map +1 -1
  57. package/dist/rebill-web-components-sdk/rebill-checkout.entry.esm.js.map +1 -1
  58. package/dist/rebill-web-components-sdk/rebill-form.entry.esm.js.map +1 -1
  59. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  60. package/package.json +1 -1
  61. package/dist/components/p-Cs-pA3OO.js.map +0 -1
  62. package/dist/components/p-RbKsk0NK.js.map +0 -1
  63. package/dist/rebill-web-components-sdk/p-14fb1c5c.entry.js.map +0 -1
  64. package/dist/rebill-web-components-sdk/p-d827e221.entry.js.map +0 -1
@@ -124,7 +124,10 @@ const Form = class {
124
124
  async handleBlur(event) {
125
125
  if (!event.detail || !event.detail.id)
126
126
  return;
127
- const { id, disabled } = event.detail;
127
+ const { id, value, disabled } = event.detail;
128
+ if (value !== undefined) {
129
+ this.setFieldValue(id, value);
130
+ }
128
131
  if (!disabled) {
129
132
  const error = await this.validator.validateField(id, this.formData);
130
133
  this.setFieldError(id, error);
@@ -151,7 +154,7 @@ const Form = class {
151
154
  await this.submitForm();
152
155
  };
153
156
  render() {
154
- return (index.h("form", { key: '52bbd73020352379d4d196e1fa6ea32dbb5bf8cc', onSubmit: e => this.handleSubmit(e), noValidate: true }, this.renderForm ? (this.renderForm({
157
+ return (index.h("form", { key: '16a2a9b5f7a45b4fb4a00ab9177bc61680272da8', onSubmit: e => this.handleSubmit(e), noValidate: true }, this.renderForm ? (this.renderForm({
155
158
  submit: () => this.submitForm(),
156
159
  formData: this.formData,
157
160
  errors: this.errors,
@@ -1 +1 @@
1
- {"version":3,"file":"rebill-form.entry.cjs.js","sources":["src/utils/form-validation.ts","src/components/shared/form/form.tsx"],"sourcesContent":["import * as yup from 'yup';\n\nexport interface ValidationSchema {\n [key: string]: yup.Schema<any>;\n}\n\nexport interface FormErrors {\n [key: string]: string;\n}\n\nexport interface FormData {\n [key: string]: any;\n}\n\nexport class FormValidator {\n private schema: yup.ObjectSchema<any>;\n\n constructor(validationSchema: ValidationSchema) {\n this.schema = yup.object().shape(validationSchema);\n }\n\n async validateField(fieldName: string, formData: FormData): Promise<string> {\n try {\n await this.schema.validateAt(fieldName, formData);\n return '';\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n return error.message;\n }\n return '';\n }\n }\n\n async validateForm(formData: FormData): Promise<FormErrors> {\n try {\n await this.schema.validate(formData, { abortEarly: false });\n return {};\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n const errors: FormErrors = {};\n error.inner.forEach(err => {\n if (err.path) {\n errors[err.path] = err.message;\n }\n });\n return errors;\n }\n return {};\n }\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 { FormData, FormErrors, FormValidator } from '../../../utils/form-validation';\n\n@Component({\n tag: 'rebill-form',\n shadow: false,\n})\nexport class Form {\n /** Esquema de validación del formulario */\n @Prop() validationSchema: any;\n /** Datos iniciales del formulario */\n @Prop() initialData: FormData = {};\n /** Evento cuando el formulario es válido y se envía */\n @Event() submit: EventEmitter<FormData>;\n /** Evento cuando hay cambios en el formulario */\n @Event() change: EventEmitter<FormData>;\n /** Función render prop para controlar el formulario */\n @Prop() renderForm?: (props: {\n submit: () => void;\n formData: FormData;\n errors: FormErrors;\n }) => any;\n\n @State() formData: FormData = {};\n @State() errors: FormErrors = {};\n private validator: FormValidator;\n private hasSubmitted: boolean = false;\n\n @Watch('initialData')\n handleInitialDataChange(newValue: FormData) {\n const updatedFormData = { ...this.formData };\n Object.keys(newValue).forEach(key => {\n if (updatedFormData[key] === undefined || updatedFormData[key] === '') {\n updatedFormData[key] = newValue[key];\n }\n });\n this.formData = updatedFormData;\n this.change.emit(this.formData);\n }\n\n @Watch('validationSchema')\n handleValidationSchemaChange(newSchema: any) {\n this.validator = new FormValidator(newSchema);\n }\n\n componentWillLoad() {\n this.formData = { ...this.initialData };\n this.validator = new FormValidator(this.validationSchema);\n setTimeout(() => {\n this.change.emit(this.formData);\n }, 100);\n }\n\n private setFieldValue(id: string, value: any) {\n if (this.formData[id] !== value) {\n this.formData = {\n ...this.formData,\n [id]: value,\n };\n }\n }\n\n private setFieldError(id: string, error: string) {\n if (this.errors[id] !== error) {\n this.errors = {\n ...this.errors,\n [id]: error,\n };\n }\n }\n\n private clearFieldError(id: string) {\n if (this.hasFieldError(id)) {\n this.setFieldError(id, '');\n }\n }\n\n private hasFieldError(id: string) {\n return this.errors[id] !== '';\n }\n\n @Listen('input')\n async handleInputChange(event: CustomEvent) {\n if (!event.detail || !event.detail.id) return;\n const { id, value, disabled } = event.detail;\n\n this.setFieldValue(id, value);\n\n if (this.hasSubmitted && !disabled) {\n const error = await this.validator.validateField(id, this.formData);\n this.setFieldError(id, error);\n } else {\n if (this.hasFieldError(id)) {\n this.clearFieldError(id);\n }\n }\n this.change.emit(this.formData);\n }\n @Listen('blur')\n async handleBlur(event: CustomEvent) {\n if (!event.detail || !event.detail.id) return;\n const { id, disabled } = event.detail;\n\n if (!disabled) {\n const error = await this.validator.validateField(id, this.formData);\n this.setFieldError(id, error);\n }\n }\n\n @Method()\n async submitForm() {\n this.hasSubmitted = true;\n this.errors = {};\n\n const errors = await this.validator.validateForm(this.formData);\n this.errors = errors;\n\n if (Object.values(this.errors).filter(value => !!value).length === 0) {\n this.submit.emit(this.formData);\n }\n }\n\n @Method()\n async resetValidation() {\n this.hasSubmitted = false;\n this.errors = {};\n }\n\n @Method()\n async clearError(fieldId: string) {\n this.clearFieldError(fieldId);\n }\n private handleSubmit = async (event: Event) => {\n event.preventDefault();\n await this.submitForm();\n };\n\n render() {\n return (\n <form onSubmit={e => this.handleSubmit(e)} noValidate>\n {this.renderForm ? (\n this.renderForm({\n submit: () => this.submitForm(),\n formData: this.formData,\n errors: this.errors,\n })\n ) : (\n <slot></slot>\n )}\n </form>\n );\n }\n}\n"],"names":["yup.object","yup.ValidationError","h"],"mappings":"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"}
1
+ {"version":3,"file":"rebill-form.entry.cjs.js","sources":["src/utils/form-validation.ts","src/components/shared/form/form.tsx"],"sourcesContent":["import * as yup from 'yup';\n\nexport interface ValidationSchema {\n [key: string]: yup.Schema<any>;\n}\n\nexport interface FormErrors {\n [key: string]: string;\n}\n\nexport interface FormData {\n [key: string]: any;\n}\n\nexport class FormValidator {\n private schema: yup.ObjectSchema<any>;\n\n constructor(validationSchema: ValidationSchema) {\n this.schema = yup.object().shape(validationSchema);\n }\n\n async validateField(fieldName: string, formData: FormData): Promise<string> {\n try {\n await this.schema.validateAt(fieldName, formData);\n return '';\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n return error.message;\n }\n return '';\n }\n }\n\n async validateForm(formData: FormData): Promise<FormErrors> {\n try {\n await this.schema.validate(formData, { abortEarly: false });\n return {};\n } catch (error) {\n if (error instanceof yup.ValidationError) {\n const errors: FormErrors = {};\n error.inner.forEach(err => {\n if (err.path) {\n errors[err.path] = err.message;\n }\n });\n return errors;\n }\n return {};\n }\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 { FormData, FormErrors, FormValidator } from '../../../utils/form-validation';\n\n@Component({\n tag: 'rebill-form',\n shadow: false,\n})\nexport class Form {\n /** Esquema de validación del formulario */\n @Prop() validationSchema: any;\n /** Datos iniciales del formulario */\n @Prop() initialData: FormData = {};\n /** Evento cuando el formulario es válido y se envía */\n @Event() submit: EventEmitter<FormData>;\n /** Evento cuando hay cambios en el formulario */\n @Event() change: EventEmitter<FormData>;\n /** Función render prop para controlar el formulario */\n @Prop() renderForm?: (props: {\n submit: () => void;\n formData: FormData;\n errors: FormErrors;\n }) => any;\n\n @State() formData: FormData = {};\n @State() errors: FormErrors = {};\n private validator: FormValidator;\n private hasSubmitted: boolean = false;\n\n @Watch('initialData')\n handleInitialDataChange(newValue: FormData) {\n const updatedFormData = { ...this.formData };\n Object.keys(newValue).forEach(key => {\n if (updatedFormData[key] === undefined || updatedFormData[key] === '') {\n updatedFormData[key] = newValue[key];\n }\n });\n this.formData = updatedFormData;\n this.change.emit(this.formData);\n }\n\n @Watch('validationSchema')\n handleValidationSchemaChange(newSchema: any) {\n this.validator = new FormValidator(newSchema);\n }\n\n componentWillLoad() {\n this.formData = { ...this.initialData };\n this.validator = new FormValidator(this.validationSchema);\n setTimeout(() => {\n this.change.emit(this.formData);\n }, 100);\n }\n\n private setFieldValue(id: string, value: any) {\n if (this.formData[id] !== value) {\n this.formData = {\n ...this.formData,\n [id]: value,\n };\n }\n }\n\n private setFieldError(id: string, error: string) {\n if (this.errors[id] !== error) {\n this.errors = {\n ...this.errors,\n [id]: error,\n };\n }\n }\n\n private clearFieldError(id: string) {\n if (this.hasFieldError(id)) {\n this.setFieldError(id, '');\n }\n }\n\n private hasFieldError(id: string) {\n return this.errors[id] !== '';\n }\n\n @Listen('input')\n async handleInputChange(event: CustomEvent) {\n if (!event.detail || !event.detail.id) return;\n const { id, value, disabled } = event.detail;\n\n this.setFieldValue(id, value);\n\n if (this.hasSubmitted && !disabled) {\n const error = await this.validator.validateField(id, this.formData);\n this.setFieldError(id, error);\n } else {\n if (this.hasFieldError(id)) {\n this.clearFieldError(id);\n }\n }\n this.change.emit(this.formData);\n }\n @Listen('blur')\n async handleBlur(event: CustomEvent) {\n if (!event.detail || !event.detail.id) return;\n const { id, value, disabled } = event.detail as { id: string; value?: any; disabled?: boolean };\n\n if (value !== undefined) {\n this.setFieldValue(id, value);\n }\n\n if (!disabled) {\n const error = await this.validator.validateField(id, this.formData);\n this.setFieldError(id, error);\n }\n }\n\n @Method()\n async submitForm() {\n this.hasSubmitted = true;\n this.errors = {};\n\n const errors = await this.validator.validateForm(this.formData);\n this.errors = errors;\n\n if (Object.values(this.errors).filter(value => !!value).length === 0) {\n this.submit.emit(this.formData);\n }\n }\n\n @Method()\n async resetValidation() {\n this.hasSubmitted = false;\n this.errors = {};\n }\n\n @Method()\n async clearError(fieldId: string) {\n this.clearFieldError(fieldId);\n }\n private handleSubmit = async (event: Event) => {\n event.preventDefault();\n await this.submitForm();\n };\n\n render() {\n return (\n <form onSubmit={e => this.handleSubmit(e)} noValidate>\n {this.renderForm ? (\n this.renderForm({\n submit: () => this.submitForm(),\n formData: this.formData,\n errors: this.errors,\n })\n ) : (\n <slot></slot>\n )}\n </form>\n );\n }\n}\n"],"names":["yup.object","yup.ValidationError","h"],"mappings":"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"}
@@ -267,7 +267,6 @@ export class RebillChangeCard {
267
267
  const organizationId = renewalState.data?.organization?.id;
268
268
  return organizationId ? organizationId.startsWith('test') : false;
269
269
  }
270
- ;
271
270
  render() {
272
271
  if (!renewalState.isInitialized) {
273
272
  return h("div", { class: "loading" }, I18nService.translate('renewal.loading'));
@@ -311,7 +310,7 @@ export class RebillChangeCard {
311
310
  'billing-city': errors['billing-city'],
312
311
  'billing-zip': errors['billing-zip'],
313
312
  } }))), this.cardMode === 'input' &&
314
- isFieldRequired('phoneNumber', this.currentRequiredFields) && (h("div", { class: "animated-component fade-in" }, h("user-information-phone", { error: errors?.phoneNumber }))), isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&
313
+ isFieldRequired('phoneNumber', this.currentRequiredFields) && (h("div", { class: "animated-component fade-in" }, h("user-information-phone", { error: errors?.phoneNumber || errors?.isValidPhoneNumber }))), isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&
315
314
  renderSummary({
316
315
  displayedComponents: 'summary',
317
316
  }), h("div", { style: { display: 'flex', flexDirection: 'column', gap: '16px' } }, h("payment-button", { paymentMethod: PAYMENT_METHOD_ENUM.CARD, isLoading: this.isSubmitting, isChangeCard: true, country: renewalState.data.price.country, isDisabled: renewalState.fetchingInstallments, onSubmit: () => submit() }), h("rebill-alert", { type: "secure", variant: "variant-secure", icon: "lock-outline", message: I18nService.translate('otp.secureMessage') }))), this.isSandboxMode &&
@@ -1 +1 @@
1
- {"version":3,"file":"rebill-change-card.js","sourceRoot":"","sources":["../../../src/components/change-card/rebill-change-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport { ChangeCardRequest } from '../../api/entities/subscriptions/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/payment-button/payment-button';\nimport '../../components/checkout/payment-method-selector/payment-method-selector';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport { I18nService } from '../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from '../../store/renewal.store';\nimport { SessionStore } from '../../store/session.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { formatDateTime } from '../../utils/date-formatter';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys } from '../../utils/payment-error-mapper';\nimport { isFieldRequired } from '../../utils/required-fields-mappers';\nimport '../renewal/renewal-summary/renewal-summary';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFieldsRenewal,\n getRequiredFieldsForMethod,\n} from '../renewal/utils/getRequiredFieldsRenewal';\nimport '../shared/mode-sandbox/mode-sandbox';\nimport './change-card-success';\nimport './rebill-change-card.css';\n\n@Component({\n tag: 'rebill-change-card',\n styleUrl: 'rebill-change-card.css',\n shadow: false,\n})\nexport class RebillChangeCard {\n @Prop() changeCardData!: string;\n @Prop() changeCardToken!: string;\n\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() errorMessage: AlertErrorKeys | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() errorPaymentCard: boolean = false;\n @State() initialData: any = {};\n @State() countries: Country[] = [];\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() errorCardInvalid: boolean = false;\n @State() cardMode: 'input' | 'select' | null = 'input';\n @State() completedAt: string | null = null;\n\n @Event() success: EventEmitter<any>;\n @Event() paymentError: EventEmitter<any>;\n\n private currentPaymentMethod: PAYMENT_METHOD_ENUM = PAYMENT_METHOD_ENUM.CARD;\n\n private validationSchema = {\n 'phoneNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('phoneNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-country', this.currentRequiredFields) && 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.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.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.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.cardMode === 'input',\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n isFieldRequired('documentType', this.currentRequiredFields) && 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.cardMode === 'input',\n then: schema => {\n const baseSchema = schema\n .required('validation.documentNumberRequired')\n .min(7, 'validation.documentInvalid');\n if (renewalState.data?.price?.country === 'BR') {\n return baseSchema.test('numeric-only', 'validation.documentNumberNumericOnly', value => {\n if (!value) return true;\n return /^\\d+$/.test(value);\n });\n }\n\n return baseSchema;\n },\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private resizeHandler = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n async componentWillLoad() {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n const changeCardProps =\n typeof this.changeCardData === 'string'\n ? JSON.parse(this.changeCardData)\n : this.changeCardData;\n\n RenewalStore.initializeRenewal({\n ...changeCardProps,\n token: this.changeCardToken,\n });\n renewalState.data.subscription.customerId = '';\n RenewalStore.setCardId(null);\n RenewalStore.setCardTokenId(null);\n RenewalStore.setCardInformation(null);\n SessionStore.setCustomerId(null);\n SessionStore.setCardId(null);\n SessionStore.setCardTokenId(null);\n RenewalStore.setCardMode('input');\n this.cardMode = 'input';\n RenewalStore.setSelectedPaymentMethod(PAYMENT_METHOD_ENUM.CARD);\n\n GoogleMapsService.loadGoogleMapsScript();\n\n try {\n const response = await api.data.getCountries();\n this.countries = response.data;\n } catch (error) {\n console.error('Error loading countries:', error);\n }\n\n try {\n this.allRequiredFields = await getAllRequiredFieldsRenewal();\n } catch (error) {\n console.error('Error loading required fields:', error);\n }\n\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n PAYMENT_METHOD_ENUM.CARD,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for card:', error);\n }\n\n await this.initializeFingerprint();\n this.initialData = this.getInitialData();\n\n renewalOnChange('cardMode', () => {\n if (renewalState.cardMode !== 'input') {\n RenewalStore.setCardMode('input');\n return;\n }\n this.cardMode = 'input';\n });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n }\n\n private async initializeFingerprint() {\n if (!renewalState.deviceId) {\n try {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n RenewalStore.setDeviceId(uuid);\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n } catch (error) {\n console.error('Failed to initialize fingerprint:', error);\n }\n }\n }\n\n private async handleSubmit(event?: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n\n await this.handleChangeCard(event);\n }\n\n private async handleChangeCard(event?: CustomEvent) {\n const formData = event?.detail || this.getInitialData();\n\n if (!renewalState.data.cardTokenId || !renewalState.data.cardInformation) {\n this.errorCardInvalid = true;\n return;\n }\n\n this.errorCardInvalid = false;\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const changeCardRequest: ChangeCardRequest = {};\n\n changeCardRequest.cardTokenId = renewalState.data.cardTokenId;\n changeCardRequest.billingDetails = {\n address: {\n lineOne: formData['billing-address'] || '',\n city: formData['billing-city'] || '',\n state: formData['billing-state'] || '',\n country: formData['billing-country'] || '',\n zipCode: formData['billing-zip'] || '',\n },\n identification: {\n type: formData.documentType || '',\n value: formData.documentNumber || '',\n },\n };\n\n const response = await api.subscriptions.changeCard(\n renewalState.data.subscription.id,\n changeCardRequest,\n this.changeCardToken,\n );\n\n // Update card information from response if available\n if (response.data?.card) {\n RenewalStore.setCardInformation({\n brand: response.data.card.brand,\n type: renewalState.data.cardInformation?.type || '',\n isoCountry: renewalState.data.cardInformation?.isoCountry || '',\n bank: renewalState.data.cardInformation?.bank || '',\n lastFour: response.data.card.lastFour,\n installments: renewalState.data.cardInformation?.installments || {\n installments: [],\n },\n });\n }\n\n this.completedAt = new Date().toISOString();\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n this.isCardSuccess = true;\n this.success.emit(response.data);\n } catch (error: any) {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: error.data?.error?.message as PaymentMessageE,\n };\n this.paymentError.emit(error);\n }\n }\n\n private getInitialData = () => {\n return {\n 'email': renewalState.data.subscription.customerEmail,\n 'fullName': renewalState.data.subscription.customerName,\n 'card': '',\n 'billing-country': '',\n 'billing-state': '',\n 'billing-address': '',\n 'billing-city': '',\n 'billing-zip': '',\n 'bankId': '',\n 'phoneNumber': '',\n 'countryCodePhoneNumber': '',\n 'documentType': '',\n 'documentNumber': '',\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\n private getFormattedCompletionDate = () => {\n if (!this.completedAt) {\n return '';\n }\n return formatDateTime(this.completedAt);\n };\n\n private get isSandboxMode(): boolean {\n const organizationId = renewalState.data?.organization?.id;\n return organizationId ? organizationId.startsWith('test') : false;\n };\n\n render() {\n if (!renewalState.isInitialized) {\n return <div class=\"loading\">{I18nService.translate('renewal.loading')}</div>;\n }\n\n const renderSummary = props => (\n <renewal-summary\n titleKey=\"changeCard.title\"\n totalAmount={renewalState.data.price.amount}\n subTotalAmount={renewalState.data.subscription.subTotalAmount}\n currency={renewalState.data.price.currency}\n subscriptionTitle={renewalState.data.subscription.name[0]?.text || 'Subscription'}\n subscriptionAmount={renewalState.data.subscription.amount}\n nextChargeDate={renewalState.data.subscription.nextChargeDate}\n frequency={renewalState.data.subscription.frequency}\n couponCode={renewalState.data.price.couponCode}\n discountAmount={renewalState.data.price.discountedAmount}\n discountPercentage={renewalState.data.price.discountPercentage}\n {...props}\n />\n );\n\n return (\n <>\n <rebill-processing-payment\n style={{ display: this.isCardSubmitting ? 'block' : 'none' }}\n titleKey=\"changeCard.processingTitle\"\n subtitleKey=\"changeCard.processingSubtitle\"\n />\n {this.isCardSuccess ? (\n <change-card-success\n customerName={renewalState.data.subscription.customerName}\n cardBrand={renewalState.data.cardInformation?.brand}\n cardLastFour={renewalState.data.cardInformation?.lastFour || '****'}\n paymentDate={this.getFormattedCompletionDate()}\n customerEmail={renewalState.data.subscription.customerEmail}\n />\n ) : (\n <rebill-checkout-form\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 renderForm={({ submit, errors }) => (\n <div class=\"rebill-checkout-renewal\">\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n {/* Modo sandbox para mobile - posicionado arriba del logo */}\n {this.isSandboxMode &&\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 <organization-logo organization={renewalState.data.organization} />\n\n <div class=\"checkout-form-section\">\n <user-information-static\n userInfo={{\n customerName: renewalState.data.subscription.customerName,\n customerEmail: renewalState.data.subscription.customerEmail,\n }}\n />\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'header',\n })}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'details',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '32px' }}>\n <payment-method-selector\n enabledPaymentMethods={[PAYMENT_METHOD_ENUM.CARD]}\n defaultSelected={this.currentPaymentMethod}\n errorComponent={{\n showErrorComponent: this.errorPaymentCard,\n alertTitle:\n this.errorMessage?.alertTitle ||\n I18nService.translate('changeCard.errorTitle'),\n message:\n this.errorMessage?.message ||\n I18nService.translate('changeCard.errorDescription'),\n }}\n cardError={{\n showCardInvalid: this.errorCardInvalid,\n type: null,\n }}\n country={renewalState.data.price.country}\n documentTypeError={errors?.documentType}\n documentNumberError={errors?.documentNumber}\n showDocument={\n this.cardMode === 'input' &&\n (isFieldRequired('documentType', this.currentRequiredFields) ||\n isFieldRequired('documentNumber', this.currentRequiredFields))\n }\n />\n </div>\n\n {this.cardMode === 'input' &&\n (isFieldRequired('billing-country', this.currentRequiredFields) ||\n isFieldRequired('billing-state', this.currentRequiredFields) ||\n isFieldRequired('billing-address', this.currentRequiredFields) ||\n isFieldRequired('billing-city', this.currentRequiredFields) ||\n isFieldRequired('billing-zip', this.currentRequiredFields)) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n countryOptions={this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }))}\n billingView={this.hasPrefilledAddress() ? 'form' : 'search'}\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.cardMode === 'input' &&\n isFieldRequired('phoneNumber', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone error={errors?.phoneNumber} />\n </div>\n )}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'summary',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <payment-button\n paymentMethod={PAYMENT_METHOD_ENUM.CARD}\n isLoading={this.isSubmitting}\n isChangeCard={true}\n country={renewalState.data.price.country}\n isDisabled={renewalState.fetchingInstallments}\n onSubmit={() => submit()}\n />\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 </div>\n {this.isSandboxMode &&\n !isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <rebill-mode-sandbox />\n )}\n <rebill-footer\n style={{\n marginTop: isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP)\n ? '24px'\n : 'auto',\n }}\n />\n </div>\n </div>\n\n {!isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div class=\"right-section\">\n <div class=\"checkout-summary-section\">\n {renderSummary({\n displayedComponents: ['header', 'details', 'summary'],\n })}\n </div>\n </div>\n )}\n </div>\n )}\n />\n )}\n </>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"rebill-change-card.js","sourceRoot":"","sources":["../../../src/components/change-card/rebill-change-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport { ChangeCardRequest } from '../../api/entities/subscriptions/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/payment-button/payment-button';\nimport '../../components/checkout/payment-method-selector/payment-method-selector';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport { I18nService } from '../../i18n/i18n.service';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from '../../store/renewal.store';\nimport { SessionStore } from '../../store/session.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { formatDateTime } from '../../utils/date-formatter';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys } from '../../utils/payment-error-mapper';\nimport { isFieldRequired } from '../../utils/required-fields-mappers';\nimport '../renewal/renewal-summary/renewal-summary';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFieldsRenewal,\n getRequiredFieldsForMethod,\n} from '../renewal/utils/getRequiredFieldsRenewal';\nimport '../shared/mode-sandbox/mode-sandbox';\nimport './change-card-success';\nimport './rebill-change-card.css';\n\n@Component({\n tag: 'rebill-change-card',\n styleUrl: 'rebill-change-card.css',\n shadow: false,\n})\nexport class RebillChangeCard {\n @Prop() changeCardData!: string;\n @Prop() changeCardToken!: string;\n\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() errorMessage: AlertErrorKeys | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() errorPaymentCard: boolean = false;\n @State() initialData: any = {};\n @State() countries: Country[] = [];\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() errorCardInvalid: boolean = false;\n @State() cardMode: 'input' | 'select' | null = 'input';\n @State() completedAt: string | null = null;\n\n @Event() success: EventEmitter<any>;\n @Event() paymentError: EventEmitter<any>;\n\n private currentPaymentMethod: PAYMENT_METHOD_ENUM = PAYMENT_METHOD_ENUM.CARD;\n\n private validationSchema = {\n 'phoneNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('phoneNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-country', this.currentRequiredFields) && 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.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.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.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.cardMode === 'input',\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n isFieldRequired('documentType', this.currentRequiredFields) && 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.cardMode === 'input',\n then: schema => {\n const baseSchema = schema\n .required('validation.documentNumberRequired')\n .min(7, 'validation.documentInvalid');\n if (renewalState.data?.price?.country === 'BR') {\n return baseSchema.test('numeric-only', 'validation.documentNumberNumericOnly', value => {\n if (!value) return true;\n return /^\\d+$/.test(value);\n });\n }\n\n return baseSchema;\n },\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private resizeHandler = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n async componentWillLoad() {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n const changeCardProps =\n typeof this.changeCardData === 'string'\n ? JSON.parse(this.changeCardData)\n : this.changeCardData;\n\n RenewalStore.initializeRenewal({\n ...changeCardProps,\n token: this.changeCardToken,\n });\n renewalState.data.subscription.customerId = '';\n RenewalStore.setCardId(null);\n RenewalStore.setCardTokenId(null);\n RenewalStore.setCardInformation(null);\n SessionStore.setCustomerId(null);\n SessionStore.setCardId(null);\n SessionStore.setCardTokenId(null);\n RenewalStore.setCardMode('input');\n this.cardMode = 'input';\n RenewalStore.setSelectedPaymentMethod(PAYMENT_METHOD_ENUM.CARD);\n\n GoogleMapsService.loadGoogleMapsScript();\n\n try {\n const response = await api.data.getCountries();\n this.countries = response.data;\n } catch (error) {\n console.error('Error loading countries:', error);\n }\n\n try {\n this.allRequiredFields = await getAllRequiredFieldsRenewal();\n } catch (error) {\n console.error('Error loading required fields:', error);\n }\n\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n PAYMENT_METHOD_ENUM.CARD,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for card:', error);\n }\n\n await this.initializeFingerprint();\n this.initialData = this.getInitialData();\n\n renewalOnChange('cardMode', () => {\n if (renewalState.cardMode !== 'input') {\n RenewalStore.setCardMode('input');\n return;\n }\n this.cardMode = 'input';\n });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n }\n\n private async initializeFingerprint() {\n if (!renewalState.deviceId) {\n try {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n RenewalStore.setDeviceId(uuid);\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n } catch (error) {\n console.error('Failed to initialize fingerprint:', error);\n }\n }\n }\n\n private async handleSubmit(event?: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n\n await this.handleChangeCard(event);\n }\n\n private async handleChangeCard(event?: CustomEvent) {\n const formData = event?.detail || this.getInitialData();\n\n if (!renewalState.data.cardTokenId || !renewalState.data.cardInformation) {\n this.errorCardInvalid = true;\n return;\n }\n\n this.errorCardInvalid = false;\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const changeCardRequest: ChangeCardRequest = {};\n\n changeCardRequest.cardTokenId = renewalState.data.cardTokenId;\n changeCardRequest.billingDetails = {\n address: {\n lineOne: formData['billing-address'] || '',\n city: formData['billing-city'] || '',\n state: formData['billing-state'] || '',\n country: formData['billing-country'] || '',\n zipCode: formData['billing-zip'] || '',\n },\n identification: {\n type: formData.documentType || '',\n value: formData.documentNumber || '',\n },\n };\n\n const response = await api.subscriptions.changeCard(\n renewalState.data.subscription.id,\n changeCardRequest,\n this.changeCardToken,\n );\n\n // Update card information from response if available\n if (response.data?.card) {\n RenewalStore.setCardInformation({\n brand: response.data.card.brand,\n type: renewalState.data.cardInformation?.type || '',\n isoCountry: renewalState.data.cardInformation?.isoCountry || '',\n bank: renewalState.data.cardInformation?.bank || '',\n lastFour: response.data.card.lastFour,\n installments: renewalState.data.cardInformation?.installments || {\n installments: [],\n },\n });\n }\n\n this.completedAt = new Date().toISOString();\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n this.isCardSuccess = true;\n this.success.emit(response.data);\n } catch (error: any) {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: error.data?.error?.message as PaymentMessageE,\n };\n this.paymentError.emit(error);\n }\n }\n\n private getInitialData = () => {\n return {\n 'email': renewalState.data.subscription.customerEmail,\n 'fullName': renewalState.data.subscription.customerName,\n 'card': '',\n 'billing-country': '',\n 'billing-state': '',\n 'billing-address': '',\n 'billing-city': '',\n 'billing-zip': '',\n 'bankId': '',\n 'phoneNumber': '',\n 'countryCodePhoneNumber': '',\n 'documentType': '',\n 'documentNumber': '',\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\n private getFormattedCompletionDate = () => {\n if (!this.completedAt) {\n return '';\n }\n return formatDateTime(this.completedAt);\n };\n\n private get isSandboxMode(): boolean {\n const organizationId = renewalState.data?.organization?.id;\n return organizationId ? organizationId.startsWith('test') : false;\n }\n\n render() {\n if (!renewalState.isInitialized) {\n return <div class=\"loading\">{I18nService.translate('renewal.loading')}</div>;\n }\n\n const renderSummary = props => (\n <renewal-summary\n titleKey=\"changeCard.title\"\n totalAmount={renewalState.data.price.amount}\n subTotalAmount={renewalState.data.subscription.subTotalAmount}\n currency={renewalState.data.price.currency}\n subscriptionTitle={renewalState.data.subscription.name[0]?.text || 'Subscription'}\n subscriptionAmount={renewalState.data.subscription.amount}\n nextChargeDate={renewalState.data.subscription.nextChargeDate}\n frequency={renewalState.data.subscription.frequency}\n couponCode={renewalState.data.price.couponCode}\n discountAmount={renewalState.data.price.discountedAmount}\n discountPercentage={renewalState.data.price.discountPercentage}\n {...props}\n />\n );\n\n return (\n <>\n <rebill-processing-payment\n style={{ display: this.isCardSubmitting ? 'block' : 'none' }}\n titleKey=\"changeCard.processingTitle\"\n subtitleKey=\"changeCard.processingSubtitle\"\n />\n {this.isCardSuccess ? (\n <change-card-success\n customerName={renewalState.data.subscription.customerName}\n cardBrand={renewalState.data.cardInformation?.brand}\n cardLastFour={renewalState.data.cardInformation?.lastFour || '****'}\n paymentDate={this.getFormattedCompletionDate()}\n customerEmail={renewalState.data.subscription.customerEmail}\n />\n ) : (\n <rebill-checkout-form\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 renderForm={({ submit, errors }) => (\n <div class=\"rebill-checkout-renewal\">\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n {/* Modo sandbox para mobile - posicionado arriba del logo */}\n {this.isSandboxMode &&\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 <organization-logo organization={renewalState.data.organization} />\n\n <div class=\"checkout-form-section\">\n <user-information-static\n userInfo={{\n customerName: renewalState.data.subscription.customerName,\n customerEmail: renewalState.data.subscription.customerEmail,\n }}\n />\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'header',\n })}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'details',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '32px' }}>\n <payment-method-selector\n enabledPaymentMethods={[PAYMENT_METHOD_ENUM.CARD]}\n defaultSelected={this.currentPaymentMethod}\n errorComponent={{\n showErrorComponent: this.errorPaymentCard,\n alertTitle:\n this.errorMessage?.alertTitle ||\n I18nService.translate('changeCard.errorTitle'),\n message:\n this.errorMessage?.message ||\n I18nService.translate('changeCard.errorDescription'),\n }}\n cardError={{\n showCardInvalid: this.errorCardInvalid,\n type: null,\n }}\n country={renewalState.data.price.country}\n documentTypeError={errors?.documentType}\n documentNumberError={errors?.documentNumber}\n showDocument={\n this.cardMode === 'input' &&\n (isFieldRequired('documentType', this.currentRequiredFields) ||\n isFieldRequired('documentNumber', this.currentRequiredFields))\n }\n />\n </div>\n\n {this.cardMode === 'input' &&\n (isFieldRequired('billing-country', this.currentRequiredFields) ||\n isFieldRequired('billing-state', this.currentRequiredFields) ||\n isFieldRequired('billing-address', this.currentRequiredFields) ||\n isFieldRequired('billing-city', this.currentRequiredFields) ||\n isFieldRequired('billing-zip', this.currentRequiredFields)) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n countryOptions={this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }))}\n billingView={this.hasPrefilledAddress() ? 'form' : 'search'}\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.cardMode === 'input' &&\n isFieldRequired('phoneNumber', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone\n error={errors?.phoneNumber || errors?.isValidPhoneNumber}\n />\n </div>\n )}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderSummary({\n displayedComponents: 'summary',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <payment-button\n paymentMethod={PAYMENT_METHOD_ENUM.CARD}\n isLoading={this.isSubmitting}\n isChangeCard={true}\n country={renewalState.data.price.country}\n isDisabled={renewalState.fetchingInstallments}\n onSubmit={() => submit()}\n />\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 </div>\n {this.isSandboxMode &&\n !isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <rebill-mode-sandbox />\n )}\n <rebill-footer\n style={{\n marginTop: isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP)\n ? '24px'\n : 'auto',\n }}\n />\n </div>\n </div>\n\n {!isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div class=\"right-section\">\n <div class=\"checkout-summary-section\">\n {renderSummary({\n displayedComponents: ['header', 'details', 'summary'],\n })}\n </div>\n </div>\n )}\n </div>\n )}\n />\n )}\n </>\n );\n }\n}\n"]}
@@ -747,6 +747,13 @@ export class RebillCheckout {
747
747
  .matches(/^[a-zA-ZÀ-ÿ\u00f1\u00d1\s]{2,}\s+[a-zA-ZÀ-ÿ\u00f1\u00d1\s]{2,}$/, 'validation.fullNameInvalid'),
748
748
  otherwise: schema => schema.notRequired(),
749
749
  }),
750
+ // Asegura error en submit si el teléfono es requerido y está vacío
751
+ 'phoneNumber': yup.string().when([], {
752
+ is: () => (isFieldRequired('phoneNumber', this.currentRequiredFields) && !this.otpVerified) ||
753
+ (this.otpVerified && this.cardMode === 'input'),
754
+ then: schema => schema.required('validation.phoneRequired'),
755
+ otherwise: schema => schema.notRequired(),
756
+ }),
750
757
  'isValidPhoneNumber': yup.string().when([], {
751
758
  is: () => (isFieldRequired('phoneNumber', this.currentRequiredFields) && !this.otpVerified) ||
752
759
  (this.otpVerified && this.cardMode === 'input'),
@@ -918,8 +925,8 @@ export class RebillCheckout {
918
925
  label: country.country,
919
926
  value: country.isoCountryCode,
920
927
  }));
921
- const renderRebillSummary = (props = {}) => (h("rebill-summary", { key: '54af32d7bb0d51734d8066cd7a1c2d608948304c', totalAmount: sessionState.data.pricing.total, currency: sessionState.data.pricing.currency, itemTitle: sessionState._session?.getTitle(), itemDescription: sessionState._session?.getDescription(), itemAmount: sessionState.data.pricing.subtotal, subtotal: sessionState.data.pricing.subtotal, allowCoupon: sessionState._session?.getAllowCoupon(this.displayConfig), currentBreakpoint: this.breakpoint, planFrequency: sessionState._session?.getPlanFrequency(), planFrequencyCount: sessionState._session?.getPlanFrequencyCount(), discountType: sessionState.data.discount.discountType, discountedPercentage: sessionState.data.discount.discountedPercentage, discountDuration: sessionState.data.discount.discountDuration, discountAmount: sessionState.data.discount.discountAmount, ...props }));
922
- return (sessionState.isInitialized && (h(h.Fragment, null, this.showRefreshModal && h("rebill-modal-overlay", { key: 'f62b661e9ebd58c3d8187d05820f2e1b778cc73a' }), this.displayConfig.processingPayment && (h("rebill-processing-payment", { key: 'a2611d09bdfeb17a499b1f1c590342975cbe25cf', style: { display: this.isCardSubmitting ? 'block' : 'none' } })), this.displayConfig.successPage &&
928
+ const renderRebillSummary = (props = {}) => (h("rebill-summary", { key: '4b1db10c60e123202a604f64dc89990eace6325b', totalAmount: sessionState.data.pricing.total, currency: sessionState.data.pricing.currency, itemTitle: sessionState._session?.getTitle(), itemDescription: sessionState._session?.getDescription(), itemAmount: sessionState.data.pricing.subtotal, subtotal: sessionState.data.pricing.subtotal, allowCoupon: sessionState._session?.getAllowCoupon(this.displayConfig), currentBreakpoint: this.breakpoint, planFrequency: sessionState._session?.getPlanFrequency(), planFrequencyCount: sessionState._session?.getPlanFrequencyCount(), discountType: sessionState.data.discount.discountType, discountedPercentage: sessionState.data.discount.discountedPercentage, discountDuration: sessionState.data.discount.discountDuration, discountAmount: sessionState.data.discount.discountAmount, ...props }));
929
+ return (sessionState.isInitialized && (h(h.Fragment, null, this.showRefreshModal && h("rebill-modal-overlay", { key: '479d5fbdd896241eadf43771c112d683fdafd54b' }), this.displayConfig.processingPayment && (h("rebill-processing-payment", { key: '29f1f76748c8603b97537e62fd6c973b17fecff7', style: { display: this.isCardSubmitting ? 'block' : 'none' } })), this.displayConfig.successPage &&
923
930
  this.isPaymentApproved() &&
924
931
  sessionState.isInitialized ? (h("success-page", { typePaymentMethod: sessionState.data.paymentMethodSelected, paymentMethodName: PaymentMethodMapper.mapToAPMPaymentMethod(sessionState.data.paymentMethodSelected ||
925
932
  sessionState.data.payment?.paymentMethodType, sessionState.data?.pricing?.country), country: sessionState.data?.pricing?.country, bank: sessionState.data.payment?.paymentMethodMetadata?.bank ||
@@ -995,7 +1002,7 @@ export class RebillCheckout {
995
1002
  'billing-city': errors['billing-city'],
996
1003
  'billing-zip': errors['billing-zip'],
997
1004
  } }))), this.displayConfig.customerInformation &&
998
- isFieldRequired('phoneNumber', this.currentRequiredFields) && (h("div", { class: "animated-component fade-in" }, h("user-information-phone", { disabled: this.isSubmitting, error: errors?.phoneNumber, countryCode: sessionState.data.userInformation?.countryCode ||
1005
+ isFieldRequired('phoneNumber', this.currentRequiredFields) && (h("div", { class: "animated-component fade-in" }, h("user-information-phone", { disabled: this.isSubmitting, error: errors?.phoneNumber || errors?.isValidPhoneNumber, countryCode: sessionState.data.userInformation?.countryCode ||
999
1006
  sessionState.data.country }))))), isAPMCheckoutVisible &&
1000
1007
  (() => {
1001
1008
  const isBoleto = this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH &&