@justifi/webcomponents 6.5.1-rc.2 → 6.5.1-rc.4
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/{GooglePay-HXBAmTgL.js → Refund-Blquw3jZ.js} +0 -415
- package/dist/cjs/bank-account-document-form-inputs_6.cjs.entry.js +4 -5
- package/dist/cjs/bank-account-form.cjs.entry.js +2 -2
- package/dist/cjs/{business.service-DMzf08nC.js → business.service-DrBmfEbR.js} +1 -1
- package/dist/cjs/card-form.cjs.entry.js +2 -2
- package/dist/cjs/{check-pkg-version-Bw6Rz_E3.js → check-pkg-version-Bj0XkWnL.js} +2 -2
- package/dist/cjs/{checkout.service-CHNHEsrp.js → checkout.service-BEU6CI0t.js} +1 -1
- package/dist/cjs/checkout.store-BA6h-dp2.js +107 -0
- package/dist/cjs/checkouts-list-core.cjs.entry.js +2 -3
- package/dist/cjs/custom-popper.cjs.entry.js +2 -2
- package/dist/cjs/{dispute.service-B63kcFkU.js → dispute.service-c0CZxPpe.js} +1 -1
- package/dist/cjs/form-control-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/form-control-date.cjs.entry.js +2 -2
- package/dist/cjs/form-control-file-v2_2.cjs.entry.js +3 -3
- package/dist/cjs/form-control-monetary.cjs.entry.js +2 -2
- package/dist/cjs/form-control-number-masked_3.cjs.entry.js +2 -2
- package/dist/cjs/form-control-number.cjs.entry.js +2 -2
- package/dist/cjs/form-control-radio.cjs.entry.js +2 -2
- package/dist/cjs/form-control-select_3.cjs.entry.js +4 -4
- package/dist/cjs/{get-payment-details-BN139jp0.js → get-payment-details-D8UQRtX1.js} +2 -2
- package/dist/cjs/{get-subaccounts-IgHJX5J4.js → get-subaccounts-fKcKqvrx.js} +2 -2
- package/dist/cjs/gross-payment-chart-core.cjs.entry.js +1 -1
- package/dist/cjs/hidden-input_2.cjs.entry.js +5 -5
- package/dist/cjs/{index-CajjbB9t.js → index-C2ITzalN.js} +0 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +23 -22
- package/dist/cjs/justifi-additional-questions-form-step-core_6.cjs.entry.js +5 -6
- package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +2 -3
- package/dist/cjs/justifi-additional-statement_8.cjs.entry.js +8 -8
- package/dist/cjs/{justifi-apple-pay_8.cjs.entry.js → justifi-apple-pay_7.cjs.entry.js} +253 -899
- package/dist/cjs/justifi-bank-account-billing-form-simple_3.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-details.cjs.entry.js +4 -5
- package/dist/cjs/justifi-business-form.cjs.entry.js +4 -5
- package/dist/cjs/justifi-checkout.cjs.entry.js +15 -14
- package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +9 -10
- package/dist/cjs/justifi-checkouts-list.cjs.entry.js +7 -8
- package/dist/cjs/justifi-dispute-management-core.cjs.entry.js +1 -1
- package/dist/cjs/justifi-dispute-management.cjs.entry.js +5 -6
- package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +8 -9
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +3 -4
- package/dist/cjs/justifi-order-terminals.cjs.entry.js +9 -10
- package/dist/cjs/justifi-owner-form_3.cjs.entry.js +2 -3
- package/dist/cjs/justifi-payment-details.cjs.entry.js +5 -6
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +4 -5
- package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +6 -7
- package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payments-list.cjs.entry.js +6 -7
- package/dist/cjs/justifi-payout-details.cjs.entry.js +5 -6
- package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +6 -7
- package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +7 -8
- package/dist/cjs/justifi-refund-payment.cjs.entry.js +9 -10
- package/dist/cjs/justifi-saved-payment-method.cjs.entry.js +1 -1
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +8 -7
- package/dist/cjs/justifi-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +11 -12
- package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +6 -7
- package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +7 -8
- package/dist/cjs/justifi-terminals-list.cjs.entry.js +7 -8
- package/dist/cjs/justifi-tokenize-payment-method.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{package--UMqvxMQ.js → package-Dptg-P5y.js} +1 -1
- package/dist/cjs/pagination-menu.cjs.entry.js +3 -3
- package/dist/cjs/payment-details-core.cjs.entry.js +10 -11
- package/dist/cjs/payment-method-option.cjs.entry.js +1 -1
- package/dist/cjs/{payment.service-eOZc1Qay.js → payment.service-DXbR13Kq.js} +1 -1
- package/dist/cjs/payments-list-core.cjs.entry.js +2 -3
- package/dist/cjs/payout-details-core.cjs.entry.js +3 -3
- package/dist/cjs/{payout.service-QVl5N-UV.js → payout.service-D0U6kzXJ.js} +1 -1
- package/dist/cjs/payouts-list-core.cjs.entry.js +2 -3
- package/dist/cjs/table-filters-menu.cjs.entry.js +1 -1
- package/dist/cjs/terminal-orders-list-core.cjs.entry.js +3 -4
- package/dist/cjs/{terminal-orders-table-g2fwrh2P.js → terminal-orders-table-BByfBAEK.js} +3 -3
- package/dist/cjs/terminal-quantity-selector.cjs.entry.js +1 -1
- package/dist/cjs/{terminal.service-BuSFyt0j.js → terminal.service-BqXeiERV.js} +1 -1
- package/dist/cjs/terminals-list-core.cjs.entry.js +2 -3
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/api/index.js +0 -2
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/checkout/bank-account-form/bank-account-form.js +2 -2
- package/dist/collection/components/checkout/card-form/card-form.js +2 -2
- package/dist/collection/components/checkout/checkout.js +2 -2
- package/dist/collection/components/checkout/save-new-payment-method.js +1 -1
- package/dist/collection/components/checkout/saved-payment-method.js +1 -1
- package/dist/collection/components/checkouts-list/checkouts-list-core.js +1 -1
- package/dist/collection/components/checkouts-list/checkouts-list-filters.js +1 -1
- package/dist/collection/components/checkouts-list/checkouts-list.js +1 -1
- package/dist/collection/components/dispute-management/dispute-management-core.js +1 -1
- package/dist/collection/components/dispute-management/dispute-management.js +1 -1
- package/dist/collection/components/dispute-management/dispute-notification.js +2 -2
- package/dist/collection/components/dispute-management/dispute-response/additional-statement.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/cancellation-policy.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/customer-details.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/dispute-response-core.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/dispute-response.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/duplicate-charge.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/electronic-evidence.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/product-or-service.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/refund-policy.js +1 -1
- package/dist/collection/components/dispute-management/dispute-response/shipping-details.js +1 -1
- package/dist/collection/components/filters/table-filters-menu.js +1 -1
- package/dist/collection/components/gross-payment-chart/gross-payment-chart-core.js +1 -1
- package/dist/collection/components/modular-checkout/ModularCheckout.js +0 -1
- package/dist/collection/components/modular-checkout/modular-checkout.js +6 -44
- package/dist/collection/components/modular-checkout/sub-components/bank-account-billing-form-simple.js +1 -1
- package/dist/collection/components/modular-checkout/sub-components/bank-account.js +2 -2
- package/dist/collection/components/modular-checkout/sub-components/card-billing-form-simple.js +1 -1
- package/dist/collection/components/modular-checkout/sub-components/card-form.js +2 -2
- package/dist/collection/components/modular-checkout/sub-components/payment-method-option.js +1 -1
- package/dist/collection/components/modular-checkout/sub-components/summary.js +1 -1
- package/dist/collection/components/order-terminals/order-terminals.js +1 -1
- package/dist/collection/components/order-terminals/terminal-quantity-selector/terminal-quantity-selector.js +1 -1
- package/dist/collection/components/payment-details/payment-details-core.js +8 -8
- package/dist/collection/components/payment-transactions-list/payment-transactions-list.js +1 -1
- package/dist/collection/components/payments-list/payments-list-core.js +1 -1
- package/dist/collection/components/payments-list/payments-list-filters.js +2 -2
- package/dist/collection/components/payments-list/payments-list.js +1 -1
- package/dist/collection/components/payout-details/payout-details-core.js +3 -3
- package/dist/collection/components/payout-transactions-list/payout-transactions-list.js +1 -1
- package/dist/collection/components/payouts-list/payouts-list-core.js +1 -1
- package/dist/collection/components/payouts-list/payouts-list-filters.js +2 -2
- package/dist/collection/components/payouts-list/payouts-list.js +1 -1
- package/dist/collection/components/terminal-orders-list/terminal-orders-list-core.js +1 -1
- package/dist/collection/components/terminal-orders-list/terminal-orders-list-filters.js +2 -2
- package/dist/collection/components/terminal-orders-list/terminal-orders-list.js +1 -1
- package/dist/collection/components/terminals-list/terminals-list-core.js +1 -1
- package/dist/collection/components/terminals-list/terminals-list-filters.js +1 -1
- package/dist/collection/components/terminals-list/terminals-list.js +1 -1
- package/dist/collection/components/tokenize-payment-method/internal-tokenize-payment-method.js +1 -1
- package/dist/collection/components/tokenize-payment-method/tokenize-payment-method.js +1 -1
- package/dist/collection/store/checkout.store.js +0 -4
- package/dist/collection/ui-components/custom-popper/custom-popper.js +2 -2
- package/dist/collection/ui-components/form/form-control-checkbox.js +2 -2
- package/dist/collection/ui-components/form/form-control-date.js +2 -2
- package/dist/collection/ui-components/form/form-control-file-v2.js +1 -1
- package/dist/collection/ui-components/form/form-control-file.js +2 -2
- package/dist/collection/ui-components/form/form-control-monetary.js +2 -2
- package/dist/collection/ui-components/form/form-control-number-masked.js +2 -2
- package/dist/collection/ui-components/form/form-control-number.js +2 -2
- package/dist/collection/ui-components/form/form-control-radio.js +2 -2
- package/dist/collection/ui-components/form/form-control-select.js +2 -2
- package/dist/collection/ui-components/form/form-control-text.js +2 -2
- package/dist/collection/ui-components/form/form-control-textarea.js +2 -2
- package/dist/collection/ui-components/form/hidden-input.js +1 -1
- package/dist/collection/ui-components/form/iframe-input.js +3 -3
- package/dist/collection/ui-components/pagination-menu/pagination-menu.js +3 -3
- package/dist/collection/ui-components/shadow-dom-components/justifi-button.js +1 -1
- package/dist/collection/ui-components/shadow-dom-components/justifi-header.js +1 -1
- package/dist/collection/ui-components/shadow-dom-components/justifi-skeleton.js +1 -1
- package/dist/docs.json +3 -540
- package/dist/esm/{GooglePay-9bPcqGZ9.js → Refund-BugCdfRo.js} +1 -405
- package/dist/esm/bank-account-document-form-inputs_6.entry.js +3 -4
- package/dist/esm/bank-account-form.entry.js +2 -2
- package/dist/esm/{business.service-2j91Emgq.js → business.service-pWcc3kfX.js} +1 -1
- package/dist/esm/card-form.entry.js +2 -2
- package/dist/esm/{check-pkg-version-2BU_KPHv.js → check-pkg-version-D6a-vvrO.js} +2 -2
- package/dist/esm/{checkout.service-D-dEMyXF.js → checkout.service-B4xSV2-X.js} +1 -1
- package/dist/esm/checkout.store-CaS_htQd.js +101 -0
- package/dist/esm/checkouts-list-core.entry.js +2 -3
- package/dist/esm/custom-popper.entry.js +2 -2
- package/dist/esm/{dispute.service-DPumDIuV.js → dispute.service-3Kbbh1J9.js} +1 -1
- package/dist/esm/form-control-checkbox.entry.js +2 -2
- package/dist/esm/form-control-date.entry.js +2 -2
- package/dist/esm/form-control-file-v2_2.entry.js +3 -3
- package/dist/esm/form-control-monetary.entry.js +2 -2
- package/dist/esm/form-control-number-masked_3.entry.js +2 -2
- package/dist/esm/form-control-number.entry.js +2 -2
- package/dist/esm/form-control-radio.entry.js +2 -2
- package/dist/esm/form-control-select_3.entry.js +4 -4
- package/dist/esm/{get-payment-details-CD_K6FQ3.js → get-payment-details-CakzKvOr.js} +1 -1
- package/dist/esm/{get-subaccounts-D1eF6c0B.js → get-subaccounts-Cw1Adtmo.js} +1 -1
- package/dist/esm/gross-payment-chart-core.entry.js +1 -1
- package/dist/esm/hidden-input_2.entry.js +5 -5
- package/dist/esm/{index-DkoufM1t.js → index-DCIW8z1f.js} +0 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/internal-tokenize-payment-method_7.entry.js +12 -11
- package/dist/esm/justifi-additional-questions-form-step-core_6.entry.js +1 -2
- package/dist/esm/justifi-additional-questions-form-step_9.entry.js +2 -3
- package/dist/esm/justifi-additional-statement_8.entry.js +8 -8
- package/dist/esm/{justifi-apple-pay_8.entry.js → justifi-apple-pay_7.entry.js} +137 -782
- package/dist/esm/justifi-bank-account-billing-form-simple_3.entry.js +2 -2
- package/dist/esm/justifi-business-details.entry.js +4 -5
- package/dist/esm/justifi-business-form.entry.js +4 -5
- package/dist/esm/justifi-checkout.entry.js +8 -7
- package/dist/esm/justifi-checkouts-list-filters.entry.js +2 -3
- package/dist/esm/justifi-checkouts-list.entry.js +6 -7
- package/dist/esm/justifi-dispute-management-core.entry.js +1 -1
- package/dist/esm/justifi-dispute-management.entry.js +5 -6
- package/dist/esm/justifi-dispute-notification_3.entry.js +8 -9
- package/dist/esm/justifi-gross-payment-chart.entry.js +3 -4
- package/dist/esm/justifi-order-terminals.entry.js +6 -7
- package/dist/esm/justifi-owner-form_3.entry.js +2 -3
- package/dist/esm/justifi-payment-details.entry.js +5 -6
- package/dist/esm/justifi-payment-provisioning.entry.js +4 -5
- package/dist/esm/justifi-payment-transactions-list.entry.js +5 -6
- package/dist/esm/justifi-payments-list-filters.entry.js +2 -2
- package/dist/esm/justifi-payments-list.entry.js +5 -6
- package/dist/esm/justifi-payout-details.entry.js +4 -5
- package/dist/esm/justifi-payout-transactions-list.entry.js +5 -6
- package/dist/esm/justifi-payouts-list-filters.entry.js +2 -2
- package/dist/esm/justifi-payouts-list.entry.js +6 -7
- package/dist/esm/justifi-refund-payment.entry.js +5 -6
- package/dist/esm/justifi-saved-payment-method.entry.js +1 -1
- package/dist/esm/justifi-season-interruption-insurance.entry.js +5 -4
- package/dist/esm/justifi-skeleton.entry.js +1 -1
- package/dist/esm/justifi-terminal-orders-list-filters.entry.js +3 -4
- package/dist/esm/justifi-terminal-orders-list.entry.js +5 -6
- package/dist/esm/justifi-terminals-list-filters.entry.js +2 -3
- package/dist/esm/justifi-terminals-list.entry.js +6 -7
- package/dist/esm/justifi-tokenize-payment-method.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{package-Bx3wyDU2.js → package-czPIvHxt.js} +1 -1
- package/dist/esm/pagination-menu.entry.js +3 -3
- package/dist/esm/payment-details-core.entry.js +9 -10
- package/dist/esm/payment-method-option.entry.js +1 -1
- package/dist/esm/{payment.service-BreQSu6J.js → payment.service-nExZY_sU.js} +1 -1
- package/dist/esm/payments-list-core.entry.js +2 -3
- package/dist/esm/payout-details-core.entry.js +3 -3
- package/dist/esm/{payout.service-DuqRe6oq.js → payout.service-B9-JQqU6.js} +1 -1
- package/dist/esm/payouts-list-core.entry.js +2 -3
- package/dist/esm/table-filters-menu.entry.js +1 -1
- package/dist/esm/terminal-orders-list-core.entry.js +3 -4
- package/dist/esm/{terminal-orders-table-DSo5x2D7.js → terminal-orders-table-DsrpmD9F.js} +1 -1
- package/dist/esm/terminal-quantity-selector.entry.js +1 -1
- package/dist/esm/{terminal.service-CkzrYIA_.js → terminal.service-DvFiKAKV.js} +1 -1
- package/dist/esm/terminals-list-core.entry.js +2 -3
- package/dist/esm/webcomponents.js +1 -1
- package/dist/module/Analytics.js +0 -2
- package/dist/module/ModularCheckout.js +0 -1
- package/dist/module/additional-statement.js +1 -1
- package/dist/module/apple-pay.js +120 -1
- package/dist/module/bank-account-billing-form-simple.js +1 -1
- package/dist/module/bank-account-document-inputs.js +0 -2
- package/dist/module/bank-account-form.js +2 -2
- package/dist/module/bank-account.js +2 -2
- package/dist/module/business-bank-account-form-step-core.js +0 -2
- package/dist/module/business-bank-account-form-step.js +0 -2
- package/dist/module/business-terms-conditions-form-step.js +0 -2
- package/dist/module/business.service.js +0 -2
- package/dist/module/cancellation-policy.js +1 -1
- package/dist/module/card-billing-form-simple.js +1 -1
- package/dist/module/card-form.js +2 -2
- package/dist/module/card-form2.js +2 -2
- package/dist/module/checkout.service.js +0 -2
- package/dist/module/checkout.store.js +0 -4
- package/dist/module/checkouts-list-core2.js +1 -3
- package/dist/module/custom-popper2.js +2 -2
- package/dist/module/customer-details.js +1 -1
- package/dist/module/dispute-management-core.js +1 -1
- package/dist/module/dispute-notification.js +2 -2
- package/dist/module/dispute-response-actions.js +0 -2
- package/dist/module/dispute-response-core.js +1 -1
- package/dist/module/dispute-response.js +1 -1
- package/dist/module/duplicate-charge.js +1 -1
- package/dist/module/electronic-evidence.js +1 -1
- package/dist/module/form-control-checkbox2.js +2 -2
- package/dist/module/form-control-date2.js +2 -2
- package/dist/module/form-control-file-v22.js +1 -1
- package/dist/module/form-control-file2.js +2 -2
- package/dist/module/form-control-monetary2.js +2 -2
- package/dist/module/form-control-number-masked2.js +2 -2
- package/dist/module/form-control-number.js +2 -2
- package/dist/module/form-control-radio2.js +2 -2
- package/dist/module/form-control-select2.js +2 -2
- package/dist/module/form-control-text2.js +2 -2
- package/dist/module/form-control-textarea2.js +2 -2
- package/dist/module/get-payment-details.js +0 -2
- package/dist/module/get-subaccounts.js +0 -2
- package/dist/module/gross-payment-chart-core2.js +1 -1
- package/dist/module/hidden-input2.js +1 -1
- package/dist/module/iframe-input2.js +3 -3
- package/dist/module/internal-tokenize-payment-method2.js +1 -3
- package/dist/module/justifi-business-form.js +0 -2
- package/dist/module/justifi-button2.js +1 -1
- package/dist/module/justifi-checkout.js +40 -46
- package/dist/module/justifi-checkouts-list-filters.js +1 -3
- package/dist/module/justifi-checkouts-list.js +1 -3
- package/dist/module/justifi-dispute-management.js +1 -1
- package/dist/module/justifi-gross-payment-chart.js +0 -2
- package/dist/module/justifi-header2.js +1 -1
- package/dist/module/justifi-order-terminals.js +1 -3
- package/dist/module/justifi-payment-provisioning.js +0 -2
- package/dist/module/justifi-payment-transactions-list.js +1 -3
- package/dist/module/justifi-payments-list-filters.js +2 -2
- package/dist/module/justifi-payments-list.js +1 -3
- package/dist/module/justifi-payout-details.js +0 -2
- package/dist/module/justifi-payout-transactions-list.js +1 -3
- package/dist/module/justifi-payouts-list-filters.js +2 -2
- package/dist/module/justifi-payouts-list.js +1 -3
- package/dist/module/justifi-refund-payment.js +0 -2
- package/dist/module/justifi-saved-payment-method.js +1 -1
- package/dist/module/justifi-season-interruption-insurance.js +0 -2
- package/dist/module/justifi-skeleton.js +1 -1
- package/dist/module/justifi-terminal-orders-list-filters.js +2 -4
- package/dist/module/justifi-terminal-orders-list.js +1 -3
- package/dist/module/justifi-terminals-list-filters.js +1 -3
- package/dist/module/justifi-terminals-list.js +1 -3
- package/dist/module/justifi-tokenize-payment-method.js +1 -1
- package/dist/module/modular-checkout.js +6 -46
- package/dist/module/package.js +1 -1
- package/dist/module/pagination-menu2.js +3 -3
- package/dist/module/payment-details-core2.js +8 -10
- package/dist/module/payment-method-option.js +1 -1
- package/dist/module/payment.service.js +0 -2
- package/dist/module/payments-list-core2.js +1 -3
- package/dist/module/payout-details-core2.js +3 -3
- package/dist/module/payout.service.js +0 -2
- package/dist/module/payouts-list-core2.js +1 -3
- package/dist/module/plaid.service.js +0 -2
- package/dist/module/product-or-service.js +1 -1
- package/dist/module/refund-policy.js +1 -1
- package/dist/module/save-new-payment-method.js +1 -1
- package/dist/module/shipping-details.js +1 -1
- package/dist/module/summary.js +1 -1
- package/dist/module/table-filters-menu2.js +1 -1
- package/dist/module/terminal-orders-list-core2.js +1 -3
- package/dist/module/terminal-quantity-selector2.js +1 -1
- package/dist/module/terminal.service.js +0 -2
- package/dist/module/terminals-list-core2.js +1 -3
- package/dist/types/api/Checkout.d.ts +0 -2
- package/dist/types/api/index.d.ts +0 -2
- package/dist/types/components/checkout/checkout.d.ts +0 -1
- package/dist/types/components/modular-checkout/ModularCheckout.d.ts +1 -2
- package/dist/types/components/modular-checkout/modular-checkout.d.ts +0 -5
- package/dist/types/components.d.ts +0 -140
- package/dist/types/store/checkout.store.d.ts +0 -1
- package/dist/webcomponents/index.esm.js +1 -1
- package/dist/webcomponents/{p-a22d1078.entry.js → p-0082f428.entry.js} +1 -1
- package/dist/webcomponents/p-0b760c4f.entry.js +1 -0
- package/dist/webcomponents/{p-19dabeab.entry.js → p-1193a1ac.entry.js} +1 -1
- package/dist/webcomponents/p-159d8ae7.entry.js +1 -0
- package/dist/webcomponents/{p-86111a0a.entry.js → p-1edec396.entry.js} +1 -1
- package/dist/webcomponents/p-21c060ce.entry.js +1 -0
- package/dist/webcomponents/p-26e95adb.entry.js +1 -0
- package/dist/webcomponents/p-2bd821a8.entry.js +1 -0
- package/dist/webcomponents/p-306c7c33.entry.js +1 -0
- package/dist/webcomponents/p-30f61f44.entry.js +1 -0
- package/dist/webcomponents/p-34aa9298.entry.js +1 -0
- package/dist/webcomponents/p-38ff97ea.entry.js +1 -0
- package/dist/webcomponents/p-3aaedf9d.entry.js +1 -0
- package/dist/webcomponents/p-3c38cec5.entry.js +1 -0
- package/dist/webcomponents/p-3c40eefe.entry.js +1 -0
- package/dist/webcomponents/p-44a94dac.entry.js +1 -0
- package/dist/webcomponents/p-4dcbc0af.entry.js +1 -0
- package/dist/webcomponents/{p-f2650bfc.entry.js → p-4e23116c.entry.js} +1 -1
- package/dist/webcomponents/p-50a4d4c4.entry.js +1 -0
- package/dist/webcomponents/{p-3bacf834.entry.js → p-58ae4f9e.entry.js} +1 -1
- package/dist/webcomponents/p-5981869a.entry.js +1 -0
- package/dist/webcomponents/p-5c8c88c6.entry.js +1 -0
- package/dist/webcomponents/p-614b0adc.entry.js +1 -0
- package/dist/webcomponents/p-7081eb35.entry.js +1 -0
- package/dist/webcomponents/p-7218c312.entry.js +1 -0
- package/dist/webcomponents/p-75f3161c.entry.js +1 -0
- package/dist/webcomponents/p-7661c41a.entry.js +1 -0
- package/dist/webcomponents/p-77b76007.entry.js +1 -0
- package/dist/webcomponents/p-77bd4fb0.entry.js +1 -0
- package/dist/webcomponents/p-92a43706.entry.js +1 -0
- package/dist/webcomponents/p-98b8028e.entry.js +1 -0
- package/dist/webcomponents/p-9d67209d.entry.js +1 -0
- package/dist/webcomponents/p-9ef4288b.entry.js +1 -0
- package/dist/webcomponents/{p-CVhnuewz.js → p-B4ZUYyNh.js} +1 -1
- package/dist/webcomponents/{p-Dy5btfGV.js → p-BCPutgAi.js} +1 -1
- package/dist/webcomponents/p-BojLBYsY.js +1 -0
- package/dist/webcomponents/p-BpaE8q5f.js +1 -0
- package/dist/webcomponents/{p-t8p0WAW4.js → p-C8QOezo8.js} +1 -1
- package/dist/webcomponents/{p-C01zp4xw.js → p-CApezhx9.js} +1 -1
- package/dist/webcomponents/{p-BVwVhXcQ.js → p-CFevTCAJ.js} +1 -1
- package/dist/webcomponents/{p-BKM7YeAB.js → p-CPtsjcdm.js} +1 -1
- package/dist/webcomponents/p-Ch9cTPyq.js +1 -0
- package/dist/webcomponents/p-DCIW8z1f.js +1 -0
- package/dist/webcomponents/p-DU8dqq9U.js +1 -0
- package/dist/webcomponents/{p-Cmb6PRFh.js → p-D_IJC4HG.js} +1 -1
- package/dist/webcomponents/p-MQxr_LMC.js +1 -0
- package/dist/webcomponents/p-a54b8901.entry.js +1 -0
- package/dist/webcomponents/p-a655b996.entry.js +1 -0
- package/dist/webcomponents/p-a7f8cacb.entry.js +1 -0
- package/dist/webcomponents/p-aec7a3c8.entry.js +1 -0
- package/dist/webcomponents/{p-03c8c754.entry.js → p-aec9185f.entry.js} +1 -1
- package/dist/webcomponents/{p-4e71de94.entry.js → p-af48a6bb.entry.js} +1 -1
- package/dist/webcomponents/p-b24a2971.entry.js +1 -0
- package/dist/webcomponents/p-bf8cf72d.entry.js +1 -0
- package/dist/webcomponents/p-c3b71a1f.entry.js +1 -0
- package/dist/webcomponents/p-c9b50493.entry.js +1 -0
- package/dist/webcomponents/{p-f528da70.entry.js → p-cd10cd05.entry.js} +1 -1
- package/dist/webcomponents/p-czPIvHxt.js +1 -0
- package/dist/webcomponents/p-d39598e4.entry.js +1 -0
- package/dist/webcomponents/p-d7a06b34.entry.js +1 -0
- package/dist/webcomponents/p-db17bc59.entry.js +1 -0
- package/dist/webcomponents/p-dc0d3484.entry.js +1 -0
- package/dist/webcomponents/p-deda2e9d.entry.js +1 -0
- package/dist/webcomponents/p-e00fb7b1.entry.js +1 -0
- package/dist/webcomponents/p-e07bf523.entry.js +1 -0
- package/dist/webcomponents/p-eb56ba9b.entry.js +1 -0
- package/dist/webcomponents/{p-e7e5fee9.entry.js → p-ed55d333.entry.js} +1 -1
- package/dist/webcomponents/p-edcb84bf.entry.js +1 -0
- package/dist/webcomponents/{p-aaed4997.entry.js → p-f0957fca.entry.js} +1 -1
- package/dist/webcomponents/p-f0fc86ce.entry.js +1 -0
- package/dist/webcomponents/p-f223fabb.entry.js +1 -0
- package/dist/webcomponents/p-f26db2e6.entry.js +1 -0
- package/dist/webcomponents/{p-b8426810.entry.js → p-f6ec50c9.entry.js} +1 -1
- package/dist/webcomponents/p-fab28b02.entry.js +1 -0
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/docs/.eslintrc.cjs +17 -0
- package/docs/changelog/index.mdx +17 -0
- package/docs/entities/businessdetails/index.mdx +155 -0
- package/docs/entities/businessform/index.mdx +242 -0
- package/docs/entities/index.mdx +19 -0
- package/docs/entities/payment-provisioning/index.mdx +131 -0
- package/docs/frameworks/angular/index.mdx +112 -0
- package/docs/frameworks/index.mdx +18 -0
- package/docs/frameworks/react/index.mdx +125 -0
- package/docs/frameworks/vue/index.mdx +102 -0
- package/docs/helpers/PartsTable.ts +55 -0
- package/docs/helpers/PropsTable.ts +63 -0
- package/docs/helpers/index.ts +3 -0
- package/docs/helpers/version.ts +32 -0
- package/docs/introduction/index.mdx +125 -0
- package/docs/merchant-tools/checkouts-list/index.mdx +107 -0
- package/docs/merchant-tools/gross-payments-chart/index.mdx +81 -0
- package/docs/merchant-tools/index.mdx +25 -0
- package/docs/merchant-tools/order-terminals/index.mdx +84 -0
- package/docs/merchant-tools/payment-details/index.mdx +131 -0
- package/docs/merchant-tools/payment-transactions-list/index.mdx +85 -0
- package/docs/merchant-tools/payments-list/index.mdx +111 -0
- package/docs/merchant-tools/payout-details/index.mdx +90 -0
- package/docs/merchant-tools/payout-transactions-list/index.mdx +84 -0
- package/docs/merchant-tools/payouts-list/index.mdx +94 -0
- package/docs/merchant-tools/terminal-orders-list/index.mdx +85 -0
- package/docs/merchant-tools/terminals-list/index.mdx +93 -0
- package/docs/modular-checkout/complete-examples/index.mdx +20 -0
- package/docs/modular-checkout/docs/index.mdx +32 -0
- package/docs/modular-checkout/example/index.mdx +25 -0
- package/docs/modular-checkout/index.mdx +25 -0
- package/docs/modular-checkout/introduction/index.mdx +100 -0
- package/docs/modular-checkout/sub-components/apple-pay.mdx +97 -0
- package/docs/modular-checkout/sub-components/bank-account-form.mdx +163 -0
- package/docs/modular-checkout/sub-components/card-form.mdx +178 -0
- package/docs/modular-checkout/sub-components/index.mdx +23 -0
- package/docs/modular-checkout/sub-components/payment-method-options.mdx +85 -0
- package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +176 -0
- package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +178 -0
- package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +220 -0
- package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +184 -0
- package/docs/modular-checkout/sub-components/summary.mdx +108 -0
- package/docs/payment-facilitation/dispute-management/index.mdx +98 -0
- package/docs/payment-facilitation/index.mdx +21 -0
- package/docs/payment-facilitation/refund-payment/index.mdx +230 -0
- package/docs/payment-facilitation/tokenize-payment-method/index.mdx +362 -0
- package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +164 -0
- package/package.json +21 -6
- package/dist/collection/api/GooglePay.js +0 -181
- package/dist/collection/api/services/google-pay.service.js +0 -240
- package/dist/collection/components/modular-checkout/sub-components/google-pay-skeleton.js +0 -10
- package/dist/collection/components/modular-checkout/sub-components/google-pay.js +0 -609
- package/dist/collection/ui-components/google-pay-button.js +0 -251
- package/dist/module/ApplePay.js +0 -121
- package/dist/module/GooglePay.js +0 -184
- package/dist/module/google-pay.js +0 -781
- package/dist/module/justifi-google-pay.d.ts +0 -11
- package/dist/module/justifi-google-pay.js +0 -6
- package/dist/types/api/GooglePay.d.ts +0 -271
- package/dist/types/api/services/google-pay.service.d.ts +0 -60
- package/dist/types/components/modular-checkout/sub-components/google-pay-skeleton.d.ts +0 -6
- package/dist/types/components/modular-checkout/sub-components/google-pay.d.ts +0 -59
- package/dist/types/ui-components/google-pay-button.d.ts +0 -18
- package/dist/webcomponents/p-03930216.entry.js +0 -1
- package/dist/webcomponents/p-0412f491.entry.js +0 -1
- package/dist/webcomponents/p-04154136.entry.js +0 -1
- package/dist/webcomponents/p-06ce1202.entry.js +0 -1
- package/dist/webcomponents/p-0772719b.entry.js +0 -1
- package/dist/webcomponents/p-0cd1c683.entry.js +0 -1
- package/dist/webcomponents/p-136b29e3.entry.js +0 -1
- package/dist/webcomponents/p-13bdb5ed.entry.js +0 -1
- package/dist/webcomponents/p-16812327.entry.js +0 -1
- package/dist/webcomponents/p-1d04bd7a.entry.js +0 -1
- package/dist/webcomponents/p-1f196690.entry.js +0 -1
- package/dist/webcomponents/p-270bf699.entry.js +0 -1
- package/dist/webcomponents/p-2da4e6ca.entry.js +0 -1
- package/dist/webcomponents/p-2eb123a3.entry.js +0 -1
- package/dist/webcomponents/p-38e1ef4b.entry.js +0 -1
- package/dist/webcomponents/p-3ae12b98.entry.js +0 -1
- package/dist/webcomponents/p-3c006a15.entry.js +0 -1
- package/dist/webcomponents/p-404b3f02.entry.js +0 -1
- package/dist/webcomponents/p-42658888.entry.js +0 -1
- package/dist/webcomponents/p-43390a7f.entry.js +0 -1
- package/dist/webcomponents/p-47f6d271.entry.js +0 -1
- package/dist/webcomponents/p-4f102cfd.entry.js +0 -1
- package/dist/webcomponents/p-5cba8448.entry.js +0 -1
- package/dist/webcomponents/p-7b610d9e.entry.js +0 -1
- package/dist/webcomponents/p-7bf6ded7.entry.js +0 -1
- package/dist/webcomponents/p-7dbd0618.entry.js +0 -1
- package/dist/webcomponents/p-88f58abe.entry.js +0 -1
- package/dist/webcomponents/p-8f4adcfd.entry.js +0 -1
- package/dist/webcomponents/p-9065d67e.entry.js +0 -1
- package/dist/webcomponents/p-914b590d.entry.js +0 -1
- package/dist/webcomponents/p-9370cf0d.entry.js +0 -1
- package/dist/webcomponents/p-9a795f44.entry.js +0 -1
- package/dist/webcomponents/p-BN1PYSFf.js +0 -1
- package/dist/webcomponents/p-BRbk6oSh.js +0 -1
- package/dist/webcomponents/p-Bx3wyDU2.js +0 -1
- package/dist/webcomponents/p-BxtmTjqW.js +0 -1
- package/dist/webcomponents/p-CQrwlULd.js +0 -1
- package/dist/webcomponents/p-DkoufM1t.js +0 -1
- package/dist/webcomponents/p-a020c889.entry.js +0 -1
- package/dist/webcomponents/p-a0c9f0bd.entry.js +0 -1
- package/dist/webcomponents/p-a6e816f6.entry.js +0 -1
- package/dist/webcomponents/p-a87187c3.entry.js +0 -1
- package/dist/webcomponents/p-a9f75a9e.entry.js +0 -1
- package/dist/webcomponents/p-ad9307c1.entry.js +0 -1
- package/dist/webcomponents/p-b3f8d5d4.entry.js +0 -1
- package/dist/webcomponents/p-ba0762f9.entry.js +0 -1
- package/dist/webcomponents/p-c41191e7.entry.js +0 -1
- package/dist/webcomponents/p-c621e7af.entry.js +0 -1
- package/dist/webcomponents/p-c63b0271.entry.js +0 -1
- package/dist/webcomponents/p-c88babbe.entry.js +0 -1
- package/dist/webcomponents/p-d2935214.entry.js +0 -1
- package/dist/webcomponents/p-d88d228f.entry.js +0 -1
- package/dist/webcomponents/p-e9d13cca.entry.js +0 -1
- package/dist/webcomponents/p-ee122560.entry.js +0 -1
- package/dist/webcomponents/p-f4cb581f.entry.js +0 -1
|
@@ -2,28 +2,149 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-BhI7cJcE.js');
|
|
4
4
|
var Api = require('./Api-BeSnjEuW.js');
|
|
5
|
-
var GooglePay$1 = require('./GooglePay-HXBAmTgL.js');
|
|
6
5
|
var styledHost = require('./styled-host-D5g7INLE.js');
|
|
7
6
|
require('./event-types-YOY5TKUN.js');
|
|
8
7
|
var skeleton = require('./skeleton-BF3HGL9X.js');
|
|
8
|
+
var checkout_store = require('./checkout.store-BA6h-dp2.js');
|
|
9
9
|
var parts = require('./parts-Pb06tUMp.js');
|
|
10
10
|
var utils = require('./utils-Bab-tddY.js');
|
|
11
|
-
var index$1 = require('./index-CajjbB9t.js');
|
|
12
11
|
var header1 = require('./header-1-CBO8uDuZ.js');
|
|
13
12
|
var insuranceState = require('./insurance-state-BMHITXoD.js');
|
|
14
13
|
var header3 = require('./header-3-CPWtI1t0.js');
|
|
15
|
-
var checkPkgVersion = require('./check-pkg-version-
|
|
14
|
+
var checkPkgVersion = require('./check-pkg-version-Bj0XkWnL.js');
|
|
16
15
|
require('./config-state-CYoBVAca.js');
|
|
17
16
|
require('./dinero-BwNN_k7x.js');
|
|
18
17
|
var ComponentError = require('./ComponentError-D4OLnOkg.js');
|
|
18
|
+
var Refund = require('./Refund-Blquw3jZ.js');
|
|
19
19
|
require('./Pagination-Dediz133.js');
|
|
20
20
|
require('./Business-DWHy_-z9.js');
|
|
21
21
|
require('./Dispute-CruQTF6_.js');
|
|
22
22
|
var utils$1 = require('./utils-DvUQQLmR.js');
|
|
23
|
-
var checkout_service = require('./checkout.service-
|
|
23
|
+
var checkout_service = require('./checkout.service-BEU6CI0t.js');
|
|
24
|
+
var index$1 = require('./index-C2ITzalN.js');
|
|
24
25
|
var paymentMethodOptionUtils = require('./payment-method-option-utils-WYHIHy-l.js');
|
|
25
26
|
require('./index-mmd0OhmD.js');
|
|
26
|
-
require('./package
|
|
27
|
+
require('./package-Dptg-P5y.js');
|
|
28
|
+
|
|
29
|
+
var ApplePaySessionStatus;
|
|
30
|
+
(function (ApplePaySessionStatus) {
|
|
31
|
+
ApplePaySessionStatus["STATUS_SUCCESS"] = "STATUS_SUCCESS";
|
|
32
|
+
ApplePaySessionStatus["STATUS_FAILURE"] = "STATUS_FAILURE";
|
|
33
|
+
})(ApplePaySessionStatus || (ApplePaySessionStatus = {}));
|
|
34
|
+
var ApplePayButtonType;
|
|
35
|
+
(function (ApplePayButtonType) {
|
|
36
|
+
ApplePayButtonType["PLAIN"] = "plain";
|
|
37
|
+
ApplePayButtonType["BUY"] = "buy";
|
|
38
|
+
ApplePayButtonType["SET_UP"] = "set-up";
|
|
39
|
+
ApplePayButtonType["DONATE"] = "donate";
|
|
40
|
+
ApplePayButtonType["CHECK_OUT"] = "check-out";
|
|
41
|
+
ApplePayButtonType["BOOK"] = "book";
|
|
42
|
+
ApplePayButtonType["SUBSCRIBE"] = "subscribe";
|
|
43
|
+
})(ApplePayButtonType || (ApplePayButtonType = {}));
|
|
44
|
+
var ApplePayButtonStyle;
|
|
45
|
+
(function (ApplePayButtonStyle) {
|
|
46
|
+
ApplePayButtonStyle["BLACK"] = "black";
|
|
47
|
+
ApplePayButtonStyle["WHITE"] = "white";
|
|
48
|
+
ApplePayButtonStyle["WHITE_OUTLINE"] = "white-outline";
|
|
49
|
+
})(ApplePayButtonStyle || (ApplePayButtonStyle = {}));
|
|
50
|
+
var ApplePayMerchantCapability;
|
|
51
|
+
(function (ApplePayMerchantCapability) {
|
|
52
|
+
ApplePayMerchantCapability["SUPPORTS_3DS"] = "supports3DS";
|
|
53
|
+
ApplePayMerchantCapability["SUPPORTS_EMV"] = "supportsEMV";
|
|
54
|
+
ApplePayMerchantCapability["SUPPORTS_CREDIT"] = "supportsCredit";
|
|
55
|
+
ApplePayMerchantCapability["SUPPORTS_DEBIT"] = "supportsDebit";
|
|
56
|
+
})(ApplePayMerchantCapability || (ApplePayMerchantCapability = {}));
|
|
57
|
+
class ApplePayConfig {
|
|
58
|
+
constructor(data) {
|
|
59
|
+
this.merchantIdentifier = data.merchantIdentifier;
|
|
60
|
+
this.displayName = data.displayName;
|
|
61
|
+
this.initiative = data.initiative;
|
|
62
|
+
this.initiativeContext = data.initiativeContext;
|
|
63
|
+
this.buttonType = data.buttonType || ApplePayButtonType.PLAIN;
|
|
64
|
+
this.buttonStyle = data.buttonStyle || ApplePayButtonStyle.BLACK;
|
|
65
|
+
this.buttonLocale = data.buttonLocale || 'en-US';
|
|
66
|
+
}
|
|
67
|
+
get isValid() {
|
|
68
|
+
return !!(this.merchantIdentifier &&
|
|
69
|
+
this.displayName &&
|
|
70
|
+
this.initiative &&
|
|
71
|
+
this.initiativeContext);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class ApplePayPaymentRequest {
|
|
75
|
+
constructor(data) {
|
|
76
|
+
this.countryCode = data.countryCode;
|
|
77
|
+
this.currencyCode = data.currencyCode;
|
|
78
|
+
this.merchantCapabilities = data.merchantCapabilities;
|
|
79
|
+
this.supportedNetworks = data.supportedNetworks;
|
|
80
|
+
this.total = data.total;
|
|
81
|
+
this.lineItems = data.lineItems;
|
|
82
|
+
this.shippingMethods = data.shippingMethods;
|
|
83
|
+
this.applicationData = data.applicationData;
|
|
84
|
+
this.supportedCountries = data.supportedCountries;
|
|
85
|
+
}
|
|
86
|
+
get isValid() {
|
|
87
|
+
var _a, _b, _c, _d;
|
|
88
|
+
return !!(this.countryCode &&
|
|
89
|
+
this.currencyCode &&
|
|
90
|
+
((_a = this.merchantCapabilities) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
91
|
+
((_b = this.supportedNetworks) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
92
|
+
((_c = this.total) === null || _c === void 0 ? void 0 : _c.label) &&
|
|
93
|
+
((_d = this.total) === null || _d === void 0 ? void 0 : _d.amount));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
class ApplePayHelpers {
|
|
97
|
+
static isApplePaySupported() {
|
|
98
|
+
var _a;
|
|
99
|
+
return (typeof window !== 'undefined' &&
|
|
100
|
+
'ApplePaySession' in window &&
|
|
101
|
+
((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.supportsVersion(3)));
|
|
102
|
+
}
|
|
103
|
+
static canMakePayments() {
|
|
104
|
+
var _a;
|
|
105
|
+
if (!this.isApplePaySupported()) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return ((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.canMakePayments()) || false;
|
|
109
|
+
}
|
|
110
|
+
static async canMakePaymentsWithActiveCard(merchantIdentifier) {
|
|
111
|
+
var _a;
|
|
112
|
+
if (!this.isApplePaySupported()) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
return ((await ((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.canMakePaymentsWithActiveCard(merchantIdentifier))) || false);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error('Error checking Apple Pay active card:', error);
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
static formatAmount(amount) {
|
|
124
|
+
return (amount / 100).toFixed(2);
|
|
125
|
+
}
|
|
126
|
+
static parseAmount(amount) {
|
|
127
|
+
return Math.round(parseFloat(amount) * 100);
|
|
128
|
+
}
|
|
129
|
+
static createLineItem(label, amount, type = 'final') {
|
|
130
|
+
return {
|
|
131
|
+
label,
|
|
132
|
+
amount: this.formatAmount(amount),
|
|
133
|
+
type,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
static getDefaultSupportedNetworks() {
|
|
137
|
+
return ['amex', 'discover', 'masterCard', 'visa'];
|
|
138
|
+
}
|
|
139
|
+
static getDefaultMerchantCapabilities() {
|
|
140
|
+
return [
|
|
141
|
+
ApplePayMerchantCapability.SUPPORTS_3DS,
|
|
142
|
+
ApplePayMerchantCapability.SUPPORTS_EMV,
|
|
143
|
+
ApplePayMerchantCapability.SUPPORTS_CREDIT,
|
|
144
|
+
ApplePayMerchantCapability.SUPPORTS_DEBIT,
|
|
145
|
+
];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
27
148
|
|
|
28
149
|
// Centralized error codes for Apple Pay service
|
|
29
150
|
var ApplePayServiceErrorCode;
|
|
@@ -42,7 +163,7 @@ class ApplePayService {
|
|
|
42
163
|
* Initialize Apple Pay configuration
|
|
43
164
|
*/
|
|
44
165
|
initialize(applePayConfig) {
|
|
45
|
-
this.applePayConfig = new
|
|
166
|
+
this.applePayConfig = new ApplePayConfig(applePayConfig);
|
|
46
167
|
if (!this.applePayConfig.isValid) {
|
|
47
168
|
throw new Error('Invalid Apple Pay configuration provided');
|
|
48
169
|
}
|
|
@@ -93,7 +214,7 @@ class ApplePayService {
|
|
|
93
214
|
* Check if Apple Pay is available on this device/browser
|
|
94
215
|
*/
|
|
95
216
|
isAvailable() {
|
|
96
|
-
return (
|
|
217
|
+
return (ApplePayHelpers.isApplePaySupported() && ApplePayHelpers.canMakePayments());
|
|
97
218
|
}
|
|
98
219
|
/**
|
|
99
220
|
* Check if the user has an active card for the merchant
|
|
@@ -102,7 +223,7 @@ class ApplePayService {
|
|
|
102
223
|
if (!this.applePayConfig) {
|
|
103
224
|
throw new Error('Apple Pay not initialized. Call initialize() first.');
|
|
104
225
|
}
|
|
105
|
-
return await
|
|
226
|
+
return await ApplePayHelpers.canMakePaymentsWithActiveCard(this.applePayConfig.merchantIdentifier);
|
|
106
227
|
}
|
|
107
228
|
/**
|
|
108
229
|
* Start Apple Pay session
|
|
@@ -116,7 +237,7 @@ class ApplePayService {
|
|
|
116
237
|
// if (!this.isAvailable()) {
|
|
117
238
|
// throw new Error('Apple Pay is not available on this device/browser');
|
|
118
239
|
// }
|
|
119
|
-
const request = new
|
|
240
|
+
const request = new ApplePayPaymentRequest(paymentRequest);
|
|
120
241
|
if (!request.isValid) {
|
|
121
242
|
const missingFields = [];
|
|
122
243
|
if (!request.countryCode)
|
|
@@ -227,13 +348,13 @@ class ApplePayService {
|
|
|
227
348
|
const payment = event.payment;
|
|
228
349
|
const paymentPayload = Object.assign(Object.assign({}, payment.token), { product_details: {
|
|
229
350
|
name: this.currentPaymentRequest.total.label,
|
|
230
|
-
price:
|
|
351
|
+
price: ApplePayHelpers.parseAmount(this.currentPaymentRequest.total.amount),
|
|
231
352
|
description: this.currentPaymentRequest.total.label,
|
|
232
353
|
} });
|
|
233
354
|
const paymentResult = await this.processPayment(authToken, accountId, paymentPayload);
|
|
234
355
|
if (paymentResult.success) {
|
|
235
356
|
this.currentSession.completePayment({
|
|
236
|
-
status:
|
|
357
|
+
status: ApplePaySessionStatus.STATUS_SUCCESS,
|
|
237
358
|
});
|
|
238
359
|
resolve({
|
|
239
360
|
success: true,
|
|
@@ -244,7 +365,7 @@ class ApplePayService {
|
|
|
244
365
|
else {
|
|
245
366
|
console.error('PSP reported payment failure:', paymentResult.data);
|
|
246
367
|
this.currentSession.completePayment({
|
|
247
|
-
status:
|
|
368
|
+
status: ApplePaySessionStatus.STATUS_FAILURE,
|
|
248
369
|
});
|
|
249
370
|
reject({
|
|
250
371
|
success: false,
|
|
@@ -262,7 +383,7 @@ class ApplePayService {
|
|
|
262
383
|
console.error('Error stack:', error.stack);
|
|
263
384
|
}
|
|
264
385
|
this.currentSession.completePayment({
|
|
265
|
-
status:
|
|
386
|
+
status: ApplePaySessionStatus.STATUS_FAILURE,
|
|
266
387
|
});
|
|
267
388
|
reject({
|
|
268
389
|
success: false,
|
|
@@ -294,7 +415,7 @@ class ApplePayService {
|
|
|
294
415
|
};
|
|
295
416
|
this.currentSession.onshippingmethodselected = () => {
|
|
296
417
|
this.currentSession.completeShippingMethodSelection({
|
|
297
|
-
status:
|
|
418
|
+
status: ApplePaySessionStatus.STATUS_SUCCESS,
|
|
298
419
|
newTotal: this.currentPaymentRequest.total,
|
|
299
420
|
newLineItems: this.currentPaymentRequest.lineItems || [],
|
|
300
421
|
});
|
|
@@ -354,9 +475,9 @@ class ApplePayService {
|
|
|
354
475
|
return {
|
|
355
476
|
countryCode,
|
|
356
477
|
currencyCode,
|
|
357
|
-
merchantCapabilities:
|
|
358
|
-
supportedNetworks:
|
|
359
|
-
total:
|
|
478
|
+
merchantCapabilities: ApplePayHelpers.getDefaultMerchantCapabilities(),
|
|
479
|
+
supportedNetworks: ApplePayHelpers.getDefaultSupportedNetworks(),
|
|
480
|
+
total: ApplePayHelpers.createLineItem(label, amount),
|
|
360
481
|
};
|
|
361
482
|
}
|
|
362
483
|
/**
|
|
@@ -375,30 +496,30 @@ const ApplePaySkeleton = (props) => {
|
|
|
375
496
|
return (index.h("div", { class: 'container-fluid p-0' }, index.h("div", { class: 'row mb-3' }, index.h("div", { class: 'col-12 align-content-center' }, index.h(skeleton.Skeleton, { height: '44px', width: '100%', styles: { borderRadius: "8px" } })))));
|
|
376
497
|
};
|
|
377
498
|
|
|
378
|
-
const ProcessingSpinner
|
|
499
|
+
const ProcessingSpinner = () => (index.h("div", { class: 'processing-overlay' }, index.h("div", { class: 'spinner' }), index.h("span", null, "Processing...")));
|
|
379
500
|
const ApplePayButton = (props) => {
|
|
380
501
|
const getApplePayButtonClass = () => {
|
|
381
502
|
let classes = "apple-pay-button";
|
|
382
503
|
switch (props.buttonStyle) {
|
|
383
|
-
case
|
|
504
|
+
case ApplePayButtonStyle.WHITE:
|
|
384
505
|
classes += " apple-pay-button-white";
|
|
385
506
|
break;
|
|
386
|
-
case
|
|
507
|
+
case ApplePayButtonStyle.WHITE_OUTLINE:
|
|
387
508
|
classes += " apple-pay-button-white-outline";
|
|
388
509
|
break;
|
|
389
|
-
case
|
|
510
|
+
case ApplePayButtonStyle.BLACK:
|
|
390
511
|
default:
|
|
391
512
|
classes += " apple-pay-button-black";
|
|
392
513
|
break;
|
|
393
514
|
}
|
|
394
515
|
switch (props.buttonType) {
|
|
395
|
-
case
|
|
516
|
+
case ApplePayButtonType.BUY:
|
|
396
517
|
classes += " apple-pay-button-type-buy";
|
|
397
518
|
break;
|
|
398
|
-
case
|
|
519
|
+
case ApplePayButtonType.DONATE:
|
|
399
520
|
classes += " apple-pay-button-type-donate";
|
|
400
521
|
break;
|
|
401
|
-
case
|
|
522
|
+
case ApplePayButtonType.PLAIN:
|
|
402
523
|
default:
|
|
403
524
|
classes += " apple-pay-button-type-plain";
|
|
404
525
|
break;
|
|
@@ -419,7 +540,7 @@ const ApplePayButton = (props) => {
|
|
|
419
540
|
return (index.h("div", { class: 'apple-pay-button-container' }, index.h("button", Object.assign({ class: getApplePayButtonClass(), style: {
|
|
420
541
|
width: props.width,
|
|
421
542
|
height: props.height,
|
|
422
|
-
}, onClick: handleClick, disabled: props.disabled || props.isProcessing || !props.isAvailable, "aria-label": 'Pay with Apple Pay', type: 'button' }, props), props.isProcessing && ProcessingSpinner
|
|
543
|
+
}, onClick: handleClick, disabled: props.disabled || props.isProcessing || !props.isAvailable, "aria-label": 'Pay with Apple Pay', type: 'button' }, props), props.isProcessing && ProcessingSpinner()), index.h("style", null, `
|
|
423
544
|
.apple-pay-button-container {
|
|
424
545
|
display: block;
|
|
425
546
|
position: relative;
|
|
@@ -529,8 +650,8 @@ const ApplePay = class {
|
|
|
529
650
|
this.merchantIdentifier = "merchant.com.staging-justifi.checkout-dev";
|
|
530
651
|
this.merchantDisplayName = "JustiFi Checkout";
|
|
531
652
|
this.initiativeContext = "dev-checkout.justifi-staging.com";
|
|
532
|
-
this.buttonType =
|
|
533
|
-
this.buttonStyle =
|
|
653
|
+
this.buttonType = ApplePayButtonType.PLAIN;
|
|
654
|
+
this.buttonStyle = ApplePayButtonStyle.BLACK;
|
|
534
655
|
this.disabled = false;
|
|
535
656
|
this.showSkeleton = true;
|
|
536
657
|
this.width = "100%";
|
|
@@ -552,16 +673,16 @@ const ApplePay = class {
|
|
|
552
673
|
this.applePayStarted.emit();
|
|
553
674
|
const paymentRequest = {
|
|
554
675
|
countryCode: this.countryCode,
|
|
555
|
-
currencyCode:
|
|
676
|
+
currencyCode: checkout_store.checkoutStore.paymentCurrency,
|
|
556
677
|
merchantCapabilities: [
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
678
|
+
ApplePayMerchantCapability.SUPPORTS_3DS,
|
|
679
|
+
ApplePayMerchantCapability.SUPPORTS_CREDIT,
|
|
680
|
+
ApplePayMerchantCapability.SUPPORTS_DEBIT,
|
|
560
681
|
],
|
|
561
|
-
supportedNetworks:
|
|
562
|
-
total:
|
|
682
|
+
supportedNetworks: ApplePayHelpers.getDefaultSupportedNetworks(),
|
|
683
|
+
total: ApplePayHelpers.createLineItem(checkout_store.checkoutStore.paymentDescription, checkout_store.checkoutStore.paymentAmount),
|
|
563
684
|
};
|
|
564
|
-
const result = await this.applePayService.startPaymentSession(paymentRequest,
|
|
685
|
+
const result = await this.applePayService.startPaymentSession(paymentRequest, checkout_store.checkoutStore.authToken, checkout_store.checkoutStore.accountId);
|
|
565
686
|
if (result.success) {
|
|
566
687
|
this.applePayCompleted.emit({
|
|
567
688
|
success: true,
|
|
@@ -599,24 +720,24 @@ const ApplePay = class {
|
|
|
599
720
|
this.isLoading = true;
|
|
600
721
|
this.error = null;
|
|
601
722
|
this.isConfigValid = true;
|
|
602
|
-
const hasRequiredConfig = Boolean(
|
|
603
|
-
Boolean(
|
|
604
|
-
Boolean(
|
|
723
|
+
const hasRequiredConfig = Boolean(checkout_store.checkoutStore.paymentAmount) &&
|
|
724
|
+
Boolean(checkout_store.checkoutStore.paymentCurrency) &&
|
|
725
|
+
Boolean(checkout_store.checkoutStore.authToken);
|
|
605
726
|
if (!hasRequiredConfig) {
|
|
606
727
|
this.error = "Missing required Apple Pay configuration";
|
|
607
728
|
this.isConfigValid = false;
|
|
608
729
|
console.error("Apple Pay config error: missing required values", {
|
|
609
|
-
paymentAmount:
|
|
610
|
-
paymentCurrency:
|
|
611
|
-
hasAuthToken: Boolean(
|
|
612
|
-
accountId:
|
|
730
|
+
paymentAmount: checkout_store.checkoutStore.paymentAmount,
|
|
731
|
+
paymentCurrency: checkout_store.checkoutStore.paymentCurrency,
|
|
732
|
+
hasAuthToken: Boolean(checkout_store.checkoutStore.authToken),
|
|
733
|
+
accountId: checkout_store.checkoutStore.accountId,
|
|
613
734
|
});
|
|
614
735
|
this.applePayError.emit({ error: this.error, code: ApplePay.ErrorCode.CONFIG_ERROR });
|
|
615
736
|
this.isLoading = false;
|
|
616
737
|
return;
|
|
617
738
|
}
|
|
618
|
-
this.isAvailable =
|
|
619
|
-
this.canMakePayments =
|
|
739
|
+
this.isAvailable = ApplePayHelpers.isApplePaySupported();
|
|
740
|
+
this.canMakePayments = ApplePayHelpers.canMakePayments();
|
|
620
741
|
if (!this.isAvailable) {
|
|
621
742
|
this.error = "Apple Pay is not supported on this device";
|
|
622
743
|
console.error(this.error);
|
|
@@ -665,7 +786,7 @@ const ApplePay = class {
|
|
|
665
786
|
if (!this.isAvailable) {
|
|
666
787
|
return [];
|
|
667
788
|
}
|
|
668
|
-
return
|
|
789
|
+
return ApplePayHelpers.getDefaultSupportedNetworks();
|
|
669
790
|
}
|
|
670
791
|
async abort() {
|
|
671
792
|
this.applePayService.abortPaymentSession();
|
|
@@ -673,7 +794,7 @@ const ApplePay = class {
|
|
|
673
794
|
this.applePayCancelled.emit();
|
|
674
795
|
}
|
|
675
796
|
render() {
|
|
676
|
-
if (!
|
|
797
|
+
if (!checkout_store.checkoutStore.applePayEnabled) {
|
|
677
798
|
// Render nothing when Apple Pay is disabled at the checkout settings level
|
|
678
799
|
return null;
|
|
679
800
|
}
|
|
@@ -681,7 +802,7 @@ const ApplePay = class {
|
|
|
681
802
|
this.isAvailable &&
|
|
682
803
|
this.canMakePayments &&
|
|
683
804
|
this.isConfigValid;
|
|
684
|
-
return (index.h(styledHost.StyledHost, null,
|
|
805
|
+
return (index.h(styledHost.StyledHost, null, checkout_store.checkoutStore.checkoutLoaded && (index.h("script", { async: true, src: 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js', onLoad: () => {
|
|
685
806
|
this.initializeApplePay();
|
|
686
807
|
} })), index.h("div", { class: 'apple-pay-container' }, index.h(ApplePaySkeleton, { isLoading: this.isLoading }), isReady && (index.h(ApplePayButton, { buttonType: this.buttonType, buttonStyle: this.buttonStyle, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleApplePayClick, width: this.width, height: this.height }))), index.h("style", null, `
|
|
687
808
|
.apple-pay-container {
|
|
@@ -704,736 +825,8 @@ const Summary = class {
|
|
|
704
825
|
index.registerInstance(this, hostRef);
|
|
705
826
|
}
|
|
706
827
|
render() {
|
|
707
|
-
return (index.h(styledHost.StyledHost, { key: '
|
|
708
|
-
}
|
|
709
|
-
};
|
|
710
|
-
|
|
711
|
-
const PROCESS_TOKEN_ENDPOINT = 'google_pay/process_token';
|
|
712
|
-
class GooglePayService {
|
|
713
|
-
constructor() {
|
|
714
|
-
this.api = Api.Api();
|
|
715
|
-
}
|
|
716
|
-
/**
|
|
717
|
-
* Initialize Google Pay configuration
|
|
718
|
-
*/
|
|
719
|
-
initialize(googlePayConfig) {
|
|
720
|
-
this.googlePayConfig = new GooglePay$1.GooglePayConfig(googlePayConfig);
|
|
721
|
-
if (!this.googlePayConfig.isValid) {
|
|
722
|
-
throw new Error('Invalid Google Pay configuration provided');
|
|
723
|
-
}
|
|
724
|
-
// Create Google Pay client
|
|
725
|
-
this.googlePayClient = GooglePay$1.GooglePayHelpers.createGooglePayClient(this.googlePayConfig.environment);
|
|
726
|
-
if (!this.googlePayClient) {
|
|
727
|
-
throw new Error('Failed to create Google Pay client');
|
|
728
|
-
}
|
|
729
|
-
// No debug logs
|
|
730
|
-
}
|
|
731
|
-
/**
|
|
732
|
-
* Process Google Pay payment via API
|
|
733
|
-
*/
|
|
734
|
-
async processPayment(authToken, accountId, payload) {
|
|
735
|
-
const endpoint = PROCESS_TOKEN_ENDPOINT;
|
|
736
|
-
try {
|
|
737
|
-
const result = await this.api.post({
|
|
738
|
-
endpoint,
|
|
739
|
-
authToken,
|
|
740
|
-
body: payload,
|
|
741
|
-
headers: {
|
|
742
|
-
'sub-account': accountId,
|
|
743
|
-
},
|
|
744
|
-
});
|
|
745
|
-
return {
|
|
746
|
-
success: result.id && !!result.data.token,
|
|
747
|
-
data: result,
|
|
748
|
-
};
|
|
749
|
-
}
|
|
750
|
-
catch (_error) {
|
|
751
|
-
throw new Error('Google Pay payment processing failed');
|
|
752
|
-
}
|
|
753
|
-
}
|
|
754
|
-
/**
|
|
755
|
-
* Check if Google Pay is available on this device/browser
|
|
756
|
-
*/
|
|
757
|
-
isAvailable() {
|
|
758
|
-
return GooglePay$1.GooglePayHelpers.isGooglePaySupported() && !!this.googlePayClient;
|
|
759
|
-
}
|
|
760
|
-
/**
|
|
761
|
-
* Check if the user can make payments with Google Pay
|
|
762
|
-
*/
|
|
763
|
-
async canMakePayments() {
|
|
764
|
-
if (!this.googlePayClient || !this.googlePayConfig) {
|
|
765
|
-
return false;
|
|
766
|
-
}
|
|
767
|
-
try {
|
|
768
|
-
const baseRequest = GooglePay$1.GooglePayHelpers.createBasePaymentDataRequest();
|
|
769
|
-
const response = await this.googlePayClient.isReadyToPay(baseRequest);
|
|
770
|
-
return response.result;
|
|
771
|
-
}
|
|
772
|
-
catch (_error) {
|
|
773
|
-
return false;
|
|
774
|
-
}
|
|
775
|
-
}
|
|
776
|
-
/**
|
|
777
|
-
* Start Google Pay payment session
|
|
778
|
-
*/
|
|
779
|
-
async startPaymentSession(paymentDataRequest, authToken, accountId) {
|
|
780
|
-
var _a;
|
|
781
|
-
if (!this.googlePayConfig || !this.googlePayClient) {
|
|
782
|
-
throw new Error('Google Pay not initialized. Call initialize() first.');
|
|
783
|
-
}
|
|
784
|
-
if (!this.isAvailable()) {
|
|
785
|
-
throw new Error('Google Pay is not available on this device/browser');
|
|
786
|
-
}
|
|
787
|
-
const request = new GooglePay$1.GooglePayPaymentDataRequest(paymentDataRequest);
|
|
788
|
-
if (!request.isValid) {
|
|
789
|
-
throw new Error('Invalid payment data request provided');
|
|
790
|
-
}
|
|
791
|
-
try {
|
|
792
|
-
const paymentData = await this.googlePayClient.loadPaymentData(request);
|
|
793
|
-
// Build top-level snake_case fields from Google Pay tokenizationData
|
|
794
|
-
const tokenizationData = (_a = paymentData === null || paymentData === void 0 ? void 0 : paymentData.paymentMethodData) === null || _a === void 0 ? void 0 : _a.tokenizationData;
|
|
795
|
-
const tokenObj = (() => {
|
|
796
|
-
if ((tokenizationData === null || tokenizationData === void 0 ? void 0 : tokenizationData.token) &&
|
|
797
|
-
typeof tokenizationData.token === 'string') {
|
|
798
|
-
try {
|
|
799
|
-
return JSON.parse(tokenizationData.token);
|
|
800
|
-
}
|
|
801
|
-
catch (_e) {
|
|
802
|
-
return tokenizationData;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
return tokenizationData;
|
|
806
|
-
})();
|
|
807
|
-
const tokenProcessRequest = {
|
|
808
|
-
protocolVersion: tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.protocolVersion,
|
|
809
|
-
signature: tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.signature,
|
|
810
|
-
intermediateSigningKey: (tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.intermediateSigningKey)
|
|
811
|
-
? {
|
|
812
|
-
signedKey: tokenObj.intermediateSigningKey.signedKey,
|
|
813
|
-
signatures: tokenObj.intermediateSigningKey.signatures,
|
|
814
|
-
}
|
|
815
|
-
: undefined,
|
|
816
|
-
signedMessage: tokenObj === null || tokenObj === void 0 ? void 0 : tokenObj.signedMessage,
|
|
817
|
-
};
|
|
818
|
-
const paymentResult = await this.processPayment(authToken, accountId, tokenProcessRequest);
|
|
819
|
-
if (paymentResult.success) {
|
|
820
|
-
return {
|
|
821
|
-
success: true,
|
|
822
|
-
paymentData: paymentData,
|
|
823
|
-
paymentMethodId: paymentResult.data.id,
|
|
824
|
-
};
|
|
825
|
-
}
|
|
826
|
-
else {
|
|
827
|
-
return {
|
|
828
|
-
success: false,
|
|
829
|
-
error: {
|
|
830
|
-
code: 'PAYMENT_PROCESSING_ERROR',
|
|
831
|
-
message: 'Payment processing failed',
|
|
832
|
-
},
|
|
833
|
-
};
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
catch (error) {
|
|
837
|
-
// Handle different types of errors
|
|
838
|
-
if (error && typeof error === 'object' && 'statusCode' in error) {
|
|
839
|
-
const googlePayError = error;
|
|
840
|
-
switch (googlePayError.statusCode) {
|
|
841
|
-
case 'CANCELED':
|
|
842
|
-
return {
|
|
843
|
-
success: false,
|
|
844
|
-
error: {
|
|
845
|
-
code: 'USER_CANCELLED',
|
|
846
|
-
message: 'User cancelled the Google Pay session',
|
|
847
|
-
},
|
|
848
|
-
};
|
|
849
|
-
case 'DEVELOPER_ERROR':
|
|
850
|
-
return {
|
|
851
|
-
success: false,
|
|
852
|
-
error: {
|
|
853
|
-
code: 'DEVELOPER_ERROR',
|
|
854
|
-
message: 'Google Pay configuration error',
|
|
855
|
-
},
|
|
856
|
-
};
|
|
857
|
-
default:
|
|
858
|
-
return {
|
|
859
|
-
success: false,
|
|
860
|
-
error: {
|
|
861
|
-
code: 'PAYMENT_ERROR',
|
|
862
|
-
message: googlePayError.statusMessage || 'Google Pay payment failed',
|
|
863
|
-
},
|
|
864
|
-
};
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
return {
|
|
868
|
-
success: false,
|
|
869
|
-
error: {
|
|
870
|
-
code: 'PAYMENT_ERROR',
|
|
871
|
-
message: error instanceof Error
|
|
872
|
-
? error.message
|
|
873
|
-
: 'Google Pay payment failed',
|
|
874
|
-
},
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
|
-
/**
|
|
879
|
-
* Create Google Pay button element
|
|
880
|
-
*/
|
|
881
|
-
createButton(options) {
|
|
882
|
-
if (!this.googlePayClient || !this.googlePayConfig) {
|
|
883
|
-
return null;
|
|
884
|
-
}
|
|
885
|
-
try {
|
|
886
|
-
return this.googlePayClient.createButton({
|
|
887
|
-
onClick: options.onClick,
|
|
888
|
-
buttonType: options.buttonType,
|
|
889
|
-
buttonSizeMode: options.buttonSizeMode,
|
|
890
|
-
buttonColor: options.buttonColor,
|
|
891
|
-
buttonLocale: options.buttonLocale,
|
|
892
|
-
});
|
|
893
|
-
}
|
|
894
|
-
catch (_error) {
|
|
895
|
-
return null;
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
/**
|
|
899
|
-
* Prefetch payment data for faster loading
|
|
900
|
-
*/
|
|
901
|
-
prefetchPaymentData(paymentDataRequest) {
|
|
902
|
-
if (!this.googlePayClient) {
|
|
903
|
-
return;
|
|
904
|
-
}
|
|
905
|
-
const request = new GooglePay$1.GooglePayPaymentDataRequest(paymentDataRequest);
|
|
906
|
-
if (!request.isValid) {
|
|
907
|
-
return;
|
|
908
|
-
}
|
|
909
|
-
try {
|
|
910
|
-
this.googlePayClient.prefetchPaymentData(request);
|
|
911
|
-
}
|
|
912
|
-
catch (_error) { }
|
|
913
|
-
}
|
|
914
|
-
/**
|
|
915
|
-
* Create a basic payment data request
|
|
916
|
-
*/
|
|
917
|
-
static createPaymentDataRequest(amount, label, countryCode = 'US', currencyCode = 'USD', merchantName) {
|
|
918
|
-
const request = {
|
|
919
|
-
apiVersion: 2,
|
|
920
|
-
apiVersionMinor: 0,
|
|
921
|
-
allowedPaymentMethods: [GooglePay$1.GooglePayHelpers.createPaymentMethodData()],
|
|
922
|
-
transactionInfo: {
|
|
923
|
-
countryCode,
|
|
924
|
-
currencyCode,
|
|
925
|
-
totalPriceStatus: 'FINAL',
|
|
926
|
-
totalPrice: GooglePay$1.GooglePayHelpers.formatAmount(amount),
|
|
927
|
-
totalPriceLabel: label,
|
|
928
|
-
},
|
|
929
|
-
merchantInfo: {
|
|
930
|
-
merchantName,
|
|
931
|
-
},
|
|
932
|
-
};
|
|
933
|
-
// No debug logs
|
|
934
|
-
return request;
|
|
935
|
-
}
|
|
936
|
-
/**
|
|
937
|
-
* Get current configuration
|
|
938
|
-
*/
|
|
939
|
-
getGooglePayConfig() {
|
|
940
|
-
return this.googlePayConfig;
|
|
941
|
-
}
|
|
942
|
-
/**
|
|
943
|
-
* Get current Google Pay client
|
|
944
|
-
*/
|
|
945
|
-
getGooglePayClient() {
|
|
946
|
-
return this.googlePayClient;
|
|
947
|
-
}
|
|
948
|
-
}
|
|
949
|
-
|
|
950
|
-
const GooglePaySkeleton = (props) => {
|
|
951
|
-
const { isLoading } = props;
|
|
952
|
-
if (!isLoading) {
|
|
953
|
-
return null;
|
|
954
|
-
}
|
|
955
|
-
return (index.h("div", { class: 'container-fluid p-0' }, index.h("div", { class: 'row mb-3' }, index.h("div", { class: 'col-12 align-content-center' }, index.h(skeleton.Skeleton, { height: '44px', width: '100%', styles: { borderRadius: "8px" } })))));
|
|
956
|
-
};
|
|
957
|
-
|
|
958
|
-
const ProcessingSpinner = () => (index.h("div", { class: 'processing-overlay' }, index.h("div", { class: 'spinner' }), index.h("span", null, "Processing...")));
|
|
959
|
-
const GooglePayButton = (props) => {
|
|
960
|
-
const getGooglePayButtonClass = () => {
|
|
961
|
-
let classes = "google-pay-button";
|
|
962
|
-
// Button style
|
|
963
|
-
switch (props.buttonStyle) {
|
|
964
|
-
case GooglePay$1.GooglePayButtonStyle.WHITE:
|
|
965
|
-
classes += " google-pay-button-white";
|
|
966
|
-
break;
|
|
967
|
-
case GooglePay$1.GooglePayButtonStyle.BLACK:
|
|
968
|
-
default:
|
|
969
|
-
classes += " google-pay-button-black";
|
|
970
|
-
break;
|
|
971
|
-
}
|
|
972
|
-
// Button type
|
|
973
|
-
switch (props.buttonType) {
|
|
974
|
-
case GooglePay$1.GooglePayButtonType.BUY:
|
|
975
|
-
classes += " google-pay-button-type-buy";
|
|
976
|
-
break;
|
|
977
|
-
case GooglePay$1.GooglePayButtonType.BOOK:
|
|
978
|
-
classes += " google-pay-button-type-book";
|
|
979
|
-
break;
|
|
980
|
-
case GooglePay$1.GooglePayButtonType.CHECKOUT:
|
|
981
|
-
classes += " google-pay-button-type-checkout";
|
|
982
|
-
break;
|
|
983
|
-
case GooglePay$1.GooglePayButtonType.DONATE:
|
|
984
|
-
classes += " google-pay-button-type-donate";
|
|
985
|
-
break;
|
|
986
|
-
case GooglePay$1.GooglePayButtonType.ORDER:
|
|
987
|
-
classes += " google-pay-button-type-order";
|
|
988
|
-
break;
|
|
989
|
-
case GooglePay$1.GooglePayButtonType.PAY:
|
|
990
|
-
classes += " google-pay-button-type-pay";
|
|
991
|
-
break;
|
|
992
|
-
case GooglePay$1.GooglePayButtonType.SUBSCRIBE:
|
|
993
|
-
classes += " google-pay-button-type-subscribe";
|
|
994
|
-
break;
|
|
995
|
-
case GooglePay$1.GooglePayButtonType.PLAIN:
|
|
996
|
-
default:
|
|
997
|
-
classes += " google-pay-button-type-plain";
|
|
998
|
-
break;
|
|
999
|
-
}
|
|
1000
|
-
// Size mode
|
|
1001
|
-
switch (props.buttonSizeMode) {
|
|
1002
|
-
case GooglePay$1.GooglePayButtonSizeMode.FILL:
|
|
1003
|
-
classes += " google-pay-button-fill";
|
|
1004
|
-
break;
|
|
1005
|
-
case GooglePay$1.GooglePayButtonSizeMode.STATIC:
|
|
1006
|
-
default:
|
|
1007
|
-
classes += " google-pay-button-static";
|
|
1008
|
-
break;
|
|
1009
|
-
}
|
|
1010
|
-
if (props.disabled || props.isProcessing || !props.isAvailable) {
|
|
1011
|
-
classes += " disabled";
|
|
1012
|
-
}
|
|
1013
|
-
return classes;
|
|
1014
|
-
};
|
|
1015
|
-
const getButtonStyles = () => {
|
|
1016
|
-
const styles = {};
|
|
1017
|
-
if (props.buttonSizeMode === GooglePay$1.GooglePayButtonSizeMode.FILL) {
|
|
1018
|
-
styles.width = '100%';
|
|
1019
|
-
styles.minWidth = '200px';
|
|
1020
|
-
}
|
|
1021
|
-
else {
|
|
1022
|
-
styles.width = props.width || '200px';
|
|
1023
|
-
}
|
|
1024
|
-
styles.height = props.height || '48px';
|
|
1025
|
-
return styles;
|
|
1026
|
-
};
|
|
1027
|
-
const handleClick = () => {
|
|
1028
|
-
if (!props.disabled &&
|
|
1029
|
-
!props.isProcessing &&
|
|
1030
|
-
props.isAvailable &&
|
|
1031
|
-
props.clickHandler) {
|
|
1032
|
-
props.clickHandler();
|
|
1033
|
-
}
|
|
1034
|
-
};
|
|
1035
|
-
return (index.h("div", { class: "google-pay-button-container" }, index.h("button", Object.assign({ class: getGooglePayButtonClass(), style: getButtonStyles(), onClick: handleClick, disabled: props.disabled || props.isProcessing || !props.isAvailable, "aria-label": "Google Pay", type: "button" }, props), props.isProcessing && ProcessingSpinner(), index.h("div", { class: 'google-pay-button-content' }, index.h("svg", { width: "41", height: "17", xmlns: "http://www.w3.org/2000/svg" }, index.h("g", { fill: "none", "fill-rule": "evenodd" }, index.h("path", { d: "M19.526 2.635v4.083h2.518c.6 0 1.096-.202 1.488-.605.403-.402.605-.882.605-1.437 0-.544-.202-1.018-.605-1.422-.392-.413-.888-.62-1.488-.62h-2.518zm0 5.52v4.736h-1.504V1.198h3.99c1.013 0 1.873.337 2.582 1.012.72.675 1.08 1.497 1.08 2.466 0 .991-.36 1.819-1.08 2.482-.697.665-1.559.996-2.583.996h-2.485v.001zm7.668 2.287c0 .392.166.718.499.98.332.26.722.391 1.168.391.633 0 1.196-.234 1.692-.701.497-.469.744-1.019.744-1.65-.469-.37-1.123-.555-1.962-.555-.61 0-1.12.148-1.528.442-.409.294-.613.657-.613 1.093m1.946-5.815c1.112 0 1.989.297 2.633.89.642.594.964 1.408.964 2.442v4.932h-1.439v-1.11h-.065c-.622.914-1.45 1.372-2.486 1.372-.882 0-1.621-.262-2.215-.784-.594-.523-.891-1.176-.891-1.96 0-.828.313-1.486.94-1.976s1.463-.735 2.51-.735c.892 0 1.629.163 2.206.49v-.344c0-.522-.207-.966-.621-1.33a2.132 2.132 0 0 0-1.455-.547c-.84 0-1.504.353-1.995 1.062l-1.324-.834c.73-1.045 1.81-1.568 3.238-1.568m11.853.262l-5.02 11.53H34.42l1.864-4.034-3.302-7.496h1.635l2.387 5.749h.032l2.322-5.75z", fill: "#FFF" }), index.h("path", { d: "M13.448 7.134c0-.473-.04-.93-.116-1.366H6.988v2.588h3.634a3.11 3.11 0 0 1-1.344 2.042v1.68h2.169c1.27-1.17 2.001-2.9 2.001-4.944", fill: "#4285F4" }), index.h("path", { d: "M6.988 13.7c1.816 0 3.344-.595 4.459-1.621l-2.169-1.681c-.603.406-1.38.643-2.29.643-1.754 0-3.244-1.182-3.776-2.774H.978v1.731a6.728 6.728 0 0 0 6.01 3.703", fill: "#34A853" }), index.h("path", { d: "M3.212 8.267a4.034 4.034 0 0 1 0-2.572V3.964H.978A6.678 6.678 0 0 0 .261 6.98c0 1.085.26 2.11.717 3.017l2.234-1.731z", fill: "#FABB05" }), index.h("path", { d: "M6.988 2.921c.992 0 1.88.34 2.58 1.008v.001l1.92-1.918C10.324.928 8.804.262 6.989.262a6.728 6.728 0 0 0-6.01 3.702l2.234 1.731c.532-1.592 2.022-2.774 3.776-2.774", fill: "#E94235" }))))), index.h("style", null, `
|
|
1036
|
-
.google-pay-button-container {
|
|
1037
|
-
display: block;
|
|
1038
|
-
position: relative;
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
|
-
.google-pay-button {
|
|
1042
|
-
display: flex;
|
|
1043
|
-
align-items: center;
|
|
1044
|
-
justify-content: center;
|
|
1045
|
-
border: none;
|
|
1046
|
-
border-radius: 4px;
|
|
1047
|
-
cursor: pointer;
|
|
1048
|
-
font-size: 14px;
|
|
1049
|
-
font-weight: 500;
|
|
1050
|
-
letter-spacing: 0.25px;
|
|
1051
|
-
line-height: 16px;
|
|
1052
|
-
outline: none;
|
|
1053
|
-
padding: 0 20px;
|
|
1054
|
-
position: relative;
|
|
1055
|
-
min-width: 140px;
|
|
1056
|
-
min-height: 48px;
|
|
1057
|
-
}
|
|
1058
|
-
|
|
1059
|
-
/* Button styles */
|
|
1060
|
-
.google-pay-button.google-pay-button-black {
|
|
1061
|
-
background-color: #000;
|
|
1062
|
-
color: #fff;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
.google-pay-button.google-pay-button-white {
|
|
1066
|
-
background-color: #fff;
|
|
1067
|
-
color: #3c4043;
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
/* Button content */
|
|
1071
|
-
.google-pay-button-content {
|
|
1072
|
-
display: flex;
|
|
1073
|
-
align-items: center;
|
|
1074
|
-
justify-content: center;
|
|
1075
|
-
gap: 8px;
|
|
1076
|
-
white-space: nowrap;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
|
-
.google-g-logo {
|
|
1080
|
-
width: 20px;
|
|
1081
|
-
height: 20px;
|
|
1082
|
-
flex-shrink: 0;
|
|
1083
|
-
}
|
|
1084
|
-
|
|
1085
|
-
.pay-text {
|
|
1086
|
-
font-family: 'Google Sans', arial, sans-serif;
|
|
1087
|
-
font-size: 14px;
|
|
1088
|
-
font-weight: 500;
|
|
1089
|
-
margin-left: 8px;
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
/* Button types - text content handled by ::before pseudo-element */
|
|
1093
|
-
.google-pay-button-type-buy .google-pay-button-content::before {
|
|
1094
|
-
content: 'Buy with';
|
|
1095
|
-
margin-right: 8px;
|
|
1096
|
-
}
|
|
1097
|
-
|
|
1098
|
-
.google-pay-button-type-book .google-pay-button-content::before {
|
|
1099
|
-
content: 'Book with';
|
|
1100
|
-
margin-right: 8px;
|
|
1101
|
-
}
|
|
1102
|
-
|
|
1103
|
-
.google-pay-button-type-checkout .google-pay-button-content::before {
|
|
1104
|
-
content: 'Checkout with';
|
|
1105
|
-
margin-right: 8px;
|
|
1106
|
-
}
|
|
1107
|
-
|
|
1108
|
-
.google-pay-button-type-donate .google-pay-button-content::before {
|
|
1109
|
-
content: 'Donate with';
|
|
1110
|
-
margin-right: 8px;
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
.google-pay-button-type-order .google-pay-button-content::before {
|
|
1114
|
-
content: 'Order with';
|
|
1115
|
-
margin-right: 8px;
|
|
1116
|
-
}
|
|
1117
|
-
|
|
1118
|
-
.google-pay-button-type-pay .google-pay-button-content::before {
|
|
1119
|
-
content: 'Pay with';
|
|
1120
|
-
margin-right: 8px;
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
.google-pay-button-type-subscribe .google-pay-button-content::before {
|
|
1124
|
-
content: 'Subscribe with';
|
|
1125
|
-
margin-right: 8px;
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
/* Size modes */
|
|
1129
|
-
.google-pay-button.google-pay-button-fill {
|
|
1130
|
-
width: 100%;
|
|
1131
|
-
min-width: 200px;
|
|
1132
|
-
}
|
|
1133
|
-
|
|
1134
|
-
.google-pay-button.google-pay-button-static {
|
|
1135
|
-
width: auto;
|
|
1136
|
-
}
|
|
1137
|
-
|
|
1138
|
-
/* Hover and focus states */
|
|
1139
|
-
.google-pay-button:hover:not(.disabled) {
|
|
1140
|
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15), 0 1px 3px 1px rgba(0, 0, 0, 0.30);
|
|
1141
|
-
}
|
|
1142
|
-
|
|
1143
|
-
.google-pay-button:focus:not(.disabled) {
|
|
1144
|
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15), 0 1px 3px 1px rgba(0, 0, 0, 0.30);
|
|
1145
|
-
}
|
|
1146
|
-
|
|
1147
|
-
.google-pay-button:active:not(.disabled) {
|
|
1148
|
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.15), 0 1px 3px 1px rgba(0, 0, 0, 0.30);
|
|
1149
|
-
transform: translateY(1px);
|
|
1150
|
-
}
|
|
1151
|
-
|
|
1152
|
-
/* Disabled state */
|
|
1153
|
-
.google-pay-button.disabled {
|
|
1154
|
-
opacity: 0.5;
|
|
1155
|
-
cursor: not-allowed;
|
|
1156
|
-
box-shadow: none;
|
|
1157
|
-
}
|
|
1158
|
-
|
|
1159
|
-
.google-pay-button.disabled:hover,
|
|
1160
|
-
.google-pay-button.disabled:focus,
|
|
1161
|
-
.google-pay-button.disabled:active {
|
|
1162
|
-
box-shadow: none;
|
|
1163
|
-
transform: none;
|
|
1164
|
-
}
|
|
1165
|
-
|
|
1166
|
-
/* Processing overlay */
|
|
1167
|
-
.processing-overlay {
|
|
1168
|
-
position: absolute;
|
|
1169
|
-
top: 0;
|
|
1170
|
-
left: 0;
|
|
1171
|
-
right: 0;
|
|
1172
|
-
bottom: 0;
|
|
1173
|
-
display: flex;
|
|
1174
|
-
align-items: center;
|
|
1175
|
-
justify-content: center;
|
|
1176
|
-
gap: 8px;
|
|
1177
|
-
background: rgba(0, 0, 0, 0.8);
|
|
1178
|
-
color: white;
|
|
1179
|
-
border-radius: 4px;
|
|
1180
|
-
font-size: 14px;
|
|
1181
|
-
font-weight: 500;
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1184
|
-
.spinner {
|
|
1185
|
-
width: 16px;
|
|
1186
|
-
height: 16px;
|
|
1187
|
-
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
1188
|
-
border-top: 2px solid #fff;
|
|
1189
|
-
border-radius: 50%;
|
|
1190
|
-
animation: spin 1s linear infinite;
|
|
1191
|
-
}
|
|
1192
|
-
|
|
1193
|
-
@keyframes spin {
|
|
1194
|
-
0% { transform: rotate(0deg); }
|
|
1195
|
-
100% { transform: rotate(360deg); }
|
|
1196
|
-
}
|
|
1197
|
-
|
|
1198
|
-
/* Responsive design */
|
|
1199
|
-
@media (max-width: 480px) {
|
|
1200
|
-
.google-pay-button {
|
|
1201
|
-
width: 100% !important;
|
|
1202
|
-
min-width: 200px;
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
`)));
|
|
1206
|
-
};
|
|
1207
|
-
|
|
1208
|
-
const GooglePay = class {
|
|
1209
|
-
constructor(hostRef) {
|
|
1210
|
-
index.registerInstance(this, hostRef);
|
|
1211
|
-
this.googlePayCancelled = index.createEvent(this, "googlePayCancelled");
|
|
1212
|
-
this.googlePayCompleted = index.createEvent(this, "googlePayCompleted");
|
|
1213
|
-
this.googlePayStarted = index.createEvent(this, "googlePayStarted");
|
|
1214
|
-
this.unsubscribes = [];
|
|
1215
|
-
this.canMakePayments = false;
|
|
1216
|
-
this.error = null;
|
|
1217
|
-
this.isAvailable = false;
|
|
1218
|
-
this.isLoading = true;
|
|
1219
|
-
this.isProcessing = false;
|
|
1220
|
-
this.buttonSizeMode = GooglePay$1.GooglePayButtonSizeMode.FILL;
|
|
1221
|
-
this.buttonStyle = GooglePay$1.GooglePayButtonStyle.BLACK;
|
|
1222
|
-
this.buttonType = GooglePay$1.GooglePayButtonType.PLAIN;
|
|
1223
|
-
this.countryCode = "US";
|
|
1224
|
-
this.disabled = false;
|
|
1225
|
-
this.environment = GooglePay$1.GooglePayEnvironment.PRODUCTION;
|
|
1226
|
-
this.merchantId = "gateway:justifi";
|
|
1227
|
-
this.merchantName = "justifi";
|
|
1228
|
-
this.showSkeleton = true;
|
|
1229
|
-
this.handleGooglePayClick = async () => {
|
|
1230
|
-
var _a;
|
|
1231
|
-
if (this.isProcessing ||
|
|
1232
|
-
this.disabled ||
|
|
1233
|
-
!this.isAvailable ||
|
|
1234
|
-
!this.canMakePayments) {
|
|
1235
|
-
return;
|
|
1236
|
-
}
|
|
1237
|
-
try {
|
|
1238
|
-
this.isProcessing = true;
|
|
1239
|
-
this.error = null;
|
|
1240
|
-
this.googlePayStarted.emit();
|
|
1241
|
-
const paymentDataRequest = this.createPaymentDataRequest();
|
|
1242
|
-
const result = await this.googlePayService.startPaymentSession(paymentDataRequest, GooglePay$1.checkoutStore.authToken, GooglePay$1.checkoutStore.accountId);
|
|
1243
|
-
if (result.success) {
|
|
1244
|
-
this.googlePayCompleted.emit({
|
|
1245
|
-
success: true,
|
|
1246
|
-
paymentData: result.paymentData,
|
|
1247
|
-
paymentMethodId: result.paymentMethodId,
|
|
1248
|
-
});
|
|
1249
|
-
}
|
|
1250
|
-
else {
|
|
1251
|
-
this.googlePayCompleted.emit({
|
|
1252
|
-
success: false,
|
|
1253
|
-
error: result.error,
|
|
1254
|
-
});
|
|
1255
|
-
if (((_a = result.error) === null || _a === void 0 ? void 0 : _a.code) === "USER_CANCELLED") {
|
|
1256
|
-
this.googlePayCancelled.emit();
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
}
|
|
1260
|
-
catch (error) {
|
|
1261
|
-
const errorMessage = error instanceof Error ? error.message : "Payment failed";
|
|
1262
|
-
this.error = errorMessage;
|
|
1263
|
-
this.googlePayCompleted.emit({
|
|
1264
|
-
success: false,
|
|
1265
|
-
error: errorMessage,
|
|
1266
|
-
});
|
|
1267
|
-
}
|
|
1268
|
-
finally {
|
|
1269
|
-
this.isProcessing = false;
|
|
1270
|
-
}
|
|
1271
|
-
};
|
|
1272
|
-
}
|
|
1273
|
-
watchConfigChange() {
|
|
1274
|
-
this.initializeGooglePay();
|
|
1275
|
-
}
|
|
1276
|
-
componentWillLoad() {
|
|
1277
|
-
this.googlePayService = new GooglePayService();
|
|
1278
|
-
}
|
|
1279
|
-
componentDidLoad() {
|
|
1280
|
-
const unsub = GooglePay$1.onChange("paymentAmount", () => {
|
|
1281
|
-
this.prefetchPaymentData();
|
|
1282
|
-
});
|
|
1283
|
-
if (typeof unsub === 'function')
|
|
1284
|
-
this.unsubscribes.push(unsub);
|
|
1285
|
-
const unsubCurrency = GooglePay$1.onChange("paymentCurrency", () => {
|
|
1286
|
-
this.prefetchPaymentData();
|
|
1287
|
-
});
|
|
1288
|
-
if (typeof unsubCurrency === 'function')
|
|
1289
|
-
this.unsubscribes.push(unsubCurrency);
|
|
1290
|
-
const unsubDesc = GooglePay$1.onChange("paymentDescription", () => {
|
|
1291
|
-
this.prefetchPaymentData();
|
|
1292
|
-
});
|
|
1293
|
-
if (typeof unsubDesc === 'function')
|
|
1294
|
-
this.unsubscribes.push(unsubDesc);
|
|
1295
|
-
}
|
|
1296
|
-
disconnectedCallback() {
|
|
1297
|
-
this.unsubscribes.forEach((fn) => {
|
|
1298
|
-
try {
|
|
1299
|
-
fn();
|
|
1300
|
-
}
|
|
1301
|
-
catch (_a) { }
|
|
1302
|
-
});
|
|
1303
|
-
this.unsubscribes = [];
|
|
1304
|
-
}
|
|
1305
|
-
/**
|
|
1306
|
-
* Returns supported authentication methods when Google Pay is available.
|
|
1307
|
-
*/
|
|
1308
|
-
async getSupportedAuthMethods() {
|
|
1309
|
-
if (!this.isAvailable) {
|
|
1310
|
-
return [];
|
|
1311
|
-
}
|
|
1312
|
-
return GooglePay$1.GooglePayHelpers.getDefaultAuthMethods();
|
|
1313
|
-
}
|
|
1314
|
-
/**
|
|
1315
|
-
* Returns supported card networks when Google Pay is available.
|
|
1316
|
-
*/
|
|
1317
|
-
async getSupportedNetworks() {
|
|
1318
|
-
if (!this.isAvailable) {
|
|
1319
|
-
return [];
|
|
1320
|
-
}
|
|
1321
|
-
return GooglePay$1.GooglePayHelpers.getDefaultSupportedNetworks();
|
|
1322
|
-
}
|
|
1323
|
-
/**
|
|
1324
|
-
* Select Google Pay in the modular checkout parent.
|
|
1325
|
-
*/
|
|
1326
|
-
async handleSelectionClick() {
|
|
1327
|
-
GooglePay$1.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.GOOGLE_PAY };
|
|
1328
|
-
}
|
|
1329
|
-
/**
|
|
1330
|
-
* Returns whether Google Pay is both available and can make payments.
|
|
1331
|
-
*/
|
|
1332
|
-
async isSupported() {
|
|
1333
|
-
return this.isAvailable && this.canMakePayments;
|
|
1334
|
-
}
|
|
1335
|
-
/**
|
|
1336
|
-
* Prefetch payment data for faster load times of the Google Pay sheet.
|
|
1337
|
-
*/
|
|
1338
|
-
async prefetchPaymentData() {
|
|
1339
|
-
if (!this.isAvailable || !this.canMakePayments) {
|
|
1340
|
-
return;
|
|
1341
|
-
}
|
|
1342
|
-
const paymentDataRequest = this.createPaymentDataRequest();
|
|
1343
|
-
this.googlePayService.prefetchPaymentData(paymentDataRequest);
|
|
1344
|
-
}
|
|
1345
|
-
async initializeGooglePay() {
|
|
1346
|
-
try {
|
|
1347
|
-
this.isLoading = true;
|
|
1348
|
-
this.error = null;
|
|
1349
|
-
if (!GooglePay$1.checkoutStore.paymentAmount) {
|
|
1350
|
-
this.error = "Missing required Google Pay configuration";
|
|
1351
|
-
this.isLoading = false;
|
|
1352
|
-
return;
|
|
1353
|
-
}
|
|
1354
|
-
const googlePayConfig = {
|
|
1355
|
-
environment: this.environment,
|
|
1356
|
-
merchantId: this.merchantId,
|
|
1357
|
-
merchantName: this.merchantName,
|
|
1358
|
-
buttonType: this.buttonType,
|
|
1359
|
-
buttonStyle: this.buttonStyle,
|
|
1360
|
-
buttonSizeMode: this.buttonSizeMode,
|
|
1361
|
-
};
|
|
1362
|
-
this.googlePayService.initialize(googlePayConfig);
|
|
1363
|
-
this.isAvailable = this.googlePayService.isAvailable();
|
|
1364
|
-
if (!this.isAvailable) {
|
|
1365
|
-
this.error = "Google Pay is not supported on this device";
|
|
1366
|
-
this.isLoading = false;
|
|
1367
|
-
return;
|
|
1368
|
-
}
|
|
1369
|
-
this.canMakePayments = await this.googlePayService.canMakePayments();
|
|
1370
|
-
if (!this.canMakePayments) {
|
|
1371
|
-
this.error = "Google Pay is not available for payments";
|
|
1372
|
-
this.isLoading = false;
|
|
1373
|
-
return;
|
|
1374
|
-
}
|
|
1375
|
-
const paymentDataRequest = this.createPaymentDataRequest();
|
|
1376
|
-
this.googlePayService.prefetchPaymentData(paymentDataRequest);
|
|
1377
|
-
}
|
|
1378
|
-
catch (error) {
|
|
1379
|
-
this.error =
|
|
1380
|
-
error instanceof Error
|
|
1381
|
-
? error.message
|
|
1382
|
-
: "Failed to initialize Google Pay";
|
|
1383
|
-
}
|
|
1384
|
-
finally {
|
|
1385
|
-
this.isLoading = false;
|
|
1386
|
-
}
|
|
1387
|
-
}
|
|
1388
|
-
createPaymentDataRequest() {
|
|
1389
|
-
return GooglePayService.createPaymentDataRequest(GooglePay$1.checkoutStore.paymentAmount, GooglePay$1.checkoutStore.paymentDescription, this.countryCode, GooglePay$1.checkoutStore.paymentCurrency, this.merchantName);
|
|
1390
|
-
}
|
|
1391
|
-
render() {
|
|
1392
|
-
const showError = !this.isLoading && !!this.error;
|
|
1393
|
-
const showDeviceUnavailable = !this.isLoading && !this.error && !this.isAvailable;
|
|
1394
|
-
const showPaymentsUnavailable = !this.isLoading && !this.error && this.isAvailable && !this.canMakePayments;
|
|
1395
|
-
const showButton = !this.isLoading && !this.error && this.isAvailable && this.canMakePayments;
|
|
1396
|
-
return (index.h(styledHost.StyledHost, { key: 'd85684b123cdba175d68a2e216f9150780ac7cf9' }, GooglePay$1.checkoutStore.checkoutLoaded && (index.h("script", { key: 'b78bb8980d670e5b66cb907f89cee6ff2238205c', async: true, src: 'https://pay.google.com/gp/p/js/pay.js', onLoad: () => {
|
|
1397
|
-
this.initializeGooglePay();
|
|
1398
|
-
} })), index.h("div", { key: 'e405efb3a164be9e1d9db5beeb3c01471b647aaf', class: 'google-pay-container' }, index.h(GooglePaySkeleton, { key: 'c17dbb3e305678a1da10e3741ff0b610c549be6e', isLoading: this.isLoading }), showError && (index.h("div", { key: '726895b7c76f3edbbbb1930a317d826b8f8f11fd', class: 'google-pay-error', role: 'alert', "data-testid": 'gp-error' }, index.h("span", { key: '23342ca70b6b5bf28f846ca519cc4fbfb065fc67', class: 'error-icon' }, "\u26A0\uFE0F"), index.h("span", { key: '008315696bc7b7f78f69cfc80160dacabf1205b5', class: 'error-message' }, this.error))), showDeviceUnavailable && (index.h("div", { key: '2e87b4a9e5d0c0201333b79b9c190ca14932391b', class: 'google-pay-unavailable', "data-testid": 'gp-device-unavailable' }, index.h("span", { key: '6db13fc44661500a964422d18550cb31e275f076', class: 'unavailable-message' }, "Google Pay is not available on this device"))), showPaymentsUnavailable && (index.h("div", { key: 'c2ca09e36652800092cc6bcbe4a351b0d604bae2', class: 'google-pay-unavailable', "data-testid": 'gp-payments-unavailable' }, index.h("span", { key: 'a5e75ccbb269249327192b927a0df879d90aefe5', class: 'unavailable-message' }, "Google Pay is not available for payments"))), showButton && (index.h(GooglePayButton, { key: 'a2af46b3970620491e5c005e2b57f7a6d6f06e2c', "data-testid": 'gp-button', buttonType: this.buttonType, buttonStyle: this.buttonStyle, buttonSizeMode: this.buttonSizeMode, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleGooglePayClick }))), index.h("style", { key: '9890ac44c4f047484396e0b4ae0d04a31489e61f' }, `
|
|
1399
|
-
.google-pay-container {
|
|
1400
|
-
width: 100%;
|
|
1401
|
-
}
|
|
1402
|
-
|
|
1403
|
-
.google-pay-error {
|
|
1404
|
-
display: flex;
|
|
1405
|
-
align-items: center;
|
|
1406
|
-
gap: 8px;
|
|
1407
|
-
padding: 12px;
|
|
1408
|
-
background: #fef2f2;
|
|
1409
|
-
border: 1px solid #fecaca;
|
|
1410
|
-
border-radius: 8px;
|
|
1411
|
-
color: #dc2626;
|
|
1412
|
-
font-size: 14px;
|
|
1413
|
-
}
|
|
1414
|
-
|
|
1415
|
-
.google-pay-unavailable {
|
|
1416
|
-
display: flex;
|
|
1417
|
-
align-items: center;
|
|
1418
|
-
justify-content: center;
|
|
1419
|
-
padding: 12px;
|
|
1420
|
-
background: #f9fafb;
|
|
1421
|
-
border: 1px solid #e5e7eb;
|
|
1422
|
-
border-radius: 8px;
|
|
1423
|
-
color: #6b7280;
|
|
1424
|
-
font-size: 14px;
|
|
1425
|
-
}
|
|
1426
|
-
|
|
1427
|
-
.error-icon {
|
|
1428
|
-
font-size: 16px;
|
|
1429
|
-
}
|
|
1430
|
-
|
|
1431
|
-
`)));
|
|
828
|
+
return (index.h(styledHost.StyledHost, { key: 'fd2c61dcafdc800d0064c19d29c6e007aed5adb5' }, index.h("section", { key: 'f2abef1233f3ccad3982d10c61ec5765e13e27a5' }, index.h("div", { key: '713d66ef6f7e2fc73135e765069baba6df976f52' }, index.h("div", { key: 'b8dd28f257948aa317366fe3ea6d2bc4911ef164', part: parts.text }, checkout_store.checkoutStore === null || checkout_store.checkoutStore === void 0 ? void 0 : checkout_store.checkoutStore.paymentDescription), index.h("div", { key: '675676b40de7dc27d07bfafc0eee77eb855a3d26' }, index.h("span", { key: 'cbd47994d9c3f1518741a298de3f5d62a0ad5313', part: parts.text }, "Total"), "\u00A0", index.h("span", { key: '614748853f666f1b072d4fa9b14ee15ef5717112', part: parts.text }, utils.formatCurrency(+(checkout_store.checkoutStore === null || checkout_store.checkoutStore === void 0 ? void 0 : checkout_store.checkoutStore.totalAmount))))))));
|
|
1432
829
|
}
|
|
1433
|
-
static get watchers() { return {
|
|
1434
|
-
"merchantId": ["watchConfigChange"],
|
|
1435
|
-
"environment": ["watchConfigChange"]
|
|
1436
|
-
}; }
|
|
1437
830
|
};
|
|
1438
831
|
|
|
1439
832
|
const Header = class {
|
|
@@ -1448,7 +841,7 @@ const Header = class {
|
|
|
1448
841
|
}
|
|
1449
842
|
render() {
|
|
1450
843
|
const HeaderComponent = this.levels[this.level];
|
|
1451
|
-
return (index.h(styledHost.StyledHost, { key: '
|
|
844
|
+
return (index.h(styledHost.StyledHost, { key: 'd4871da09451d40b27220a207ee72317ed9b1b9f' }, index.h(HeaderComponent, { key: 'f7de159fa6395ef4024f48b868369f8d10edf64e', text: this.text, class: this.class })));
|
|
1452
845
|
}
|
|
1453
846
|
};
|
|
1454
847
|
|
|
@@ -1534,30 +927,11 @@ const ModularCheckout = class {
|
|
|
1534
927
|
this.submitEvent = index.createEvent(this, "submit-event");
|
|
1535
928
|
this.checkoutChangedEvent = index.createEvent(this, "checkout-changed");
|
|
1536
929
|
this.plaidService = new PlaidService();
|
|
1537
|
-
this.handleGooglePayCompleted = (event) => {
|
|
1538
|
-
const { success, paymentMethodId, error } = event.detail || {};
|
|
1539
|
-
if (success && paymentMethodId) {
|
|
1540
|
-
GooglePay$1.checkoutStore.paymentToken = paymentMethodId;
|
|
1541
|
-
GooglePay$1.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.GOOGLE_PAY };
|
|
1542
|
-
this.submitCheckout();
|
|
1543
|
-
}
|
|
1544
|
-
else {
|
|
1545
|
-
this.errorEvent.emit({
|
|
1546
|
-
message: (error && error.message) || "Google Pay payment failed",
|
|
1547
|
-
errorCode: ComponentError.ComponentErrorCodes.TOKENIZE_ERROR,
|
|
1548
|
-
severity: ComponentError.ComponentErrorSeverity.ERROR,
|
|
1549
|
-
});
|
|
1550
|
-
}
|
|
1551
|
-
};
|
|
1552
|
-
this.handleGooglePayCancelled = () => {
|
|
1553
|
-
GooglePay$1.checkoutStore.paymentToken = undefined;
|
|
1554
|
-
GooglePay$1.checkoutStore.selectedPaymentMethod = undefined;
|
|
1555
|
-
};
|
|
1556
930
|
this.handleApplePayCompleted = (event) => {
|
|
1557
931
|
const { success, token, paymentMethodId, error } = event.detail;
|
|
1558
932
|
if (success && token) {
|
|
1559
|
-
|
|
1560
|
-
|
|
933
|
+
checkout_store.checkoutStore.paymentToken = paymentMethodId;
|
|
934
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.APPLE_PAY };
|
|
1561
935
|
this.submitCheckout();
|
|
1562
936
|
}
|
|
1563
937
|
else {
|
|
@@ -1580,21 +954,20 @@ const ModularCheckout = class {
|
|
|
1580
954
|
});
|
|
1581
955
|
};
|
|
1582
956
|
this.handleApplePayCancelled = () => {
|
|
1583
|
-
|
|
1584
|
-
|
|
957
|
+
checkout_store.checkoutStore.paymentToken = undefined;
|
|
958
|
+
checkout_store.checkoutStore.selectedPaymentMethod = undefined;
|
|
1585
959
|
};
|
|
1586
960
|
}
|
|
1587
961
|
connectedCallback() {
|
|
1588
962
|
this.observer = new MutationObserver(() => {
|
|
1589
963
|
this.queryFormRefs();
|
|
1590
964
|
this.setupApplePayListeners(); // set up again listeners when DOM changes
|
|
1591
|
-
this.setupGooglePayListeners();
|
|
1592
965
|
});
|
|
1593
966
|
this.observer.observe(this.hostEl, {
|
|
1594
967
|
childList: true,
|
|
1595
968
|
subtree: true,
|
|
1596
969
|
});
|
|
1597
|
-
|
|
970
|
+
checkout_store.checkoutStore.checkoutId = this.checkoutId;
|
|
1598
971
|
const config = {
|
|
1599
972
|
authToken: this.authToken,
|
|
1600
973
|
checkoutId: this.checkoutId,
|
|
@@ -1603,14 +976,14 @@ const ModularCheckout = class {
|
|
|
1603
976
|
this.getCheckout = makeGetCheckout(config);
|
|
1604
977
|
this.completeCheckout = makeCheckoutComplete(config);
|
|
1605
978
|
// Emit checkout-changed whenever any store key changes
|
|
1606
|
-
|
|
979
|
+
checkout_store.onAnyChange(() => {
|
|
1607
980
|
this.emitCheckoutChanged();
|
|
1608
981
|
});
|
|
1609
982
|
}
|
|
1610
983
|
componentWillLoad() {
|
|
1611
984
|
this.analytics = new checkPkgVersion.JustifiAnalytics(this);
|
|
1612
985
|
checkPkgVersion.checkPkgVersion();
|
|
1613
|
-
|
|
986
|
+
checkout_store.checkoutStore.authToken = this.authToken;
|
|
1614
987
|
this.fetchCheckout();
|
|
1615
988
|
// Refresh the checkout data when insurance values actually change (not on initial load)
|
|
1616
989
|
insuranceState.insuranceValuesOn("set", (key) => {
|
|
@@ -1623,13 +996,11 @@ const ModularCheckout = class {
|
|
|
1623
996
|
componentDidLoad() {
|
|
1624
997
|
this.queryFormRefs();
|
|
1625
998
|
this.setupApplePayListeners();
|
|
1626
|
-
this.setupGooglePayListeners();
|
|
1627
999
|
}
|
|
1628
1000
|
disconnectedCallback() {
|
|
1629
1001
|
var _a;
|
|
1630
1002
|
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
1631
1003
|
this.removeApplePayListeners();
|
|
1632
|
-
this.removeGooglePayListeners();
|
|
1633
1004
|
}
|
|
1634
1005
|
fetchCheckout() {
|
|
1635
1006
|
if (!this.authToken || !this.checkoutId) {
|
|
@@ -1644,7 +1015,7 @@ const ModularCheckout = class {
|
|
|
1644
1015
|
this.getCheckout({
|
|
1645
1016
|
onSuccess: ({ checkout }) => {
|
|
1646
1017
|
this.updateStore(checkout);
|
|
1647
|
-
if (checkout.status ===
|
|
1018
|
+
if (checkout.status === Refund.ICheckoutStatus.completed) {
|
|
1648
1019
|
this.errorEvent.emit({
|
|
1649
1020
|
message: ComponentError.ComponentErrorMessages.CHECKOUT_ALREADY_COMPLETED,
|
|
1650
1021
|
errorCode: ComponentError.ComponentErrorCodes.CHECKOUT_ALREADY_COMPLETED,
|
|
@@ -1652,7 +1023,7 @@ const ModularCheckout = class {
|
|
|
1652
1023
|
});
|
|
1653
1024
|
return;
|
|
1654
1025
|
}
|
|
1655
|
-
else if (checkout.status ===
|
|
1026
|
+
else if (checkout.status === Refund.ICheckoutStatus.expired) {
|
|
1656
1027
|
this.errorEvent.emit({
|
|
1657
1028
|
message: ComponentError.ComponentErrorMessages.CHECKOUT_EXPIRED,
|
|
1658
1029
|
errorCode: ComponentError.ComponentErrorCodes.CHECKOUT_EXPIRED,
|
|
@@ -1672,37 +1043,35 @@ const ModularCheckout = class {
|
|
|
1672
1043
|
}
|
|
1673
1044
|
}
|
|
1674
1045
|
updateStore(checkout) {
|
|
1675
|
-
var _a, _b, _c, _d, _e, _f
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
(_g = checkout === null || checkout === void 0 ? void 0 : checkout.bnpl) === null || _g === void 0 ? void 0 : _g.provider_checkout_url;
|
|
1046
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1047
|
+
checkout_store.checkoutStore.accountId = checkout.account_id;
|
|
1048
|
+
checkout_store.checkoutStore.checkoutLoaded = true;
|
|
1049
|
+
checkout_store.checkoutStore.paymentMethods = checkout.payment_methods.map((paymentMethod) => new index$1.PaymentMethod(paymentMethod));
|
|
1050
|
+
checkout_store.checkoutStore.paymentMethodGroupId = checkout.payment_method_group_id;
|
|
1051
|
+
checkout_store.checkoutStore.paymentDescription = checkout.payment_description;
|
|
1052
|
+
checkout_store.checkoutStore.totalAmount = checkout.total_amount;
|
|
1053
|
+
checkout_store.checkoutStore.paymentAmount = checkout.payment_amount;
|
|
1054
|
+
checkout_store.checkoutStore.bnplEnabled = checkout.payment_settings.bnpl_payments;
|
|
1055
|
+
checkout_store.checkoutStore.insuranceEnabled = checkout.payment_settings.insurance_payments;
|
|
1056
|
+
checkout_store.checkoutStore.bankAccountVerification = (_a = checkout.payment_settings) === null || _a === void 0 ? void 0 : _a.bank_account_verification;
|
|
1057
|
+
checkout_store.checkoutStore.applePayEnabled = (_b = checkout.payment_settings) === null || _b === void 0 ? void 0 : _b.apple_payments;
|
|
1058
|
+
checkout_store.checkoutStore.bnplProviderClientId = (_c = checkout === null || checkout === void 0 ? void 0 : checkout.bnpl) === null || _c === void 0 ? void 0 : _c.provider_client_id;
|
|
1059
|
+
checkout_store.checkoutStore.bnplProviderMode = (_d = checkout === null || checkout === void 0 ? void 0 : checkout.bnpl) === null || _d === void 0 ? void 0 : _d.provider_mode;
|
|
1060
|
+
checkout_store.checkoutStore.bnplProviderApiVersion = (_e = checkout === null || checkout === void 0 ? void 0 : checkout.bnpl) === null || _e === void 0 ? void 0 : _e.provider_api_version;
|
|
1061
|
+
checkout_store.checkoutStore.bnplProviderCheckoutUrl =
|
|
1062
|
+
(_f = checkout === null || checkout === void 0 ? void 0 : checkout.bnpl) === null || _f === void 0 ? void 0 : _f.provider_checkout_url;
|
|
1693
1063
|
}
|
|
1694
1064
|
emitCheckoutChanged() {
|
|
1695
1065
|
const detail = {
|
|
1696
|
-
availablePaymentMethodTypes:
|
|
1697
|
-
selectedPaymentMethod:
|
|
1698
|
-
savedPaymentMethods:
|
|
1066
|
+
availablePaymentMethodTypes: checkout_store.getAvailablePaymentMethodTypes(),
|
|
1067
|
+
selectedPaymentMethod: checkout_store.checkoutStore.selectedPaymentMethod,
|
|
1068
|
+
savedPaymentMethods: checkout_store.checkoutStore.paymentMethods,
|
|
1699
1069
|
};
|
|
1700
1070
|
this.checkoutChangedEvent.emit(detail);
|
|
1701
1071
|
}
|
|
1702
1072
|
queryFormRefs() {
|
|
1703
1073
|
this.billingFormRef = this.hostEl.querySelector("justifi-billing-form, justifi-bank-account-billing-form-simple, justifi-card-billing-form-simple, justifi-billing-form-full");
|
|
1704
1074
|
this.applePayRef = this.hostEl.querySelector("justifi-apple-pay");
|
|
1705
|
-
this.googlePayRef = this.hostEl.querySelector("justifi-google-pay");
|
|
1706
1075
|
this.paymentMethodFormRef =
|
|
1707
1076
|
this.hostEl.querySelector('justifi-card-form, justifi-bank-account-form, justifi-tokenize-payment-method');
|
|
1708
1077
|
this.insuranceFormRef = this.hostEl.querySelector('justifi-season-interruption-insurance');
|
|
@@ -1721,52 +1090,40 @@ const ModularCheckout = class {
|
|
|
1721
1090
|
this.applePayRef.removeEventListener("applePayCancelled", this.handleApplePayCancelled);
|
|
1722
1091
|
}
|
|
1723
1092
|
}
|
|
1724
|
-
setupGooglePayListeners() {
|
|
1725
|
-
if (this.googlePayRef) {
|
|
1726
|
-
this.googlePayRef.addEventListener("googlePayCompleted", this.handleGooglePayCompleted);
|
|
1727
|
-
this.googlePayRef.addEventListener("googlePayCancelled", this.handleGooglePayCancelled);
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
|
-
removeGooglePayListeners() {
|
|
1731
|
-
if (this.googlePayRef) {
|
|
1732
|
-
this.googlePayRef.removeEventListener("googlePayCompleted", this.handleGooglePayCompleted);
|
|
1733
|
-
this.googlePayRef.removeEventListener("googlePayCancelled", this.handleGooglePayCancelled);
|
|
1734
|
-
}
|
|
1735
|
-
}
|
|
1736
1093
|
async tokenizePaymentMethod(tokenizeArgs) {
|
|
1737
1094
|
var _a, _b, _c;
|
|
1738
1095
|
const billingInfoValues = (_b = (await ((_a = this.billingFormRef) === null || _a === void 0 ? void 0 : _a.getValues()))) !== null && _b !== void 0 ? _b : {};
|
|
1739
1096
|
const combinedBillingInfo = Object.assign(Object.assign({}, tokenizeArgs), billingInfoValues);
|
|
1740
|
-
const paymentMethodMetadata = Object.assign({ accountId:
|
|
1741
|
-
if (
|
|
1097
|
+
const paymentMethodMetadata = Object.assign({ accountId: checkout_store.checkoutStore.accountId, payment_method_group_id: undefined }, combinedBillingInfo);
|
|
1098
|
+
if (checkout_store.checkoutStore.savePaymentMethod) {
|
|
1742
1099
|
paymentMethodMetadata.payment_method_group_id =
|
|
1743
|
-
|
|
1100
|
+
checkout_store.checkoutStore.paymentMethodGroupId;
|
|
1744
1101
|
}
|
|
1745
1102
|
const tokenizeResult = await ((_c = this.paymentMethodFormRef) === null || _c === void 0 ? void 0 : _c.tokenize({
|
|
1746
1103
|
clientId: this.authToken,
|
|
1747
1104
|
paymentMethodMetadata,
|
|
1748
|
-
account:
|
|
1105
|
+
account: checkout_store.checkoutStore.accountId,
|
|
1749
1106
|
}));
|
|
1750
1107
|
if (tokenizeResult.error) {
|
|
1751
1108
|
return tokenizeResult;
|
|
1752
1109
|
}
|
|
1753
|
-
|
|
1110
|
+
checkout_store.checkoutStore.paymentToken = tokenizeResult.id;
|
|
1754
1111
|
return tokenizeResult.id;
|
|
1755
1112
|
}
|
|
1756
1113
|
// set the selected payment method to the checkout store from outside the component
|
|
1757
1114
|
async setSelectedPaymentMethod(paymentMethod) {
|
|
1758
|
-
|
|
1759
|
-
|
|
1115
|
+
checkout_store.checkoutStore.selectedPaymentMethod = paymentMethod;
|
|
1116
|
+
checkout_store.checkoutStore.paymentToken = paymentMethod.id || undefined;
|
|
1760
1117
|
}
|
|
1761
1118
|
// if validation fails, the error will be emitted by the component
|
|
1762
1119
|
async validate() {
|
|
1763
1120
|
var _a, _b;
|
|
1764
1121
|
const promises = [];
|
|
1765
|
-
if (
|
|
1122
|
+
if (checkout_store.checkoutStore.insuranceEnabled && this.insuranceFormRef) {
|
|
1766
1123
|
promises.push(this.insuranceFormRef.validate());
|
|
1767
1124
|
}
|
|
1768
|
-
const isNewCard = ((_a =
|
|
1769
|
-
const isNewBankAccount = ((_b =
|
|
1125
|
+
const isNewCard = ((_a = checkout_store.checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === index$1.PAYMENT_METHODS.NEW_CARD;
|
|
1126
|
+
const isNewBankAccount = ((_b = checkout_store.checkoutStore.selectedPaymentMethod) === null || _b === void 0 ? void 0 : _b.type) === index$1.PAYMENT_METHODS.NEW_BANK_ACCOUNT;
|
|
1770
1127
|
// For new card/bank account, validate payment method + billing.
|
|
1771
1128
|
if (isNewCard || isNewBankAccount) {
|
|
1772
1129
|
if (this.paymentMethodFormRef)
|
|
@@ -1800,7 +1157,7 @@ const ModularCheckout = class {
|
|
|
1800
1157
|
async submitCheckout(submitCheckoutArgs) {
|
|
1801
1158
|
var _a, _b, _c, _d, _e;
|
|
1802
1159
|
const isValid = await this.validate();
|
|
1803
|
-
if (!
|
|
1160
|
+
if (!checkout_store.checkoutStore.selectedPaymentMethod) {
|
|
1804
1161
|
this.errorEvent.emit({
|
|
1805
1162
|
message: 'No payment method selected.',
|
|
1806
1163
|
errorCode: ComponentError.ComponentErrorCodes.VALIDATION_ERROR,
|
|
@@ -1808,9 +1165,9 @@ const ModularCheckout = class {
|
|
|
1808
1165
|
});
|
|
1809
1166
|
return;
|
|
1810
1167
|
}
|
|
1811
|
-
const isNewCard = ((_a =
|
|
1812
|
-
const isNewBankAccount = ((_b =
|
|
1813
|
-
const isPlaid = ((_c =
|
|
1168
|
+
const isNewCard = ((_a = checkout_store.checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === index$1.PAYMENT_METHODS.NEW_CARD;
|
|
1169
|
+
const isNewBankAccount = ((_b = checkout_store.checkoutStore.selectedPaymentMethod) === null || _b === void 0 ? void 0 : _b.type) === index$1.PAYMENT_METHODS.NEW_BANK_ACCOUNT;
|
|
1170
|
+
const isPlaid = ((_c = checkout_store.checkoutStore.selectedPaymentMethod) === null || _c === void 0 ? void 0 : _c.type) === index$1.PAYMENT_METHODS.PLAID;
|
|
1814
1171
|
const shouldTokenize = isNewCard || isNewBankAccount;
|
|
1815
1172
|
if (shouldTokenize) {
|
|
1816
1173
|
const tokenizeResult = await this.tokenizePaymentMethod(submitCheckoutArgs);
|
|
@@ -1824,9 +1181,9 @@ const ModularCheckout = class {
|
|
|
1824
1181
|
}
|
|
1825
1182
|
}
|
|
1826
1183
|
// For Plaid, perform exchange at submit time using stored public token and link token id
|
|
1827
|
-
if (isPlaid && !
|
|
1828
|
-
const publicToken =
|
|
1829
|
-
const linkTokenId =
|
|
1184
|
+
if (isPlaid && !checkout_store.checkoutStore.paymentToken) {
|
|
1185
|
+
const publicToken = checkout_store.checkoutStore.plaidPublicToken;
|
|
1186
|
+
const linkTokenId = checkout_store.checkoutStore.plaidLinkTokenId;
|
|
1830
1187
|
if (!publicToken) {
|
|
1831
1188
|
this.errorEvent.emit({
|
|
1832
1189
|
message: 'Missing Plaid public token. Please connect your bank.',
|
|
@@ -1836,7 +1193,7 @@ const ModularCheckout = class {
|
|
|
1836
1193
|
return;
|
|
1837
1194
|
}
|
|
1838
1195
|
try {
|
|
1839
|
-
const response = await this.plaidService.tokenizeBankAccount(
|
|
1196
|
+
const response = await this.plaidService.tokenizeBankAccount(checkout_store.checkoutStore.authToken, checkout_store.checkoutStore.accountId, publicToken, linkTokenId || undefined, checkout_store.checkoutStore.savePaymentMethod ? checkout_store.checkoutStore.paymentMethodGroupId : undefined);
|
|
1840
1197
|
if (response === null || response === void 0 ? void 0 : response.error) {
|
|
1841
1198
|
this.errorEvent.emit({
|
|
1842
1199
|
message: typeof response.error === 'string' ? response.error : response.error.message || 'Failed to tokenize bank account',
|
|
@@ -1847,7 +1204,7 @@ const ModularCheckout = class {
|
|
|
1847
1204
|
}
|
|
1848
1205
|
const paymentMethod = response === null || response === void 0 ? void 0 : response.data;
|
|
1849
1206
|
const token = ((_d = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.bank_account) === null || _d === void 0 ? void 0 : _d.token) || (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.token) || (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id);
|
|
1850
|
-
|
|
1207
|
+
checkout_store.checkoutStore.paymentToken = token;
|
|
1851
1208
|
}
|
|
1852
1209
|
catch (err) {
|
|
1853
1210
|
this.errorEvent.emit({
|
|
@@ -1866,7 +1223,7 @@ const ModularCheckout = class {
|
|
|
1866
1223
|
});
|
|
1867
1224
|
return;
|
|
1868
1225
|
}
|
|
1869
|
-
if (!
|
|
1226
|
+
if (!checkout_store.checkoutStore.paymentToken) {
|
|
1870
1227
|
this.errorEvent.emit({
|
|
1871
1228
|
message: 'Payment token not found.',
|
|
1872
1229
|
errorCode: ComponentError.ComponentErrorCodes.TOKENIZE_ERROR,
|
|
@@ -1887,18 +1244,16 @@ const ModularCheckout = class {
|
|
|
1887
1244
|
return index$1.PAYMENT_MODE.BNPL;
|
|
1888
1245
|
case index$1.PAYMENT_METHODS.APPLE_PAY:
|
|
1889
1246
|
return index$1.PAYMENT_MODE.APPLE_PAY;
|
|
1890
|
-
case index$1.PAYMENT_METHODS.GOOGLE_PAY:
|
|
1891
|
-
return index$1.PAYMENT_MODE.GOOGLE_PAY;
|
|
1892
1247
|
default:
|
|
1893
1248
|
return undefined;
|
|
1894
1249
|
}
|
|
1895
1250
|
};
|
|
1896
1251
|
payment = {
|
|
1897
|
-
payment_mode: mapTypeToPaymentMode((_e =
|
|
1898
|
-
payment_token:
|
|
1252
|
+
payment_mode: mapTypeToPaymentMode((_e = checkout_store.checkoutStore.selectedPaymentMethod) === null || _e === void 0 ? void 0 : _e.type),
|
|
1253
|
+
payment_token: checkout_store.checkoutStore.paymentToken,
|
|
1899
1254
|
};
|
|
1900
1255
|
if (this.preCompleteHook) {
|
|
1901
|
-
const state =
|
|
1256
|
+
const state = checkout_store.getCheckoutState();
|
|
1902
1257
|
try {
|
|
1903
1258
|
await new Promise((resolve, reject) => {
|
|
1904
1259
|
this.preCompleteHook(state, () => resolve(), () => reject());
|
|
@@ -1926,7 +1281,7 @@ const ModularCheckout = class {
|
|
|
1926
1281
|
});
|
|
1927
1282
|
}
|
|
1928
1283
|
render() {
|
|
1929
|
-
return index.h(index.Host, { key: '
|
|
1284
|
+
return index.h(index.Host, { key: '56a003ca1e1ac4bdc1baa8f862cdb05b2d8af4b1' });
|
|
1930
1285
|
}
|
|
1931
1286
|
get hostEl() { return index.getElement(this); }
|
|
1932
1287
|
};
|
|
@@ -2005,7 +1360,7 @@ const PlaidPaymentMethod = class {
|
|
|
2005
1360
|
this.hasLoggedDisabledWarning = false;
|
|
2006
1361
|
this.waitForStoreAndInitialize = () => {
|
|
2007
1362
|
// Check if store has necessary data
|
|
2008
|
-
if (
|
|
1363
|
+
if (checkout_store.checkoutStore.authToken && checkout_store.checkoutStore.accountId && checkout_store.checkoutStore.checkoutId) {
|
|
2009
1364
|
this.initializePlaidLink();
|
|
2010
1365
|
}
|
|
2011
1366
|
else {
|
|
@@ -2064,7 +1419,7 @@ const PlaidPaymentMethod = class {
|
|
|
2064
1419
|
this.getLinkToken = async () => {
|
|
2065
1420
|
var _a, _b, _c, _d, _e;
|
|
2066
1421
|
try {
|
|
2067
|
-
if (!
|
|
1422
|
+
if (!checkout_store.checkoutStore.authToken || !checkout_store.checkoutStore.accountId) {
|
|
2068
1423
|
this.handleError({
|
|
2069
1424
|
code: PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED,
|
|
2070
1425
|
message: 'Missing authentication. Please refresh the page and try again.',
|
|
@@ -2081,7 +1436,7 @@ const PlaidPaymentMethod = class {
|
|
|
2081
1436
|
var _a;
|
|
2082
1437
|
(_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
|
|
2083
1438
|
}, 30000); // 30 second timeout
|
|
2084
|
-
const response = await this.plaidService.getLinkToken(
|
|
1439
|
+
const response = await this.plaidService.getLinkToken(checkout_store.checkoutStore.authToken, checkout_store.checkoutStore.accountId, checkout_store.checkoutStore.checkoutId, this.abortController.signal);
|
|
2085
1440
|
// Clear timeout
|
|
2086
1441
|
if (this.timeoutId) {
|
|
2087
1442
|
clearTimeout(this.timeoutId);
|
|
@@ -2098,7 +1453,7 @@ const PlaidPaymentMethod = class {
|
|
|
2098
1453
|
// Try to capture link token id if present in envelope
|
|
2099
1454
|
this.linkTokenId = (response === null || response === void 0 ? void 0 : response.id) || ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
2100
1455
|
if (this.linkTokenId) {
|
|
2101
|
-
|
|
1456
|
+
checkout_store.checkoutStore.plaidLinkTokenId = this.linkTokenId;
|
|
2102
1457
|
}
|
|
2103
1458
|
}
|
|
2104
1459
|
catch (error) {
|
|
@@ -2171,7 +1526,7 @@ const PlaidPaymentMethod = class {
|
|
|
2171
1526
|
// Ensure the component remains selected after successful authentication
|
|
2172
1527
|
if (!this.isSelected) {
|
|
2173
1528
|
this.isSelected = true;
|
|
2174
|
-
|
|
1529
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.PLAID };
|
|
2175
1530
|
}
|
|
2176
1531
|
// Emit success event for parent components
|
|
2177
1532
|
this.plaidErrorRecovered.emit({
|
|
@@ -2180,7 +1535,7 @@ const PlaidPaymentMethod = class {
|
|
|
2180
1535
|
severity: ComponentError.ComponentErrorSeverity.INFO
|
|
2181
1536
|
});
|
|
2182
1537
|
// Store public token in checkout store; exchange will be handled on submit
|
|
2183
|
-
|
|
1538
|
+
checkout_store.checkoutStore.plaidPublicToken = publicToken;
|
|
2184
1539
|
};
|
|
2185
1540
|
// Exchange logic moved to Modular Checkout submit flow.
|
|
2186
1541
|
this.handlePlaidExit = (err, _metadata) => {
|
|
@@ -2322,7 +1677,7 @@ const PlaidPaymentMethod = class {
|
|
|
2322
1677
|
// Watch for store changes to sync component state
|
|
2323
1678
|
this.syncWithStore = () => {
|
|
2324
1679
|
var _a;
|
|
2325
|
-
const shouldBeSelected = ((_a =
|
|
1680
|
+
const shouldBeSelected = ((_a = checkout_store.checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === index$1.PAYMENT_METHODS.PLAID;
|
|
2326
1681
|
if (this.isSelected !== shouldBeSelected) {
|
|
2327
1682
|
this.isSelected = shouldBeSelected;
|
|
2328
1683
|
}
|
|
@@ -2331,8 +1686,8 @@ const PlaidPaymentMethod = class {
|
|
|
2331
1686
|
onSelectionChange(newValue) {
|
|
2332
1687
|
var _a;
|
|
2333
1688
|
// Ensure store is updated when component selection changes
|
|
2334
|
-
if (newValue && ((_a =
|
|
2335
|
-
|
|
1689
|
+
if (newValue && ((_a = checkout_store.checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) !== index$1.PAYMENT_METHODS.PLAID) {
|
|
1690
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.PLAID };
|
|
2336
1691
|
}
|
|
2337
1692
|
// Auto-start Plaid flow when selected and ready
|
|
2338
1693
|
if (newValue &&
|
|
@@ -2364,7 +1719,7 @@ const PlaidPaymentMethod = class {
|
|
|
2364
1719
|
componentWillLoad() {
|
|
2365
1720
|
var _a;
|
|
2366
1721
|
// Initialize selection state based on store
|
|
2367
|
-
this.isSelected = ((_a =
|
|
1722
|
+
this.isSelected = ((_a = checkout_store.checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === index$1.PAYMENT_METHODS.PLAID;
|
|
2368
1723
|
}
|
|
2369
1724
|
async resolvePaymentMethod() {
|
|
2370
1725
|
if (!this.publicToken) {
|
|
@@ -2381,13 +1736,13 @@ const PlaidPaymentMethod = class {
|
|
|
2381
1736
|
// Returns a usable payment method token for checkout completion.
|
|
2382
1737
|
// Will perform the backend exchange if the token is not yet present in the store.
|
|
2383
1738
|
async getPaymentToken() {
|
|
2384
|
-
return
|
|
1739
|
+
return checkout_store.checkoutStore.paymentToken;
|
|
2385
1740
|
}
|
|
2386
1741
|
async handleSelectionClick() {
|
|
2387
1742
|
// Update local selection state
|
|
2388
1743
|
this.isSelected = true;
|
|
2389
1744
|
// Update store selection
|
|
2390
|
-
|
|
1745
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.PLAID };
|
|
2391
1746
|
// If there's an error, clear it and try to initialize again
|
|
2392
1747
|
if (this.error) {
|
|
2393
1748
|
this.clearError();
|
|
@@ -2403,7 +1758,7 @@ const PlaidPaymentMethod = class {
|
|
|
2403
1758
|
async setSelected(selected) {
|
|
2404
1759
|
this.isSelected = selected;
|
|
2405
1760
|
if (selected) {
|
|
2406
|
-
|
|
1761
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.PLAID };
|
|
2407
1762
|
}
|
|
2408
1763
|
}
|
|
2409
1764
|
// Method to check if component is currently selected
|
|
@@ -2452,7 +1807,7 @@ const PlaidPaymentMethod = class {
|
|
|
2452
1807
|
}
|
|
2453
1808
|
componentDidLoad() {
|
|
2454
1809
|
// Set up store change listener to keep component in sync
|
|
2455
|
-
const unsubscribe =
|
|
1810
|
+
const unsubscribe = checkout_store.onChange('selectedPaymentMethod', this.syncWithStore);
|
|
2456
1811
|
// Store unsubscribe function for cleanup
|
|
2457
1812
|
this.unsubscribeFromStore = unsubscribe;
|
|
2458
1813
|
}
|
|
@@ -2471,7 +1826,7 @@ const PlaidPaymentMethod = class {
|
|
|
2471
1826
|
}
|
|
2472
1827
|
render() {
|
|
2473
1828
|
// Only allow use if enabled in checkout settings
|
|
2474
|
-
if (
|
|
1829
|
+
if (checkout_store.checkoutStore.bankAccountVerification !== true) {
|
|
2475
1830
|
if (!this.hasLoggedDisabledWarning) {
|
|
2476
1831
|
// Log once per component lifecycle
|
|
2477
1832
|
console.warn('[PlaidPaymentMethod] bank_account_verification is disabled. Component will not render.');
|
|
@@ -2522,36 +1877,36 @@ const SavedPaymentMethods = class {
|
|
|
2522
1877
|
index.registerInstance(this, hostRef);
|
|
2523
1878
|
this.onPaymentMethodOptionClick = (paymentMethod) => (e) => {
|
|
2524
1879
|
e.preventDefault();
|
|
2525
|
-
|
|
2526
|
-
|
|
1880
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { id: paymentMethod.id, type: paymentMethod.type };
|
|
1881
|
+
checkout_store.checkoutStore.paymentToken = paymentMethod.id;
|
|
2527
1882
|
};
|
|
2528
1883
|
this.isAllowedPaymentMethod = (paymentMethodType) => {
|
|
2529
1884
|
const isCard = paymentMethodType === index$1.PAYMENT_METHODS.SAVED_CARD;
|
|
2530
1885
|
const isBankAccount = paymentMethodType === index$1.PAYMENT_METHODS.SAVED_BANK_ACCOUNT;
|
|
2531
|
-
if (isCard &&
|
|
1886
|
+
if (isCard && checkout_store.checkoutStore.disableCreditCard) {
|
|
2532
1887
|
return false;
|
|
2533
1888
|
}
|
|
2534
|
-
if (isBankAccount &&
|
|
1889
|
+
if (isBankAccount && checkout_store.checkoutStore.disableBankAccount) {
|
|
2535
1890
|
return false;
|
|
2536
1891
|
}
|
|
2537
1892
|
return true;
|
|
2538
1893
|
};
|
|
2539
1894
|
}
|
|
2540
1895
|
componentWillLoad() {
|
|
2541
|
-
if (!
|
|
1896
|
+
if (!checkout_store.checkoutStore.paymentMethods.length) {
|
|
2542
1897
|
console.warn('No saved payment methods available.');
|
|
2543
1898
|
}
|
|
2544
|
-
if (
|
|
1899
|
+
if (checkout_store.checkoutStore.disablePaymentMethodGroup) {
|
|
2545
1900
|
console.warn('Payment method group is disabled.');
|
|
2546
1901
|
}
|
|
2547
1902
|
}
|
|
2548
1903
|
render() {
|
|
2549
|
-
if (
|
|
1904
|
+
if (checkout_store.checkoutStore.disablePaymentMethodGroup) {
|
|
2550
1905
|
return null;
|
|
2551
1906
|
}
|
|
2552
|
-
return (index.h(styledHost.StyledHost, null, index.h("div", { class: "saved-payment-methods" },
|
|
1907
|
+
return (index.h(styledHost.StyledHost, null, index.h("div", { class: "saved-payment-methods" }, checkout_store.checkoutStore.paymentMethods.length ? checkout_store.checkoutStore.paymentMethods
|
|
2553
1908
|
.filter((paymentMethod) => this.isAllowedPaymentMethod(paymentMethod.type))
|
|
2554
|
-
.map((paymentMethod) => (index.h("div", { class: "radio-list-item p-3", part: parts.radioListItem, onClick: this.onPaymentMethodOptionClick(paymentMethod) }, index.h("form-control-radio", { name: "paymentMethodType", value: paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id, checked:
|
|
1909
|
+
.map((paymentMethod) => (index.h("div", { class: "radio-list-item p-3", part: parts.radioListItem, onClick: this.onPaymentMethodOptionClick(paymentMethod) }, index.h("form-control-radio", { name: "paymentMethodType", value: paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id, checked: checkout_store.checkoutStore.paymentToken === (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id), label: `${paymentMethodOptionUtils.CardBrandLabels[paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.brand] || ''} *${paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.acct_last_four}` })))) : null)));
|
|
2555
1910
|
}
|
|
2556
1911
|
};
|
|
2557
1912
|
|
|
@@ -2569,20 +1924,20 @@ const SezzlePaymentMethod = class {
|
|
|
2569
1924
|
this.initializeSezzleCheckout = () => {
|
|
2570
1925
|
let resolveSezzlePromise;
|
|
2571
1926
|
this.sezzlePromise = new Promise((resolve) => { resolveSezzlePromise = resolve; });
|
|
2572
|
-
const amount = Number(
|
|
1927
|
+
const amount = Number(checkout_store.checkoutStore.paymentAmount);
|
|
2573
1928
|
const Checkout = window.Checkout;
|
|
2574
1929
|
const checkout = new Checkout({
|
|
2575
1930
|
mode: 'popup',
|
|
2576
|
-
publicKey:
|
|
2577
|
-
apiMode:
|
|
2578
|
-
apiVersion:
|
|
1931
|
+
publicKey: checkout_store.checkoutStore.bnplProviderClientId,
|
|
1932
|
+
apiMode: checkout_store.checkoutStore.bnplProviderMode,
|
|
1933
|
+
apiVersion: checkout_store.checkoutStore.bnplProviderApiVersion,
|
|
2579
1934
|
});
|
|
2580
1935
|
checkout.sezzleButtonElement = this.sezzleButtonRef;
|
|
2581
1936
|
checkout.init({
|
|
2582
1937
|
onClick: function (event) {
|
|
2583
1938
|
event.preventDefault();
|
|
2584
1939
|
checkout.startCheckout({
|
|
2585
|
-
checkout_url:
|
|
1940
|
+
checkout_url: checkout_store.checkoutStore.bnplProviderCheckoutUrl,
|
|
2586
1941
|
});
|
|
2587
1942
|
},
|
|
2588
1943
|
onComplete: (event) => resolveSezzlePromise({ bnpl: event.data }),
|
|
@@ -2609,12 +1964,12 @@ const SezzlePaymentMethod = class {
|
|
|
2609
1964
|
return this.sezzlePromise;
|
|
2610
1965
|
}
|
|
2611
1966
|
async handleSelectionClick() {
|
|
2612
|
-
|
|
1967
|
+
checkout_store.checkoutStore.selectedPaymentMethod = { type: index$1.PAYMENT_METHODS.SEZZLE };
|
|
2613
1968
|
this.paymentMethodOptionSelected.emit(this.paymentMethodOptionId);
|
|
2614
1969
|
}
|
|
2615
1970
|
render() {
|
|
2616
1971
|
var _a, _b;
|
|
2617
|
-
if (!
|
|
1972
|
+
if (!checkout_store.checkoutStore.bnplEnabled) {
|
|
2618
1973
|
console.warn('justifi-sezzle-payment-method: BNPL is not enabled for this account.');
|
|
2619
1974
|
return null;
|
|
2620
1975
|
}
|
|
@@ -2624,7 +1979,6 @@ const SezzlePaymentMethod = class {
|
|
|
2624
1979
|
|
|
2625
1980
|
exports.justifi_apple_pay = ApplePay;
|
|
2626
1981
|
exports.justifi_checkout_summary = Summary;
|
|
2627
|
-
exports.justifi_google_pay = GooglePay;
|
|
2628
1982
|
exports.justifi_header = Header;
|
|
2629
1983
|
exports.justifi_modular_checkout = ModularCheckout;
|
|
2630
1984
|
exports.justifi_plaid_payment_method = PlaidPaymentMethod;
|