rebill-web-components-sdk 1.10.10-beta.1 → 1.10.10-beta.3

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 (170) hide show
  1. package/dist/cjs/card-fields-wrapper_11.cjs.entry.js +8 -8
  2. package/dist/cjs/index-C-VTnc0I.js.map +1 -1
  3. package/dist/cjs/input-otp.cjs.entry.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/rebill-card.rebill-input-email.entry.cjs.js.map +1 -1
  6. package/dist/cjs/rebill-card_2.cjs.entry.js +78 -84
  7. package/dist/cjs/rebill-container_2.cjs.entry.js +1 -1
  8. package/dist/cjs/rebill-flex-container.cjs.entry.js +1 -1
  9. package/dist/cjs/rebill-grid-container.cjs.entry.js +1 -1
  10. package/dist/cjs/rebill-input-select.cjs.entry.js +2 -2
  11. package/dist/cjs/rebill-input-text.cjs.entry.js +2 -2
  12. package/dist/cjs/rebill-mode-sandbox_2.cjs.entry.js +1 -1
  13. package/dist/cjs/rebill-timeline-debit-day_2.cjs.entry.js +2 -2
  14. package/dist/cjs/rebill-web-components-sdk.cjs.js +1 -1
  15. package/dist/collection/components/shared/inputs/input-email/input-email.css +19 -8
  16. package/dist/collection/components/shared/inputs/input-email/input-email.js +85 -75
  17. package/dist/collection/components/shared/inputs/input-email/input-email.js.map +1 -1
  18. package/dist/collection/components/shared/inputs/input-otp/input-otp.js +2 -2
  19. package/dist/collection/components/shared/inputs/input-phone/input-phone.js +2 -2
  20. package/dist/collection/components/shared/inputs/input-select/input-select.js +2 -2
  21. package/dist/collection/components/shared/inputs/input-text/input-text.js +2 -2
  22. package/dist/collection/components/shared/layouts/generics/container.js +1 -1
  23. package/dist/collection/components/shared/layouts/generics/flex.js +1 -1
  24. package/dist/collection/components/shared/layouts/generics/grid.js +1 -1
  25. package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js +1 -1
  26. package/dist/collection/components/shared/selectable-card/selectable-card.js +2 -2
  27. package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js +4 -4
  28. package/dist/collection/components/shared/timeline/timeline-debit-day.js +1 -1
  29. package/dist/collection/components/shared/timeline/timeline-free-trial.js +1 -1
  30. package/dist/collection/utils/email-validation.js +11 -1
  31. package/dist/collection/utils/email-validation.js.map +1 -1
  32. package/dist/components/card-fields-wrapper.js +1 -1
  33. package/dist/components/change-card-success.js +1 -1
  34. package/dist/components/discount-coupon.js +1 -1
  35. package/dist/components/input-otp.js +1 -1
  36. package/dist/components/otp-component.js +1 -1
  37. package/dist/components/{p-xKyxKtdF.js → p-30DP4s-1.js} +4 -4
  38. package/dist/components/{p-xKyxKtdF.js.map → p-30DP4s-1.js.map} +1 -1
  39. package/dist/components/p-8BpuJ_V5.js.map +1 -1
  40. package/dist/components/{p-Cg8vTcm1.js → p-B28tIeVs.js} +3 -3
  41. package/dist/components/{p-Cg8vTcm1.js.map → p-B28tIeVs.js.map} +1 -1
  42. package/dist/components/{p-PtbrPqLv.js → p-B2zhJUcA.js} +4 -4
  43. package/dist/components/{p-PtbrPqLv.js.map → p-B2zhJUcA.js.map} +1 -1
  44. package/dist/components/{p-0K5ek-gN.js → p-B3jFm6B_.js} +4 -4
  45. package/dist/components/{p-0K5ek-gN.js.map → p-B3jFm6B_.js.map} +1 -1
  46. package/dist/components/{p-BGrQjFTc.js → p-BOYVvAQB.js} +3 -3
  47. package/dist/components/{p-BGrQjFTc.js.map → p-BOYVvAQB.js.map} +1 -1
  48. package/dist/components/{p-BgLkcEoy.js → p-BR18G7Pq.js} +4 -4
  49. package/dist/components/{p-BgLkcEoy.js.map → p-BR18G7Pq.js.map} +1 -1
  50. package/dist/components/{p-BwbfTRHn.js → p-Ba3VDw-H.js} +3 -3
  51. package/dist/components/{p-BwbfTRHn.js.map → p-Ba3VDw-H.js.map} +1 -1
  52. package/dist/components/{p-h01Qiljf.js → p-Ba8zuq-V.js} +3 -3
  53. package/dist/components/{p-h01Qiljf.js.map → p-Ba8zuq-V.js.map} +1 -1
  54. package/dist/components/{p-B0tiz_Xb.js → p-C7654vE1.js} +4 -4
  55. package/dist/components/{p-B0tiz_Xb.js.map → p-C7654vE1.js.map} +1 -1
  56. package/dist/components/{p-CiOrml-5.js → p-CFLYpSRc.js} +3 -3
  57. package/dist/components/{p-CiOrml-5.js.map → p-CFLYpSRc.js.map} +1 -1
  58. package/dist/components/{p-VlzBlwUc.js → p-CMVxImmw.js} +5 -5
  59. package/dist/components/{p-VlzBlwUc.js.map → p-CMVxImmw.js.map} +1 -1
  60. package/dist/components/{p-Cthy0N10.js → p-CP4gYqda.js} +5 -5
  61. package/dist/components/{p-Cthy0N10.js.map → p-CP4gYqda.js.map} +1 -1
  62. package/dist/components/{p-CSeC5LGG.js → p-Ch0U0Vmb.js} +3 -3
  63. package/dist/components/{p-CSeC5LGG.js.map → p-Ch0U0Vmb.js.map} +1 -1
  64. package/dist/components/{p-CamHvHq5.js → p-ChYpVv-Q.js} +4 -4
  65. package/dist/components/{p-CamHvHq5.js.map → p-ChYpVv-Q.js.map} +1 -1
  66. package/dist/components/{p-CtFu9Z9D.js → p-CypPi9fK.js} +4 -4
  67. package/dist/components/{p-CtFu9Z9D.js.map → p-CypPi9fK.js.map} +1 -1
  68. package/dist/components/{p-BOYEmkB-.js → p-D19UjlNC.js} +5 -5
  69. package/dist/components/{p-BOYEmkB-.js.map → p-D19UjlNC.js.map} +1 -1
  70. package/dist/components/{p-BqeCVajN.js → p-D6CVLxdH.js} +4 -4
  71. package/dist/components/{p-BqeCVajN.js.map → p-D6CVLxdH.js.map} +1 -1
  72. package/dist/components/{p-CVq9IPp4.js → p-DPB4aAQa.js} +6 -6
  73. package/dist/components/{p-CVq9IPp4.js.map → p-DPB4aAQa.js.map} +1 -1
  74. package/dist/components/{p-6IQljT42.js → p-Dhm2b0J_.js} +7 -7
  75. package/dist/components/{p-6IQljT42.js.map → p-Dhm2b0J_.js.map} +1 -1
  76. package/dist/components/{p-Dvnf-j7X.js → p-Dhs3vhG4.js} +5 -5
  77. package/dist/components/{p-Dvnf-j7X.js.map → p-Dhs3vhG4.js.map} +1 -1
  78. package/dist/components/{p-DR6_SaU9.js → p-Dp-CUwYp.js} +3 -3
  79. package/dist/components/{p-DR6_SaU9.js.map → p-Dp-CUwYp.js.map} +1 -1
  80. package/dist/components/{p-DeStKoNN.js → p-Dsrpb4rI.js} +3 -3
  81. package/dist/components/{p-DeStKoNN.js.map → p-Dsrpb4rI.js.map} +1 -1
  82. package/dist/components/{p-De7T_ng8.js → p-G3CHdt_U.js} +6 -6
  83. package/dist/components/{p-De7T_ng8.js.map → p-G3CHdt_U.js.map} +1 -1
  84. package/dist/components/{p-CN-2D26g.js → p-Pg_gixIL.js} +3 -3
  85. package/dist/components/{p-CN-2D26g.js.map → p-Pg_gixIL.js.map} +1 -1
  86. package/dist/components/{p-d40T-Ru7.js → p-fJpj0Zb5.js} +4 -4
  87. package/dist/components/{p-d40T-Ru7.js.map → p-fJpj0Zb5.js.map} +1 -1
  88. package/dist/components/{p-Czjk80qD.js → p-fXuAmVVV.js} +6 -6
  89. package/dist/components/{p-Czjk80qD.js.map → p-fXuAmVVV.js.map} +1 -1
  90. package/dist/components/{p-BMlyFJD4.js → p-iM2t1WOr.js} +3 -3
  91. package/dist/components/{p-BMlyFJD4.js.map → p-iM2t1WOr.js.map} +1 -1
  92. package/dist/components/{p-C-mZ7tbj.js → p-lrqPOj5Q.js} +3 -3
  93. package/dist/components/{p-C-mZ7tbj.js.map → p-lrqPOj5Q.js.map} +1 -1
  94. package/dist/components/{p-Bnocq8Cb.js → p-mSjgruQE.js} +4 -4
  95. package/dist/components/{p-Bnocq8Cb.js.map → p-mSjgruQE.js.map} +1 -1
  96. package/dist/components/{p-DP1RHUGR.js → p-r59n4m0a.js} +82 -90
  97. package/dist/components/p-r59n4m0a.js.map +1 -0
  98. package/dist/components/payment-method-selector.js +1 -1
  99. package/dist/components/rebill-address-form.js +1 -1
  100. package/dist/components/rebill-address-search.js +1 -1
  101. package/dist/components/rebill-address.js +1 -1
  102. package/dist/components/rebill-bank-selector.js +1 -1
  103. package/dist/components/rebill-change-card.js +19 -19
  104. package/dist/components/rebill-checkout-single-column.js +1 -1
  105. package/dist/components/rebill-checkout.js +26 -26
  106. package/dist/components/rebill-container.js +1 -1
  107. package/dist/components/rebill-flex-container.js +1 -1
  108. package/dist/components/rebill-footer.js +1 -1
  109. package/dist/components/rebill-grid-container.js +1 -1
  110. package/dist/components/rebill-input-email.js +1 -1
  111. package/dist/components/rebill-input-phone.js +1 -1
  112. package/dist/components/rebill-input-select.js +1 -1
  113. package/dist/components/rebill-input-text.js +1 -1
  114. package/dist/components/rebill-installments.js +1 -1
  115. package/dist/components/rebill-mode-sandbox-mobile.js +1 -1
  116. package/dist/components/rebill-processing-payment.js +1 -1
  117. package/dist/components/rebill-renewal.js +19 -19
  118. package/dist/components/rebill-summary.js +1 -1
  119. package/dist/components/rebill-timeline-debit-day.js +1 -1
  120. package/dist/components/rebill-timeline-free-trial.js +1 -1
  121. package/dist/components/renewal-success-page.js +1 -1
  122. package/dist/components/renewal-summary.js +1 -1
  123. package/dist/components/root-component.js +3 -3
  124. package/dist/components/selectable-card.js +1 -1
  125. package/dist/components/single-payment-method.js +1 -1
  126. package/dist/components/success-page.js +1 -1
  127. package/dist/components/user-information-phone.js +1 -1
  128. package/dist/components/user-information.js +1 -1
  129. package/dist/esm/card-fields-wrapper_11.entry.js +8 -8
  130. package/dist/esm/index-BTZ7D7jU.js.map +1 -1
  131. package/dist/esm/input-otp.entry.js +2 -2
  132. package/dist/esm/loader.js +1 -1
  133. package/dist/esm/rebill-card.rebill-input-email.entry.js.map +1 -1
  134. package/dist/esm/rebill-card_2.entry.js +78 -84
  135. package/dist/esm/rebill-container_2.entry.js +1 -1
  136. package/dist/esm/rebill-flex-container.entry.js +1 -1
  137. package/dist/esm/rebill-grid-container.entry.js +1 -1
  138. package/dist/esm/rebill-input-select.entry.js +2 -2
  139. package/dist/esm/rebill-input-text.entry.js +2 -2
  140. package/dist/esm/rebill-mode-sandbox_2.entry.js +1 -1
  141. package/dist/esm/rebill-timeline-debit-day_2.entry.js +2 -2
  142. package/dist/esm/rebill-web-components-sdk.js +1 -1
  143. package/dist/rebill-web-components-sdk/{p-2b3cb9b5.entry.js → p-11ee0328.entry.js} +2 -2
  144. package/dist/rebill-web-components-sdk/{p-24a79725.entry.js → p-130877f9.entry.js} +2 -2
  145. package/dist/rebill-web-components-sdk/{p-734696df.entry.js → p-16e7646e.entry.js} +2 -2
  146. package/dist/rebill-web-components-sdk/{p-c6c8bf05.entry.js → p-6eede717.entry.js} +2 -2
  147. package/dist/rebill-web-components-sdk/p-BTZ7D7jU.js.map +1 -1
  148. package/dist/rebill-web-components-sdk/p-b2fe4694.entry.js +2 -0
  149. package/dist/rebill-web-components-sdk/p-b2fe4694.entry.js.map +1 -0
  150. package/dist/rebill-web-components-sdk/{p-a09a0d53.entry.js → p-b350f63e.entry.js} +2 -2
  151. package/dist/rebill-web-components-sdk/{p-c38319c1.entry.js → p-be004b4f.entry.js} +2 -2
  152. package/dist/rebill-web-components-sdk/{p-894d7d00.entry.js → p-d73d7c39.entry.js} +2 -2
  153. package/dist/rebill-web-components-sdk/{p-45d1115b.entry.js → p-dd44d494.entry.js} +2 -2
  154. package/dist/rebill-web-components-sdk/{p-6ab7c3bc.entry.js → p-e54f571c.entry.js} +2 -2
  155. package/dist/rebill-web-components-sdk/rebill-card.rebill-input-email.entry.esm.js.map +1 -1
  156. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  157. package/dist/types/components/shared/inputs/input-email/input-email.d.ts +8 -17
  158. package/package.json +1 -1
  159. package/dist/components/p-DP1RHUGR.js.map +0 -1
  160. package/dist/rebill-web-components-sdk/p-8a2f420d.entry.js +0 -2
  161. package/dist/rebill-web-components-sdk/p-8a2f420d.entry.js.map +0 -1
  162. /package/dist/rebill-web-components-sdk/{p-2b3cb9b5.entry.js.map → p-11ee0328.entry.js.map} +0 -0
  163. /package/dist/rebill-web-components-sdk/{p-24a79725.entry.js.map → p-130877f9.entry.js.map} +0 -0
  164. /package/dist/rebill-web-components-sdk/{p-734696df.entry.js.map → p-16e7646e.entry.js.map} +0 -0
  165. /package/dist/rebill-web-components-sdk/{p-c6c8bf05.entry.js.map → p-6eede717.entry.js.map} +0 -0
  166. /package/dist/rebill-web-components-sdk/{p-a09a0d53.entry.js.map → p-b350f63e.entry.js.map} +0 -0
  167. /package/dist/rebill-web-components-sdk/{p-c38319c1.entry.js.map → p-be004b4f.entry.js.map} +0 -0
  168. /package/dist/rebill-web-components-sdk/{p-894d7d00.entry.js.map → p-d73d7c39.entry.js.map} +0 -0
  169. /package/dist/rebill-web-components-sdk/{p-45d1115b.entry.js.map → p-dd44d494.entry.js.map} +0 -0
  170. /package/dist/rebill-web-components-sdk/{p-6ab7c3bc.entry.js.map → p-e54f571c.entry.js.map} +0 -0
