rebill-web-components-sdk 1.8.33 → 1.8.34-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/apm-checkout_19.cjs.entry.js +12 -12
- package/dist/cjs/card-identification_5.cjs.entry.js +8 -8
- package/dist/cjs/collapsible-card.cjs.entry.js +1 -1
- package/dist/cjs/discount-coupon.rebill-divider.entry.cjs.js.map +1 -0
- package/dist/cjs/discount-coupon_2.cjs.entry.js +157 -0
- package/dist/cjs/index-C-VTnc0I.js.map +1 -1
- package/dist/cjs/input-otp.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.cjs.js.map +1 -1
- package/dist/cjs/organization-logo_4.cjs.entry.js +3 -3
- package/dist/cjs/otp-component_7.cjs.entry.js +8 -8
- package/dist/cjs/rebill-alert.cjs.entry.js +2 -2
- package/dist/cjs/rebill-card-carousel.cjs.entry.js +1 -1
- package/dist/cjs/rebill-card.cjs.entry.js +1 -1
- package/dist/cjs/rebill-container_2.cjs.entry.js +2 -2
- package/dist/cjs/rebill-flex-container.cjs.entry.js +1 -1
- package/dist/cjs/rebill-form.cjs.entry.js +1 -1
- package/dist/cjs/rebill-grid-container.cjs.entry.js +1 -1
- package/dist/cjs/rebill-input-select.cjs.entry.js +2 -2
- package/dist/cjs/rebill-input-text.cjs.entry.js +2 -2
- package/dist/cjs/rebill-renewal.cjs.entry.js +2 -2
- package/dist/cjs/rebill-renewal.entry.cjs.js.map +1 -1
- package/dist/cjs/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.cjs.js.map +1 -0
- package/dist/cjs/{discount-coupon_3.cjs.entry.js → rebill-timeline-debit-day_2.cjs.entry.js} +3 -117
- package/dist/cjs/rebill-vertical-divider.cjs.entry.js +1 -1
- package/dist/cjs/rebill-web-components-sdk.cjs.js +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 +41 -13
- package/dist/cjs/{renewal.store-C9AesGY1.js → renewal.store-BaH9Id4E.js} +5 -2
- package/dist/cjs/renewal.store-BaH9Id4E.js.map +1 -0
- package/dist/cjs/root-component.cjs.entry.js +1 -1
- package/dist/collection/components/checkout/discount-coupon/discount-coupon.css +4 -0
- package/dist/collection/components/checkout/discount-coupon/discount-coupon.js +104 -4
- package/dist/collection/components/checkout/discount-coupon/discount-coupon.js.map +1 -1
- package/dist/collection/components/checkout/otp/otp.js +4 -4
- package/dist/collection/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.js +2 -2
- package/dist/collection/components/checkout/payment-method-selector/card-fields/identification/identification.js +1 -1
- package/dist/collection/components/checkout/payment-method-selector/card-fields/iframe/CardIframe.js +2 -2
- package/dist/collection/components/checkout/payment-method-selector/card-fields/iframe/skeleton/CardSkeleton.js +1 -1
- package/dist/collection/components/checkout/payment-method-selector/card-fields/installments/installments.js +2 -2
- package/dist/collection/components/checkout/rebill-footer/rebill-footer.css +1 -1
- package/dist/collection/components/checkout/rebill-footer/rebill-footer.js +1 -1
- package/dist/collection/components/checkout/user-information/user-information-phone.js +1 -1
- package/dist/collection/components/checkout/user-information/user-information.js +3 -3
- package/dist/collection/components/renewal/rebill-renewal.js +1 -1
- package/dist/collection/components/renewal/rebill-renewal.js.map +1 -1
- package/dist/collection/components/renewal/renewal-success-page/renewal-success-page.js +2 -2
- package/dist/collection/components/renewal/renewal-summary/renewal-summary.js +101 -16
- package/dist/collection/components/renewal/renewal-summary/renewal-summary.js.map +1 -1
- package/dist/collection/components/root-component/root-component.js +1 -1
- package/dist/collection/components/shared/alert/alert.js +2 -2
- package/dist/collection/components/shared/card/card.js +1 -1
- package/dist/collection/components/shared/card-carousel/card-carousel.js +1 -1
- package/dist/collection/components/shared/collapsible-card/collapsible-card.js +1 -1
- package/dist/collection/components/shared/divider/divider.js +1 -1
- package/dist/collection/components/shared/divider/vertical-divider.js +1 -1
- package/dist/collection/components/shared/form/form.js +1 -1
- package/dist/collection/components/shared/inputs/input-checkbox/input-checkbox.js +1 -1
- package/dist/collection/components/shared/inputs/input-combo/input-combo.js +1 -1
- package/dist/collection/components/shared/inputs/input-otp/input-otp.js +2 -2
- package/dist/collection/components/shared/inputs/input-phone/input-phone.js +2 -2
- package/dist/collection/components/shared/inputs/input-select/input-select.js +2 -2
- package/dist/collection/components/shared/inputs/input-text/input-text.js +2 -2
- package/dist/collection/components/shared/layouts/custom/single-column/checkout-single-column.js +1 -1
- package/dist/collection/components/shared/layouts/generics/container.js +1 -1
- package/dist/collection/components/shared/layouts/generics/flex.js +1 -1
- package/dist/collection/components/shared/layouts/generics/grid.js +1 -1
- package/dist/collection/components/shared/mode-sandbox/mode-sandbox-mobile.js +1 -1
- package/dist/collection/components/shared/selectable-card/selectable-card.js +2 -2
- package/dist/collection/components/shared/singlePaymentMethod/singlePaymentMethod.js +4 -4
- package/dist/collection/components/shared/timeline/timeline-debit-day.js +1 -1
- package/dist/collection/components/shared/timeline/timeline-free-trial.js +1 -1
- package/dist/collection/models/renewal.model.js.map +1 -1
- package/dist/collection/store/renewal.store.js +3 -0
- package/dist/collection/store/renewal.store.js.map +1 -1
- package/dist/components/apm-checkout.js +1 -1
- package/dist/components/bank-transfer.js +1 -1
- package/dist/components/card-fields-wrapper.js +1 -1
- package/dist/components/card-identification.js +1 -1
- package/dist/components/card-iframe.js +1 -1
- package/dist/components/card-skeleton.js +1 -1
- package/dist/components/collapsible-card.js +1 -1
- package/dist/components/discount-coupon.js +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/otp-component.js +1 -1
- package/dist/components/{p-BbLfqjb0.js → p-3K2fnS0h.js} +5 -5
- package/dist/components/{p-BbLfqjb0.js.map → p-3K2fnS0h.js.map} +1 -1
- package/dist/components/p-8BpuJ_V5.js.map +1 -1
- package/dist/components/{p-Dm2xJSTe.js → p-B0QvmxUI.js} +3 -3
- package/dist/components/{p-Dm2xJSTe.js.map → p-B0QvmxUI.js.map} +1 -1
- package/dist/components/{p-CYhj6VLQ.js → p-B544NesK.js} +4 -4
- package/dist/components/{p-CYhj6VLQ.js.map → p-B544NesK.js.map} +1 -1
- package/dist/components/{p-mA3Sj5fj.js → p-B7uE6iBd.js} +11 -11
- package/dist/components/{p-mA3Sj5fj.js.map → p-B7uE6iBd.js.map} +1 -1
- package/dist/components/{p-1ZvL9CLG.js → p-BLbS7nF7.js} +3 -3
- package/dist/components/{p-1ZvL9CLG.js.map → p-BLbS7nF7.js.map} +1 -1
- package/dist/components/{p-qI3t-gYu.js → p-BZYd-So1.js} +4 -4
- package/dist/components/{p-qI3t-gYu.js.map → p-BZYd-So1.js.map} +1 -1
- package/dist/components/{p-tTqPr5zM.js → p-BeVdyYff.js} +6 -6
- package/dist/components/{p-tTqPr5zM.js.map → p-BeVdyYff.js.map} +1 -1
- package/dist/components/{p-1I-sUD5D.js → p-BuNsfNGm.js} +6 -6
- package/dist/components/{p-1I-sUD5D.js.map → p-BuNsfNGm.js.map} +1 -1
- package/dist/components/{p-BV_MHtDc.js → p-C0LGxeng.js} +3 -3
- package/dist/components/{p-BV_MHtDc.js.map → p-C0LGxeng.js.map} +1 -1
- package/dist/components/{p-DvXuQN4U.js → p-CD0TNzOh.js} +12 -12
- package/dist/components/{p-DvXuQN4U.js.map → p-CD0TNzOh.js.map} +1 -1
- package/dist/components/{p-wjfhDzgd.js → p-CKYowY5T.js} +4 -4
- package/dist/components/{p-wjfhDzgd.js.map → p-CKYowY5T.js.map} +1 -1
- package/dist/components/{p-ChnuJbVe.js → p-C_S6-o9t.js} +10 -10
- package/dist/components/{p-ChnuJbVe.js.map → p-C_S6-o9t.js.map} +1 -1
- package/dist/components/{p-CKiwr2yo.js → p-CajUouzQ.js} +3 -3
- package/dist/components/{p-CKiwr2yo.js.map → p-CajUouzQ.js.map} +1 -1
- package/dist/components/{p-fEiok6NF.js → p-CfUbJq8-.js} +3 -3
- package/dist/components/{p-fEiok6NF.js.map → p-CfUbJq8-.js.map} +1 -1
- package/dist/components/{p-BWkW7_Hh.js → p-CisP549A.js} +36 -9
- package/dist/components/p-CisP549A.js.map +1 -0
- package/dist/components/{p-DiNW75Kd.js → p-CmYsenWG.js} +3 -3
- package/dist/components/{p-DiNW75Kd.js.map → p-CmYsenWG.js.map} +1 -1
- package/dist/components/{p-QzWBUSLD.js → p-CneaXzeq.js} +4 -4
- package/dist/components/{p-QzWBUSLD.js.map → p-CneaXzeq.js.map} +1 -1
- package/dist/components/{p-Di8WeTd9.js → p-CuX2faVH.js} +4 -4
- package/dist/components/{p-Di8WeTd9.js.map → p-CuX2faVH.js.map} +1 -1
- package/dist/components/{p-h8TZeiqt.js → p-D0AmEJnp.js} +6 -6
- package/dist/components/{p-h8TZeiqt.js.map → p-D0AmEJnp.js.map} +1 -1
- package/dist/components/{p-B1BCKuQ0.js → p-D1lAYXxG.js} +8 -8
- package/dist/components/{p-B1BCKuQ0.js.map → p-D1lAYXxG.js.map} +1 -1
- package/dist/components/{p-BnBTbmTe.js → p-DA0QxWuE.js} +4 -4
- package/dist/components/{p-BnBTbmTe.js.map → p-DA0QxWuE.js.map} +1 -1
- package/dist/components/{p-CpXk4UfE.js → p-DBi6K19S.js} +5 -5
- package/dist/components/{p-CpXk4UfE.js.map → p-DBi6K19S.js.map} +1 -1
- package/dist/components/{p-gj5jUg6C.js → p-DDp9qjAz.js} +3 -3
- package/dist/components/{p-gj5jUg6C.js.map → p-DDp9qjAz.js.map} +1 -1
- package/dist/components/{p-DlrQ_kVv.js → p-DIILFLsN.js} +5 -5
- package/dist/components/{p-DlrQ_kVv.js.map → p-DIILFLsN.js.map} +1 -1
- package/dist/components/{p-CNBrNMEa.js → p-DKn8wDv6.js} +3 -3
- package/dist/components/{p-CNBrNMEa.js.map → p-DKn8wDv6.js.map} +1 -1
- package/dist/components/{p-D6yu2OYw.js → p-DPUz_1Ev.js} +5 -5
- package/dist/components/{p-D6yu2OYw.js.map → p-DPUz_1Ev.js.map} +1 -1
- package/dist/components/{p-BL08tUBX.js → p-DRTzT9ks.js} +3 -3
- package/dist/components/{p-BL08tUBX.js.map → p-DRTzT9ks.js.map} +1 -1
- package/dist/components/{p-DSFlA7FF.js → p-DaS8xGPM.js} +5 -5
- package/dist/components/{p-DSFlA7FF.js.map → p-DaS8xGPM.js.map} +1 -1
- package/dist/components/{p-DZWQyp55.js → p-DgRM4z7g.js} +3 -3
- package/dist/components/{p-DZWQyp55.js.map → p-DgRM4z7g.js.map} +1 -1
- package/dist/components/{p-DU4kUISl.js → p-Dm8Dxmer.js} +5 -5
- package/dist/components/{p-DU4kUISl.js.map → p-Dm8Dxmer.js.map} +1 -1
- package/dist/components/{p-DrAiGSzG.js → p-Dp8EoajW.js} +3 -3
- package/dist/components/{p-DrAiGSzG.js.map → p-Dp8EoajW.js.map} +1 -1
- package/dist/components/{p-BX1_zmbg.js → p-DvV5MmYi.js} +5 -5
- package/dist/components/{p-BX1_zmbg.js.map → p-DvV5MmYi.js.map} +1 -1
- package/dist/components/{p-4hVDutj0.js → p-DzdUnkvh.js} +3 -3
- package/dist/components/{p-4hVDutj0.js.map → p-DzdUnkvh.js.map} +1 -1
- package/dist/components/{p-D3QILlvg.js → p-HzmATjhQ.js} +5 -5
- package/dist/components/p-HzmATjhQ.js.map +1 -0
- package/dist/components/{p-CVtNCEPd.js → p-PBF27XTU.js} +3 -3
- package/dist/components/{p-CVtNCEPd.js.map → p-PBF27XTU.js.map} +1 -1
- package/dist/components/{p-BmjU_TBT.js → p-QTa3HvQl.js} +3 -3
- package/dist/components/{p-BmjU_TBT.js.map → p-QTa3HvQl.js.map} +1 -1
- package/dist/components/{p-WQJ1HwUp.js → p-dgrAtFYi.js} +6 -6
- package/dist/components/{p-WQJ1HwUp.js.map → p-dgrAtFYi.js.map} +1 -1
- package/dist/components/{p-RGadlsa-.js → p-hpg1lOUJ.js} +5 -2
- package/dist/components/p-hpg1lOUJ.js.map +1 -0
- package/dist/components/{p-D4oYYfeG.js → p-nkv8Z87a.js} +8 -8
- package/dist/components/{p-D4oYYfeG.js.map → p-nkv8Z87a.js.map} +1 -1
- package/dist/components/{p-dtookouT.js → p-nvpvagPB.js} +7 -7
- package/dist/components/{p-dtookouT.js.map → p-nvpvagPB.js.map} +1 -1
- package/dist/components/{p-B-Wxp2_p.js → p-oE_0ElW3.js} +69 -20
- package/dist/components/p-oE_0ElW3.js.map +1 -0
- package/dist/components/{p-CKZvdOpK.js → p-qDaQOriJ.js} +4 -4
- package/dist/components/{p-CKZvdOpK.js.map → p-qDaQOriJ.js.map} +1 -1
- package/dist/components/{p-lfUd06gm.js → p-rnhSIhil.js} +3 -3
- package/dist/components/{p-lfUd06gm.js.map → p-rnhSIhil.js.map} +1 -1
- package/dist/components/{p-Dr1acigj.js → p-xNgCL9nV.js} +4 -4
- package/dist/components/{p-Dr1acigj.js.map → p-xNgCL9nV.js.map} +1 -1
- package/dist/components/payment-method-selector.js +1 -1
- package/dist/components/qr-code.js +1 -1
- package/dist/components/rebill-address-form.js +1 -1
- package/dist/components/rebill-address-search.js +1 -1
- package/dist/components/rebill-address.js +1 -1
- package/dist/components/rebill-alert.js +1 -1
- package/dist/components/rebill-bank-selector.js +1 -1
- package/dist/components/rebill-card-carousel.js +1 -1
- package/dist/components/rebill-card.js +1 -1
- package/dist/components/rebill-checkout-form.js +1 -1
- package/dist/components/rebill-checkout-single-column.js +1 -1
- package/dist/components/rebill-checkout.js +39 -39
- package/dist/components/rebill-container.js +1 -1
- package/dist/components/rebill-divider.js +1 -1
- package/dist/components/rebill-flex-container.js +1 -1
- package/dist/components/rebill-footer.js +1 -1
- package/dist/components/rebill-form.js +1 -1
- package/dist/components/rebill-grid-container.js +1 -1
- package/dist/components/rebill-input-checkbox.js +1 -1
- package/dist/components/rebill-input-combo.js +1 -1
- package/dist/components/rebill-input-phone.js +1 -1
- package/dist/components/rebill-input-select.js +1 -1
- package/dist/components/rebill-input-text.js +1 -1
- package/dist/components/rebill-installments.js +1 -1
- package/dist/components/rebill-mode-sandbox-mobile.js +1 -1
- package/dist/components/rebill-processing-payment.js +1 -1
- package/dist/components/rebill-renewal.js +47 -41
- package/dist/components/rebill-renewal.js.map +1 -1
- package/dist/components/rebill-summary.js +1 -1
- package/dist/components/rebill-timeline-debit-day.js +1 -1
- package/dist/components/rebill-timeline-free-trial.js +1 -1
- package/dist/components/rebill-vertical-divider.js +1 -1
- package/dist/components/renewal-success-page.js +1 -1
- package/dist/components/renewal-summary.js +1 -1
- package/dist/components/root-component.js +6 -6
- package/dist/components/selectable-card.js +1 -1
- package/dist/components/single-payment-method.js +1 -1
- package/dist/components/success-page.js +1 -1
- package/dist/components/user-information-phone.js +1 -1
- package/dist/components/user-information.js +1 -1
- package/dist/esm/apm-checkout_19.entry.js +12 -12
- package/dist/esm/card-identification_5.entry.js +8 -8
- package/dist/esm/collapsible-card.entry.js +1 -1
- package/dist/esm/discount-coupon.rebill-divider.entry.js.map +1 -0
- package/dist/esm/discount-coupon_2.entry.js +154 -0
- package/dist/esm/index-D8cwEAmw.js.map +1 -1
- package/dist/esm/input-otp.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.js.map +1 -1
- package/dist/esm/organization-logo_4.entry.js +3 -3
- package/dist/esm/otp-component_7.entry.js +8 -8
- package/dist/esm/rebill-alert.entry.js +2 -2
- package/dist/esm/rebill-card-carousel.entry.js +1 -1
- package/dist/esm/rebill-card.entry.js +1 -1
- package/dist/esm/rebill-container_2.entry.js +2 -2
- package/dist/esm/rebill-flex-container.entry.js +1 -1
- package/dist/esm/rebill-form.entry.js +1 -1
- package/dist/esm/rebill-grid-container.entry.js +1 -1
- package/dist/esm/rebill-input-select.entry.js +2 -2
- package/dist/esm/rebill-input-text.entry.js +2 -2
- package/dist/esm/rebill-renewal.entry.js +2 -2
- package/dist/esm/rebill-renewal.entry.js.map +1 -1
- package/dist/esm/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.js.map +1 -0
- package/dist/esm/{discount-coupon_3.entry.js → rebill-timeline-debit-day_2.entry.js} +6 -119
- package/dist/esm/rebill-vertical-divider.entry.js +1 -1
- package/dist/esm/rebill-web-components-sdk.js +1 -1
- package/dist/esm/renewal-success-page.renewal-summary.entry.js.map +1 -1
- package/dist/esm/renewal-success-page_2.entry.js +41 -13
- package/dist/esm/{renewal.store-C6hSvhsF.js → renewal.store-vAxzxA8H.js} +5 -2
- package/dist/esm/renewal.store-vAxzxA8H.js.map +1 -0
- package/dist/esm/root-component.entry.js +1 -1
- package/dist/rebill-web-components-sdk/discount-coupon.rebill-divider.entry.esm.js.map +1 -0
- package/dist/rebill-web-components-sdk/organization-logo.rebill-card-icon.rebill-checkout-single-column.rebill-footer.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/p-012e3770.entry.js +2 -0
- package/dist/rebill-web-components-sdk/p-012e3770.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/{p-1c3e7171.entry.js → p-0239917e.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-edb69e28.entry.js → p-1ac036d7.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-36a897c4.entry.js → p-1d7e392c.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-e5b0f2b9.entry.js → p-2ebb1d54.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-e8eadef6.entry.js → p-3a5bdb02.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-5df71605.entry.js → p-43924d1d.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/p-43924d1d.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/{p-9084f3ef.entry.js → p-47ee3edc.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-92de0c03.entry.js → p-508cc019.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-924e7ec2.entry.js → p-515e9e16.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/p-5ac0522d.entry.js +2 -0
- package/dist/rebill-web-components-sdk/{p-821e1fed.entry.js → p-6089b208.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/p-63baba00.entry.js +2 -0
- package/dist/rebill-web-components-sdk/p-63baba00.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/{p-a0d6b0c0.entry.js → p-6ea98ccf.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-bc6f455d.entry.js → p-7287e0f0.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-26f12a67.entry.js → p-8c7f75c0.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-26f12a67.entry.js.map → p-8c7f75c0.entry.js.map} +1 -1
- package/dist/rebill-web-components-sdk/p-D8cwEAmw.js.map +1 -1
- package/dist/rebill-web-components-sdk/{p-c8a5a137.entry.js → p-aa96087c.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-63020e78.entry.js → p-ad9a6685.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-7e94aec8.entry.js → p-e0a3f3a8.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/{p-6334b899.entry.js → p-e242be38.entry.js} +2 -2
- package/dist/rebill-web-components-sdk/p-e242be38.entry.js.map +1 -0
- package/dist/rebill-web-components-sdk/p-f672574a.entry.js +2 -0
- package/dist/rebill-web-components-sdk/p-nVuaISVM.js +2 -0
- package/dist/rebill-web-components-sdk/p-nVuaISVM.js.map +1 -0
- package/dist/rebill-web-components-sdk/rebill-renewal.entry.esm.js.map +1 -1
- package/dist/rebill-web-components-sdk/rebill-timeline-debit-day.rebill-timeline-free-trial.entry.esm.js.map +1 -0
- package/dist/rebill-web-components-sdk/rebill-web-components-sdk.esm.js +1 -1
- package/dist/rebill-web-components-sdk/renewal-success-page.renewal-summary.entry.esm.js.map +1 -1
- package/dist/types/components/checkout/discount-coupon/discount-coupon.d.ts +5 -0
- package/dist/types/components/renewal/renewal-summary/renewal-summary.d.ts +12 -5
- package/dist/types/components.d.ts +24 -4
- package/dist/types/models/renewal.model.d.ts +3 -0
- package/package.json +1 -1
- package/dist/cjs/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.cjs.js.map +0 -1
- package/dist/cjs/rebill-divider.cjs.entry.js +0 -18
- package/dist/cjs/rebill-divider.entry.cjs.js.map +0 -1
- package/dist/cjs/renewal.store-C9AesGY1.js.map +0 -1
- package/dist/components/p-B-Wxp2_p.js.map +0 -1
- package/dist/components/p-BWkW7_Hh.js.map +0 -1
- package/dist/components/p-D3QILlvg.js.map +0 -1
- package/dist/components/p-RGadlsa-.js.map +0 -1
- package/dist/esm/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.js.map +0 -1
- package/dist/esm/rebill-divider.entry.js +0 -16
- package/dist/esm/rebill-divider.entry.js.map +0 -1
- package/dist/esm/renewal.store-C6hSvhsF.js.map +0 -1
- package/dist/rebill-web-components-sdk/discount-coupon.rebill-timeline-debit-day.rebill-timeline-free-trial.entry.esm.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-43675422.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-43675422.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-51571e15.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-5df71605.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-6334b899.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-7ea96b11.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-CdYpsLqg.js +0 -2
- package/dist/rebill-web-components-sdk/p-CdYpsLqg.js.map +0 -1
- package/dist/rebill-web-components-sdk/p-eb6a2c0d.entry.js +0 -2
- package/dist/rebill-web-components-sdk/p-eb6a2c0d.entry.js.map +0 -1
- package/dist/rebill-web-components-sdk/rebill-divider.entry.esm.js.map +0 -1
- /package/dist/rebill-web-components-sdk/{p-1c3e7171.entry.js.map → p-0239917e.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-edb69e28.entry.js.map → p-1ac036d7.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-36a897c4.entry.js.map → p-1d7e392c.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-e5b0f2b9.entry.js.map → p-2ebb1d54.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-e8eadef6.entry.js.map → p-3a5bdb02.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-9084f3ef.entry.js.map → p-47ee3edc.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-92de0c03.entry.js.map → p-508cc019.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-924e7ec2.entry.js.map → p-515e9e16.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-51571e15.entry.js.map → p-5ac0522d.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-821e1fed.entry.js.map → p-6089b208.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-a0d6b0c0.entry.js.map → p-6ea98ccf.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-bc6f455d.entry.js.map → p-7287e0f0.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-c8a5a137.entry.js.map → p-aa96087c.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-63020e78.entry.js.map → p-ad9a6685.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-7e94aec8.entry.js.map → p-e0a3f3a8.entry.js.map} +0 -0
- /package/dist/rebill-web-components-sdk/{p-7ea96b11.entry.js.map → p-f672574a.entry.js.map} +0 -0
|
@@ -18,7 +18,7 @@ const Container = /*@__PURE__*/ proxyCustomElement(class Container extends H {
|
|
|
18
18
|
width: '100%',
|
|
19
19
|
boxSizing: 'border-box',
|
|
20
20
|
};
|
|
21
|
-
return (h("div", { key: '
|
|
21
|
+
return (h("div", { key: '41ee65153152ed89e4a02334f6a6147b0db4a567', style: style }, h("slot", { key: '83ea4bef69607a69d64293d0a70338cc4603683c' })));
|
|
22
22
|
}
|
|
23
23
|
}, [260, "rebill-container", {
|
|
24
24
|
"maxWidth": [1, "max-width"],
|
|
@@ -41,6 +41,6 @@ function defineCustomElement() {
|
|
|
41
41
|
defineCustomElement();
|
|
42
42
|
|
|
43
43
|
export { Container as C, defineCustomElement as d };
|
|
44
|
-
//# sourceMappingURL=p-
|
|
44
|
+
//# sourceMappingURL=p-B0QvmxUI.js.map
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=p-
|
|
46
|
+
//# sourceMappingURL=p-B0QvmxUI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-B0QvmxUI.js","mappings":";;MAMa,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;IACZ,QAAQ,GAAW,QAAQ;IAC3B,OAAO,GAAW,MAAM;IACxB,KAAK,GAAY,KAAK;IAE9B,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,SAAS,EAAE,YAAY;SACxB;QAED,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,KAAK,EAAA,EACf,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/layouts/generics/container.tsx"],"sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'rebill-container',\n shadow: false,\n})\nexport class Container {\n @Prop() maxWidth: string = '1200px';\n @Prop() padding: string = '1rem';\n @Prop() fluid: boolean = false;\n\n render() {\n const style = {\n maxWidth: this.fluid ? '100%' : this.maxWidth,\n padding: this.padding,\n margin: '0 auto',\n width: '100%',\n boxSizing: 'border-box',\n };\n\n return (\n <div style={style}>\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, H, h, Host } from './p-8BpuJ_V5.js';
|
|
2
2
|
import { a as SessionStore, I as I18nService } from './p-CMzpQU2o.js';
|
|
3
3
|
import { d as defineCustomElement$2 } from './p-CWY-g0zG.js';
|
|
4
|
-
import { d as defineCustomElement$1 } from './p-
|
|
4
|
+
import { d as defineCustomElement$1 } from './p-qDaQOriJ.js';
|
|
5
5
|
|
|
6
6
|
const userInformationCss = ":host{display:block}.inputs-container{display:flex;flex-direction:column;gap:16px;width:100%}.customer-exists{display:flex;justify-content:flex-end;margin-bottom:16px}";
|
|
7
7
|
|
|
@@ -66,7 +66,7 @@ const UserInformationPhone = /*@__PURE__*/ proxyCustomElement(class UserInformat
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
render() {
|
|
69
|
-
return (h(Host, { key: '
|
|
69
|
+
return (h(Host, { key: 'f5a7cde227c1bd554c5010b50704f3fb6b6502d9' }, h("div", { key: '4f9c6dfb9105d29d0b7d7368e333b8ecf6951fba' }, h("rebill-input-phone", { key: '23e25f0cf70d3fedf4f94fa5ff8041e77402b732', disabled: this.disabled, validationErrorId: "isValidPhoneNumber", phoneNumberId: "phoneNumber", countryCodeId: "countryCodePhoneNumber", placeholder: I18nService.translate('userInformation.phoneNumberPlaceholder'), "initial-country": this.countryCode?.toLowerCase() || 'ar', error: this.error, required: true, searchable: true, searchPlaceholder: I18nService.translate('userInformation.searchCountriesPlaceholder') }))));
|
|
70
70
|
}
|
|
71
71
|
static get style() { return userInformationCss; }
|
|
72
72
|
}, [256, "user-information-phone", {
|
|
@@ -101,6 +101,6 @@ function defineCustomElement() {
|
|
|
101
101
|
defineCustomElement();
|
|
102
102
|
|
|
103
103
|
export { UserInformationPhone as U, defineCustomElement as d };
|
|
104
|
-
//# sourceMappingURL=p-
|
|
104
|
+
//# sourceMappingURL=p-B544NesK.js.map
|
|
105
105
|
|
|
106
|
-
//# sourceMappingURL=p-
|
|
106
|
+
//# sourceMappingURL=p-B544NesK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-B544NesK.js","mappings":";;;;;AAAA,MAAM,kBAAkB,GAAG,yKAAyK;;MCSvL,oBAAoB,iBAAAA,kBAAA,CAAA,MAAA,oBAAA,SAAAC,CAAA,CAAA;;;;;;;IACvB,KAAK,GAAkB,IAAI;IAC3B,WAAW,GAAmB,IAAI;IACjC,qBAAqB,GAAW,CAAC;IAClC,QAAQ,GAAY,KAAK;AAEzB,IAAA,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8CrC,gBAAgB,GAAA;QACd,IAAI,CAAC,6BAA6B,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAK;YAC/E,IAAI,CAAC,qBAAqB,EAAE;AAC9B,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,EAAE;;;IAIxC,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,oBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,iBAAiB,EAAC,oBAAoB,EACtC,aAAa,EAAC,aAAa,EAC3B,aAAa,EAAC,wBAAwB,EACtC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,wCAAwC,CAAC,EAC3D,iBAAA,EAAA,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI,EACxD,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,4CAA4C,CAAC,EAAA,CACtF,CACE,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/checkout/user-information/user-information.css?tag=user-information-phone","src/components/checkout/user-information/user-information-phone.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.inputs-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n.customer-exists {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 16px;\n}\n","import { Component, h, Host, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { SessionStore } from '../../../store/session.store';\n\n@Component({\n tag: 'user-information-phone',\n styleUrl: 'user-information.css',\n shadow: false,\n})\nexport class UserInformationPhone {\n @Prop() error: string | null = null;\n @Prop() countryCode?: string | null = null;\n @State() languageUpdateTrigger: number = 0;\n @Prop() disabled: boolean = false;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n\n // @Listen('phoneInput')\n // handleInputChange(event: CustomEvent<{ id: string; value: string }>) {\n // if (!event.detail) return;\n\n // const { id, value } = event.detail;\n // if (id === 'phoneNumber') {\n // SessionStore.setUserPhoneNumber({\n // number: value,\n // countryCode: this.userInformationPhone.countryCode,\n // });\n // } else if (id === 'countryCodePhoneNumber') {\n // SessionStore.setUserPhoneNumber({\n // number: this.userInformationPhone.phoneNumber.number,\n // countryCode: value,\n // });\n // } else {\n // SessionStore.setUserInformation({ [id]: value });\n // }\n\n // // Don't stop propagation - let the form handle the event too\n // }\n\n // @Listen('blurPhone')\n // handleBlurPhone(event: CustomEvent<{ id: string; value: string }>) {\n // if (!event.detail) return; // Ignore native input events or malformed events\n\n // const { id, value } = event.detail;\n // if (id === 'phoneNumber') {\n // SessionStore.setUserPhoneNumber({\n // number: value,\n // countryCode: this.userInformationPhone.countryCode,\n // });\n // } else if (id === 'countryCodePhoneNumber') {\n // SessionStore.setUserPhoneNumber({\n // number: this.userInformationPhone.phoneNumber.number,\n // countryCode: value,\n // });\n // } else {\n // SessionStore.setUserInformation({ [id]: value });\n // }\n\n // // Don't stop propagation - let the form handle the event too\n // }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n render() {\n return (\n <Host>\n <div>\n <rebill-input-phone\n disabled={this.disabled}\n validationErrorId=\"isValidPhoneNumber\"\n phoneNumberId=\"phoneNumber\"\n countryCodeId=\"countryCodePhoneNumber\"\n placeholder={I18nService.translate('userInformation.phoneNumberPlaceholder')}\n initial-country={this.countryCode?.toLowerCase() || 'ar'}\n error={this.error}\n required={true}\n searchable={true}\n searchPlaceholder={I18nService.translate('userInformation.searchCountriesPlaceholder')}\n />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { proxyCustomElement, H, h } from './p-8BpuJ_V5.js';
|
|
2
|
-
import { r as renewalState } from './p-
|
|
2
|
+
import { r as renewalState } from './p-hpg1lOUJ.js';
|
|
3
3
|
import { s as state, b as SESSION_ITEM_TYPE_ENUM } from './p-CMzpQU2o.js';
|
|
4
|
-
import { d as defineCustomElement$8 } from './p-
|
|
5
|
-
import { d as defineCustomElement$7 } from './p-
|
|
6
|
-
import { d as defineCustomElement$6 } from './p-
|
|
4
|
+
import { d as defineCustomElement$8 } from './p-DBi6K19S.js';
|
|
5
|
+
import { d as defineCustomElement$7 } from './p-dgrAtFYi.js';
|
|
6
|
+
import { d as defineCustomElement$6 } from './p-C0LGxeng.js';
|
|
7
7
|
import { d as defineCustomElement$5 } from './p-CWY-g0zG.js';
|
|
8
|
-
import { d as defineCustomElement$4 } from './p-
|
|
9
|
-
import { d as defineCustomElement$3 } from './p-
|
|
10
|
-
import { d as defineCustomElement$2 } from './p-
|
|
8
|
+
import { d as defineCustomElement$4 } from './p-DRTzT9ks.js';
|
|
9
|
+
import { d as defineCustomElement$3 } from './p-BZYd-So1.js';
|
|
10
|
+
import { d as defineCustomElement$2 } from './p-DaS8xGPM.js';
|
|
11
11
|
import { d as defineCustomElement$1 } from './p-C_txMekS.js';
|
|
12
12
|
|
|
13
13
|
const CardFieldsWrapper = /*@__PURE__*/ proxyCustomElement(class CardFieldsWrapper extends H {
|
|
@@ -23,9 +23,9 @@ const CardFieldsWrapper = /*@__PURE__*/ proxyCustomElement(class CardFieldsWrapp
|
|
|
23
23
|
showDocument;
|
|
24
24
|
customCSS;
|
|
25
25
|
render() {
|
|
26
|
-
return (h("div", { key: '
|
|
26
|
+
return (h("div", { key: '5f1248723599b981c30f9a54124b5a94a5f53dad', style: { display: 'flex', flexDirection: 'column', gap: '16px' } }, h("card-iframe", { key: '8bfe7e4a7b26c30bf1de8c4d937690a429429f3a', customCSS: this.customCSS }), !renewalState.isInitialized &&
|
|
27
27
|
state.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN &&
|
|
28
|
-
state.data.cardInformation?.installments?.installments.length > 0 && (h("rebill-installments", { key: '
|
|
28
|
+
state.data.cardInformation?.installments?.installments.length > 0 && (h("rebill-installments", { key: 'd95b4b20414db198f5483cb1dc1ac070e0204009', error: this.installmentsError })), this.showDocument && (h("card-identification", { key: '11d048b3a791db2061befd07a4b33a039e03de24', documentTypeError: this.documentTypeError, documentNumberError: this.documentNumberError }))));
|
|
29
29
|
}
|
|
30
30
|
}, [256, "card-fields-wrapper", {
|
|
31
31
|
"installmentsError": [1, "installments-error"],
|
|
@@ -90,6 +90,6 @@ function defineCustomElement() {
|
|
|
90
90
|
defineCustomElement();
|
|
91
91
|
|
|
92
92
|
export { CardFieldsWrapper as C, defineCustomElement as d };
|
|
93
|
-
//# sourceMappingURL=p-
|
|
93
|
+
//# sourceMappingURL=p-B7uE6iBd.js.map
|
|
94
94
|
|
|
95
|
-
//# sourceMappingURL=p-
|
|
95
|
+
//# sourceMappingURL=p-B7uE6iBd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-B7uE6iBd.js","mappings":";;;;;;;;;;;;MAUa,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;;;;;;;AACpB,IAAA,iBAAiB;AACjB,IAAA,iBAAiB;AACjB,IAAA,mBAAmB;AACnB,IAAA,YAAY;AACZ,IAAA,SAAS;IACjB,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,EACnE,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,SAAS,EAAE,IAAI,CAAC,SAAS,EAAI,CAAA,EACzC,CAAC,YAAY,CAAC,aAAa;YAC1BC,KAAY,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,sBAAsB,CAAC,IAAI;AACxE,YAAAA,KAAY,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,KACtE,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAAI,CACvD,EACF,IAAI,CAAC,YAAY,KAChB,4EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC7C,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/payment-method-selector/card-fields/card-fields-wrapper.tsx"],"sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { SESSION_ITEM_TYPE_ENUM } from '../../../../models';\nimport { renewalState } from '../../../../store/renewal.store';\nimport { sessionState } from '../../../../store/session.store';\n\n@Component({\n tag: 'card-fields-wrapper',\n shadow: false,\n})\nexport class CardFieldsWrapper {\n @Prop() installmentsError?: string;\n @Prop() documentTypeError?: string;\n @Prop() documentNumberError?: string;\n @Prop() showDocument?: boolean;\n @Prop() customCSS?: string;\n render() {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n <card-iframe customCSS={this.customCSS} />\n {!renewalState.isInitialized &&\n sessionState.data?.itemInformation?.type !== SESSION_ITEM_TYPE_ENUM.PLAN &&\n sessionState.data.cardInformation?.installments?.installments.length > 0 && (\n <rebill-installments error={this.installmentsError} />\n )}\n {this.showDocument && (\n <card-identification\n documentTypeError={this.documentTypeError}\n documentNumberError={this.documentNumberError}\n />\n )}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -36,7 +36,7 @@ const InputCheckbox = /*@__PURE__*/ proxyCustomElement(class InputCheckbox exten
|
|
|
36
36
|
this.input.emit({ id: this.id, value: this.checked });
|
|
37
37
|
};
|
|
38
38
|
render() {
|
|
39
|
-
return (h("div", { key: '
|
|
39
|
+
return (h("div", { key: 'c74b84596c8a440991d20d71f678504934f2b560', class: "checkbox-container input-container" }, h("label", { key: '994dcb86e31f802e223eabc26ccd14882aee3400', class: `checkbox-label input-label ${this.disabled ? 'disabled' : ''}` }, h("input", { key: '78ac96ee3334ac5de8f79d8a12441cfa391a95e3', id: this.id, type: "checkbox", class: `checkbox-element ${this.error ? 'checkbox-error' : ''}`, checked: this.checked, onChange: this.onCheckboxChange, disabled: this.disabled }), h("span", { key: '4a088e15405522b167c9b7fcb3a1d3df42c798e6', class: "label-text" }, this.label)), this.error && h("span", { key: '0ae539ccbe2d3ee67e6009a757512b6484171a1e', class: "error-message" }, this.error)));
|
|
40
40
|
}
|
|
41
41
|
static get style() { return inputCheckboxCss; }
|
|
42
42
|
}, [256, "rebill-input-checkbox", {
|
|
@@ -62,6 +62,6 @@ function defineCustomElement() {
|
|
|
62
62
|
defineCustomElement();
|
|
63
63
|
|
|
64
64
|
export { InputCheckbox as I, defineCustomElement as d };
|
|
65
|
-
//# sourceMappingURL=p-
|
|
65
|
+
//# sourceMappingURL=p-BLbS7nF7.js.map
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=p-
|
|
67
|
+
//# sourceMappingURL=p-BLbS7nF7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-BLbS7nF7.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,+mFAA+mF;;MCO3nF,aAAa,iBAAAA,kBAAA,CAAA,MAAA,aAAA,SAAAC,CAAA,CAAA;;;;;;;;;IAEhB,KAAK,GAAW,EAAE;;IAEc,OAAO,GAAY,KAAK;;IAExD,KAAK,GAAW,EAAE;;IAElB,EAAE,GAAW,EAAE;;IAEf,QAAQ,GAAY,KAAK;;AAExB,IAAA,KAAK;AAGd,IAAA,gBAAgB,CAAC,KAAkB,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;QAC7B,IAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;;;AAI5B,IAAA,gBAAgB,GAAG,CAAC,KAAY,KAAI;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA0B;AACjD,QAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACvD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,oCAAoC,EAAA,EAC7C,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAE,CAAA,2BAAA,EAA8B,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAE,CAAA,EAAA,EAC3E,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,GAAG,gBAAgB,GAAG,EAAE,CAAE,CAAA,EAC/D,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACtC,EACP,IAAI,CAAC,KAAK,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,eAAe,EAAE,EAAA,IAAI,CAAC,KAAK,CAAQ,CAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/inputs/input-checkbox/input-checkbox.css?tag=rebill-input-checkbox","src/components/shared/inputs/input-checkbox/input-checkbox.tsx"],"sourcesContent":["@import '../shared-input.css';\n\n.checkbox-container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n cursor: pointer;\n}\n\n.checkbox-label.disabled {\n cursor: not-allowed !important;\n opacity: 1;\n}\n\n.checkbox-element {\n appearance: none;\n width: 16px;\n height: 16px;\n border: 1.5px solid var(--rebill-color-border-primary);\n border-radius: 4px;\n background: var(--rebill-color-background);\n margin-right: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition:\n border-color 0.15s,\n box-shadow 0.15s;\n position: relative;\n cursor: pointer;\n}\n\n.checkbox-element:disabled {\n border-color: var(--rebill-color-disabled);\n cursor: not-allowed;\n}\n\n.checkbox-element:checked {\n background-color: var(--rebill-color-primary);\n border-color: var(--rebill-color-primary);\n}\n\n.checkbox-element:checked:disabled {\n background-color: var(--rebill-color-disabled);\n border-color: var(--rebill-color-disabled);\n}\n\n.checkbox-element:checked::after {\n content: '';\n display: block;\n position: absolute;\n left: 4.5px;\n top: 1.5px;\n width: 2.5px;\n height: 7px;\n border: solid var(--rebill-color-background);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n}\n\n.checkbox-element:disabled:checked::after {\n border-color: var(--rebill-color-background);\n}\n\n.checkbox-error {\n border-color: var(--rebill-color-error) !important;\n}\n\n.label-text {\n user-select: none;\n font-weight: 400;\n}\n","import { Component, Event, EventEmitter, Listen, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'rebill-input-checkbox',\n styleUrl: 'input-checkbox.css',\n shadow: false,\n})\nexport class InputCheckbox {\n /** Etiqueta que se muestra a la derecha del checkbox */\n @Prop() label: string = '';\n /** Estado del checkbox */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del checkbox */\n @Prop() id: string = '';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Evento al cambiar el valor */\n @Event() input: EventEmitter<{ id: string; value: boolean }>;\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData && this.id in formData) {\n this.checked = formData[this.id];\n }\n }\n\n private onCheckboxChange = (event: Event) => {\n if (this.disabled) return;\n const checkbox = event.target as HTMLInputElement;\n this.checked = checkbox.checked;\n this.input.emit({ id: this.id, value: this.checked });\n };\n\n render() {\n return (\n <div class=\"checkbox-container input-container\">\n <label class={`checkbox-label input-label ${this.disabled ? 'disabled' : ''}`}>\n <input\n id={this.id}\n type=\"checkbox\"\n class={`checkbox-element ${this.error ? 'checkbox-error' : ''}`}\n checked={this.checked}\n onChange={this.onCheckboxChange}\n disabled={this.disabled}\n />\n <span class=\"label-text\">{this.label}</span>\n </label>\n {this.error && <span class=\"error-message\">{this.error}</span>}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -238,10 +238,10 @@ const InputSelect = /*@__PURE__*/ proxyCustomElement(class InputSelect extends H
|
|
|
238
238
|
render() {
|
|
239
239
|
const selectedLabel = this.getSelectedOptionLabel();
|
|
240
240
|
const hasValue = this.value !== '';
|
|
241
|
-
return (h("div", { key: '
|
|
241
|
+
return (h("div", { key: '23c4562b47db3e895f706d3fc46f0b4ca3381eb2', class: "input-container" }, this.label && (h("label", { key: '5c5aa626f8b85e16dd4623798f517d29145b80b7', class: `input-label ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '891a09b90bec6483503c7d24e016e1f018268a9a', class: `select-wrapper ${this.disabled ? 'disabled' : ''} ${this.isOpen ? 'open' : ''}` }, h("div", { key: '6f21d55aad5ab4efab7e857dc4a59bd0fb787986', ref: el => (this.triggerRef = el), class: `input-element select-trigger ${this.error ? 'input-error' : ''} ${!hasValue ? 'placeholder' : ''} ${this.variant === 'underlined' ? 'underlined' : ''}`, style: { backgroundColor: this.backgroundColor }, onClick: this.toggleDropdown, tabIndex: this.disabled ? -1 : 0, role: "combobox", "aria-expanded": this.isOpen.toString(), "aria-haspopup": "listbox", "aria-labelledby": this.label ? `${this.id}-label` : undefined }, h("span", { key: '537ae49362d7b96233f91aeb899059e190199b17', class: "select-value", style: { fontSize: this.fontSize }, innerHTML: selectedLabel }), h("div", { key: 'd81cc47b9d93b8f4206ef1a9b6c320d0c91f867b', class: "icon-wrapper" }, this.loading ? (h("div", { class: "spinner" })) : (h("rebill-icon", { name: this.getArrowIcon(), size: "20px", class: `select-icon ${this.isOpen && this.arrowIcon === 'down' ? 'rotated' : ''}` })))), this.isOpen && (h("div", { key: '3d00b0028bdd98d99336bd23d98c5f9f4443ca5c', ref: el => (this.dropdownRef = el), class: `select-dropPosition ${this.dropPosition === 'up' ? 'open-up' : 'open-down'}`, role: "listbox" }, this.searchable && (h("div", { key: 'd3b7272792e4083a80a1fb86292b704abc6db660', class: "search-container", onClick: this.handleSearchClick }, h("div", { key: '14785ce1256f9e7f5ba6bfc6b2ae6f83f48b7e73', class: "search-input-wrapper" }, h("rebill-icon", { key: 'b4cd2ef7a511bf046a0aaa85f8010f5f05ff7b46', name: "search", size: "16px", class: "search-icon" }), h("input", { key: '4bfc8b4016b5381679b30bf219d94afa1e273e5e', ref: el => (this.searchInputRef = el), type: "text", class: "search-input", placeholder: this.searchPlaceholder, value: this.searchTerm, onInput: this.handleSearchInput, onClick: this.handleSearchClick, style: { fontSize: this.fontSize } }), this.searchTerm && (h("button", { key: 'b1c3d31391c32297d9dacd96db6d0db47e752c8b', type: "button", class: "clear-search", onClick: event => {
|
|
242
242
|
event.stopPropagation();
|
|
243
243
|
this.clearSearch();
|
|
244
|
-
}, "aria-label": "Clear search" }, h("rebill-icon", { key: '
|
|
244
|
+
}, "aria-label": "Clear search" }, h("rebill-icon", { key: 'c3b19f8b59672c5ec127d3c669f383233dedbcd5', name: "x", size: "16px" })))))), this.loading && this.filteredOptions.length === 0 ? (h("div", { class: "loading-message", style: { fontSize: this.fontSize } }, h("div", { class: "spinner" }), I18nService.translate('common.loadingOptions'))) : this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (h("div", { class: `select-option ${this.value === option.value ? 'selected' : ''} ${this.highlightedIndex === index ? 'highlighted' : ''}`, style: { fontSize: this.fontSize }, onClick: () => this.selectOption(option), role: "option", "aria-selected": this.value === option.value ? 'true' : 'false' }, h("span", { innerHTML: option.label }))))) : (h("div", { class: "no-results", style: { fontSize: this.fontSize } }, "No se encontraron resultados"))))), this.error && h("span", { key: 'cef33371cb5b640b8496e797045ef967f2c7f763', class: "error-message" }, this.error)));
|
|
245
245
|
}
|
|
246
246
|
static get style() { return inputSelectCss; }
|
|
247
247
|
}, [256, "rebill-input-select", {
|
|
@@ -288,6 +288,6 @@ function defineCustomElement() {
|
|
|
288
288
|
defineCustomElement();
|
|
289
289
|
|
|
290
290
|
export { InputSelect as I, defineCustomElement as d };
|
|
291
|
-
//# sourceMappingURL=p-
|
|
291
|
+
//# sourceMappingURL=p-BZYd-So1.js.map
|
|
292
292
|
|
|
293
|
-
//# sourceMappingURL=p-
|
|
293
|
+
//# sourceMappingURL=p-BZYd-So1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-qI3t-gYu.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/inputs/input-select/input-select.css?tag=rebill-input-select","src/components/shared/inputs/input-select/input-select.tsx"],"sourcesContent":["@import '../shared-input.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n}\n\n.select-wrapper {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n.select-trigger {\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 padding: 10px 14px;\n padding-right: 30px; /* Espacio para el icono */\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n outline: none;\n transition: border-color 0.2s;\n background: var(--rebill-color-background);\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 min-width: 0; /* Allow the element to shrink below its content size */\n}\n\n.select-trigger:focus {\n outline: none;\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.select-trigger:hover:not(.disabled) {\n border-color: var(--rebill-color-primary);\n}\n\n.select-trigger.input-error {\n border-color: var(--rebill-color-error) !important;\n}\n\n.select-trigger.placeholder .select-value {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n}\n\n.select-wrapper.disabled .select-trigger {\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.select-value {\n flex: 1;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.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.select-icon.rotated {\n transform: rotateX(180deg);\n}\n\n.select-wrapper.disabled .select-icon {\n color: var(--rebill-color-disabled);\n}\n\n/* Variante undelineated - sin borde */\n.select-trigger.underlined {\n width: 100%;\n height: 38.33px;\n padding: 10px 14px;\n padding-right: 40px;\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n outline: none;\n background: var(--rebill-color-background);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n min-width: 0;\n border: none;\n}\n\n.select-trigger.underlined:focus {\n border: none;\n box-shadow: none;\n}\n\n.select-dropPosition.open-down {\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-dropPosition.open-up {\n position: absolute;\n bottom: 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-bottom: 0.25rem;\n margin-top: 0;\n max-height: 200px;\n overflow-y: auto;\n animation: slideUp 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\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.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 for the 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/* Estilos para la funcionalidad de búsqueda */\n.search-container {\n padding: 0.75rem;\n border-bottom: 1px solid var(--rebill-color-border);\n background-color: var(--rebill-color-background);\n}\n\n.search-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.search-icon {\n position: absolute;\n left: 0.75rem;\n color: var(--rebill-color-text-secondary);\n z-index: 1;\n pointer-events: none;\n}\n\n.search-input {\n width: 100%;\n padding: 0.5rem 0.75rem 0.5rem 2.5rem;\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n background-color: var(--rebill-color-background);\n outline: none;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n}\n\n.search-input:focus {\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.search-input::placeholder {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n}\n\n.clear-search {\n position: absolute;\n right: 0.75rem;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n border-radius: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--rebill-color-text-secondary);\n transition: background-color 0.2s ease;\n}\n\n.clear-search:hover {\n background-color: var(--rebill-color-background-hover);\n color: var(--rebill-color-text-primary);\n}\n\n.no-results {\n padding: 0.75rem;\n text-align: center;\n color: var(--rebill-color-text-secondary);\n font-style: italic;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.loading-message {\n padding: 0.75rem;\n text-align: center;\n color: var(--rebill-color-text-secondary);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.loading-message .spinner {\n width: 14px;\n height: 14px;\n border: 2px solid rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary, #007bff);\n animation: spin 1s linear infinite;\n}\n\n/* Spinner styles */\n.spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary, #007bff);\n animation: spin 1s linear infinite;\n display: inline-block;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Fix para evitar zoom en dispositivos móviles */\n@media screen and (max-width: 768px) {\n .select-trigger {\n font-size: 1rem;\n }\n\n .select-trigger.placeholder .select-value {\n font-size: 1rem;\n }\n\n .select-option {\n font-size: 1rem;\n }\n\n .search-input {\n font-size: 1rem;\n }\n\n .search-input::placeholder {\n font-size: 1rem;\n }\n\n .loading-message {\n font-size: 1rem;\n }\n\n .no-results {\n font-size: 1rem;\n }\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { SessionStore } from '../../../../store/session.store';\n@Component({\n tag: 'rebill-input-select',\n styleUrl: 'input-select.css',\n shadow: false,\n})\nexport class InputSelect {\n private dropdownRef?: HTMLDivElement;\n private triggerRef?: HTMLDivElement;\n private searchInputRef?: HTMLInputElement;\n private unsubscribeCurrentLocaleStore?: () => void;\n\n /** Etiqueta que se muestra arriba del select */\n @Prop() label: string = '';\n /** Opciones del select */\n @Prop() options: { label: string; value: string }[] = [];\n /** Valor seleccionado */\n @Prop({ mutable: true, reflect: true }) value: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del select */\n @Prop() id: string = '';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Placeholder text */\n @Prop() placeholder: string = 'Selecciona una opción';\n /** Variant input select */\n @Prop() variant: 'outlined' | 'underlined';\n /** Icono de flecha hacia abajo */\n @Prop() arrowIcon: 'up-down' | 'down' = 'up-down';\n /** Posición del dropdown */\n @Prop() dropPosition: 'up' | 'down' = 'down';\n /** Tamaño de la fuente */\n @Prop() fontSize: string = '14px';\n /** Estilos personalizados */\n @Prop() backgroundColor: string = '';\n /** Habilitar funcionalidad de búsqueda */\n @Prop() searchable: boolean = false;\n /** Placeholder del campo de búsqueda */\n @Prop() searchPlaceholder: string = 'Search for options...';\n /** Estado de carga */\n @Prop() loading: boolean = false;\n /** Estado interno para mostrar/ocultar el dropdown */\n @State() isOpen: boolean = false;\n /** ID único del componente */\n @State() componentId: string = '';\n /** Índice de la opción resaltada para navegación con teclado */\n @State() highlightedIndex: number = -1;\n /** Término de búsqueda */\n @State() searchTerm: string = '';\n /** Opciones filtradas */\n @State() filteredOptions: { label: string; value: string }[] = [];\n /** Estado para forzar re-render cuando cambia el idioma */\n @State() languageUpdateTrigger: number = 0;\n /** Evento al cambiar el valor */\n @Event() input: EventEmitter<{ id: string; value: string; disabled?: boolean }>;\n\n componentWillLoad() {\n this.filteredOptions = [...this.options];\n this.componentId = this.id || `select-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n componentWillUpdate() {\n this.filteredOptions = [...this.options];\n\n if (this.searchable) {\n this.filterOptions();\n }\n }\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData && this.id in formData) {\n const newValue = formData[this.id];\n // Only update if the new value is different and ensure it's a string\n if (newValue !== this.value && typeof newValue === 'string') {\n this.value = newValue;\n this.input.emit({ id: this.id, value: this.value });\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 @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n if (this.searchable && this.searchInputRef && event.target === this.searchInputRef) {\n return;\n }\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen && this.highlightedIndex >= 0) {\n this.selectOption(this.filteredOptions[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(\n this.highlightedIndex + 1,\n this.filteredOptions.length - 1,\n );\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 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.filteredOptions.findIndex(opt => opt.value === this.value);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n\n if (this.searchable) {\n this.focusSearchInput();\n }\n } else {\n this.searchTerm = '';\n this.filterOptions();\n }\n };\n\n private openDropdown = () => {\n if (this.disabled) return;\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n this.isOpen = true;\n this.highlightedIndex = this.filteredOptions.findIndex(opt => opt.value === this.value);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n\n if (this.searchable) {\n this.focusSearchInput();\n }\n };\n\n private focusSearchInput = () => {\n const focusInput = () => {\n if (this.searchInputRef) {\n this.searchInputRef.focus();\n this.searchInputRef.select();\n }\n };\n focusInput();\n\n requestAnimationFrame(() => {\n focusInput();\n });\n setTimeout(() => {\n focusInput();\n }, 10);\n };\n\n private closeDropdown = () => {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchTerm = '';\n this.filterOptions();\n };\n\n private selectOption = (option: { label: string; value: string }) => {\n if (this.disabled) return;\n this.value = option.value;\n this.closeDropdown();\n this.input.emit({ id: this.id, value: this.value, disabled: this.disabled });\n };\n\n private getSelectedOptionLabel = (): string => {\n const selectedOption = this.options.find(opt => opt.value === this.value);\n return selectedOption ? selectedOption.label : this.placeholder;\n };\n\n private getArrowIcon = () => {\n if (this.arrowIcon === 'up-down') return 'chevron-up-down';\n return 'chevron-down';\n };\n\n private filterOptions = () => {\n if (!this.searchTerm.trim()) {\n this.filteredOptions = [...this.options];\n } else {\n this.filteredOptions = this.options.filter(option =>\n option.label.toLowerCase().includes(this.searchTerm.toLowerCase()),\n );\n }\n this.highlightedIndex = -1;\n };\n\n private handleSearchInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.searchTerm = target.value;\n this.filterOptions();\n };\n\n private clearSearch = () => {\n this.searchTerm = '';\n this.filterOptions();\n };\n\n private handleSearchClick = (event: Event) => {\n event.stopPropagation();\n };\n\n render() {\n const selectedLabel = this.getSelectedOptionLabel();\n const hasValue = this.value !== '';\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={`select-wrapper ${this.disabled ? 'disabled' : ''} ${this.isOpen ? 'open' : ''}`}\n >\n <div\n ref={el => (this.triggerRef = el)}\n class={`input-element select-trigger ${this.error ? 'input-error' : ''} ${!hasValue ? 'placeholder' : ''} ${this.variant === 'underlined' ? 'underlined' : ''}`}\n style={{ backgroundColor: this.backgroundColor }}\n onClick={this.toggleDropdown}\n tabIndex={this.disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={this.isOpen.toString()}\n aria-haspopup=\"listbox\"\n aria-labelledby={this.label ? `${this.id}-label` : undefined}\n >\n <span\n class=\"select-value\"\n style={{ fontSize: this.fontSize }}\n innerHTML={selectedLabel}\n ></span>\n <div class=\"icon-wrapper\">\n {this.loading ? (\n <div class=\"spinner\"></div>\n ) : (\n <rebill-icon\n name={this.getArrowIcon()}\n size=\"20px\"\n class={`select-icon ${this.isOpen && this.arrowIcon === 'down' ? 'rotated' : ''}`}\n />\n )}\n </div>\n </div>\n\n {this.isOpen && (\n <div\n ref={el => (this.dropdownRef = el)}\n class={`select-dropPosition ${this.dropPosition === 'up' ? 'open-up' : 'open-down'}`}\n role=\"listbox\"\n >\n {this.searchable && (\n <div class=\"search-container\" onClick={this.handleSearchClick}>\n <div class=\"search-input-wrapper\">\n <rebill-icon name=\"search\" size=\"16px\" class=\"search-icon\" />\n <input\n ref={el => (this.searchInputRef = el)}\n type=\"text\"\n class=\"search-input\"\n placeholder={this.searchPlaceholder}\n value={this.searchTerm}\n onInput={this.handleSearchInput}\n onClick={this.handleSearchClick}\n style={{ fontSize: this.fontSize }}\n />\n {this.searchTerm && (\n <button\n type=\"button\"\n class=\"clear-search\"\n onClick={event => {\n event.stopPropagation();\n this.clearSearch();\n }}\n aria-label=\"Clear search\"\n >\n <rebill-icon name=\"x\" size=\"16px\" />\n </button>\n )}\n </div>\n </div>\n )}\n {this.loading && this.filteredOptions.length === 0 ? (\n <div class=\"loading-message\" style={{ fontSize: this.fontSize }}>\n <div class=\"spinner\"></div>\n {I18nService.translate('common.loadingOptions')}\n </div>\n ) : this.filteredOptions.length > 0 ? (\n this.filteredOptions.map((option, index) => (\n <div\n class={`select-option ${this.value === option.value ? 'selected' : ''} ${this.highlightedIndex === index ? 'highlighted' : ''}`}\n style={{ fontSize: this.fontSize }}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n aria-selected={this.value === option.value ? 'true' : 'false'}\n >\n <span innerHTML={option.label}></span>\n </div>\n ))\n ) : (\n <div class=\"no-results\" style={{ fontSize: this.fontSize }}>\n No se encontraron resultados\n </div>\n )}\n </div>\n )}\n </div>\n {this.error && <span class=\"error-message\">{this.error}</span>}\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-BZYd-So1.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/inputs/input-select/input-select.css?tag=rebill-input-select","src/components/shared/inputs/input-select/input-select.tsx"],"sourcesContent":["@import '../shared-input.css';\n\n:host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n}\n\n.select-wrapper {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n.select-trigger {\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 padding: 10px 14px;\n padding-right: 30px; /* Espacio para el icono */\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n outline: none;\n transition: border-color 0.2s;\n background: var(--rebill-color-background);\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 min-width: 0; /* Allow the element to shrink below its content size */\n}\n\n.select-trigger:focus {\n outline: none;\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.select-trigger:hover:not(.disabled) {\n border-color: var(--rebill-color-primary);\n}\n\n.select-trigger.input-error {\n border-color: var(--rebill-color-error) !important;\n}\n\n.select-trigger.placeholder .select-value {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n}\n\n.select-wrapper.disabled .select-trigger {\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.select-value {\n flex: 1;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.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.select-icon.rotated {\n transform: rotateX(180deg);\n}\n\n.select-wrapper.disabled .select-icon {\n color: var(--rebill-color-disabled);\n}\n\n/* Variante undelineated - sin borde */\n.select-trigger.underlined {\n width: 100%;\n height: 38.33px;\n padding: 10px 14px;\n padding-right: 40px;\n font-size: 0.875rem;\n font-weight: normal;\n color: var(--rebill-color-text-primary);\n outline: none;\n background: var(--rebill-color-background);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n min-width: 0;\n border: none;\n}\n\n.select-trigger.underlined:focus {\n border: none;\n box-shadow: none;\n}\n\n.select-dropPosition.open-down {\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-dropPosition.open-up {\n position: absolute;\n bottom: 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-bottom: 0.25rem;\n margin-top: 0;\n max-height: 200px;\n overflow-y: auto;\n animation: slideUp 0.15s ease-out;\n box-sizing: border-box;\n width: 100%;\n}\n\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.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 for the 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/* Estilos para la funcionalidad de búsqueda */\n.search-container {\n padding: 0.75rem;\n border-bottom: 1px solid var(--rebill-color-border);\n background-color: var(--rebill-color-background);\n}\n\n.search-input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.search-icon {\n position: absolute;\n left: 0.75rem;\n color: var(--rebill-color-text-secondary);\n z-index: 1;\n pointer-events: none;\n}\n\n.search-input {\n width: 100%;\n padding: 0.5rem 0.75rem 0.5rem 2.5rem;\n border: 1px solid var(--rebill-color-border);\n border-radius: 0.375rem;\n font-size: 0.875rem;\n color: var(--rebill-color-text-primary);\n background-color: var(--rebill-color-background);\n outline: none;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n}\n\n.search-input:focus {\n border-color: var(--rebill-color-primary);\n box-shadow: 0 0 0 2px var(--rebill-color-primary-light);\n}\n\n.search-input::placeholder {\n color: var(--rebill-color-text-secondary-light);\n font-size: 0.875rem;\n}\n\n.clear-search {\n position: absolute;\n right: 0.75rem;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.25rem;\n border-radius: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--rebill-color-text-secondary);\n transition: background-color 0.2s ease;\n}\n\n.clear-search:hover {\n background-color: var(--rebill-color-background-hover);\n color: var(--rebill-color-text-primary);\n}\n\n.no-results {\n padding: 0.75rem;\n text-align: center;\n color: var(--rebill-color-text-secondary);\n font-style: italic;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.loading-message {\n padding: 0.75rem;\n text-align: center;\n color: var(--rebill-color-text-secondary);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--rebill-color-border);\n}\n\n.loading-message .spinner {\n width: 14px;\n height: 14px;\n border: 2px solid rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary, #007bff);\n animation: spin 1s linear infinite;\n}\n\n/* Spinner styles */\n.spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n border-top-color: var(--rebill-color-primary, #007bff);\n animation: spin 1s linear infinite;\n display: inline-block;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Fix para evitar zoom en dispositivos móviles */\n@media screen and (max-width: 768px) {\n .select-trigger {\n font-size: 1rem;\n }\n\n .select-trigger.placeholder .select-value {\n font-size: 1rem;\n }\n\n .select-option {\n font-size: 1rem;\n }\n\n .search-input {\n font-size: 1rem;\n }\n\n .search-input::placeholder {\n font-size: 1rem;\n }\n\n .loading-message {\n font-size: 1rem;\n }\n\n .no-results {\n font-size: 1rem;\n }\n}\n","import { Component, Event, EventEmitter, h, Listen, Prop, State } from '@stencil/core';\nimport { I18nService } from '../../../../i18n/i18n.service';\nimport { SessionStore } from '../../../../store/session.store';\n@Component({\n tag: 'rebill-input-select',\n styleUrl: 'input-select.css',\n shadow: false,\n})\nexport class InputSelect {\n private dropdownRef?: HTMLDivElement;\n private triggerRef?: HTMLDivElement;\n private searchInputRef?: HTMLInputElement;\n private unsubscribeCurrentLocaleStore?: () => void;\n\n /** Etiqueta que se muestra arriba del select */\n @Prop() label: string = '';\n /** Opciones del select */\n @Prop() options: { label: string; value: string }[] = [];\n /** Valor seleccionado */\n @Prop({ mutable: true, reflect: true }) value: string = '';\n /** Mensaje de error */\n @Prop() error: string = '';\n /** ID del select */\n @Prop() id: string = '';\n /** Estado deshabilitado */\n @Prop() disabled: boolean = false;\n /** Placeholder text */\n @Prop() placeholder: string = 'Selecciona una opción';\n /** Variant input select */\n @Prop() variant: 'outlined' | 'underlined';\n /** Icono de flecha hacia abajo */\n @Prop() arrowIcon: 'up-down' | 'down' = 'up-down';\n /** Posición del dropdown */\n @Prop() dropPosition: 'up' | 'down' = 'down';\n /** Tamaño de la fuente */\n @Prop() fontSize: string = '14px';\n /** Estilos personalizados */\n @Prop() backgroundColor: string = '';\n /** Habilitar funcionalidad de búsqueda */\n @Prop() searchable: boolean = false;\n /** Placeholder del campo de búsqueda */\n @Prop() searchPlaceholder: string = 'Search for options...';\n /** Estado de carga */\n @Prop() loading: boolean = false;\n /** Estado interno para mostrar/ocultar el dropdown */\n @State() isOpen: boolean = false;\n /** ID único del componente */\n @State() componentId: string = '';\n /** Índice de la opción resaltada para navegación con teclado */\n @State() highlightedIndex: number = -1;\n /** Término de búsqueda */\n @State() searchTerm: string = '';\n /** Opciones filtradas */\n @State() filteredOptions: { label: string; value: string }[] = [];\n /** Estado para forzar re-render cuando cambia el idioma */\n @State() languageUpdateTrigger: number = 0;\n /** Evento al cambiar el valor */\n @Event() input: EventEmitter<{ id: string; value: string; disabled?: boolean }>;\n\n componentWillLoad() {\n this.filteredOptions = [...this.options];\n this.componentId = this.id || `select-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n componentDidLoad() {\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.languageUpdateTrigger++;\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n }\n\n componentWillUpdate() {\n this.filteredOptions = [...this.options];\n\n if (this.searchable) {\n this.filterOptions();\n }\n }\n\n @Listen('change', { target: 'document' })\n handleFormChange(event: CustomEvent) {\n const formData = event.detail;\n if (formData && this.id in formData) {\n const newValue = formData[this.id];\n // Only update if the new value is different and ensure it's a string\n if (newValue !== this.value && typeof newValue === 'string') {\n this.value = newValue;\n this.input.emit({ id: this.id, value: this.value });\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 @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n if (this.searchable && this.searchInputRef && event.target === this.searchInputRef) {\n return;\n }\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen && this.highlightedIndex >= 0) {\n this.selectOption(this.filteredOptions[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(\n this.highlightedIndex + 1,\n this.filteredOptions.length - 1,\n );\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 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.filteredOptions.findIndex(opt => opt.value === this.value);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n\n if (this.searchable) {\n this.focusSearchInput();\n }\n } else {\n this.searchTerm = '';\n this.filterOptions();\n }\n };\n\n private openDropdown = () => {\n if (this.disabled) return;\n document.dispatchEvent(new CustomEvent('closeAllSelects', { detail: this.componentId }));\n this.isOpen = true;\n this.highlightedIndex = this.filteredOptions.findIndex(opt => opt.value === this.value);\n if (this.highlightedIndex === -1) {\n this.highlightedIndex = 0;\n }\n\n if (this.searchable) {\n this.focusSearchInput();\n }\n };\n\n private focusSearchInput = () => {\n const focusInput = () => {\n if (this.searchInputRef) {\n this.searchInputRef.focus();\n this.searchInputRef.select();\n }\n };\n focusInput();\n\n requestAnimationFrame(() => {\n focusInput();\n });\n setTimeout(() => {\n focusInput();\n }, 10);\n };\n\n private closeDropdown = () => {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchTerm = '';\n this.filterOptions();\n };\n\n private selectOption = (option: { label: string; value: string }) => {\n if (this.disabled) return;\n this.value = option.value;\n this.closeDropdown();\n this.input.emit({ id: this.id, value: this.value, disabled: this.disabled });\n };\n\n private getSelectedOptionLabel = (): string => {\n const selectedOption = this.options.find(opt => opt.value === this.value);\n return selectedOption ? selectedOption.label : this.placeholder;\n };\n\n private getArrowIcon = () => {\n if (this.arrowIcon === 'up-down') return 'chevron-up-down';\n return 'chevron-down';\n };\n\n private filterOptions = () => {\n if (!this.searchTerm.trim()) {\n this.filteredOptions = [...this.options];\n } else {\n this.filteredOptions = this.options.filter(option =>\n option.label.toLowerCase().includes(this.searchTerm.toLowerCase()),\n );\n }\n this.highlightedIndex = -1;\n };\n\n private handleSearchInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.searchTerm = target.value;\n this.filterOptions();\n };\n\n private clearSearch = () => {\n this.searchTerm = '';\n this.filterOptions();\n };\n\n private handleSearchClick = (event: Event) => {\n event.stopPropagation();\n };\n\n render() {\n const selectedLabel = this.getSelectedOptionLabel();\n const hasValue = this.value !== '';\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={`select-wrapper ${this.disabled ? 'disabled' : ''} ${this.isOpen ? 'open' : ''}`}\n >\n <div\n ref={el => (this.triggerRef = el)}\n class={`input-element select-trigger ${this.error ? 'input-error' : ''} ${!hasValue ? 'placeholder' : ''} ${this.variant === 'underlined' ? 'underlined' : ''}`}\n style={{ backgroundColor: this.backgroundColor }}\n onClick={this.toggleDropdown}\n tabIndex={this.disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={this.isOpen.toString()}\n aria-haspopup=\"listbox\"\n aria-labelledby={this.label ? `${this.id}-label` : undefined}\n >\n <span\n class=\"select-value\"\n style={{ fontSize: this.fontSize }}\n innerHTML={selectedLabel}\n ></span>\n <div class=\"icon-wrapper\">\n {this.loading ? (\n <div class=\"spinner\"></div>\n ) : (\n <rebill-icon\n name={this.getArrowIcon()}\n size=\"20px\"\n class={`select-icon ${this.isOpen && this.arrowIcon === 'down' ? 'rotated' : ''}`}\n />\n )}\n </div>\n </div>\n\n {this.isOpen && (\n <div\n ref={el => (this.dropdownRef = el)}\n class={`select-dropPosition ${this.dropPosition === 'up' ? 'open-up' : 'open-down'}`}\n role=\"listbox\"\n >\n {this.searchable && (\n <div class=\"search-container\" onClick={this.handleSearchClick}>\n <div class=\"search-input-wrapper\">\n <rebill-icon name=\"search\" size=\"16px\" class=\"search-icon\" />\n <input\n ref={el => (this.searchInputRef = el)}\n type=\"text\"\n class=\"search-input\"\n placeholder={this.searchPlaceholder}\n value={this.searchTerm}\n onInput={this.handleSearchInput}\n onClick={this.handleSearchClick}\n style={{ fontSize: this.fontSize }}\n />\n {this.searchTerm && (\n <button\n type=\"button\"\n class=\"clear-search\"\n onClick={event => {\n event.stopPropagation();\n this.clearSearch();\n }}\n aria-label=\"Clear search\"\n >\n <rebill-icon name=\"x\" size=\"16px\" />\n </button>\n )}\n </div>\n </div>\n )}\n {this.loading && this.filteredOptions.length === 0 ? (\n <div class=\"loading-message\" style={{ fontSize: this.fontSize }}>\n <div class=\"spinner\"></div>\n {I18nService.translate('common.loadingOptions')}\n </div>\n ) : this.filteredOptions.length > 0 ? (\n this.filteredOptions.map((option, index) => (\n <div\n class={`select-option ${this.value === option.value ? 'selected' : ''} ${this.highlightedIndex === index ? 'highlighted' : ''}`}\n style={{ fontSize: this.fontSize }}\n onClick={() => this.selectOption(option)}\n role=\"option\"\n aria-selected={this.value === option.value ? 'true' : 'false'}\n >\n <span innerHTML={option.label}></span>\n </div>\n ))\n ) : (\n <div class=\"no-results\" style={{ fontSize: this.fontSize }}>\n No se encontraron resultados\n </div>\n )}\n </div>\n )}\n </div>\n {this.error && <span class=\"error-message\">{this.error}</span>}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -4,11 +4,11 @@ import { g as getAssetURL } from './p-C5OYI4I6.js';
|
|
|
4
4
|
import { B as BREAKPOINT_ENUM, g as getBreakpoint } from './p-Do_vNuMa.js';
|
|
5
5
|
import { C as COLORS_ENUM } from './p-DA598vBj.js';
|
|
6
6
|
import { d as defineCustomElement$7 } from './p-TtP-m545.js';
|
|
7
|
-
import { d as defineCustomElement$6 } from './p-
|
|
8
|
-
import { d as defineCustomElement$5 } from './p-
|
|
9
|
-
import { d as defineCustomElement$4 } from './p-
|
|
7
|
+
import { d as defineCustomElement$6 } from './p-xNgCL9nV.js';
|
|
8
|
+
import { d as defineCustomElement$5 } from './p-DvV5MmYi.js';
|
|
9
|
+
import { d as defineCustomElement$4 } from './p-HzmATjhQ.js';
|
|
10
10
|
import { d as defineCustomElement$3 } from './p-CWY-g0zG.js';
|
|
11
|
-
import { d as defineCustomElement$2 } from './p-
|
|
11
|
+
import { d as defineCustomElement$2 } from './p-BZYd-So1.js';
|
|
12
12
|
import { d as defineCustomElement$1 } from './p-C_txMekS.js';
|
|
13
13
|
|
|
14
14
|
const processingPaymentCss = ".lottie-container{margin-bottom:2rem;display:flex;justify-content:center;align-items:center}.lottie-animation{width:166px;height:165px;display:flex;justify-content:center;align-items:center}.text-content{margin-bottom:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.security-badge{width:100%;max-width:450px;height:40px;display:flex;align-items:center;justify-content:center;background:#ebedef;border-radius:8px;box-sizing:border-box}.lock-icon{width:16px;height:16px;color:var(--rebill-color-text-secondary, #6b7280)}@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:0.8}}.contact-info{text-align:left}@media (max-width: 1024px){.security-badge{width:100%;max-width:100%}.lottie-animation{width:166px;height:165px}.text-content{gap:12px}}@media (max-width: 767px){.processing-container{padding:0 16px}}.processing-container{width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}";
|
|
@@ -152,6 +152,6 @@ function defineCustomElement() {
|
|
|
152
152
|
defineCustomElement();
|
|
153
153
|
|
|
154
154
|
export { ProcessingPayment as P, defineCustomElement as d };
|
|
155
|
-
//# sourceMappingURL=p-
|
|
155
|
+
//# sourceMappingURL=p-BeVdyYff.js.map
|
|
156
156
|
|
|
157
|
-
//# sourceMappingURL=p-
|
|
157
|
+
//# sourceMappingURL=p-BeVdyYff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-BeVdyYff.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/processing-payment/processing-payment.css?tag=rebill-processing-payment","src/components/checkout/processing-payment/processing-payment.tsx"],"sourcesContent":["/* Lottie Animation */\n.lottie-container {\n margin-bottom: 2rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.lottie-animation {\n width: 166px;\n height: 165px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n/* Text Content */\n.text-content {\n margin-bottom: 2rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n/* Security Badge */\n.security-badge {\n width: 100%;\n max-width: 450px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #ebedef;\n border-radius: 8px;\n box-sizing: border-box;\n}\n\n.lock-icon {\n width: 16px;\n height: 16px;\n color: var(--rebill-color-text-secondary, #6b7280);\n}\n\n/* Animation */\n@keyframes pulse {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n}\n\n.contact-info {\n text-align: left;\n}\n\n/* Responsive Styles */\n@media (max-width: 1024px) {\n .security-badge {\n width: 100%;\n max-width: 100%;\n }\n\n .lottie-animation {\n width: 166px;\n height: 165px;\n }\n\n .text-content {\n gap: 12px;\n }\n}\n\n@media (max-width: 767px) {\n .processing-container {\n padding: 0 16px;\n }\n}\n\n.processing-container {\n width: 100%;\n max-width: 100%;\n overflow-x: hidden;\n box-sizing: border-box;\n}\n","import { Component, h, State } from '@stencil/core';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { sessionState, SessionStore } from '../../../store/session.store';\nimport { getAssetURL } from '../../../utils/assets';\nimport { BREAKPOINT_ENUM, getBreakpoint } from '../../../utils/breakpoint';\nimport { COLORS_ENUM } from '../../../utils/color-class-mapper';\nimport '../../shared/card-icon/card-icon';\n\n@Component({\n tag: 'rebill-processing-payment',\n styleUrl: 'processing-payment.css',\n shadow: false,\n})\nexport class ProcessingPayment {\n @State() currentLocale: string = sessionState.currentLocale;\n @State() breakpoint: BREAKPOINT_ENUM = BREAKPOINT_ENUM.DESKTOP;\n @State() loaderProgress: number = 0;\n @State() isLoadingLottie: boolean = true;\n\n private unsubscribeCurrentLocaleStore?: () => void;\n private progressInterval?: number;\n private lottieContainer?: HTMLElement;\n private lottieAnimation?: any;\n\n componentWillLoad() {\n this.breakpoint = getBreakpoint(window.innerWidth);\n this.unsubscribeCurrentLocaleStore = SessionStore.onChange('currentLocale', () => {\n this.currentLocale = sessionState.currentLocale;\n });\n }\n\n componentDidLoad() {\n window.addEventListener('resize', this.handleResize);\n this.loadLottieAnimation();\n }\n\n disconnectedCallback() {\n if (this.unsubscribeCurrentLocaleStore) {\n this.unsubscribeCurrentLocaleStore();\n }\n window.removeEventListener('resize', this.handleResize);\n this.stopLoaderAnimation();\n }\n\n private handleResize = () => {\n this.breakpoint = getBreakpoint(window.innerWidth);\n };\n\n private loadLottieAnimation = async () => {\n try {\n const lottie = await import('lottie-web');\n const animationData = await fetch(getAssetURL(`loader-card-v2.json`));\n const animationJson = await animationData.json();\n\n if (this.lottieContainer) {\n this.lottieAnimation = lottie.default.loadAnimation({\n container: this.lottieContainer,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: animationJson,\n });\n } else {\n this.startLoaderAnimation();\n }\n } catch (error) {\n this.startLoaderAnimation();\n }\n };\n\n private startLoaderAnimation = () => {\n const duration = 2000;\n const interval = 50; // Update every 50ms\n const increment = (interval / duration) * 100;\n\n this.progressInterval = window.setInterval(() => {\n this.loaderProgress = Math.min(this.loaderProgress + increment, 100);\n if (this.loaderProgress >= 100) {\n this.stopLoaderAnimation();\n }\n }, interval);\n };\n\n private stopLoaderAnimation = () => {\n if (this.progressInterval) {\n clearInterval(this.progressInterval);\n this.progressInterval = undefined;\n }\n if (this.lottieAnimation) {\n this.lottieAnimation.destroy();\n this.lottieAnimation = undefined;\n }\n };\n\n render() {\n return (\n <rebill-checkout-single-column>\n <div class=\"processing-container\">\n {/* Lottie Animation */}\n <div class=\"lottie-container\">\n <div ref={el => (this.lottieContainer = el)} class=\"lottie-animation\"></div>\n </div>\n <div class=\"text-content\">\n <rebill-typography variant=\"h3\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('processing.processingTitle')}\n </rebill-typography>\n <rebill-typography variant=\"subtitle-bold\" color={COLORS_ENUM.PRIMARY_DARK_TEXT}>\n {I18nService.translate('processing.processingSubtitle')}\n </rebill-typography>\n </div>\n\n <rebill-alert\n type=\"secure\"\n variant=\"variant-secure\"\n icon=\"lock-outline\"\n message={I18nService.translate('otp.secureMessage')}\n />\n </div>\n </rebill-checkout-single-column>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { proxyCustomElement, H, createEvent, h } from './p-8BpuJ_V5.js';
|
|
2
2
|
import { a as api } from './p-Dh-yfb0D.js';
|
|
3
3
|
import { I as I18nService, o as onChange, s as state, a as SessionStore } from './p-CMzpQU2o.js';
|
|
4
|
-
import { d as defineCustomElement$6 } from './p-
|
|
5
|
-
import { d as defineCustomElement$5 } from './p-
|
|
4
|
+
import { d as defineCustomElement$6 } from './p-CneaXzeq.js';
|
|
5
|
+
import { d as defineCustomElement$5 } from './p-DgRM4z7g.js';
|
|
6
6
|
import { d as defineCustomElement$4 } from './p-CWY-g0zG.js';
|
|
7
|
-
import { d as defineCustomElement$3 } from './p-
|
|
8
|
-
import { d as defineCustomElement$2 } from './p-
|
|
7
|
+
import { d as defineCustomElement$3 } from './p-BZYd-So1.js';
|
|
8
|
+
import { d as defineCustomElement$2 } from './p-CuX2faVH.js';
|
|
9
9
|
import { d as defineCustomElement$1 } from './p-C_txMekS.js';
|
|
10
10
|
|
|
11
11
|
const addressCss = ":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}.billing-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.address-container{display:flex;flex-direction:column;gap:16px;width:100%}.state-zip-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.state-zip-row rebill-input-select,.state-zip-row rebill-input-text{flex:1}.search-input-container{margin-top:8px}.manual-entry-link-wrapper{margin-top:8px;text-align:left}.manual-entry-link{background:none;border:none;color:var(--rebill-color-primary);cursor:pointer;text-decoration:underline;font-size:14px;padding:4px 8px;transition:color 0.2s ease;text-decoration:none}.manual-entry-link:hover{text-decoration:underline;text-decoration-color:var(--rebill-color-text-secondary)}.same-as-shipping-section{margin:24px 0;padding:16px 0}.shipping-address-section{margin-top:24px;padding-top:24px}";
|
|
@@ -254,6 +254,6 @@ function defineCustomElement() {
|
|
|
254
254
|
defineCustomElement();
|
|
255
255
|
|
|
256
256
|
export { Address as A, defineCustomElement as d };
|
|
257
|
-
//# sourceMappingURL=p-
|
|
257
|
+
//# sourceMappingURL=p-BuNsfNGm.js.map
|
|
258
258
|
|
|
259
|
-
//# sourceMappingURL=p-
|
|
259
|
+
//# sourceMappingURL=p-BuNsfNGm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-1I-sUD5D.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/address/address.css?tag=rebill-address","src/components/checkout/address/address.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n:host {\n display: block;\n}\n\n.billing-header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.address-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n.state-zip-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n}\n\n.state-zip-row rebill-input-select,\n.state-zip-row rebill-input-text {\n flex: 1;\n}\n\n.search-input-container {\n margin-top: 8px;\n}\n\n.manual-entry-link-wrapper {\n margin-top: 8px;\n text-align: left;\n}\n\n.manual-entry-link {\n background: none;\n border: none;\n color: var(--rebill-color-primary);\n cursor: pointer;\n text-decoration: underline;\n font-size: 14px;\n padding: 4px 8px;\n transition: color 0.2s ease;\n text-decoration: none;\n}\n\n.manual-entry-link:hover {\n text-decoration: underline;\n text-decoration-color: var(--rebill-color-text-secondary);\n}\n\n.same-as-shipping-section {\n margin: 24px 0;\n padding: 16px 0;\n}\n\n.shipping-address-section {\n margin-top: 24px;\n padding-top: 24px;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { api } from '../../../api';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { onChange, sessionState, SessionStore } from '../../../store/session.store';\nimport { AddressComponents } from '../../../utils';\n\n@Component({\n tag: 'rebill-address',\n styleUrl: 'address.css',\n shadow: false,\n})\nexport class Address {\n @Element() el: HTMLElement;\n @Prop({ mutable: true, reflect: true }) billingView: 'search' | 'form' = 'search';\n @State() currentBillingStateOptions: { label: string; value: string }[] = [];\n @State() isLoadingAddress: boolean = false;\n @Prop() disabled: boolean = false;\n\n @Prop() countryOptions: { label: string; value: string }[] = [];\n\n @Prop() errors?: {\n 'billing-country': string;\n 'billing-state': string;\n 'billing-address': string;\n 'billing-city': string;\n 'billing-zip': string;\n } | null = null;\n\n private unsubscribeAddressStore?: () => void;\n\n private translateError(errorKey: string | undefined): string {\n if (!errorKey) return '';\n if (errorKey.includes('validation.') || errorKey.includes('paymentErrors.')) {\n return I18nService.translate(errorKey);\n }\n return errorKey;\n }\n\n @Event() addressUpdated: EventEmitter<{\n country: string;\n state: string;\n address: string;\n city: string;\n zip: string;\n }>;\n\n componentDidLoad() {\n this.unsubscribeAddressStore = onChange('data', () => {\n const billingAddress = sessionState.data.userInformation.address?.billingAddress;\n\n if (billingAddress) {\n const addressData: AddressComponents = {\n country: billingAddress.country || '',\n state: billingAddress.state || '',\n address: billingAddress.address || '',\n city: billingAddress.city || '',\n zip: billingAddress.zip || '',\n };\n\n this.emitInputEventsForAddress(addressData);\n }\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeAddressStore) {\n this.unsubscribeAddressStore();\n }\n }\n\n private async handleAddressSelected(address: AddressComponents) {\n this.isLoadingAddress = true;\n\n // Normalize text function for handling accents and special characters\n const normalizeText = (text: string) => {\n return text\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') // Remove accents\n .replace(/\\./g, '') // Remove dots\n .replace(/\\s+/g, ' ') // Normalize spaces\n .trim();\n };\n this.billingView = 'form';\n\n if (address.country) {\n await this.loadStatesForCountry(address.country);\n\n // Compare Google state with API states\n if (address.state && this.currentBillingStateOptions.length > 0) {\n const exactMatch = this.currentBillingStateOptions.find(\n option => option.value.toLowerCase() === address.state.toLowerCase(),\n );\n\n const partialMatch = this.currentBillingStateOptions.find(\n option =>\n option.value.toLowerCase().includes(address.state.toLowerCase()) ||\n address.state.toLowerCase().includes(option.value.toLowerCase()),\n );\n\n // Try to find matches with common variations\n const normalizedGoogleState = normalizeText(address.state)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const normalizedMatch = this.currentBillingStateOptions.find(option => {\n const normalizedOption = normalizeText(option.value)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const matches =\n normalizedOption === normalizedGoogleState ||\n normalizedOption.startsWith(normalizedGoogleState + ' ') ||\n normalizedGoogleState.startsWith(normalizedOption + ' ');\n return matches;\n });\n\n if (exactMatch) {\n address.state = exactMatch.value;\n } else if (normalizedMatch) {\n address.state = normalizedMatch.value;\n } else if (partialMatch) {\n address.state = partialMatch.value;\n } else {\n address.state = undefined;\n }\n }\n }\n SessionStore.setBillingAddress(address);\n\n this.addressUpdated.emit({\n country: address.country || '',\n address: address.address || '',\n city: address.city || '',\n state: address.state || undefined,\n zip: address.zip || '',\n });\n\n // Use requestAnimationFrame to ensure the form is rendered with the new state options\n // before emitting events. This ensures the state field can be properly populated.\n requestAnimationFrame(() => {\n this.emitInputEventsForAddress(address);\n setTimeout(() => {\n this.isLoadingAddress = false;\n }, 500);\n });\n }\n\n private emitInputEventsForAddress(address: AddressComponents) {\n // Emit input events for each address field that has a value\n // This mimics user input to properly clear validation errors\n const fields = [\n { id: `billing-country`, value: address.country },\n { id: `billing-address`, value: address.address },\n { id: `billing-city`, value: address.city },\n { id: `billing-state`, value: address.state },\n { id: `billing-zip`, value: address.zip },\n ];\n\n fields.forEach(field => {\n if (field.value) {\n this.emitInputEvent(field.id, field.value);\n }\n });\n }\n\n private emitInputEvent(id: string, value: string) {\n if (value) {\n // Create and dispatch a custom input event that the form component can listen to\n const inputEvent = new CustomEvent('input', {\n detail: { id, value },\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n }\n\n private async loadStatesForCountry(countryCode: string) {\n try {\n const response = await api.data.getStates(countryCode);\n const statesResponse = response.data;\n const stateOptions =\n statesResponse && statesResponse.states\n ? statesResponse.states.map(state => ({ label: state, value: state }))\n : [];\n\n this.currentBillingStateOptions = stateOptions;\n } catch (error) {\n this.currentBillingStateOptions = [];\n }\n }\n\n private handleManualEntry = () => {\n this.billingView = 'form';\n };\n\n private handleSearchEntry = () => {\n this.billingView = 'search';\n };\n\n private async handleInput(field: string, value: string) {\n if (value === undefined) return;\n SessionStore.setBillingAddress({ [field]: value } as any);\n // Emit input event to form to sync with form data\n this.emitInputEvent(`billing-${field}`, value);\n\n // If country changes, load states for the new country\n if (field === 'country') {\n await this.loadStatesForCountry(value);\n // Clear the current state selection since the country changed\n SessionStore.setBillingAddress({ state: '' } as any);\n }\n }\n\n private renderAddressHeader() {\n return (\n <div class=\"billing-header-row\">\n <rebill-typography variant=\"body2\">\n {I18nService.translate('billingAddress.title')}\n </rebill-typography>\n </div>\n );\n }\n\n private renderAddressForm() {\n if (this.billingView === 'search') {\n const addressError =\n this.translateError(this.errors?.['billing-address']) ||\n this.translateError(this.errors?.['billing-country']) ||\n this.translateError(this.errors?.['billing-state']) ||\n this.translateError(this.errors?.['billing-city']) ||\n this.translateError(this.errors?.['billing-zip']) ||\n '';\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-search\n onAddressSelected={e => this.handleAddressSelected(e.detail)}\n onManualEntryRequested={() => this.handleManualEntry()}\n error={addressError}\n disabled={this.disabled}\n />\n </div>\n );\n }\n\n const errorsToShow = this.isLoadingAddress ? null : this.errors;\n\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-form\n countryOptions={this.countryOptions}\n stateOptions={this.currentBillingStateOptions}\n errors={errorsToShow}\n disabled={this.disabled}\n onFieldChanged={e => this.handleInput(e.detail.field, e.detail.value)}\n onSearchRequested={() => this.handleSearchEntry()}\n />\n </div>\n );\n }\n\n render() {\n return (\n <div>\n {/* Billing Address */}\n {this.renderAddressForm()}\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-BuNsfNGm.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","sessionState"],"sources":["src/components/checkout/address/address.css?tag=rebill-address","src/components/checkout/address/address.tsx"],"sourcesContent":["@import '../../../styles/variables.css';\n\n:host {\n display: block;\n}\n\n.billing-header-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.address-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n}\n\n.state-zip-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n}\n\n.state-zip-row rebill-input-select,\n.state-zip-row rebill-input-text {\n flex: 1;\n}\n\n.search-input-container {\n margin-top: 8px;\n}\n\n.manual-entry-link-wrapper {\n margin-top: 8px;\n text-align: left;\n}\n\n.manual-entry-link {\n background: none;\n border: none;\n color: var(--rebill-color-primary);\n cursor: pointer;\n text-decoration: underline;\n font-size: 14px;\n padding: 4px 8px;\n transition: color 0.2s ease;\n text-decoration: none;\n}\n\n.manual-entry-link:hover {\n text-decoration: underline;\n text-decoration-color: var(--rebill-color-text-secondary);\n}\n\n.same-as-shipping-section {\n margin: 24px 0;\n padding: 16px 0;\n}\n\n.shipping-address-section {\n margin-top: 24px;\n padding-top: 24px;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State } from '@stencil/core';\nimport { api } from '../../../api';\nimport { I18nService } from '../../../i18n/i18n.service';\nimport { onChange, sessionState, SessionStore } from '../../../store/session.store';\nimport { AddressComponents } from '../../../utils';\n\n@Component({\n tag: 'rebill-address',\n styleUrl: 'address.css',\n shadow: false,\n})\nexport class Address {\n @Element() el: HTMLElement;\n @Prop({ mutable: true, reflect: true }) billingView: 'search' | 'form' = 'search';\n @State() currentBillingStateOptions: { label: string; value: string }[] = [];\n @State() isLoadingAddress: boolean = false;\n @Prop() disabled: boolean = false;\n\n @Prop() countryOptions: { label: string; value: string }[] = [];\n\n @Prop() errors?: {\n 'billing-country': string;\n 'billing-state': string;\n 'billing-address': string;\n 'billing-city': string;\n 'billing-zip': string;\n } | null = null;\n\n private unsubscribeAddressStore?: () => void;\n\n private translateError(errorKey: string | undefined): string {\n if (!errorKey) return '';\n if (errorKey.includes('validation.') || errorKey.includes('paymentErrors.')) {\n return I18nService.translate(errorKey);\n }\n return errorKey;\n }\n\n @Event() addressUpdated: EventEmitter<{\n country: string;\n state: string;\n address: string;\n city: string;\n zip: string;\n }>;\n\n componentDidLoad() {\n this.unsubscribeAddressStore = onChange('data', () => {\n const billingAddress = sessionState.data.userInformation.address?.billingAddress;\n\n if (billingAddress) {\n const addressData: AddressComponents = {\n country: billingAddress.country || '',\n state: billingAddress.state || '',\n address: billingAddress.address || '',\n city: billingAddress.city || '',\n zip: billingAddress.zip || '',\n };\n\n this.emitInputEventsForAddress(addressData);\n }\n });\n }\n\n disconnectedCallback() {\n if (this.unsubscribeAddressStore) {\n this.unsubscribeAddressStore();\n }\n }\n\n private async handleAddressSelected(address: AddressComponents) {\n this.isLoadingAddress = true;\n\n // Normalize text function for handling accents and special characters\n const normalizeText = (text: string) => {\n return text\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '') // Remove accents\n .replace(/\\./g, '') // Remove dots\n .replace(/\\s+/g, ' ') // Normalize spaces\n .trim();\n };\n this.billingView = 'form';\n\n if (address.country) {\n await this.loadStatesForCountry(address.country);\n\n // Compare Google state with API states\n if (address.state && this.currentBillingStateOptions.length > 0) {\n const exactMatch = this.currentBillingStateOptions.find(\n option => option.value.toLowerCase() === address.state.toLowerCase(),\n );\n\n const partialMatch = this.currentBillingStateOptions.find(\n option =>\n option.value.toLowerCase().includes(address.state.toLowerCase()) ||\n address.state.toLowerCase().includes(option.value.toLowerCase()),\n );\n\n // Try to find matches with common variations\n const normalizedGoogleState = normalizeText(address.state)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const normalizedMatch = this.currentBillingStateOptions.find(option => {\n const normalizedOption = normalizeText(option.value)\n .replace('ciudad de ', '')\n .replace('estado de ', '')\n .replace('provincia de ', '');\n\n const matches =\n normalizedOption === normalizedGoogleState ||\n normalizedOption.startsWith(normalizedGoogleState + ' ') ||\n normalizedGoogleState.startsWith(normalizedOption + ' ');\n return matches;\n });\n\n if (exactMatch) {\n address.state = exactMatch.value;\n } else if (normalizedMatch) {\n address.state = normalizedMatch.value;\n } else if (partialMatch) {\n address.state = partialMatch.value;\n } else {\n address.state = undefined;\n }\n }\n }\n SessionStore.setBillingAddress(address);\n\n this.addressUpdated.emit({\n country: address.country || '',\n address: address.address || '',\n city: address.city || '',\n state: address.state || undefined,\n zip: address.zip || '',\n });\n\n // Use requestAnimationFrame to ensure the form is rendered with the new state options\n // before emitting events. This ensures the state field can be properly populated.\n requestAnimationFrame(() => {\n this.emitInputEventsForAddress(address);\n setTimeout(() => {\n this.isLoadingAddress = false;\n }, 500);\n });\n }\n\n private emitInputEventsForAddress(address: AddressComponents) {\n // Emit input events for each address field that has a value\n // This mimics user input to properly clear validation errors\n const fields = [\n { id: `billing-country`, value: address.country },\n { id: `billing-address`, value: address.address },\n { id: `billing-city`, value: address.city },\n { id: `billing-state`, value: address.state },\n { id: `billing-zip`, value: address.zip },\n ];\n\n fields.forEach(field => {\n if (field.value) {\n this.emitInputEvent(field.id, field.value);\n }\n });\n }\n\n private emitInputEvent(id: string, value: string) {\n if (value) {\n // Create and dispatch a custom input event that the form component can listen to\n const inputEvent = new CustomEvent('input', {\n detail: { id, value },\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(inputEvent);\n }\n }\n\n private async loadStatesForCountry(countryCode: string) {\n try {\n const response = await api.data.getStates(countryCode);\n const statesResponse = response.data;\n const stateOptions =\n statesResponse && statesResponse.states\n ? statesResponse.states.map(state => ({ label: state, value: state }))\n : [];\n\n this.currentBillingStateOptions = stateOptions;\n } catch (error) {\n this.currentBillingStateOptions = [];\n }\n }\n\n private handleManualEntry = () => {\n this.billingView = 'form';\n };\n\n private handleSearchEntry = () => {\n this.billingView = 'search';\n };\n\n private async handleInput(field: string, value: string) {\n if (value === undefined) return;\n SessionStore.setBillingAddress({ [field]: value } as any);\n // Emit input event to form to sync with form data\n this.emitInputEvent(`billing-${field}`, value);\n\n // If country changes, load states for the new country\n if (field === 'country') {\n await this.loadStatesForCountry(value);\n // Clear the current state selection since the country changed\n SessionStore.setBillingAddress({ state: '' } as any);\n }\n }\n\n private renderAddressHeader() {\n return (\n <div class=\"billing-header-row\">\n <rebill-typography variant=\"body2\">\n {I18nService.translate('billingAddress.title')}\n </rebill-typography>\n </div>\n );\n }\n\n private renderAddressForm() {\n if (this.billingView === 'search') {\n const addressError =\n this.translateError(this.errors?.['billing-address']) ||\n this.translateError(this.errors?.['billing-country']) ||\n this.translateError(this.errors?.['billing-state']) ||\n this.translateError(this.errors?.['billing-city']) ||\n this.translateError(this.errors?.['billing-zip']) ||\n '';\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-search\n onAddressSelected={e => this.handleAddressSelected(e.detail)}\n onManualEntryRequested={() => this.handleManualEntry()}\n error={addressError}\n disabled={this.disabled}\n />\n </div>\n );\n }\n\n const errorsToShow = this.isLoadingAddress ? null : this.errors;\n\n return (\n <div>\n {this.renderAddressHeader()}\n <rebill-address-form\n countryOptions={this.countryOptions}\n stateOptions={this.currentBillingStateOptions}\n errors={errorsToShow}\n disabled={this.disabled}\n onFieldChanged={e => this.handleInput(e.detail.field, e.detail.value)}\n onSearchRequested={() => this.handleSearchEntry()}\n />\n </div>\n );\n }\n\n render() {\n return (\n <div>\n {/* Billing Address */}\n {this.renderAddressForm()}\n </div>\n );\n }\n}\n"],"version":3}
|