rebill-web-components-sdk 1.10.6 → 1.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -122,7 +122,10 @@ const Form = class {
122
122
  async handleBlur(event) {
123
123
  if (!event.detail || !event.detail.id)
124
124
  return;
125
- const { id, disabled } = event.detail;
125
+ const { id, value, disabled } = event.detail;
126
+ if (value !== undefined) {
127
+ this.setFieldValue(id, value);
128
+ }
126
129
  if (!disabled) {
127
130
  const error = await this.validator.validateField(id, this.formData);
128
131
  this.setFieldError(id, error);
@@ -149,7 +152,7 @@ const Form = class {
149
152
  await this.submitForm();
150
153
  };
151
154
  render() {
152
- return (h("form", { key: '52bbd73020352379d4d196e1fa6ea32dbb5bf8cc', onSubmit: e => this.handleSubmit(e), noValidate: true }, this.renderForm ? (this.renderForm({
155
+ return (h("form", { key: '16a2a9b5f7a45b4fb4a00ab9177bc61680272da8', onSubmit: e => this.handleSubmit(e), noValidate: true }, this.renderForm ? (this.renderForm({
153
156
  submit: () => this.submitForm(),
154
157
  formData: this.formData,
155
158
  errors: this.errors,
@@ -1 +1 @@
1
- {"version":3,"file":"rebill-form.entry.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"],"mappings":"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"}
1
+ {"version":3,"file":"rebill-form.entry.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"],"mappings":"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"}