@@ -3,7 +3,7 @@ import { S as SessionStore, s as state, I as I18nService } from './p-5WvVvcYf.js
3
3
  import { g as getInstallmentDisabledPlaceholderByCurrency, a as getInstallmentPlaceholderByCurrency, E as ENUM_INSTALLMENT_MODEL, b as getInstallmentLabel, c as getRecalculatedInstallmentAmount } from './p-BXjzIWWb.js';
4
4
  import { C as COLORS_ENUM } from './p-C5Pu-n-i.js';
5
5
  import { d as defineCustomElement$3 } from './p-Np4T5oyp.js';
6
- import { d as defineCustomElement$2 } from './p-xKyxKtdF.js';
6
+ import { d as defineCustomElement$2 } from './p-30DP4s-1.js';
7
7
  import { d as defineCustomElement$1 } from './p-BaBXKrWI.js';
8
8
 
9
9
  const installmentsCss = "";
@@ -95,6 +95,6 @@ function defineCustomElement() {
95
95
  defineCustomElement();
96
96
 
97
97
  export { Installments as I, defineCustomElement as d };
98
- //# sourceMappingURL=p-Cg8vTcm1.js.map
98
+ //# sourceMappingURL=p-B28tIeVs.js.map
99
99
 
100
- //# sourceMappingURL=p-Cg8vTcm1.js.map
100
+ //# sourceMappingURL=p-B28tIeVs.js.map
@@ -1 +1 @@
1
- {"file":"p-Cg8vTcm1.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/installments/installments.css?tag=rebill-installments","src/components/checkout/payment-method-selector/card-fields/installments/installments.tsx"],"sourcesContent":["","import { Component, Element, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { ENUM_INSTALLMENT_MODEL } from '../../../../../models/enums/installment.enum';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\nimport { COLORS_ENUM } from '../../../../../utils/color-class-mapper';\nimport {\n getInstallmentDisabledPlaceholderByCurrency,\n getInstallmentLabel,\n getInstallmentPlaceholderByCurrency,\n getRecalculatedInstallmentAmount,\n} from '../../../../../utils/installment-utils';\n\n@Component({\n tag: 'rebill-installments',\n styleUrl: 'installments.css',\n shadow: false,\n})\nexport class Installments {\n @Element() el: HTMLElement;\n @Prop() error?: string;\n @State() currentValue: string | null = null;\n @State() isDisabled: boolean = false;\n @State() value: string | null = null;\n @State() placeholder: string | null = null;\n\n handleInstallments = (event: any) => {\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n return;\n }\n this.currentValue = event.detail.value;\n SessionStore.setSelectedInstallment(event.detail.value);\n };\n\n componentWillLoad() {\n SessionStore.onChange('data', () => {\n this.isDisabled = !sessionState.data.cardInformation?.installments?.isAvailableInstallments;\n this.placeholder = !sessionState.data.cardInformation?.installments?.isAvailableInstallments\n ? getInstallmentDisabledPlaceholderByCurrency(sessionState.data.pricing?.currency)\n : getInstallmentPlaceholderByCurrency(sessionState.data.pricing?.currency);\n this.value = this.isDisabled ? '' : this.value;\n\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n });\n }\n\n render() {\n return (\n <div>\n <rebill-input-select\n key={this.isDisabled.toString()}\n id=\"installments\"\n variant=\"outlined\"\n value={this.value}\n options={\n sessionState.data.cardInformation?.installments?.installments.map(installment => ({\n label: getInstallmentLabel(\n installment.installment,\n getRecalculatedInstallmentAmount(installment.installmentAmount),\n sessionState.data.pricing?.currency,\n installment.cft,\n installment.model,\n ),\n value: installment?.installment?.toString(),\n })) || []\n }\n loading={sessionState.data.fetchingInstallments}\n placeholder={this.placeholder}\n disabled={this.isDisabled}\n on-input={this.handleInstallments}\n error={I18nService.translate(this.error)}\n ></rebill-input-select>\n {sessionState.data.cardInformation?.installments?.installments.find(\n installment =>\n installment.installment ===\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n )?.model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED && (\n <rebill-typography variant=\"italic\" color={COLORS_ENUM.SECONDARY}>\n {I18nService.translate('installments.interest')}\n </rebill-typography>\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-B28tIeVs.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/installments/installments.css?tag=rebill-installments","src/components/checkout/payment-method-selector/card-fields/installments/installments.tsx"],"sourcesContent":["","import { Component, Element, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { ENUM_INSTALLMENT_MODEL } from '../../../../../models/enums/installment.enum';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\nimport { COLORS_ENUM } from '../../../../../utils/color-class-mapper';\nimport {\n getInstallmentDisabledPlaceholderByCurrency,\n getInstallmentLabel,\n getInstallmentPlaceholderByCurrency,\n getRecalculatedInstallmentAmount,\n} from '../../../../../utils/installment-utils';\n\n@Component({\n tag: 'rebill-installments',\n styleUrl: 'installments.css',\n shadow: false,\n})\nexport class Installments {\n @Element() el: HTMLElement;\n @Prop() error?: string;\n @State() currentValue: string | null = null;\n @State() isDisabled: boolean = false;\n @State() value: string | null = null;\n @State() placeholder: string | null = null;\n\n handleInstallments = (event: any) => {\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n return;\n }\n this.currentValue = event.detail.value;\n SessionStore.setSelectedInstallment(event.detail.value);\n };\n\n componentWillLoad() {\n SessionStore.onChange('data', () => {\n this.isDisabled = !sessionState.data.cardInformation?.installments?.isAvailableInstallments;\n this.placeholder = !sessionState.data.cardInformation?.installments?.isAvailableInstallments\n ? getInstallmentDisabledPlaceholderByCurrency(sessionState.data.pricing?.currency)\n : getInstallmentPlaceholderByCurrency(sessionState.data.pricing?.currency);\n this.value = this.isDisabled ? '' : this.value;\n\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n });\n }\n\n render() {\n return (\n <div>\n <rebill-input-select\n key={this.isDisabled.toString()}\n id=\"installments\"\n variant=\"outlined\"\n value={this.value}\n options={\n sessionState.data.cardInformation?.installments?.installments.map(installment => ({\n label: getInstallmentLabel(\n installment.installment,\n getRecalculatedInstallmentAmount(installment.installmentAmount),\n sessionState.data.pricing?.currency,\n installment.cft,\n installment.model,\n ),\n value: installment?.installment?.toString(),\n })) || []\n }\n loading={sessionState.data.fetchingInstallments}\n placeholder={this.placeholder}\n disabled={this.isDisabled}\n on-input={this.handleInstallments}\n error={I18nService.translate(this.error)}\n ></rebill-input-select>\n {sessionState.data.cardInformation?.installments?.installments.find(\n installment =>\n installment.installment ===\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n )?.model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED && (\n <rebill-typography variant=\"italic\" color={COLORS_ENUM.SECONDARY}>\n {I18nService.translate('installments.interest')}\n </rebill-typography>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -6,8 +6,8 @@ import { d as defineCustomElement$7 } from './p-qpiLr8_-.js';
6
6
  import { d as defineCustomElement$6 } from './p-BrjNR0xv.js';
7
7
  import { d as defineCustomElement$5 } from './p-Np4T5oyp.js';
8
8
  import { d as defineCustomElement$4 } from './p-CtrJsF6L.js';
9
- import { d as defineCustomElement$3 } from './p-xKyxKtdF.js';
10
- import { d as defineCustomElement$2 } from './p-Cg8vTcm1.js';
9
+ import { d as defineCustomElement$3 } from './p-30DP4s-1.js';
10
+ import { d as defineCustomElement$2 } from './p-B28tIeVs.js';
11
11
  import { d as defineCustomElement$1 } from './p-BaBXKrWI.js';
12
12
 
13
13
  const CardFieldsWrapper = /*@__PURE__*/ proxyCustomElement(class CardFieldsWrapper extends H {
@@ -90,6 +90,6 @@ function defineCustomElement() {
90
90
  defineCustomElement();
91
91
 
92
92
  export { CardFieldsWrapper as C, defineCustomElement as d };
93
- //# sourceMappingURL=p-PtbrPqLv.js.map
93
+ //# sourceMappingURL=p-B2zhJUcA.js.map
94
94
 
95
- //# sourceMappingURL=p-PtbrPqLv.js.map
95
+ //# sourceMappingURL=p-B2zhJUcA.js.map
@@ -1 +1 @@
1
- {"file":"p-PtbrPqLv.js","mappings":";;;;;;;;;;;;MAUa,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;AACpB,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;AACnB,IAAA,YAAY;AACZ,IAAA,SAAS;IACjB,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,EACnE,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,SAAS,EAAE,IAAI,CAAC,SAAS,EAAI,CAAA,EACzC,CAAC,YAAY,CAAC,aAAa;YAC1BC,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,sBAAsB,CAAC,IAAI;AACxE,YAAAA,KAAY,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,KACtE,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAAI,CACvD,EACF,IAAI,CAAC,YAAY,KAChB,4EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC7C,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.tsx"],"sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../../models';\nimport { renewalState } from '../../../../store/renewal.store';\nimport { sessionState } from '../../../../store/session.store';\n\n@Component({\n tag: 'card-fields-wrapper',\n shadow: false,\n})\nexport class CardFieldsWrapper {\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() documentNumberError?: string;\n @Prop() showDocument?: boolean;\n @Prop() customCSS?: string;\n render() {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <card-iframe customCSS={this.customCSS} />\n {!renewalState.isInitialized &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 && (\n <rebill-installments error={this.installmentsError} />\n )}\n {this.showDocument && (\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n />\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-B2zhJUcA.js","mappings":";;;;;;;;;;;;MAUa,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;AACpB,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;AACnB,IAAA,YAAY;AACZ,IAAA,SAAS;IACjB,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,EACnE,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,SAAS,EAAE,IAAI,CAAC,SAAS,EAAI,CAAA,EACzC,CAAC,YAAY,CAAC,aAAa;YAC1BC,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,sBAAsB,CAAC,IAAI;AACxE,YAAAA,KAAY,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,KACtE,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAAI,CACvD,EACF,IAAI,CAAC,YAAY,KAChB,4EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC7C,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.tsx"],"sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../../models';\nimport { renewalState } from '../../../../store/renewal.store';\nimport { sessionState } from '../../../../store/session.store';\n\n@Component({\n tag: 'card-fields-wrapper',\n shadow: false,\n})\nexport class CardFieldsWrapper {\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() documentNumberError?: string;\n @Prop() showDocument?: boolean;\n @Prop() customCSS?: string;\n render() {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <card-iframe customCSS={this.customCSS} />\n {!renewalState.isInitialized &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 && (\n <rebill-installments error={this.installmentsError} />\n )}\n {this.showDocument && (\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n />\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -107,14 +107,14 @@ const InputOtp = /*@__PURE__*/ proxyCustomElement(class InputOtp extends H {
107
107
  }
108
108
  };
109
109
  render() {
110
- return (h("div", { key: '8f324c2d6a73de5de5b83d4b00632e7182ea3695', class: "otp-container" }, h("div", { key: '4a9d719f15a25cb7bb457b1e07aa2b2d214edf26', class: "email-icon" }, h("rebill-icon", { key: '8248ca0435594b7325930055f578c9188f5d12ca', name: "invite" })), h("div", { key: 'def3880f5a8ad7403e63f9f7fa2067972718fa16', class: "otp-input-container", onClick: this.handleFieldClick }, h("div", { key: '316ccdd7ffed1251fa6efbff1695b34735e54de2', class: "otp-fields" }, [0, 1, 2, 3, 4, 5].map(index => (h("div", { key: index, style: { display: 'flex', alignItems: 'center' } }, h("div", { class: `otp-field ${this.error ? 'error' : ''}` }, h("input", { type: "text", maxlength: "1", placeholder: this.placeholder, value: this.otpValue[index] || '', onInput: e => this.handleInput(e, index), onClick: () => this.handleInputClick(), onKeyDown: e => this.handleKeyDown(e, index), onPaste: e => this.handlePaste(e), onFocus: e => {
110
+ return (h("div", { key: '615be7ff9ad29a0873228f501be83d0891bc74af', class: "otp-container" }, h("div", { key: 'e03de7a45bb1673738f4ef9f416300e08852bcc6', class: "email-icon" }, h("rebill-icon", { key: 'b595dfa8ab4849e199a162a38c3eb5cc0ae8b1ac', name: "invite" })), h("div", { key: '5b790fac0488f00ff68f6cf8ce4f0ed680b9b1db', class: "otp-input-container", onClick: this.handleFieldClick }, h("div", { key: '2cd37978e718e40280387d9eac57db16f10a9c3d', class: "otp-fields" }, [0, 1, 2, 3, 4, 5].map(index => (h("div", { key: index, style: { display: 'flex', alignItems: 'center' } }, h("div", { class: `otp-field ${this.error ? 'error' : ''}` }, h("input", { type: "text", maxlength: "1", placeholder: this.placeholder, value: this.otpValue[index] || '', onInput: e => this.handleInput(e, index), onClick: () => this.handleInputClick(), onKeyDown: e => this.handleKeyDown(e, index), onPaste: e => this.handlePaste(e), onFocus: e => {
111
111
  this.el
112
112
  ?.querySelectorAll('.otp-field')
113
113
  .forEach(field => field.classList.remove('active'));
114
114
  e.target.parentElement?.classList.add('active');
115
115
  }, onBlur: e => {
116
116
  e.target.parentElement?.classList.remove('active');
117
- } })), index === 2 && h("div", { class: "otp-separator" }, "-")))))), this.error && h("div", { key: '27f7bd5e8d35b95867e27ad8a7ec2591761f3ebd', class: "otp-error" }, this.error)));
117
+ } })), index === 2 && h("div", { class: "otp-separator" }, "-")))))), this.error && h("div", { key: 'fabee9ad77fa762f6b2e6f267d47c323bd7b88cb', class: "otp-error" }, this.error)));
118
118
  }
119
119
  static get style() { return inputOtpCss; }
120
120
  }, [256, "input-otp", {
@@ -145,6 +145,6 @@ function defineCustomElement() {
145
145
  defineCustomElement();
146
146
 
147
147
  export { InputOtp as I, defineCustomElement as d };
148
- //# sourceMappingURL=p-0K5ek-gN.js.map
148
+ //# sourceMappingURL=p-B3jFm6B_.js.map
149
149
 
150
- //# sourceMappingURL=p-0K5ek-gN.js.map
150
+ //# sourceMappingURL=p-B3jFm6B_.js.map
@@ -1 +1 @@
1
- {"file":"p-0K5ek-gN.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/inputs/input-otp/input-otp.css?tag=input-otp","src/components/shared/inputs/input-otp/input-otp.tsx"],"sourcesContent":[".otp-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n width: 100%;\n margin: 0 auto;\n}\n\n.otp-input-container {\n display: flex;\n align-items: center;\n gap: 16px;\n margin-top: 8px;\n}\n\n.otp-fields {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.otp-field {\n width: 36px;\n height: 36px;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: white;\n position: relative;\n}\n\n.otp-field.active {\n border-color: var(--rebill-color-primary-hover);\n transform: scale(1.02);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-field input {\n width: 100%;\n height: 100%;\n border: none;\n text-align: center;\n font-size: 12px;\n color: var(--rebill-color-text-primary);\n background: transparent;\n outline: none;\n transition: all 0.3s ease;\n caret-color: transparent;\n}\n\n.otp-field input {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-field input::placeholder {\n color: var(--rebill-color-text-secondary);\n transition:\n opacity 0.3s ease,\n color 0.3s ease;\n}\n\n.otp-field input:focus::placeholder {\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.otp-field {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-separator {\n font-size: 18px;\n font-weight: 500;\n color: #6b7280;\n margin: 4px;\n user-select: none;\n line-height: 1;\n display: flex;\n align-items: center;\n}\n\n.otp-error {\n color: var(--rebill-color-error);\n font-size: 14px;\n font-weight: 400;\n}\n\n.otp-field.error {\n border-color: var(--rebill-color-error);\n border-width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'input-otp',\n styleUrl: 'input-otp.css',\n shadow: false,\n})\nexport class InputOtp {\n @Element() el: HTMLElement;\n @Prop() error: string = '';\n @Prop() otp: string = '';\n @Prop() clearable: boolean = false;\n @Prop() placeholder: string = '';\n @Event() otpChange: EventEmitter<string>;\n @State() otpValue: string = '';\n\n componentWillLoad() {\n this.otpValue = this.otp;\n }\n\n componentWillUpdate() {\n if (this.otp !== this.otpValue) {\n this.otpValue = this.otp;\n }\n }\n\n private handleOtpChange(value: string) {\n this.otpValue = value;\n this.otpChange.emit(value);\n }\n\n private findFirstEmptyIndex(): number {\n for (let i = 0; i < 6; i++) {\n if (!this.otpValue[i]) {\n return i;\n }\n }\n return 5;\n }\n\n private focusField(index: number) {\n const fields = this.el?.querySelectorAll('.otp-field input');\n if (fields && fields[index]) {\n (fields[index] as HTMLInputElement).focus();\n }\n }\n\n private handleFieldClick = () => {\n const firstEmptyIndex = this.findFirstEmptyIndex();\n this.focusField(firstEmptyIndex);\n };\n\n private handleInputClick = () => {\n this.handleFieldClick();\n };\n\n private handleKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'Backspace') {\n const target = e.target as HTMLInputElement;\n // Si el campo actual está vacío y no es el primer campo, ir al anterior\n if (!target.value && index > 0) {\n e.preventDefault();\n const newValue = this.otpValue.split('');\n newValue[index - 1] = '';\n this.handleOtpChange(newValue.join(''));\n setTimeout(() => {\n this.focusField(index - 1);\n }, 0);\n } else if (target.value) {\n const newValue = this.otpValue.split('');\n newValue[index] = '';\n this.handleOtpChange(newValue.join(''));\n }\n }\n };\n\n private handleInput = (e: Event, index: number) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (!/^\\d*$/.test(value)) {\n target.value = '';\n return;\n }\n\n const newValue = this.otpValue.split('');\n newValue[index] = value;\n this.handleOtpChange(newValue.join(''));\n\n if (value && index < 5) {\n setTimeout(() => {\n this.focusField(index + 1);\n }, 0);\n }\n };\n\n private handlePaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pastedData = e.clipboardData?.getData('text/plain') || '';\n\n const numbersOnly = pastedData.replace(/\\D/g, '');\n\n if (numbersOnly.length >= 6) {\n const otpCode = numbersOnly.substring(0, 6);\n this.handleOtpChange(otpCode);\n\n this.focusField(5);\n } else if (numbersOnly.length > 0) {\n const newValue = this.otpValue.split('');\n for (let i = 0; i < Math.min(numbersOnly.length, 6); i++) {\n newValue[i] = numbersOnly[i];\n }\n this.handleOtpChange(newValue.join(''));\n\n const nextIndex = Math.min(numbersOnly.length, 5);\n this.focusField(nextIndex);\n }\n };\n\n render() {\n return (\n <div class=\"otp-container\">\n {/* Icono de sobre azul */}\n <div class=\"email-icon\">\n <rebill-icon name=\"invite\" />\n </div>\n\n {/* Campos OTP */}\n <div class=\"otp-input-container\" onClick={this.handleFieldClick}>\n <div class=\"otp-fields\">\n {[0, 1, 2, 3, 4, 5].map(index => (\n <div key={index} style={{ display: 'flex', alignItems: 'center' }}>\n <div class={`otp-field ${this.error ? 'error' : ''}`}>\n <input\n type=\"text\"\n maxlength=\"1\"\n placeholder={this.placeholder}\n value={this.otpValue[index] || ''}\n onInput={e => this.handleInput(e, index)}\n onClick={() => this.handleInputClick()}\n onKeyDown={e => this.handleKeyDown(e, index)}\n onPaste={e => this.handlePaste(e)}\n onFocus={e => {\n this.el\n ?.querySelectorAll('.otp-field')\n .forEach(field => field.classList.remove('active'));\n (e.target as HTMLElement).parentElement?.classList.add('active');\n }}\n onBlur={e => {\n (e.target as HTMLElement).parentElement?.classList.remove('active');\n }}\n />\n </div>\n {index === 2 && <div class=\"otp-separator\">-</div>}\n </div>\n ))}\n </div>\n </div>\n\n {/* Mensaje de error */}\n {this.error && <div class=\"otp-error\">{this.error}</div>}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-B3jFm6B_.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,u3CAAu3C;;MCO93C,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;;;;;;;;;IAEX,KAAK,GAAW,EAAE;IAClB,GAAG,GAAW,EAAE;IAChB,SAAS,GAAY,KAAK;IAC1B,WAAW,GAAW,EAAE;AACvB,IAAA,SAAS;IACT,QAAQ,GAAW,EAAE;IAE9B,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG;;IAG1B,mBAAmB,GAAA;QACjB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG;;;AAIpB,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGpB,mBAAmB,GAAA;AACzB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACrB,gBAAA,OAAO,CAAC;;;AAGZ,QAAA,OAAO,CAAC;;AAGF,IAAA,UAAU,CAAC,KAAa,EAAA;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;AAC5D,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,MAAM,CAAC,KAAK,CAAsB,CAAC,KAAK,EAAE;;;IAIvC,gBAAgB,GAAG,MAAK;AAC9B,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AAClC,KAAC;IAEO,gBAAgB,GAAG,MAAK;QAC9B,IAAI,CAAC,gBAAgB,EAAE;AACzB,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,CAAgB,EAAE,KAAa,KAAI;AAC1D,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;AACzB,YAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B;;YAE3C,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;gBAC9B,CAAC,CAAC,cAAc,EAAE;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,gBAAA,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC;;AACA,iBAAA,IAAI,MAAM,CAAC,KAAK,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,gBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;;AAG7C,KAAC;AAEO,IAAA,WAAW,GAAG,CAAC,CAAQ,EAAE,KAAa,KAAI;AAChD,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B;AAC3C,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;QAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,MAAM,CAAC,KAAK,GAAG,EAAE;YACjB;;QAGF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACxC,QAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK;QACvB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEvC,QAAA,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;YACtB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;aAC3B,EAAE,CAAC,CAAC;;AAET,KAAC;AAEO,IAAA,WAAW,GAAG,CAAC,CAAiB,KAAI;QAC1C,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;QAE/D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAEjD,QAAA,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AAE7B,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;;AACb,aAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;;YAE9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEvC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;;AAE9B,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EAExB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACrB,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,IAAI,EAAC,QAAQ,EAAA,CAAG,CACzB,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAA,EAC7D,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,IACpB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAC3B,WAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,EAC/D,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,aAAa,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,EAAE,CAAA,CAAE,EAAA,EAClD,CAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,GAAG,EACb,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EACjC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EACxC,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EACtC,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,EAC5C,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EACjC,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC;sBACD,gBAAgB,CAAC,YAAY;AAC9B,qBAAA,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC,CAAC,MAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClE,aAAC,EACD,MAAM,EAAE,CAAC,IAAG;gBACT,CAAC,CAAC,MAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;aACpE,GACD,CACE,EACL,KAAK,KAAK,CAAC,IAAI,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EAAA,GAAA,CAAQ,CAC9C,CACP,CAAC,CACE,CACF,EAGL,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAE,EAAA,IAAI,CAAC,KAAK,CAAO,CACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/inputs/input-otp/input-otp.css?tag=input-otp","src/components/shared/inputs/input-otp/input-otp.tsx"],"sourcesContent":[".otp-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n width: 100%;\n margin: 0 auto;\n}\n\n.otp-input-container {\n display: flex;\n align-items: center;\n gap: 16px;\n margin-top: 8px;\n}\n\n.otp-fields {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.otp-field {\n width: 36px;\n height: 36px;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: white;\n position: relative;\n}\n\n.otp-field.active {\n border-color: var(--rebill-color-primary-hover);\n transform: scale(1.02);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-field input {\n width: 100%;\n height: 100%;\n border: none;\n text-align: center;\n font-size: 12px;\n color: var(--rebill-color-text-primary);\n background: transparent;\n outline: none;\n transition: all 0.3s ease;\n caret-color: transparent;\n}\n\n.otp-field input {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-field input::placeholder {\n color: var(--rebill-color-text-secondary);\n transition:\n opacity 0.3s ease,\n color 0.3s ease;\n}\n\n.otp-field input:focus::placeholder {\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.otp-field {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.otp-separator {\n font-size: 18px;\n font-weight: 500;\n color: #6b7280;\n margin: 4px;\n user-select: none;\n line-height: 1;\n display: flex;\n align-items: center;\n}\n\n.otp-error {\n color: var(--rebill-color-error);\n font-size: 14px;\n font-weight: 400;\n}\n\n.otp-field.error {\n border-color: var(--rebill-color-error);\n border-width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'input-otp',\n styleUrl: 'input-otp.css',\n shadow: false,\n})\nexport class InputOtp {\n @Element() el: HTMLElement;\n @Prop() error: string = '';\n @Prop() otp: string = '';\n @Prop() clearable: boolean = false;\n @Prop() placeholder: string = '';\n @Event() otpChange: EventEmitter<string>;\n @State() otpValue: string = '';\n\n componentWillLoad() {\n this.otpValue = this.otp;\n }\n\n componentWillUpdate() {\n if (this.otp !== this.otpValue) {\n this.otpValue = this.otp;\n }\n }\n\n private handleOtpChange(value: string) {\n this.otpValue = value;\n this.otpChange.emit(value);\n }\n\n private findFirstEmptyIndex(): number {\n for (let i = 0; i < 6; i++) {\n if (!this.otpValue[i]) {\n return i;\n }\n }\n return 5;\n }\n\n private focusField(index: number) {\n const fields = this.el?.querySelectorAll('.otp-field input');\n if (fields && fields[index]) {\n (fields[index] as HTMLInputElement).focus();\n }\n }\n\n private handleFieldClick = () => {\n const firstEmptyIndex = this.findFirstEmptyIndex();\n this.focusField(firstEmptyIndex);\n };\n\n private handleInputClick = () => {\n this.handleFieldClick();\n };\n\n private handleKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'Backspace') {\n const target = e.target as HTMLInputElement;\n // Si el campo actual está vacío y no es el primer campo, ir al anterior\n if (!target.value && index > 0) {\n e.preventDefault();\n const newValue = this.otpValue.split('');\n newValue[index - 1] = '';\n this.handleOtpChange(newValue.join(''));\n setTimeout(() => {\n this.focusField(index - 1);\n }, 0);\n } else if (target.value) {\n const newValue = this.otpValue.split('');\n newValue[index] = '';\n this.handleOtpChange(newValue.join(''));\n }\n }\n };\n\n private handleInput = (e: Event, index: number) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (!/^\\d*$/.test(value)) {\n target.value = '';\n return;\n }\n\n const newValue = this.otpValue.split('');\n newValue[index] = value;\n this.handleOtpChange(newValue.join(''));\n\n if (value && index < 5) {\n setTimeout(() => {\n this.focusField(index + 1);\n }, 0);\n }\n };\n\n private handlePaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pastedData = e.clipboardData?.getData('text/plain') || '';\n\n const numbersOnly = pastedData.replace(/\\D/g, '');\n\n if (numbersOnly.length >= 6) {\n const otpCode = numbersOnly.substring(0, 6);\n this.handleOtpChange(otpCode);\n\n this.focusField(5);\n } else if (numbersOnly.length > 0) {\n const newValue = this.otpValue.split('');\n for (let i = 0; i < Math.min(numbersOnly.length, 6); i++) {\n newValue[i] = numbersOnly[i];\n }\n this.handleOtpChange(newValue.join(''));\n\n const nextIndex = Math.min(numbersOnly.length, 5);\n this.focusField(nextIndex);\n }\n };\n\n render() {\n return (\n <div class=\"otp-container\">\n {/* Icono de sobre azul */}\n <div class=\"email-icon\">\n <rebill-icon name=\"invite\" />\n </div>\n\n {/* Campos OTP */}\n <div class=\"otp-input-container\" onClick={this.handleFieldClick}>\n <div class=\"otp-fields\">\n {[0, 1, 2, 3, 4, 5].map(index => (\n <div key={index} style={{ display: 'flex', alignItems: 'center' }}>\n <div class={`otp-field ${this.error ? 'error' : ''}`}>\n <input\n type=\"text\"\n maxlength=\"1\"\n placeholder={this.placeholder}\n value={this.otpValue[index] || ''}\n onInput={e => this.handleInput(e, index)}\n onClick={() => this.handleInputClick()}\n onKeyDown={e => this.handleKeyDown(e, index)}\n onPaste={e => this.handlePaste(e)}\n onFocus={e => {\n this.el\n ?.querySelectorAll('.otp-field')\n .forEach(field => field.classList.remove('active'));\n (e.target as HTMLElement).parentElement?.classList.add('active');\n }}\n onBlur={e => {\n (e.target as HTMLElement).parentElement?.classList.remove('active');\n }}\n />\n </div>\n {index === 2 && <div class=\"otp-separator\">-</div>}\n </div>\n ))}\n </div>\n </div>\n\n {/* Mensaje de error */}\n {this.error && <div class=\"otp-error\">{this.error}</div>}\n </div>\n );\n }\n}\n"],"version":3}
@@ -172,7 +172,7 @@ const Timeline = /*@__PURE__*/ proxyCustomElement(class Timeline extends H {
172
172
  }
173
173
  render() {
174
174
  const events = this.buildEvents();
175
- return (h("div", { key: 'e98d65f75f58db57b8c15192ebdb0ec3988aabe2', class: "timeline-container" }, h("div", { key: 'a3a8408576290c7c988663cf3d2c4c83e55b7fc0', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
175
+ return (h("div", { key: '2cde72b516f13999861cadcdb655adbc4ee06012', class: "timeline-container" }, h("div", { key: '3b3906f2ed887a67f992fabefc40cc01ab503c1b', class: "timeline" }, events.map((event, index) => this.renderEvent(event, index === events.length - 1, index === 0, events.length)))));
176
176
  }
177
177
  static get style() { return timelineFreeTrialCss; }
178
178
  }, [256, "rebill-timeline-free-trial", {
@@ -225,6 +225,6 @@ function defineCustomElement() {
225
225
  defineCustomElement();
226
226
 
227
227
  export { Timeline as T, defineCustomElement as d };
228
- //# sourceMappingURL=p-BGrQjFTc.js.map
228
+ //# sourceMappingURL=p-BOYVvAQB.js.map
229
229
 
230
- //# sourceMappingURL=p-BGrQjFTc.js.map
230
+ //# sourceMappingURL=p-BOYVvAQB.js.map
@@ -1 +1 @@
1
- {"file":"p-BGrQjFTc.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/shared/timeline/timeline-free-trial.css?tag=rebill-timeline-free-trial","src/components/shared/timeline/timeline-free-trial.tsx"],"sourcesContent":[".timeline-container {\n width: 100%;\n margin: 0 auto;\n}\n\n.timeline {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n justify-content: space-evenly;\n}\n\n.timeline-event {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n position: relative;\n}\n\n.timeline-icon-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n gap: 4px;\n}\n.timeline-connector-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n min-height: 40px;\n}\n.timeline-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n z-index: 2;\n gap: 4px;\n}\n\n.timeline-connector-divider {\n display: block;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.event-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.discount-info {\n margin-top: 8px;\n}\n\n@media (max-width: 1024px) {\n .timeline {\n border: none;\n padding: 0;\n }\n\n .timeline-event {\n gap: 12px;\n align-items: flex-start;\n }\n\n .timeline-icon {\n width: 28px;\n height: 28px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_DISCOUNT_TYPE_ENUM } from '../../../models/enums/session.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { formatAmount } from '../../../utils/currency-formatter';\n\ninterface TimelineEvent {\n day: number;\n type: 'start' | 'reminder' | 'last' | 'renewal';\n date: string;\n title: string;\n description: string;\n icon: string;\n discountInfo?: string;\n amount?: string;\n}\n\n@Component({\n tag: 'rebill-timeline-free-trial',\n styleUrl: 'timeline-free-trial.css',\n shadow: false,\n})\nexport class Timeline {\n @State() currentLanguage: string;\n\n @Prop() trialPeriodEndsAt: string;\n @Prop() trialPeriodEndsReminderAt?: string;\n @Prop() trialPeriodDays: number;\n @Prop() subtotal: number;\n @Prop() currency: string;\n @Prop() language?: string;\n @Prop() discountApplied: boolean = false;\n @Prop() discountType: SESSION_DISCOUNT_TYPE_ENUM;\n @Prop() discountedPercentage: number = 0;\n @Prop() discountDuration: number = 0;\n @Prop() discountAmount: number = 0;\n\n private get amount() {\n return formatAmount(this.subtotal, this.currency, false);\n }\n\n private getDurationTranslation(duration: number): string {\n return duration === 1\n ? i18n.t('summary.month_one')\n : i18n.t('summary.month_other', { count: duration });\n }\n\n private get hasDiscountApplied(): boolean {\n const hasDiscountInStore = Boolean(\n sessionState.data.discount?.couponCode ||\n sessionState.data.pricing?.discountCouponCode ||\n sessionState.data.discount?.discountType ||\n (this.discountType && (this.discountedPercentage > 0 || this.discountAmount > 0)),\n );\n\n return hasDiscountInStore;\n }\n\n private getDiscountDescription(): string {\n if (!this.hasDiscountApplied) return '';\n\n const couponCode =\n sessionState.data.discount.couponCode || sessionState.data.pricing.discountCouponCode;\n const discount =\n this.discountType === SESSION_DISCOUNT_TYPE_ENUM.PERCENTAGE\n ? `${this.discountedPercentage}%`\n : formatAmount(this.discountAmount, this.currency);\n\n if (this.discountDuration) {\n return i18n.t(`summary.planDiscountDescriptionWithDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n duration: this.getDurationTranslation(this.discountDuration),\n });\n } else {\n return i18n.t(`summary.planDiscountDescriptionWithoutDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n });\n }\n }\n\n private calculateRenewalDate(): string {\n if (!this.discountDuration || !this.trialPeriodEndsAt) {\n return this.trialPeriodEndsAt;\n }\n const trialEndDate = new Date(this.trialPeriodEndsAt);\n const renewalDate = new Date(trialEndDate);\n renewalDate.setMonth(renewalDate.getMonth() + this.discountDuration);\n\n return renewalDate.toISOString();\n }\n\n componentWillLoad() {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n i18n.on('languageChanged', this.handleLanguageChange);\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n };\n\n private getDateForDay(dayNumber: string | number | null): string {\n if (typeof dayNumber === 'string') {\n const date = new Date(dayNumber);\n return (\n date.getDate().toString() +\n ' de ' +\n date.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n })\n );\n } else {\n const today = new Date();\n const targetDate = new Date(today);\n const day = dayNumber || 1;\n targetDate.setDate(today.getDate() + (day - 1));\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n }\n\n private buildEvents(): TimelineEvent[] {\n const events: TimelineEvent[] = [];\n\n events.push({\n day: 1,\n type: 'start',\n date: this.getDateForDay(null),\n title: i18n.t('timeline.dayOne'),\n description: i18n.t('timeline.startTrial', {\n count: this.trialPeriodDays,\n trialDays: this.trialPeriodDays,\n }),\n icon: 'circle-calendar',\n });\n\n const lastDayNumber = this.trialPeriodDays === 1 ? 2 : this.trialPeriodDays;\n\n const subscriptionAmount =\n this.hasDiscountApplied && this.subtotal === 0 ? '$0' : `$${this.amount}`;\n\n const lastDay: TimelineEvent = {\n day: lastDayNumber,\n type: 'last',\n date: this.getDateForDay(this.trialPeriodEndsAt),\n title: i18n.t('timeline.lastDay', { day: lastDayNumber }),\n description: i18n.t('timeline.subscriptionStart', { amount: subscriptionAmount }),\n icon: 'circle-receipt',\n discountInfo: this.hasDiscountApplied ? this.getDiscountDescription() : undefined,\n };\n\n if (this.trialPeriodEndsReminderAt) {\n if (this.trialPeriodDays === 3) {\n events.push({\n day: 2,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n } else if (this.trialPeriodDays > 3) {\n events.push({\n day: this.trialPeriodDays,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: this.trialPeriodDays - 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n }\n }\n\n events.push(lastDay);\n\n if (this.hasDiscountApplied && this.discountDuration !== null) {\n const renewalAmount = sessionState.data.pricing.planAmount;\n const renewalDate = this.calculateRenewalDate();\n\n events.push({\n day: lastDayNumber + 1,\n type: 'renewal',\n date: this.getDateForDay(renewalDate),\n title: i18n.t('timeline.subscriptionRenewal'),\n description: i18n.t('timeline.renewalAmount', {\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n }),\n icon: 'renewal',\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n });\n }\n\n return events;\n }\n\n private renderEvent(\n event: TimelineEvent,\n isLast: boolean,\n isFirst: boolean,\n totalEvents: number,\n ) {\n return (\n <div key={event.day} class=\"timeline-event\">\n <div class=\"timeline-icon-container\">\n <rebill-icon name={event.icon} style={{ marginTop: '3px' }} />\n <div class=\"timeline-connector-container\">\n {!isLast &&\n (isFirst ? (\n totalEvents === 2 ? (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ) : (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n withDot\n />\n )\n ) : (\n <rebill-vertical-divider\n color={COLORS_ENUM.TIMELINE_CONNECTOR}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ))}\n </div>\n </div>\n <div class=\"event-content\">\n <rebill-typography variant=\"subtitle-bold\">{event.title}</rebill-typography>\n <div class=\"event-date\">\n <rebill-typography variant=\"body2\">\n {`${event.date} - ${event.description}`}\n </rebill-typography>\n </div>\n {event.discountInfo && (\n <div class=\"discount-info\">\n <rebill-alert\n variant=\"filled\"\n type=\"coupon\"\n icon=\"tag-green\"\n size=\"small\"\n colorIcon={COLORS_ENUM.GREEN}\n alertTitle={event.discountInfo}\n />\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n const events = this.buildEvents();\n\n return (\n <div class=\"timeline-container\">\n <div class=\"timeline\">\n {events.map((event, index) =>\n this.renderEvent(event, index === events.length - 1, index === 0, events.length),\n )}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-BOYVvAQB.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","i18n","sessionState"],"sources":["src/components/shared/timeline/timeline-free-trial.css?tag=rebill-timeline-free-trial","src/components/shared/timeline/timeline-free-trial.tsx"],"sourcesContent":[".timeline-container {\n width: 100%;\n margin: 0 auto;\n}\n\n.timeline {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 16px;\n background: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 8px;\n justify-content: space-evenly;\n}\n\n.timeline-event {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n position: relative;\n}\n\n.timeline-icon-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n gap: 4px;\n}\n.timeline-connector-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n position: relative;\n min-height: 40px;\n}\n.timeline-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n z-index: 2;\n gap: 4px;\n}\n\n.timeline-connector-divider {\n display: block;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.event-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.discount-info {\n margin-top: 8px;\n}\n\n@media (max-width: 1024px) {\n .timeline {\n border: none;\n padding: 0;\n }\n\n .timeline-event {\n gap: 12px;\n align-items: flex-start;\n }\n\n .timeline-icon {\n width: 28px;\n height: 28px;\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport i18n from '../../../i18n/i18n.config';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SESSION_DISCOUNT_TYPE_ENUM } from '../../../models/enums/session.enum';\nimport { sessionState } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { formatAmount } from '../../../utils/currency-formatter';\n\ninterface TimelineEvent {\n day: number;\n type: 'start' | 'reminder' | 'last' | 'renewal';\n date: string;\n title: string;\n description: string;\n icon: string;\n discountInfo?: string;\n amount?: string;\n}\n\n@Component({\n tag: 'rebill-timeline-free-trial',\n styleUrl: 'timeline-free-trial.css',\n shadow: false,\n})\nexport class Timeline {\n @State() currentLanguage: string;\n\n @Prop() trialPeriodEndsAt: string;\n @Prop() trialPeriodEndsReminderAt?: string;\n @Prop() trialPeriodDays: number;\n @Prop() subtotal: number;\n @Prop() currency: string;\n @Prop() language?: string;\n @Prop() discountApplied: boolean = false;\n @Prop() discountType: SESSION_DISCOUNT_TYPE_ENUM;\n @Prop() discountedPercentage: number = 0;\n @Prop() discountDuration: number = 0;\n @Prop() discountAmount: number = 0;\n\n private get amount() {\n return formatAmount(this.subtotal, this.currency, false);\n }\n\n private getDurationTranslation(duration: number): string {\n return duration === 1\n ? i18n.t('summary.month_one')\n : i18n.t('summary.month_other', { count: duration });\n }\n\n private get hasDiscountApplied(): boolean {\n const hasDiscountInStore = Boolean(\n sessionState.data.discount?.couponCode ||\n sessionState.data.pricing?.discountCouponCode ||\n sessionState.data.discount?.discountType ||\n (this.discountType && (this.discountedPercentage > 0 || this.discountAmount > 0)),\n );\n\n return hasDiscountInStore;\n }\n\n private getDiscountDescription(): string {\n if (!this.hasDiscountApplied) return '';\n\n const couponCode =\n sessionState.data.discount.couponCode || sessionState.data.pricing.discountCouponCode;\n const discount =\n this.discountType === SESSION_DISCOUNT_TYPE_ENUM.PERCENTAGE\n ? `${this.discountedPercentage}%`\n : formatAmount(this.discountAmount, this.currency);\n\n if (this.discountDuration) {\n return i18n.t(`summary.planDiscountDescriptionWithDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n duration: this.getDurationTranslation(this.discountDuration),\n });\n } else {\n return i18n.t(`summary.planDiscountDescriptionWithoutDuration`, {\n discount: couponCode ? `${couponCode} – ${discount}` : discount,\n });\n }\n }\n\n private calculateRenewalDate(): string {\n if (!this.discountDuration || !this.trialPeriodEndsAt) {\n return this.trialPeriodEndsAt;\n }\n const trialEndDate = new Date(this.trialPeriodEndsAt);\n const renewalDate = new Date(trialEndDate);\n renewalDate.setMonth(renewalDate.getMonth() + this.discountDuration);\n\n return renewalDate.toISOString();\n }\n\n componentWillLoad() {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n i18n.on('languageChanged', this.handleLanguageChange);\n }\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = this.language || I18nService.getCurrentLanguage();\n };\n\n private getDateForDay(dayNumber: string | number | null): string {\n if (typeof dayNumber === 'string') {\n const date = new Date(dayNumber);\n return (\n date.getDate().toString() +\n ' de ' +\n date.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n })\n );\n } else {\n const today = new Date();\n const targetDate = new Date(today);\n const day = dayNumber || 1;\n targetDate.setDate(today.getDate() + (day - 1));\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n }\n\n private buildEvents(): TimelineEvent[] {\n const events: TimelineEvent[] = [];\n\n events.push({\n day: 1,\n type: 'start',\n date: this.getDateForDay(null),\n title: i18n.t('timeline.dayOne'),\n description: i18n.t('timeline.startTrial', {\n count: this.trialPeriodDays,\n trialDays: this.trialPeriodDays,\n }),\n icon: 'circle-calendar',\n });\n\n const lastDayNumber = this.trialPeriodDays === 1 ? 2 : this.trialPeriodDays;\n\n const subscriptionAmount =\n this.hasDiscountApplied && this.subtotal === 0 ? '$0' : `$${this.amount}`;\n\n const lastDay: TimelineEvent = {\n day: lastDayNumber,\n type: 'last',\n date: this.getDateForDay(this.trialPeriodEndsAt),\n title: i18n.t('timeline.lastDay', { day: lastDayNumber }),\n description: i18n.t('timeline.subscriptionStart', { amount: subscriptionAmount }),\n icon: 'circle-receipt',\n discountInfo: this.hasDiscountApplied ? this.getDiscountDescription() : undefined,\n };\n\n if (this.trialPeriodEndsReminderAt) {\n if (this.trialPeriodDays === 3) {\n events.push({\n day: 2,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n } else if (this.trialPeriodDays > 3) {\n events.push({\n day: this.trialPeriodDays,\n type: 'reminder',\n date: this.getDateForDay(this.trialPeriodEndsReminderAt),\n title: i18n.t('timeline.reminder', { day: this.trialPeriodDays - 2 }),\n description: i18n.t('timeline.lastDaysReminder', { days: 2 }),\n icon: 'bell',\n });\n }\n }\n\n events.push(lastDay);\n\n if (this.hasDiscountApplied && this.discountDuration !== null) {\n const renewalAmount = sessionState.data.pricing.planAmount;\n const renewalDate = this.calculateRenewalDate();\n\n events.push({\n day: lastDayNumber + 1,\n type: 'renewal',\n date: this.getDateForDay(renewalDate),\n title: i18n.t('timeline.subscriptionRenewal'),\n description: i18n.t('timeline.renewalAmount', {\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n }),\n icon: 'renewal',\n amount: `$${formatAmount(renewalAmount, this.currency, false)}`,\n });\n }\n\n return events;\n }\n\n private renderEvent(\n event: TimelineEvent,\n isLast: boolean,\n isFirst: boolean,\n totalEvents: number,\n ) {\n return (\n <div key={event.day} class=\"timeline-event\">\n <div class=\"timeline-icon-container\">\n <rebill-icon name={event.icon} style={{ marginTop: '3px' }} />\n <div class=\"timeline-connector-container\">\n {!isLast &&\n (isFirst ? (\n totalEvents === 2 ? (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ) : (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n withDot\n />\n )\n ) : (\n <rebill-vertical-divider\n color={COLORS_ENUM.TIMELINE_CONNECTOR}\n class=\"timeline-connector-divider\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ))}\n </div>\n </div>\n <div class=\"event-content\">\n <rebill-typography variant=\"subtitle-bold\">{event.title}</rebill-typography>\n <div class=\"event-date\">\n <rebill-typography variant=\"body2\">\n {`${event.date} - ${event.description}`}\n </rebill-typography>\n </div>\n {event.discountInfo && (\n <div class=\"discount-info\">\n <rebill-alert\n variant=\"filled\"\n type=\"coupon\"\n icon=\"tag-green\"\n size=\"small\"\n colorIcon={COLORS_ENUM.GREEN}\n alertTitle={event.discountInfo}\n />\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n const events = this.buildEvents();\n\n return (\n <div class=\"timeline-container\">\n <div class=\"timeline\">\n {events.map((event, index) =>\n this.renderEvent(event, index === events.length - 1, index === 0, events.length),\n )}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -26,11 +26,11 @@ const SelectableCard = /*@__PURE__*/ proxyCustomElement(class SelectableCard ext
26
26
  this.selectableCardClick.emit(this.cardKey);
27
27
  };
28
28
  render() {
29
- return (h("button", { key: '53bab5d8611b6b473fc5056d0e5aad0bc548dc49', class: {
29
+ return (h("button", { key: 'b2fa45aaf8dd5c5a5678080518f0e809378bc532', class: {
30
30
  'selectable-card': true,
31
31
  'selected': this.selected,
32
32
  'disabled': this.disabled,
33
- }, onClick: this.handleClick, disabled: this.disabled, part: "button", type: "button" }, h("div", { key: 'bc07f0625e6eee85d6330f23f7370b629fd86db8', class: "icon" }, h("slot", { key: '79235ed059e6abc4de536dd92eb59c94ac4fc7b5', name: "icon" })), h("span", { key: '821cea793c73041083acae37db86de5a20277c4d', class: "label" }, this.label)));
33
+ }, onClick: this.handleClick, disabled: this.disabled, part: "button", type: "button" }, h("div", { key: 'ea25c877a90ddb2def1a302106015dee606d9488', class: "icon" }, h("slot", { key: 'd46105a5771519df425a451217316e1f7f59fc1b', name: "icon" })), h("span", { key: '0d03a17125068d811421fdafc0669b5da3f659fb', class: "label" }, this.label)));
34
34
  }
35
35
  static get style() { return selectableCardCss; }
36
36
  }, [260, "selectable-card", {
@@ -55,6 +55,6 @@ function defineCustomElement() {
55
55
  defineCustomElement();
56
56
 
57
57
  export { SelectableCard as S, defineCustomElement as d };
58
- //# sourceMappingURL=p-BgLkcEoy.js.map
58
+ //# sourceMappingURL=p-BR18G7Pq.js.map
59
59
 
60
- //# sourceMappingURL=p-BgLkcEoy.js.map
60
+ //# sourceMappingURL=p-BR18G7Pq.js.map
@@ -1 +1 @@
1
- {"file":"p-BgLkcEoy.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,s/FAAs/F;;MCOngG,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;;;IAEjB,QAAQ,GAAY,KAAK;;AAEzB,IAAA,KAAK;;AAEL,IAAA,OAAO;;IAEP,QAAQ,GAAY,KAAK;AAExB,IAAA,mBAAmB;IAEpB,WAAW,GAAG,MAAK;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;;QAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE;AACL,gBAAA,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,UAAU,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA,EACD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACf,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAG,CAChB,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAE,EAAA,IAAI,CAAC,KAAK,CAAQ,CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/selectable-card/selectable-card.css?tag=selectable-card","src/components/shared/selectable-card/selectable-card.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n.selectable-card {\n border: 2px solid var(--rebill-color-border);\n background: var(--rebill-color-background);\n border-radius: 8px;\n padding: 12px 12px;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 77px;\n align-items: flex-start;\n justify-content: center;\n gap: 8px;\n cursor: pointer;\n box-shadow: none;\n outline: none;\n transition: border 0.2s;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.selectable-card.selected {\n border: 2px solid var(--rebill-color-primary);\n}\n\n.icon {\n color: var(--rebill-color-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n min-width: 0;\n}\n\n.icon ::slotted(*) {\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: center;\n max-height: 24px;\n width: auto;\n}\n\n.label {\n color: #000;\n font-size: 12px;\n font-weight: 500;\n}\n\n.selectable-card.selected .label {\n color: var(--rebill-color-primary);\n}\n\n.selectable-card.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.selectable-card.disabled:not(.selected) {\n opacity: 0.6;\n border: 2px solid #d8dadf;\n}\n\n.selectable-card.disabled:not(.selected) .icon {\n color: var(--rebill-color-neutrals-500);\n}\n\n.selectable-card.disabled.selected .label {\n color: var(--rebill-color-primary) !important;\n}\n\n.selectable-card.disabled.selected .icon {\n color: var(--rebill-color-primary) !important;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'selectable-card',\n styleUrl: 'selectable-card.css',\n shadow: false,\n})\nexport class SelectableCard {\n /** Si la tarjeta está seleccionada */\n @Prop() selected: boolean = false;\n /** Texto de la tarjeta */\n @Prop() label: string;\n /** Evento al hacer click */\n @Prop() cardKey: string;\n /** Si la tarjeta está deshabilitada */\n @Prop() disabled: boolean = false;\n\n @Event() selectableCardClick: EventEmitter<string>;\n\n private handleClick = () => {\n if (this.disabled) {\n return;\n }\n this.selectableCardClick.emit(this.cardKey);\n };\n\n render() {\n return (\n <button\n class={{\n 'selectable-card': true,\n 'selected': this.selected,\n 'disabled': this.disabled,\n }}\n onClick={this.handleClick}\n disabled={this.disabled}\n part=\"button\"\n type=\"button\"\n >\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n <span class=\"label\">{this.label}</span>\n </button>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-BR18G7Pq.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,s/FAAs/F;;MCOngG,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;;;;;;;;;IAEjB,QAAQ,GAAY,KAAK;;AAEzB,IAAA,KAAK;;AAEL,IAAA,OAAO;;IAEP,QAAQ,GAAY,KAAK;AAExB,IAAA,mBAAmB;IAEpB,WAAW,GAAG,MAAK;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;;QAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE;AACL,gBAAA,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,UAAU,EAAE,IAAI,CAAC,QAAQ;AAC1B,aAAA,EACD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACf,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAG,CAChB,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAE,EAAA,IAAI,CAAC,KAAK,CAAQ,CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/selectable-card/selectable-card.css?tag=selectable-card","src/components/shared/selectable-card/selectable-card.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n.selectable-card {\n border: 2px solid var(--rebill-color-border);\n background: var(--rebill-color-background);\n border-radius: 8px;\n padding: 12px 12px;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 77px;\n align-items: flex-start;\n justify-content: center;\n gap: 8px;\n cursor: pointer;\n box-shadow: none;\n outline: none;\n transition: border 0.2s;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.selectable-card.selected {\n border: 2px solid var(--rebill-color-primary);\n}\n\n.icon {\n color: var(--rebill-color-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n min-width: 0;\n}\n\n.icon ::slotted(*) {\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: center;\n max-height: 24px;\n width: auto;\n}\n\n.label {\n color: #000;\n font-size: 12px;\n font-weight: 500;\n}\n\n.selectable-card.selected .label {\n color: var(--rebill-color-primary);\n}\n\n.selectable-card.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.selectable-card.disabled:not(.selected) {\n opacity: 0.6;\n border: 2px solid #d8dadf;\n}\n\n.selectable-card.disabled:not(.selected) .icon {\n color: var(--rebill-color-neutrals-500);\n}\n\n.selectable-card.disabled.selected .label {\n color: var(--rebill-color-primary) !important;\n}\n\n.selectable-card.disabled.selected .icon {\n color: var(--rebill-color-primary) !important;\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'selectable-card',\n styleUrl: 'selectable-card.css',\n shadow: false,\n})\nexport class SelectableCard {\n /** Si la tarjeta está seleccionada */\n @Prop() selected: boolean = false;\n /** Texto de la tarjeta */\n @Prop() label: string;\n /** Evento al hacer click */\n @Prop() cardKey: string;\n /** Si la tarjeta está deshabilitada */\n @Prop() disabled: boolean = false;\n\n @Event() selectableCardClick: EventEmitter<string>;\n\n private handleClick = () => {\n if (this.disabled) {\n return;\n }\n this.selectableCardClick.emit(this.cardKey);\n };\n\n render() {\n return (\n <button\n class={{\n 'selectable-card': true,\n 'selected': this.selected,\n 'disabled': this.disabled,\n }}\n onClick={this.handleClick}\n disabled={this.disabled}\n part=\"button\"\n type=\"button\"\n >\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n <span class=\"label\">{this.label}</span>\n </button>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, H, createEvent, h } from './p-8BpuJ_V5.js';
2
2
  import { S as SessionStore, I as I18nService } from './p-5WvVvcYf.js';
3
3
  import { d as defineCustomElement$2 } from './p-Np4T5oyp.js';
4
- import { d as defineCustomElement$1 } from './p-xKyxKtdF.js';
4
+ import { d as defineCustomElement$1 } from './p-30DP4s-1.js';
5
5
 
6
6
  const bankSelectorCss = ".bank-selector{margin-top:16px}";
7
7
 
@@ -97,6 +97,6 @@ function defineCustomElement() {
97
97
  defineCustomElement();
98
98
 
99
99
  export { BankSelector as B, defineCustomElement as d };
100
- //# sourceMappingURL=p-BwbfTRHn.js.map
100
+ //# sourceMappingURL=p-Ba3VDw-H.js.map
101
101
 
102
- //# sourceMappingURL=p-BwbfTRHn.js.map
102
+ //# sourceMappingURL=p-Ba3VDw-H.js.map
@@ -1 +1 @@
1
- {"file":"p-BwbfTRHn.js","mappings":";;;;;AAAA,MAAM,eAAe,GAAG,iCAAiC;;MCU5C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;;IACf,KAAK,GAAW,EAAE;IAClB,qBAAqB,GAAW,EAAE;AAClC,IAAA,KAAK;IACL,QAAQ,GAAa,KAAK;IACzB,cAAc,GAAW,EAAE;IAC3B,qBAAqB,GAAW,CAAC;AACjC,IAAA,YAAY;AAEb,IAAA,6BAA6B;AAE7B,IAAA,mBAAmB,GAAG,CAAC,QAAgB,KAAI;AACjD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QACpE,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;AAE7C,KAAC;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB;;;IAIpD,gBAAgB,GAAA;QACd,IAAI,CAAC,6BAA6B,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;YAC/E,IAAI,CAAC,qBAAqB,EAAE;AAC9B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE;;;IAIxC,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK;YAC3C,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,KAAK,EAAE,IAAI,CAAC,IAAI;AACjB,SAAA,CAAC,CAAC;QAEH,MAAM,eAAe,GACnB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;cACtF,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;AAClC,cAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QAEtB,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EACxB,CAAA,CAAA,qBAAA,EAAA,EACE,EAAE,EAAC,QAAQ,EACX,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAC9D,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,MAAM,WAAW,GAAI,CAAiB,CAAC,MAAM;AAC7C,gBAAA,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;AACpC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE/C,aAAC,EACD,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,EAC1E,CAAA,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/checkout/bank-selector/bank-selector.css?tag=rebill-bank-selector","src/components/checkout/bank-selector/bank-selector.tsx"],"sourcesContent":[".bank-selector {\n margin-top: 16px;\n}\n","import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { Bank } from '../../../api/entities/checkout/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'rebill-bank-selector',\n styleUrl: 'bank-selector.css',\n shadow: false,\n})\nexport class BankSelector {\n @Prop() banks: Bank[] = [];\n @Prop() defaultSelectedBankId: string = '';\n @Prop() error?: string;\n @Prop() disabled?: boolean = false;\n @State() selectedBankId: string = '';\n @State() languageUpdateTrigger: number = 0;\n @Event() bankSelected: EventEmitter<string>;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n\n private handleBankSelection = (bankCode: string) => {\n const selectedBank = this.banks.find(bank => bank.code === bankCode);\n if (selectedBank) {\n SessionStore.setBankId(selectedBank);\n this.bankSelected.emit(selectedBank.code);\n }\n };\n\n componentWillLoad() {\n if (this.defaultSelectedBankId) {\n this.selectedBankId = this.defaultSelectedBankId;\n }\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n render() {\n if (!this.banks || this.banks.length === 0) {\n return null;\n }\n const sortedBanks = [...this.banks].sort((a, b) => a.name.localeCompare(b.name));\n\n const bankOptions = sortedBanks.map(bank => ({\n label: bank.name,\n value: bank.code,\n }));\n\n const translatedError =\n this.error && (this.error.includes('validation.') || this.error.includes('paymentErrors.'))\n ? I18nService.translate(this.error)\n : this.error || '';\n\n return (\n <div class=\"bank-selector\">\n <rebill-input-select\n id=\"bankId\"\n options={bankOptions}\n placeholder={I18nService.translate('bankSelector.placeholder')}\n error={translatedError}\n disabled={this.disabled}\n onInput={e => {\n const eventDetail = (e as CustomEvent).detail;\n if (eventDetail && eventDetail.value) {\n this.handleBankSelection(eventDetail.value);\n }\n }}\n searchable={true}\n searchPlaceholder={I18nService.translate('bankSelector.searchPlaceholder')}\n />\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-Ba3VDw-H.js","mappings":";;;;;AAAA,MAAM,eAAe,GAAG,iCAAiC;;MCU5C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;;IACf,KAAK,GAAW,EAAE;IAClB,qBAAqB,GAAW,EAAE;AAClC,IAAA,KAAK;IACL,QAAQ,GAAa,KAAK;IACzB,cAAc,GAAW,EAAE;IAC3B,qBAAqB,GAAW,CAAC;AACjC,IAAA,YAAY;AAEb,IAAA,6BAA6B;AAE7B,IAAA,mBAAmB,GAAG,CAAC,QAAgB,KAAI;AACjD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QACpE,IAAI,YAAY,EAAE;AAChB,YAAA,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;AAE7C,KAAC;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB;;;IAIpD,gBAAgB,GAAA;QACd,IAAI,CAAC,6BAA6B,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;YAC/E,IAAI,CAAC,qBAAqB,EAAE;AAC9B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE;;;IAIxC,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK;YAC3C,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,KAAK,EAAE,IAAI,CAAC,IAAI;AACjB,SAAA,CAAC,CAAC;QAEH,MAAM,eAAe,GACnB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;cACtF,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;AAClC,cAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QAEtB,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EACxB,CAAA,CAAA,qBAAA,EAAA,EACE,EAAE,EAAC,QAAQ,EACX,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAC9D,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,MAAM,WAAW,GAAI,CAAiB,CAAC,MAAM;AAC7C,gBAAA,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;AACpC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC;;AAE/C,aAAC,EACD,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,EAC1E,CAAA,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/checkout/bank-selector/bank-selector.css?tag=rebill-bank-selector","src/components/checkout/bank-selector/bank-selector.tsx"],"sourcesContent":[".bank-selector {\n margin-top: 16px;\n}\n","import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { Bank } from '../../../api/entities/checkout/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'rebill-bank-selector',\n styleUrl: 'bank-selector.css',\n shadow: false,\n})\nexport class BankSelector {\n @Prop() banks: Bank[] = [];\n @Prop() defaultSelectedBankId: string = '';\n @Prop() error?: string;\n @Prop() disabled?: boolean = false;\n @State() selectedBankId: string = '';\n @State() languageUpdateTrigger: number = 0;\n @Event() bankSelected: EventEmitter<string>;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n\n private handleBankSelection = (bankCode: string) => {\n const selectedBank = this.banks.find(bank => bank.code === bankCode);\n if (selectedBank) {\n SessionStore.setBankId(selectedBank);\n this.bankSelected.emit(selectedBank.code);\n }\n };\n\n componentWillLoad() {\n if (this.defaultSelectedBankId) {\n this.selectedBankId = this.defaultSelectedBankId;\n }\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n render() {\n if (!this.banks || this.banks.length === 0) {\n return null;\n }\n const sortedBanks = [...this.banks].sort((a, b) => a.name.localeCompare(b.name));\n\n const bankOptions = sortedBanks.map(bank => ({\n label: bank.name,\n value: bank.code,\n }));\n\n const translatedError =\n this.error && (this.error.includes('validation.') || this.error.includes('paymentErrors.'))\n ? I18nService.translate(this.error)\n : this.error || '';\n\n return (\n <div class=\"bank-selector\">\n <rebill-input-select\n id=\"bankId\"\n options={bankOptions}\n placeholder={I18nService.translate('bankSelector.placeholder')}\n error={translatedError}\n disabled={this.disabled}\n onInput={e => {\n const eventDetail = (e as CustomEvent).detail;\n if (eventDetail && eventDetail.value) {\n this.handleBankSelection(eventDetail.value);\n }\n }}\n searchable={true}\n searchPlaceholder={I18nService.translate('bankSelector.searchPlaceholder')}\n />\n </div>\n );\n }\n}\n"],"version":3}
@@ -3,7 +3,7 @@ import { a as api } from './p-D0zT4zMi.js';
3
3
  import { s as state, S as SessionStore, I as I18nService } from './p-5WvVvcYf.js';
4
4
  import { C as COLORS_ENUM } from './p-C5Pu-n-i.js';
5
5
  import { c as createCountdownTimer } from './p-bcHxwlBu.js';
6
- import { d as defineCustomElement$5 } from './p-0K5ek-gN.js';
6
+ import { d as defineCustomElement$5 } from './p-B3jFm6B_.js';
7
7
  import { d as defineCustomElement$4 } from './p-B_0TX9Sm.js';
8
8
  import { d as defineCustomElement$3 } from './p-sOHrcM75.js';
9
9
  import { d as defineCustomElement$2 } from './p-Np4T5oyp.js';
@@ -172,6 +172,6 @@ function defineCustomElement() {
172
172
  defineCustomElement();
173
173
 
174
174
  export { Otp as O, defineCustomElement as d };
175
- //# sourceMappingURL=p-h01Qiljf.js.map
175
+ //# sourceMappingURL=p-Ba8zuq-V.js.map
176
176
 
177
- //# sourceMappingURL=p-h01Qiljf.js.map
177
+ //# sourceMappingURL=p-Ba8zuq-V.js.map
@@ -1 +1 @@
1
- {"file":"p-h01Qiljf.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/otp/otp.css?tag=otp-component","src/components/checkout/otp/otp.tsx"],"sourcesContent":[".otp__otp-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n width: 100%;\n position: relative;\n margin-top: 2rem;\n}\n\n.otp__user-information {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n}\n\n.otp__otp-description-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n}\n.otp__change-email {\n cursor: pointer;\n text-decoration: underline;\n margin-left: 0;\n}\n\n.otp__change-email:hover {\n color: var(--rebill-primary-color);\n text-decoration: underline;\n}\n\n.otp__alternative {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 16px;\n margin: 32px;\n width: 100%;\n}\n\n.otp__rebill-alert {\n width: 100%;\n}\n\n.otp__guest-options {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n margin-top: auto;\n}\n\n.otp__verifying-container {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n margin: 8px 0;\n}\n\n.otp__code-resent-container rebill-typography {\n display: flex;\n line-height: 1;\n}\n\n.otp__code-resent-container rebill-icon {\n flex-shrink: 0;\n display: inline-flex;\n vertical-align: middle;\n margin-right: 8px;\n}\n\n.otp__spinner {\n width: 15px;\n height: 15px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary);\n animation: spin 1s linear infinite;\n display: inline-block;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 1024px) {\n .otp__otp-container {\n min-height: calc(100vh - 40px);\n }\n\n .otp__guest-options {\n margin-top: 32px;\n }\n}\n\n@media (min-width: 1025px) {\n .otp__otp-container {\n justify-content: flex-start;\n }\n\n .otp__guest-options {\n margin-top: auto;\n padding-bottom: 2rem;\n }\n}\n","import { Component, Event, EventEmitter, h, State } from '@stencil/core';\nimport { api } from '../../../api';\nimport { OTPVerifyResponse } from '../../../api/entities/OTP/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { createCountdownTimer } from '../../../utils/timer';\n\n@Component({\n tag: 'otp-component',\n styleUrl: 'otp.css',\n shadow: false,\n})\nexport class Otp {\n @Event() changeEmailClick: EventEmitter<void>;\n @State() timeLeft: number = 59;\n @State() isTimerRunning: boolean = false;\n @State() codeResent: boolean = false;\n @State() isVerifying: boolean = false;\n @State() otpValue: string = '';\n @Event() returnForm: EventEmitter<boolean>;\n @Event() codeVerified: EventEmitter<OTPVerifyResponse>;\n @State() error: boolean = false;\n\n private timer = createCountdownTimer({\n duration: 59,\n onTick: timeLeft => {\n this.timeLeft = timeLeft;\n },\n onComplete: () => {\n this.isTimerRunning = false;\n },\n });\n\n private messageTimer = createCountdownTimer({\n duration: 5,\n onComplete: () => {\n this.codeResent = false;\n },\n });\n\n disconnectedCallback() {\n this.timer.stop();\n }\n\n startTimer() {\n this.timer.start();\n this.isTimerRunning = true;\n }\n\n handleResendCode = async () => {\n if (!this.isTimerRunning) {\n await api.otp.generate(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n });\n this.codeResent = true;\n this.messageTimer.start();\n this.startTimer();\n\n this.error = false;\n }\n };\n\n handleOtpChange = (value: string) => {\n this.otpValue = value;\n\n if (value.length === 6) {\n this.handleVerifyOtp(value);\n this.error = false;\n }\n };\n\n handleVerifyOtp = async (otp: string) => {\n this.isVerifying = true;\n try {\n const response = await api.otp.verify(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n code: otp,\n });\n\n this.codeVerified.emit(response.data);\n SessionStore.setUserInformation({\n ...response.data.customer,\n fullName: `${response.data.customer.firstName} ${response.data.customer.lastName}`.trim(),\n phoneNumber: {\n number: response.data.customer.phoneNumbers[0].number,\n countryCode: response.data.customer.phoneNumbers[0].countryCode,\n },\n address: {\n billingAddress: {\n address: response.data.customer.addresses[0].lineOne,\n zip: response.data.customer.addresses[0].zipCode,\n city: response.data.customer.addresses[0].city,\n state: response.data.customer.addresses[0].state,\n country: response.data.customer.addresses[0].country,\n },\n },\n documentType: response.data.customer.identifications[0].type,\n documentNumber: response.data.customer.identifications[0].value,\n });\n SessionStore.setAccessToken(response.data.accessToken);\n SessionStore.setCustomerId(response.data.customer.id);\n this.otpValue = '';\n this.error = false;\n } catch (error) {\n this.error = true;\n } finally {\n this.isVerifying = false;\n }\n };\n\n render() {\n return (\n <div class=\"otp__otp-container\">\n <div class=\"otp__user-information\">\n <div class=\"otp__otp-description-container\">\n <rebill-typography variant=\"body2\" class=\"otp__otp-description\">\n {I18nService.translate('otp.description')}\n </rebill-typography>\n <rebill-typography variant=\"subtitle-bold\" class=\"otp__otp-description-digits\">\n {' '}\n <strong>{I18nService.translate('otp.descriptionDigits')}</strong>{' '}\n </rebill-typography>\n <rebill-typography variant=\"body2\" class=\"otp__otp-description-email\">\n {I18nService.translate('otp.descriptionEmail')}\n </rebill-typography>\n </div>\n <rebill-typography variant=\"body2\" class=\"otp__otp-email-line\">\n {sessionState.data.userInformation.email}{' '}\n {!sessionState.data.prefilledData?.email && (\n <span\n class=\"otp__change-email\"\n onClick={() => {\n this.otpValue = '';\n this.error = false;\n this.returnForm.emit(false);\n }}\n >\n {I18nService.translate('otp.change')}\n </span>\n )}\n </rebill-typography>\n </div>\n <input-otp\n otp={this.otpValue}\n onOtpChange={event => this.handleOtpChange(event.detail)}\n error={this.error ? I18nService.translate('otp.error') : ''}\n />\n\n {this.isVerifying && (\n <div class=\"otp__verifying-container\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.PRIMARY}>\n {I18nService.translate('otp.verifyingCode')}\n </rebill-typography>\n <div class=\"otp__spinner\"></div>\n </div>\n )}\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme={this.isTimerRunning ? 'secondary' : 'primary'}\n disabled={this.isTimerRunning}\n onClick={this.handleResendCode}\n size=\"small\"\n style={{ height: '24px', marginBottom: '8px' }}\n >\n {this.isTimerRunning\n ? `${I18nService.translate('otp.resendCodeIn')} (${this.timer.getFormattedTime()})`\n : I18nService.translate('otp.resendCode')}\n </rebill-button>\n\n {this.codeResent && (\n <div class=\"otp__code-resent-container\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREEN}>\n <rebill-icon name=\"check-radio\" />\n {I18nService.translate('otp.codeResent')}\n </rebill-typography>\n </div>\n )}\n <rebill-alert\n class=\"otp__rebill-alert\"\n type=\"secure\"\n variant=\"variant-info\"\n message={I18nService.translate('otp.infoMessage')}\n icon=\"circle-info\"\n alertTitle={I18nService.translate('otp.infoTitle')}\n colorIcon={COLORS_ENUM.PRIMARY_DARK_LIGHT}\n />\n <div class=\"otp__alternative\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK}>\n o\n </rebill-typography>\n </div>\n <div class=\"otp__guest-options\">\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme=\"secondary\"\n size=\"medium\"\n onClick={() => {\n this.otpValue = '';\n this.error = false;\n this.returnForm.emit(false);\n }}\n >\n {I18nService.translate('otp.continueAsGuest')}\n </rebill-button>\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 );\n }\n}\n"],"version":3}
1
+ {"file":"p-Ba8zuq-V.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/otp/otp.css?tag=otp-component","src/components/checkout/otp/otp.tsx"],"sourcesContent":[".otp__otp-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n width: 100%;\n position: relative;\n margin-top: 2rem;\n}\n\n.otp__user-information {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n}\n\n.otp__otp-description-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n}\n.otp__change-email {\n cursor: pointer;\n text-decoration: underline;\n margin-left: 0;\n}\n\n.otp__change-email:hover {\n color: var(--rebill-primary-color);\n text-decoration: underline;\n}\n\n.otp__alternative {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 16px;\n margin: 32px;\n width: 100%;\n}\n\n.otp__rebill-alert {\n width: 100%;\n}\n\n.otp__guest-options {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n margin-top: auto;\n}\n\n.otp__verifying-container {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n margin: 8px 0;\n}\n\n.otp__code-resent-container rebill-typography {\n display: flex;\n line-height: 1;\n}\n\n.otp__code-resent-container rebill-icon {\n flex-shrink: 0;\n display: inline-flex;\n vertical-align: middle;\n margin-right: 8px;\n}\n\n.otp__spinner {\n width: 15px;\n height: 15px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary);\n animation: spin 1s linear infinite;\n display: inline-block;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 1024px) {\n .otp__otp-container {\n min-height: calc(100vh - 40px);\n }\n\n .otp__guest-options {\n margin-top: 32px;\n }\n}\n\n@media (min-width: 1025px) {\n .otp__otp-container {\n justify-content: flex-start;\n }\n\n .otp__guest-options {\n margin-top: auto;\n padding-bottom: 2rem;\n }\n}\n","import { Component, Event, EventEmitter, h, State } from '@stencil/core';\nimport { api } from '../../../api';\nimport { OTPVerifyResponse } from '../../../api/entities/OTP/types';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport { createCountdownTimer } from '../../../utils/timer';\n\n@Component({\n tag: 'otp-component',\n styleUrl: 'otp.css',\n shadow: false,\n})\nexport class Otp {\n @Event() changeEmailClick: EventEmitter<void>;\n @State() timeLeft: number = 59;\n @State() isTimerRunning: boolean = false;\n @State() codeResent: boolean = false;\n @State() isVerifying: boolean = false;\n @State() otpValue: string = '';\n @Event() returnForm: EventEmitter<boolean>;\n @Event() codeVerified: EventEmitter<OTPVerifyResponse>;\n @State() error: boolean = false;\n\n private timer = createCountdownTimer({\n duration: 59,\n onTick: timeLeft => {\n this.timeLeft = timeLeft;\n },\n onComplete: () => {\n this.isTimerRunning = false;\n },\n });\n\n private messageTimer = createCountdownTimer({\n duration: 5,\n onComplete: () => {\n this.codeResent = false;\n },\n });\n\n disconnectedCallback() {\n this.timer.stop();\n }\n\n startTimer() {\n this.timer.start();\n this.isTimerRunning = true;\n }\n\n handleResendCode = async () => {\n if (!this.isTimerRunning) {\n await api.otp.generate(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n });\n this.codeResent = true;\n this.messageTimer.start();\n this.startTimer();\n\n this.error = false;\n }\n };\n\n handleOtpChange = (value: string) => {\n this.otpValue = value;\n\n if (value.length === 6) {\n this.handleVerifyOtp(value);\n this.error = false;\n }\n };\n\n handleVerifyOtp = async (otp: string) => {\n this.isVerifying = true;\n try {\n const response = await api.otp.verify(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n code: otp,\n });\n\n this.codeVerified.emit(response.data);\n SessionStore.setUserInformation({\n ...response.data.customer,\n fullName: `${response.data.customer.firstName} ${response.data.customer.lastName}`.trim(),\n phoneNumber: {\n number: response.data.customer.phoneNumbers[0].number,\n countryCode: response.data.customer.phoneNumbers[0].countryCode,\n },\n address: {\n billingAddress: {\n address: response.data.customer.addresses[0].lineOne,\n zip: response.data.customer.addresses[0].zipCode,\n city: response.data.customer.addresses[0].city,\n state: response.data.customer.addresses[0].state,\n country: response.data.customer.addresses[0].country,\n },\n },\n documentType: response.data.customer.identifications[0].type,\n documentNumber: response.data.customer.identifications[0].value,\n });\n SessionStore.setAccessToken(response.data.accessToken);\n SessionStore.setCustomerId(response.data.customer.id);\n this.otpValue = '';\n this.error = false;\n } catch (error) {\n this.error = true;\n } finally {\n this.isVerifying = false;\n }\n };\n\n render() {\n return (\n <div class=\"otp__otp-container\">\n <div class=\"otp__user-information\">\n <div class=\"otp__otp-description-container\">\n <rebill-typography variant=\"body2\" class=\"otp__otp-description\">\n {I18nService.translate('otp.description')}\n </rebill-typography>\n <rebill-typography variant=\"subtitle-bold\" class=\"otp__otp-description-digits\">\n {' '}\n <strong>{I18nService.translate('otp.descriptionDigits')}</strong>{' '}\n </rebill-typography>\n <rebill-typography variant=\"body2\" class=\"otp__otp-description-email\">\n {I18nService.translate('otp.descriptionEmail')}\n </rebill-typography>\n </div>\n <rebill-typography variant=\"body2\" class=\"otp__otp-email-line\">\n {sessionState.data.userInformation.email}{' '}\n {!sessionState.data.prefilledData?.email && (\n <span\n class=\"otp__change-email\"\n onClick={() => {\n this.otpValue = '';\n this.error = false;\n this.returnForm.emit(false);\n }}\n >\n {I18nService.translate('otp.change')}\n </span>\n )}\n </rebill-typography>\n </div>\n <input-otp\n otp={this.otpValue}\n onOtpChange={event => this.handleOtpChange(event.detail)}\n error={this.error ? I18nService.translate('otp.error') : ''}\n />\n\n {this.isVerifying && (\n <div class=\"otp__verifying-container\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.PRIMARY}>\n {I18nService.translate('otp.verifyingCode')}\n </rebill-typography>\n <div class=\"otp__spinner\"></div>\n </div>\n )}\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme={this.isTimerRunning ? 'secondary' : 'primary'}\n disabled={this.isTimerRunning}\n onClick={this.handleResendCode}\n size=\"small\"\n style={{ height: '24px', marginBottom: '8px' }}\n >\n {this.isTimerRunning\n ? `${I18nService.translate('otp.resendCodeIn')} (${this.timer.getFormattedTime()})`\n : I18nService.translate('otp.resendCode')}\n </rebill-button>\n\n {this.codeResent && (\n <div class=\"otp__code-resent-container\">\n <rebill-typography variant=\"subtitle2\" color={COLORS_ENUM.GREEN}>\n <rebill-icon name=\"check-radio\" />\n {I18nService.translate('otp.codeResent')}\n </rebill-typography>\n </div>\n )}\n <rebill-alert\n class=\"otp__rebill-alert\"\n type=\"secure\"\n variant=\"variant-info\"\n message={I18nService.translate('otp.infoMessage')}\n icon=\"circle-info\"\n alertTitle={I18nService.translate('otp.infoTitle')}\n colorIcon={COLORS_ENUM.PRIMARY_DARK_LIGHT}\n />\n <div class=\"otp__alternative\">\n <rebill-typography variant=\"body2\" color={COLORS_ENUM.PRIMARY_DARK}>\n o\n </rebill-typography>\n </div>\n <div class=\"otp__guest-options\">\n <rebill-button\n type=\"button\"\n variant=\"outline\"\n theme=\"secondary\"\n size=\"medium\"\n onClick={() => {\n this.otpValue = '';\n this.error = false;\n this.returnForm.emit(false);\n }}\n >\n {I18nService.translate('otp.continueAsGuest')}\n </rebill-button>\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 );\n }\n}\n"],"version":3}
@@ -4,8 +4,8 @@ import { I as I18nService, S as SessionStore, s as state } from './p-5WvVvcYf.js
4
4
  import { d as defineCustomElement$6 } from './p-sOHrcM75.js';
5
5
  import { d as defineCustomElement$5 } from './p-DjM0txaq.js';
6
6
  import { d as defineCustomElement$4 } from './p-Np4T5oyp.js';
7
- import { d as defineCustomElement$3 } from './p-DP1RHUGR.js';
8
- import { d as defineCustomElement$2 } from './p-Bnocq8Cb.js';
7
+ import { d as defineCustomElement$3 } from './p-r59n4m0a.js';
8
+ import { d as defineCustomElement$2 } from './p-mSjgruQE.js';
9
9
  import { d as defineCustomElement$1 } from './p-BaBXKrWI.js';
10
10
 
11
11
  const userInformationCss = ":host{display:block}.inputs-container{display:flex;flex-direction:column;gap:16px;width:100%}.customer-exists{display:flex;justify-content:flex-end;margin-bottom:16px}";
@@ -155,6 +155,6 @@ function defineCustomElement() {
155
155
  defineCustomElement();
156
156
 
157
157
  export { UserInformation as U, defineCustomElement as d };
158
- //# sourceMappingURL=p-B0tiz_Xb.js.map
158
+ //# sourceMappingURL=p-C7654vE1.js.map
159
159
 
160
- //# sourceMappingURL=p-B0tiz_Xb.js.map
160
+ //# sourceMappingURL=p-C7654vE1.js.map
@@ -1 +1 @@
1
- {"file":"p-B0tiz_Xb.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/user-information/user-information.css?tag=user-information","src/components/checkout/user-information/user-information.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.inputs-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n.customer-exists {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 16px;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\nimport { api } from '../../../api';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'user-information',\n styleUrl: 'user-information.css',\n shadow: false,\n})\nexport class UserInformation {\n @Prop() userInformation: {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n } = {\n email: '',\n fullName: '',\n countryCode: '',\n };\n\n @Prop() errors: {\n email?: string;\n fullName?: string;\n } | null = null;\n\n @Prop() customerExists: boolean = false;\n @Prop() disabled: boolean = false;\n @Event() onRebillAccountClick: EventEmitter<boolean>;\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 @Listen('input')\n handleInputChange(event: CustomEvent<{ id: string; value: string }>) {\n if (!event.detail) return;\n\n const { id, value } = event.detail;\n SessionStore.setUserInformation({ [id]: value });\n }\n\n @Listen('blur')\n handleBlur(event: CustomEvent<{ id: string; value: string }>) {\n if (!event.detail) return;\n\n const { id, value } = event.detail;\n SessionStore.setUserInformation({ [id]: value });\n }\n\n private getCardLabels() {\n const labels = [];\n\n if (sessionState.data.prefilledData.email) {\n labels.push({\n label: I18nService.translate('userInformation.emailPlaceholder'),\n value: sessionState.data.prefilledData.email,\n });\n SessionStore.setUserInformation({\n ...sessionState.data.userInformation,\n email: sessionState.data.prefilledData.email,\n });\n }\n\n if (sessionState.data.prefilledData.fullName) {\n labels.push({\n label: I18nService.translate('userInformation.fullNamePlaceholder'),\n value: sessionState.data.prefilledData.fullName,\n });\n SessionStore.setUserInformation({\n ...sessionState.data.userInformation,\n fullName: sessionState.data.prefilledData.fullName,\n });\n }\n\n return labels;\n }\n private async handleRebillAccountClick() {\n api.otp.generate(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n });\n this.onRebillAccountClick.emit(true);\n }\n\n private renderInputs() {\n const hasPrefilledEmail = sessionState.data.prefilledData.email;\n const hasPrefilledName = sessionState.data.prefilledData.fullName;\n\n const inputs = [];\n\n if (!hasPrefilledEmail) {\n inputs.push(\n <rebill-input-email\n id=\"email\"\n variant=\"floating\"\n label={I18nService.translate('userInformation.emailPlaceholder')}\n placeholder={I18nService.translate('userInformation.emailPlaceholder')}\n left-icon=\"email\"\n clearable={true}\n disabled={this.disabled}\n error={this.translateError(this.errors?.email)}\n />,\n );\n }\n\n if (!hasPrefilledName) {\n inputs.push(\n <rebill-input-text\n id=\"fullName\"\n variant=\"floating\"\n label={I18nService.translate('userInformation.fullNamePlaceholder')}\n placeholder={I18nService.translate('userInformation.fullNamePlaceholder')}\n disabled={this.disabled}\n error={this.translateError(this.errors?.fullName)}\n />,\n );\n }\n\n return inputs.length > 0 ? (\n <div\n class=\"inputs-container\"\n style={{\n marginTop: inputs.length > 0 && (hasPrefilledEmail || hasPrefilledName) ? '1rem' : '0',\n }}\n >\n {inputs}\n </div>\n ) : null;\n }\n\n render() {\n const customerExistsButton = (\n <div class=\"customer-exists\">\n <rebill-button\n style={{\n visibility: this.customerExists ? 'visible' : 'hidden',\n opacity: this.customerExists ? '1' : '0',\n transition: 'opacity 0.3s ease-in-out',\n }}\n variant=\"text\"\n size=\"small\"\n onClick={() => this.handleRebillAccountClick()}\n icon=\"lock\"\n >\n {I18nService.translate('userInformation.rebillAccount')}\n <rebill-icon name=\"arrow-right\" />\n </rebill-button>\n </div>\n );\n\n const hasPrefilledEmail = sessionState.data.prefilledData.email;\n const hasPrefilledName = sessionState.data.prefilledData.fullName;\n const hasAnyPrefilled = hasPrefilledEmail || hasPrefilledName;\n\n return (\n <Host>\n {customerExistsButton}\n {hasAnyPrefilled && (\n <rebill-card\n cardTitle={I18nService.translate('userInformation.personalInformation')}\n cardLabels={this.getCardLabels()}\n />\n )}\n {this.renderInputs()}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-C7654vE1.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/user-information/user-information.css?tag=user-information","src/components/checkout/user-information/user-information.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.inputs-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n.customer-exists {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 16px;\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\nimport { api } from '../../../api';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'user-information',\n styleUrl: 'user-information.css',\n shadow: false,\n})\nexport class UserInformation {\n @Prop() userInformation: {\n email?: string;\n fullName?: string;\n countryCode?: string;\n phoneNumber?: {\n number: string;\n countryCode: string;\n };\n } = {\n email: '',\n fullName: '',\n countryCode: '',\n };\n\n @Prop() errors: {\n email?: string;\n fullName?: string;\n } | null = null;\n\n @Prop() customerExists: boolean = false;\n @Prop() disabled: boolean = false;\n @Event() onRebillAccountClick: EventEmitter<boolean>;\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 @Listen('input')\n handleInputChange(event: CustomEvent<{ id: string; value: string }>) {\n if (!event.detail) return;\n\n const { id, value } = event.detail;\n SessionStore.setUserInformation({ [id]: value });\n }\n\n @Listen('blur')\n handleBlur(event: CustomEvent<{ id: string; value: string }>) {\n if (!event.detail) return;\n\n const { id, value } = event.detail;\n SessionStore.setUserInformation({ [id]: value });\n }\n\n private getCardLabels() {\n const labels = [];\n\n if (sessionState.data.prefilledData.email) {\n labels.push({\n label: I18nService.translate('userInformation.emailPlaceholder'),\n value: sessionState.data.prefilledData.email,\n });\n SessionStore.setUserInformation({\n ...sessionState.data.userInformation,\n email: sessionState.data.prefilledData.email,\n });\n }\n\n if (sessionState.data.prefilledData.fullName) {\n labels.push({\n label: I18nService.translate('userInformation.fullNamePlaceholder'),\n value: sessionState.data.prefilledData.fullName,\n });\n SessionStore.setUserInformation({\n ...sessionState.data.userInformation,\n fullName: sessionState.data.prefilledData.fullName,\n });\n }\n\n return labels;\n }\n private async handleRebillAccountClick() {\n api.otp.generate(sessionState.data.sessionId, {\n email: sessionState.data.userInformation.email,\n });\n this.onRebillAccountClick.emit(true);\n }\n\n private renderInputs() {\n const hasPrefilledEmail = sessionState.data.prefilledData.email;\n const hasPrefilledName = sessionState.data.prefilledData.fullName;\n\n const inputs = [];\n\n if (!hasPrefilledEmail) {\n inputs.push(\n <rebill-input-email\n id=\"email\"\n variant=\"floating\"\n label={I18nService.translate('userInformation.emailPlaceholder')}\n placeholder={I18nService.translate('userInformation.emailPlaceholder')}\n left-icon=\"email\"\n clearable={true}\n disabled={this.disabled}\n error={this.translateError(this.errors?.email)}\n />,\n );\n }\n\n if (!hasPrefilledName) {\n inputs.push(\n <rebill-input-text\n id=\"fullName\"\n variant=\"floating\"\n label={I18nService.translate('userInformation.fullNamePlaceholder')}\n placeholder={I18nService.translate('userInformation.fullNamePlaceholder')}\n disabled={this.disabled}\n error={this.translateError(this.errors?.fullName)}\n />,\n );\n }\n\n return inputs.length > 0 ? (\n <div\n class=\"inputs-container\"\n style={{\n marginTop: inputs.length > 0 && (hasPrefilledEmail || hasPrefilledName) ? '1rem' : '0',\n }}\n >\n {inputs}\n </div>\n ) : null;\n }\n\n render() {\n const customerExistsButton = (\n <div class=\"customer-exists\">\n <rebill-button\n style={{\n visibility: this.customerExists ? 'visible' : 'hidden',\n opacity: this.customerExists ? '1' : '0',\n transition: 'opacity 0.3s ease-in-out',\n }}\n variant=\"text\"\n size=\"small\"\n onClick={() => this.handleRebillAccountClick()}\n icon=\"lock\"\n >\n {I18nService.translate('userInformation.rebillAccount')}\n <rebill-icon name=\"arrow-right\" />\n </rebill-button>\n </div>\n );\n\n const hasPrefilledEmail = sessionState.data.prefilledData.email;\n const hasPrefilledName = sessionState.data.prefilledData.fullName;\n const hasAnyPrefilled = hasPrefilledEmail || hasPrefilledName;\n\n return (\n <Host>\n {customerExistsButton}\n {hasAnyPrefilled && (\n <rebill-card\n cardTitle={I18nService.translate('userInformation.personalInformation')}\n cardLabels={this.getCardLabels()}\n />\n )}\n {this.renderInputs()}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, H, h, Host } from './p-8BpuJ_V5.js';
2
2
  import { S as SessionStore, I as I18nService } from './p-5WvVvcYf.js';
3
3
  import { d as defineCustomElement$2 } from './p-Np4T5oyp.js';
4
- import { d as defineCustomElement$1 } from './p-CtFu9Z9D.js';
4
+ import { d as defineCustomElement$1 } from './p-CypPi9fK.js';
5
5
 
6
6
  const userInformationCss = ":host{display:block}.inputs-container{display:flex;flex-direction:column;gap:16px;width:100%}.customer-exists{display:flex;justify-content:flex-end;margin-bottom:16px}";
7
7
 
@@ -101,6 +101,6 @@ function defineCustomElement() {
101
101
  defineCustomElement();
102
102
 
103
103
  export { UserInformationPhone as U, defineCustomElement as d };
104
- //# sourceMappingURL=p-CiOrml-5.js.map
104
+ //# sourceMappingURL=p-CFLYpSRc.js.map
105
105
 
106
- //# sourceMappingURL=p-CiOrml-5.js.map
106
+ //# sourceMappingURL=p-CFLYpSRc.js.map