rebill-web-components-sdk 1.8.32 → 1.8.34-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/dist/cjs/apm-checkout_19.cjs.entry.js +12 -12
  2. package/dist/cjs/card-identification_5.cjs.entry.js +8 -8
  3. package/dist/cjs/collapsible-card.cjs.entry.js +1 -1
  4. package/dist/cjs/discount-coupon.rebill-divider.entry.cjs.js.map +1 -0
  5. package/dist/cjs/discount-coupon_2.cjs.entry.js +157 -0
  6. package/dist/cjs/index-C-VTnc0I.js.map +1 -1
  7. package/dist/cjs/input-otp.cjs.entry.js +2 -2
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.cjs.js.map +1 -1
  10. package/dist/cjs/organization-logo_4.cjs.entry.js +3 -3
  11. package/dist/cjs/otp-component_7.cjs.entry.js +8 -8
  12. package/dist/cjs/rebill-alert.cjs.entry.js +2 -2
  13. package/dist/cjs/rebill-card-carousel.cjs.entry.js +1 -1
  14. package/dist/cjs/rebill-card.cjs.entry.js +1 -1
  15. package/dist/cjs/rebill-container_2.cjs.entry.js +2 -2
  16. package/dist/cjs/rebill-flex-container.cjs.entry.js +1 -1
  17. package/dist/cjs/rebill-form.cjs.entry.js +1 -1
  18. package/dist/cjs/rebill-grid-container.cjs.entry.js +1 -1
  19. package/dist/cjs/rebill-input-select.cjs.entry.js +2 -2
  20. package/dist/cjs/rebill-input-text.cjs.entry.js +2 -2
  21. package/dist/cjs/rebill-renewal.cjs.entry.js +32 -12
  22. package/dist/cjs/rebill-renewal.entry.cjs.js.map +1 -1
  23. package/dist/cjs/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.cjs.js.map +1 -0
  24. package/dist/cjs/{discount-coupon_3.cjs.entry.js → rebill-timeline-debit-day_2.cjs.entry.js} +3 -117
  25. package/dist/cjs/rebill-vertical-divider.cjs.entry.js +1 -1
  26. package/dist/cjs/rebill-web-components-sdk.cjs.js +1 -1
  27. package/dist/cjs/renewal-success-page.renewal-summary.entry.cjs.js.map +1 -1
  28. package/dist/cjs/renewal-success-page_2.cjs.entry.js +41 -13
  29. package/dist/cjs/{renewal.store-C9AesGY1.js → renewal.store-BaH9Id4E.js} +5 -2
  30. package/dist/cjs/renewal.store-BaH9Id4E.js.map +1 -0
  31. package/dist/cjs/root-component.cjs.entry.js +1 -1
  32. package/dist/collection/components/checkout/discount-coupon/discount-coupon.css +4 -0
  33. package/dist/collection/components/checkout/discount-coupon/discount-coupon.js +104 -4
  34. package/dist/collection/components/checkout/discount-coupon/discount-coupon.js.map +1 -1
  35. package/dist/collection/components/checkout/otp/otp.js +4 -4
  36. package/dist/collection/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.js +2 -2
  37. package/dist/collection/components/checkout/payment-method-selector/card-fields/identification/identification.js +1 -1
  38. package/dist/collection/components/checkout/payment-method-selector/card-fields/iframe/CardIframe.js +2 -2
  39. package/dist/collection/components/checkout/payment-method-selector/card-fields/iframe/skeleton/CardSkeleton.js +1 -1
  40. package/dist/collection/components/checkout/payment-method-selector/card-fields/installments/installments.js +2 -2
  41. package/dist/collection/components/checkout/rebill-footer/rebill-footer.css +1 -1
  42. package/dist/collection/components/checkout/rebill-footer/rebill-footer.js +1 -1
  43. package/dist/collection/components/checkout/user-information/user-information-phone.js +1 -1
  44. package/dist/collection/components/checkout/user-information/user-information.js +3 -3
  45. package/dist/collection/components/renewal/rebill-renewal.js +31 -11
  46. package/dist/collection/components/renewal/rebill-renewal.js.map +1 -1
  47. package/dist/collection/components/renewal/renewal-success-page/renewal-success-page.js +2 -2
  48. package/dist/collection/components/renewal/renewal-summary/renewal-summary.js +101 -16
  49. package/dist/collection/components/renewal/renewal-summary/renewal-summary.js.map +1 -1
  50. package/dist/collection/components/root-component/root-component.js +1 -1
  51. package/dist/collection/components/shared/alert/alert.js +2 -2
  52. package/dist/collection/components/shared/card/card.js +1 -1
  53. package/dist/collection/components/shared/card-carousel/card-carousel.js +1 -1
  54. package/dist/collection/components/shared/collapsible-card/collapsible-card.js +1 -1
  55. package/dist/collection/components/shared/divider/divider.js +1 -1
  56. package/dist/collection/components/shared/divider/vertical-divider.js +1 -1
  57. package/dist/collection/components/shared/form/form.js +1 -1
  58. package/dist/collection/components/shared/inputs/input-checkbox/input-checkbox.js +1 -1
  59. package/dist/collection/components/shared/inputs/input-combo/input-combo.js +1 -1
  60. package/dist/collection/components/shared/inputs/input-otp/input-otp.js +2 -2
  61. package/dist/collection/components/shared/inputs/input-phone/input-phone.js +2 -2
  62. package/dist/collection/components/shared/inputs/input-select/input-select.js +2 -2
  63. package/dist/collection/components/shared/inputs/input-text/input-text.js +2 -2
  64. package/dist/collection/components/shared/layouts/custom/single-column/checkout-single-column.js +1 -1
  65. package/dist/collection/components/shared/layouts/generics/container.js +1 -1
  66. package/dist/collection/components/shared/layouts/generics/flex.js +1 -1
  67. package/dist/collection/components/shared/layouts/generics/grid.js +1 -1
  68. package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js +1 -1
  69. package/dist/collection/components/shared/selectable-card/selectable-card.js +2 -2
  70. package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js +4 -4
  71. package/dist/collection/components/shared/timeline/timeline-debit-day.js +1 -1
  72. package/dist/collection/components/shared/timeline/timeline-free-trial.js +1 -1
  73. package/dist/collection/models/renewal.model.js.map +1 -1
  74. package/dist/collection/store/renewal.store.js +3 -0
  75. package/dist/collection/store/renewal.store.js.map +1 -1
  76. package/dist/components/apm-checkout.js +1 -1
  77. package/dist/components/bank-transfer.js +1 -1
  78. package/dist/components/card-fields-wrapper.js +1 -1
  79. package/dist/components/card-identification.js +1 -1
  80. package/dist/components/card-iframe.js +1 -1
  81. package/dist/components/card-skeleton.js +1 -1
  82. package/dist/components/collapsible-card.js +1 -1
  83. package/dist/components/discount-coupon.js +1 -1
  84. package/dist/components/input-otp.js +1 -1
  85. package/dist/components/otp-component.js +1 -1
  86. package/dist/components/{p-BbLfqjb0.js → p-3K2fnS0h.js} +5 -5
  87. package/dist/components/{p-BbLfqjb0.js.map → p-3K2fnS0h.js.map} +1 -1
  88. package/dist/components/p-8BpuJ_V5.js.map +1 -1
  89. package/dist/components/{p-Dm2xJSTe.js → p-B0QvmxUI.js} +3 -3
  90. package/dist/components/{p-Dm2xJSTe.js.map → p-B0QvmxUI.js.map} +1 -1
  91. package/dist/components/{p-CYhj6VLQ.js → p-B544NesK.js} +4 -4
  92. package/dist/components/{p-CYhj6VLQ.js.map → p-B544NesK.js.map} +1 -1
  93. package/dist/components/{p-mA3Sj5fj.js → p-B7uE6iBd.js} +11 -11
  94. package/dist/components/{p-mA3Sj5fj.js.map → p-B7uE6iBd.js.map} +1 -1
  95. package/dist/components/{p-1ZvL9CLG.js → p-BLbS7nF7.js} +3 -3
  96. package/dist/components/{p-1ZvL9CLG.js.map → p-BLbS7nF7.js.map} +1 -1
  97. package/dist/components/{p-qI3t-gYu.js → p-BZYd-So1.js} +4 -4
  98. package/dist/components/{p-qI3t-gYu.js.map → p-BZYd-So1.js.map} +1 -1
  99. package/dist/components/{p-tTqPr5zM.js → p-BeVdyYff.js} +6 -6
  100. package/dist/components/{p-tTqPr5zM.js.map → p-BeVdyYff.js.map} +1 -1
  101. package/dist/components/{p-1I-sUD5D.js → p-BuNsfNGm.js} +6 -6
  102. package/dist/components/{p-1I-sUD5D.js.map → p-BuNsfNGm.js.map} +1 -1
  103. package/dist/components/{p-BV_MHtDc.js → p-C0LGxeng.js} +3 -3
  104. package/dist/components/{p-BV_MHtDc.js.map → p-C0LGxeng.js.map} +1 -1
  105. package/dist/components/{p-DvXuQN4U.js → p-CD0TNzOh.js} +12 -12
  106. package/dist/components/{p-DvXuQN4U.js.map → p-CD0TNzOh.js.map} +1 -1
  107. package/dist/components/{p-wjfhDzgd.js → p-CKYowY5T.js} +4 -4
  108. package/dist/components/{p-wjfhDzgd.js.map → p-CKYowY5T.js.map} +1 -1
  109. package/dist/components/{p-ChnuJbVe.js → p-C_S6-o9t.js} +10 -10
  110. package/dist/components/{p-ChnuJbVe.js.map → p-C_S6-o9t.js.map} +1 -1
  111. package/dist/components/{p-CKiwr2yo.js → p-CajUouzQ.js} +3 -3
  112. package/dist/components/{p-CKiwr2yo.js.map → p-CajUouzQ.js.map} +1 -1
  113. package/dist/components/{p-fEiok6NF.js → p-CfUbJq8-.js} +3 -3
  114. package/dist/components/{p-fEiok6NF.js.map → p-CfUbJq8-.js.map} +1 -1
  115. package/dist/components/{p-BWkW7_Hh.js → p-CisP549A.js} +36 -9
  116. package/dist/components/p-CisP549A.js.map +1 -0
  117. package/dist/components/{p-DiNW75Kd.js → p-CmYsenWG.js} +3 -3
  118. package/dist/components/{p-DiNW75Kd.js.map → p-CmYsenWG.js.map} +1 -1
  119. package/dist/components/{p-QzWBUSLD.js → p-CneaXzeq.js} +4 -4
  120. package/dist/components/{p-QzWBUSLD.js.map → p-CneaXzeq.js.map} +1 -1
  121. package/dist/components/{p-Di8WeTd9.js → p-CuX2faVH.js} +4 -4
  122. package/dist/components/{p-Di8WeTd9.js.map → p-CuX2faVH.js.map} +1 -1
  123. package/dist/components/{p-h8TZeiqt.js → p-D0AmEJnp.js} +6 -6
  124. package/dist/components/{p-h8TZeiqt.js.map → p-D0AmEJnp.js.map} +1 -1
  125. package/dist/components/{p-B1BCKuQ0.js → p-D1lAYXxG.js} +8 -8
  126. package/dist/components/{p-B1BCKuQ0.js.map → p-D1lAYXxG.js.map} +1 -1
  127. package/dist/components/{p-BnBTbmTe.js → p-DA0QxWuE.js} +4 -4
  128. package/dist/components/{p-BnBTbmTe.js.map → p-DA0QxWuE.js.map} +1 -1
  129. package/dist/components/{p-CpXk4UfE.js → p-DBi6K19S.js} +5 -5
  130. package/dist/components/{p-CpXk4UfE.js.map → p-DBi6K19S.js.map} +1 -1
  131. package/dist/components/{p-gj5jUg6C.js → p-DDp9qjAz.js} +3 -3
  132. package/dist/components/{p-gj5jUg6C.js.map → p-DDp9qjAz.js.map} +1 -1
  133. package/dist/components/{p-DlrQ_kVv.js → p-DIILFLsN.js} +5 -5
  134. package/dist/components/{p-DlrQ_kVv.js.map → p-DIILFLsN.js.map} +1 -1
  135. package/dist/components/{p-CNBrNMEa.js → p-DKn8wDv6.js} +3 -3
  136. package/dist/components/{p-CNBrNMEa.js.map → p-DKn8wDv6.js.map} +1 -1
  137. package/dist/components/{p-D6yu2OYw.js → p-DPUz_1Ev.js} +5 -5
  138. package/dist/components/{p-D6yu2OYw.js.map → p-DPUz_1Ev.js.map} +1 -1
  139. package/dist/components/{p-BL08tUBX.js → p-DRTzT9ks.js} +3 -3
  140. package/dist/components/{p-BL08tUBX.js.map → p-DRTzT9ks.js.map} +1 -1
  141. package/dist/components/{p-DSFlA7FF.js → p-DaS8xGPM.js} +5 -5
  142. package/dist/components/{p-DSFlA7FF.js.map → p-DaS8xGPM.js.map} +1 -1
  143. package/dist/components/{p-DZWQyp55.js → p-DgRM4z7g.js} +3 -3
  144. package/dist/components/{p-DZWQyp55.js.map → p-DgRM4z7g.js.map} +1 -1
  145. package/dist/components/{p-DU4kUISl.js → p-Dm8Dxmer.js} +5 -5
  146. package/dist/components/{p-DU4kUISl.js.map → p-Dm8Dxmer.js.map} +1 -1
  147. package/dist/components/{p-DrAiGSzG.js → p-Dp8EoajW.js} +3 -3
  148. package/dist/components/{p-DrAiGSzG.js.map → p-Dp8EoajW.js.map} +1 -1
  149. package/dist/components/{p-BX1_zmbg.js → p-DvV5MmYi.js} +5 -5
  150. package/dist/components/{p-BX1_zmbg.js.map → p-DvV5MmYi.js.map} +1 -1
  151. package/dist/components/{p-4hVDutj0.js → p-DzdUnkvh.js} +3 -3
  152. package/dist/components/{p-4hVDutj0.js.map → p-DzdUnkvh.js.map} +1 -1
  153. package/dist/components/{p-D3QILlvg.js → p-HzmATjhQ.js} +5 -5
  154. package/dist/components/p-HzmATjhQ.js.map +1 -0
  155. package/dist/components/{p-CVtNCEPd.js → p-PBF27XTU.js} +3 -3
  156. package/dist/components/{p-CVtNCEPd.js.map → p-PBF27XTU.js.map} +1 -1
  157. package/dist/components/{p-BmjU_TBT.js → p-QTa3HvQl.js} +3 -3
  158. package/dist/components/{p-BmjU_TBT.js.map → p-QTa3HvQl.js.map} +1 -1
  159. package/dist/components/{p-WQJ1HwUp.js → p-dgrAtFYi.js} +6 -6
  160. package/dist/components/{p-WQJ1HwUp.js.map → p-dgrAtFYi.js.map} +1 -1
  161. package/dist/components/{p-RGadlsa-.js → p-hpg1lOUJ.js} +5 -2
  162. package/dist/components/p-hpg1lOUJ.js.map +1 -0
  163. package/dist/components/{p-D4oYYfeG.js → p-nkv8Z87a.js} +8 -8
  164. package/dist/components/{p-D4oYYfeG.js.map → p-nkv8Z87a.js.map} +1 -1
  165. package/dist/components/{p-dtookouT.js → p-nvpvagPB.js} +7 -7
  166. package/dist/components/{p-dtookouT.js.map → p-nvpvagPB.js.map} +1 -1
  167. package/dist/components/{p-B-Wxp2_p.js → p-oE_0ElW3.js} +69 -20
  168. package/dist/components/p-oE_0ElW3.js.map +1 -0
  169. package/dist/components/{p-CKZvdOpK.js → p-qDaQOriJ.js} +4 -4
  170. package/dist/components/{p-CKZvdOpK.js.map → p-qDaQOriJ.js.map} +1 -1
  171. package/dist/components/{p-lfUd06gm.js → p-rnhSIhil.js} +3 -3
  172. package/dist/components/{p-lfUd06gm.js.map → p-rnhSIhil.js.map} +1 -1
  173. package/dist/components/{p-Dr1acigj.js → p-xNgCL9nV.js} +4 -4
  174. package/dist/components/{p-Dr1acigj.js.map → p-xNgCL9nV.js.map} +1 -1
  175. package/dist/components/payment-method-selector.js +1 -1
  176. package/dist/components/qr-code.js +1 -1
  177. package/dist/components/rebill-address-form.js +1 -1
  178. package/dist/components/rebill-address-search.js +1 -1
  179. package/dist/components/rebill-address.js +1 -1
  180. package/dist/components/rebill-alert.js +1 -1
  181. package/dist/components/rebill-bank-selector.js +1 -1
  182. package/dist/components/rebill-card-carousel.js +1 -1
  183. package/dist/components/rebill-card.js +1 -1
  184. package/dist/components/rebill-checkout-form.js +1 -1
  185. package/dist/components/rebill-checkout-single-column.js +1 -1
  186. package/dist/components/rebill-checkout.js +39 -39
  187. package/dist/components/rebill-container.js +1 -1
  188. package/dist/components/rebill-divider.js +1 -1
  189. package/dist/components/rebill-flex-container.js +1 -1
  190. package/dist/components/rebill-footer.js +1 -1
  191. package/dist/components/rebill-form.js +1 -1
  192. package/dist/components/rebill-grid-container.js +1 -1
  193. package/dist/components/rebill-input-checkbox.js +1 -1
  194. package/dist/components/rebill-input-combo.js +1 -1
  195. package/dist/components/rebill-input-phone.js +1 -1
  196. package/dist/components/rebill-input-select.js +1 -1
  197. package/dist/components/rebill-input-text.js +1 -1
  198. package/dist/components/rebill-installments.js +1 -1
  199. package/dist/components/rebill-mode-sandbox-mobile.js +1 -1
  200. package/dist/components/rebill-processing-payment.js +1 -1
  201. package/dist/components/rebill-renewal.js +77 -51
  202. package/dist/components/rebill-renewal.js.map +1 -1
  203. package/dist/components/rebill-summary.js +1 -1
  204. package/dist/components/rebill-timeline-debit-day.js +1 -1
  205. package/dist/components/rebill-timeline-free-trial.js +1 -1
  206. package/dist/components/rebill-vertical-divider.js +1 -1
  207. package/dist/components/renewal-success-page.js +1 -1
  208. package/dist/components/renewal-summary.js +1 -1
  209. package/dist/components/root-component.js +6 -6
  210. package/dist/components/selectable-card.js +1 -1
  211. package/dist/components/single-payment-method.js +1 -1
  212. package/dist/components/success-page.js +1 -1
  213. package/dist/components/user-information-phone.js +1 -1
  214. package/dist/components/user-information.js +1 -1
  215. package/dist/esm/apm-checkout_19.entry.js +12 -12
  216. package/dist/esm/card-identification_5.entry.js +8 -8
  217. package/dist/esm/collapsible-card.entry.js +1 -1
  218. package/dist/esm/discount-coupon.rebill-divider.entry.js.map +1 -0
  219. package/dist/esm/discount-coupon_2.entry.js +154 -0
  220. package/dist/esm/index-D8cwEAmw.js.map +1 -1
  221. package/dist/esm/input-otp.entry.js +2 -2
  222. package/dist/esm/loader.js +1 -1
  223. package/dist/esm/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.js.map +1 -1
  224. package/dist/esm/organization-logo_4.entry.js +3 -3
  225. package/dist/esm/otp-component_7.entry.js +8 -8
  226. package/dist/esm/rebill-alert.entry.js +2 -2
  227. package/dist/esm/rebill-card-carousel.entry.js +1 -1
  228. package/dist/esm/rebill-card.entry.js +1 -1
  229. package/dist/esm/rebill-container_2.entry.js +2 -2
  230. package/dist/esm/rebill-flex-container.entry.js +1 -1
  231. package/dist/esm/rebill-form.entry.js +1 -1
  232. package/dist/esm/rebill-grid-container.entry.js +1 -1
  233. package/dist/esm/rebill-input-select.entry.js +2 -2
  234. package/dist/esm/rebill-input-text.entry.js +2 -2
  235. package/dist/esm/rebill-renewal.entry.js +32 -12
  236. package/dist/esm/rebill-renewal.entry.js.map +1 -1
  237. package/dist/esm/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.js.map +1 -0
  238. package/dist/esm/{discount-coupon_3.entry.js → rebill-timeline-debit-day_2.entry.js} +6 -119
  239. package/dist/esm/rebill-vertical-divider.entry.js +1 -1
  240. package/dist/esm/rebill-web-components-sdk.js +1 -1
  241. package/dist/esm/renewal-success-page.renewal-summary.entry.js.map +1 -1
  242. package/dist/esm/renewal-success-page_2.entry.js +41 -13
  243. package/dist/esm/{renewal.store-C6hSvhsF.js → renewal.store-vAxzxA8H.js} +5 -2
  244. package/dist/esm/renewal.store-vAxzxA8H.js.map +1 -0
  245. package/dist/esm/root-component.entry.js +1 -1
  246. package/dist/rebill-web-components-sdk/discount-coupon.rebill-divider.entry.esm.js.map +1 -0
  247. package/dist/rebill-web-components-sdk/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.esm.js.map +1 -1
  248. package/dist/rebill-web-components-sdk/p-012e3770.entry.js +2 -0
  249. package/dist/rebill-web-components-sdk/p-012e3770.entry.js.map +1 -0
  250. package/dist/rebill-web-components-sdk/{p-1c3e7171.entry.js → p-0239917e.entry.js} +2 -2
  251. package/dist/rebill-web-components-sdk/{p-edb69e28.entry.js → p-1ac036d7.entry.js} +2 -2
  252. package/dist/rebill-web-components-sdk/{p-36a897c4.entry.js → p-1d7e392c.entry.js} +2 -2
  253. package/dist/rebill-web-components-sdk/{p-e5b0f2b9.entry.js → p-2ebb1d54.entry.js} +2 -2
  254. package/dist/rebill-web-components-sdk/{p-e8eadef6.entry.js → p-3a5bdb02.entry.js} +2 -2
  255. package/dist/rebill-web-components-sdk/{p-5df71605.entry.js → p-43924d1d.entry.js} +2 -2
  256. package/dist/rebill-web-components-sdk/p-43924d1d.entry.js.map +1 -0
  257. package/dist/rebill-web-components-sdk/{p-9084f3ef.entry.js → p-47ee3edc.entry.js} +2 -2
  258. package/dist/rebill-web-components-sdk/{p-92de0c03.entry.js → p-508cc019.entry.js} +2 -2
  259. package/dist/rebill-web-components-sdk/{p-924e7ec2.entry.js → p-515e9e16.entry.js} +2 -2
  260. package/dist/rebill-web-components-sdk/p-5ac0522d.entry.js +2 -0
  261. package/dist/rebill-web-components-sdk/{p-821e1fed.entry.js → p-6089b208.entry.js} +2 -2
  262. package/dist/rebill-web-components-sdk/p-63baba00.entry.js +2 -0
  263. package/dist/rebill-web-components-sdk/p-63baba00.entry.js.map +1 -0
  264. package/dist/rebill-web-components-sdk/{p-a0d6b0c0.entry.js → p-6ea98ccf.entry.js} +2 -2
  265. package/dist/rebill-web-components-sdk/{p-bc6f455d.entry.js → p-7287e0f0.entry.js} +2 -2
  266. package/dist/rebill-web-components-sdk/{p-26f12a67.entry.js → p-8c7f75c0.entry.js} +2 -2
  267. package/dist/rebill-web-components-sdk/{p-26f12a67.entry.js.map → p-8c7f75c0.entry.js.map} +1 -1
  268. package/dist/rebill-web-components-sdk/p-D8cwEAmw.js.map +1 -1
  269. package/dist/rebill-web-components-sdk/{p-c8a5a137.entry.js → p-aa96087c.entry.js} +2 -2
  270. package/dist/rebill-web-components-sdk/{p-63020e78.entry.js → p-ad9a6685.entry.js} +2 -2
  271. package/dist/rebill-web-components-sdk/{p-7e94aec8.entry.js → p-e0a3f3a8.entry.js} +2 -2
  272. package/dist/rebill-web-components-sdk/p-e242be38.entry.js +2 -0
  273. package/dist/rebill-web-components-sdk/p-e242be38.entry.js.map +1 -0
  274. package/dist/rebill-web-components-sdk/p-f672574a.entry.js +2 -0
  275. package/dist/rebill-web-components-sdk/p-nVuaISVM.js +2 -0
  276. package/dist/rebill-web-components-sdk/p-nVuaISVM.js.map +1 -0
  277. package/dist/rebill-web-components-sdk/rebill-renewal.entry.esm.js.map +1 -1
  278. package/dist/rebill-web-components-sdk/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.esm.js.map +1 -0
  279. package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
  280. package/dist/rebill-web-components-sdk/renewal-success-page.renewal-summary.entry.esm.js.map +1 -1
  281. package/dist/types/components/checkout/discount-coupon/discount-coupon.d.ts +5 -0
  282. package/dist/types/components/renewal/renewal-summary/renewal-summary.d.ts +12 -5
  283. package/dist/types/components.d.ts +24 -4
  284. package/dist/types/models/renewal.model.d.ts +3 -0
  285. package/package.json +1 -1
  286. package/dist/cjs/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.cjs.js.map +0 -1
  287. package/dist/cjs/rebill-divider.cjs.entry.js +0 -18
  288. package/dist/cjs/rebill-divider.entry.cjs.js.map +0 -1
  289. package/dist/cjs/renewal.store-C9AesGY1.js.map +0 -1
  290. package/dist/components/p-B-Wxp2_p.js.map +0 -1
  291. package/dist/components/p-BWkW7_Hh.js.map +0 -1
  292. package/dist/components/p-D3QILlvg.js.map +0 -1
  293. package/dist/components/p-RGadlsa-.js.map +0 -1
  294. package/dist/esm/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.js.map +0 -1
  295. package/dist/esm/rebill-divider.entry.js +0 -16
  296. package/dist/esm/rebill-divider.entry.js.map +0 -1
  297. package/dist/esm/renewal.store-C6hSvhsF.js.map +0 -1
  298. package/dist/rebill-web-components-sdk/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.esm.js.map +0 -1
  299. package/dist/rebill-web-components-sdk/p-43675422.entry.js +0 -2
  300. package/dist/rebill-web-components-sdk/p-43675422.entry.js.map +0 -1
  301. package/dist/rebill-web-components-sdk/p-51571e15.entry.js +0 -2
  302. package/dist/rebill-web-components-sdk/p-5df71605.entry.js.map +0 -1
  303. package/dist/rebill-web-components-sdk/p-7ea96b11.entry.js +0 -2
  304. package/dist/rebill-web-components-sdk/p-CdYpsLqg.js +0 -2
  305. package/dist/rebill-web-components-sdk/p-CdYpsLqg.js.map +0 -1
  306. package/dist/rebill-web-components-sdk/p-b519d8a2.entry.js +0 -2
  307. package/dist/rebill-web-components-sdk/p-b519d8a2.entry.js.map +0 -1
  308. package/dist/rebill-web-components-sdk/p-eb6a2c0d.entry.js +0 -2
  309. package/dist/rebill-web-components-sdk/p-eb6a2c0d.entry.js.map +0 -1
  310. package/dist/rebill-web-components-sdk/rebill-divider.entry.esm.js.map +0 -1
  311. /package/dist/rebill-web-components-sdk/{p-1c3e7171.entry.js.map → p-0239917e.entry.js.map} +0 -0
  312. /package/dist/rebill-web-components-sdk/{p-edb69e28.entry.js.map → p-1ac036d7.entry.js.map} +0 -0
  313. /package/dist/rebill-web-components-sdk/{p-36a897c4.entry.js.map → p-1d7e392c.entry.js.map} +0 -0
  314. /package/dist/rebill-web-components-sdk/{p-e5b0f2b9.entry.js.map → p-2ebb1d54.entry.js.map} +0 -0
  315. /package/dist/rebill-web-components-sdk/{p-e8eadef6.entry.js.map → p-3a5bdb02.entry.js.map} +0 -0
  316. /package/dist/rebill-web-components-sdk/{p-9084f3ef.entry.js.map → p-47ee3edc.entry.js.map} +0 -0
  317. /package/dist/rebill-web-components-sdk/{p-92de0c03.entry.js.map → p-508cc019.entry.js.map} +0 -0
  318. /package/dist/rebill-web-components-sdk/{p-924e7ec2.entry.js.map → p-515e9e16.entry.js.map} +0 -0
  319. /package/dist/rebill-web-components-sdk/{p-51571e15.entry.js.map → p-5ac0522d.entry.js.map} +0 -0
  320. /package/dist/rebill-web-components-sdk/{p-821e1fed.entry.js.map → p-6089b208.entry.js.map} +0 -0
  321. /package/dist/rebill-web-components-sdk/{p-a0d6b0c0.entry.js.map → p-6ea98ccf.entry.js.map} +0 -0
  322. /package/dist/rebill-web-components-sdk/{p-bc6f455d.entry.js.map → p-7287e0f0.entry.js.map} +0 -0
  323. /package/dist/rebill-web-components-sdk/{p-c8a5a137.entry.js.map → p-aa96087c.entry.js.map} +0 -0
  324. /package/dist/rebill-web-components-sdk/{p-63020e78.entry.js.map → p-ad9a6685.entry.js.map} +0 -0
  325. /package/dist/rebill-web-components-sdk/{p-7e94aec8.entry.js.map → p-e0a3f3a8.entry.js.map} +0 -0
  326. /package/dist/rebill-web-components-sdk/{p-7ea96b11.entry.js.map → p-f672574a.entry.js.map} +0 -0
