rebill-web-components-sdk 1.8.3-beta.3 → 1.8.3-beta.5
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.
- package/dist/cjs/apm-checkout_16.cjs.entry.js +2 -2
- package/dist/cjs/apm-checkout_16.cjs.entry.js.map +1 -1
- package/dist/cjs/card-identification.card-iframe.card-skeleton.rebill-input-combo.rebill-installments.entry.cjs.js.map +1 -1
- package/dist/cjs/card-identification_5.cjs.entry.js +1 -1
- package/dist/cjs/card-identification_5.cjs.entry.js.map +1 -1
- package/dist/cjs/card-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/card-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/card-skeleton.entry.cjs.js.map +1 -1
- package/dist/cjs/collapsible-card.cjs.entry.js +1 -1
- package/dist/cjs/collapsible-card.cjs.entry.js.map +1 -1
- package/dist/cjs/collapsible-card.entry.cjs.js.map +1 -1
- package/dist/cjs/{organization-logo-BZqb4lkj.js → organization-logo-D4gP9Bg_.js} +3 -3
- package/dist/cjs/{organization-logo-BZqb4lkj.js.map → organization-logo-D4gP9Bg_.js.map} +1 -1
- package/dist/cjs/{organization-logo-Dnfazz63.js → organization-logo-x4KEuA72.js} +3 -3
- package/dist/cjs/{organization-logo-Dnfazz63.js.map → organization-logo-x4KEuA72.js.map} +1 -1
- package/dist/cjs/organization-logo.cjs.entry.js +1 -1
- package/dist/cjs/organization-logo_4.cjs.entry.js +1 -1
- package/dist/cjs/otp-component.cjs.entry.js +5 -5
- package/dist/cjs/otp-component.cjs.entry.js.map +1 -1
- package/dist/cjs/otp-component.entry.cjs.js.map +1 -1
- package/dist/cjs/otp-component.rebill-modal-overlay.rebill-mode-sandbox.rebill-mode-sandbox-mobile.rebill-summary.success-page.user-information.entry.cjs.js.map +1 -1
- package/dist/cjs/otp-component_7.cjs.entry.js +10 -10
- package/dist/cjs/otp-component_7.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-address.cjs.entry.js +1 -1
- package/dist/cjs/rebill-address.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-address.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-checkout.cjs.entry.js +1 -1
- package/dist/cjs/rebill-icon.rebill-typography.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-icon_2.cjs.entry.js +1 -1
- package/dist/cjs/rebill-icon_2.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-input-text.cjs.entry.js +2 -2
- package/dist/cjs/rebill-input-text.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-input-text.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-mode-sandbox-mobile.cjs.entry.js +4 -4
- package/dist/cjs/rebill-mode-sandbox-mobile.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-mode-sandbox-mobile.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-renewal.cjs.entry.js +1 -1
- package/dist/cjs/rebill-renewal.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-renewal.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-typography.cjs.entry.js +1 -1
- package/dist/cjs/rebill-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/rebill-typography.entry.cjs.js.map +1 -1
- package/dist/cjs/renewal-success-page.cjs.entry.js +1 -1
- package/dist/cjs/renewal-success-page.cjs.entry.js.map +1 -1
- package/dist/cjs/renewal-success-page.entry.cjs.js.map +1 -1
- package/dist/cjs/renewal-success-page.renewal-summary.entry.cjs.js.map +1 -1
- package/dist/cjs/renewal-success-page_2.cjs.entry.js +1 -1
- package/dist/cjs/renewal-success-page_2.cjs.entry.js.map +1 -1
- package/dist/cjs/root-component.cjs.entry.js +1 -1
- package/dist/cjs/root-component.cjs.entry.js.map +1 -1
- package/dist/cjs/root-component.entry.cjs.js.map +1 -1
- package/dist/cjs/selectable-card.cjs.entry.js +1 -1
- package/dist/cjs/selectable-card.cjs.entry.js.map +1 -1
- package/dist/cjs/selectable-card.entry.cjs.js.map +1 -1
- package/dist/cjs/success-page.cjs.entry.js +1 -1
- package/dist/cjs/success-page.cjs.entry.js.map +1 -1
- package/dist/cjs/success-page.entry.cjs.js.map +1 -1
- package/dist/collection/components/checkout/address/address.css +0 -6
- package/dist/collection/components/checkout/card-success-page/success-page.css +0 -6
- package/dist/collection/components/checkout/otp/otp.css +16 -16
- package/dist/collection/components/checkout/otp/otp.js +4 -4
- package/dist/collection/components/checkout/otp/otp.js.map +1 -1
- package/dist/collection/components/checkout/payment-method-selector/card-fields/iframe/skeleton/cardSkeleton.css +0 -6
- package/dist/collection/components/renewal/rebill-renewal.css +0 -6
- package/dist/collection/components/renewal/renewal-success-page/renewal-success-page.css +0 -6
- package/dist/collection/components/root-component/root-component.css +0 -6
- package/dist/collection/components/shared/collapsible-card/collapsible-card.css +0 -6
- package/dist/collection/components/shared/inputs/input-text/input-text.css +4 -4
- package/dist/collection/components/shared/inputs/input-text/input-text.js +1 -1
- package/dist/collection/components/shared/inputs/input-text/input-text.js.map +1 -1
- package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.css +21 -16
- package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js +3 -3
- package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js.map +1 -1
- package/dist/collection/components/shared/organization-logo/organization-logo.css +0 -6
- package/dist/collection/components/shared/selectable-card/selectable-card.css +0 -6
- package/dist/collection/components/shared/typography/typography.css +0 -6
- package/dist/components/CardSkeleton.js +1 -1
- package/dist/components/CardSkeleton.js.map +1 -1
- package/dist/components/address.js +1 -1
- package/dist/components/address.js.map +1 -1
- package/dist/components/collapsible-card2.js +1 -1
- package/dist/components/collapsible-card2.js.map +1 -1
- package/dist/components/input-text.js +2 -2
- package/dist/components/input-text.js.map +1 -1
- package/dist/components/mode-sandbox-mobile.js +4 -4
- package/dist/components/mode-sandbox-mobile.js.map +1 -1
- package/dist/components/organization-logo2.js +1 -1
- package/dist/components/organization-logo2.js.map +1 -1
- package/dist/components/otp.js +5 -5
- package/dist/components/otp.js.map +1 -1
- package/dist/components/{p-F4jLIfkG.js → p-0BTfY4S5.js} +7 -7
- package/dist/components/{p-F4jLIfkG.js.map → p-0BTfY4S5.js.map} +1 -1
- package/dist/components/{p-BhZLfMCq.js → p-8Z6_-yhm.js} +4 -4
- package/dist/components/p-8Z6_-yhm.js.map +1 -0
- package/dist/components/{p-N7wfNpl2.js → p-B9aIvZlq.js} +4 -4
- package/dist/components/{p-N7wfNpl2.js.map → p-B9aIvZlq.js.map} +1 -1
- package/dist/components/{p-C1Jzk6t7.js → p-B9aJ7_rc.js} +9 -9
- package/dist/components/{p-C1Jzk6t7.js.map → p-B9aJ7_rc.js.map} +1 -1
- package/dist/components/{p-C-BFyHag.js → p-BId02g8-.js} +9 -9
- package/dist/components/p-BId02g8-.js.map +1 -0
- package/dist/components/{p-BGIg233G.js → p-BOrcSA8T.js} +3 -3
- package/dist/components/{p-BGIg233G.js.map → p-BOrcSA8T.js.map} +1 -1
- package/dist/components/{p-D_sGE3-j.js → p-BRjIL3fw.js} +3 -3
- package/dist/components/{p-D_sGE3-j.js.map → p-BRjIL3fw.js.map} +1 -1
- package/dist/components/{p-FoWuzUYH.js → p-BVfV2NVA.js} +6 -6
- package/dist/components/{p-FoWuzUYH.js.map → p-BVfV2NVA.js.map} +1 -1
- package/dist/components/{p-mGnGyYiQ.js → p-BVtSIdnS.js} +4 -4
- package/dist/components/{p-mGnGyYiQ.js.map → p-BVtSIdnS.js.map} +1 -1
- package/dist/components/{p-D6JNNodL.js → p-BZ90sz6G.js} +3 -3
- package/dist/components/{p-D6JNNodL.js.map → p-BZ90sz6G.js.map} +1 -1
- package/dist/components/{p-JVLfbdAy.js → p-C0a5bxXF.js} +3 -3
- package/dist/components/{p-JVLfbdAy.js.map → p-C0a5bxXF.js.map} +1 -1
- package/dist/components/{p-D_PXcKNq.js → p-C8bwQKOB.js} +3 -3
- package/dist/components/{p-D_PXcKNq.js.map → p-C8bwQKOB.js.map} +1 -1
- package/dist/components/{p-CKHlNMVF.js → p-CjKgYUL9.js} +3 -3
- package/dist/components/{p-CKHlNMVF.js.map → p-CjKgYUL9.js.map} +1 -1
- package/dist/components/{p-Mn8ErAAb.js → p-CwHrjjgl.js} +4 -4
- package/dist/components/{p-Mn8ErAAb.js.map → p-CwHrjjgl.js.map} +1 -1
- package/dist/components/{p-ojGSd7eA.js → p-D8FW7I0M.js} +3 -3
- package/dist/components/{p-ojGSd7eA.js.map → p-D8FW7I0M.js.map} +1 -1
- package/dist/components/{p-CdLmSaw6.js → p-DAJuJoZn.js} +4 -4
- package/dist/components/{p-CdLmSaw6.js.map → p-DAJuJoZn.js.map} +1 -1
- package/dist/components/{p-BaN8grjD.js → p-DNxp10y2.js} +5 -5
- package/dist/components/{p-BaN8grjD.js.map → p-DNxp10y2.js.map} +1 -1
- package/dist/components/{p-BshrHj7X.js → p-DQi9Jit7.js} +5 -5
- package/dist/components/{p-BshrHj7X.js.map → p-DQi9Jit7.js.map} +1 -1
- package/dist/components/{p-fLN8M37t.js → p-DbLIZ0gI.js} +3 -3
- package/dist/components/{p-fLN8M37t.js.map → p-DbLIZ0gI.js.map} +1 -1
- package/dist/components/{p-C81ESSvH.js → p-DlgrkLu0.js} +4 -4
- package/dist/components/{p-C81ESSvH.js.map → p-DlgrkLu0.js.map} +1 -1
- package/dist/components/{p-CGfY7lYE.js → p-DmG9jqf9.js} +3 -3
- package/dist/components/{p-CGfY7lYE.js.map → p-DmG9jqf9.js.map} +1 -1
- package/dist/components/{p-B2TDQClH.js → p-Dua4qdwP.js} +3 -3
- package/dist/components/{p-B2TDQClH.js.map → p-Dua4qdwP.js.map} +1 -1
- package/dist/components/{p-CgtGqqWz.js → p-Dy2kgG1_.js} +3 -3
- package/dist/components/{p-CgtGqqWz.js.map → p-Dy2kgG1_.js.map} +1 -1
- package/dist/components/{p-e4my43Fj.js → p-J04T9w3B.js} +4 -4
- package/dist/components/{p-e4my43Fj.js.map → p-J04T9w3B.js.map} +1 -1
- package/dist/components/{p-BMR1f9Ny.js → p-J4ePC1Gr.js} +7 -7
- package/dist/components/{p-BMR1f9Ny.js.map → p-J4ePC1Gr.js.map} +1 -1
- package/dist/components/{p-6crhm8xF.js → p-KnZ28rwQ.js} +7 -7
- package/dist/components/{p-6crhm8xF.js.map → p-KnZ28rwQ.js.map} +1 -1
- package/dist/components/p-ReaNe705.js +85 -0
- package/dist/components/p-ReaNe705.js.map +1 -0
- package/dist/components/{p--nzbbHU3.js → p-bhvS6Qdq.js} +3 -3
- package/dist/components/{p--nzbbHU3.js.map → p-bhvS6Qdq.js.map} +1 -1
- package/dist/components/{p-BKW3nMqk.js → p-d3WZKgsB.js} +5 -5
- package/dist/components/{p-BKW3nMqk.js.map → p-d3WZKgsB.js.map} +1 -1
- package/dist/components/{p-De6XbCCz.js → p-gCWikaoG.js} +7 -7
- package/dist/components/{p-De6XbCCz.js.map → p-gCWikaoG.js.map} +1 -1
- package/dist/components/{p-8OkGYgSm.js → p-nhr8VHHV.js} +4 -4
- package/dist/components/{p-8OkGYgSm.js.map → p-nhr8VHHV.js.map} +1 -1
- package/dist/components/{p-DWoIf2g_.js → p-rT7t0c3J.js} +9 -9
- package/dist/components/{p-DWoIf2g_.js.map → p-rT7t0c3J.js.map} +1 -1
- package/dist/components/{p-C1R9RQEK.js → p-u7D3-_Vp.js} +4 -4
- package/dist/components/{p-C1R9RQEK.js.map → p-u7D3-_Vp.js.map} +1 -1
- package/dist/components/rebill-renewal.js +1 -1
- package/dist/components/rebill-renewal.js.map +1 -1
- package/dist/components/renewal-success-page2.js +1 -1
- package/dist/components/renewal-success-page2.js.map +1 -1
- package/dist/components/root-component.js +1 -1
- package/dist/components/root-component.js.map +1 -1
- package/dist/components/selectable-card2.js +1 -1
- package/dist/components/selectable-card2.js.map +1 -1
- package/dist/components/success-page2.js +1 -1
- package/dist/components/success-page2.js.map +1 -1
- package/dist/components/typography.js +1 -1
- package/dist/components/typography.js.map +1 -1
- package/dist/esm/apm-checkout_16.entry.js +2 -2
- package/dist/esm/apm-checkout_16.entry.js.map +1 -1
- package/dist/esm/card-identification.card-iframe.card-skeleton.rebill-input-combo.rebill-installments.entry.js.map +1 -1
- package/dist/esm/card-identification_5.entry.js +1 -1
- package/dist/esm/card-identification_5.entry.js.map +1 -1
- package/dist/esm/card-skeleton.entry.js +1 -1
- package/dist/esm/card-skeleton.entry.js.map +1 -1
- package/dist/esm/collapsible-card.entry.js +1 -1
- package/dist/esm/collapsible-card.entry.js.map +1 -1
- package/dist/esm/{organization-logo-DTXw5Lu4.js → organization-logo-BPE5_Qxz.js} +3 -3
- package/dist/esm/{organization-logo-6pnwjRAd.js.map → organization-logo-BPE5_Qxz.js.map} +1 -1
- package/dist/{rebill-web-components-sdk/organization-logo-6pnwjRAd.js → esm/organization-logo-FuaJxXfD.js} +3 -3
- package/dist/{rebill-web-components-sdk/organization-logo-6pnwjRAd.js.map → esm/organization-logo-FuaJxXfD.js.map} +1 -1
- package/dist/esm/organization-logo.entry.js +1 -1
- package/dist/esm/organization-logo_4.entry.js +1 -1
- package/dist/esm/otp-component.entry.js +5 -5
- package/dist/esm/otp-component.entry.js.map +1 -1
- package/dist/esm/otp-component.rebill-modal-overlay.rebill-mode-sandbox.rebill-mode-sandbox-mobile.rebill-summary.success-page.user-information.entry.js.map +1 -1
- package/dist/esm/otp-component_7.entry.js +10 -10
- package/dist/esm/otp-component_7.entry.js.map +1 -1
- package/dist/esm/rebill-address.entry.js +1 -1
- package/dist/esm/rebill-address.entry.js.map +1 -1
- package/dist/esm/rebill-checkout.entry.js +1 -1
- package/dist/esm/rebill-icon.rebill-typography.entry.js.map +1 -1
- package/dist/esm/rebill-icon_2.entry.js +1 -1
- package/dist/esm/rebill-icon_2.entry.js.map +1 -1
- package/dist/esm/rebill-input-text.entry.js +2 -2
- package/dist/esm/rebill-input-text.entry.js.map +1 -1
- package/dist/esm/rebill-mode-sandbox-mobile.entry.js +4 -4
- package/dist/esm/rebill-mode-sandbox-mobile.entry.js.map +1 -1
- package/dist/esm/rebill-renewal.entry.js +1 -1
- package/dist/esm/rebill-renewal.entry.js.map +1 -1
- package/dist/esm/rebill-typography.entry.js +1 -1
- package/dist/esm/rebill-typography.entry.js.map +1 -1
- package/dist/esm/renewal-success-page.entry.js +1 -1
- package/dist/esm/renewal-success-page.entry.js.map +1 -1
- package/dist/esm/renewal-success-page.renewal-summary.entry.js.map +1 -1
- package/dist/esm/renewal-success-page_2.entry.js +1 -1
- package/dist/esm/renewal-success-page_2.entry.js.map +1 -1
- package/dist/esm/root-component.entry.js +1 -1
- package/dist/esm/root-component.entry.js.map +1 -1
- package/dist/esm/selectable-card.entry.js +1 -1
- package/dist/esm/selectable-card.entry.js.map +1 -1
- package/dist/esm/success-page.entry.js +1 -1
- package/dist/esm/success-page.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/card-identification.card-iframe.card-skeleton.rebill-input-combo.rebill-installments.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/card-skeleton.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/card-skeleton.entry.js +1 -1
- package/dist/rebill-web-components-sdk/card-skeleton.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/collapsible-card.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/collapsible-card.entry.js +1 -1
- package/dist/rebill-web-components-sdk/collapsible-card.entry.js.map +1 -1
- package/dist/{esm/organization-logo-6pnwjRAd.js → rebill-web-components-sdk/organization-logo-FuaJxXfD.js} +3 -3
- package/dist/{esm/organization-logo-DTXw5Lu4.js.map → rebill-web-components-sdk/organization-logo-FuaJxXfD.js.map} +1 -1
- package/dist/rebill-web-components-sdk/organization-logo.entry.js +1 -1
- package/dist/rebill-web-components-sdk/otp-component.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/otp-component.entry.js +5 -5
- package/dist/rebill-web-components-sdk/otp-component.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/otp-component.rebill-modal-overlay.rebill-mode-sandbox.rebill-mode-sandbox-mobile.rebill-summary.success-page.user-information.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/p-07de170b.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-d189dea8.entry.js.map → p-07de170b.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-2be8b27e.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-a3f63a73.entry.js.map → p-2be8b27e.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-2f00f173.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-e16cc3b0.entry.js.map → p-2f00f173.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-3b7a11c7.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-f02133d8.entry.js.map → p-3b7a11c7.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-3c6aaa56.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-174a9543.entry.js.map → p-3c6aaa56.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-5485215c.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-62fc3d11.entry.js.map → p-5485215c.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/{p-68a78ab6.entry.js → p-932d5912.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-3fca32f8.entry.js → p-a09e3090.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/p-a780e6e8.entry.js +2 -0
- package/dist/rebill-web-components-sdk/p-a780e6e8.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/p-bf4f1bcc.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-b8591c64.entry.js.map → p-bf4f1bcc.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-cecc2fbe.entry.js +2 -0
- package/dist/rebill-web-components-sdk/p-cecc2fbe.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/{p-DTsMkxC1.js → p-tu-WZjQJ.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-DTsMkxC1.js.map → p-tu-WZjQJ.js.map} +1 -1
- package/dist/rebill-web-components-sdk/rebill-address.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-address.entry.js +1 -1
- package/dist/rebill-web-components-sdk/rebill-address.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-checkout.entry.js +1 -1
- package/dist/rebill-web-components-sdk/rebill-icon.rebill-typography.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-input-text.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-input-text.entry.js +2 -2
- package/dist/rebill-web-components-sdk/rebill-input-text.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-mode-sandbox-mobile.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-mode-sandbox-mobile.entry.js +4 -4
- package/dist/rebill-web-components-sdk/rebill-mode-sandbox-mobile.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-renewal.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-renewal.entry.js +1 -1
- package/dist/rebill-web-components-sdk/rebill-renewal.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-typography.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-typography.entry.js +1 -1
- package/dist/rebill-web-components-sdk/rebill-typography.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/renewal-success-page.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/renewal-success-page.entry.js +1 -1
- package/dist/rebill-web-components-sdk/renewal-success-page.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/renewal-success-page.renewal-summary.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/root-component.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/root-component.entry.js +1 -1
- package/dist/rebill-web-components-sdk/root-component.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/selectable-card.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/selectable-card.entry.js +1 -1
- package/dist/rebill-web-components-sdk/selectable-card.entry.js.map +1 -1
- package/dist/rebill-web-components-sdk/success-page.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/success-page.entry.js +1 -1
- package/dist/rebill-web-components-sdk/success-page.entry.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/p-BhZLfMCq.js.map +0 -1
- package/dist/components/p-Bl3lkRJY.js +0 -85
- package/dist/components/p-Bl3lkRJY.js.map +0 -1
- package/dist/components/p-C-BFyHag.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-174a9543.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-62fc3d11.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-8edd1215.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-8edd1215.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-a3f63a73.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-b8591c64.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-d189dea8.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-daa7cbb2.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-daa7cbb2.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-e16cc3b0.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-f02133d8.entry.js +0 -2
- /package/dist/rebill-web-components-sdk/{p-68a78ab6.entry.js.map → p-932d5912.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-3fca32f8.entry.js.map → p-a09e3090.entry.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r,h as e}from"./p-DyaDabZ4.js";import{I as l,S as o}from"./p-dYKOc01W.js";import{c as a}from"./p-BFhvUZPU.js";import{L as i}from"./p-BzDRvtfU.js";import"./p-BFTU3MAI.js";const t=":root{--rebill-color-primary:#3b82f6;--rebill-color-primary-light:rgba(59, 130, 246, 0.1);--rebill-color-primary-hover:#2563eb;--rebill-color-primary-dark:#001131;--rebill-color-primary-dark-text:#000000;--rebill-color-primary-dark-hover:#001c4a;--rebill-color-primary-dark-light:rgba(0, 17, 49, 0.1);--rebill-color-error:#ef4444;--rebill-color-error-background:#fef2f2;--rebill-color-error-light:rgba(239, 68, 68, 0.1);--rebill-color-error-dark:#6f101b;--rebill-color-background:#ffffff;--rebill-color-background-left:#fafafa;--rebill-color-background-right:#f4f5f6;--rebill-color-background-secondary:#f7f8fa;--rebill-color-border:#ebedef;--rebill-color-timeline-connector:#c4c8cf;--rebill-color-neutrals-700:#58616e;--rebill-color-neutrals-500:#9ca3af;--rebill-color-border-primary:#e4e4e7;--rebill-color-text-primary:#3b4049;--rebill-color-text-secondary:#6b7280;--rebill-color-grey-700:#7d7d7d;--rebill-color-text-secondary-light:#a1a1aa;--rebill-color-text-on-primary:#ffffff;--rebill-color-disabled:#9ca3af;--rebill-color-shadow:rgba(0, 0, 0, 0.1);--rebill-color-green:#10b981;--rebill-color-green-text:#257c67;--rebill-color-green-light:rgba(183, 233, 221, 0.15);--rebill-color-green-light-2:rgba(183, 233, 221, 1);--rebill-color-info-background:#d5e4ff;--rebill-color-info-border:#0156f6;--rebill-color-info-text:#172b85;--rebill-color-background-secondary-light:#f7f8fa;--rebill-breakpoint-mobile:768px;--rebill-breakpoint-tablet:1024px;--rebill-breakpoint-desktop:1025px;--rebill-color-orange:#ff9400;--rebill-color-black:#1e2025;--rebill-color-grey-300:#3b4049;--rebill-color-grey-100:#aeaeae}.qr-container,.qr-image,.qr-image svg,.qr-image img,[class*='qr-'],[class*='success'],[class*='receipt']{transition:none !important;animation:none !important;will-change:auto !important}button:active,button:focus,button:hover{isolation:isolate}:host{display:block}";const b=class{constructor(e){r(this,e)}isLoading=false;currentLang=l.getCurrentLanguage();formData={nombre:"Juan",apellido:"Perez",pais:"AR"};validationSchema={nombre:a().required("El nombre es requerido").min(2,"El nombre debe tener al menos 2 caracteres"),apellido:a().required("El apellido es requerido").min(2,"El apellido debe tener al menos 2 caracteres"),pais:a().required("El país es requerido")};handleSubmit=r=>{this.isLoading=true;this.formData={...r.detail};setTimeout((()=>{this.isLoading=false}),2e3)};handleChange=r=>{console.log("Form changed:",r.detail)};async handleLanguageChange(r){await l.changeLanguage(r);this.currentLang=r}componentDidLoad(){o.onChange("data",(r=>{console.log("data",r)}));o.setDiscount(null)}render(){return e("div",{key:"535e7340173b87c5f5f603e6b985d945fad52508"},e("div",{key:"b80876cf95722ab13cefcbf84bfdf0755b1f2eba",style:{display:"flex",justifyContent:"flex-end",padding:"1rem"}},e("rebill-button",{key:"aacaaa80adf979e7601bf6feb1314b8c3e34886e",onClick:()=>this.handleLanguageChange(this.currentLang===i.EN?i.ES:i.EN)},this.currentLang===i.EN?"Cambiar a Español":"Switch to English")),e("rebill-form",{key:"ea8656bc8d6f7a94fb4bd2536b9e0bdd77e5622f",validationSchema:this.validationSchema,initialData:this.formData,onSubmit:r=>this.handleSubmit(r),onChange:r=>this.handleChange(r),renderForm:({submit:r,formData:o,errors:a})=>e("rebill-container",{maxWidth:"800px"},e("h3",null,l.translate("common.welcome")),e("rebill-input-text",{id:"nombre",label:"Nombre",placeholder:"Ingrese su nombre",error:a.nombre}),e("rebill-input-text",{id:"apellido",label:"Apellido",placeholder:"Ingrese su apellido",error:a.apellido}),e("rebill-input-select",{disabled:true,id:"pais",label:"País",error:a.pais,options:[{label:"Argentina",value:"AR"},{label:"Brasil",value:"BR"},{label:"Chile",value:"CL"}]}),e("rebill-input-checkbox",{disabled:true,id:"sameAsShipping",label:"Same as shipping",checked:true,error:""}),e("rebill-button",{type:"submit",onClick:r,loading:this.isLoading},l.translate("buttons.submit")),e("rebill-typography",{variant:"h1"},"Título h1"),e("rebill-typography",{variant:"h2"},"Título h2"),e("rebill-typography",{variant:"h3"},"Título h3"),e("rebill-typography",{variant:"h4"},"Título h4"),e("rebill-typography",{variant:"h5"},"Título h5"),e("rebill-typography",{variant:"h6"},"Título h6"),e("rebill-typography",{variant:"subtitle1"},"subtitle1"),e("rebill-typography",{variant:"subtitle2"},"subtitle2"),e("rebill-typography",{variant:"body1"},"body1"),e("rebill-typography",{variant:"body2"},"body2"),e("rebill-typography",{variant:"button"},"button"),e("rebill-typography",{variant:"caption"},"caption"),e("rebill-typography",{variant:"overline"},"overline"),e("rebill-typography",{variant:"subtitle1"},"Subtítulo"),e("rebill-typography",{variant:"body1",align:"justify"},"Este es un párrafo de texto con alineación justificada."),e("rebill-typography",{variant:"button"},"Click aquí"),e("rebill-typography",{variant:"body2","gutter-bottom":true},"Este texto tendrá un margen inferior."))}))}};b.style=t;export{b as root_component};
|
|
2
|
+
//# sourceMappingURL=p-2f00f173.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["rootComponentCss","RootComponent","isLoading","currentLang","I18nService","getCurrentLanguage","formData","nombre","apellido","pais","validationSchema","yup\n .string","required","min","yup.string","handleSubmit","event","this","detail","setTimeout","handleChange","console","log","handleLanguageChange","lang","changeLanguage","componentDidLoad","SessionStore","onChange","data","setDiscount","render","h","key","style","display","justifyContent","padding","onClick","LOCALES_ENUM","EN","ES","initialData","onSubmit","e","renderForm","submit","_formData","errors","maxWidth","translate","id","label","placeholder","error","disabled","options","value","checked","type","loading","variant","align"],"sources":["src/components/root-component/root-component.css?tag=root-component","src/components/root-component/root-component.tsx"],"sourcesContent":["@import '../../styles/variables.css';\n\n:host {\n display: block;\n}\n","import { Component, h, State } from '@stencil/core';\nimport { SessionStore } from 'store/session.store';\nimport * as yup from 'yup';\nimport { I18nService } from '../../i18n/i18n.service';\nimport { LOCALES_ENUM } from '../../models/enums/locales.enum';\n@Component({\n tag: 'root-component',\n styleUrl: 'root-component.css',\n shadow: false,\n})\nexport class RootComponent {\n @State() private isLoading = false;\n @State() private currentLang: LOCALES_ENUM = I18nService.getCurrentLanguage();\n @State() private formData = {\n nombre: 'Juan',\n apellido: 'Perez',\n pais: 'AR',\n };\n\n private validationSchema = {\n nombre: yup\n .string()\n .required('El nombre es requerido')\n .min(2, 'El nombre debe tener al menos 2 caracteres'),\n apellido: yup\n .string()\n .required('El apellido es requerido')\n .min(2, 'El apellido debe tener al menos 2 caracteres'),\n pais: yup.string().required('El país es requerido'),\n };\n\n private handleSubmit = (event: CustomEvent) => {\n this.isLoading = true;\n this.formData = { ...event.detail };\n setTimeout(() => {\n this.isLoading = false;\n }, 2000);\n };\n\n private handleChange = (event: CustomEvent) => {\n console.log('Form changed:', event.detail);\n };\n\n private async handleLanguageChange(lang: LOCALES_ENUM) {\n await I18nService.changeLanguage(lang);\n this.currentLang = lang;\n }\n\n componentDidLoad() {\n // Consultar a cambios en el estado de la sesión (sessionState)\n // Si lo hacemos desde el tsx, se va a actualizar automaticamente\n // const sessionId = sessionState.data.sessionId;\n // Suscribirse a cambios en el estado de la sesión (metodo generico onChange de la clase SessionStore)\n SessionStore.onChange('data', data => {\n console.log('data', data);\n });\n // Despachar evento para actualizar el store (metodo especifico de la clase SessionStore)\n SessionStore.setDiscount(null);\n }\n\n render() {\n return (\n <div>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: '1rem' }}>\n <rebill-button\n onClick={() =>\n this.handleLanguageChange(\n this.currentLang === LOCALES_ENUM.EN ? LOCALES_ENUM.ES : LOCALES_ENUM.EN,\n )\n }\n >\n {this.currentLang === LOCALES_ENUM.EN ? 'Cambiar a Español' : 'Switch to English'}\n </rebill-button>\n </div>\n\n <rebill-form\n validationSchema={this.validationSchema}\n initialData={this.formData}\n onSubmit={e => this.handleSubmit(e)}\n onChange={e => this.handleChange(e)}\n renderForm={({ submit, formData: _formData, errors }) => (\n <rebill-container maxWidth=\"800px\">\n <h3>{I18nService.translate('common.welcome')}</h3>\n <rebill-input-text\n id=\"nombre\"\n label=\"Nombre\"\n placeholder=\"Ingrese su nombre\"\n error={errors.nombre}\n ></rebill-input-text>\n <rebill-input-text\n id=\"apellido\"\n label=\"Apellido\"\n placeholder=\"Ingrese su apellido\"\n error={errors.apellido}\n ></rebill-input-text>\n <rebill-input-select\n disabled\n id=\"pais\"\n label=\"País\"\n error={errors.pais}\n options={[\n { label: 'Argentina', value: 'AR' },\n { label: 'Brasil', value: 'BR' },\n { label: 'Chile', value: 'CL' },\n ]}\n ></rebill-input-select>\n <rebill-input-checkbox\n disabled\n id=\"sameAsShipping\"\n label=\"Same as shipping\"\n checked={true}\n error=\"\"\n ></rebill-input-checkbox>\n <rebill-button type=\"submit\" onClick={submit} loading={this.isLoading}>\n {I18nService.translate('buttons.submit')}\n </rebill-button>\n\n <rebill-typography variant=\"h1\">Título h1</rebill-typography>\n <rebill-typography variant=\"h2\">Título h2</rebill-typography>\n <rebill-typography variant=\"h3\">Título h3</rebill-typography>\n <rebill-typography variant=\"h4\">Título h4</rebill-typography>\n <rebill-typography variant=\"h5\">Título h5</rebill-typography>\n <rebill-typography variant=\"h6\">Título h6</rebill-typography>\n <rebill-typography variant=\"subtitle1\">subtitle1</rebill-typography>\n <rebill-typography variant=\"subtitle2\">subtitle2</rebill-typography>\n <rebill-typography variant=\"body1\">body1</rebill-typography>\n <rebill-typography variant=\"body2\">body2</rebill-typography>\n <rebill-typography variant=\"button\">button</rebill-typography>\n <rebill-typography variant=\"caption\">caption</rebill-typography>\n <rebill-typography variant=\"overline\">overline</rebill-typography>\n\n <rebill-typography variant=\"subtitle1\">Subtítulo</rebill-typography>\n\n <rebill-typography variant=\"body1\" align=\"justify\">\n Este es un párrafo de texto con alineación justificada.\n </rebill-typography>\n\n <rebill-typography variant=\"button\">Click aquí</rebill-typography>\n\n <rebill-typography variant=\"body2\" gutter-bottom>\n Este texto tendrá un margen inferior.\n </rebill-typography>\n </rebill-container>\n )}\n />\n </div>\n );\n }\n}\n"],"mappings":"iLAAA,MAAMA,EAAmB,
|
|
1
|
+
{"version":3,"names":["rootComponentCss","RootComponent","isLoading","currentLang","I18nService","getCurrentLanguage","formData","nombre","apellido","pais","validationSchema","yup\n .string","required","min","yup.string","handleSubmit","event","this","detail","setTimeout","handleChange","console","log","handleLanguageChange","lang","changeLanguage","componentDidLoad","SessionStore","onChange","data","setDiscount","render","h","key","style","display","justifyContent","padding","onClick","LOCALES_ENUM","EN","ES","initialData","onSubmit","e","renderForm","submit","_formData","errors","maxWidth","translate","id","label","placeholder","error","disabled","options","value","checked","type","loading","variant","align"],"sources":["src/components/root-component/root-component.css?tag=root-component","src/components/root-component/root-component.tsx"],"sourcesContent":["@import '../../styles/variables.css';\n\n:host {\n display: block;\n}\n","import { Component, h, State } from '@stencil/core';\nimport { SessionStore } from 'store/session.store';\nimport * as yup from 'yup';\nimport { I18nService } from '../../i18n/i18n.service';\nimport { LOCALES_ENUM } from '../../models/enums/locales.enum';\n@Component({\n tag: 'root-component',\n styleUrl: 'root-component.css',\n shadow: false,\n})\nexport class RootComponent {\n @State() private isLoading = false;\n @State() private currentLang: LOCALES_ENUM = I18nService.getCurrentLanguage();\n @State() private formData = {\n nombre: 'Juan',\n apellido: 'Perez',\n pais: 'AR',\n };\n\n private validationSchema = {\n nombre: yup\n .string()\n .required('El nombre es requerido')\n .min(2, 'El nombre debe tener al menos 2 caracteres'),\n apellido: yup\n .string()\n .required('El apellido es requerido')\n .min(2, 'El apellido debe tener al menos 2 caracteres'),\n pais: yup.string().required('El país es requerido'),\n };\n\n private handleSubmit = (event: CustomEvent) => {\n this.isLoading = true;\n this.formData = { ...event.detail };\n setTimeout(() => {\n this.isLoading = false;\n }, 2000);\n };\n\n private handleChange = (event: CustomEvent) => {\n console.log('Form changed:', event.detail);\n };\n\n private async handleLanguageChange(lang: LOCALES_ENUM) {\n await I18nService.changeLanguage(lang);\n this.currentLang = lang;\n }\n\n componentDidLoad() {\n // Consultar a cambios en el estado de la sesión (sessionState)\n // Si lo hacemos desde el tsx, se va a actualizar automaticamente\n // const sessionId = sessionState.data.sessionId;\n // Suscribirse a cambios en el estado de la sesión (metodo generico onChange de la clase SessionStore)\n SessionStore.onChange('data', data => {\n console.log('data', data);\n });\n // Despachar evento para actualizar el store (metodo especifico de la clase SessionStore)\n SessionStore.setDiscount(null);\n }\n\n render() {\n return (\n <div>\n <div style={{ display: 'flex', justifyContent: 'flex-end', padding: '1rem' }}>\n <rebill-button\n onClick={() =>\n this.handleLanguageChange(\n this.currentLang === LOCALES_ENUM.EN ? LOCALES_ENUM.ES : LOCALES_ENUM.EN,\n )\n }\n >\n {this.currentLang === LOCALES_ENUM.EN ? 'Cambiar a Español' : 'Switch to English'}\n </rebill-button>\n </div>\n\n <rebill-form\n validationSchema={this.validationSchema}\n initialData={this.formData}\n onSubmit={e => this.handleSubmit(e)}\n onChange={e => this.handleChange(e)}\n renderForm={({ submit, formData: _formData, errors }) => (\n <rebill-container maxWidth=\"800px\">\n <h3>{I18nService.translate('common.welcome')}</h3>\n <rebill-input-text\n id=\"nombre\"\n label=\"Nombre\"\n placeholder=\"Ingrese su nombre\"\n error={errors.nombre}\n ></rebill-input-text>\n <rebill-input-text\n id=\"apellido\"\n label=\"Apellido\"\n placeholder=\"Ingrese su apellido\"\n error={errors.apellido}\n ></rebill-input-text>\n <rebill-input-select\n disabled\n id=\"pais\"\n label=\"País\"\n error={errors.pais}\n options={[\n { label: 'Argentina', value: 'AR' },\n { label: 'Brasil', value: 'BR' },\n { label: 'Chile', value: 'CL' },\n ]}\n ></rebill-input-select>\n <rebill-input-checkbox\n disabled\n id=\"sameAsShipping\"\n label=\"Same as shipping\"\n checked={true}\n error=\"\"\n ></rebill-input-checkbox>\n <rebill-button type=\"submit\" onClick={submit} loading={this.isLoading}>\n {I18nService.translate('buttons.submit')}\n </rebill-button>\n\n <rebill-typography variant=\"h1\">Título h1</rebill-typography>\n <rebill-typography variant=\"h2\">Título h2</rebill-typography>\n <rebill-typography variant=\"h3\">Título h3</rebill-typography>\n <rebill-typography variant=\"h4\">Título h4</rebill-typography>\n <rebill-typography variant=\"h5\">Título h5</rebill-typography>\n <rebill-typography variant=\"h6\">Título h6</rebill-typography>\n <rebill-typography variant=\"subtitle1\">subtitle1</rebill-typography>\n <rebill-typography variant=\"subtitle2\">subtitle2</rebill-typography>\n <rebill-typography variant=\"body1\">body1</rebill-typography>\n <rebill-typography variant=\"body2\">body2</rebill-typography>\n <rebill-typography variant=\"button\">button</rebill-typography>\n <rebill-typography variant=\"caption\">caption</rebill-typography>\n <rebill-typography variant=\"overline\">overline</rebill-typography>\n\n <rebill-typography variant=\"subtitle1\">Subtítulo</rebill-typography>\n\n <rebill-typography variant=\"body1\" align=\"justify\">\n Este es un párrafo de texto con alineación justificada.\n </rebill-typography>\n\n <rebill-typography variant=\"button\">Click aquí</rebill-typography>\n\n <rebill-typography variant=\"body2\" gutter-bottom>\n Este texto tendrá un margen inferior.\n </rebill-typography>\n </rebill-container>\n )}\n />\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,h as r,c as o,g as t}from"./p-DyaDabZ4.js";import{a as i}from"./p-C6wUNEUc.js";import{I as l,s,i as a,S as c,o as n}from"./p-dYKOc01W.js";import{r as d,o as b,R as h}from"./p-StCSFC25.js";import{g as p}from"./p-B2LDUv1-.js";import{g as f,a as u,E as m,b as g,c as y}from"./p-B2q13jSm.js";import{C as x}from"./p-DA598vBj.js";import"./p-BFTU3MAI.js";import"./p-uZj1dMLQ.js";const v=class{constructor(r){e(this,r)}documentTypes=[];country="";currentLanguage=l.getCurrentLanguage();documentTypeError="";documentNumberError="";loadDocumentTypes=async()=>{const e=d.isInitialized?d.data?.price?.country:s?.data?.pricing?.country;if(e&&e!==this.country){try{const r=await i.data.getDocumentTypes(e);this.documentTypes=r.data;this.country=e}catch(e){console.error("Error loading document types:",e)}}};async componentWillLoad(){a.on("languageChanged",this.handleLanguageChange);c.onChange("data",(()=>{if(!d.isInitialized){this.loadDocumentTypes()}}));b("data",(()=>{if(d.isInitialized){this.loadDocumentTypes()}}));await this.loadDocumentTypes()}handleInputChange=e=>{const{id:r,value:o}=e.detail;if(d.isInitialized){h.setUserIdentification({[r]:o})}else{c.setUserInformation({[r]:o})}};disconnectedCallback(){a.off("languageChanged",this.handleLanguageChange)}handleLanguageChange=()=>{this.currentLanguage=l.getCurrentLanguage()};render(){const e=this.documentTypeError||this.documentNumberError;const o=this.documentTypes.map((e=>({label:e.value,value:e.value})));return r(r.Fragment,null,r("rebill-input-combo",{key:"075f4ca0ddf69987cc4103ed95177773302cf0fc","select-id":"documentType","input-id":"documentNumber","on-input":this.handleInputChange,"select-placeholder":l.translate("document.typePlaceholder"),"input-placeholder":l.translate("document.numberPlaceholder"),error:l.translate(e),options:o}))}};const k=class{constructor(r){e(this,r)}customCSS;iframeLoaded=false;currentLang=s.currentLocale;initialLang=s.currentLocale;iframeHeight="100px";getIframeURL(){const e=p().iframeURL;const r=new URL(e);r.searchParams.set("lang",this.initialLang);if(d.data?.subscription?.customerId&&d.token){r.searchParams.set("customerId",d.data.subscription.customerId);r.searchParams.set("token",d.token)}return r.toString()}iframeRef;unsubscribeCurrentLocaleStore;unsubscribeDataStore;unsubscribeRenewalStore;postInitialDataToIframe(){if(d.isInitialized){if(d.data?.organization?.id){this.postOrganizationIdToIframe(d.data.organization.id)}this.postLanguageToIframe();this.postTotalPriceToIframe();this.postCurrencyToIframe();this.postCustomerIdToIframe();this.postTokenToIframe();this.postItemTypeToIframe()}else{if(s.data?.organization?.id){this.postOrganizationIdToIframe(s.data.organization.id)}if(s?.currentLocale){this.postLanguageToIframe()}this.postTotalPriceToIframe();this.postCurrencyToIframe();this.postCustomerIdToIframe();this.postTokenToIframe();this.postItemTypeToIframe()}this.postCustomCSSToIframe()}postTotalPriceToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow){let e;if(d.isInitialized){e=d.data?.price?.amount||0}else{e=s.data?.pricing?.totalWithoutInstallment||0}this.iframeRef.contentWindow.postMessage({type:"SET_TOTAL_PRICE",payload:{total:e}},"*")}}postCustomerIdToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow&&d.data?.subscription?.customerId){this.iframeRef.contentWindow.postMessage({type:"SET_CUSTOMER_ID",payload:{customerId:d.data.subscription.customerId}},"*")}else if(this.iframeRef&&this.iframeRef.contentWindow&&s.data.customerId){this.iframeRef.contentWindow.postMessage({type:"SET_CUSTOMER_ID",payload:{customerId:s.data.customerId}},"*")}}postLanguageToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow){this.iframeRef.contentWindow.postMessage({type:"SET_LANGUAGE",payload:{lang:this.currentLang}},"*")}}postOrganizationIdToIframe(e){if(!!this.iframeRef&&!!this.iframeRef.contentWindow){this.iframeRef.contentWindow.postMessage({type:"SET_ORGANIZATION_ID",payload:{organizationId:e}},"*")}}postTokenToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow&&d.token){this.iframeRef.contentWindow.postMessage({type:"SET_TOKEN",payload:{token:d.token}},"*")}else if(this.iframeRef&&this.iframeRef.contentWindow&&s.data.accessToken){this.iframeRef.contentWindow.postMessage({type:"SET_TOKEN",payload:{token:s.data.accessToken}},"*")}}postItemTypeToIframe(){if(!this.iframeRef||!this.iframeRef.contentWindow){return}if(d.isInitialized&&d.data?.subscription?.type){this.iframeRef.contentWindow.postMessage({type:"SET_ITEM_TYPE",payload:{itemType:d.data.subscription.type}},"*")}else if(s.data?.itemInformation?.type){this.iframeRef.contentWindow.postMessage({type:"SET_ITEM_TYPE",payload:{itemType:s.data.itemInformation.type}},"*")}}postCurrencyToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow){let e;if(d.isInitialized){e=d.data?.price?.currency||""}else{e=s.data?.pricing?.currency||""}if(e){this.iframeRef.contentWindow.postMessage({type:"SET_CURRENCY",payload:{currency:e}},"*")}}}postCustomCSSToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow&&this.customCSS){this.iframeRef.contentWindow.postMessage({type:"SET_CUSTOM_CSS",payload:{css:this.customCSS}},"*")}}postClearCustomerIdToIframe(){if(this.iframeRef&&this.iframeRef.contentWindow&&(!s.data.customerId||!s.data.accessToken)){this.iframeRef.contentWindow.postMessage({type:"CLEAR_CUSTOMER_ID_AND_TOKEN"},"*")}}componentWillLoad(){this.initialLang=s.currentLocale;this.unsubscribeCurrentLocaleStore=n("currentLocale",(()=>{this.currentLang=s.currentLocale;this.postLanguageToIframe()}));this.unsubscribeDataStore=n("data",(()=>{if(!d.isInitialized){if(s.data?.organization?.id){this.postOrganizationIdToIframe(s.data.organization.id)}if(s.data?.pricing?.totalWithoutInstallment!==undefined&&s.data?.pricing?.totalWithoutInstallment!==null){this.postTotalPriceToIframe()}this.postCurrencyToIframe();this.postCustomerIdToIframe();this.postTokenToIframe();this.postItemTypeToIframe();this.postClearCustomerIdToIframe()}}));this.unsubscribeRenewalStore=b("data",(()=>{if(d.isInitialized){if(d.data?.organization?.id){this.postOrganizationIdToIframe(d.data.organization.id)}if(d.data?.price?.amount!==undefined){this.postTotalPriceToIframe()}this.postCurrencyToIframe();this.postCustomerIdToIframe();this.postTokenToIframe();this.postItemTypeToIframe()}}));setTimeout((()=>{this.postInitialDataToIframe()}),1e3)}componentWillUpdate(){if(this.iframeLoaded){this.postCustomCSSToIframe()}}componentDidLoad(){window.addEventListener("message",this.handleIframeMessage)}disconnectedCallback(){if(this.unsubscribeCurrentLocaleStore)this.unsubscribeCurrentLocaleStore();if(this.unsubscribeDataStore)this.unsubscribeDataStore();if(this.unsubscribeRenewalStore)this.unsubscribeRenewalStore();window.removeEventListener("message",this.handleIframeMessage)}handleIframeLoad=()=>{this.iframeLoaded=true;this.postLanguageToIframe();if(d.isInitialized){if(d.data?.organization?.id){this.postOrganizationIdToIframe(d.data.organization.id)}this.postCurrencyToIframe();this.postCustomerIdToIframe();this.postTokenToIframe();this.postItemTypeToIframe()}this.postCustomCSSToIframe();setTimeout((()=>{this.postInitialDataToIframe()}),500)};handleIframeMessage=e=>{if(e.data&&e.data.type==="IFRAME_HEIGHT"&&e.data.payload&&typeof e.data.payload.height==="number"){this.iframeHeight=`${e.data.payload.height}px`}if(e.data&&e.data.type==="FORM_STATE"){if(d.isInitialized){if(!e.data.payload?.complete){h.setCardId(null);h.setCardTokenId(null)}}else if(s.isInitialized){if(!e.data.payload?.complete){c.setCardId(null);c.setCardTokenId(null)}}}if(e.data&&e.data.type==="INSTALLMENTS"&&e.data.payload){if(d.isInitialized){h.setCardInformation(e.data.payload)}else{c.setCardInformation(e.data.payload)}}if(e.data&&e.data.type==="CARD_TOKENIZED"){if(d.isInitialized){h.setCardTokenId(e.data?.payload?.token)}else if(s.isInitialized){c.setCardTokenId(e.data?.payload?.token)}}if(e.data&&e.data.type==="CARD_ID"){if(d.isInitialized){h.setCardId(e.data.payload?.id)}else if(s.isInitialized){c.setCardId(e.data.payload?.id)}}if(e.data&&e.data.type==="SAVE_CARD"){if(s.isInitialized){c.setSaveCard(e.data.payload?.saveCard)}}if(e.data&&e.data.type==="FETCHING_INSTALLMENTS"){const r=e.data.payload?.fetching||false;if(d.isInitialized){h.setFetchingInstallments(r)}else if(s.isInitialized){c.setFetchingInstallments(r)}}if(e.data&&e.data.type==="NEW_CARD_MODE"){const r=e.data.payload?.mode;if(r&&(r==="input"||r==="select")){if(d.isInitialized){h.setCardMode(r)}else if(s.isInitialized){c.setCardMode(r)}}}};render(){return r("div",{key:"a90d1fbe0b8b7001ccd65c7cd63be26cfac5f669",style:{width:"100%",height:this.iframeHeight,position:"relative",overflow:"hidden"}},!this.iframeLoaded&&r("card-skeleton",{key:"9f4716b57c0255ff5b5fb61d36170422d691206b"}),r("iframe",{key:"54229f7ef544c101b8a3ebb1b77a4fbf99f4e7f9",ref:e=>this.iframeRef=e,src:this.getIframeURL(),style:{width:"100%",height:"100%",border:"none",overflow:"hidden"},title:"Card Payment Component",allow:"payment",onLoad:this.handleIframeLoad}))}};const w=":root{--rebill-color-primary:#3b82f6;--rebill-color-primary-light:rgba(59, 130, 246, 0.1);--rebill-color-primary-hover:#2563eb;--rebill-color-primary-dark:#001131;--rebill-color-primary-dark-text:#000000;--rebill-color-primary-dark-hover:#001c4a;--rebill-color-primary-dark-light:rgba(0, 17, 49, 0.1);--rebill-color-error:#ef4444;--rebill-color-error-background:#fef2f2;--rebill-color-error-light:rgba(239, 68, 68, 0.1);--rebill-color-error-dark:#6f101b;--rebill-color-background:#ffffff;--rebill-color-background-left:#fafafa;--rebill-color-background-right:#f4f5f6;--rebill-color-background-secondary:#f7f8fa;--rebill-color-border:#ebedef;--rebill-color-timeline-connector:#c4c8cf;--rebill-color-neutrals-700:#58616e;--rebill-color-neutrals-500:#9ca3af;--rebill-color-border-primary:#e4e4e7;--rebill-color-text-primary:#3b4049;--rebill-color-text-secondary:#6b7280;--rebill-color-grey-700:#7d7d7d;--rebill-color-text-secondary-light:#a1a1aa;--rebill-color-text-on-primary:#ffffff;--rebill-color-disabled:#9ca3af;--rebill-color-shadow:rgba(0, 0, 0, 0.1);--rebill-color-green:#10b981;--rebill-color-green-text:#257c67;--rebill-color-green-light:rgba(183, 233, 221, 0.15);--rebill-color-green-light-2:rgba(183, 233, 221, 1);--rebill-color-info-background:#d5e4ff;--rebill-color-info-border:#0156f6;--rebill-color-info-text:#172b85;--rebill-color-background-secondary-light:#f7f8fa;--rebill-breakpoint-mobile:768px;--rebill-breakpoint-tablet:1024px;--rebill-breakpoint-desktop:1025px;--rebill-color-orange:#ff9400;--rebill-color-black:#1e2025;--rebill-color-grey-300:#3b4049;--rebill-color-grey-100:#aeaeae}.qr-container,.qr-image,.qr-image svg,.qr-image img,[class*='qr-'],[class*='success'],[class*='receipt']{transition:none !important;animation:none !important;will-change:auto !important}button:active,button:focus,button:hover{isolation:isolate}.iframe-skeleton{display:flex;flex-direction:column;gap:16px}.input-skeleton{width:100%;height:40px;background:var(--rebill-color-border-primary);border-radius:8px;border:1px solid var(--rebill-color-border-primary)}";const T=class{constructor(r){e(this,r)}render(){return r("div",{key:"aabb818f69c787287e6a93ac7c3077fec452485c",class:"iframe-skeleton"},r("div",{key:"7469b36ff3b91f2e5a80d7a5a03036e616c9007f",class:"input-skeleton"}),r("div",{key:"c9d8bba479456f32890607979e556a838b74d3ac",class:"input-skeleton"}))}};T.style=w;const I=".input-container{display:flex;flex-direction:column}.input-label{font-size:0.875rem;color:var(--rebill-color-text-primary);font-weight:500;margin-bottom:0.375rem}.input-label.disabled{cursor:not-allowed}.input-element{border-radius:var(--input-group-inner-border-radius, 8px);border:1.5px solid var(--rebill-color-border);padding:10px 14px;font-size:0.875rem;color:var(--rebill-color-text-primary);outline:none;transition:border-color 0.2s;background:var(--rebill-color-background);height:38.33px;box-sizing:border-box}.input-element.input-error{border-color:var(--rebill-color-error)}.input-element:disabled{background-color:var(--rebill-color-background);border-color:var(--rebill-color-disabled);color:var(--rebill-color-text-secondary);cursor:not-allowed;opacity:0.7}select.input-element{padding:10px 30px 10px 14px;appearance:none;cursor:pointer}select.input-element:disabled{cursor:not-allowed}.input-element:focus{border-color:var(--rebill-color-primary)}.input-element:disabled:focus{border-color:var(--rebill-color-disabled)}.input-element::placeholder{color:var(--rebill-color-text-secondary-light);font-size:0.875rem;opacity:1}.select-wrapper.disabled .select-icon{color:var(--rebill-color-disabled)}.error-message{color:var(--rebill-color-error);font-size:0.75rem;margin-top:0.375rem}:host{display:block;width:100%;box-sizing:border-box}.combo-wrapper{display:flex;align-items:stretch;width:100%;height:38.33px;border-radius:var(--input-group-inner-border-radius, 8px);border:1.5px solid var(--rebill-color-border);background:var(--rebill-color-background);transition:border-color 0.2s;position:relative;box-sizing:border-box}.combo-wrapper:focus-within{border-color:var(--rebill-color-primary);box-shadow:0 0 0 2px var(--rebill-color-primary-light)}.combo-wrapper.error{border-color:var(--rebill-color-error)}.combo-wrapper.disabled{background-color:var(--rebill-color-background);border-color:var(--rebill-color-disabled);color:var(--rebill-color-text-secondary);cursor:not-allowed;opacity:0.7}.select-section{position:relative;flex-shrink:0;min-width:80px;display:flex;align-items:center}.select-combo-trigger{width:100%;height:100%;padding:0 30px 0 14px;font-size:0.875rem;font-weight:normal;color:var(--rebill-color-text-primary);background:transparent;border:none;outline:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;box-sizing:border-box;position:relative;transition:border-color 0.2s}.select-combo-trigger:focus{outline:none}.select-combo-trigger:hover:not(.disabled){border-color:var(--rebill-color-primary)}.select-combo-trigger.placeholder .select-value{color:var(--rebill-color-text-secondary-light)}.combo-wrapper.disabled .select-combo-trigger{cursor:not-allowed;color:var(--rebill-color-text-secondary)}.select-value{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-section .icon-wrapper{position:absolute;right:0.75rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;height:20px;width:20px}.select-icon{color:var(--rebill-color-text-secondary);transition:transform 0.2s ease;transform-origin:50% 50%;display:block}.combo-wrapper.disabled .select-icon{color:var(--rebill-color-disabled)}.select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--rebill-color-background);border:1px solid var(--rebill-color-border);border-radius:0.375rem;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);margin-top:0.25rem;max-height:200px;overflow-y:auto;animation:slideDown 0.15s ease-out;box-sizing:border-box;width:100%}.select-option{padding:0.75rem;font-size:0.875rem;color:var(--rebill-color-text-primary);cursor:pointer;border-bottom:1px solid var(--rebill-color-border);transition:background-color 0.15s ease}.select-option:last-child{border-bottom:none}.select-option:hover,.select-option.highlighted{background-color:#f0f9ff}.select-option.selected{background-color:var(--rebill-color-primary);color:white}.select-option.selected:hover,.select-option.selected.highlighted{background-color:var(--rebill-color-primary)}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background-color:var(--rebill-color-border);border-radius:3px}.select-dropdown::-webkit-scrollbar-thumb:hover{background-color:var(--rebill-color-text-secondary)}.combo-divider{width:1px;background-color:var(--rebill-color-border);margin:0;flex-shrink:0}.input-section{flex:1;min-width:0;display:flex;align-items:center}.combo-input{width:100%;height:100%;padding:0 14px;font-size:0.875rem;color:var(--rebill-color-text-primary);background:transparent;border:none;outline:none;box-sizing:border-box}.combo-input:focus{outline:none}.combo-input::placeholder{color:var(--rebill-color-text-secondary-light);font-size:0.875rem;opacity:1}.combo-wrapper.disabled .combo-input{color:var(--rebill-color-text-secondary);cursor:not-allowed}.combo-wrapper.disabled .combo-input::placeholder{color:var(--rebill-color-text-secondary)}@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background-color:var(--rebill-color-border);border-radius:3px}.select-dropdown::-webkit-scrollbar-thumb:hover{background-color:var(--rebill-color-text-secondary)}";const E=class{constructor(r){e(this,r);this.blur=o(this,"blur");this.selectChange=o(this,"selectChange");this.input=o(this,"input")}dropdownRef;triggerRef;label="";options=[];selectValue="";inputValue="";inputPlaceholder="";selectPlaceholder="";error="";selectId="";inputId="";disabled=false;selectWidth="120px";isOpen=false;highlightedIndex=-1;componentId="";blur;selectChange;input;componentWillLoad(){this.componentId=this.selectId||`combo-${Math.random().toString(36).substr(2,9)}`}handleFormChange(e){const r=e.detail;if(r){if(this.selectId&&this.selectId in r){const e=r[this.selectId];if(typeof e==="string"){this.selectValue=e}}if(this.inputId&&this.inputId in r){const e=r[this.inputId];if(typeof e==="string"){this.inputValue=e}}}}handleCloseAllSelects(e){if(e.detail!==this.componentId){this.closeDropdown()}}handleDocumentClick(e){if(this.dropdownRef&&this.triggerRef&&!this.dropdownRef.contains(e.target)&&!this.triggerRef.contains(e.target)){this.closeDropdown()}}toggleDropdown=()=>{if(this.disabled)return;const e=this.isOpen;this.isOpen=!this.isOpen;if(this.isOpen){if(!e){document.dispatchEvent(new CustomEvent("closeAllSelects",{detail:this.componentId}))}this.highlightedIndex=this.options.findIndex((e=>e.value===this.selectValue));if(this.highlightedIndex===-1){this.highlightedIndex=0}}};openDropdown=()=>{if(this.disabled)return;document.dispatchEvent(new CustomEvent("closeAllSelects",{detail:this.componentId}));this.isOpen=true;this.highlightedIndex=this.options.findIndex((e=>e.value===this.selectValue));if(this.highlightedIndex===-1){this.highlightedIndex=0}};closeDropdown=()=>{this.isOpen=false;this.highlightedIndex=-1};selectOption=e=>{if(this.disabled)return;this.selectValue=e.value;this.closeDropdown();this.input.emit({id:this.selectId,value:this.selectValue})};onInputChange=e=>{if(this.disabled)return;const r=e.target;this.inputValue=r.value;this.input.emit({id:this.inputId,value:this.inputValue})};onSelectBlur=()=>{this.blur.emit({id:this.selectId,value:this.selectValue})};onInputBlur=()=>{const e=this.inputValue.trim();if(e!==this.inputValue){this.inputValue=e;this.input.emit({id:this.inputId,value:this.inputValue})}this.blur.emit({id:this.inputId,value:this.inputValue})};handleKeyDown=e=>{if(this.disabled)return;switch(e.key){case"Enter":case" ":e.preventDefault();if(this.isOpen&&this.highlightedIndex>=0){this.selectOption(this.options[this.highlightedIndex])}else{this.toggleDropdown()}break;case"Escape":e.preventDefault();this.closeDropdown();break;case"ArrowDown":e.preventDefault();if(!this.isOpen){this.openDropdown()}else{this.highlightedIndex=Math.min(this.highlightedIndex+1,this.options.length-1)}break;case"ArrowUp":e.preventDefault();if(this.isOpen){this.highlightedIndex=Math.max(this.highlightedIndex-1,0)}break}};getSelectedOptionLabel=()=>{const e=this.options.find((e=>e.value===this.selectValue));return e?e.label:this.selectPlaceholder};render(){const e=this.getSelectedOptionLabel();const o=this.selectValue!=="";return r("div",{key:"51394c83fd6ce62b0065752caf6c85acd5d9a74d",class:"input-container"},this.label&&r("label",{key:"174a3f870c8ba98e303b95ccc0adaf261dacd40a",class:`input-label ${this.disabled?"disabled":""}`},this.label),r("div",{key:"62dce8f295e3db5cf1cbc6539667e229ded2968c",class:`input-combo-wrapper combo-wrapper ${this.disabled?"disabled":""} ${this.error?"error":""}`},r("div",{key:"91a0b6360c2993042da8a3e614bc4d141f89be4f",class:"select-section",style:{width:this.selectWidth}},r("div",{key:"00d1223c2f484911f7a3ce0e71a8fd90a85343fa",ref:e=>this.triggerRef=e,class:`input-combo-select select-combo-trigger ${!o?"placeholder":""}`,onClick:this.toggleDropdown,onKeyDown:this.handleKeyDown,onBlur:this.onSelectBlur,tabIndex:this.disabled?-1:0,role:"combobox","aria-expanded":this.isOpen.toString(),"aria-haspopup":"listbox"},r("span",{key:"7bbcf670c44d3e747fa031b8b528bca7697ca415",class:"select-value"},e),r("div",{key:"c8b3f525abad3ee13b400aa2fcf2b0c2f6399c16",class:"icon-wrapper"},r("rebill-icon",{key:"9aacc00ef8838bd4fdb3532136232f1ce641dd19",name:"chevron-up-down",size:"20px",class:"select-icon"}))),this.isOpen&&r("div",{key:"b83f9e4c4d6e71fbe558f9a9621b7664f1a33810",ref:e=>this.dropdownRef=e,class:"select-dropdown",role:"listbox"},this.options.map(((e,o)=>r("div",{class:`select-option ${this.selectValue===e.value?"selected":""} ${this.highlightedIndex===o?"highlighted":""}`,onClick:()=>this.selectOption(e),role:"option","aria-selected":this.selectValue===e.value?"true":"false"},e.label))))),r("div",{key:"27d7f266bb4b4b6505c8157cb9ecb9dd4133008b",class:"combo-divider"}),r("div",{key:"dcf063d1568c5e8c7079d6a21e06f297a2521335",class:"input-section"},r("input",{key:"2c2617b1ecbc4433a7c79827f64400d7563f8563",type:"text",class:"input-combo-element combo-input",placeholder:this.inputPlaceholder,value:this.inputValue,onInput:this.onInputChange,onBlur:this.onInputBlur,disabled:this.disabled}))),this.error&&r("span",{key:"ee3cd9668cb204f9142a80777d900a5ffbab032a",class:"error-message"},this.error))}};E.style=I;const C="";const S=class{constructor(r){e(this,r)}get el(){return t(this)}error;currentValue=null;isDisabled=false;value=null;placeholder=null;handleInstallments=e=>{if(this.isDisabled){const e=new CustomEvent("input",{detail:{id:"installments",value:"",disabled:true},bubbles:true});this.el.dispatchEvent(e);return}this.currentValue=e.detail.value;c.setSelectedInstallment(e.detail.value)};componentWillLoad(){c.onChange("data",(()=>{this.isDisabled=!s.data.cardInformation?.installments?.isAvailableInstallments;this.placeholder=!s.data.cardInformation?.installments?.isAvailableInstallments?f(s.data.pricing?.currency):u(s.data.pricing?.currency);this.value=this.isDisabled?"":this.value;if(this.isDisabled){const e=new CustomEvent("input",{detail:{id:"installments",value:"",disabled:true},bubbles:true});this.el.dispatchEvent(e)}}))}render(){return r("div",{key:"b96a446be885c3b9f73ff88388011dbb2e39fda2"},r("rebill-input-select",{key:this.isDisabled.toString(),id:"installments",variant:"outlined",value:this.value,options:s.data.cardInformation?.installments?.installments.map((e=>({label:g(e.installment,y(e.installmentAmount),s.data.pricing?.currency,e.cft,e.model),value:e?.installment?.toString()})))||[],loading:s.data.fetchingInstallments,placeholder:this.placeholder,disabled:this.isDisabled,"on-input":this.handleInstallments,error:l.translate(this.error)}),s.data.cardInformation?.installments?.installments.find((e=>e.installment===s.data.cardInformation?.installments?.selectedInstallment?.installment))?.model===m.CUSTOMER_FINANCED&&r("rebill-typography",{key:"11ca6ada58e626afa5384a126b7772d012316397",variant:"italic",color:x.SECONDARY},l.translate("installments.interest")))}};S.style=C;export{v as card_identification,k as card_iframe,T as card_skeleton,E as rebill_input_combo,S as rebill_installments};
|
|
2
|
+
//# sourceMappingURL=p-3b7a11c7.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Identification","documentTypes","country","currentLanguage","I18nService","getCurrentLanguage","documentTypeError","documentNumberError","loadDocumentTypes","async","currentCountry","renewalState","isInitialized","data","price","sessionState","pricing","this","response","api","getDocumentTypes","error","console","componentWillLoad","i18n","on","handleLanguageChange","SessionStore","onChange","handleInputChange","event","id","value","detail","RenewalStore","setUserIdentification","setUserInformation","disconnectedCallback","off","render","options","map","documentType","label","h","Fragment","key","translate","CardIframe","customCSS","iframeLoaded","currentLang","currentLocale","initialLang","iframeHeight","getIframeURL","baseURL","getAPIConfig","iframeURL","url","URL","searchParams","set","subscription","customerId","token","toString","iframeRef","unsubscribeCurrentLocaleStore","unsubscribeDataStore","unsubscribeRenewalStore","postInitialDataToIframe","organization","postOrganizationIdToIframe","postLanguageToIframe","postTotalPriceToIframe","postCurrencyToIframe","postCustomerIdToIframe","postTokenToIframe","postItemTypeToIframe","postCustomCSSToIframe","contentWindow","totalPrice","amount","totalWithoutInstallment","postMessage","type","payload","total","lang","organizationId","accessToken","itemType","itemInformation","currency","css","postClearCustomerIdToIframe","undefined","renewalOnChange","setTimeout","componentWillUpdate","componentDidLoad","window","addEventListener","handleIframeMessage","removeEventListener","handleIframeLoad","height","complete","setCardId","setCardTokenId","setCardInformation","setSaveCard","saveCard","isFetching","fetching","setFetchingInstallments","mode","setCardMode","style","width","position","overflow","ref","el","src","border","title","allow","onLoad","cardSkeletonCss","CardSkeleton","class","inputComboCss","InputCombo","dropdownRef","triggerRef","selectValue","inputValue","inputPlaceholder","selectPlaceholder","selectId","inputId","disabled","selectWidth","isOpen","highlightedIndex","componentId","blur","selectChange","input","Math","random","substr","handleFormChange","formData","newSelectValue","newInputValue","handleCloseAllSelects","closeDropdown","handleDocumentClick","contains","target","toggleDropdown","wasOpen","document","dispatchEvent","CustomEvent","findIndex","option","openDropdown","selectOption","emit","onInputChange","onSelectBlur","onInputBlur","trimmedValue","trim","handleKeyDown","preventDefault","min","length","max","getSelectedOptionLabel","selectedOption","find","selectedLabel","hasSelectValue","onClick","onKeyDown","onBlur","tabIndex","role","name","size","index","placeholder","onInput","installmentsCss","Installments","currentValue","isDisabled","handleInstallments","inputEvent","bubbles","setSelectedInstallment","cardInformation","installments","isAvailableInstallments","getInstallmentDisabledPlaceholderByCurrency","getInstallmentPlaceholderByCurrency","variant","installment","getInstallmentLabel","getRecalculatedInstallmentAmount","installmentAmount","cft","model","loading","fetchingInstallments","selectedInstallment","ENUM_INSTALLMENT_MODEL","CUSTOMER_FINANCED","color","COLORS_ENUM","SECONDARY"],"sources":["src/components/checkout/payment-method-selector/card-fields/identification/identification.tsx","src/components/checkout/payment-method-selector/card-fields/iframe/CardIframe.tsx","src/components/checkout/payment-method-selector/card-fields/iframe/skeleton/cardSkeleton.css?tag=card-skeleton","src/components/checkout/payment-method-selector/card-fields/iframe/skeleton/CardSkeleton.tsx","src/components/shared/inputs/input-combo/input-combo.css?tag=rebill-input-combo","src/components/shared/inputs/input-combo/input-combo.tsx","src/components/checkout/payment-method-selector/card-fields/installments/installments.css?tag=rebill-installments","src/components/checkout/payment-method-selector/card-fields/installments/installments.tsx"],"sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\nimport { api, DocumentType } from '../../../../../api';\nimport i18n from '../../../../../i18n/i18n.config';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { onChange, renewalState, RenewalStore } from '../../../../../store/renewal.store';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\n\n@Component({\n tag: 'card-identification',\n shadow: false,\n})\nexport class Identification {\n @State() documentTypes: DocumentType[] = [];\n @State() country: string = '';\n @State() currentLanguage: string = I18nService.getCurrentLanguage();\n @Prop() documentTypeError: string = '';\n @Prop() documentNumberError: string = '';\n\n loadDocumentTypes = async () => {\n const currentCountry = renewalState.isInitialized\n ? renewalState.data?.price?.country\n : sessionState?.data?.pricing?.country;\n\n if (currentCountry && currentCountry !== this.country) {\n try {\n const response = await api.data.getDocumentTypes(currentCountry);\n this.documentTypes = response.data;\n this.country = currentCountry;\n } catch (error) {\n console.error('Error loading document types:', error);\n }\n }\n };\n\n async componentWillLoad() {\n i18n.on('languageChanged', this.handleLanguageChange);\n\n SessionStore.onChange('data', () => {\n if (!renewalState.isInitialized) {\n this.loadDocumentTypes();\n }\n });\n\n onChange('data', () => {\n if (renewalState.isInitialized) {\n this.loadDocumentTypes();\n }\n });\n\n await this.loadDocumentTypes();\n }\n\n handleInputChange = (event: CustomEvent) => {\n const { id, value } = event.detail;\n\n if (renewalState.isInitialized) {\n RenewalStore.setUserIdentification({ [id]: value });\n } else {\n SessionStore.setUserInformation({ [id]: value });\n }\n };\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = I18nService.getCurrentLanguage();\n };\n\n render() {\n // Determinar qué error mostrar (priorizar documentTypeError si ambos están presentes)\n const error = this.documentTypeError || this.documentNumberError;\n\n const options = this.documentTypes.map(documentType => ({\n label: documentType.value,\n value: documentType.value,\n }));\n\n return (\n <>\n <rebill-input-combo\n select-id=\"documentType\"\n input-id=\"documentNumber\"\n on-input={this.handleInputChange}\n select-placeholder={I18nService.translate('document.typePlaceholder')}\n input-placeholder={I18nService.translate('document.numberPlaceholder')}\n error={I18nService.translate(error)}\n options={options}\n />\n </>\n );\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { getAPIConfig } from 'api/config';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from 'store/renewal.store';\nimport { onChange, sessionState, SessionStore } from 'store/session.store';\n\n@Component({\n tag: 'card-iframe',\n shadow: false,\n})\nexport class CardIframe {\n @Prop() customCSS?: string;\n @State() iframeLoaded: boolean = false;\n @State() currentLang: string = sessionState.currentLocale;\n @State() initialLang: string = sessionState.currentLocale;\n @State() iframeHeight: string = '100px';\n\n private getIframeURL(): string {\n const baseURL = getAPIConfig().iframeURL;\n const url = new URL(baseURL);\n url.searchParams.set('lang', this.initialLang);\n\n if (renewalState.data?.subscription?.customerId && renewalState.token) {\n url.searchParams.set('customerId', renewalState.data.subscription.customerId);\n url.searchParams.set('token', renewalState.token);\n }\n return url.toString();\n }\n\n private iframeRef?: HTMLIFrameElement;\n private unsubscribeCurrentLocaleStore?: () => void;\n private unsubscribeDataStore?: () => void;\n private unsubscribeRenewalStore?: () => void;\n // private lastTotalPrice?: number;\n\n private postInitialDataToIframe() {\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n this.postLanguageToIframe();\n this.postTotalPriceToIframe();\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n } else {\n if (sessionState.data?.organization?.id) {\n this.postOrganizationIdToIframe(sessionState.data.organization.id);\n }\n if (sessionState?.currentLocale) {\n this.postLanguageToIframe();\n }\n this.postTotalPriceToIframe();\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n\n // Always send custom CSS if available\n this.postCustomCSSToIframe();\n }\n\n private postTotalPriceToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n let totalPrice: number;\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n totalPrice = renewalState.data?.price?.amount || 0;\n } else {\n totalPrice = sessionState.data?.pricing?.totalWithoutInstallment || 0;\n }\n\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOTAL_PRICE',\n payload: {\n total: totalPrice,\n },\n },\n '*',\n );\n }\n }\n\n private postCustomerIdToIframe() {\n if (\n this.iframeRef &&\n this.iframeRef.contentWindow &&\n renewalState.data?.subscription?.customerId\n ) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOMER_ID',\n payload: {\n customerId: renewalState.data.subscription.customerId,\n },\n },\n '*',\n );\n } else if (this.iframeRef && this.iframeRef.contentWindow && sessionState.data.customerId) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOMER_ID',\n payload: { customerId: sessionState.data.customerId },\n },\n '*',\n );\n }\n }\n\n private postLanguageToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_LANGUAGE',\n payload: { lang: this.currentLang },\n },\n '*',\n );\n }\n }\n\n private postOrganizationIdToIframe(organizationId: string) {\n if (!!this.iframeRef && !!this.iframeRef.contentWindow) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ORGANIZATION_ID',\n payload: { organizationId },\n },\n '*',\n );\n }\n }\n private postTokenToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow && renewalState.token) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOKEN',\n payload: {\n token: renewalState.token,\n },\n },\n '*',\n );\n } else if (this.iframeRef && this.iframeRef.contentWindow && sessionState.data.accessToken) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOKEN',\n payload: { token: sessionState.data.accessToken },\n },\n '*',\n );\n }\n }\n\n private postItemTypeToIframe() {\n if (!this.iframeRef || !this.iframeRef.contentWindow) {\n return;\n }\n\n if (renewalState.isInitialized && renewalState.data?.subscription?.type) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ITEM_TYPE',\n payload: { itemType: renewalState.data.subscription.type },\n },\n '*',\n );\n } else if (sessionState.data?.itemInformation?.type) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ITEM_TYPE',\n payload: { itemType: sessionState.data.itemInformation.type },\n },\n '*',\n );\n }\n }\n\n private postCurrencyToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n let currency: string;\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n currency = renewalState.data?.price?.currency || '';\n } else {\n currency = sessionState.data?.pricing?.currency || '';\n }\n\n if (currency) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CURRENCY',\n payload: {\n currency: currency,\n },\n },\n '*',\n );\n }\n }\n }\n\n private postCustomCSSToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow && this.customCSS) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOM_CSS',\n payload: {\n css: this.customCSS,\n },\n },\n '*',\n );\n }\n }\n\n private postClearCustomerIdToIframe() {\n if (\n this.iframeRef &&\n this.iframeRef.contentWindow &&\n (!sessionState.data.customerId || !sessionState.data.accessToken)\n ) {\n this.iframeRef.contentWindow.postMessage({ type: 'CLEAR_CUSTOMER_ID_AND_TOKEN' }, '*');\n }\n }\n\n componentWillLoad() {\n this.initialLang = sessionState.currentLocale;\n this.unsubscribeCurrentLocaleStore = onChange('currentLocale', () => {\n this.currentLang = sessionState.currentLocale;\n this.postLanguageToIframe();\n });\n\n this.unsubscribeDataStore = onChange('data', () => {\n // Only handle session store changes if renewal is not initialized\n if (!renewalState.isInitialized) {\n if (sessionState.data?.organization?.id) {\n this.postOrganizationIdToIframe(sessionState.data.organization.id);\n }\n if (\n sessionState.data?.pricing?.totalWithoutInstallment !== undefined &&\n sessionState.data?.pricing?.totalWithoutInstallment !== null\n ) {\n this.postTotalPriceToIframe();\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n this.postClearCustomerIdToIframe();\n }\n });\n\n // Listen for renewal store changes\n this.unsubscribeRenewalStore = renewalOnChange('data', () => {\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n if (renewalState.data?.price?.amount !== undefined) {\n this.postTotalPriceToIframe();\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n });\n\n setTimeout(() => {\n this.postInitialDataToIframe();\n }, 1000);\n }\n\n componentWillUpdate() {\n // Send CSS when customCSS prop changes\n if (this.iframeLoaded) {\n this.postCustomCSSToIframe();\n }\n }\n\n componentDidLoad() {\n window.addEventListener('message', this.handleIframeMessage);\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) this.unsubscribeCurrentLocaleStore();\n if (this.unsubscribeDataStore) this.unsubscribeDataStore();\n if (this.unsubscribeRenewalStore) this.unsubscribeRenewalStore();\n window.removeEventListener('message', this.handleIframeMessage);\n }\n\n private handleIframeLoad = () => {\n this.iframeLoaded = true;\n this.postLanguageToIframe();\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n\n // Send custom CSS immediately when iframe loads\n this.postCustomCSSToIframe();\n\n setTimeout(() => {\n this.postInitialDataToIframe();\n }, 500);\n };\n\n private handleIframeMessage = (event: MessageEvent) => {\n if (\n event.data &&\n event.data.type === 'IFRAME_HEIGHT' &&\n event.data.payload &&\n typeof event.data.payload.height === 'number'\n ) {\n this.iframeHeight = `${event.data.payload.height}px`;\n }\n if (event.data && event.data.type === 'FORM_STATE') {\n if (renewalState.isInitialized) {\n if (!event.data.payload?.complete) {\n RenewalStore.setCardId(null);\n RenewalStore.setCardTokenId(null);\n }\n } else if (sessionState.isInitialized) {\n if (!event.data.payload?.complete) {\n SessionStore.setCardId(null);\n SessionStore.setCardTokenId(null);\n }\n }\n }\n if (event.data && event.data.type === 'INSTALLMENTS' && event.data.payload) {\n if (renewalState.isInitialized) {\n RenewalStore.setCardInformation(event.data.payload);\n } else {\n SessionStore.setCardInformation(event.data.payload);\n }\n }\n // if (event.data && event.data.type === 'CARD_TOKENIZED' && event.data.payload) {\n if (event.data && event.data.type === 'CARD_TOKENIZED') {\n if (renewalState.isInitialized) {\n RenewalStore.setCardTokenId(event.data?.payload?.token);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardTokenId(event.data?.payload?.token);\n }\n }\n if (event.data && event.data.type === 'CARD_ID') {\n if (renewalState.isInitialized) {\n RenewalStore.setCardId(event.data.payload?.id);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardId(event.data.payload?.id);\n }\n }\n if (event.data && event.data.type === 'SAVE_CARD') {\n if (sessionState.isInitialized) {\n SessionStore.setSaveCard(event.data.payload?.saveCard);\n }\n }\n if (event.data && event.data.type === 'FETCHING_INSTALLMENTS') {\n const isFetching = event.data.payload?.fetching || false;\n if (renewalState.isInitialized) {\n RenewalStore.setFetchingInstallments(isFetching);\n } else if (sessionState.isInitialized) {\n SessionStore.setFetchingInstallments(isFetching);\n }\n }\n if (event.data && event.data.type === 'NEW_CARD_MODE') {\n const mode = event.data.payload?.mode;\n\n if (mode && (mode === 'input' || mode === 'select')) {\n if (renewalState.isInitialized) {\n RenewalStore.setCardMode(mode);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardMode(mode);\n }\n }\n }\n };\n\n render() {\n return (\n <div\n style={{\n width: '100%',\n height: this.iframeHeight,\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n {!this.iframeLoaded && <card-skeleton />}\n <iframe\n ref={el => (this.iframeRef = el as HTMLIFrameElement)}\n src={this.getIframeURL()}\n style={{\n width: '100%',\n height: '100%',\n border: 'none',\n overflow: 'hidden',\n }}\n title=\"Card Payment Component\"\n allow=\"payment\"\n onLoad={this.handleIframeLoad}\n />\n </div>\n );\n }\n}\n","@import '../../../../../../styles/variables.css';\n\n.iframe-skeleton {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.input-skeleton {\n width: 100%;\n height: 40px;\n background: var(--rebill-color-border-primary);\n border-radius: 8px;\n border: 1px solid var(--rebill-color-border-primary);\n}\n","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'card-skeleton',\n styleUrl: './cardSkeleton.css',\n shadow: false,\n})\nexport class CardSkeleton {\n render() {\n return (\n <div class=\"iframe-skeleton\">\n <div class=\"input-skeleton\" />\n <div class=\"input-skeleton\" />\n </div>\n );\n }\n}\n","@import '../shared-input.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n}\n\n.combo-wrapper {\n display: flex;\n align-items: stretch;\n width: 100%;\n height: 38.33px;\n border-radius: var(--input-group-inner-border-radius, 8px);\n border: 1.5px solid var(--rebill-color-border);\n background: var(--rebill-color-background);\n transition: border-color 0.2s;\n position: relative;\n box-sizing: border-box;\n}\n\n.combo-wrapper:focus-within {\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.combo-wrapper.error {\n border-color: var(--rebill-color-error);\n}\n\n.combo-wrapper.disabled {\n background-color: var(--rebill-color-background);\n border-color: var(--rebill-color-disabled);\n color: var(--rebill-color-text-secondary);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n/* Sección del selector */\n.select-section {\n position: relative;\n flex-shrink: 0;\n min-width: 80px;\n display: flex;\n align-items: center;\n}\n\n.select-combo-trigger {\n width: 100%;\n height: 100%;\n padding: 0 30px 0 14px;\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n box-sizing: border-box;\n position: relative;\n transition: border-color 0.2s;\n}\n\n.select-combo-trigger:focus {\n outline: none;\n}\n\n.select-combo-trigger:hover:not(.disabled) {\n border-color: var(--rebill-color-primary);\n}\n\n.select-combo-trigger.placeholder .select-value {\n color: var(--rebill-color-text-secondary-light);\n}\n\n.combo-wrapper.disabled .select-combo-trigger {\n cursor: not-allowed;\n color: var(--rebill-color-text-secondary);\n}\n\n.select-value {\n flex: 1;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.select-section .icon-wrapper {\n position: absolute;\n right: 0.75rem;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n width: 20px;\n}\n\n.select-icon {\n color: var(--rebill-color-text-secondary);\n transition: transform 0.2s ease;\n transform-origin: 50% 50%;\n display: block;\n}\n\n.combo-wrapper.disabled .select-icon {\n color: var(--rebill-color-disabled);\n}\n\n/* Dropdown del selector */\n.select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 1000;\n background-color: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n box-shadow:\n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n margin-top: 0.25rem;\n max-height: 200px;\n overflow-y: auto;\n animation: slideDown 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\n.select-option {\n padding: 0.75rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n cursor: pointer;\n border-bottom: 1px solid var(--rebill-color-border);\n transition: background-color 0.15s ease;\n}\n\n.select-option:last-child {\n border-bottom: none;\n}\n\n.select-option:hover,\n.select-option.highlighted {\n background-color: #f0f9ff;\n}\n\n.select-option.selected {\n background-color: var(--rebill-color-primary);\n color: white;\n}\n\n.select-option.selected:hover,\n.select-option.selected.highlighted {\n background-color: var(--rebill-color-primary);\n}\n\n/* Scrollbar styling para el dropdown */\n.select-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.select-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n\n/* Divisor vertical */\n.combo-divider {\n width: 1px;\n background-color: var(--rebill-color-border);\n margin: 0;\n flex-shrink: 0;\n}\n\n/* Sección del input de texto */\n.input-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n}\n\n.combo-input {\n width: 100%;\n height: 100%;\n padding: 0 14px;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n background: transparent;\n border: none;\n outline: none;\n box-sizing: border-box;\n}\n\n.combo-input:focus {\n outline: none;\n}\n\n.combo-input::placeholder {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n opacity: 1;\n}\n\n.combo-wrapper.disabled .combo-input {\n color: var(--rebill-color-text-secondary);\n cursor: not-allowed;\n}\n\n.combo-wrapper.disabled .combo-input::placeholder {\n color: var(--rebill-color-text-secondary);\n}\n\n/* Animación del dropdown */\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Scrollbar styling para el dropdown */\n.select-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.select-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n","import { Component, Event, EventEmitter, Listen, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'rebill-input-combo',\n styleUrl: 'input-combo.css',\n shadow: false,\n})\nexport class InputCombo {\n private dropdownRef?: HTMLDivElement;\n private triggerRef?: HTMLDivElement;\n\n /** Etiqueta que se muestra arriba del campo */\n @Prop() label: string = '';\n /** Opciones del selector */\n @Prop() options: { label: string; value: string }[] = [];\n /** Valor del selector */\n @Prop({ mutable: true, reflect: true }) selectValue: string = '';\n /** Valor del input de texto */\n @Prop({ mutable: true, reflect: true }) inputValue: string = '';\n /** Placeholder del campo de texto */\n @Prop() inputPlaceholder: string = '';\n /** Placeholder del selector */\n @Prop() selectPlaceholder: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del selector */\n @Prop() selectId: string = '';\n /** ID del input de texto */\n @Prop() inputId: string = '';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Ancho del selector (en porcentaje o píxeles) */\n @Prop() selectWidth: string = '120px';\n /** Estado interno para mostrar/ocultar el dropdown */\n @State() isOpen: boolean = false;\n /** Índice de la opción resaltada para navegación con teclado */\n @State() highlightedIndex: number = -1;\n /** ID único del componente */\n @State() componentId: string = '';\n\n @Event() blur: EventEmitter<{ id: string; value: string }>;\n /** Evento al cambiar el valor del selector */\n @Event() selectChange: EventEmitter<{ id: string; value: string }>;\n /** Evento al cambiar el valor del input */\n @Event() input: EventEmitter<{ id: string; value: string }>;\n\n componentWillLoad() {\n this.componentId = this.selectId || `combo-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData) {\n // Manejar cambios del selector\n if (this.selectId && this.selectId in formData) {\n const newSelectValue = formData[this.selectId];\n if (typeof newSelectValue === 'string') {\n this.selectValue = newSelectValue;\n }\n }\n // Manejar cambios del input\n if (this.inputId && this.inputId in formData) {\n const newInputValue = formData[this.inputId];\n if (typeof newInputValue === 'string') {\n this.inputValue = newInputValue;\n }\n }\n }\n }\n\n @Listen('closeAllSelects', { target: 'document' })\n handleCloseAllSelects(event: CustomEvent) {\n if (event.detail !== this.componentId) {\n this.closeDropdown();\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n if (\n this.dropdownRef &&\n this.triggerRef &&\n !this.dropdownRef.contains(event.target as Node) &&\n !this.triggerRef.contains(event.target as Node)\n ) {\n this.closeDropdown();\n }\n }\n\n private toggleDropdown = () => {\n if (this.disabled) return;\n\n const wasOpen = this.isOpen;\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n if (!wasOpen) {\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n }\n\n this.highlightedIndex = this.options.findIndex(option => option.value === this.selectValue);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n }\n };\n\n private openDropdown = () => {\n if (this.disabled) return;\n\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n\n this.isOpen = true;\n this.highlightedIndex = this.options.findIndex(option => option.value === this.selectValue);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n };\n\n private closeDropdown = () => {\n this.isOpen = false;\n this.highlightedIndex = -1;\n };\n\n private selectOption = (option: { label: string; value: string }) => {\n if (this.disabled) return;\n this.selectValue = option.value;\n this.closeDropdown();\n this.input.emit({ id: this.selectId, value: this.selectValue });\n };\n\n private onInputChange = (event: Event) => {\n if (this.disabled) return;\n const input = event.target as HTMLInputElement;\n this.inputValue = input.value;\n this.input.emit({ id: this.inputId, value: this.inputValue });\n };\n\n private onSelectBlur = () => {\n this.blur.emit({ id: this.selectId, value: this.selectValue });\n };\n\n private onInputBlur = () => {\n const trimmedValue = this.inputValue.trim();\n\n if (trimmedValue !== this.inputValue) {\n this.inputValue = trimmedValue;\n this.input.emit({ id: this.inputId, value: this.inputValue });\n }\n\n this.blur.emit({ id: this.inputId, value: this.inputValue });\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled) return;\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen && this.highlightedIndex >= 0) {\n this.selectOption(this.options[this.highlightedIndex]);\n } else {\n this.toggleDropdown();\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n } else {\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, this.options.length - 1);\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (this.isOpen) {\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n }\n break;\n }\n };\n\n private getSelectedOptionLabel = (): string => {\n const selectedOption = this.options.find(option => option.value === this.selectValue);\n return selectedOption ? selectedOption.label : this.selectPlaceholder;\n };\n\n render() {\n const selectedLabel = this.getSelectedOptionLabel();\n const hasSelectValue = this.selectValue !== '';\n\n return (\n <div class=\"input-container\">\n {this.label && (\n <label class={`input-label ${this.disabled ? 'disabled' : ''}`}>{this.label}</label>\n )}\n <div\n class={`input-combo-wrapper combo-wrapper ${this.disabled ? 'disabled' : ''} ${this.error ? 'error' : ''}`}\n >\n {/* Selector */}\n <div class=\"select-section\" style={{ width: this.selectWidth }}>\n <div\n ref={el => (this.triggerRef = el)}\n class={`input-combo-select select-combo-trigger ${!hasSelectValue ? 'placeholder' : ''}`}\n onClick={this.toggleDropdown}\n onKeyDown={this.handleKeyDown}\n onBlur={this.onSelectBlur}\n tabIndex={this.disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={this.isOpen.toString()}\n aria-haspopup=\"listbox\"\n >\n <span class=\"select-value\">{selectedLabel}</span>\n <div class=\"icon-wrapper\">\n <rebill-icon name=\"chevron-up-down\" size=\"20px\" class=\"select-icon\" />\n </div>\n </div>\n\n {this.isOpen && (\n <div ref={el => (this.dropdownRef = el)} class=\"select-dropdown\" role=\"listbox\">\n {this.options.map((option, index) => (\n <div\n class={`select-option ${this.selectValue === option.value ? 'selected' : ''} ${this.highlightedIndex === index ? 'highlighted' : ''}`}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n aria-selected={this.selectValue === option.value ? 'true' : 'false'}\n >\n {option.label}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Divisor vertical */}\n <div class=\"combo-divider\"></div>\n\n {/* Campo de texto */}\n <div class=\"input-section\">\n <input\n type=\"text\"\n class=\"input-combo-element combo-input\"\n placeholder={this.inputPlaceholder}\n value={this.inputValue}\n onInput={this.onInputChange}\n onBlur={this.onInputBlur}\n disabled={this.disabled}\n />\n </div>\n </div>\n {this.error && <span class=\"error-message\">{this.error}</span>}\n </div>\n );\n }\n}\n",null,"import { Component, Element, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { ENUM_INSTALLMENT_MODEL } from '../../../../../models/enums/installment.enum';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\nimport { COLORS_ENUM } from '../../../../../utils/color-class-mapper';\nimport {\n getInstallmentDisabledPlaceholderByCurrency,\n getInstallmentLabel,\n getInstallmentPlaceholderByCurrency,\n getRecalculatedInstallmentAmount,\n} from '../../../../../utils/installment-utils';\n\n@Component({\n tag: 'rebill-installments',\n styleUrl: 'installments.css',\n shadow: false,\n})\nexport class Installments {\n @Element() el: HTMLElement;\n @Prop() error?: string;\n @State() currentValue: string | null = null;\n @State() isDisabled: boolean = false;\n @State() value: string | null = null;\n @State() placeholder: string | null = null;\n\n handleInstallments = (event: any) => {\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n return;\n }\n this.currentValue = event.detail.value;\n SessionStore.setSelectedInstallment(event.detail.value);\n };\n\n componentWillLoad() {\n SessionStore.onChange('data', () => {\n this.isDisabled = !sessionState.data.cardInformation?.installments?.isAvailableInstallments;\n this.placeholder = !sessionState.data.cardInformation?.installments?.isAvailableInstallments\n ? getInstallmentDisabledPlaceholderByCurrency(sessionState.data.pricing?.currency)\n : getInstallmentPlaceholderByCurrency(sessionState.data.pricing?.currency);\n this.value = this.isDisabled ? '' : this.value;\n\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n });\n }\n\n render() {\n return (\n <div>\n <rebill-input-select\n key={this.isDisabled.toString()}\n id=\"installments\"\n variant=\"outlined\"\n value={this.value}\n options={\n sessionState.data.cardInformation?.installments?.installments.map(installment => ({\n label: getInstallmentLabel(\n installment.installment,\n getRecalculatedInstallmentAmount(installment.installmentAmount),\n sessionState.data.pricing?.currency,\n installment.cft,\n installment.model,\n ),\n value: installment?.installment?.toString(),\n })) || []\n }\n loading={sessionState.data.fetchingInstallments}\n placeholder={this.placeholder}\n disabled={this.isDisabled}\n on-input={this.handleInstallments}\n error={I18nService.translate(this.error)}\n ></rebill-input-select>\n {sessionState.data.cardInformation?.installments?.installments.find(\n installment =>\n installment.installment ===\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n )?.model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED && (\n <rebill-typography variant=\"italic\" color={COLORS_ENUM.SECONDARY}>\n {I18nService.translate('installments.interest')}\n </rebill-typography>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Identification","documentTypes","country","currentLanguage","I18nService","getCurrentLanguage","documentTypeError","documentNumberError","loadDocumentTypes","async","currentCountry","renewalState","isInitialized","data","price","sessionState","pricing","this","response","api","getDocumentTypes","error","console","componentWillLoad","i18n","on","handleLanguageChange","SessionStore","onChange","handleInputChange","event","id","value","detail","RenewalStore","setUserIdentification","setUserInformation","disconnectedCallback","off","render","options","map","documentType","label","h","Fragment","key","translate","CardIframe","customCSS","iframeLoaded","currentLang","currentLocale","initialLang","iframeHeight","getIframeURL","baseURL","getAPIConfig","iframeURL","url","URL","searchParams","set","subscription","customerId","token","toString","iframeRef","unsubscribeCurrentLocaleStore","unsubscribeDataStore","unsubscribeRenewalStore","postInitialDataToIframe","organization","postOrganizationIdToIframe","postLanguageToIframe","postTotalPriceToIframe","postCurrencyToIframe","postCustomerIdToIframe","postTokenToIframe","postItemTypeToIframe","postCustomCSSToIframe","contentWindow","totalPrice","amount","totalWithoutInstallment","postMessage","type","payload","total","lang","organizationId","accessToken","itemType","itemInformation","currency","css","postClearCustomerIdToIframe","undefined","renewalOnChange","setTimeout","componentWillUpdate","componentDidLoad","window","addEventListener","handleIframeMessage","removeEventListener","handleIframeLoad","height","complete","setCardId","setCardTokenId","setCardInformation","setSaveCard","saveCard","isFetching","fetching","setFetchingInstallments","mode","setCardMode","style","width","position","overflow","ref","el","src","border","title","allow","onLoad","cardSkeletonCss","CardSkeleton","class","inputComboCss","InputCombo","dropdownRef","triggerRef","selectValue","inputValue","inputPlaceholder","selectPlaceholder","selectId","inputId","disabled","selectWidth","isOpen","highlightedIndex","componentId","blur","selectChange","input","Math","random","substr","handleFormChange","formData","newSelectValue","newInputValue","handleCloseAllSelects","closeDropdown","handleDocumentClick","contains","target","toggleDropdown","wasOpen","document","dispatchEvent","CustomEvent","findIndex","option","openDropdown","selectOption","emit","onInputChange","onSelectBlur","onInputBlur","trimmedValue","trim","handleKeyDown","preventDefault","min","length","max","getSelectedOptionLabel","selectedOption","find","selectedLabel","hasSelectValue","onClick","onKeyDown","onBlur","tabIndex","role","name","size","index","placeholder","onInput","installmentsCss","Installments","currentValue","isDisabled","handleInstallments","inputEvent","bubbles","setSelectedInstallment","cardInformation","installments","isAvailableInstallments","getInstallmentDisabledPlaceholderByCurrency","getInstallmentPlaceholderByCurrency","variant","installment","getInstallmentLabel","getRecalculatedInstallmentAmount","installmentAmount","cft","model","loading","fetchingInstallments","selectedInstallment","ENUM_INSTALLMENT_MODEL","CUSTOMER_FINANCED","color","COLORS_ENUM","SECONDARY"],"sources":["src/components/checkout/payment-method-selector/card-fields/identification/identification.tsx","src/components/checkout/payment-method-selector/card-fields/iframe/CardIframe.tsx","src/components/checkout/payment-method-selector/card-fields/iframe/skeleton/cardSkeleton.css?tag=card-skeleton","src/components/checkout/payment-method-selector/card-fields/iframe/skeleton/CardSkeleton.tsx","src/components/shared/inputs/input-combo/input-combo.css?tag=rebill-input-combo","src/components/shared/inputs/input-combo/input-combo.tsx","src/components/checkout/payment-method-selector/card-fields/installments/installments.css?tag=rebill-installments","src/components/checkout/payment-method-selector/card-fields/installments/installments.tsx"],"sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\nimport { api, DocumentType } from '../../../../../api';\nimport i18n from '../../../../../i18n/i18n.config';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { onChange, renewalState, RenewalStore } from '../../../../../store/renewal.store';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\n\n@Component({\n tag: 'card-identification',\n shadow: false,\n})\nexport class Identification {\n @State() documentTypes: DocumentType[] = [];\n @State() country: string = '';\n @State() currentLanguage: string = I18nService.getCurrentLanguage();\n @Prop() documentTypeError: string = '';\n @Prop() documentNumberError: string = '';\n\n loadDocumentTypes = async () => {\n const currentCountry = renewalState.isInitialized\n ? renewalState.data?.price?.country\n : sessionState?.data?.pricing?.country;\n\n if (currentCountry && currentCountry !== this.country) {\n try {\n const response = await api.data.getDocumentTypes(currentCountry);\n this.documentTypes = response.data;\n this.country = currentCountry;\n } catch (error) {\n console.error('Error loading document types:', error);\n }\n }\n };\n\n async componentWillLoad() {\n i18n.on('languageChanged', this.handleLanguageChange);\n\n SessionStore.onChange('data', () => {\n if (!renewalState.isInitialized) {\n this.loadDocumentTypes();\n }\n });\n\n onChange('data', () => {\n if (renewalState.isInitialized) {\n this.loadDocumentTypes();\n }\n });\n\n await this.loadDocumentTypes();\n }\n\n handleInputChange = (event: CustomEvent) => {\n const { id, value } = event.detail;\n\n if (renewalState.isInitialized) {\n RenewalStore.setUserIdentification({ [id]: value });\n } else {\n SessionStore.setUserInformation({ [id]: value });\n }\n };\n\n disconnectedCallback() {\n i18n.off('languageChanged', this.handleLanguageChange);\n }\n\n private handleLanguageChange = () => {\n this.currentLanguage = I18nService.getCurrentLanguage();\n };\n\n render() {\n // Determinar qué error mostrar (priorizar documentTypeError si ambos están presentes)\n const error = this.documentTypeError || this.documentNumberError;\n\n const options = this.documentTypes.map(documentType => ({\n label: documentType.value,\n value: documentType.value,\n }));\n\n return (\n <>\n <rebill-input-combo\n select-id=\"documentType\"\n input-id=\"documentNumber\"\n on-input={this.handleInputChange}\n select-placeholder={I18nService.translate('document.typePlaceholder')}\n input-placeholder={I18nService.translate('document.numberPlaceholder')}\n error={I18nService.translate(error)}\n options={options}\n />\n </>\n );\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport { getAPIConfig } from 'api/config';\nimport { onChange as renewalOnChange, renewalState, RenewalStore } from 'store/renewal.store';\nimport { onChange, sessionState, SessionStore } from 'store/session.store';\n\n@Component({\n tag: 'card-iframe',\n shadow: false,\n})\nexport class CardIframe {\n @Prop() customCSS?: string;\n @State() iframeLoaded: boolean = false;\n @State() currentLang: string = sessionState.currentLocale;\n @State() initialLang: string = sessionState.currentLocale;\n @State() iframeHeight: string = '100px';\n\n private getIframeURL(): string {\n const baseURL = getAPIConfig().iframeURL;\n const url = new URL(baseURL);\n url.searchParams.set('lang', this.initialLang);\n\n if (renewalState.data?.subscription?.customerId && renewalState.token) {\n url.searchParams.set('customerId', renewalState.data.subscription.customerId);\n url.searchParams.set('token', renewalState.token);\n }\n return url.toString();\n }\n\n private iframeRef?: HTMLIFrameElement;\n private unsubscribeCurrentLocaleStore?: () => void;\n private unsubscribeDataStore?: () => void;\n private unsubscribeRenewalStore?: () => void;\n // private lastTotalPrice?: number;\n\n private postInitialDataToIframe() {\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n this.postLanguageToIframe();\n this.postTotalPriceToIframe();\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n } else {\n if (sessionState.data?.organization?.id) {\n this.postOrganizationIdToIframe(sessionState.data.organization.id);\n }\n if (sessionState?.currentLocale) {\n this.postLanguageToIframe();\n }\n this.postTotalPriceToIframe();\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n\n // Always send custom CSS if available\n this.postCustomCSSToIframe();\n }\n\n private postTotalPriceToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n let totalPrice: number;\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n totalPrice = renewalState.data?.price?.amount || 0;\n } else {\n totalPrice = sessionState.data?.pricing?.totalWithoutInstallment || 0;\n }\n\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOTAL_PRICE',\n payload: {\n total: totalPrice,\n },\n },\n '*',\n );\n }\n }\n\n private postCustomerIdToIframe() {\n if (\n this.iframeRef &&\n this.iframeRef.contentWindow &&\n renewalState.data?.subscription?.customerId\n ) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOMER_ID',\n payload: {\n customerId: renewalState.data.subscription.customerId,\n },\n },\n '*',\n );\n } else if (this.iframeRef && this.iframeRef.contentWindow && sessionState.data.customerId) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOMER_ID',\n payload: { customerId: sessionState.data.customerId },\n },\n '*',\n );\n }\n }\n\n private postLanguageToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_LANGUAGE',\n payload: { lang: this.currentLang },\n },\n '*',\n );\n }\n }\n\n private postOrganizationIdToIframe(organizationId: string) {\n if (!!this.iframeRef && !!this.iframeRef.contentWindow) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ORGANIZATION_ID',\n payload: { organizationId },\n },\n '*',\n );\n }\n }\n private postTokenToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow && renewalState.token) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOKEN',\n payload: {\n token: renewalState.token,\n },\n },\n '*',\n );\n } else if (this.iframeRef && this.iframeRef.contentWindow && sessionState.data.accessToken) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_TOKEN',\n payload: { token: sessionState.data.accessToken },\n },\n '*',\n );\n }\n }\n\n private postItemTypeToIframe() {\n if (!this.iframeRef || !this.iframeRef.contentWindow) {\n return;\n }\n\n if (renewalState.isInitialized && renewalState.data?.subscription?.type) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ITEM_TYPE',\n payload: { itemType: renewalState.data.subscription.type },\n },\n '*',\n );\n } else if (sessionState.data?.itemInformation?.type) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_ITEM_TYPE',\n payload: { itemType: sessionState.data.itemInformation.type },\n },\n '*',\n );\n }\n }\n\n private postCurrencyToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow) {\n let currency: string;\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n currency = renewalState.data?.price?.currency || '';\n } else {\n currency = sessionState.data?.pricing?.currency || '';\n }\n\n if (currency) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CURRENCY',\n payload: {\n currency: currency,\n },\n },\n '*',\n );\n }\n }\n }\n\n private postCustomCSSToIframe() {\n if (this.iframeRef && this.iframeRef.contentWindow && this.customCSS) {\n this.iframeRef.contentWindow.postMessage(\n {\n type: 'SET_CUSTOM_CSS',\n payload: {\n css: this.customCSS,\n },\n },\n '*',\n );\n }\n }\n\n private postClearCustomerIdToIframe() {\n if (\n this.iframeRef &&\n this.iframeRef.contentWindow &&\n (!sessionState.data.customerId || !sessionState.data.accessToken)\n ) {\n this.iframeRef.contentWindow.postMessage({ type: 'CLEAR_CUSTOMER_ID_AND_TOKEN' }, '*');\n }\n }\n\n componentWillLoad() {\n this.initialLang = sessionState.currentLocale;\n this.unsubscribeCurrentLocaleStore = onChange('currentLocale', () => {\n this.currentLang = sessionState.currentLocale;\n this.postLanguageToIframe();\n });\n\n this.unsubscribeDataStore = onChange('data', () => {\n // Only handle session store changes if renewal is not initialized\n if (!renewalState.isInitialized) {\n if (sessionState.data?.organization?.id) {\n this.postOrganizationIdToIframe(sessionState.data.organization.id);\n }\n if (\n sessionState.data?.pricing?.totalWithoutInstallment !== undefined &&\n sessionState.data?.pricing?.totalWithoutInstallment !== null\n ) {\n this.postTotalPriceToIframe();\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n this.postClearCustomerIdToIframe();\n }\n });\n\n // Listen for renewal store changes\n this.unsubscribeRenewalStore = renewalOnChange('data', () => {\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n if (renewalState.data?.price?.amount !== undefined) {\n this.postTotalPriceToIframe();\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n });\n\n setTimeout(() => {\n this.postInitialDataToIframe();\n }, 1000);\n }\n\n componentWillUpdate() {\n // Send CSS when customCSS prop changes\n if (this.iframeLoaded) {\n this.postCustomCSSToIframe();\n }\n }\n\n componentDidLoad() {\n window.addEventListener('message', this.handleIframeMessage);\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) this.unsubscribeCurrentLocaleStore();\n if (this.unsubscribeDataStore) this.unsubscribeDataStore();\n if (this.unsubscribeRenewalStore) this.unsubscribeRenewalStore();\n window.removeEventListener('message', this.handleIframeMessage);\n }\n\n private handleIframeLoad = () => {\n this.iframeLoaded = true;\n this.postLanguageToIframe();\n\n // Use renewal store data if initialized, otherwise use session store\n if (renewalState.isInitialized) {\n if (renewalState.data?.organization?.id) {\n this.postOrganizationIdToIframe(renewalState.data.organization.id);\n }\n this.postCurrencyToIframe();\n this.postCustomerIdToIframe();\n this.postTokenToIframe();\n this.postItemTypeToIframe();\n }\n\n // Send custom CSS immediately when iframe loads\n this.postCustomCSSToIframe();\n\n setTimeout(() => {\n this.postInitialDataToIframe();\n }, 500);\n };\n\n private handleIframeMessage = (event: MessageEvent) => {\n if (\n event.data &&\n event.data.type === 'IFRAME_HEIGHT' &&\n event.data.payload &&\n typeof event.data.payload.height === 'number'\n ) {\n this.iframeHeight = `${event.data.payload.height}px`;\n }\n if (event.data && event.data.type === 'FORM_STATE') {\n if (renewalState.isInitialized) {\n if (!event.data.payload?.complete) {\n RenewalStore.setCardId(null);\n RenewalStore.setCardTokenId(null);\n }\n } else if (sessionState.isInitialized) {\n if (!event.data.payload?.complete) {\n SessionStore.setCardId(null);\n SessionStore.setCardTokenId(null);\n }\n }\n }\n if (event.data && event.data.type === 'INSTALLMENTS' && event.data.payload) {\n if (renewalState.isInitialized) {\n RenewalStore.setCardInformation(event.data.payload);\n } else {\n SessionStore.setCardInformation(event.data.payload);\n }\n }\n // if (event.data && event.data.type === 'CARD_TOKENIZED' && event.data.payload) {\n if (event.data && event.data.type === 'CARD_TOKENIZED') {\n if (renewalState.isInitialized) {\n RenewalStore.setCardTokenId(event.data?.payload?.token);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardTokenId(event.data?.payload?.token);\n }\n }\n if (event.data && event.data.type === 'CARD_ID') {\n if (renewalState.isInitialized) {\n RenewalStore.setCardId(event.data.payload?.id);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardId(event.data.payload?.id);\n }\n }\n if (event.data && event.data.type === 'SAVE_CARD') {\n if (sessionState.isInitialized) {\n SessionStore.setSaveCard(event.data.payload?.saveCard);\n }\n }\n if (event.data && event.data.type === 'FETCHING_INSTALLMENTS') {\n const isFetching = event.data.payload?.fetching || false;\n if (renewalState.isInitialized) {\n RenewalStore.setFetchingInstallments(isFetching);\n } else if (sessionState.isInitialized) {\n SessionStore.setFetchingInstallments(isFetching);\n }\n }\n if (event.data && event.data.type === 'NEW_CARD_MODE') {\n const mode = event.data.payload?.mode;\n\n if (mode && (mode === 'input' || mode === 'select')) {\n if (renewalState.isInitialized) {\n RenewalStore.setCardMode(mode);\n } else if (sessionState.isInitialized) {\n SessionStore.setCardMode(mode);\n }\n }\n }\n };\n\n render() {\n return (\n <div\n style={{\n width: '100%',\n height: this.iframeHeight,\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n {!this.iframeLoaded && <card-skeleton />}\n <iframe\n ref={el => (this.iframeRef = el as HTMLIFrameElement)}\n src={this.getIframeURL()}\n style={{\n width: '100%',\n height: '100%',\n border: 'none',\n overflow: 'hidden',\n }}\n title=\"Card Payment Component\"\n allow=\"payment\"\n onLoad={this.handleIframeLoad}\n />\n </div>\n );\n }\n}\n","@import '../../../../../../styles/variables.css';\n\n.iframe-skeleton {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.input-skeleton {\n width: 100%;\n height: 40px;\n background: var(--rebill-color-border-primary);\n border-radius: 8px;\n border: 1px solid var(--rebill-color-border-primary);\n}\n","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'card-skeleton',\n styleUrl: './cardSkeleton.css',\n shadow: false,\n})\nexport class CardSkeleton {\n render() {\n return (\n <div class=\"iframe-skeleton\">\n <div class=\"input-skeleton\" />\n <div class=\"input-skeleton\" />\n </div>\n );\n }\n}\n","@import '../shared-input.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n}\n\n.combo-wrapper {\n display: flex;\n align-items: stretch;\n width: 100%;\n height: 38.33px;\n border-radius: var(--input-group-inner-border-radius, 8px);\n border: 1.5px solid var(--rebill-color-border);\n background: var(--rebill-color-background);\n transition: border-color 0.2s;\n position: relative;\n box-sizing: border-box;\n}\n\n.combo-wrapper:focus-within {\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.combo-wrapper.error {\n border-color: var(--rebill-color-error);\n}\n\n.combo-wrapper.disabled {\n background-color: var(--rebill-color-background);\n border-color: var(--rebill-color-disabled);\n color: var(--rebill-color-text-secondary);\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n/* Sección del selector */\n.select-section {\n position: relative;\n flex-shrink: 0;\n min-width: 80px;\n display: flex;\n align-items: center;\n}\n\n.select-combo-trigger {\n width: 100%;\n height: 100%;\n padding: 0 30px 0 14px;\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n background: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n box-sizing: border-box;\n position: relative;\n transition: border-color 0.2s;\n}\n\n.select-combo-trigger:focus {\n outline: none;\n}\n\n.select-combo-trigger:hover:not(.disabled) {\n border-color: var(--rebill-color-primary);\n}\n\n.select-combo-trigger.placeholder .select-value {\n color: var(--rebill-color-text-secondary-light);\n}\n\n.combo-wrapper.disabled .select-combo-trigger {\n cursor: not-allowed;\n color: var(--rebill-color-text-secondary);\n}\n\n.select-value {\n flex: 1;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.select-section .icon-wrapper {\n position: absolute;\n right: 0.75rem;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n width: 20px;\n}\n\n.select-icon {\n color: var(--rebill-color-text-secondary);\n transition: transform 0.2s ease;\n transform-origin: 50% 50%;\n display: block;\n}\n\n.combo-wrapper.disabled .select-icon {\n color: var(--rebill-color-disabled);\n}\n\n/* Dropdown del selector */\n.select-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: 1000;\n background-color: var(--rebill-color-background);\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n box-shadow:\n 0 4px 6px -1px rgba(0, 0, 0, 0.1),\n 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n margin-top: 0.25rem;\n max-height: 200px;\n overflow-y: auto;\n animation: slideDown 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\n.select-option {\n padding: 0.75rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n cursor: pointer;\n border-bottom: 1px solid var(--rebill-color-border);\n transition: background-color 0.15s ease;\n}\n\n.select-option:last-child {\n border-bottom: none;\n}\n\n.select-option:hover,\n.select-option.highlighted {\n background-color: #f0f9ff;\n}\n\n.select-option.selected {\n background-color: var(--rebill-color-primary);\n color: white;\n}\n\n.select-option.selected:hover,\n.select-option.selected.highlighted {\n background-color: var(--rebill-color-primary);\n}\n\n/* Scrollbar styling para el dropdown */\n.select-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.select-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n\n/* Divisor vertical */\n.combo-divider {\n width: 1px;\n background-color: var(--rebill-color-border);\n margin: 0;\n flex-shrink: 0;\n}\n\n/* Sección del input de texto */\n.input-section {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n}\n\n.combo-input {\n width: 100%;\n height: 100%;\n padding: 0 14px;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n background: transparent;\n border: none;\n outline: none;\n box-sizing: border-box;\n}\n\n.combo-input:focus {\n outline: none;\n}\n\n.combo-input::placeholder {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n opacity: 1;\n}\n\n.combo-wrapper.disabled .combo-input {\n color: var(--rebill-color-text-secondary);\n cursor: not-allowed;\n}\n\n.combo-wrapper.disabled .combo-input::placeholder {\n color: var(--rebill-color-text-secondary);\n}\n\n/* Animación del dropdown */\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideUp {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Scrollbar styling para el dropdown */\n.select-dropdown::-webkit-scrollbar {\n width: 6px;\n}\n\n.select-dropdown::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb {\n background-color: var(--rebill-color-border);\n border-radius: 3px;\n}\n\n.select-dropdown::-webkit-scrollbar-thumb:hover {\n background-color: var(--rebill-color-text-secondary);\n}\n","import { Component, Event, EventEmitter, Listen, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'rebill-input-combo',\n styleUrl: 'input-combo.css',\n shadow: false,\n})\nexport class InputCombo {\n private dropdownRef?: HTMLDivElement;\n private triggerRef?: HTMLDivElement;\n\n /** Etiqueta que se muestra arriba del campo */\n @Prop() label: string = '';\n /** Opciones del selector */\n @Prop() options: { label: string; value: string }[] = [];\n /** Valor del selector */\n @Prop({ mutable: true, reflect: true }) selectValue: string = '';\n /** Valor del input de texto */\n @Prop({ mutable: true, reflect: true }) inputValue: string = '';\n /** Placeholder del campo de texto */\n @Prop() inputPlaceholder: string = '';\n /** Placeholder del selector */\n @Prop() selectPlaceholder: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del selector */\n @Prop() selectId: string = '';\n /** ID del input de texto */\n @Prop() inputId: string = '';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Ancho del selector (en porcentaje o píxeles) */\n @Prop() selectWidth: string = '120px';\n /** Estado interno para mostrar/ocultar el dropdown */\n @State() isOpen: boolean = false;\n /** Índice de la opción resaltada para navegación con teclado */\n @State() highlightedIndex: number = -1;\n /** ID único del componente */\n @State() componentId: string = '';\n\n @Event() blur: EventEmitter<{ id: string; value: string }>;\n /** Evento al cambiar el valor del selector */\n @Event() selectChange: EventEmitter<{ id: string; value: string }>;\n /** Evento al cambiar el valor del input */\n @Event() input: EventEmitter<{ id: string; value: string }>;\n\n componentWillLoad() {\n this.componentId = this.selectId || `combo-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData) {\n // Manejar cambios del selector\n if (this.selectId && this.selectId in formData) {\n const newSelectValue = formData[this.selectId];\n if (typeof newSelectValue === 'string') {\n this.selectValue = newSelectValue;\n }\n }\n // Manejar cambios del input\n if (this.inputId && this.inputId in formData) {\n const newInputValue = formData[this.inputId];\n if (typeof newInputValue === 'string') {\n this.inputValue = newInputValue;\n }\n }\n }\n }\n\n @Listen('closeAllSelects', { target: 'document' })\n handleCloseAllSelects(event: CustomEvent) {\n if (event.detail !== this.componentId) {\n this.closeDropdown();\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n if (\n this.dropdownRef &&\n this.triggerRef &&\n !this.dropdownRef.contains(event.target as Node) &&\n !this.triggerRef.contains(event.target as Node)\n ) {\n this.closeDropdown();\n }\n }\n\n private toggleDropdown = () => {\n if (this.disabled) return;\n\n const wasOpen = this.isOpen;\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n if (!wasOpen) {\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n }\n\n this.highlightedIndex = this.options.findIndex(option => option.value === this.selectValue);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n }\n };\n\n private openDropdown = () => {\n if (this.disabled) return;\n\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n\n this.isOpen = true;\n this.highlightedIndex = this.options.findIndex(option => option.value === this.selectValue);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n };\n\n private closeDropdown = () => {\n this.isOpen = false;\n this.highlightedIndex = -1;\n };\n\n private selectOption = (option: { label: string; value: string }) => {\n if (this.disabled) return;\n this.selectValue = option.value;\n this.closeDropdown();\n this.input.emit({ id: this.selectId, value: this.selectValue });\n };\n\n private onInputChange = (event: Event) => {\n if (this.disabled) return;\n const input = event.target as HTMLInputElement;\n this.inputValue = input.value;\n this.input.emit({ id: this.inputId, value: this.inputValue });\n };\n\n private onSelectBlur = () => {\n this.blur.emit({ id: this.selectId, value: this.selectValue });\n };\n\n private onInputBlur = () => {\n const trimmedValue = this.inputValue.trim();\n\n if (trimmedValue !== this.inputValue) {\n this.inputValue = trimmedValue;\n this.input.emit({ id: this.inputId, value: this.inputValue });\n }\n\n this.blur.emit({ id: this.inputId, value: this.inputValue });\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled) return;\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen && this.highlightedIndex >= 0) {\n this.selectOption(this.options[this.highlightedIndex]);\n } else {\n this.toggleDropdown();\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n } else {\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, this.options.length - 1);\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (this.isOpen) {\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n }\n break;\n }\n };\n\n private getSelectedOptionLabel = (): string => {\n const selectedOption = this.options.find(option => option.value === this.selectValue);\n return selectedOption ? selectedOption.label : this.selectPlaceholder;\n };\n\n render() {\n const selectedLabel = this.getSelectedOptionLabel();\n const hasSelectValue = this.selectValue !== '';\n\n return (\n <div class=\"input-container\">\n {this.label && (\n <label class={`input-label ${this.disabled ? 'disabled' : ''}`}>{this.label}</label>\n )}\n <div\n class={`input-combo-wrapper combo-wrapper ${this.disabled ? 'disabled' : ''} ${this.error ? 'error' : ''}`}\n >\n {/* Selector */}\n <div class=\"select-section\" style={{ width: this.selectWidth }}>\n <div\n ref={el => (this.triggerRef = el)}\n class={`input-combo-select select-combo-trigger ${!hasSelectValue ? 'placeholder' : ''}`}\n onClick={this.toggleDropdown}\n onKeyDown={this.handleKeyDown}\n onBlur={this.onSelectBlur}\n tabIndex={this.disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={this.isOpen.toString()}\n aria-haspopup=\"listbox\"\n >\n <span class=\"select-value\">{selectedLabel}</span>\n <div class=\"icon-wrapper\">\n <rebill-icon name=\"chevron-up-down\" size=\"20px\" class=\"select-icon\" />\n </div>\n </div>\n\n {this.isOpen && (\n <div ref={el => (this.dropdownRef = el)} class=\"select-dropdown\" role=\"listbox\">\n {this.options.map((option, index) => (\n <div\n class={`select-option ${this.selectValue === option.value ? 'selected' : ''} ${this.highlightedIndex === index ? 'highlighted' : ''}`}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n aria-selected={this.selectValue === option.value ? 'true' : 'false'}\n >\n {option.label}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Divisor vertical */}\n <div class=\"combo-divider\"></div>\n\n {/* Campo de texto */}\n <div class=\"input-section\">\n <input\n type=\"text\"\n class=\"input-combo-element combo-input\"\n placeholder={this.inputPlaceholder}\n value={this.inputValue}\n onInput={this.onInputChange}\n onBlur={this.onInputBlur}\n disabled={this.disabled}\n />\n </div>\n </div>\n {this.error && <span class=\"error-message\">{this.error}</span>}\n </div>\n );\n }\n}\n",null,"import { Component, Element, h, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../../i18n/i18n.service';\nimport { ENUM_INSTALLMENT_MODEL } from '../../../../../models/enums/installment.enum';\nimport { sessionState, SessionStore } from '../../../../../store/session.store';\nimport { COLORS_ENUM } from '../../../../../utils/color-class-mapper';\nimport {\n getInstallmentDisabledPlaceholderByCurrency,\n getInstallmentLabel,\n getInstallmentPlaceholderByCurrency,\n getRecalculatedInstallmentAmount,\n} from '../../../../../utils/installment-utils';\n\n@Component({\n tag: 'rebill-installments',\n styleUrl: 'installments.css',\n shadow: false,\n})\nexport class Installments {\n @Element() el: HTMLElement;\n @Prop() error?: string;\n @State() currentValue: string | null = null;\n @State() isDisabled: boolean = false;\n @State() value: string | null = null;\n @State() placeholder: string | null = null;\n\n handleInstallments = (event: any) => {\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n return;\n }\n this.currentValue = event.detail.value;\n SessionStore.setSelectedInstallment(event.detail.value);\n };\n\n componentWillLoad() {\n SessionStore.onChange('data', () => {\n this.isDisabled = !sessionState.data.cardInformation?.installments?.isAvailableInstallments;\n this.placeholder = !sessionState.data.cardInformation?.installments?.isAvailableInstallments\n ? getInstallmentDisabledPlaceholderByCurrency(sessionState.data.pricing?.currency)\n : getInstallmentPlaceholderByCurrency(sessionState.data.pricing?.currency);\n this.value = this.isDisabled ? '' : this.value;\n\n if (this.isDisabled) {\n const inputEvent = new CustomEvent('input', {\n detail: { id: 'installments', value: '', disabled: true },\n bubbles: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n });\n }\n\n render() {\n return (\n <div>\n <rebill-input-select\n key={this.isDisabled.toString()}\n id=\"installments\"\n variant=\"outlined\"\n value={this.value}\n options={\n sessionState.data.cardInformation?.installments?.installments.map(installment => ({\n label: getInstallmentLabel(\n installment.installment,\n getRecalculatedInstallmentAmount(installment.installmentAmount),\n sessionState.data.pricing?.currency,\n installment.cft,\n installment.model,\n ),\n value: installment?.installment?.toString(),\n })) || []\n }\n loading={sessionState.data.fetchingInstallments}\n placeholder={this.placeholder}\n disabled={this.isDisabled}\n on-input={this.handleInstallments}\n error={I18nService.translate(this.error)}\n ></rebill-input-select>\n {sessionState.data.cardInformation?.installments?.installments.find(\n installment =>\n installment.installment ===\n sessionState.data.cardInformation?.installments?.selectedInstallment?.installment,\n )?.model === ENUM_INSTALLMENT_MODEL.CUSTOMER_FINANCED && (\n <rebill-typography variant=\"italic\" color={COLORS_ENUM.SECONDARY}>\n {I18nService.translate('installments.interest')}\n </rebill-typography>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r,c as e,h as o}from"./p-DyaDabZ4.js";import{C as l}from"./p-DA598vBj.js";const a=":root{--rebill-color-primary:#3b82f6;--rebill-color-primary-light:rgba(59, 130, 246, 0.1);--rebill-color-primary-hover:#2563eb;--rebill-color-primary-dark:#001131;--rebill-color-primary-dark-text:#000000;--rebill-color-primary-dark-hover:#001c4a;--rebill-color-primary-dark-light:rgba(0, 17, 49, 0.1);--rebill-color-error:#ef4444;--rebill-color-error-background:#fef2f2;--rebill-color-error-light:rgba(239, 68, 68, 0.1);--rebill-color-error-dark:#6f101b;--rebill-color-background:#ffffff;--rebill-color-background-left:#fafafa;--rebill-color-background-right:#f4f5f6;--rebill-color-background-secondary:#f7f8fa;--rebill-color-border:#ebedef;--rebill-color-timeline-connector:#c4c8cf;--rebill-color-neutrals-700:#58616e;--rebill-color-neutrals-500:#9ca3af;--rebill-color-border-primary:#e4e4e7;--rebill-color-text-primary:#3b4049;--rebill-color-text-secondary:#6b7280;--rebill-color-grey-700:#7d7d7d;--rebill-color-text-secondary-light:#a1a1aa;--rebill-color-text-on-primary:#ffffff;--rebill-color-disabled:#9ca3af;--rebill-color-shadow:rgba(0, 0, 0, 0.1);--rebill-color-green:#10b981;--rebill-color-green-text:#257c67;--rebill-color-green-light:rgba(183, 233, 221, 0.15);--rebill-color-green-light-2:rgba(183, 233, 221, 1);--rebill-color-info-background:#d5e4ff;--rebill-color-info-border:#0156f6;--rebill-color-info-text:#172b85;--rebill-color-background-secondary-light:#f7f8fa;--rebill-breakpoint-mobile:768px;--rebill-breakpoint-tablet:1024px;--rebill-breakpoint-desktop:1025px;--rebill-color-orange:#ff9400;--rebill-color-black:#1e2025;--rebill-color-grey-300:#3b4049;--rebill-color-grey-100:#aeaeae}.qr-container,.qr-image,.qr-image svg,.qr-image img,[class*='qr-'],[class*='success'],[class*='receipt']{transition:none !important;animation:none !important;will-change:auto !important}button:active,button:focus,button:hover{isolation:isolate}.collapsible-card{border-radius:8px;border:1px solid var(--rebill-color-border);overflow:hidden}.collapsible-card.flat{border-radius:0 0 8px 8px;border:none;background:var(--rebill-color-grey-100)}.collapsible-card-header{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;padding:8px 16px;color:var(--rebill-color-text-primary);background:var(--rebill-color-background-secondary);cursor:pointer;outline:none;transition:background 0.2s}.chevron{display:flex;align-items:center;transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.chevron.open{transform:rotate(-180deg)}.chevron svg path{stroke:var(--rebill-color-text-secondary-light)}.content{max-height:0;overflow:hidden;background:var(--rebill-color-background);transition:max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px}.content.open{max-height:500px;padding:16px}";const i=class{constructor(o){r(this,o);this.toggled=e(this,"toggled")}header;open=true;variant="default";isOpen=this.open;toggled;toggle=()=>{this.isOpen=!this.isOpen;this.toggled.emit(this.isOpen)};render(){return o("div",{key:"131201a0335d9db12fc70a407d075fa8def8a377",class:`collapsible-card ${this.variant}`},o("button",{key:"45e151e779a04afbcb16bf57c1608b64775febe4",class:"collapsible-card-header",onClick:this.toggle,"aria-expanded":this.isOpen,type:"button"},o("rebill-typography",{key:"11f39eaf57cc163925a773be05413c8030d77fe8",variant:this.variant==="flat"?"subtitle2":"overline",color:l.TEXT_PRIMARY},this.header),o("span",{key:"01df82ceeece8ee8dd63533f279e0546539efc77",class:{chevron:true,open:this.isOpen}},o("rebill-icon",{key:"d6488f86ad0fcdbda2ec89e51b90ba638ab4d2b1",name:"chevron-down",size:"20px",color:"currentColor"}))),o("div",{key:"b84134d09cf22ab9c833d1a7152d74820db44725",class:{content:true,open:this.isOpen}},o("slot",{key:"ffd634209b59302aceadad638aa2ba1cd01f22b3"})))}};i.style=a;export{i as collapsible_card};
|
|
2
|
+
//# sourceMappingURL=p-3c6aaa56.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["collapsibleCardCss","CollapsibleCard","header","open","variant","isOpen","this","toggled","toggle","emit","render","h","key","class","onClick","type","color","COLORS_ENUM","TEXT_PRIMARY","chevron","name","size","content"],"sources":["src/components/shared/collapsible-card/collapsible-card.css?tag=collapsible-card","src/components/shared/collapsible-card/collapsible-card.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n.collapsible-card {\n border-radius: 8px;\n border: 1px solid var(--rebill-color-border);\n overflow: hidden;\n}\n\n/* Variante flat - sin bordes redondeados arriba y sin borde */\n.collapsible-card.flat {\n border-radius: 0 0 8px 8px;\n border: none;\n background: var(--rebill-color-grey-100);\n}\n\n.collapsible-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n border: none;\n padding: 8px 16px;\n color: var(--rebill-color-text-primary);\n background: var(--rebill-color-background-secondary);\n cursor: pointer;\n outline: none;\n transition: background 0.2s;\n}\n\n.chevron {\n display: flex;\n align-items: center;\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.chevron.open {\n transform: rotate(-180deg);\n}\n\n.chevron svg path {\n stroke: var(--rebill-color-text-secondary-light);\n}\n\n.content {\n max-height: 0;\n overflow: hidden;\n background: var(--rebill-color-background);\n transition:\n max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0 16px;\n}\n.content.open {\n max-height: 500px;\n padding: 16px;\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'collapsible-card',\n styleUrl: 'collapsible-card.css',\n shadow: false,\n})\nexport class CollapsibleCard {\n /** Texto del header */\n @Prop() header: string;\n /** Estado inicial abierto/cerrado */\n @Prop() open: boolean = true;\n /** Variante del estilo: 'default' | 'flat' */\n @Prop() variant: 'default' | 'flat' = 'default';\n @State() isOpen: boolean = this.open;\n\n @Event() toggled: EventEmitter<boolean>;\n\n private toggle = () => {\n this.isOpen = !this.isOpen;\n this.toggled.emit(this.isOpen);\n };\n\n render() {\n return (\n <div class={`collapsible-card ${this.variant}`}>\n <button\n class=\"collapsible-card-header\"\n onClick={this.toggle}\n aria-expanded={this.isOpen}\n type=\"button\"\n >\n <rebill-typography\n variant={this.variant === 'flat' ? 'subtitle2' : 'overline'}\n color={COLORS_ENUM.TEXT_PRIMARY}\n >\n {this.header}\n </rebill-typography>\n <span class={{ chevron: true, open: this.isOpen }}>\n <rebill-icon name=\"chevron-down\" size=\"20px\" color=\"currentColor\" />\n </span>\n </button>\n <div class={{ content: true, open: this.isOpen }}>\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"iFAAA,MAAMA,EAAqB,
|
|
1
|
+
{"version":3,"names":["collapsibleCardCss","CollapsibleCard","header","open","variant","isOpen","this","toggled","toggle","emit","render","h","key","class","onClick","type","color","COLORS_ENUM","TEXT_PRIMARY","chevron","name","size","content"],"sources":["src/components/shared/collapsible-card/collapsible-card.css?tag=collapsible-card","src/components/shared/collapsible-card/collapsible-card.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n.collapsible-card {\n border-radius: 8px;\n border: 1px solid var(--rebill-color-border);\n overflow: hidden;\n}\n\n/* Variante flat - sin bordes redondeados arriba y sin borde */\n.collapsible-card.flat {\n border-radius: 0 0 8px 8px;\n border: none;\n background: var(--rebill-color-grey-100);\n}\n\n.collapsible-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n border: none;\n padding: 8px 16px;\n color: var(--rebill-color-text-primary);\n background: var(--rebill-color-background-secondary);\n cursor: pointer;\n outline: none;\n transition: background 0.2s;\n}\n\n.chevron {\n display: flex;\n align-items: center;\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.chevron.open {\n transform: rotate(-180deg);\n}\n\n.chevron svg path {\n stroke: var(--rebill-color-text-secondary-light);\n}\n\n.content {\n max-height: 0;\n overflow: hidden;\n background: var(--rebill-color-background);\n transition:\n max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0 16px;\n}\n.content.open {\n max-height: 500px;\n padding: 16px;\n}\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'collapsible-card',\n styleUrl: 'collapsible-card.css',\n shadow: false,\n})\nexport class CollapsibleCard {\n /** Texto del header */\n @Prop() header: string;\n /** Estado inicial abierto/cerrado */\n @Prop() open: boolean = true;\n /** Variante del estilo: 'default' | 'flat' */\n @Prop() variant: 'default' | 'flat' = 'default';\n @State() isOpen: boolean = this.open;\n\n @Event() toggled: EventEmitter<boolean>;\n\n private toggle = () => {\n this.isOpen = !this.isOpen;\n this.toggled.emit(this.isOpen);\n };\n\n render() {\n return (\n <div class={`collapsible-card ${this.variant}`}>\n <button\n class=\"collapsible-card-header\"\n onClick={this.toggle}\n aria-expanded={this.isOpen}\n type=\"button\"\n >\n <rebill-typography\n variant={this.variant === 'flat' ? 'subtitle2' : 'overline'}\n color={COLORS_ENUM.TEXT_PRIMARY}\n >\n {this.header}\n </rebill-typography>\n <span class={{ chevron: true, open: this.isOpen }}>\n <rebill-icon name=\"chevron-down\" size=\"20px\" color=\"currentColor\" />\n </span>\n </button>\n <div class={{ content: true, open: this.isOpen }}>\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"iFAAA,MAAMA,EAAqB,itF,MCQdC,EAAe,M,wDAElBC,OAEAC,KAAgB,KAEhBC,QAA8B,UAC7BC,OAAkBC,KAAKH,KAEvBI,QAEDC,OAAS,KACfF,KAAKD,QAAUC,KAAKD,OACpBC,KAAKC,QAAQE,KAAKH,KAAKD,OAAO,EAGhC,MAAAK,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,oBAAoBP,KAAKF,WACnCO,EAAA,UAAAC,IAAA,2CACEC,MAAM,0BACNC,QAASR,KAAKE,OAAM,gBACLF,KAAKD,OACpBU,KAAK,UAELJ,EACE,qBAAAC,IAAA,2CAAAR,QAASE,KAAKF,UAAY,OAAS,YAAc,WACjDY,MAAOC,EAAYC,cAElBZ,KAAKJ,QAERS,EAAA,QAAAC,IAAA,2CAAMC,MAAO,CAAEM,QAAS,KAAMhB,KAAMG,KAAKD,SACvCM,EAAA,eAAAC,IAAA,2CAAaQ,KAAK,eAAeC,KAAK,OAAOL,MAAM,mBAGvDL,EAAA,OAAAC,IAAA,2CAAKC,MAAO,CAAES,QAAS,KAAMnB,KAAMG,KAAKD,SACtCM,EAAQ,QAAAC,IAAA,8C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,h as e}from"./p-DyaDabZ4.js";import{g as r}from"./p-Bf6g23G6.js";import{c as o}from"./p-DA598vBj.js";import"./p-uZj1dMLQ.js";const i=class{constructor(e){t(this,e)}name="card";size;color="currentColor";svgContent="";componentWillLoad(){this.loadIcon()}async loadIcon(){if(!this.name)return;try{const t=r(`icons/${this.name}.svg`);const e=await fetch(t);if(!e.ok){console.warn(`Icon not found: ${this.name} at ${t}`);return}const o=await e.text();this.svgContent=o}catch(t){console.error("Error loading SVG:",t)}}render(){const t=this.color==="currentColor"?"currentColor":o(this.color);let r=this.svgContent;if(this.svgContent&&this.color!=="currentColor"){r=this.svgContent.replace(/fill="[^"]*"/g,`fill="${t}"`).replace(/stroke="[^"]*"/g,`stroke="${t}"`).replace(/fill='[^']*'/g,`fill='${t}'`).replace(/stroke='[^']*'/g,`stroke='${t}'`)}return e("div",{key:"06ec29c9fe0e0abd082f03dd0fc9382c70ffed89",style:{width:this.size,height:this.size,color:t,display:"flex",alignItems:"center",justifyContent:"center"},innerHTML:r})}};const l=":root{--rebill-color-primary:#3b82f6;--rebill-color-primary-light:rgba(59, 130, 246, 0.1);--rebill-color-primary-hover:#2563eb;--rebill-color-primary-dark:#001131;--rebill-color-primary-dark-text:#000000;--rebill-color-primary-dark-hover:#001c4a;--rebill-color-primary-dark-light:rgba(0, 17, 49, 0.1);--rebill-color-error:#ef4444;--rebill-color-error-background:#fef2f2;--rebill-color-error-light:rgba(239, 68, 68, 0.1);--rebill-color-error-dark:#6f101b;--rebill-color-background:#ffffff;--rebill-color-background-left:#fafafa;--rebill-color-background-right:#f4f5f6;--rebill-color-background-secondary:#f7f8fa;--rebill-color-border:#ebedef;--rebill-color-timeline-connector:#c4c8cf;--rebill-color-neutrals-700:#58616e;--rebill-color-neutrals-500:#9ca3af;--rebill-color-border-primary:#e4e4e7;--rebill-color-text-primary:#3b4049;--rebill-color-text-secondary:#6b7280;--rebill-color-grey-700:#7d7d7d;--rebill-color-text-secondary-light:#a1a1aa;--rebill-color-text-on-primary:#ffffff;--rebill-color-disabled:#9ca3af;--rebill-color-shadow:rgba(0, 0, 0, 0.1);--rebill-color-green:#10b981;--rebill-color-green-text:#257c67;--rebill-color-green-light:rgba(183, 233, 221, 0.15);--rebill-color-green-light-2:rgba(183, 233, 221, 1);--rebill-color-info-background:#d5e4ff;--rebill-color-info-border:#0156f6;--rebill-color-info-text:#172b85;--rebill-color-background-secondary-light:#f7f8fa;--rebill-breakpoint-mobile:768px;--rebill-breakpoint-tablet:1024px;--rebill-breakpoint-desktop:1025px;--rebill-color-orange:#ff9400;--rebill-color-black:#1e2025;--rebill-color-grey-300:#3b4049;--rebill-color-grey-100:#aeaeae}.qr-container,.qr-image,.qr-image svg,.qr-image img,[class*='qr-'],[class*='success'],[class*='receipt']{transition:none !important;animation:none !important;will-change:auto !important}button:active,button:focus,button:hover{isolation:isolate}:host{display:block;margin:0;padding:0}.typography-h1{font-size:6rem;font-weight:300;line-height:1.167;letter-spacing:-0.01562em}.typography-h2{font-size:3.75rem;font-weight:300;line-height:1.2;letter-spacing:-0.00833em}.typography-h3{font-size:1.375rem;font-weight:600;font-style:Medium;line-height:20px;letter-spacing:0px;margin-bottom:0;margin-top:0}.typography-h4{font-size:2.125rem;font-weight:600;line-height:1.235;letter-spacing:0.00735em;margin-bottom:0;margin-top:0}.typography-h5{font-size:1.5rem;font-weight:400;line-height:1.334;letter-spacing:0}.typography-h6{font-size:1.25rem;font-weight:500;line-height:1.6;letter-spacing:0.0075em;margin-bottom:0;margin-top:0}.typography-subtitle-bold{font-size:14px;font-weight:500;letter-spacing:0;margin-bottom:0;margin-top:0}.typography-subtitle1{font-size:1rem;font-weight:400;line-height:1.75;letter-spacing:0.00938em;margin-bottom:0;margin-top:0}.typography-subtitle2{font-size:12px;font-weight:400}.typography-subtitle3{font-size:10px;font-weight:500}.typography-body1{font-size:16px;font-weight:500;letter-spacing:0.00938em}.typography-body2{font-size:14px;font-weight:400 !important;letter-spacing:0.01071em;margin-bottom:0;margin-top:0}.typography-body3{font-size:16px;font-weight:500;letter-spacing:0.01071em;margin-bottom:0;margin-top:0}@media (max-width: 1024px){.typography-body2{line-height:20px}}.typography-button{font-size:0.875rem;font-weight:500;line-height:1.75;letter-spacing:0.02857em;text-transform:uppercase}.typography-caption{font-size:0.75rem;font-weight:400;line-height:1.66;letter-spacing:0.03333em}.typography-overline{font-size:14px;font-weight:600;line-height:20px}.typography-italic{font-weight:500;font-style:italic;font-size:11px;line-height:24px;letter-spacing:0%}.typography-information-text{font-weight:500;font-size:11px;line-height:160%}.typography-align-left{text-align:left}.typography-align-center{text-align:center}.typography-align-right{text-align:right}.typography-align-justify{text-align:justify}.typography-no-wrap{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typography-paragraph{margin-bottom:16px}.typography-h4-span{font-size:34px;font-weight:500;letter-spacing:0%;margin-bottom:0;margin-top:0}";const a=class{constructor(e){t(this,e)}variant="body1";color;align;noWrap;gutterBottom;paragraph;getColor=()=>o(this.color);render(){const t=this.getTag();const r={[`typography-${this.variant}`]:true,[`typography-align-${this.align}`]:this.align,"typography-no-wrap":this.noWrap,"typography-gutter-bottom":this.gutterBottom,"typography-paragraph":this.paragraph};return e(t,{key:"a82af215cc966e1a87ed63af2e34aa3bcb024fc7",class:r,style:{color:this.getColor()}},e("slot",{key:"f8fde8b70ef884e2fd4666dfda9d4af7fcce57d0"}))}getTag(){switch(this.variant){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return this.variant;case"subtitle1":case"subtitle2":case"subtitle3":return"span";case"body1":case"body2":case"body3":return"span";case"button":return"span";case"caption":case"overline":return"span";case"italic":case"information-text":return"span";case"subtitle-bold":return"span";case"h4-span":return"span";default:return"p"}}};a.style=l;export{i as rebill_icon,a as rebill_typography};
|
|
2
|
+
//# sourceMappingURL=p-5485215c.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Icon","name","size","color","svgContent","componentWillLoad","this","loadIcon","iconURL","getAssetURL","response","fetch","ok","console","warn","svgText","text","error","render","colorValue","colorClassMapper","processedSvgContent","replace","h","key","style","width","height","display","alignItems","justifyContent","innerHTML","typographyCss","Typography","variant","align","noWrap","gutterBottom","paragraph","getColor","Tag","getTag","classes","class"],"sources":["src/components/shared/icon/icon.tsx","src/components/shared/typography/typography.css?tag=rebill-typography","src/components/shared/typography/typography.tsx"],"sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\nimport { getAssetURL } from '../../../utils/assets';\nimport { colorClassMapper, COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'rebill-icon',\n shadow: false,\n})\nexport class Icon {\n @Prop() name: string = 'card';\n @Prop() size: string;\n @Prop() color: COLORS_ENUM | 'currentColor' = 'currentColor';\n\n @State() svgContent: string = '';\n\n componentWillLoad() {\n this.loadIcon();\n }\n\n async loadIcon() {\n if (!this.name) return;\n try {\n const iconURL = getAssetURL(`icons/${this.name}.svg`);\n const response = await fetch(iconURL);\n if (!response.ok) {\n console.warn(`Icon not found: ${this.name} at ${iconURL}`);\n return;\n }\n const svgText = await response.text();\n this.svgContent = svgText;\n } catch (error) {\n console.error('Error loading SVG:', error);\n }\n }\n\n render() {\n const colorValue =\n this.color === 'currentColor' ? 'currentColor' : colorClassMapper(this.color);\n\n let processedSvgContent = this.svgContent;\n if (this.svgContent && this.color !== 'currentColor') {\n processedSvgContent = this.svgContent\n .replace(/fill=\"[^\"]*\"/g, `fill=\"${colorValue}\"`)\n .replace(/stroke=\"[^\"]*\"/g, `stroke=\"${colorValue}\"`)\n .replace(/fill='[^']*'/g, `fill='${colorValue}'`)\n .replace(/stroke='[^']*'/g, `stroke='${colorValue}'`);\n }\n\n return (\n <div\n style={{\n width: this.size,\n height: this.size,\n color: colorValue,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n innerHTML={processedSvgContent}\n ></div>\n );\n }\n}\n","@import '../../../styles/variables.css';\n\n:host {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n/* Heading styles */\n.typography-h1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.167;\n letter-spacing: -0.01562em;\n}\n\n.typography-h2 {\n font-size: 3.75rem;\n font-weight: 300;\n line-height: 1.2;\n letter-spacing: -0.00833em;\n}\n\n.typography-h3 {\n font-size: 1.375rem;\n font-weight: 600;\n font-style: Medium;\n line-height: 20px;\n letter-spacing: 0px;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-h4 {\n font-size: 2.125rem;\n font-weight: 600;\n line-height: 1.235;\n letter-spacing: 0.00735em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-h5 {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 1.334;\n letter-spacing: 0;\n}\n\n.typography-h6 {\n font-size: 1.25rem;\n font-weight: 500;\n line-height: 1.6;\n letter-spacing: 0.0075em;\n margin-bottom: 0;\n margin-top: 0;\n}\n.typography-subtitle-bold {\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0;\n margin-bottom: 0;\n margin-top: 0;\n}\n/* Subtitle styles */\n.typography-subtitle1 {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.75;\n letter-spacing: 0.00938em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-subtitle2 {\n font-size: 12px;\n font-weight: 400;\n}\n.typography-subtitle3 {\n font-size: 10px;\n font-weight: 500;\n}\n/* Body styles */\n.typography-body1 {\n font-size: 16px;\n font-weight: 500;\n letter-spacing: 0.00938em;\n}\n\n.typography-body2 {\n font-size: 14px;\n font-weight: 400 !important;\n letter-spacing: 0.01071em;\n margin-bottom: 0;\n margin-top: 0;\n}\n.typography-body3 {\n font-size: 16px;\n font-weight: 500;\n letter-spacing: 0.01071em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n@media (max-width: 1024px) {\n .typography-body2 {\n line-height: 20px;\n }\n}\n\n/* Button text */\n.typography-button {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.75;\n letter-spacing: 0.02857em;\n text-transform: uppercase;\n}\n\n/* Caption */\n.typography-caption {\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.66;\n letter-spacing: 0.03333em;\n}\n\n/* Overline */\n.typography-overline {\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n}\n\n/* Italic */\n.typography-italic {\n font-weight: 500;\n font-style: italic;\n font-size: 11px;\n line-height: 24px;\n letter-spacing: 0%;\n}\n\n.typography-information-text {\n font-weight: 500;\n font-size: 11px;\n line-height: 160%;\n}\n\n/* Alignment */\n.typography-align-left {\n text-align: left;\n}\n\n.typography-align-center {\n text-align: center;\n}\n\n.typography-align-right {\n text-align: right;\n}\n\n.typography-align-justify {\n text-align: justify;\n}\n\n/* Additional styles */\n.typography-no-wrap {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* .typography-gutter-bottom {\n margin-bottom: 0.35em;\n} */\n\n.typography-paragraph {\n margin-bottom: 16px;\n}\n.typography-h4-span {\n font-size: 34px;\n font-weight: 500;\n\n letter-spacing: 0%;\n margin-bottom: 0;\n margin-top: 0;\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { colorClassMapper, COLORS_ENUM } from '../../../utils/color-class-mapper';\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'subtitle-bold'\n | 'body1'\n | 'body2'\n | 'body3'\n | 'button'\n | 'caption'\n | 'overline'\n | 'italic'\n | 'information-text'\n | 'h4-span'\n | 'subtitle3';\n\n@Component({\n tag: 'rebill-typography',\n styleUrl: 'typography.css',\n shadow: false,\n})\nexport class Typography {\n @Prop() variant: TypographyVariant = 'body1';\n @Prop() color?: COLORS_ENUM;\n @Prop() align?: 'left' | 'center' | 'right' | 'justify';\n @Prop() noWrap?: boolean;\n @Prop() gutterBottom?: boolean;\n @Prop() paragraph?: boolean;\n\n private getColor = () => colorClassMapper(this.color);\n\n render() {\n const Tag = this.getTag();\n const classes = {\n [`typography-${this.variant}`]: true,\n [`typography-align-${this.align}`]: this.align,\n 'typography-no-wrap': this.noWrap,\n 'typography-gutter-bottom': this.gutterBottom,\n 'typography-paragraph': this.paragraph,\n };\n\n return (\n <Tag class={classes} style={{ color: this.getColor() }}>\n <slot></slot>\n </Tag>\n );\n }\n\n private getTag(): string {\n switch (this.variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return this.variant;\n case 'subtitle1':\n case 'subtitle2':\n case 'subtitle3':\n return 'span';\n case 'body1':\n case 'body2':\n case 'body3':\n return 'span';\n case 'button':\n return 'span';\n case 'caption':\n case 'overline':\n return 'span';\n case 'italic':\n case 'information-text':\n return 'span';\n case 'subtitle-bold':\n return 'span';\n case 'h4-span':\n return 'span';\n default:\n return 'p';\n }\n }\n}\n"],"mappings":"iJAQaA,EAAI,M,yBACPC,KAAe,OACfC,KACAC,MAAsC,eAErCC,WAAqB,GAE9B,iBAAAC,GACEC,KAAKC,U,CAGP,cAAMA,GACJ,IAAKD,KAAKL,KAAM,OAChB,IACE,MAAMO,EAAUC,EAAY,SAASH,KAAKL,YAC1C,MAAMS,QAAiBC,MAAMH,GAC7B,IAAKE,EAASE,GAAI,CAChBC,QAAQC,KAAK,mBAAmBR,KAAKL,WAAWO,KAChD,M,CAEF,MAAMO,QAAgBL,EAASM,OAC/BV,KAAKF,WAAaW,C,CAClB,MAAOE,GACPJ,QAAQI,MAAM,qBAAsBA,E,EAIxC,MAAAC,GACE,MAAMC,EACJb,KAAKH,QAAU,eAAiB,eAAiBiB,EAAiBd,KAAKH,OAEzE,IAAIkB,EAAsBf,KAAKF,WAC/B,GAAIE,KAAKF,YAAcE,KAAKH,QAAU,eAAgB,CACpDkB,EAAsBf,KAAKF,WACxBkB,QAAQ,gBAAiB,SAASH,MAClCG,QAAQ,kBAAmB,WAAWH,MACtCG,QAAQ,gBAAiB,SAASH,MAClCG,QAAQ,kBAAmB,WAAWH,K,CAG3C,OACEI,EACE,OAAAC,IAAA,2CAAAC,MAAO,CACLC,MAAOpB,KAAKJ,KACZyB,OAAQrB,KAAKJ,KACbC,MAAOgB,EACPS,QAAS,OACTC,WAAY,SACZC,eAAgB,UAElBC,UAAWV,G,GC1DnB,MAAMW,EAAgB
|
|
1
|
+
{"version":3,"names":["Icon","name","size","color","svgContent","componentWillLoad","this","loadIcon","iconURL","getAssetURL","response","fetch","ok","console","warn","svgText","text","error","render","colorValue","colorClassMapper","processedSvgContent","replace","h","key","style","width","height","display","alignItems","justifyContent","innerHTML","typographyCss","Typography","variant","align","noWrap","gutterBottom","paragraph","getColor","Tag","getTag","classes","class"],"sources":["src/components/shared/icon/icon.tsx","src/components/shared/typography/typography.css?tag=rebill-typography","src/components/shared/typography/typography.tsx"],"sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\nimport { getAssetURL } from '../../../utils/assets';\nimport { colorClassMapper, COLORS_ENUM } from '../../../utils/color-class-mapper';\n\n@Component({\n tag: 'rebill-icon',\n shadow: false,\n})\nexport class Icon {\n @Prop() name: string = 'card';\n @Prop() size: string;\n @Prop() color: COLORS_ENUM | 'currentColor' = 'currentColor';\n\n @State() svgContent: string = '';\n\n componentWillLoad() {\n this.loadIcon();\n }\n\n async loadIcon() {\n if (!this.name) return;\n try {\n const iconURL = getAssetURL(`icons/${this.name}.svg`);\n const response = await fetch(iconURL);\n if (!response.ok) {\n console.warn(`Icon not found: ${this.name} at ${iconURL}`);\n return;\n }\n const svgText = await response.text();\n this.svgContent = svgText;\n } catch (error) {\n console.error('Error loading SVG:', error);\n }\n }\n\n render() {\n const colorValue =\n this.color === 'currentColor' ? 'currentColor' : colorClassMapper(this.color);\n\n let processedSvgContent = this.svgContent;\n if (this.svgContent && this.color !== 'currentColor') {\n processedSvgContent = this.svgContent\n .replace(/fill=\"[^\"]*\"/g, `fill=\"${colorValue}\"`)\n .replace(/stroke=\"[^\"]*\"/g, `stroke=\"${colorValue}\"`)\n .replace(/fill='[^']*'/g, `fill='${colorValue}'`)\n .replace(/stroke='[^']*'/g, `stroke='${colorValue}'`);\n }\n\n return (\n <div\n style={{\n width: this.size,\n height: this.size,\n color: colorValue,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n innerHTML={processedSvgContent}\n ></div>\n );\n }\n}\n","@import '../../../styles/variables.css';\n\n:host {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n/* Heading styles */\n.typography-h1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.167;\n letter-spacing: -0.01562em;\n}\n\n.typography-h2 {\n font-size: 3.75rem;\n font-weight: 300;\n line-height: 1.2;\n letter-spacing: -0.00833em;\n}\n\n.typography-h3 {\n font-size: 1.375rem;\n font-weight: 600;\n font-style: Medium;\n line-height: 20px;\n letter-spacing: 0px;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-h4 {\n font-size: 2.125rem;\n font-weight: 600;\n line-height: 1.235;\n letter-spacing: 0.00735em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-h5 {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 1.334;\n letter-spacing: 0;\n}\n\n.typography-h6 {\n font-size: 1.25rem;\n font-weight: 500;\n line-height: 1.6;\n letter-spacing: 0.0075em;\n margin-bottom: 0;\n margin-top: 0;\n}\n.typography-subtitle-bold {\n font-size: 14px;\n font-weight: 500;\n letter-spacing: 0;\n margin-bottom: 0;\n margin-top: 0;\n}\n/* Subtitle styles */\n.typography-subtitle1 {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.75;\n letter-spacing: 0.00938em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n.typography-subtitle2 {\n font-size: 12px;\n font-weight: 400;\n}\n.typography-subtitle3 {\n font-size: 10px;\n font-weight: 500;\n}\n/* Body styles */\n.typography-body1 {\n font-size: 16px;\n font-weight: 500;\n letter-spacing: 0.00938em;\n}\n\n.typography-body2 {\n font-size: 14px;\n font-weight: 400 !important;\n letter-spacing: 0.01071em;\n margin-bottom: 0;\n margin-top: 0;\n}\n.typography-body3 {\n font-size: 16px;\n font-weight: 500;\n letter-spacing: 0.01071em;\n margin-bottom: 0;\n margin-top: 0;\n}\n\n@media (max-width: 1024px) {\n .typography-body2 {\n line-height: 20px;\n }\n}\n\n/* Button text */\n.typography-button {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.75;\n letter-spacing: 0.02857em;\n text-transform: uppercase;\n}\n\n/* Caption */\n.typography-caption {\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.66;\n letter-spacing: 0.03333em;\n}\n\n/* Overline */\n.typography-overline {\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n}\n\n/* Italic */\n.typography-italic {\n font-weight: 500;\n font-style: italic;\n font-size: 11px;\n line-height: 24px;\n letter-spacing: 0%;\n}\n\n.typography-information-text {\n font-weight: 500;\n font-size: 11px;\n line-height: 160%;\n}\n\n/* Alignment */\n.typography-align-left {\n text-align: left;\n}\n\n.typography-align-center {\n text-align: center;\n}\n\n.typography-align-right {\n text-align: right;\n}\n\n.typography-align-justify {\n text-align: justify;\n}\n\n/* Additional styles */\n.typography-no-wrap {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* .typography-gutter-bottom {\n margin-bottom: 0.35em;\n} */\n\n.typography-paragraph {\n margin-bottom: 16px;\n}\n.typography-h4-span {\n font-size: 34px;\n font-weight: 500;\n\n letter-spacing: 0%;\n margin-bottom: 0;\n margin-top: 0;\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { colorClassMapper, COLORS_ENUM } from '../../../utils/color-class-mapper';\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'subtitle-bold'\n | 'body1'\n | 'body2'\n | 'body3'\n | 'button'\n | 'caption'\n | 'overline'\n | 'italic'\n | 'information-text'\n | 'h4-span'\n | 'subtitle3';\n\n@Component({\n tag: 'rebill-typography',\n styleUrl: 'typography.css',\n shadow: false,\n})\nexport class Typography {\n @Prop() variant: TypographyVariant = 'body1';\n @Prop() color?: COLORS_ENUM;\n @Prop() align?: 'left' | 'center' | 'right' | 'justify';\n @Prop() noWrap?: boolean;\n @Prop() gutterBottom?: boolean;\n @Prop() paragraph?: boolean;\n\n private getColor = () => colorClassMapper(this.color);\n\n render() {\n const Tag = this.getTag();\n const classes = {\n [`typography-${this.variant}`]: true,\n [`typography-align-${this.align}`]: this.align,\n 'typography-no-wrap': this.noWrap,\n 'typography-gutter-bottom': this.gutterBottom,\n 'typography-paragraph': this.paragraph,\n };\n\n return (\n <Tag class={classes} style={{ color: this.getColor() }}>\n <slot></slot>\n </Tag>\n );\n }\n\n private getTag(): string {\n switch (this.variant) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return this.variant;\n case 'subtitle1':\n case 'subtitle2':\n case 'subtitle3':\n return 'span';\n case 'body1':\n case 'body2':\n case 'body3':\n return 'span';\n case 'button':\n return 'span';\n case 'caption':\n case 'overline':\n return 'span';\n case 'italic':\n case 'information-text':\n return 'span';\n case 'subtitle-bold':\n return 'span';\n case 'h4-span':\n return 'span';\n default:\n return 'p';\n }\n }\n}\n"],"mappings":"iJAQaA,EAAI,M,yBACPC,KAAe,OACfC,KACAC,MAAsC,eAErCC,WAAqB,GAE9B,iBAAAC,GACEC,KAAKC,U,CAGP,cAAMA,GACJ,IAAKD,KAAKL,KAAM,OAChB,IACE,MAAMO,EAAUC,EAAY,SAASH,KAAKL,YAC1C,MAAMS,QAAiBC,MAAMH,GAC7B,IAAKE,EAASE,GAAI,CAChBC,QAAQC,KAAK,mBAAmBR,KAAKL,WAAWO,KAChD,M,CAEF,MAAMO,QAAgBL,EAASM,OAC/BV,KAAKF,WAAaW,C,CAClB,MAAOE,GACPJ,QAAQI,MAAM,qBAAsBA,E,EAIxC,MAAAC,GACE,MAAMC,EACJb,KAAKH,QAAU,eAAiB,eAAiBiB,EAAiBd,KAAKH,OAEzE,IAAIkB,EAAsBf,KAAKF,WAC/B,GAAIE,KAAKF,YAAcE,KAAKH,QAAU,eAAgB,CACpDkB,EAAsBf,KAAKF,WACxBkB,QAAQ,gBAAiB,SAASH,MAClCG,QAAQ,kBAAmB,WAAWH,MACtCG,QAAQ,gBAAiB,SAASH,MAClCG,QAAQ,kBAAmB,WAAWH,K,CAG3C,OACEI,EACE,OAAAC,IAAA,2CAAAC,MAAO,CACLC,MAAOpB,KAAKJ,KACZyB,OAAQrB,KAAKJ,KACbC,MAAOgB,EACPS,QAAS,OACTC,WAAY,SACZC,eAAgB,UAElBC,UAAWV,G,GC1DnB,MAAMW,EAAgB,k+H,MC6BTC,EAAU,M,yBACbC,QAA6B,QAC7B/B,MACAgC,MACAC,OACAC,aACAC,UAEAC,SAAW,IAAMnB,EAAiBd,KAAKH,OAE/C,MAAAe,GACE,MAAMsB,EAAMlC,KAAKmC,SACjB,MAAMC,EAAU,CACd,CAAC,cAAcpC,KAAK4B,WAAY,KAChC,CAAC,oBAAoB5B,KAAK6B,SAAU7B,KAAK6B,MACzC,qBAAsB7B,KAAK8B,OAC3B,2BAA4B9B,KAAK+B,aACjC,uBAAwB/B,KAAKgC,WAG/B,OACEf,EAACiB,EAAI,CAAAhB,IAAA,2CAAAmB,MAAOD,EAASjB,MAAO,CAAEtB,MAAOG,KAAKiC,aACxChB,EAAa,QAAAC,IAAA,6C,CAKX,MAAAiB,GACN,OAAQnC,KAAK4B,SACX,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAO5B,KAAK4B,QACd,IAAK,YACL,IAAK,YACL,IAAK,YACH,MAAO,OACT,IAAK,QACL,IAAK,QACL,IAAK,QACH,MAAO,OACT,IAAK,SACH,MAAO,OACT,IAAK,UACL,IAAK,WACH,MAAO,OACT,IAAK,SACL,IAAK,mBACH,MAAO,OACT,IAAK,gBACH,MAAO,OACT,IAAK,UACH,MAAO,OACT,QACE,MAAO,I","ignoreList":[]}
|