@justifi/webcomponents 6.0.0-rc.8 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{Api-y2G49jOh.js → Api-CwTLkFY4.js} +2 -2
- package/dist/cjs/{Refund-BVZHsa6Z.js → Refund-BPSBtjQC.js} +3 -1
- package/dist/cjs/additional-questions-details_5.cjs.entry.js +3 -3
- package/dist/cjs/{badge-CcJ9H85-.js → badge-BmOSt4gS.js} +1 -1
- package/dist/cjs/bank-account-document-form-inputs_4.cjs.entry.js +9 -9
- package/dist/cjs/bank-account-form.cjs.entry.js +10 -15
- package/dist/cjs/business-details-core.cjs.entry.js +6 -21
- package/dist/cjs/{business.service-D5IhSyRJ.js → business.service-Dkhqyggm.js} +2 -2
- package/dist/cjs/{button-DsHDMHaa.js → button-7c2RN2yp.js} +2 -3
- package/dist/cjs/card-form.cjs.entry.js +10 -19
- package/dist/cjs/{check-pkg-version-BJaFyEGj.js → check-pkg-version-7FBAUhHw.js} +3 -3
- package/dist/cjs/{checkout.service-4aS641tN.js → checkout.service-LwZVVgP5.js} +2 -2
- package/dist/cjs/checkout.store-C3f3E24L.js +84 -0
- package/dist/cjs/checkouts-list-core.cjs.entry.js +11 -11
- package/dist/cjs/{payments-list-params-state-Cewmin_p.js → checkouts-list-params-state-C4c8UZtP.js} +1 -1
- package/dist/cjs/{checkouts-table-B_gpjGhs.js → checkouts-table-BQUhZZd_.js} +4 -6
- package/dist/cjs/{config-state-BBOZIS8x.js → config-state-B_gyIchD.js} +1 -1
- package/dist/cjs/custom-popper_2.cjs.entry.js +3 -3
- package/dist/cjs/{dispute.service-64ciJH0r.js → dispute.service-927Gzb0N.js} +2 -2
- package/dist/cjs/form-alert_5.cjs.entry.js +1 -1
- package/dist/cjs/form-control-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/form-control-date.cjs.entry.js +4 -4
- package/dist/cjs/{form-control-error-text-B-P5UDhm.js → form-control-error-text-DD0dHGu8.js} +1 -1
- package/dist/cjs/form-control-file-v2_2.cjs.entry.js +5 -5
- package/dist/cjs/{form-control-help-text-JoZjhb9m.js → form-control-help-text-2QwKi78M.js} +1 -1
- package/dist/cjs/form-control-help-text.cjs.entry.js +1 -1
- package/dist/cjs/form-control-monetary-provisioning.cjs.entry.js +3 -3
- package/dist/cjs/form-control-monetary.cjs.entry.js +6 -6
- package/dist/cjs/form-control-number-masked_2.cjs.entry.js +4 -4
- package/dist/cjs/form-control-number.cjs.entry.js +5 -5
- package/dist/cjs/form-control-radio.cjs.entry.js +3 -3
- package/dist/cjs/form-control-select_2.cjs.entry.js +6 -6
- package/dist/cjs/{get-payment-details-DE5xUUpt.js → get-payment-details-BSxp1HX0.js} +2 -2
- package/dist/cjs/{get-subaccounts-CH477rHs.js → get-subaccounts-B31f95PR.js} +3 -3
- package/dist/cjs/gross-payment-chart-core.cjs.entry.js +5 -5
- package/dist/cjs/{header-1-DRA3f4Jh.js → header-1-DMsp0XM7.js} +1 -1
- package/dist/cjs/{header-3-sOdOpfx3.js → header-3-BSvFq_IF.js} +1 -1
- package/dist/cjs/hidden-input_2.cjs.entry.js +8 -8
- package/dist/cjs/{checkout.store-MSwLBCby.js → index-C2ITzalN.js} +29 -41
- package/dist/cjs/{index-B32W0A3m.js → index-D1Ba20gi.js} +1 -1
- package/dist/cjs/{index-C9hBD-32.js → index-Dyzl8Hn6.js} +8 -2
- package/dist/cjs/index.cjs.js +8 -0
- package/dist/cjs/{insurance-state-d2thhXUX.js → insurance-state-uWOl6jJN.js} +2 -2
- package/dist/cjs/justifi-additional-questions-form-step-core_6.cjs.entry.js +9 -24
- package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +8 -8
- package/dist/cjs/justifi-additional-statement_8.cjs.entry.js +9 -9
- package/dist/cjs/justifi-apple-pay.cjs.entry.js +177 -86
- package/dist/cjs/justifi-bank-account-billing-form-simple_9.cjs.entry.js +24 -42
- package/dist/cjs/justifi-business-details.cjs.entry.js +10 -10
- package/dist/cjs/justifi-business-form.cjs.entry.js +15 -30
- package/dist/cjs/justifi-business-representative-form-inputs.cjs.entry.js +1 -1
- package/dist/cjs/justifi-checkout-summary_7.cjs.entry.js +196 -164
- package/dist/cjs/justifi-checkout.cjs.entry.js +19 -11
- package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +8 -8
- package/dist/cjs/justifi-checkouts-list.cjs.entry.js +14 -14
- package/dist/cjs/justifi-config-provider.cjs.entry.js +3 -3
- package/dist/cjs/justifi-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-management-core.cjs.entry.js +2 -2
- package/dist/cjs/justifi-dispute-management.cjs.entry.js +10 -10
- package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +15 -15
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +9 -9
- package/dist/cjs/justifi-order-terminals.cjs.entry.js +16 -44
- package/dist/cjs/justifi-owner-form_3.cjs.entry.js +8 -8
- package/dist/cjs/justifi-payment-details.cjs.entry.js +11 -11
- package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +3 -3
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +9 -9
- package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +14 -16
- package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +7 -7
- package/dist/cjs/justifi-payments-list.cjs.entry.js +14 -14
- package/dist/cjs/justifi-payout-details.cjs.entry.js +10 -10
- package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +16 -22
- package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +7 -7
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +15 -15
- package/dist/cjs/justifi-refund-payment.cjs.entry.js +15 -21
- package/dist/cjs/justifi-saved-payment-method.cjs.entry.js +1 -1
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +14 -25
- package/dist/cjs/justifi-skeleton.cjs.entry.js +4 -4
- package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +9 -9
- package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +12 -12
- package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +8 -8
- package/dist/cjs/justifi-terminals-list.cjs.entry.js +14 -14
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-DqvfEWsE.js → package-BNN5fdIc.js} +1 -1
- package/dist/cjs/pagination-menu.cjs.entry.js +1 -1
- package/dist/cjs/payment-details-core.cjs.entry.js +16 -28
- package/dist/cjs/payment-method-option.cjs.entry.js +3 -3
- package/dist/cjs/{payment.service--kzMop3L.js → payment.service-DUq-W7tS.js} +2 -2
- package/dist/cjs/payments-list-core.cjs.entry.js +12 -12
- package/dist/cjs/{payouts-list-params-state-Cewmin_p.js → payments-list-params-state-C4c8UZtP.js} +1 -1
- package/dist/cjs/{payments-status-DXRh_ekP.js → payments-status-3iIQkoov.js} +2 -2
- package/dist/cjs/{payments-table-DFRtk-T9.js → payments-table-BSHUQhM-.js} +4 -6
- package/dist/cjs/payout-details-core.cjs.entry.js +12 -24
- package/dist/cjs/{payout.service-D3omzNG_.js → payout.service-DoKMr8Xw.js} +2 -2
- package/dist/cjs/payouts-list-core.cjs.entry.js +12 -12
- package/dist/cjs/{terminal-orders-list-params-state-Cewmin_p.js → payouts-list-params-state-C4c8UZtP.js} +1 -1
- package/dist/cjs/{payouts-status-DxTQZv3i.js → payouts-status-DoQbxIms.js} +2 -2
- package/dist/cjs/{payouts-table-DE3t0x93.js → payouts-table-BD_Fhz_j.js} +5 -7
- package/dist/cjs/{skeleton-C7DQRD6r.js → skeleton-CuIMC98G.js} +1 -1
- package/dist/cjs/spinner-CMZXdrPe.js +10 -0
- package/dist/cjs/{styled-host-BfVJlAsJ.js → styled-host-2KXbjOFw.js} +2 -4
- package/dist/cjs/{table-Ccdrt0v_.js → table-DlQCUVag.js} +5 -11
- package/dist/cjs/table-filters-menu.cjs.entry.js +3 -3
- package/dist/cjs/terminal-orders-list-core.cjs.entry.js +11 -11
- package/dist/cjs/{checkouts-list-params-state-Cewmin_p.js → terminal-orders-list-params-state-C4c8UZtP.js} +1 -1
- package/dist/cjs/{terminal-orders-table-B1LJitwE.js → terminal-orders-table-t6XxNy_K.js} +7 -11
- package/dist/cjs/terminal-quantity-selector.cjs.entry.js +2 -2
- package/dist/cjs/{terminal.service-BOvYfpQW.js → terminal.service-Iyje71vN.js} +2 -2
- package/dist/cjs/terminals-list-core.cjs.entry.js +11 -11
- package/dist/cjs/terminals-list-params-state-C4c8UZtP.js +22 -0
- package/dist/cjs/{terminals-table-DYt7exFQ.js → terminals-table-BTdKRiBN.js} +3 -3
- package/dist/cjs/{utils-BaGF9XIe.js → utils-ChCUZgUy.js} +6 -0
- package/dist/cjs/utils-FFP5ZHyE.js +18 -0
- package/dist/cjs/webcomponents.cjs.js +3 -3
- package/dist/collection/api/Payment.js +2 -0
- package/dist/collection/api/index.js +1 -2
- package/dist/collection/api/services/apple-pay.service.js +95 -8
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/checkout/bank-account-form/bank-account-form.js +6 -3
- package/dist/collection/components/checkout/card-form/card-form.js +6 -3
- package/dist/collection/components/checkout/checkout.js +16 -1
- package/dist/collection/components/checkout/save-new-payment-method.js +26 -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 +1 -1
- 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 +27 -0
- package/dist/collection/components/modular-checkout/modular-checkout.js +130 -66
- package/dist/collection/components/modular-checkout/sub-components/apple-pay-skeleton.js +2 -2
- package/dist/collection/components/modular-checkout/sub-components/apple-pay.js +72 -70
- package/dist/collection/components/modular-checkout/sub-components/bank-account.js +2 -2
- 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/plaid-payment-method.js +57 -65
- package/dist/collection/components/modular-checkout/sub-components/plaid-payment-method.test.js +8 -6
- package/dist/collection/components/modular-checkout/sub-components/saved-payment-methods.js +8 -10
- package/dist/collection/components/modular-checkout/sub-components/sezzle-payment-method.js +22 -7
- 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/tokenize-payment-method.js +29 -10
- package/dist/collection/index.js +1 -0
- package/dist/collection/store/checkout.store.js +46 -3
- 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 +5 -5
- 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/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-radio-list-item.js +4 -4
- package/dist/collection/ui-components/shadow-dom-components/justifi-skeleton.js +1 -1
- package/dist/collection/utils/utils.js +5 -0
- package/dist/docs.json +186 -86
- package/dist/esm/{Api-C1I68Tfr.js → Api-D4tj-h4P.js} +2 -2
- package/dist/esm/{Refund-kKW8S1h6.js → Refund-Bc5By0lb.js} +3 -1
- package/dist/esm/additional-questions-details_5.entry.js +3 -3
- package/dist/esm/{badge-DSYSJcRy.js → badge-ChwzCNAF.js} +1 -1
- package/dist/esm/bank-account-document-form-inputs_4.entry.js +9 -9
- package/dist/esm/bank-account-form.entry.js +10 -15
- package/dist/esm/business-details-core.entry.js +6 -21
- package/dist/esm/{business.service-B3wlBl1x.js → business.service-CsbtEDNi.js} +2 -2
- package/dist/esm/{button-CpllL0At.js → button-SAIS_5os.js} +2 -3
- package/dist/esm/card-form.entry.js +10 -19
- package/dist/esm/{check-pkg-version-ucd96eu6.js → check-pkg-version-BUkwdVdm.js} +3 -3
- package/dist/esm/{checkout.service-KDp7tISm.js → checkout.service-BCkQ9pOA.js} +2 -2
- package/dist/esm/checkout.store-DBvS7cVB.js +79 -0
- package/dist/esm/checkouts-list-core.entry.js +11 -11
- package/dist/esm/{checkouts-list-params-state-D8tzsGR_.js → checkouts-list-params-state-C2_GlMKR.js} +1 -1
- package/dist/esm/{checkouts-table-QOdiLpak.js → checkouts-table-CItEo0DU.js} +4 -6
- package/dist/esm/{config-state-DZeVYerv.js → config-state-Blo0ywwc.js} +1 -1
- package/dist/esm/custom-popper_2.entry.js +3 -3
- package/dist/esm/{dispute.service-DEZEPwn-.js → dispute.service-CyLtJREK.js} +2 -2
- package/dist/esm/form-alert_5.entry.js +1 -1
- package/dist/esm/form-control-checkbox.entry.js +5 -5
- package/dist/esm/form-control-date.entry.js +4 -4
- package/dist/esm/{form-control-error-text-R7U07nTg.js → form-control-error-text-IXJJ4JpV.js} +1 -1
- package/dist/esm/form-control-file-v2_2.entry.js +5 -5
- package/dist/esm/{form-control-help-text-CRLH-2f7.js → form-control-help-text-CuhIsM3v.js} +1 -1
- package/dist/esm/form-control-help-text.entry.js +1 -1
- package/dist/esm/form-control-monetary-provisioning.entry.js +3 -3
- package/dist/esm/form-control-monetary.entry.js +6 -6
- package/dist/esm/form-control-number-masked_2.entry.js +4 -4
- package/dist/esm/form-control-number.entry.js +5 -5
- package/dist/esm/form-control-radio.entry.js +3 -3
- package/dist/esm/form-control-select_2.entry.js +6 -6
- package/dist/esm/{get-payment-details-CYASKLT7.js → get-payment-details-BuT0QNOo.js} +2 -2
- package/dist/esm/{get-subaccounts-E0PYy_pc.js → get-subaccounts-VjY6-x_9.js} +3 -3
- package/dist/esm/gross-payment-chart-core.entry.js +5 -5
- package/dist/esm/{header-1-3M9If0gM.js → header-1-zXsamUS3.js} +1 -1
- package/dist/esm/{header-3-CWa41YWq.js → header-3-DVtaUAlf.js} +1 -1
- package/dist/esm/hidden-input_2.entry.js +8 -8
- package/dist/esm/{checkout.store-UMe84fjY.js → index-DCIW8z1f.js} +27 -38
- package/dist/esm/{index-B_KxSZIF.js → index-ZfXl6Xrm.js} +1 -1
- package/dist/esm/{index-Bn7inNWG.js → index-qipqIMyC.js} +8 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/{insurance-state-CTalqbNa.js → insurance-state-Dh9f36Qh.js} +2 -2
- package/dist/esm/justifi-additional-questions-form-step-core_6.entry.js +9 -24
- package/dist/esm/justifi-additional-questions-form-step_9.entry.js +8 -8
- package/dist/esm/justifi-additional-statement_8.entry.js +9 -9
- package/dist/esm/justifi-apple-pay.entry.js +177 -86
- package/dist/esm/justifi-bank-account-billing-form-simple_9.entry.js +24 -42
- package/dist/esm/justifi-business-details.entry.js +10 -10
- package/dist/esm/justifi-business-form.entry.js +15 -30
- package/dist/esm/justifi-business-representative-form-inputs.entry.js +1 -1
- package/dist/esm/justifi-checkout-summary_7.entry.js +189 -157
- package/dist/esm/justifi-checkout.entry.js +19 -11
- package/dist/esm/justifi-checkouts-list-filters.entry.js +8 -8
- package/dist/esm/justifi-checkouts-list.entry.js +14 -14
- package/dist/esm/justifi-config-provider.entry.js +3 -3
- package/dist/esm/justifi-details.entry.js +2 -2
- package/dist/esm/justifi-dispute-management-core.entry.js +2 -2
- package/dist/esm/justifi-dispute-management.entry.js +10 -10
- package/dist/esm/justifi-dispute-notification_3.entry.js +15 -15
- package/dist/esm/justifi-gross-payment-chart.entry.js +9 -9
- package/dist/esm/justifi-order-terminals.entry.js +16 -44
- package/dist/esm/justifi-owner-form_3.entry.js +8 -8
- package/dist/esm/justifi-payment-details.entry.js +11 -11
- package/dist/esm/justifi-payment-provisioning-core.entry.js +3 -3
- package/dist/esm/justifi-payment-provisioning.entry.js +9 -9
- package/dist/esm/justifi-payment-transactions-list.entry.js +14 -16
- package/dist/esm/justifi-payments-list-filters.entry.js +7 -7
- package/dist/esm/justifi-payments-list.entry.js +14 -14
- package/dist/esm/justifi-payout-details.entry.js +10 -10
- package/dist/esm/justifi-payout-transactions-list.entry.js +16 -22
- package/dist/esm/justifi-payouts-list-filters.entry.js +7 -7
- package/dist/esm/justifi-payouts-list.entry.js +15 -15
- package/dist/esm/justifi-refund-payment.entry.js +15 -21
- package/dist/esm/justifi-saved-payment-method.entry.js +1 -1
- package/dist/esm/justifi-season-interruption-insurance.entry.js +14 -25
- package/dist/esm/justifi-skeleton.entry.js +4 -4
- package/dist/esm/justifi-terminal-orders-list-filters.entry.js +9 -9
- package/dist/esm/justifi-terminal-orders-list.entry.js +12 -12
- package/dist/esm/justifi-terminals-list-filters.entry.js +8 -8
- package/dist/esm/justifi-terminals-list.entry.js +14 -14
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{package-D51QuD44.js → package-BBpkkt2-.js} +1 -1
- package/dist/esm/pagination-menu.entry.js +1 -1
- package/dist/esm/payment-details-core.entry.js +16 -28
- package/dist/esm/payment-method-option.entry.js +3 -3
- package/dist/esm/{payment.service-uJpJaX2Z.js → payment.service-QJEmd6Nl.js} +2 -2
- package/dist/esm/payments-list-core.entry.js +12 -12
- package/dist/esm/{payments-list-params-state-D8tzsGR_.js → payments-list-params-state-C2_GlMKR.js} +1 -1
- package/dist/esm/{payments-status-5orNU2Rd.js → payments-status-DDafc8Yr.js} +2 -2
- package/dist/esm/{payments-table-B0uyodyJ.js → payments-table-De3Jb6rY.js} +4 -6
- package/dist/esm/payout-details-core.entry.js +12 -24
- package/dist/esm/{payout.service-ClUgtbbb.js → payout.service-XxyEr0rj.js} +2 -2
- package/dist/esm/payouts-list-core.entry.js +12 -12
- package/dist/esm/{payouts-list-params-state-D8tzsGR_.js → payouts-list-params-state-C2_GlMKR.js} +1 -1
- package/dist/esm/{payouts-status-CZPwa2AE.js → payouts-status-u1eSRz3Q.js} +2 -2
- package/dist/esm/{payouts-table-CaCSX_0q.js → payouts-table-BO-MCzXj.js} +5 -7
- package/dist/esm/{skeleton-qMb0_Cjy.js → skeleton-DtpkgjZ6.js} +1 -1
- package/dist/esm/spinner-CIXUVK4F.js +8 -0
- package/dist/esm/{styled-host-CTAGIN84.js → styled-host-CbizlfAU.js} +2 -4
- package/dist/esm/{table-Br3n9Xu-.js → table-DcRHK_sm.js} +5 -11
- package/dist/esm/table-filters-menu.entry.js +3 -3
- package/dist/esm/terminal-orders-list-core.entry.js +11 -11
- package/dist/esm/{terminal-orders-list-params-state-D8tzsGR_.js → terminal-orders-list-params-state-C2_GlMKR.js} +1 -1
- package/dist/esm/{terminal-orders-table-DPtof5Zb.js → terminal-orders-table-9nsnrAq8.js} +7 -11
- package/dist/esm/terminal-quantity-selector.entry.js +2 -2
- package/dist/esm/{terminal.service-ClNtE3e-.js → terminal.service-D2oETGnk.js} +2 -2
- package/dist/esm/terminals-list-core.entry.js +11 -11
- package/dist/esm/terminals-list-params-state-C2_GlMKR.js +16 -0
- package/dist/esm/{terminals-table-ClkR_jrC.js → terminals-table-C6NO2m-t.js} +3 -3
- package/dist/esm/{utils-lb8p1Exq.js → utils-BscIVFn8.js} +6 -1
- package/dist/esm/utils-_ckvHjSW.js +11 -0
- package/dist/esm/webcomponents.js +4 -4
- package/dist/module/ModularCheckout.js +57 -0
- package/dist/module/Refund.js +2 -0
- package/dist/module/additional-questions-details2.js +4 -2
- package/dist/module/additional-questions.js +4 -2
- package/dist/module/additional-statement.js +5 -3
- package/dist/module/bank-account-billing-form-simple.js +4 -2
- package/dist/module/bank-account-document-inputs.js +4 -2
- package/dist/module/bank-account-form-inputs2.js +4 -2
- package/dist/module/bank-account-form.js +10 -13
- package/dist/module/bank-account.js +7 -13
- package/dist/module/billing-form-full.js +4 -2
- package/dist/module/billing-form.js +4 -2
- package/dist/module/business-additional-questions-form-step-core.js +4 -2
- package/dist/module/business-additional-questions-form-step.js +4 -2
- package/dist/module/business-bank-account-form-step-core.js +4 -2
- package/dist/module/business-bank-account-form-step.js +4 -2
- package/dist/module/business-core-info-form-step-core.js +4 -2
- package/dist/module/business-core-info-form-step.js +4 -2
- package/dist/module/business-core-info.js +4 -2
- package/dist/module/business-details-core2.js +6 -19
- package/dist/module/business-documents-on-file2.js +4 -2
- package/dist/module/business-owners-form-step-core.js +4 -2
- package/dist/module/business-owners-form-step.js +4 -2
- package/dist/module/business-representative-form-inputs.js +4 -2
- package/dist/module/business-representative-form-step-core.js +4 -2
- package/dist/module/business-representative-form-step.js +4 -2
- package/dist/module/business-representative.js +4 -2
- package/dist/module/business-terms-conditions-form-step.js +4 -2
- package/dist/module/button.js +1 -2
- package/dist/module/cancellation-policy.js +5 -3
- package/dist/module/card-billing-form-simple.js +4 -2
- package/dist/module/card-form.js +10 -17
- package/dist/module/card-form2.js +7 -17
- package/dist/module/checkout.store.js +42 -31
- package/dist/module/checkouts-list-core2.js +6 -6
- package/dist/module/core-info-details2.js +4 -2
- package/dist/module/custom-popper2.js +6 -4
- package/dist/module/customer-details.js +5 -3
- package/dist/module/details.js +4 -2
- package/dist/module/dispute-management-core.js +5 -3
- package/dist/module/dispute-notification.js +5 -3
- package/dist/module/dispute-response-core.js +5 -3
- package/dist/module/dispute-response.js +5 -3
- package/dist/module/duplicate-charge.js +5 -3
- package/dist/module/electronic-evidence.js +5 -3
- package/dist/module/form-alert2.js +4 -2
- package/dist/module/form-control-checkbox2.js +6 -4
- package/dist/module/form-control-date2.js +6 -4
- package/dist/module/form-control-file-v22.js +5 -3
- package/dist/module/form-control-file2.js +6 -4
- package/dist/module/form-control-help-text2.js +4 -2
- package/dist/module/form-control-monetary-provisioning2.js +4 -2
- package/dist/module/form-control-monetary2.js +6 -4
- package/dist/module/form-control-number-masked2.js +6 -4
- package/dist/module/form-control-number.js +6 -4
- package/dist/module/form-control-radio2.js +7 -5
- package/dist/module/form-control-select2.js +6 -4
- package/dist/module/form-control-text2.js +6 -4
- package/dist/module/form-control-textarea2.js +6 -4
- package/dist/module/form-control-tooltip2.js +4 -2
- package/dist/module/gross-payment-chart-core2.js +6 -4
- package/dist/module/hidden-input2.js +5 -3
- package/dist/module/identity-address-form.js +4 -2
- package/dist/module/iframe-input2.js +7 -5
- package/dist/module/index.js +1 -0
- package/dist/module/justifi-apple-pay.js +174 -86
- package/dist/module/justifi-business-details.js +4 -2
- package/dist/module/justifi-business-form.js +6 -19
- package/dist/module/justifi-button2.js +5 -3
- package/dist/module/justifi-checkout.js +15 -4
- package/dist/module/justifi-checkouts-list-filters.js +5 -3
- package/dist/module/justifi-checkouts-list.js +5 -3
- package/dist/module/justifi-config-provider.js +4 -2
- package/dist/module/justifi-dispute-management.js +5 -3
- package/dist/module/justifi-gross-payment-chart.js +4 -2
- package/dist/module/justifi-header2.js +5 -3
- package/dist/module/justifi-order-terminals.js +9 -35
- package/dist/module/justifi-payment-details.js +4 -2
- package/dist/module/justifi-payment-provisioning.js +4 -2
- package/dist/module/justifi-payment-transactions-list.js +6 -6
- package/dist/module/justifi-payments-list-filters.js +6 -4
- package/dist/module/justifi-payments-list.js +5 -3
- package/dist/module/justifi-payout-details.js +4 -2
- package/dist/module/justifi-payout-transactions-list.js +8 -12
- package/dist/module/justifi-payouts-list-filters.js +6 -4
- package/dist/module/justifi-payouts-list.js +5 -3
- package/dist/module/justifi-radio-list-item2.js +6 -4
- package/dist/module/justifi-refund-payment.js +6 -10
- package/dist/module/justifi-saved-payment-method.js +4 -2
- package/dist/module/justifi-season-interruption-insurance.js +6 -16
- package/dist/module/justifi-skeleton.js +5 -3
- package/dist/module/justifi-terminal-orders-list-filters.js +6 -4
- package/dist/module/justifi-terminal-orders-list.js +5 -3
- package/dist/module/justifi-terminals-list-filters.js +5 -3
- package/dist/module/justifi-terminals-list.js +5 -3
- package/dist/module/legal-address-details2.js +4 -2
- package/dist/module/legal-address-form-step-core.js +4 -2
- package/dist/module/legal-address-form-step.js +4 -2
- package/dist/module/legal-address-form.js +4 -2
- package/dist/module/modular-checkout.js +99 -39
- package/dist/module/owner-details2.js +4 -2
- package/dist/module/owner-form-core2.js +4 -2
- package/dist/module/owner-form-inputs2.js +4 -2
- package/dist/module/owner-form.js +4 -2
- package/dist/module/package.js +1 -1
- package/dist/module/pagination-menu2.js +4 -2
- package/dist/module/payment-details-core2.js +13 -23
- package/dist/module/payment-method-option.js +5 -3
- package/dist/module/payment-provisioning-core.js +4 -2
- package/dist/module/payment-provisioning-form-buttons.js +4 -2
- package/dist/module/payment-provisioning-form-steps.js +4 -2
- package/dist/module/payment-provisioning-loading.js +2 -17
- package/dist/module/payments-list-core2.js +6 -6
- package/dist/module/payout-details-core2.js +8 -18
- package/dist/module/payouts-list-core2.js +7 -7
- package/dist/module/plaid-payment-method.js +49 -104
- package/dist/module/plaid.service.js +26 -0
- package/dist/module/product-or-service.js +5 -3
- package/dist/module/refund-policy.js +5 -3
- package/dist/module/representative-details2.js +4 -2
- package/dist/module/save-new-payment-method.js +7 -3
- package/dist/module/saved-payment-methods.js +13 -12
- package/dist/module/sezzle-payment-method.js +14 -24
- package/dist/module/shipping-details.js +5 -3
- package/dist/module/spinner.js +1 -3
- package/dist/module/styled-host.js +1 -3
- package/dist/module/summary.js +5 -3
- package/dist/module/table-filters-menu2.js +5 -3
- package/dist/module/table.js +3 -9
- package/dist/module/terminal-orders-list-core2.js +7 -9
- package/dist/module/terminal-quantity-selector2.js +5 -3
- package/dist/module/terminals-list-core2.js +6 -4
- package/dist/module/tokenize-payment-method.js +16 -12
- package/dist/module/utils.js +5 -16
- package/dist/module/utils2.js +6 -1
- package/dist/types/api/Checkout.d.ts +7 -15
- package/dist/types/api/Payment.d.ts +3 -1
- package/dist/types/api/index.d.ts +2 -2
- package/dist/types/api/services/apple-pay.service.d.ts +7 -0
- package/dist/types/components/checkout/bank-account-form/bank-account-form.d.ts +1 -0
- package/dist/types/components/checkout/card-form/card-form.d.ts +1 -0
- package/dist/types/components/checkout/checkout.d.ts +5 -0
- package/dist/types/components/checkout/save-new-payment-method.d.ts +1 -0
- package/dist/types/components/modular-checkout/ModularCheckout.d.ts +41 -0
- package/dist/types/components/modular-checkout/modular-checkout.d.ts +5 -3
- package/dist/types/components/modular-checkout/sub-components/apple-pay-skeleton.d.ts +1 -1
- package/dist/types/components/modular-checkout/sub-components/apple-pay.d.ts +9 -3
- package/dist/types/components/modular-checkout/sub-components/plaid-payment-method.d.ts +1 -2
- package/dist/types/components/modular-checkout/sub-components/saved-payment-methods.d.ts +3 -3
- package/dist/types/components/modular-checkout/sub-components/sezzle-payment-method.d.ts +1 -1
- package/dist/types/components/tokenize-payment-method/tokenize-payment-method.d.ts +2 -1
- package/dist/types/components.d.ts +23 -16
- package/dist/types/index.d.ts +4 -0
- package/dist/types/stencil-public-runtime.d.ts +21 -0
- package/dist/types/store/checkout.store.d.ts +12 -5
- package/dist/types/ui-components/form/form-control-radio.d.ts +1 -1
- package/dist/types/ui-components/shadow-dom-components/justifi-radio-list-item.d.ts +1 -1
- package/dist/types/utils/utils.d.ts +1 -0
- package/dist/webcomponents/index.esm.js +1 -0
- package/dist/webcomponents/p-005efe51.entry.js +1 -0
- package/dist/webcomponents/p-0142114f.entry.js +1 -0
- package/dist/webcomponents/{p-54ca3070.entry.js → p-0801324e.entry.js} +1 -1
- package/dist/webcomponents/{p-ed7dfcf3.entry.js → p-0d8fe5f2.entry.js} +1 -1
- package/dist/webcomponents/{p-613421d4.entry.js → p-146de253.entry.js} +1 -1
- package/dist/webcomponents/p-17f7590c.entry.js +1 -0
- package/dist/webcomponents/{p-9846b23d.entry.js → p-1b7926f6.entry.js} +1 -1
- package/dist/webcomponents/{p-44450a94.entry.js → p-20f036cc.entry.js} +1 -1
- package/dist/webcomponents/{p-f13ae573.entry.js → p-2246aa69.entry.js} +1 -1
- package/dist/webcomponents/p-246ef4ff.entry.js +1 -0
- package/dist/webcomponents/{p-bcb1d661.entry.js → p-25484e99.entry.js} +1 -1
- package/dist/webcomponents/{p-053c183b.entry.js → p-265d0a1d.entry.js} +1 -1
- package/dist/webcomponents/{p-4213d10e.entry.js → p-27fc3ef0.entry.js} +3 -3
- package/dist/webcomponents/{p-9b0f0f53.entry.js → p-2a43e77f.entry.js} +1 -1
- package/dist/webcomponents/p-30c414b5.entry.js +1 -0
- package/dist/webcomponents/{p-8d891445.entry.js → p-3152c84f.entry.js} +1 -1
- package/dist/webcomponents/p-3546a5aa.entry.js +1 -0
- package/dist/webcomponents/p-3621a429.entry.js +1 -0
- package/dist/webcomponents/p-3906296f.entry.js +1 -0
- package/dist/webcomponents/{p-f1cba43c.entry.js → p-3d37045d.entry.js} +1 -1
- package/dist/webcomponents/p-3e320c0d.entry.js +1 -0
- package/dist/webcomponents/p-406ba650.entry.js +1 -0
- package/dist/webcomponents/p-44d1341c.entry.js +1 -0
- package/dist/webcomponents/{p-6255c685.entry.js → p-44e32f85.entry.js} +1 -1
- package/dist/webcomponents/p-4ea83bfd.entry.js +1 -0
- package/dist/webcomponents/p-558f7967.entry.js +1 -0
- package/dist/webcomponents/p-5c3d8de5.entry.js +1 -0
- package/dist/webcomponents/p-5c477f08.entry.js +1 -0
- package/dist/webcomponents/p-68329f16.entry.js +1 -0
- package/dist/webcomponents/p-6fdc03bc.entry.js +1 -0
- package/dist/webcomponents/p-6fe79f16.entry.js +1 -0
- package/dist/webcomponents/p-7aeb20d2.entry.js +1 -0
- package/dist/webcomponents/p-7b103dad.entry.js +1 -0
- package/dist/webcomponents/{p-28618e6f.entry.js → p-7c5cd118.entry.js} +1 -1
- package/dist/webcomponents/{p-17896a6d.entry.js → p-7cb6cc9f.entry.js} +1 -1
- package/dist/webcomponents/p-7e04d5af.entry.js +1 -0
- package/dist/webcomponents/p-82781411.entry.js +1 -0
- package/dist/webcomponents/p-84043580.entry.js +1 -0
- package/dist/webcomponents/p-8467851a.entry.js +1 -0
- package/dist/webcomponents/{p-95cbb655.entry.js → p-8d3f5638.entry.js} +1 -1
- package/dist/webcomponents/p-906fdf0c.entry.js +1 -0
- package/dist/webcomponents/{p-9a2c044f.entry.js → p-90e43440.entry.js} +1 -1
- package/dist/webcomponents/p-95348ff6.entry.js +1 -0
- package/dist/webcomponents/{p-15705e8a.entry.js → p-9c4079cc.entry.js} +1 -1
- package/dist/webcomponents/{p-f04c79f2.entry.js → p-9d7b5d07.entry.js} +1 -1
- package/dist/webcomponents/p-9fc464eb.entry.js +1 -0
- package/dist/webcomponents/{p-0mMX1Zv4.js → p-B4idKqyn.js} +1 -1
- package/dist/webcomponents/p-BBpkkt2-.js +1 -0
- package/dist/webcomponents/{p-zdIeCUeh.js → p-BHf9IqGw.js} +1 -1
- package/dist/webcomponents/{p-DNo0OPOP.js → p-BIPdn2VU.js} +1 -1
- package/dist/webcomponents/{p-BPtcGAzB.js → p-BUa0YOaw.js} +1 -1
- package/dist/webcomponents/{p-B8iBcmNu.js → p-BY2p6Sxk.js} +1 -1
- package/dist/webcomponents/{p-CB0mCq1M.js → p-BZ7C9duj.js} +1 -1
- package/dist/webcomponents/{p-DGmp4ErD.js → p-BdLLGV9t.js} +1 -1
- package/dist/webcomponents/p-BguBT6Hn.js +1 -0
- package/dist/webcomponents/{p-DhGNCW2f.js → p-Bp_QFeog.js} +1 -1
- package/dist/webcomponents/{p-B71k50jz.js → p-Bvp7uul3.js} +1 -1
- package/dist/webcomponents/{p-CvG-itHC.js → p-C1xGBPma.js} +1 -1
- package/dist/webcomponents/p-C3n7-tlg.js +1 -0
- package/dist/webcomponents/{p-DxqCFDtF.js → p-CLQx9p9q.js} +1 -1
- package/dist/webcomponents/{p-b21ncS7l.js → p-CPVN4dXS.js} +1 -1
- package/dist/webcomponents/p-CQeex56P.js +1 -0
- package/dist/webcomponents/p-CU4XQ3fO.js +1 -0
- package/dist/webcomponents/{p-Bb-6bNcq.js → p-C_3N7nqh.js} +1 -1
- package/dist/webcomponents/{p-BRLwUSZk.js → p-CaxjN6Uo.js} +1 -1
- package/dist/webcomponents/p-CpKvg1ok.js +1 -0
- package/dist/webcomponents/p-CrQgyTRz.js +1 -0
- package/dist/webcomponents/{p-Bu1jU017.js → p-CxzFvTgf.js} +1 -1
- package/dist/webcomponents/{p-DVBbk00Z.js → p-CzPUMw00.js} +1 -1
- package/dist/webcomponents/{p-DDUmOl3v.js → p-D--yCspA.js} +1 -1
- package/dist/webcomponents/{p-qWQmu-fb.js → p-D-JYHdJ7.js} +1 -1
- package/dist/webcomponents/p-D6XirF21.js +1 -0
- package/dist/webcomponents/p-DCIW8z1f.js +1 -0
- package/dist/webcomponents/{p-BfM6X7lF.js → p-DCMrHeJI.js} +1 -1
- package/dist/webcomponents/{p-tkZEz3MG.js → p-D_5McRD_.js} +1 -1
- package/dist/webcomponents/p-DbX0g1WF.js +1 -0
- package/dist/webcomponents/p-De8UloOS.js +1 -0
- package/dist/webcomponents/p-DsAwPf2y.js +1 -0
- package/dist/webcomponents/p-DvZcI6pC.js +1 -0
- package/dist/webcomponents/p-DyDHaG6n.js +1 -0
- package/dist/webcomponents/{p-D2_iJUrZ.js → p-DyOgQlh2.js} +1 -1
- package/dist/webcomponents/p-IG_KR8zP.js +1 -0
- package/dist/webcomponents/p-Xv8DuU3Y.js +1 -0
- package/dist/webcomponents/{p-d46dbb83.entry.js → p-a71a5e64.entry.js} +1 -1
- package/dist/webcomponents/{p-a0cc3d92.entry.js → p-a7e40e91.entry.js} +1 -1
- package/dist/webcomponents/{p-72dda22b.entry.js → p-a90b8b93.entry.js} +1 -1
- package/dist/webcomponents/{p-70f51444.entry.js → p-a928c6fb.entry.js} +1 -1
- package/dist/webcomponents/p-b90999af.entry.js +1 -0
- package/dist/webcomponents/{p-d277cc68.entry.js → p-bc3cdc7b.entry.js} +1 -1
- package/dist/webcomponents/p-c16c0cbc.entry.js +1 -0
- package/dist/webcomponents/p-c262d10f.entry.js +1 -0
- package/dist/webcomponents/p-c4Mh3ZZ_.js +1 -0
- package/dist/webcomponents/{p-2a3c59d4.entry.js → p-c70e1aac.entry.js} +1 -1
- package/dist/webcomponents/{p-f680e617.entry.js → p-cecb65c4.entry.js} +1 -1
- package/dist/webcomponents/p-d7555ff1.entry.js +1 -0
- package/dist/webcomponents/{p-8ff839a4.entry.js → p-df329742.entry.js} +1 -1
- package/dist/webcomponents/{p-3e667b07.entry.js → p-e2a38ad0.entry.js} +1 -1
- package/dist/webcomponents/p-e6516014.entry.js +1 -0
- package/dist/webcomponents/{p-97c0dde4.entry.js → p-e6e96be2.entry.js} +1 -1
- package/dist/webcomponents/p-e79338f9.entry.js +1 -0
- package/dist/webcomponents/p-ea2a9a81.entry.js +1 -0
- package/dist/webcomponents/p-f5c3f489.entry.js +1 -0
- package/dist/webcomponents/p-f6fbd43d.entry.js +1 -0
- package/dist/webcomponents/{p-00a845e5.entry.js → p-f7690165.entry.js} +1 -1
- package/dist/webcomponents/{p-7cf87637.entry.js → p-f8cbcbe9.entry.js} +1 -1
- package/dist/webcomponents/p-f99e4566.entry.js +1 -0
- package/dist/webcomponents/{p-C5id7s_l.js → p-fUtq2xDs.js} +1 -1
- package/dist/webcomponents/{p-Dgflaz6J.js → p-oGKW57R8.js} +1 -1
- package/dist/webcomponents/p-qipqIMyC.js +2 -0
- package/dist/webcomponents/p-xY5RkFuA.js +1 -0
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/spinner-jmeA44Ee.js +0 -12
- package/dist/cjs/terminals-list-params-state-Cewmin_p.js +0 -22
- package/dist/cjs/utils-Bzyj4qWe.js +0 -29
- package/dist/esm/spinner-DUzyWLhj.js +0 -10
- package/dist/esm/terminals-list-params-state-D8tzsGR_.js +0 -16
- package/dist/esm/utils-Dg6gMUTv.js +0 -22
- package/dist/webcomponents/p-040e8524.entry.js +0 -1
- package/dist/webcomponents/p-0f42c89d.entry.js +0 -1
- package/dist/webcomponents/p-1288fda5.entry.js +0 -1
- package/dist/webcomponents/p-14ff3155.entry.js +0 -1
- package/dist/webcomponents/p-2b5da0dc.entry.js +0 -1
- package/dist/webcomponents/p-3aecd2cd.entry.js +0 -1
- package/dist/webcomponents/p-3bf63d1e.entry.js +0 -1
- package/dist/webcomponents/p-5580e6ca.entry.js +0 -1
- package/dist/webcomponents/p-57dde36e.entry.js +0 -1
- package/dist/webcomponents/p-5bc6f5ca.entry.js +0 -1
- package/dist/webcomponents/p-5f87add5.entry.js +0 -1
- package/dist/webcomponents/p-60206d9c.entry.js +0 -1
- package/dist/webcomponents/p-7089fb85.entry.js +0 -1
- package/dist/webcomponents/p-724e57e1.entry.js +0 -1
- package/dist/webcomponents/p-72f3bbfc.entry.js +0 -1
- package/dist/webcomponents/p-84d2025d.entry.js +0 -1
- package/dist/webcomponents/p-851a418e.entry.js +0 -1
- package/dist/webcomponents/p-87884ca5.entry.js +0 -1
- package/dist/webcomponents/p-88905a54.entry.js +0 -1
- package/dist/webcomponents/p-8990707a.entry.js +0 -1
- package/dist/webcomponents/p-8b7cbdbf.entry.js +0 -1
- package/dist/webcomponents/p-8cca8903.entry.js +0 -1
- package/dist/webcomponents/p-98cffba9.entry.js +0 -1
- package/dist/webcomponents/p-9f5c9e41.entry.js +0 -1
- package/dist/webcomponents/p-B5Rc83j1.js +0 -1
- package/dist/webcomponents/p-BEPUC3Po.js +0 -1
- package/dist/webcomponents/p-BP7op0vq.js +0 -1
- package/dist/webcomponents/p-BQ2TIFoY.js +0 -1
- package/dist/webcomponents/p-BSt6p1oq.js +0 -1
- package/dist/webcomponents/p-BY1mRAvj.js +0 -1
- package/dist/webcomponents/p-BbZwa5UI.js +0 -1
- package/dist/webcomponents/p-Bn7inNWG.js +0 -2
- package/dist/webcomponents/p-C6c6Q0E7.js +0 -1
- package/dist/webcomponents/p-CaAVuW6B.js +0 -1
- package/dist/webcomponents/p-CpaS1Lex.js +0 -1
- package/dist/webcomponents/p-D51QuD44.js +0 -1
- package/dist/webcomponents/p-DD0Mvpeu.js +0 -1
- package/dist/webcomponents/p-DIDloHpm.js +0 -1
- package/dist/webcomponents/p-Dc1CS9Mi.js +0 -1
- package/dist/webcomponents/p-DsZZxRXY.js +0 -1
- package/dist/webcomponents/p-a1d3bb81.entry.js +0 -1
- package/dist/webcomponents/p-a9957ca5.entry.js +0 -1
- package/dist/webcomponents/p-abbf14b5.entry.js +0 -1
- package/dist/webcomponents/p-c44325f8.entry.js +0 -1
- package/dist/webcomponents/p-c65bcc0c.entry.js +0 -1
- package/dist/webcomponents/p-c874ca2b.entry.js +0 -1
- package/dist/webcomponents/p-caac63bf.entry.js +0 -1
- package/dist/webcomponents/p-d17e2531.entry.js +0 -1
- package/dist/webcomponents/p-d72e8541.entry.js +0 -1
- package/dist/webcomponents/p-eP3fmhta.js +0 -1
- package/dist/webcomponents/p-ef353e3d.entry.js +0 -1
- package/dist/webcomponents/p-fa1aba4e.entry.js +0 -1
- package/dist/webcomponents/p-fb16d889.entry.js +0 -1
- package/dist/webcomponents/p-fd4ffaa2.entry.js +0 -1
- package/dist/webcomponents/p-sw5RO19U.js +0 -1
|
@@ -4,7 +4,7 @@ import { ApplePayButtonType, ApplePayButtonStyle, ApplePayHelpers, } from "../..
|
|
|
4
4
|
import { StyledHost } from "../../../ui-components";
|
|
5
5
|
import ApplePaySkeleton from "./apple-pay-skeleton";
|
|
6
6
|
import { ApplePayButton } from "../../../ui-components/apple-pay-button";
|
|
7
|
-
import { checkoutStore
|
|
7
|
+
import { checkoutStore } from "../../../store/checkout.store";
|
|
8
8
|
export class ApplePay {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.countryCode = "US";
|
|
@@ -19,9 +19,10 @@ export class ApplePay {
|
|
|
19
19
|
this.isProcessing = false;
|
|
20
20
|
this.isAvailable = false;
|
|
21
21
|
this.canMakePayments = false;
|
|
22
|
+
this.isConfigValid = true;
|
|
22
23
|
this.error = null;
|
|
23
24
|
this.handleApplePayClick = async () => {
|
|
24
|
-
var _a;
|
|
25
|
+
var _a, _b;
|
|
25
26
|
if (this.isProcessing || this.disabled || !this.isAvailable) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
@@ -29,6 +30,14 @@ export class ApplePay {
|
|
|
29
30
|
this.isProcessing = true;
|
|
30
31
|
this.error = null;
|
|
31
32
|
this.applePayStarted.emit();
|
|
33
|
+
console.groupCollapsed('[ApplePay Component] handleApplePayClick');
|
|
34
|
+
console.log('[ApplePay Component] click context:', {
|
|
35
|
+
isProcessing: this.isProcessing,
|
|
36
|
+
disabled: this.disabled,
|
|
37
|
+
isAvailable: this.isAvailable,
|
|
38
|
+
canMakePayments: this.canMakePayments,
|
|
39
|
+
hasService: Boolean(this.applePayService),
|
|
40
|
+
});
|
|
32
41
|
const paymentRequest = {
|
|
33
42
|
countryCode: this.countryCode,
|
|
34
43
|
currencyCode: checkoutStore.paymentCurrency,
|
|
@@ -36,7 +45,13 @@ export class ApplePay {
|
|
|
36
45
|
supportedNetworks: ApplePayHelpers.getDefaultSupportedNetworks(),
|
|
37
46
|
total: ApplePayHelpers.createLineItem(checkoutStore.paymentDescription, checkoutStore.paymentAmount),
|
|
38
47
|
};
|
|
48
|
+
console.log("[ApplePay Component] paymentRequest", paymentRequest);
|
|
49
|
+
console.log('[ApplePay Component] identifiers snapshot:', {
|
|
50
|
+
authTokenLength: checkoutStore.authToken ? String(checkoutStore.authToken).length : 0,
|
|
51
|
+
accountId: checkoutStore.accountId,
|
|
52
|
+
});
|
|
39
53
|
const result = await this.applePayService.startPaymentSession(paymentRequest, checkoutStore.authToken, checkoutStore.accountId);
|
|
54
|
+
console.log("[ApplePay Component] startPaymentSession result", result);
|
|
40
55
|
if (result.success) {
|
|
41
56
|
this.applePayCompleted.emit({
|
|
42
57
|
success: true,
|
|
@@ -51,14 +66,14 @@ export class ApplePay {
|
|
|
51
66
|
});
|
|
52
67
|
this.applePayError.emit({
|
|
53
68
|
error: ((_a = result.error) === null || _a === void 0 ? void 0 : _a.message) || "Payment failed",
|
|
69
|
+
code: ((_b = result.error) === null || _b === void 0 ? void 0 : _b.code) || ApplePay.ErrorCode.PAYMENT_FAILED,
|
|
54
70
|
});
|
|
55
71
|
}
|
|
56
72
|
}
|
|
57
73
|
catch (error) {
|
|
58
|
-
console.error("Apple Pay payment error:", error);
|
|
59
74
|
const errorMessage = error instanceof Error ? error.message : "Payment failed";
|
|
60
75
|
this.error = errorMessage;
|
|
61
|
-
this.applePayError.emit({ error: errorMessage });
|
|
76
|
+
this.applePayError.emit({ error: errorMessage, code: ApplePay.ErrorCode.PAYMENT_FAILED });
|
|
62
77
|
this.applePayCompleted.emit({
|
|
63
78
|
success: false,
|
|
64
79
|
error: errorMessage,
|
|
@@ -66,43 +81,60 @@ export class ApplePay {
|
|
|
66
81
|
}
|
|
67
82
|
finally {
|
|
68
83
|
this.isProcessing = false;
|
|
84
|
+
console.groupEnd();
|
|
69
85
|
}
|
|
70
86
|
};
|
|
71
87
|
}
|
|
72
|
-
componentWillLoad() {
|
|
73
|
-
this.applePayService = new ApplePayService();
|
|
74
|
-
this.initializeApplePay();
|
|
75
|
-
}
|
|
76
|
-
componentDidLoad() {
|
|
77
|
-
onChange("paymentAmount", () => {
|
|
78
|
-
this.initializeApplePay();
|
|
79
|
-
});
|
|
80
|
-
onChange("authToken", () => {
|
|
81
|
-
this.initializeApplePay();
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
watchPropsChange() {
|
|
85
|
-
this.initializeApplePay();
|
|
86
|
-
}
|
|
87
88
|
async initializeApplePay() {
|
|
88
89
|
try {
|
|
89
90
|
this.isLoading = true;
|
|
90
91
|
this.error = null;
|
|
91
|
-
|
|
92
|
+
this.isConfigValid = true;
|
|
93
|
+
console.groupCollapsed('[ApplePay Component] initializeApplePay');
|
|
94
|
+
console.log('[ApplePay Component] checkout state snapshot:', {
|
|
95
|
+
paymentAmount: checkoutStore.paymentAmount,
|
|
96
|
+
paymentCurrency: checkoutStore.paymentCurrency,
|
|
97
|
+
hasAuthToken: Boolean(checkoutStore.authToken),
|
|
98
|
+
accountId: checkoutStore.accountId,
|
|
99
|
+
});
|
|
100
|
+
const hasRequiredConfig = Boolean(checkoutStore.paymentAmount) &&
|
|
101
|
+
Boolean(checkoutStore.paymentCurrency) &&
|
|
102
|
+
Boolean(checkoutStore.authToken);
|
|
103
|
+
if (!hasRequiredConfig) {
|
|
92
104
|
this.error = "Missing required Apple Pay configuration";
|
|
105
|
+
this.isConfigValid = false;
|
|
106
|
+
console.error("Apple Pay config error: missing required values", {
|
|
107
|
+
paymentAmount: checkoutStore.paymentAmount,
|
|
108
|
+
paymentCurrency: checkoutStore.paymentCurrency,
|
|
109
|
+
hasAuthToken: Boolean(checkoutStore.authToken),
|
|
110
|
+
accountId: checkoutStore.accountId,
|
|
111
|
+
});
|
|
112
|
+
this.applePayError.emit({ error: this.error, code: ApplePay.ErrorCode.CONFIG_ERROR });
|
|
93
113
|
this.isLoading = false;
|
|
114
|
+
console.groupEnd();
|
|
94
115
|
return;
|
|
95
116
|
}
|
|
96
117
|
this.isAvailable = ApplePayHelpers.isApplePaySupported();
|
|
97
118
|
this.canMakePayments = ApplePayHelpers.canMakePayments();
|
|
119
|
+
console.log('[ApplePay Component] support check:', {
|
|
120
|
+
isAvailable: this.isAvailable,
|
|
121
|
+
canMakePayments: this.canMakePayments,
|
|
122
|
+
hasApplePaySessionOnWindow: typeof window !== 'undefined' && 'ApplePaySession' in window,
|
|
123
|
+
});
|
|
98
124
|
if (!this.isAvailable) {
|
|
99
125
|
this.error = "Apple Pay is not supported on this device";
|
|
126
|
+
console.error(this.error);
|
|
127
|
+
this.applePayError.emit({ error: this.error, code: ApplePay.ErrorCode.NOT_SUPPORTED });
|
|
100
128
|
this.isLoading = false;
|
|
129
|
+
console.groupEnd();
|
|
101
130
|
return;
|
|
102
131
|
}
|
|
103
132
|
if (!this.canMakePayments) {
|
|
104
133
|
this.error = "Apple Pay is not available";
|
|
134
|
+
console.error(this.error);
|
|
135
|
+
this.applePayError.emit({ error: this.error, code: ApplePay.ErrorCode.NOT_AVAILABLE });
|
|
105
136
|
this.isLoading = false;
|
|
137
|
+
console.groupEnd();
|
|
106
138
|
return;
|
|
107
139
|
}
|
|
108
140
|
const applePayConfig = {
|
|
@@ -113,6 +145,8 @@ export class ApplePay {
|
|
|
113
145
|
buttonType: this.buttonType,
|
|
114
146
|
buttonStyle: this.buttonStyle,
|
|
115
147
|
};
|
|
148
|
+
console.log('[ApplePay Component] initializing service with config:', applePayConfig);
|
|
149
|
+
this.applePayService = new ApplePayService();
|
|
116
150
|
this.applePayService.initialize(applePayConfig);
|
|
117
151
|
const hasActiveCard = await this.applePayService.canMakePaymentsWithActiveCard();
|
|
118
152
|
if (!hasActiveCard) {
|
|
@@ -125,9 +159,11 @@ export class ApplePay {
|
|
|
125
159
|
error instanceof Error
|
|
126
160
|
? error.message
|
|
127
161
|
: "Failed to initialize Apple Pay";
|
|
162
|
+
this.applePayError.emit({ error: this.error, code: ApplePay.ErrorCode.INITIALIZATION_ERROR });
|
|
128
163
|
}
|
|
129
164
|
finally {
|
|
130
165
|
this.isLoading = false;
|
|
166
|
+
console.groupEnd();
|
|
131
167
|
}
|
|
132
168
|
}
|
|
133
169
|
async isSupported() {
|
|
@@ -148,42 +184,14 @@ export class ApplePay {
|
|
|
148
184
|
const isReady = !this.isLoading &&
|
|
149
185
|
this.isAvailable &&
|
|
150
186
|
this.canMakePayments &&
|
|
151
|
-
|
|
152
|
-
return (h(StyledHost, { key: '
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
this.
|
|
187
|
+
this.isConfigValid;
|
|
188
|
+
return (h(StyledHost, { key: '0610b810bc458f7382bb78ebe155e38cd39d7023' }, checkoutStore.checkoutLoaded && (h("script", { key: '036ba823079bb6daa62e72a8ee76cdc32dab60f0', async: true, src: 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js', onLoad: () => {
|
|
189
|
+
console.log('[ApplePay Component] Apple Pay SDK script loaded');
|
|
190
|
+
this.initializeApplePay();
|
|
191
|
+
} })), h("div", { key: 'f5211ca2212306b7ee99dc1f6f06f56a9aa08643', class: 'apple-pay-container' }, h(ApplePaySkeleton, { key: 'bb4680ed4760d378237d36dd60e76d2db9cf0dd4', isLoading: this.isLoading }), isReady && (h(ApplePayButton, { key: '6c984f15b8ef2e629325253428c8243935328050', buttonType: this.buttonType, buttonStyle: this.buttonStyle, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleApplePayClick }))), h("style", { key: '670fcfa28ea2405f772238add126525ecb14841b' }, `
|
|
156
192
|
.apple-pay-container {
|
|
157
193
|
width: 100%;
|
|
158
194
|
}
|
|
159
|
-
|
|
160
|
-
.apple-pay-error {
|
|
161
|
-
display: flex;
|
|
162
|
-
align-items: center;
|
|
163
|
-
gap: 8px;
|
|
164
|
-
padding: 12px;
|
|
165
|
-
background: #fef2f2;
|
|
166
|
-
border: 1px solid #fecaca;
|
|
167
|
-
border-radius: 8px;
|
|
168
|
-
color: #dc2626;
|
|
169
|
-
font-size: 14px;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.apple-pay-unavailable {
|
|
173
|
-
display: flex;
|
|
174
|
-
align-items: center;
|
|
175
|
-
justify-content: center;
|
|
176
|
-
padding: 12px;
|
|
177
|
-
background: #f9fafb;
|
|
178
|
-
border: 1px solid #e5e7eb;
|
|
179
|
-
border-radius: 8px;
|
|
180
|
-
color: #6b7280;
|
|
181
|
-
font-size: 14px;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
.error-icon {
|
|
185
|
-
font-size: 16px;
|
|
186
|
-
}
|
|
187
195
|
`)));
|
|
188
196
|
}
|
|
189
197
|
static get is() { return "justifi-apple-pay"; }
|
|
@@ -370,6 +378,7 @@ export class ApplePay {
|
|
|
370
378
|
"isProcessing": {},
|
|
371
379
|
"isAvailable": {},
|
|
372
380
|
"canMakePayments": {},
|
|
381
|
+
"isConfigValid": {},
|
|
373
382
|
"error": {}
|
|
374
383
|
};
|
|
375
384
|
}
|
|
@@ -436,8 +445,8 @@ export class ApplePay {
|
|
|
436
445
|
"text": ""
|
|
437
446
|
},
|
|
438
447
|
"complexType": {
|
|
439
|
-
"original": "{ error: string }",
|
|
440
|
-
"resolved": "{ error: string; }",
|
|
448
|
+
"original": "{ error: string, code: string }",
|
|
449
|
+
"resolved": "{ error: string; code: string; }",
|
|
441
450
|
"references": {}
|
|
442
451
|
}
|
|
443
452
|
}];
|
|
@@ -497,19 +506,12 @@ export class ApplePay {
|
|
|
497
506
|
}
|
|
498
507
|
};
|
|
499
508
|
}
|
|
500
|
-
static get watchers() {
|
|
501
|
-
return [{
|
|
502
|
-
"propName": "merchantIdentifier",
|
|
503
|
-
"methodName": "watchPropsChange"
|
|
504
|
-
}, {
|
|
505
|
-
"propName": "buttonType",
|
|
506
|
-
"methodName": "watchPropsChange"
|
|
507
|
-
}, {
|
|
508
|
-
"propName": "buttonStyle",
|
|
509
|
-
"methodName": "watchPropsChange"
|
|
510
|
-
}, {
|
|
511
|
-
"propName": "disabled",
|
|
512
|
-
"methodName": "watchPropsChange"
|
|
513
|
-
}];
|
|
514
|
-
}
|
|
515
509
|
}
|
|
510
|
+
// Centralized error codes for the Apple Pay component layer
|
|
511
|
+
ApplePay.ErrorCode = {
|
|
512
|
+
CONFIG_ERROR: 'CONFIG_ERROR',
|
|
513
|
+
NOT_SUPPORTED: 'NOT_SUPPORTED',
|
|
514
|
+
NOT_AVAILABLE: 'NOT_AVAILABLE',
|
|
515
|
+
INITIALIZATION_ERROR: 'INITIALIZATION_ERROR',
|
|
516
|
+
PAYMENT_FAILED: 'PAYMENT_FAILED',
|
|
517
|
+
};
|
|
@@ -40,10 +40,10 @@ export class BankAccountForm {
|
|
|
40
40
|
return this.accountNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
|
|
41
41
|
}
|
|
42
42
|
render() {
|
|
43
|
-
return (h(StyledHost, { key: '
|
|
43
|
+
return (h(StyledHost, { key: '99ccb5aa2afbf79e5bf40d59ca15eb217180349a' }, h(BankAccountFormSkeleton, { key: 'a26a6f4391a5e5b7923f36b05bdfe57491b31d8a', isReady: this.isReady }), h("hidden-input", { key: '7555fe1bbf38a1525e7c11fe7182e264752435c9' }), h("div", { key: 'd1d7141ee75a644d4ae67d23b353dc6293306371', class: "container-fluid p-0", style: {
|
|
44
44
|
opacity: this.isReady ? '1' : '0',
|
|
45
45
|
height: this.isReady ? 'auto' : '0',
|
|
46
|
-
} }, h("div", { key: '
|
|
46
|
+
} }, h("div", { key: 'db0d578ccb3647e049b5ef958bef0273a8945448', class: "row mb-3" }, h("iframe-input", { key: '58311d94a8f5f023f05de260afbaf6bc707a0d57', inputId: "accountNumber", ref: (el) => (this.accountNumberIframeElement = el), label: "Account Number", iframeOrigin: `${this.iframeOrigin}/v2/accountNumber` })), h("div", { key: '92e4b77f012a414ac88b8faf721b5a10f2c5a3a4', class: "row" }, h("iframe-input", { key: '5163f7e8cff8fb82bb009f615ef7ab2e231deb52', inputId: "routingNumber", ref: (el) => (this.routingNumberIframeElement = el), label: "Routing Number", iframeOrigin: `${this.iframeOrigin}/v2/routingNumber` })))));
|
|
47
47
|
}
|
|
48
48
|
static get is() { return "justifi-bank-account-form"; }
|
|
49
49
|
static get encapsulation() { return "shadow"; }
|
|
@@ -44,10 +44,10 @@ export class JustifiCardForm {
|
|
|
44
44
|
return this.cardNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
|
-
return (h(StyledHost, { key: '
|
|
47
|
+
return (h(StyledHost, { key: '46991f66161e4118fdf135bf18eb757435e26457' }, h(CardFormSkeleton, { key: 'aacb7f467a10debc809997a67172fe4f23a2ca76', isReady: this.isReady }), h("hidden-input", { key: '3e9bd9b7ff0aba356d9f8fd07428cbaedcb223b1' }), h("div", { key: '8fcf6d92703491fe6a0be076a5965c09c800f262', class: "container-fluid p-0", style: {
|
|
48
48
|
opacity: this.isReady ? '1' : '0',
|
|
49
49
|
height: this.isReady ? 'auto' : '0',
|
|
50
|
-
} }, h("div", { key: '
|
|
50
|
+
} }, h("div", { key: '8dea63dc69d7c7cfbcded0a07bfbcf9c7d7a41fa', class: "mb-3" }, h("iframe-input", { key: 'ffd4de932414b206ea5936c21349c522b762f8a4', inputId: "cardNumber", ref: (el) => (this.cardNumberIframeElement = el), label: "Card Number", iframeOrigin: `${this.iframeOrigin}/v2/cardNumber` })), h("div", { key: '3e56350822761119dbb7ff49e3cc56bec7f361ca', class: "row" }, h("div", { key: 'ab13b6b20573fbec961164a415ccaf21b663eb4b', class: "col-4 align-content-end" }, h("iframe-input", { key: 'e12d56f2c1dd12ae5eff7619204d9f746e1b6a43', inputId: "expirationMonth", ref: (el) => (this.expirationMonthIframeElement = el), label: "Expiration", iframeOrigin: `${this.iframeOrigin}/v2/expirationMonth` })), h("div", { key: '62e4808ee208aec7cf3e1d7a99fd65f3d9a5e615', class: "col-4 align-content-end" }, h("iframe-input", { key: 'c8e3945b466e61e8b21fbb13f71c0631740ca1a3', inputId: "expirationYear", ref: (el) => (this.expirationYearIframeElement = el), label: "", iframeOrigin: `${this.iframeOrigin}/v2/expirationYear` })), h("div", { key: '979929e29abb54f8837f71b1cdb7261df97a58df', class: "col-4 align-content-end" }, h("iframe-input", { key: '2c25868c5fd7e6c2d34722b39f22c2062248cdf6', inputId: "CVV", ref: (el) => (this.cvvIframeElement = el), label: "CVV", iframeOrigin: `${this.iframeOrigin}/v2/CVV` }))))));
|
|
51
51
|
}
|
|
52
52
|
static get is() { return "justifi-card-form"; }
|
|
53
53
|
static get encapsulation() { return "shadow"; }
|
|
@@ -3,7 +3,7 @@ import { radioListItem } from "../../../styles/parts";
|
|
|
3
3
|
import { StyledHost } from "../../../ui-components";
|
|
4
4
|
export class PaymentMethodOption {
|
|
5
5
|
render() {
|
|
6
|
-
return (h(StyledHost, { key: '
|
|
6
|
+
return (h(StyledHost, { key: '276e7685b6f5b7430fdac887fa5f270245011f6d', class: "payment-method" }, h("div", { key: '032431a1a0e3e97077c84f02288e3e0d1334e230', class: "radio-list-item p-3", part: radioListItem, onClick: this.clickHandler, hidden: this.radioButtonHidden }, h("form-control-radio", { key: '33a53344736a2a5d8546cbec24cc6c4aaebf7629', name: "paymentMethodType", value: this.paymentMethodOptionId, checked: this.isSelected, label: this.label }))));
|
|
7
7
|
}
|
|
8
8
|
static get is() { return "payment-method-option"; }
|
|
9
9
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
|
-
import { radioListItem } from "../../../styles/parts";
|
|
3
2
|
import { checkoutStore, onChange } from "../../../store/checkout.store";
|
|
4
3
|
import { StyledHost } from "../../../ui-components";
|
|
5
4
|
import plaidLogoSvg from "../../../assets/plaid-icon.svg";
|
|
@@ -84,25 +83,6 @@ export class PlaidPaymentMethod {
|
|
|
84
83
|
}, 100);
|
|
85
84
|
}
|
|
86
85
|
};
|
|
87
|
-
this.onPaymentMethodOptionClick = (e) => {
|
|
88
|
-
e.preventDefault();
|
|
89
|
-
// Update local selection state
|
|
90
|
-
this.isSelected = true;
|
|
91
|
-
// Update store selection
|
|
92
|
-
checkoutStore.selectedPaymentMethod = PAYMENT_METHODS.PLAID;
|
|
93
|
-
// Emit selection event
|
|
94
|
-
this.paymentMethodOptionSelected.emit(PAYMENT_METHODS.PLAID);
|
|
95
|
-
// If there's an error, clear it and try to initialize again
|
|
96
|
-
if (this.error) {
|
|
97
|
-
this.clearError();
|
|
98
|
-
this.waitForStoreAndInitialize();
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
// If Plaid Link is ready and no public token exists, open Plaid Link
|
|
102
|
-
if (this.plaidLink && !this.publicToken && !this.isAuthenticating) {
|
|
103
|
-
this.openPlaidLink();
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
86
|
this.initializePlaidLink = async () => {
|
|
107
87
|
try {
|
|
108
88
|
// Check if Plaid is available globally
|
|
@@ -185,6 +165,9 @@ export class PlaidPaymentMethod {
|
|
|
185
165
|
this.linkToken = response.data.link_token;
|
|
186
166
|
// Try to capture link token id if present in envelope
|
|
187
167
|
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;
|
|
168
|
+
if (this.linkTokenId) {
|
|
169
|
+
checkoutStore.plaidLinkTokenId = this.linkTokenId;
|
|
170
|
+
}
|
|
188
171
|
}
|
|
189
172
|
catch (error) {
|
|
190
173
|
// Clear timeout
|
|
@@ -256,7 +239,7 @@ export class PlaidPaymentMethod {
|
|
|
256
239
|
// Ensure the component remains selected after successful authentication
|
|
257
240
|
if (!this.isSelected) {
|
|
258
241
|
this.isSelected = true;
|
|
259
|
-
checkoutStore.selectedPaymentMethod = PAYMENT_METHODS.PLAID;
|
|
242
|
+
checkoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
260
243
|
}
|
|
261
244
|
// Emit success event for parent components
|
|
262
245
|
this.plaidErrorRecovered.emit({
|
|
@@ -264,41 +247,10 @@ export class PlaidPaymentMethod {
|
|
|
264
247
|
message: 'Bank account connected successfully',
|
|
265
248
|
severity: ComponentErrorSeverity.INFO
|
|
266
249
|
});
|
|
267
|
-
//
|
|
268
|
-
|
|
269
|
-
};
|
|
270
|
-
this.exchangePublicTokenForPaymentMethod = async () => {
|
|
271
|
-
var _a;
|
|
272
|
-
if (!this.publicToken) {
|
|
273
|
-
console.error('[PlaidPaymentMethod] exchange: missing publicToken');
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
if (!checkoutStore.authToken || !checkoutStore.accountId) {
|
|
277
|
-
console.error('[PlaidPaymentMethod] exchange: missing auth/account context');
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
try {
|
|
281
|
-
const response = await this.plaidService.tokenizeBankAccount(checkoutStore.authToken, checkoutStore.accountId, this.publicToken, this.linkTokenId || undefined, checkoutStore.savePaymentMethod ? checkoutStore.paymentMethodGroupId : undefined);
|
|
282
|
-
if (response === null || response === void 0 ? void 0 : response.error) {
|
|
283
|
-
console.error('[PlaidPaymentMethod] exchange: backend error', response.error);
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
// Extract token from payment method response
|
|
287
|
-
const paymentMethod = response === null || response === void 0 ? void 0 : response.data;
|
|
288
|
-
const token = ((_a = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.bank_account) === null || _a === void 0 ? void 0 : _a.token) || (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.token) || (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id);
|
|
289
|
-
if (!token) {
|
|
290
|
-
console.error('[PlaidPaymentMethod] exchange: no token in response');
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
// Save for downstream submit flows
|
|
294
|
-
checkoutStore.paymentToken = token;
|
|
295
|
-
}
|
|
296
|
-
catch (err) {
|
|
297
|
-
console.error('[PlaidPaymentMethod] exchange: exception', {
|
|
298
|
-
message: (err === null || err === void 0 ? void 0 : err.message) || String(err),
|
|
299
|
-
});
|
|
300
|
-
}
|
|
250
|
+
// Store public token in checkout store; exchange will be handled on submit
|
|
251
|
+
checkoutStore.plaidPublicToken = publicToken;
|
|
301
252
|
};
|
|
253
|
+
// Exchange logic moved to Modular Checkout submit flow.
|
|
302
254
|
this.handlePlaidExit = (err, _metadata) => {
|
|
303
255
|
this.isAuthenticating = false;
|
|
304
256
|
if (err) {
|
|
@@ -454,16 +406,26 @@ export class PlaidPaymentMethod {
|
|
|
454
406
|
};
|
|
455
407
|
// Watch for store changes to sync component state
|
|
456
408
|
this.syncWithStore = () => {
|
|
457
|
-
|
|
409
|
+
var _a;
|
|
410
|
+
const shouldBeSelected = ((_a = checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === PAYMENT_METHODS.PLAID;
|
|
458
411
|
if (this.isSelected !== shouldBeSelected) {
|
|
459
412
|
this.isSelected = shouldBeSelected;
|
|
460
413
|
}
|
|
461
414
|
};
|
|
462
415
|
}
|
|
463
416
|
onSelectionChange(newValue) {
|
|
417
|
+
var _a;
|
|
464
418
|
// Ensure store is updated when component selection changes
|
|
465
|
-
if (newValue && checkoutStore.selectedPaymentMethod !== PAYMENT_METHODS.PLAID) {
|
|
466
|
-
checkoutStore.selectedPaymentMethod = PAYMENT_METHODS.PLAID;
|
|
419
|
+
if (newValue && ((_a = checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) !== PAYMENT_METHODS.PLAID) {
|
|
420
|
+
checkoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
421
|
+
}
|
|
422
|
+
// Auto-start Plaid flow when selected and ready
|
|
423
|
+
if (newValue &&
|
|
424
|
+
this.plaidLink &&
|
|
425
|
+
!this.publicToken &&
|
|
426
|
+
!this.isAuthenticating &&
|
|
427
|
+
!this.error) {
|
|
428
|
+
this.openPlaidLink();
|
|
467
429
|
}
|
|
468
430
|
}
|
|
469
431
|
componentDidRender() {
|
|
@@ -485,8 +447,9 @@ export class PlaidPaymentMethod {
|
|
|
485
447
|
};
|
|
486
448
|
}
|
|
487
449
|
componentWillLoad() {
|
|
450
|
+
var _a;
|
|
488
451
|
// Initialize selection state based on store
|
|
489
|
-
this.isSelected = checkoutStore.selectedPaymentMethod === PAYMENT_METHODS.PLAID;
|
|
452
|
+
this.isSelected = ((_a = checkoutStore.selectedPaymentMethod) === null || _a === void 0 ? void 0 : _a.type) === PAYMENT_METHODS.PLAID;
|
|
490
453
|
}
|
|
491
454
|
async resolvePaymentMethod() {
|
|
492
455
|
if (!this.publicToken) {
|
|
@@ -503,17 +466,29 @@ export class PlaidPaymentMethod {
|
|
|
503
466
|
// Returns a usable payment method token for checkout completion.
|
|
504
467
|
// Will perform the backend exchange if the token is not yet present in the store.
|
|
505
468
|
async getPaymentToken() {
|
|
506
|
-
if (checkoutStore.paymentToken) {
|
|
507
|
-
return checkoutStore.paymentToken;
|
|
508
|
-
}
|
|
509
|
-
await this.exchangePublicTokenForPaymentMethod();
|
|
510
469
|
return checkoutStore.paymentToken;
|
|
511
470
|
}
|
|
471
|
+
async handleSelectionClick() {
|
|
472
|
+
// Update local selection state
|
|
473
|
+
this.isSelected = true;
|
|
474
|
+
// Update store selection
|
|
475
|
+
checkoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
476
|
+
// If there's an error, clear it and try to initialize again
|
|
477
|
+
if (this.error) {
|
|
478
|
+
this.clearError();
|
|
479
|
+
this.waitForStoreAndInitialize();
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
// If Plaid Link is ready and no public token exists, open Plaid Link
|
|
483
|
+
if (this.plaidLink && !this.publicToken && !this.isAuthenticating) {
|
|
484
|
+
this.openPlaidLink();
|
|
485
|
+
}
|
|
486
|
+
}
|
|
512
487
|
// Method to handle external selection changes (e.g., from other payment methods)
|
|
513
488
|
async setSelected(selected) {
|
|
514
489
|
this.isSelected = selected;
|
|
515
490
|
if (selected) {
|
|
516
|
-
checkoutStore.selectedPaymentMethod = PAYMENT_METHODS.PLAID;
|
|
491
|
+
checkoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
517
492
|
}
|
|
518
493
|
}
|
|
519
494
|
// Method to check if component is currently selected
|
|
@@ -620,7 +595,7 @@ export class PlaidPaymentMethod {
|
|
|
620
595
|
}
|
|
621
596
|
return null;
|
|
622
597
|
};
|
|
623
|
-
return (h(StyledHost, { class: "payment-method" }, h("script", { src: "https://cdn.plaid.com/link/v2/stable/link-initialize.js", async: true, ref: (el) => (this.scriptRef = el) }), h("div", {
|
|
598
|
+
return (h(StyledHost, { class: "payment-method" }, h("script", { src: "https://cdn.plaid.com/link/v2/stable/link-initialize.js", async: true, ref: (el) => (this.scriptRef = el) }), h("div", { title: "Pay with Plaid" }, h("div", { onClick: (event) => { event.preventDefault(); this.handleSelectionClick(); } }, "Pay with Bank Account ", plaidLogo, " "), renderErrorState(), renderStatusState())));
|
|
624
599
|
}
|
|
625
600
|
static get is() { return "justifi-plaid-payment-method"; }
|
|
626
601
|
static get encapsulation() { return "shadow"; }
|
|
@@ -726,6 +701,23 @@ export class PlaidPaymentMethod {
|
|
|
726
701
|
"tags": []
|
|
727
702
|
}
|
|
728
703
|
},
|
|
704
|
+
"handleSelectionClick": {
|
|
705
|
+
"complexType": {
|
|
706
|
+
"signature": "() => Promise<void>",
|
|
707
|
+
"parameters": [],
|
|
708
|
+
"references": {
|
|
709
|
+
"Promise": {
|
|
710
|
+
"location": "global",
|
|
711
|
+
"id": "global::Promise"
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
"return": "Promise<void>"
|
|
715
|
+
},
|
|
716
|
+
"docs": {
|
|
717
|
+
"text": "",
|
|
718
|
+
"tags": []
|
|
719
|
+
}
|
|
720
|
+
},
|
|
729
721
|
"setSelected": {
|
|
730
722
|
"complexType": {
|
|
731
723
|
"signature": "(selected: boolean) => Promise<void>",
|
package/dist/collection/components/modular-checkout/sub-components/plaid-payment-method.test.js
CHANGED
|
@@ -34,6 +34,7 @@ jest.mock('../../../api/services/plaid.service', () => {
|
|
|
34
34
|
});
|
|
35
35
|
import { newSpecPage } from "@stencil/core/testing";
|
|
36
36
|
import { PlaidPaymentMethod } from "./plaid-payment-method";
|
|
37
|
+
import { PAYMENT_METHODS } from "../ModularCheckout";
|
|
37
38
|
describe('PlaidPaymentMethod', () => {
|
|
38
39
|
let component;
|
|
39
40
|
let page;
|
|
@@ -75,7 +76,7 @@ describe('PlaidPaymentMethod', () => {
|
|
|
75
76
|
describe('Store Integration', () => {
|
|
76
77
|
it('should initialize selection state from store', () => {
|
|
77
78
|
// Set store value before creating component
|
|
78
|
-
mockCheckoutStore.selectedPaymentMethod =
|
|
79
|
+
mockCheckoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
79
80
|
// Recreate component to test initialization
|
|
80
81
|
return newSpecPage({
|
|
81
82
|
components: [PlaidPaymentMethod],
|
|
@@ -106,18 +107,19 @@ describe('PlaidPaymentMethod', () => {
|
|
|
106
107
|
expect(component.isAuthenticating).toBe(false);
|
|
107
108
|
});
|
|
108
109
|
});
|
|
109
|
-
describe('Plaid
|
|
110
|
-
it('
|
|
110
|
+
describe('Plaid success flow', () => {
|
|
111
|
+
it('stores public token in store and does not set payment token', async () => {
|
|
111
112
|
// Arrange
|
|
112
|
-
mockCheckoutStore.selectedPaymentMethod =
|
|
113
|
+
mockCheckoutStore.selectedPaymentMethod = { type: PAYMENT_METHODS.PLAID };
|
|
113
114
|
const instance = page.rootInstance;
|
|
114
115
|
// Act: simulate Plaid success
|
|
115
116
|
instance.handlePlaidSuccess('public-sandbox-xyz', {});
|
|
116
117
|
await page.waitForChanges();
|
|
117
|
-
// Allow any async
|
|
118
|
+
// Allow any async handlers to complete
|
|
118
119
|
await new Promise((r) => setTimeout(r, 0));
|
|
119
120
|
// Assert
|
|
120
|
-
expect(mockCheckoutStore.
|
|
121
|
+
expect(mockCheckoutStore.plaidPublicToken).toBe('public-sandbox-xyz');
|
|
122
|
+
expect(mockCheckoutStore.paymentToken).toBeUndefined();
|
|
121
123
|
});
|
|
122
124
|
});
|
|
123
125
|
});
|
|
@@ -3,23 +3,21 @@ import { StyledHost } from "../../../ui-components";
|
|
|
3
3
|
import { checkoutStore } from "../../../store/checkout.store";
|
|
4
4
|
import { radioListItem } from "../../../styles/parts";
|
|
5
5
|
import { CardBrandLabels } from "../../checkout/payment-method-option-utils";
|
|
6
|
-
import {
|
|
6
|
+
import { PAYMENT_METHODS } from "../ModularCheckout";
|
|
7
7
|
export class SavedPaymentMethods {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.onPaymentMethodOptionClick = (paymentMethod) => (e) => {
|
|
10
10
|
e.preventDefault();
|
|
11
|
-
|
|
12
|
-
[PAYMENT_METHOD_TYPES.CARD]: PAYMENT_METHODS.SAVED_CARD,
|
|
13
|
-
[PAYMENT_METHOD_TYPES.BANK_ACCOUNT]: PAYMENT_METHODS.SAVED_BANK_ACCOUNT,
|
|
14
|
-
};
|
|
15
|
-
checkoutStore.selectedPaymentMethod = SELECTED_PAYMENT_METHODS[paymentMethod.type];
|
|
11
|
+
checkoutStore.selectedPaymentMethod = { id: paymentMethod.id, type: paymentMethod.type };
|
|
16
12
|
checkoutStore.paymentToken = paymentMethod.id;
|
|
17
13
|
};
|
|
18
|
-
this.isAllowedPaymentMethod = (
|
|
19
|
-
|
|
14
|
+
this.isAllowedPaymentMethod = (paymentMethodType) => {
|
|
15
|
+
const isCard = paymentMethodType === PAYMENT_METHODS.SAVED_CARD;
|
|
16
|
+
const isBankAccount = paymentMethodType === PAYMENT_METHODS.SAVED_BANK_ACCOUNT;
|
|
17
|
+
if (isCard && checkoutStore.disableCreditCard) {
|
|
20
18
|
return false;
|
|
21
19
|
}
|
|
22
|
-
if (
|
|
20
|
+
if (isBankAccount && checkoutStore.disableBankAccount) {
|
|
23
21
|
return false;
|
|
24
22
|
}
|
|
25
23
|
return true;
|
|
@@ -38,7 +36,7 @@ export class SavedPaymentMethods {
|
|
|
38
36
|
return null;
|
|
39
37
|
}
|
|
40
38
|
return (h(StyledHost, null, h("div", { class: "saved-payment-methods" }, checkoutStore.paymentMethods.length ? checkoutStore.paymentMethods
|
|
41
|
-
.filter(this.isAllowedPaymentMethod)
|
|
39
|
+
.filter((paymentMethod) => this.isAllowedPaymentMethod(paymentMethod.type))
|
|
42
40
|
.map((paymentMethod) => (h("div", { class: "radio-list-item p-3", part: radioListItem, onClick: this.onPaymentMethodOptionClick(paymentMethod) }, h("form-control-radio", { name: "paymentMethodType", value: paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id, checked: checkoutStore.paymentToken === (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.id), label: `${CardBrandLabels[paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.brand] || ''} *${paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.acct_last_four}` })))) : null)));
|
|
43
41
|
}
|
|
44
42
|
static get is() { return "justifi-saved-payment-methods"; }
|