@@ -4,7 +4,7 @@ import { a as api } from './index-BOj-Hiz8.js';
4
4
  import { m as mapRequiredFields, i as isFieldRequired, g as generateIdempotencyKey, C as CheckoutStatusE, a as PaymentErrorMapper, b as getFieldValues } from './required-fields-mappers-NegWz-xH.js';
5
5
  import { P as PAYMENT_METHOD_ENUM, I as I18nService } from './i18n.service-D2TBhbJY.js';
6
6
  import { P as PaymentMethodMapper, G as GoogleMapsService, a as PaymentMethodNameE } from './google-maps.service-dvv8xcZ_.js';
7
- import { r as renewalState, R as RenewalStore, o as onChange } from './renewal.store-C6hSvhsF.js';
7
+ import { r as renewalState, R as RenewalStore, o as onChange } from './renewal.store-vAxzxA8H.js';
8
8
  import { B as BREAKPOINT_ENUM, g as getBreakpoint, i as isBreakpointBelow } from './breakpoint-Do_vNuMa.js';
9
9
  import { C as COLORS_ENUM } from './color-class-mapper-DA598vBj.js';
10
10
  import './_commonjsHelpers-E-ZsRS8r.js';
@@ -171,21 +171,39 @@ const RebillRenewal = class {
171
171
  console.error('Error loading required fields:', error);
172
172
  }
173
173
  if (renewalState.data.paymentMethods.length > 0) {
174
- const firstPaymentMethod = renewalState.data.paymentMethods[0].type;
175
- this.currentPaymentMethod = firstPaymentMethod;
176
- RenewalStore.setSelectedPaymentMethod(firstPaymentMethod);
177
- // Set required fields for the initial payment method
174
+ let defaultPaymentMethod = null;
175
+ if (renewalState.data.subscription?.paymentMethod) {
176
+ const subscriptionPaymentMethod = renewalState.data.subscription.paymentMethod.toLowerCase();
177
+ const mappedMethod = subscriptionPaymentMethod === 'card'
178
+ ? PAYMENT_METHOD_ENUM.CARD
179
+ : subscriptionPaymentMethod === 'bank_transfer'
180
+ ? PAYMENT_METHOD_ENUM.BANK_TRANSFER
181
+ : null;
182
+ if (mappedMethod) {
183
+ const isAvailable = renewalState.data.paymentMethods.some(pm => pm.type === mappedMethod);
184
+ if (isAvailable) {
185
+ defaultPaymentMethod = mappedMethod;
186
+ }
187
+ }
188
+ }
189
+ if (!defaultPaymentMethod) {
190
+ defaultPaymentMethod = renewalState.data.paymentMethods[0].type;
191
+ }
192
+ this.currentPaymentMethod = defaultPaymentMethod;
193
+ RenewalStore.setSelectedPaymentMethod(defaultPaymentMethod);
194
+ if (defaultPaymentMethod !== PAYMENT_METHOD_ENUM.CARD) {
195
+ this.cardMode = 'input';
196
+ RenewalStore.setCardMode('input');
197
+ }
178
198
  try {
179
- this.currentRequiredFields = getRequiredFieldsForMethod(firstPaymentMethod, this.allRequiredFields).fields;
199
+ this.currentRequiredFields = getRequiredFieldsForMethod(defaultPaymentMethod, this.allRequiredFields).fields;
180
200
  }
181
201
  catch (error) {
182
202
  console.error('Error getting required fields for method:', error);
183
203
  }
184
- // Initialize fingerprint for the first payment method
185
- await this.initializeFingerprint(firstPaymentMethod);
204
+ await this.initializeFingerprint(defaultPaymentMethod);
186
205
  }
187
206
  this.initialData = this.getInitialData();
188
- this.cardMode = renewalState.cardMode;
189
207
  onChange('cardMode', () => {
190
208
  this.cardMode = renewalState.cardMode;
191
209
  });
@@ -484,7 +502,7 @@ const RebillRenewal = class {
484
502
  if (!renewalState.isInitialized) {
485
503
  return h("div", { class: "loading" }, I18nService.translate('renewal.loading'));
486
504
  }
487
- const renderRenewalSummary = props => (h("renewal-summary", { totalAmount: renewalState.data.price.amount, currency: renewalState.data.price.currency, subscriptionTitle: renewalState.data.subscription.name[0]?.text || 'Subscription', subscriptionAmount: renewalState.data.subscription.amount, nextChargeDate: renewalState.data.subscription.nextChargeDate, frequency: renewalState.data.subscription.frequency, ...props }));
505
+ const renderRenewalSummary = props => (h("renewal-summary", { totalAmount: renewalState.data.price.amount, currency: renewalState.data.price.currency, subscriptionTitle: renewalState.data.subscription.name[0]?.text || 'Subscription', subscriptionAmount: renewalState.data.subscription.amount, nextChargeDate: renewalState.data.subscription.nextChargeDate, frequency: renewalState.data.subscription.frequency, couponCode: renewalState.data.price.couponCode, discountAmount: renewalState.data.price.discountedAmount, discountPercentage: renewalState.data.price.discountPercentage, ...props }));
488
506
  return (h(h.Fragment, null, h("rebill-processing-payment", { style: { display: this.isCardSubmitting ? 'block' : 'none' } }), this.isCardSuccess ? (h("renewal-success-page", { typePaymentMethod: this.currentPaymentMethod, paymentDate: this.getPaymentDate(), referenceNumber: this.getReferenceNumber(), cardLastFour: renewalState.data.subscription.cardLastFour, country: renewalState.data.price.country, paymentMethodName: PaymentMethodMapper.mapToAPMPaymentMethod(this.currentPaymentMethod, renewalState.data?.price?.country), bank: renewalState.form?.selectedBankId || '' })) : (h("rebill-checkout-form", { style: { display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block' }, validationSchema: this.validationSchema, initialData: this.initialData, onSubmit: (args) => this.handleSubmit(args), renderForm: ({ submit, formData, errors }) => (h("div", { class: "rebill-checkout-renewal" }, h("div", { class: "left-section" }, h("div", { class: "left-section-container" }, h("organization-logo", { organization: renewalState.data.organization }), h("div", { class: "checkout-form-section" }, h("user-information-static", { userInfo: {
489
507
  customerName: renewalState.data.subscription.customerName,
490
508
  customerEmail: renewalState.data.subscription.customerEmail,
@@ -505,8 +523,10 @@ const RebillRenewal = class {
505
523
  type: null,
506
524
  }, country: renewalState.data.price.country, documentTypeError: errors?.documentType, documentNumberError: errors?.documentNumber, showDocument: this.cardMode === 'input' &&
507
525
  (isFieldRequired('documentType', this.currentRequiredFields) ||
508
- isFieldRequired('documentNumber', this.currentRequiredFields)) }), this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD && (h("rebill-alert", { type: "info", message: I18nService.translate('renewal.paymentMethodAlert', {
509
- cardLastFour: renewalState.data.subscription.cardLastFour || '****',
526
+ isFieldRequired('documentNumber', this.currentRequiredFields)) }), this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD &&
527
+ renewalState.data.subscription?.paymentMethod ===
528
+ PAYMENT_METHOD_ENUM.CARD && (h("rebill-alert", { type: "info", message: I18nService.translate('renewal.paymentMethodAlert', {
529
+ cardLastFour: renewalState.data?.subscription?.cardLastFour || '****',
510
530
  }), icon: "calendar-edit", variant: "outlined", colorIcon: COLORS_ENUM.PRIMARY })), this.cardMode === 'input' &&
511
531
  isFieldRequired('bankId', this.currentRequiredFields) && (h("div", { class: "animated-component fade-in" }, h("rebill-bank-selector", { banks: getFieldValues('bank', this.allRequiredFields[this.currentPaymentMethod]?.original) || [], defaultSelectedBankId: formData.bankId || '', error: errors?.bankId })))), this.cardMode === 'input' &&
512
532
  (isFieldRequired('billing-country', this.currentRequiredFields) ||
@@ -1 +1 @@
1
- {"version":3,"file":"rebill-renewal.entry.js","sources":["src/components/renewal/utils/getRequiredFieldsRenewal.ts","src/components/renewal/rebill-renewal.css?tag=rebill-renewal","src/components/renewal/rebill-renewal.tsx"],"sourcesContent":["import { api } from '../../../api';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { renewalState } from '../../../store/renewal.store';\nimport { PaymentMethodMapper } from '../../../utils/payment-method-mapper';\nimport { mapRequiredFields, RequiredField } from '../../../utils/required-fields-mappers';\n\nexport interface RequiredFieldsResult {\n fields: string[];\n original: RequiredField[];\n}\n\nexport interface AllRequiredFieldsMap {\n [key: string]: RequiredFieldsResult;\n}\n\nconst getRequiredFields = async (\n currency: string,\n method: string,\n organizationId: string,\n): Promise<RequiredFieldsResult> => {\n const requiredFieldsResponse = await api.checkout.getRequiredFields(\n {\n currency,\n method,\n },\n organizationId,\n );\n\n return {\n fields: mapRequiredFields(requiredFieldsResponse.data),\n original: requiredFieldsResponse.data,\n };\n};\n\nexport const getAllRequiredFieldsRenewal = async (): Promise<AllRequiredFieldsMap> => {\n const paymentMethods = [\n ...new Set(renewalState.data.paymentMethods.map(pm => pm.type as PAYMENT_METHOD_ENUM)),\n ];\n const promises = paymentMethods.map(async paymentMethod => {\n try {\n const apiPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n renewalState.data.price.country,\n );\n\n const result = await getRequiredFields(\n renewalState.data.price.currency,\n apiPaymentMethod,\n renewalState.data.organization.id,\n );\n\n return {\n paymentMethod,\n ...result,\n };\n } catch (error) {\n console.error(`Error getting required fields for ${paymentMethod}:`, error);\n return {\n paymentMethod,\n fields: [],\n original: [],\n };\n }\n });\n\n const results = await Promise.all(promises);\n const fieldsMap: AllRequiredFieldsMap = {};\n\n results.forEach(result => {\n fieldsMap[result.paymentMethod] = {\n fields: result.fields,\n original: result.original,\n };\n });\n return fieldsMap;\n};\n\nexport const getRequiredFieldsForMethod = (\n paymentMethod: PAYMENT_METHOD_ENUM,\n allRequiredFields: AllRequiredFieldsMap,\n): RequiredFieldsResult => {\n const storedFields = allRequiredFields[paymentMethod];\n if (storedFields) {\n return storedFields;\n } else {\n return {\n fields: [],\n original: [],\n };\n }\n};\n","@import '../../styles/variables.css';\n\n@media (max-width: 1024px) {\n .rebill-checkout-renewal {\n flex-direction: column;\n gap: 0;\n justify-content: flex-start;\n background: var(--rebill-color-background);\n padding: 20px;\n }\n .right-section .left-section {\n width: 100%;\n height: 100%;\n background: var(--rebill-color-background);\n }\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n height: 100%;\n margin-top: 24px;\n }\n .otp-container {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n }\n}\n\n@media (min-width: 1025px) {\n .rebill-checkout-renewal {\n width: 100vw;\n min-height: 100vh;\n display: flex;\n flex-direction: row;\n justify-content: center;\n overflow-y: auto;\n }\n\n .left-section {\n display: flex;\n width: 60%;\n background: var(--rebill-color-background-left);\n justify-content: space-around;\n }\n\n .right-section {\n display: flex;\n padding-top: 72px;\n width: 40%;\n background: var(--rebill-color-background-right);\n position: sticky;\n top: 0;\n\n justify-content: center;\n }\n\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-bottom: 36px;\n margin-top: 24px;\n gap: 32px;\n }\n .left-section-container {\n max-width: 450px;\n min-width: 450px;\n margin: 2.5rem 2rem 1.5rem 2rem;\n display: flex;\n flex-direction: column;\n }\n\n .checkout-summary-section {\n max-width: 450px;\n min-width: 350px;\n margin: 0rem 2rem;\n background: var(--rebill-color-background-right);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n width: 100%;\n }\n\n .checkout-form-section user-information,\n .checkout-form-section payment-method-selector,\n .checkout-form-section rebill-address,\n .checkout-summary-section rebill-summary {\n width: 100%;\n }\n\n /* Google Maps Autocomplete Styles */\n .pac-container {\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border: 1px solid #e0e0e0;\n margin-top: 4px;\n font-family: inherit;\n }\n\n .pac-item {\n padding: 10px 12px;\n cursor: pointer;\n border-top: none;\n }\n\n .pac-item:first-child {\n border-top: none;\n }\n\n .pac-item:hover {\n background-color: #f5f5f5;\n }\n\n .pac-item-query {\n font-weight: 500;\n }\n\n .pac-icon {\n display: none;\n }\n}\n\n.payment-button-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-bottom: 16px;\n}\n/* Animaciones para componentes condicionales */\n.animated-component {\n transition: all 0.3s ease-in-out;\n overflow: visible;\n}\n\n/* Keep overflow hidden only for sliding height animations */\n/* .animated-component.slide-in {\n overflow: hidden;\n} */\n\n.fade-in {\n animation: fadeIn 0.4s ease-in-out;\n}\n\n.slide-in {\n animation: slideIn 0.5s ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-20px);\n max-height: 0;\n }\n to {\n opacity: 1;\n transform: translateX(0);\n max-height: 450px;\n }\n}\n\n/* Animación para cuando se ocultan los componentes */\n.animated-component.hide {\n animation: fadeOut 0.3s ease-in-out forwards;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* Test Mode Chip Positioning */\nrebill-mode-sandbox {\n position: fixed;\n bottom: 50px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n}\n\n/* Ensure the chip is visible on all screen sizes */\n@media (max-width: 1024px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n\n@media (min-width: 1025px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n.mode-sandbox-mobile-container {\n display: flex;\n align-items: center;\n width: 100%;\n\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n}\n\n/* Desktop grande - mantener tamaños originales */\n@media (min-width: 1451px) {\n .left-section-container {\n min-width: 450px;\n margin: 2.5rem 5rem 1.5rem 5rem;\n }\n\n .checkout-summary-section {\n min-width: 450px;\n margin: 0rem 5rem;\n }\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport { SavedCard } from '../../api/entities/cards/types';\nimport {\n CheckoutStatusE,\n CreateAPMCheckoutRequest,\n CreateAPMCheckoutResponse,\n CreateCardCheckoutRequest,\n} from '../../api/entities/checkout/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport { I18nService } from '../../i18n/i18n.service';\n\nimport { PaymentMethodNameE } from '../../models/enums/payment-method-name.enum';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from '../../store/renewal.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { COLORS_ENUM } from '../../utils/color-class-mapper';\nimport { generateIdempotencyKey } from '../../utils/generate-idempotency-key';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys, PaymentErrorMapper } from '../../utils/payment-error-mapper';\nimport { PaymentMethodMapper } from '../../utils/payment-method-mapper';\nimport { getFieldValues, isFieldRequired } from '../../utils/required-fields-mappers';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFieldsRenewal,\n getRequiredFieldsForMethod,\n} from './utils/getRequiredFieldsRenewal';\n\n@Component({\n tag: 'rebill-renewal',\n styleUrl: 'rebill-renewal.css',\n shadow: false,\n})\nexport class RebillRenewal {\n @Prop() renewalData!: string;\n @Prop() renewalToken!: string;\n\n @State() currentPaymentMethod: PAYMENT_METHOD_ENUM = PAYMENT_METHOD_ENUM.CARD;\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() errorMessage: AlertErrorKeys | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() errorPaymentCard: boolean = false;\n @State() errorPaymentAPM: boolean = false;\n @State() initialData: any = {};\n @State() checkoutResponse: CreateAPMCheckoutResponse | null = null;\n @State() currentApmPaymentMethod: PaymentMethodNameE | null = null;\n @State() countries: Country[] = [];\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() errorCardInvalid: boolean = false;\n @State() cardMode: 'input' | 'select' | null = 'select';\n\n @Event() success: EventEmitter<any>;\n @Event() paymentError: EventEmitter<any>;\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n private validationSchema = {\n 'phoneNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('phoneNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-country', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.countryRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-state': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-state', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.stateRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-address': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-address', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.addressRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-city': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-city', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.cityRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-zip': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-zip', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'bankId': yup.string().when([], {\n is: () => isFieldRequired('bankId', this.currentRequiredFields),\n then: schema => schema.required('validation.bankRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n isFieldRequired('documentType', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.documentTypeRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('documentNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema =>\n schema.required('validation.documentNumberRequired').min(7, 'validation.documentInvalid'),\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private resizeHandler = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n async componentWillLoad() {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n const renewalProps =\n typeof this.renewalData === 'string' ? JSON.parse(this.renewalData) : this.renewalData;\n\n RenewalStore.initializeRenewal({\n ...renewalProps,\n token: this.renewalToken,\n });\n\n // Load Google Maps script for address autocomplete\n GoogleMapsService.loadGoogleMapsScript();\n\n // Load countries data\n try {\n const response = await api.data.getCountries();\n this.countries = response.data;\n } catch (error) {\n console.error('Error loading countries:', error);\n }\n\n // Load required fields data\n try {\n this.allRequiredFields = await getAllRequiredFieldsRenewal();\n } catch (error) {\n console.error('Error loading required fields:', error);\n }\n\n if (renewalState.data.paymentMethods.length > 0) {\n const firstPaymentMethod = renewalState.data.paymentMethods[0].type as PAYMENT_METHOD_ENUM;\n this.currentPaymentMethod = firstPaymentMethod;\n RenewalStore.setSelectedPaymentMethod(firstPaymentMethod);\n\n // Set required fields for the initial payment method\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n firstPaymentMethod,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for method:', error);\n }\n\n // Initialize fingerprint for the first payment method\n await this.initializeFingerprint(firstPaymentMethod);\n }\n\n this.initialData = this.getInitialData();\n\n this.cardMode = renewalState.cardMode;\n renewalOnChange('cardMode', () => {\n this.cardMode = renewalState.cardMode;\n });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n }\n\n @Listen('paymentMethodSelected')\n async handlePaymentMethodSelected(event: CustomEvent<PAYMENT_METHOD_ENUM>) {\n event.stopPropagation();\n\n if (this.currentPaymentMethod === event.detail) {\n return;\n }\n\n this.currentPaymentMethod = event.detail;\n RenewalStore.setSelectedPaymentMethod(this.currentPaymentMethod);\n\n // Change cardMode to 'input' if payment method is not CARD\n if (this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD) {\n this.cardMode = 'input';\n RenewalStore.setCardMode('input');\n }\n\n // Update required fields for the new payment method\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n this.currentPaymentMethod,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for method:', error);\n }\n\n // Note: Fingerprint is handled in componentWillLoad\n\n // Initialize fingerprint for the new payment method\n await this.initializeFingerprint(this.currentPaymentMethod);\n\n this.paymentMethodSelected.emit(event.detail);\n }\n\n private async initializeFingerprint(paymentMethod: PAYMENT_METHOD_ENUM) {\n // Only initialize fingerprint for card payments and if not already generated\n if (paymentMethod === PAYMENT_METHOD_ENUM.CARD && !renewalState.deviceId) {\n try {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n RenewalStore.setDeviceId(uuid);\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n } catch (error) {\n console.error('Failed to initialize fingerprint:', error);\n }\n }\n }\n\n @Listen('bankSelected')\n handleBankSelected(event: CustomEvent<string>) {\n event.stopPropagation();\n RenewalStore.setSelectedBankId(event.detail);\n }\n\n @Listen('cardSelected')\n handleCardSelected(event: CustomEvent<{ card: SavedCard; cvv?: string }>) {\n const { card, cvv } = event.detail;\n RenewalStore.setSelectedCard(card);\n RenewalStore.setCvv(cvv || '');\n }\n\n private get currentPaymentError(): boolean {\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return this.errorPaymentCard;\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return this.errorPaymentAPM;\n }\n return false;\n }\n\n private async handleSubmit(event?: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n await this.handleCardRenewal(event);\n } else {\n await this.handleAPMRenewal(event);\n }\n }\n\n private async handleCardRenewal(event?: CustomEvent) {\n const formData = event?.detail || this.getInitialData();\n\n if (!renewalState.data.cardId && !renewalState.data.cardTokenId) {\n this.errorCardInvalid = true;\n return;\n }\n if (!renewalState.data.cardInformation && !renewalState.data.cardId) {\n this.errorCardInvalid = true;\n return;\n }\n this.errorCardInvalid = false;\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const renewalRequest: CreateCardCheckoutRequest = {\n transaction: {\n quantity: 1,\n },\n ...(renewalState.data.cardId && { cardId: renewalState.data.cardId }),\n ...(renewalState.data.cardTokenId && { cardTokenId: renewalState.data.cardTokenId }),\n customAttributes: {\n ...(renewalState.deviceId && { deviceId: renewalState.deviceId }),\n },\n ...(this.cardMode === 'input' && {\n customer: {\n firstName:\n formData.fullName?.split(' ')[0] ||\n renewalState.data.subscription.customerName?.split(' ')[0],\n lastName:\n formData.fullName?.split(' ').slice(1).join(' ') ||\n renewalState.data.subscription.customerName?.split(' ').slice(1).join(' '),\n email: formData.email || renewalState.data.subscription.customerEmail,\n phone: {\n countryCode: formData.countryCodePhoneNumber || '',\n number: formData.phoneNumber || '',\n },\n },\n billingDetails: {\n address: {\n lineOne: formData['billing-address'] || '',\n city: formData['billing-city'] || '',\n state: formData['billing-state'] || '',\n country: formData['billing-country'] || '',\n zipCode: formData['billing-zip'] || '',\n },\n identification: {\n type: formData.documentType || '',\n value: formData.documentNumber || '',\n },\n },\n }),\n };\n\n const idempotencyKey = generateIdempotencyKey();\n const response = await api.checkout.createCardCheckoutRequest(\n renewalState.data.id,\n idempotencyKey,\n renewalRequest,\n renewalState.token,\n );\n\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n RenewalStore.setCheckoutResponse(response.data);\n\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n } else {\n this.isCardSuccess = false;\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: response.data.error?.error?.message as PaymentMessageE,\n };\n }\n } catch (error: any) {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: error.data?.error?.message as PaymentMessageE,\n };\n }\n }\n\n private async handleAPMRenewal(event?: CustomEvent) {\n this.isSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const apmPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n renewalState.data.price.country,\n );\n\n // Get form data for billing details and customer info\n const formData = event?.detail || this.getFormData();\n\n // Transform form data to match CreateAPMCheckoutRequest structure\n const billingDetails = {\n address: {\n country: formData['billing-country'],\n state: formData['billing-state'] || '',\n city: formData['billing-city'] || '',\n zipCode: formData['billing-zip'] || '',\n lineOne: formData['billing-address'] || '',\n },\n identification: {\n type: formData.documentType || 'dni',\n value: formData.documentNumber || '',\n },\n };\n\n const renewalRequest: CreateAPMCheckoutRequest = {\n transaction: {\n quantity: 1,\n },\n method: apmPaymentMethod,\n billingDetails,\n redirect: {\n approved: window.location.origin + '/renewal/success',\n rejected: window.location.origin + '/renewal/failure',\n },\n paymentMetadata: {\n orderId: renewalState.data.id,\n source: 'renewal-web',\n },\n customAttributes: {\n bank: formData.bankId || '',\n },\n // Remove targetCurrency for PSE payments as it's not supported\n ...(apmPaymentMethod !== PaymentMethodNameE.CO_TRANSFERENCE_PSE && {\n targetCurrency: renewalState.data.price.currency,\n }),\n };\n\n // Add customer data for renewal\n renewalRequest.customer = {\n firstName:\n formData.fullName?.split(' ')[0] ||\n renewalState.data.subscription.customerName.split(' ')[0] ||\n '',\n lastName:\n formData.fullName?.split(' ').slice(1).join(' ') ||\n renewalState.data.subscription.customerName.split(' ').slice(1).join(' ') ||\n '',\n email: formData.email || renewalState.data.subscription.customerEmail,\n phone: {\n countryCode: formData.countryCodePhoneNumber || '',\n number: formData.phoneNumber || '',\n },\n };\n\n const idempotencyKey = generateIdempotencyKey();\n const response = await api.checkout.createAPMCheckoutRequest(\n renewalState.data.id,\n idempotencyKey,\n renewalRequest,\n );\n\n this.isSubmitting = false;\n RenewalStore.setLoading(false);\n RenewalStore.setCheckoutResponse(response.data);\n this.checkoutResponse = response.data;\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n } else {\n this.paymentError.emit(response.data);\n RenewalStore.setCheckoutResponse(response.data);\n this.errorPaymentAPM = true;\n\n this.errorMessage = {\n alertTitle: response.data?.error?.message as PaymentMessageE,\n message: response.data.error?.message as PaymentMessageE,\n };\n }\n } catch (error: any) {\n this.isSubmitting = false;\n RenewalStore.setLoading(false);\n this.paymentError.emit(error);\n this.errorPaymentAPM = true;\n\n this.errorMessage = {\n alertTitle: error.data?.error?.message as PaymentMessageE,\n message: error.data?.error?.message,\n };\n }\n }\n\n private getFormData = () => {\n return this.initialData;\n };\n\n private getInitialData = () => {\n return {\n 'email': renewalState.data.subscription.customerEmail,\n 'fullName': renewalState.data.subscription.customerName,\n 'card': '',\n 'billing-country': '',\n 'billing-state': '',\n 'billing-address': '',\n 'billing-city': '',\n 'billing-zip': '',\n 'bankId': '',\n 'phoneNumber': '',\n 'countryCodePhoneNumber': '',\n 'documentType': '',\n 'documentNumber': '',\n };\n };\n\n private hasPrefilledAddress = () => {\n const billingFields = [\n 'billing-country',\n 'billing-state',\n 'billing-address',\n 'billing-city',\n 'billing-zip',\n ];\n return billingFields.some(key => {\n const value = this.initialData[key];\n return value && value.trim() !== '';\n });\n };\n\n private getPaymentDate = (): string => {\n const payment = renewalState.form.checkoutResponse;\n if (!payment) return '';\n\n if ('date' in payment) {\n return payment.date as string;\n }\n\n return '';\n };\n\n private getReferenceNumber = (): string => {\n const payment = renewalState.form.checkoutResponse;\n if (!payment) return '';\n if ('traceId' in payment) {\n return payment.traceId as string;\n }\n\n return '';\n };\n\n render() {\n if (!renewalState.isInitialized) {\n return <div class=\"loading\">{I18nService.translate('renewal.loading')}</div>;\n }\n\n const renderRenewalSummary = props => (\n <renewal-summary\n totalAmount={renewalState.data.price.amount}\n currency={renewalState.data.price.currency}\n subscriptionTitle={renewalState.data.subscription.name[0]?.text || 'Subscription'}\n subscriptionAmount={renewalState.data.subscription.amount}\n nextChargeDate={renewalState.data.subscription.nextChargeDate}\n frequency={renewalState.data.subscription.frequency}\n {...props}\n />\n );\n\n return (\n <>\n <rebill-processing-payment style={{ display: this.isCardSubmitting ? 'block' : 'none' }} />\n {this.isCardSuccess ? (\n <renewal-success-page\n typePaymentMethod={this.currentPaymentMethod}\n paymentDate={this.getPaymentDate()}\n referenceNumber={this.getReferenceNumber()}\n cardLastFour={renewalState.data.subscription.cardLastFour}\n country={renewalState.data.price.country}\n paymentMethodName={PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n renewalState.data?.price?.country,\n )}\n bank={renewalState.form?.selectedBankId || ''}\n />\n ) : (\n <rebill-checkout-form\n style={{ display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block' }}\n validationSchema={this.validationSchema}\n initialData={this.initialData}\n onSubmit={(args: any) => this.handleSubmit(args)}\n renderForm={({ submit, formData, errors }) => (\n <div class=\"rebill-checkout-renewal\">\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n <organization-logo organization={renewalState.data.organization} />\n\n <div class=\"checkout-form-section\">\n {/* Customer Information - Readonly */}\n <user-information-static\n userInfo={{\n customerName: renewalState.data.subscription.customerName,\n customerEmail: renewalState.data.subscription.customerEmail,\n }}\n />\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'header',\n })}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'details',\n })}\n\n {/* Payment Method Selection */}\n <div style={{ display: 'flex', flexDirection: 'column', gap: '32px' }}>\n <payment-method-selector\n enabledPaymentMethods={[\n ...new Set(\n renewalState.data.paymentMethods.map(\n pm => pm.type as PAYMENT_METHOD_ENUM,\n ),\n ),\n ]}\n defaultSelected={this.currentPaymentMethod}\n errorComponent={{\n showErrorComponent: this.currentPaymentError,\n alertTitle: PaymentErrorMapper.getErrorTitle(\n this.currentPaymentMethod,\n renewalState.data.price.country,\n this.errorMessage?.alertTitle,\n ),\n message: PaymentErrorMapper.getErrorMessage(\n this.errorMessage?.message,\n this.currentPaymentMethod,\n renewalState.data.price.country,\n ),\n }}\n cardError={{\n showCardInvalid: this.errorCardInvalid,\n type: null,\n }}\n country={renewalState.data.price.country}\n documentTypeError={errors?.documentType}\n documentNumberError={errors?.documentNumber}\n showDocument={\n this.cardMode === 'input' &&\n (isFieldRequired('documentType', this.currentRequiredFields) ||\n isFieldRequired('documentNumber', this.currentRequiredFields))\n }\n />\n {/* Alert for non-card payment methods */}\n {this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD && (\n <rebill-alert\n type=\"info\"\n message={I18nService.translate('renewal.paymentMethodAlert', {\n cardLastFour: renewalState.data.subscription.cardLastFour || '****',\n })}\n icon=\"calendar-edit\"\n variant=\"outlined\"\n colorIcon={COLORS_ENUM.PRIMARY}\n />\n )}\n {this.cardMode === 'input' &&\n isFieldRequired('bankId', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <rebill-bank-selector\n banks={\n getFieldValues(\n 'bank',\n this.allRequiredFields[this.currentPaymentMethod]?.original,\n ) || []\n }\n defaultSelectedBankId={formData.bankId || ''}\n error={errors?.bankId}\n />\n </div>\n )}\n </div>\n {this.cardMode === 'input' &&\n (isFieldRequired('billing-country', this.currentRequiredFields) ||\n isFieldRequired('billing-state', this.currentRequiredFields) ||\n isFieldRequired('billing-address', this.currentRequiredFields) ||\n isFieldRequired('billing-city', this.currentRequiredFields) ||\n isFieldRequired('billing-zip', this.currentRequiredFields)) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n countryOptions={this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }))}\n billingView={this.hasPrefilledAddress() ? 'form' : 'search'}\n errors={{\n 'billing-country': errors['billing-country'],\n 'billing-state': errors['billing-state'],\n 'billing-address': errors['billing-address'],\n 'billing-city': errors['billing-city'],\n 'billing-zip': errors['billing-zip'],\n }}\n />\n </div>\n )}\n {this.cardMode === 'input' &&\n isFieldRequired('phoneNumber', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone error={errors?.phoneNumber} />\n </div>\n )}\n\n {/* Show APM checkout response after successful payment submission */}\n {this.checkoutResponse?.result &&\n (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER) && (\n <apm-checkout\n paymentMethod={this.currentPaymentMethod}\n referenceId={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH\n ? this.checkoutResponse.result.data.referenceId\n : undefined\n }\n qrCodeData={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ? this.checkoutResponse.result.data.qrCode\n : undefined\n }\n providerName={renewalState.data.organization?.name || ''}\n expirationDate={(() => {\n const expirationDate = new Date();\n expirationDate.setDate(expirationDate.getDate() + 30);\n return expirationDate.toISOString();\n })()}\n country={renewalState.data.price.country}\n redirectUrl={this.checkoutResponse.result.data.url}\n />\n )}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'summary',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n {/* Payment Button */}\n <payment-button\n paymentMethod={this.currentPaymentMethod}\n isLoading={this.isSubmitting}\n isRenewal={true}\n trialPeriodDays={renewalState.data.subscription.trialPeriodDays}\n redirectUrl={!!this.checkoutResponse?.result?.data?.url}\n timeToRedirect={5000}\n country={renewalState.data.price.country}\n isDisabled={renewalState.fetchingInstallments}\n onSubmit={() => submit()}\n />\n\n {/* Disabled Button Below */}\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 <rebill-footer\n style={{\n marginTop: isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP)\n ? '24px'\n : 'auto',\n }}\n />\n </div>\n </div>\n\n {/* Desktop Summary */}\n {!isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div class=\"right-section\">\n <div class=\"checkout-summary-section\">\n {renderRenewalSummary({\n displayedComponents: ['header', 'details', 'summary'],\n })}\n </div>\n </div>\n )}\n </div>\n )}\n />\n )}\n </>\n );\n }\n}\n"],"names":["yup.string","renewalOnChange"],"mappings":"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"}
1
+ {"version":3,"file":"rebill-renewal.entry.js","sources":["src/components/renewal/utils/getRequiredFieldsRenewal.ts","src/components/renewal/rebill-renewal.css?tag=rebill-renewal","src/components/renewal/rebill-renewal.tsx"],"sourcesContent":["import { api } from '../../../api';\nimport { PAYMENT_METHOD_ENUM } from '../../../models/enums/payment-methods.enum';\nimport { renewalState } from '../../../store/renewal.store';\nimport { PaymentMethodMapper } from '../../../utils/payment-method-mapper';\nimport { mapRequiredFields, RequiredField } from '../../../utils/required-fields-mappers';\n\nexport interface RequiredFieldsResult {\n fields: string[];\n original: RequiredField[];\n}\n\nexport interface AllRequiredFieldsMap {\n [key: string]: RequiredFieldsResult;\n}\n\nconst getRequiredFields = async (\n currency: string,\n method: string,\n organizationId: string,\n): Promise<RequiredFieldsResult> => {\n const requiredFieldsResponse = await api.checkout.getRequiredFields(\n {\n currency,\n method,\n },\n organizationId,\n );\n\n return {\n fields: mapRequiredFields(requiredFieldsResponse.data),\n original: requiredFieldsResponse.data,\n };\n};\n\nexport const getAllRequiredFieldsRenewal = async (): Promise<AllRequiredFieldsMap> => {\n const paymentMethods = [\n ...new Set(renewalState.data.paymentMethods.map(pm => pm.type as PAYMENT_METHOD_ENUM)),\n ];\n const promises = paymentMethods.map(async paymentMethod => {\n try {\n const apiPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n paymentMethod,\n renewalState.data.price.country,\n );\n\n const result = await getRequiredFields(\n renewalState.data.price.currency,\n apiPaymentMethod,\n renewalState.data.organization.id,\n );\n\n return {\n paymentMethod,\n ...result,\n };\n } catch (error) {\n console.error(`Error getting required fields for ${paymentMethod}:`, error);\n return {\n paymentMethod,\n fields: [],\n original: [],\n };\n }\n });\n\n const results = await Promise.all(promises);\n const fieldsMap: AllRequiredFieldsMap = {};\n\n results.forEach(result => {\n fieldsMap[result.paymentMethod] = {\n fields: result.fields,\n original: result.original,\n };\n });\n return fieldsMap;\n};\n\nexport const getRequiredFieldsForMethod = (\n paymentMethod: PAYMENT_METHOD_ENUM,\n allRequiredFields: AllRequiredFieldsMap,\n): RequiredFieldsResult => {\n const storedFields = allRequiredFields[paymentMethod];\n if (storedFields) {\n return storedFields;\n } else {\n return {\n fields: [],\n original: [],\n };\n }\n};\n","@import '../../styles/variables.css';\n\n@media (max-width: 1024px) {\n .rebill-checkout-renewal {\n flex-direction: column;\n gap: 0;\n justify-content: flex-start;\n background: var(--rebill-color-background);\n padding: 20px;\n }\n .right-section .left-section {\n width: 100%;\n height: 100%;\n background: var(--rebill-color-background);\n }\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n height: 100%;\n margin-top: 24px;\n }\n .otp-container {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 24px;\n }\n}\n\n@media (min-width: 1025px) {\n .rebill-checkout-renewal {\n width: 100vw;\n min-height: 100vh;\n display: flex;\n flex-direction: row;\n justify-content: center;\n overflow-y: auto;\n }\n\n .left-section {\n display: flex;\n width: 60%;\n background: var(--rebill-color-background-left);\n justify-content: space-around;\n }\n\n .right-section {\n display: flex;\n padding-top: 72px;\n width: 40%;\n background: var(--rebill-color-background-right);\n position: sticky;\n top: 0;\n\n justify-content: center;\n }\n\n .checkout-form-section {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-bottom: 36px;\n margin-top: 24px;\n gap: 32px;\n }\n .left-section-container {\n max-width: 450px;\n min-width: 450px;\n margin: 2.5rem 2rem 1.5rem 2rem;\n display: flex;\n flex-direction: column;\n }\n\n .checkout-summary-section {\n max-width: 450px;\n min-width: 350px;\n margin: 0rem 2rem;\n background: var(--rebill-color-background-right);\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n width: 100%;\n }\n\n .checkout-form-section user-information,\n .checkout-form-section payment-method-selector,\n .checkout-form-section rebill-address,\n .checkout-summary-section rebill-summary {\n width: 100%;\n }\n\n /* Google Maps Autocomplete Styles */\n .pac-container {\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border: 1px solid #e0e0e0;\n margin-top: 4px;\n font-family: inherit;\n }\n\n .pac-item {\n padding: 10px 12px;\n cursor: pointer;\n border-top: none;\n }\n\n .pac-item:first-child {\n border-top: none;\n }\n\n .pac-item:hover {\n background-color: #f5f5f5;\n }\n\n .pac-item-query {\n font-weight: 500;\n }\n\n .pac-icon {\n display: none;\n }\n}\n\n.payment-button-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-bottom: 16px;\n}\n/* Animaciones para componentes condicionales */\n.animated-component {\n transition: all 0.3s ease-in-out;\n overflow: visible;\n}\n\n/* Keep overflow hidden only for sliding height animations */\n/* .animated-component.slide-in {\n overflow: hidden;\n} */\n\n.fade-in {\n animation: fadeIn 0.4s ease-in-out;\n}\n\n.slide-in {\n animation: slideIn 0.5s ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-20px);\n max-height: 0;\n }\n to {\n opacity: 1;\n transform: translateX(0);\n max-height: 450px;\n }\n}\n\n/* Animación para cuando se ocultan los componentes */\n.animated-component.hide {\n animation: fadeOut 0.3s ease-in-out forwards;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* Test Mode Chip Positioning */\nrebill-mode-sandbox {\n position: fixed;\n bottom: 50px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n}\n\n/* Ensure the chip is visible on all screen sizes */\n@media (max-width: 1024px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n\n@media (min-width: 1025px) {\n rebill-test-mode-chip {\n bottom: 46px;\n }\n}\n.mode-sandbox-mobile-container {\n display: flex;\n align-items: center;\n width: 100%;\n\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n}\n\n/* Desktop grande - mantener tamaños originales */\n@media (min-width: 1451px) {\n .left-section-container {\n min-width: 450px;\n margin: 2.5rem 5rem 1.5rem 5rem;\n }\n\n .checkout-summary-section {\n min-width: 450px;\n margin: 0rem 5rem;\n }\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport * as yup from 'yup';\nimport { api, Country } from '../../api';\nimport { SavedCard } from '../../api/entities/cards/types';\nimport {\n CheckoutStatusE,\n CreateAPMCheckoutRequest,\n CreateAPMCheckoutResponse,\n CreateCardCheckoutRequest,\n} from '../../api/entities/checkout/types';\nimport '../../components/checkout/apm/apm-checkout/apm-checkout';\nimport '../../components/checkout/processing-payment/processing-payment';\nimport { I18nService } from '../../i18n/i18n.service';\n\nimport { PaymentMethodNameE } from '../../models/enums/payment-method-name.enum';\nimport { PAYMENT_METHOD_ENUM } from '../../models/enums/payment-methods.enum';\nimport { PaymentMessageE } from '../../models/enums/payment-status.enum';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from '../../store/renewal.store';\nimport { BREAKPOINT_ENUM, getBreakpoint, isBreakpointBelow } from '../../utils/breakpoint';\nimport { COLORS_ENUM } from '../../utils/color-class-mapper';\nimport { generateIdempotencyKey } from '../../utils/generate-idempotency-key';\nimport { GoogleMapsService } from '../../utils/google-maps.service';\nimport { AlertErrorKeys, PaymentErrorMapper } from '../../utils/payment-error-mapper';\nimport { PaymentMethodMapper } from '../../utils/payment-method-mapper';\nimport { getFieldValues, isFieldRequired } from '../../utils/required-fields-mappers';\nimport {\n AllRequiredFieldsMap,\n getAllRequiredFieldsRenewal,\n getRequiredFieldsForMethod,\n} from './utils/getRequiredFieldsRenewal';\n\n@Component({\n tag: 'rebill-renewal',\n styleUrl: 'rebill-renewal.css',\n shadow: false,\n})\nexport class RebillRenewal {\n @Prop() renewalData!: string;\n @Prop() renewalToken!: string;\n\n @State() currentPaymentMethod: PAYMENT_METHOD_ENUM = PAYMENT_METHOD_ENUM.CARD;\n @State() isSubmitting: boolean = false;\n @State() isCardSubmitting: boolean = false;\n @State() isCardSuccess: boolean = false;\n @State() errorMessage: AlertErrorKeys | null = null;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() errorPaymentCard: boolean = false;\n @State() errorPaymentAPM: boolean = false;\n @State() initialData: any = {};\n @State() checkoutResponse: CreateAPMCheckoutResponse | null = null;\n @State() currentApmPaymentMethod: PaymentMethodNameE | null = null;\n @State() countries: Country[] = [];\n @State() allRequiredFields: AllRequiredFieldsMap = {};\n @State() currentRequiredFields: string[] = [];\n @State() errorCardInvalid: boolean = false;\n @State() cardMode: 'input' | 'select' | null = 'select';\n\n @Event() success: EventEmitter<any>;\n @Event() paymentError: EventEmitter<any>;\n @Event() paymentMethodSelected: EventEmitter<PAYMENT_METHOD_ENUM>;\n\n private validationSchema = {\n 'phoneNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('phoneNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.phoneRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-country': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-country', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.countryRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-state': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-state', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.stateRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-address': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-address', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.addressRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-city': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-city', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.cityRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'billing-zip': yup.string().when([], {\n is: () =>\n isFieldRequired('billing-zip', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.zipRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'bankId': yup.string().when([], {\n is: () => isFieldRequired('bankId', this.currentRequiredFields),\n then: schema => schema.required('validation.bankRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentType': yup.string().when([], {\n is: () =>\n isFieldRequired('documentType', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema => schema.required('validation.documentTypeRequired'),\n otherwise: schema => schema.notRequired(),\n }),\n 'documentNumber': yup.string().when([], {\n is: () =>\n isFieldRequired('documentNumber', this.currentRequiredFields) && this.cardMode === 'input',\n then: schema =>\n schema.required('validation.documentNumberRequired').min(7, 'validation.documentInvalid'),\n otherwise: schema => schema.notRequired(),\n }),\n };\n\n private resizeHandler = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n async componentWillLoad() {\n this.resizeHandler();\n window.addEventListener('resize', this.resizeHandler);\n\n const renewalProps =\n typeof this.renewalData === 'string' ? JSON.parse(this.renewalData) : this.renewalData;\n\n RenewalStore.initializeRenewal({\n ...renewalProps,\n token: this.renewalToken,\n });\n\n // Load Google Maps script for address autocomplete\n GoogleMapsService.loadGoogleMapsScript();\n\n // Load countries data\n try {\n const response = await api.data.getCountries();\n this.countries = response.data;\n } catch (error) {\n console.error('Error loading countries:', error);\n }\n\n // Load required fields data\n try {\n this.allRequiredFields = await getAllRequiredFieldsRenewal();\n } catch (error) {\n console.error('Error loading required fields:', error);\n }\n\n if (renewalState.data.paymentMethods.length > 0) {\n let defaultPaymentMethod: PAYMENT_METHOD_ENUM | null = null;\n\n if (renewalState.data.subscription?.paymentMethod) {\n const subscriptionPaymentMethod =\n renewalState.data.subscription.paymentMethod.toLowerCase();\n const mappedMethod =\n subscriptionPaymentMethod === 'card'\n ? PAYMENT_METHOD_ENUM.CARD\n : subscriptionPaymentMethod === 'bank_transfer'\n ? PAYMENT_METHOD_ENUM.BANK_TRANSFER\n : null;\n\n if (mappedMethod) {\n const isAvailable = renewalState.data.paymentMethods.some(pm => pm.type === mappedMethod);\n if (isAvailable) {\n defaultPaymentMethod = mappedMethod;\n }\n }\n }\n\n if (!defaultPaymentMethod) {\n defaultPaymentMethod = renewalState.data.paymentMethods[0].type as PAYMENT_METHOD_ENUM;\n }\n\n this.currentPaymentMethod = defaultPaymentMethod;\n RenewalStore.setSelectedPaymentMethod(defaultPaymentMethod);\n\n if (defaultPaymentMethod !== PAYMENT_METHOD_ENUM.CARD) {\n this.cardMode = 'input';\n RenewalStore.setCardMode('input');\n }\n\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n defaultPaymentMethod,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for method:', error);\n }\n\n await this.initializeFingerprint(defaultPaymentMethod);\n }\n\n this.initialData = this.getInitialData();\n\n renewalOnChange('cardMode', () => {\n this.cardMode = renewalState.cardMode;\n });\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.resizeHandler);\n }\n\n @Listen('paymentMethodSelected')\n async handlePaymentMethodSelected(event: CustomEvent<PAYMENT_METHOD_ENUM>) {\n event.stopPropagation();\n\n if (this.currentPaymentMethod === event.detail) {\n return;\n }\n\n this.currentPaymentMethod = event.detail;\n RenewalStore.setSelectedPaymentMethod(this.currentPaymentMethod);\n\n // Change cardMode to 'input' if payment method is not CARD\n if (this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD) {\n this.cardMode = 'input';\n RenewalStore.setCardMode('input');\n }\n\n // Update required fields for the new payment method\n try {\n this.currentRequiredFields = getRequiredFieldsForMethod(\n this.currentPaymentMethod,\n this.allRequiredFields,\n ).fields;\n } catch (error) {\n console.error('Error getting required fields for method:', error);\n }\n\n // Note: Fingerprint is handled in componentWillLoad\n\n // Initialize fingerprint for the new payment method\n await this.initializeFingerprint(this.currentPaymentMethod);\n\n this.paymentMethodSelected.emit(event.detail);\n }\n\n private async initializeFingerprint(paymentMethod: PAYMENT_METHOD_ENUM) {\n // Only initialize fingerprint for card payments and if not already generated\n if (paymentMethod === PAYMENT_METHOD_ENUM.CARD && !renewalState.deviceId) {\n try {\n const uuid = crypto.randomUUID();\n const fingerprintResponse = await api.fingerPrint.getFingerPrint(uuid);\n RenewalStore.setDeviceId(uuid);\n const script = fingerprintResponse.result.script;\n const scriptElement = document.createElement('script');\n scriptElement.innerHTML = script;\n document.body.appendChild(scriptElement);\n } catch (error) {\n console.error('Failed to initialize fingerprint:', error);\n }\n }\n }\n\n @Listen('bankSelected')\n handleBankSelected(event: CustomEvent<string>) {\n event.stopPropagation();\n RenewalStore.setSelectedBankId(event.detail);\n }\n\n @Listen('cardSelected')\n handleCardSelected(event: CustomEvent<{ card: SavedCard; cvv?: string }>) {\n const { card, cvv } = event.detail;\n RenewalStore.setSelectedCard(card);\n RenewalStore.setCvv(cvv || '');\n }\n\n private get currentPaymentError(): boolean {\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n return this.errorPaymentCard;\n } else if (\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ) {\n return this.errorPaymentAPM;\n }\n return false;\n }\n\n private async handleSubmit(event?: CustomEvent) {\n if (this.isSubmitting) {\n return;\n }\n\n if (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CARD) {\n await this.handleCardRenewal(event);\n } else {\n await this.handleAPMRenewal(event);\n }\n }\n\n private async handleCardRenewal(event?: CustomEvent) {\n const formData = event?.detail || this.getInitialData();\n\n if (!renewalState.data.cardId && !renewalState.data.cardTokenId) {\n this.errorCardInvalid = true;\n return;\n }\n if (!renewalState.data.cardInformation && !renewalState.data.cardId) {\n this.errorCardInvalid = true;\n return;\n }\n this.errorCardInvalid = false;\n this.isSubmitting = true;\n this.isCardSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const renewalRequest: CreateCardCheckoutRequest = {\n transaction: {\n quantity: 1,\n },\n ...(renewalState.data.cardId && { cardId: renewalState.data.cardId }),\n ...(renewalState.data.cardTokenId && { cardTokenId: renewalState.data.cardTokenId }),\n customAttributes: {\n ...(renewalState.deviceId && { deviceId: renewalState.deviceId }),\n },\n ...(this.cardMode === 'input' && {\n customer: {\n firstName:\n formData.fullName?.split(' ')[0] ||\n renewalState.data.subscription.customerName?.split(' ')[0],\n lastName:\n formData.fullName?.split(' ').slice(1).join(' ') ||\n renewalState.data.subscription.customerName?.split(' ').slice(1).join(' '),\n email: formData.email || renewalState.data.subscription.customerEmail,\n phone: {\n countryCode: formData.countryCodePhoneNumber || '',\n number: formData.phoneNumber || '',\n },\n },\n billingDetails: {\n address: {\n lineOne: formData['billing-address'] || '',\n city: formData['billing-city'] || '',\n state: formData['billing-state'] || '',\n country: formData['billing-country'] || '',\n zipCode: formData['billing-zip'] || '',\n },\n identification: {\n type: formData.documentType || '',\n value: formData.documentNumber || '',\n },\n },\n }),\n };\n\n const idempotencyKey = generateIdempotencyKey();\n const response = await api.checkout.createCardCheckoutRequest(\n renewalState.data.id,\n idempotencyKey,\n renewalRequest,\n renewalState.token,\n );\n\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n RenewalStore.setCheckoutResponse(response.data);\n\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n } else {\n this.isCardSuccess = false;\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: response.data.error?.error?.message as PaymentMessageE,\n };\n }\n } catch (error: any) {\n this.isSubmitting = false;\n this.isCardSubmitting = false;\n RenewalStore.setLoading(false);\n\n this.errorPaymentCard = true;\n this.errorMessage = {\n message: error.data?.error?.message as PaymentMessageE,\n };\n }\n }\n\n private async handleAPMRenewal(event?: CustomEvent) {\n this.isSubmitting = true;\n RenewalStore.setLoading(true);\n\n try {\n const apmPaymentMethod = PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n renewalState.data.price.country,\n );\n\n // Get form data for billing details and customer info\n const formData = event?.detail || this.getFormData();\n\n // Transform form data to match CreateAPMCheckoutRequest structure\n const billingDetails = {\n address: {\n country: formData['billing-country'],\n state: formData['billing-state'] || '',\n city: formData['billing-city'] || '',\n zipCode: formData['billing-zip'] || '',\n lineOne: formData['billing-address'] || '',\n },\n identification: {\n type: formData.documentType || 'dni',\n value: formData.documentNumber || '',\n },\n };\n\n const renewalRequest: CreateAPMCheckoutRequest = {\n transaction: {\n quantity: 1,\n },\n method: apmPaymentMethod,\n billingDetails,\n redirect: {\n approved: window.location.origin + '/renewal/success',\n rejected: window.location.origin + '/renewal/failure',\n },\n paymentMetadata: {\n orderId: renewalState.data.id,\n source: 'renewal-web',\n },\n customAttributes: {\n bank: formData.bankId || '',\n },\n // Remove targetCurrency for PSE payments as it's not supported\n ...(apmPaymentMethod !== PaymentMethodNameE.CO_TRANSFERENCE_PSE && {\n targetCurrency: renewalState.data.price.currency,\n }),\n };\n\n // Add customer data for renewal\n renewalRequest.customer = {\n firstName:\n formData.fullName?.split(' ')[0] ||\n renewalState.data.subscription.customerName.split(' ')[0] ||\n '',\n lastName:\n formData.fullName?.split(' ').slice(1).join(' ') ||\n renewalState.data.subscription.customerName.split(' ').slice(1).join(' ') ||\n '',\n email: formData.email || renewalState.data.subscription.customerEmail,\n phone: {\n countryCode: formData.countryCodePhoneNumber || '',\n number: formData.phoneNumber || '',\n },\n };\n\n const idempotencyKey = generateIdempotencyKey();\n const response = await api.checkout.createAPMCheckoutRequest(\n renewalState.data.id,\n idempotencyKey,\n renewalRequest,\n );\n\n this.isSubmitting = false;\n RenewalStore.setLoading(false);\n RenewalStore.setCheckoutResponse(response.data);\n this.checkoutResponse = response.data;\n if (response.data.result?.status.toUpperCase() === CheckoutStatusE.APPROVED) {\n this.isCardSuccess = true;\n } else {\n this.paymentError.emit(response.data);\n RenewalStore.setCheckoutResponse(response.data);\n this.errorPaymentAPM = true;\n\n this.errorMessage = {\n alertTitle: response.data?.error?.message as PaymentMessageE,\n message: response.data.error?.message as PaymentMessageE,\n };\n }\n } catch (error: any) {\n this.isSubmitting = false;\n RenewalStore.setLoading(false);\n this.paymentError.emit(error);\n this.errorPaymentAPM = true;\n\n this.errorMessage = {\n alertTitle: error.data?.error?.message as PaymentMessageE,\n message: error.data?.error?.message,\n };\n }\n }\n\n private getFormData = () => {\n return this.initialData;\n };\n\n private getInitialData = () => {\n return {\n 'email': renewalState.data.subscription.customerEmail,\n 'fullName': renewalState.data.subscription.customerName,\n 'card': '',\n 'billing-country': '',\n 'billing-state': '',\n 'billing-address': '',\n 'billing-city': '',\n 'billing-zip': '',\n 'bankId': '',\n 'phoneNumber': '',\n 'countryCodePhoneNumber': '',\n 'documentType': '',\n 'documentNumber': '',\n };\n };\n\n private hasPrefilledAddress = () => {\n const billingFields = [\n 'billing-country',\n 'billing-state',\n 'billing-address',\n 'billing-city',\n 'billing-zip',\n ];\n return billingFields.some(key => {\n const value = this.initialData[key];\n return value && value.trim() !== '';\n });\n };\n\n private getPaymentDate = (): string => {\n const payment = renewalState.form.checkoutResponse;\n if (!payment) return '';\n\n if ('date' in payment) {\n return payment.date as string;\n }\n\n return '';\n };\n\n private getReferenceNumber = (): string => {\n const payment = renewalState.form.checkoutResponse;\n if (!payment) return '';\n if ('traceId' in payment) {\n return payment.traceId as string;\n }\n\n return '';\n };\n\n render() {\n if (!renewalState.isInitialized) {\n return <div class=\"loading\">{I18nService.translate('renewal.loading')}</div>;\n }\n\n const renderRenewalSummary = props => (\n <renewal-summary\n totalAmount={renewalState.data.price.amount}\n currency={renewalState.data.price.currency}\n subscriptionTitle={renewalState.data.subscription.name[0]?.text || 'Subscription'}\n subscriptionAmount={renewalState.data.subscription.amount}\n nextChargeDate={renewalState.data.subscription.nextChargeDate}\n frequency={renewalState.data.subscription.frequency}\n couponCode={renewalState.data.price.couponCode}\n discountAmount={renewalState.data.price.discountedAmount}\n discountPercentage={renewalState.data.price.discountPercentage}\n {...props}\n />\n );\n\n return (\n <>\n <rebill-processing-payment style={{ display: this.isCardSubmitting ? 'block' : 'none' }} />\n {this.isCardSuccess ? (\n <renewal-success-page\n typePaymentMethod={this.currentPaymentMethod}\n paymentDate={this.getPaymentDate()}\n referenceNumber={this.getReferenceNumber()}\n cardLastFour={renewalState.data.subscription.cardLastFour}\n country={renewalState.data.price.country}\n paymentMethodName={PaymentMethodMapper.mapToAPMPaymentMethod(\n this.currentPaymentMethod,\n renewalState.data?.price?.country,\n )}\n bank={renewalState.form?.selectedBankId || ''}\n />\n ) : (\n <rebill-checkout-form\n style={{ display: this.isCardSubmitting || this.isCardSuccess ? 'none' : 'block' }}\n validationSchema={this.validationSchema}\n initialData={this.initialData}\n onSubmit={(args: any) => this.handleSubmit(args)}\n renderForm={({ submit, formData, errors }) => (\n <div class=\"rebill-checkout-renewal\">\n <div class=\"left-section\">\n <div class=\"left-section-container\">\n <organization-logo organization={renewalState.data.organization} />\n\n <div class=\"checkout-form-section\">\n {/* Customer Information - Readonly */}\n <user-information-static\n userInfo={{\n customerName: renewalState.data.subscription.customerName,\n customerEmail: renewalState.data.subscription.customerEmail,\n }}\n />\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'header',\n })}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'details',\n })}\n\n {/* Payment Method Selection */}\n <div style={{ display: 'flex', flexDirection: 'column', gap: '32px' }}>\n <payment-method-selector\n enabledPaymentMethods={[\n ...new Set(\n renewalState.data.paymentMethods.map(\n pm => pm.type as PAYMENT_METHOD_ENUM,\n ),\n ),\n ]}\n defaultSelected={this.currentPaymentMethod}\n errorComponent={{\n showErrorComponent: this.currentPaymentError,\n alertTitle: PaymentErrorMapper.getErrorTitle(\n this.currentPaymentMethod,\n renewalState.data.price.country,\n this.errorMessage?.alertTitle,\n ),\n message: PaymentErrorMapper.getErrorMessage(\n this.errorMessage?.message,\n this.currentPaymentMethod,\n renewalState.data.price.country,\n ),\n }}\n cardError={{\n showCardInvalid: this.errorCardInvalid,\n type: null,\n }}\n country={renewalState.data.price.country}\n documentTypeError={errors?.documentType}\n documentNumberError={errors?.documentNumber}\n showDocument={\n this.cardMode === 'input' &&\n (isFieldRequired('documentType', this.currentRequiredFields) ||\n isFieldRequired('documentNumber', this.currentRequiredFields))\n }\n />\n {/* Alert for non-card payment methods */}\n {this.currentPaymentMethod !== PAYMENT_METHOD_ENUM.CARD &&\n renewalState.data.subscription?.paymentMethod ===\n PAYMENT_METHOD_ENUM.CARD && (\n <rebill-alert\n type=\"info\"\n message={I18nService.translate('renewal.paymentMethodAlert', {\n cardLastFour:\n renewalState.data?.subscription?.cardLastFour || '****',\n })}\n icon=\"calendar-edit\"\n variant=\"outlined\"\n colorIcon={COLORS_ENUM.PRIMARY}\n />\n )}\n {this.cardMode === 'input' &&\n isFieldRequired('bankId', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <rebill-bank-selector\n banks={\n getFieldValues(\n 'bank',\n this.allRequiredFields[this.currentPaymentMethod]?.original,\n ) || []\n }\n defaultSelectedBankId={formData.bankId || ''}\n error={errors?.bankId}\n />\n </div>\n )}\n </div>\n {this.cardMode === 'input' &&\n (isFieldRequired('billing-country', this.currentRequiredFields) ||\n isFieldRequired('billing-state', this.currentRequiredFields) ||\n isFieldRequired('billing-address', this.currentRequiredFields) ||\n isFieldRequired('billing-city', this.currentRequiredFields) ||\n isFieldRequired('billing-zip', this.currentRequiredFields)) && (\n <div class=\"animated-component slide-in\">\n <rebill-address\n countryOptions={this.countries.map(country => ({\n label: country.country,\n value: country.isoCountryCode,\n }))}\n billingView={this.hasPrefilledAddress() ? 'form' : 'search'}\n errors={{\n 'billing-country': errors['billing-country'],\n 'billing-state': errors['billing-state'],\n 'billing-address': errors['billing-address'],\n 'billing-city': errors['billing-city'],\n 'billing-zip': errors['billing-zip'],\n }}\n />\n </div>\n )}\n {this.cardMode === 'input' &&\n isFieldRequired('phoneNumber', this.currentRequiredFields) && (\n <div class=\"animated-component fade-in\">\n <user-information-phone error={errors?.phoneNumber} />\n </div>\n )}\n\n {/* Show APM checkout response after successful payment submission */}\n {this.checkoutResponse?.result &&\n (this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH ||\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER) && (\n <apm-checkout\n paymentMethod={this.currentPaymentMethod}\n referenceId={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.CASH\n ? this.checkoutResponse.result.data.referenceId\n : undefined\n }\n qrCodeData={\n this.currentPaymentMethod === PAYMENT_METHOD_ENUM.BANK_TRANSFER\n ? this.checkoutResponse.result.data.qrCode\n : undefined\n }\n providerName={renewalState.data.organization?.name || ''}\n expirationDate={(() => {\n const expirationDate = new Date();\n expirationDate.setDate(expirationDate.getDate() + 30);\n return expirationDate.toISOString();\n })()}\n country={renewalState.data.price.country}\n redirectUrl={this.checkoutResponse.result.data.url}\n />\n )}\n\n {isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) &&\n renderRenewalSummary({\n displayedComponents: 'summary',\n })}\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n {/* Payment Button */}\n <payment-button\n paymentMethod={this.currentPaymentMethod}\n isLoading={this.isSubmitting}\n isRenewal={true}\n trialPeriodDays={renewalState.data.subscription.trialPeriodDays}\n redirectUrl={!!this.checkoutResponse?.result?.data?.url}\n timeToRedirect={5000}\n country={renewalState.data.price.country}\n isDisabled={renewalState.fetchingInstallments}\n onSubmit={() => submit()}\n />\n\n {/* Disabled Button Below */}\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 <rebill-footer\n style={{\n marginTop: isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP)\n ? '24px'\n : 'auto',\n }}\n />\n </div>\n </div>\n\n {/* Desktop Summary */}\n {!isBreakpointBelow(this.breakpoint, BREAKPOINT_ENUM.DESKTOP) && (\n <div class=\"right-section\">\n <div class=\"checkout-summary-section\">\n {renderRenewalSummary({\n displayedComponents: ['header', 'details', 'summary'],\n })}\n </div>\n </div>\n )}\n </div>\n )}\n />\n )}\n </>\n );\n }\n}\n"],"names":["yup.string","renewalOnChange"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebill-timeline-debit-day.rebill-timeline-free-trial.entry.js","sources":["src/models/enums/debit-strategy.enum.ts","src/components/shared/timeline/timeline-debit-day.css?tag=rebill-timeline-debit-day","src/components/shared/timeline/timeline-debit-day.tsx","src/components/shared/timeline/timeline-free-trial.css?tag=rebill-timeline-free-trial","src/components/shared/timeline/timeline-free-trial.tsx"],"sourcesContent":["export enum DEBIT_STRATEGY_ENUM {\n CHARGE_FULL = 'charge_full',\n CHARGE_NEXT_CYCLE = 'charge_next_cycle',\n CHARGE_PRORATED = 'charge_prorated',\n}\n",".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: 45px;\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-icon {\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.event-date rebill-icon {\n display: inline-block;\n vertical-align: text-top;\n margin: 0 4px;\n width: 14px;\n height: 14px;\n transform: translateY(-1px);\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 { DEBIT_STRATEGY_ENUM } from '../../../models/enums/debit-strategy.enum';\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: 'today' | 'first_charge' | 'recurring';\n date: string;\n title: string;\n description?: string;\n icon: string;\n amount?: string;\n discountInfo?: string;\n}\n\n@Component({\n tag: 'rebill-timeline-debit-day',\n styleUrl: 'timeline-debit-day.css',\n shadow: false,\n})\nexport class TimelineDebitDay {\n @State() currentLanguage: string;\n\n @Prop() debitDay: number;\n @Prop() totalAmount: number;\n @Prop() planAmount: number;\n @Prop() currency: string;\n @Prop() debitStrategy: DEBIT_STRATEGY_ENUM;\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 totalAmountFormatted() {\n return formatAmount(this.totalAmount, this.currency, false);\n }\n\n private get planAmountFormatted() {\n return formatAmount(this.planAmount, 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 return this.discountApplied && (this.discountedPercentage > 0 || this.discountAmount > 0);\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 calculateDelayedChargeDate(): string {\n if (!this.hasDiscountApplied || !this.discountDuration) {\n return this.getDateForDay(this.debitDay);\n }\n\n const today = new Date();\n const targetDate = new Date(today);\n\n targetDate.setMonth(today.getMonth() + this.discountDuration);\n targetDate.setDate(this.debitDay);\n\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n componentWillLoad() {\n this.currentLanguage = this.language || i18n.language;\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 || i18n.language;\n };\n\n private getDateForDay(dayNumber: number): string {\n const today = new Date();\n const targetDate = new Date(today);\n\n if (dayNumber === 1) {\n // Día 1 es siempre hoy\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n } else {\n const currentMonth = today.getMonth();\n\n if (this.debitDay < today.getDate()) {\n targetDate.setMonth(currentMonth + 1);\n }\n\n targetDate.setDate(this.debitDay);\n return targetDate.toLocaleDateString(this.currentLanguage, {\n day: 'numeric',\n month: 'long',\n timeZone: 'UTC',\n });\n }\n }\n\n private getNextMonthName(): string {\n const today = new Date();\n const nextMonth = new Date(today);\n nextMonth.setMonth(today.getMonth() + 1);\n return nextMonth.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n private getMonthNameForDebitDay(): string {\n const today = new Date();\n const targetDate = new Date(today);\n if (this.debitDay < today.getDate()) {\n targetDate.setMonth(today.getMonth() + 1);\n }\n\n return targetDate.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n private getMonthNameForDelayedCharge(): string {\n if (!this.hasDiscountApplied || !this.discountDuration) {\n return this.getNextMonthName();\n }\n\n const today = new Date();\n const targetDate = new Date(today);\n targetDate.setMonth(today.getMonth() + this.discountDuration);\n\n return targetDate.toLocaleDateString(this.currentLanguage, {\n month: 'long',\n timeZone: 'UTC',\n });\n }\n\n private buildEvents(): TimelineEvent[] {\n const events: TimelineEvent[] = [];\n const nextMonthName = this.getNextMonthName();\n const delayedChargeDate = this.calculateDelayedChargeDate();\n const discountInfo = this.hasDiscountApplied ? this.getDiscountDescription() : undefined;\n\n switch (this.debitStrategy) {\n case DEBIT_STRATEGY_ENUM.CHARGE_FULL:\n events.push({\n day: 1,\n type: 'today',\n date: this.getDateForDay(1),\n title: i18n.t('timeline.today'),\n description: i18n.t('timeline.chargeFullToday', {\n amount: `$${this.totalAmountFormatted}`,\n }),\n icon: 'circle-calendar',\n discountInfo,\n });\n\n events.push({\n day: this.debitDay,\n type: 'recurring',\n date: this.hasDiscountApplied ? delayedChargeDate : '',\n title: i18n.t('timeline.after'),\n description: i18n.t('timeline.recurringCharge', {\n day: this.debitDay,\n amount: `$${this.planAmountFormatted}`,\n month: this.hasDiscountApplied ? this.getMonthNameForDelayedCharge() : nextMonthName,\n }),\n icon: 'circle-receipt-active',\n });\n break;\n\n case DEBIT_STRATEGY_ENUM.CHARGE_NEXT_CYCLE:\n events.push({\n day: 1,\n type: 'today',\n date: this.getDateForDay(1),\n title: i18n.t('timeline.today'),\n icon: 'circle-calendar',\n amount: `$${this.totalAmountFormatted}`,\n discountInfo,\n });\n\n events.push({\n day: this.debitDay,\n type: 'first_charge',\n date: this.hasDiscountApplied ? delayedChargeDate : this.getDateForDay(this.debitDay),\n title: i18n.t('timeline.firstCharge'),\n description: '',\n icon: 'circle-receipt',\n amount: `$${this.planAmountFormatted}`,\n });\n\n events.push({\n day: this.debitDay + 1,\n type: 'recurring',\n date: '',\n title: i18n.t('timeline.after'),\n description: i18n.t('timeline.recurringCharge', {\n day: this.debitDay,\n amount: `$${this.planAmountFormatted}`,\n month: this.hasDiscountApplied ? this.getMonthNameForDelayedCharge() : nextMonthName,\n }),\n icon: 'clock-and-calendar',\n });\n break;\n\n case DEBIT_STRATEGY_ENUM.CHARGE_PRORATED:\n events.push({\n day: 1,\n type: 'today',\n date: this.getDateForDay(1),\n title: i18n.t('timeline.today'),\n description: i18n.t('timeline.proratedCharge', {\n amount: `$${this.totalAmountFormatted}`,\n day: this.debitDay,\n month: this.getMonthNameForDebitDay(),\n }),\n icon: 'circle-calendar',\n amount: `$${this.totalAmountFormatted}`,\n discountInfo,\n });\n\n events.push({\n day: this.debitDay,\n type: 'first_charge',\n date: this.hasDiscountApplied ? delayedChargeDate : this.getDateForDay(this.debitDay),\n title: i18n.t('timeline.firstCharge'),\n description: '',\n icon: 'circle-receipt',\n amount: `$${this.planAmountFormatted}`,\n });\n\n events.push({\n day: this.debitDay + 1,\n type: 'recurring',\n date: '',\n title: i18n.t('timeline.after'),\n description: i18n.t('timeline.recurringCharge', {\n day: this.debitDay,\n amount: `$${this.planAmountFormatted}`,\n month: this.hasDiscountApplied ? this.getMonthNameForDelayedCharge() : nextMonthName,\n }),\n icon: 'clock-and-calendar',\n });\n break;\n }\n\n return events;\n }\n\n private renderEvent(event: TimelineEvent, isLast: boolean, isFirst: boolean) {\n const events = this.buildEvents();\n const totalEvents = events.length;\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-icon\"\n height={event.discountInfo ? '65px' : '45px'}\n />\n ) : (\n <rebill-vertical-divider\n connectorActive\n color={COLORS_ENUM.INFO_BORDER}\n class=\"timeline-connector-icon\"\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-icon\"\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.amount ? (\n <span>\n {event.date} <rebill-icon name=\"arrow-right\" /> {event.amount} {event.description}\n </span>\n ) : event.date ? (\n `${event.date} - ${event.description}`\n ) : (\n event.description\n )}\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),\n )}\n </div>\n </div>\n );\n }\n}\n",".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"],"names":["i18n","sessionState"],"mappings":"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"}