@justifi/webcomponents 6.0.0-rc.1 → 6.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/dist/cjs/{Api-CPuq_15r.js → Api-DyimBzKT.js} +2 -2
  2. package/dist/cjs/{Refund-CqWNG8sx.js → Refund-BefKONu4.js} +6 -3
  3. package/dist/cjs/additional-questions-details_5.cjs.entry.js +3 -3
  4. package/dist/cjs/{badge-CMmPvqtE.js → badge-CcJ9H85-.js} +1 -1
  5. package/dist/cjs/bank-account-document-form-inputs_4.cjs.entry.js +7 -7
  6. package/dist/cjs/bank-account-form.cjs.entry.js +9 -6
  7. package/dist/cjs/business-details-core.cjs.entry.js +4 -4
  8. package/dist/cjs/{business.service-C3BdUPlm.js → business.service-BB6zl4Gc.js} +2 -2
  9. package/dist/cjs/{button-CfVQSysQ.js → button-DsHDMHaa.js} +1 -1
  10. package/dist/cjs/card-form.cjs.entry.js +9 -6
  11. package/dist/cjs/{check-pkg-version-D_lazhBQ.js → check-pkg-version-DiQ-d5Nl.js} +9 -3
  12. package/dist/cjs/{checkout.service-B0ZmvWwI.js → checkout.service-B-R80p4f.js} +2 -2
  13. package/dist/cjs/checkout.store-BGvYPPz0.js +88 -0
  14. package/dist/cjs/checkouts-list-core.cjs.entry.js +10 -10
  15. package/dist/cjs/{payments-list-params-state-BNbT1fuJ.js → checkouts-list-params-state-Cewmin_p.js} +1 -1
  16. package/dist/cjs/{checkouts-table-UN5gPpQ_.js → checkouts-table-DjMdEiEW.js} +3 -3
  17. package/dist/cjs/{config-state-5xZf-jax.js → config-state-BBOZIS8x.js} +1 -1
  18. package/dist/cjs/custom-popper_2.cjs.entry.js +1 -1
  19. package/dist/cjs/{dispute.service-DsPEAcDn.js → dispute.service-B5tITFAh.js} +2 -2
  20. package/dist/cjs/form-alert_5.cjs.entry.js +1 -1
  21. package/dist/cjs/form-control-checkbox.cjs.entry.js +3 -3
  22. package/dist/cjs/form-control-date.cjs.entry.js +2 -2
  23. package/dist/cjs/{form-control-error-text-HM0zQerh.js → form-control-error-text-B-P5UDhm.js} +1 -1
  24. package/dist/cjs/form-control-file-v2_2.cjs.entry.js +2 -2
  25. package/dist/cjs/{form-control-help-text-5KIUw1IP.js → form-control-help-text-JoZjhb9m.js} +1 -1
  26. package/dist/cjs/form-control-help-text.cjs.entry.js +1 -1
  27. package/dist/cjs/form-control-monetary-provisioning.cjs.entry.js +3 -3
  28. package/dist/cjs/form-control-monetary.cjs.entry.js +4 -4
  29. package/dist/cjs/form-control-number-masked_2.cjs.entry.js +2 -2
  30. package/dist/cjs/form-control-number.cjs.entry.js +3 -3
  31. package/dist/cjs/form-control-radio.cjs.entry.js +3 -3
  32. package/dist/cjs/form-control-select_2.cjs.entry.js +2 -2
  33. package/dist/cjs/{get-payment-details-DtCXaIMx.js → get-payment-details-BfgRmNL4.js} +2 -2
  34. package/dist/cjs/{get-subaccounts-CwCH5rC8.js → get-subaccounts-Bnfv2tEN.js} +3 -3
  35. package/dist/cjs/gross-payment-chart-core.cjs.entry.js +4 -4
  36. package/dist/cjs/{header-1-DD41iNlG.js → header-1-DRA3f4Jh.js} +1 -1
  37. package/dist/cjs/{header-3-D9Wa0IfT.js → header-3-sOdOpfx3.js} +1 -1
  38. package/dist/cjs/hidden-input_2.cjs.entry.js +4 -4
  39. package/dist/cjs/{index-Yd9aLenr.js → index-B32W0A3m.js} +1 -1
  40. package/dist/cjs/{index-dm_GlYlb.js → index-C9hBD-32.js} +2 -2
  41. package/dist/cjs/index-D-dD-aC2.js +30 -0
  42. package/dist/cjs/index.cjs.js +8 -0
  43. package/dist/cjs/{insurance-state-Cyva9u6S.js → insurance-state-d2thhXUX.js} +2 -2
  44. package/dist/cjs/justifi-additional-questions-form-step-core_6.cjs.entry.js +7 -7
  45. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +8 -8
  46. package/dist/cjs/justifi-additional-statement_8.cjs.entry.js +1 -1
  47. package/dist/cjs/justifi-apple-pay.cjs.entry.js +782 -0
  48. package/dist/cjs/justifi-bank-account-billing-form-simple_9.cjs.entry.js +16 -15
  49. package/dist/cjs/justifi-business-details.cjs.entry.js +10 -10
  50. package/dist/cjs/justifi-business-form.cjs.entry.js +13 -13
  51. package/dist/cjs/justifi-business-representative-form-inputs.cjs.entry.js +1 -1
  52. package/dist/cjs/justifi-checkout-summary_7.cjs.entry.js +1421 -0
  53. package/dist/cjs/justifi-checkout.cjs.entry.js +26 -48
  54. package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +7 -7
  55. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +13 -13
  56. package/dist/cjs/justifi-config-provider.cjs.entry.js +3 -3
  57. package/dist/cjs/justifi-details.cjs.entry.js +2 -2
  58. package/dist/cjs/justifi-dispute-management-core.cjs.entry.js +1 -1
  59. package/dist/cjs/justifi-dispute-management.cjs.entry.js +9 -9
  60. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +12 -12
  61. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +9 -9
  62. package/dist/cjs/justifi-order-terminals.cjs.entry.js +12 -12
  63. package/dist/cjs/justifi-owner-form_3.cjs.entry.js +8 -8
  64. package/dist/cjs/justifi-payment-details.cjs.entry.js +11 -11
  65. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +3 -3
  66. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +9 -9
  67. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +12 -12
  68. package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +5 -5
  69. package/dist/cjs/justifi-payments-list.cjs.entry.js +13 -13
  70. package/dist/cjs/justifi-payout-details.cjs.entry.js +10 -10
  71. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +12 -12
  72. package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +5 -5
  73. package/dist/cjs/justifi-payouts-list.cjs.entry.js +14 -14
  74. package/dist/cjs/justifi-refund-payment.cjs.entry.js +13 -13
  75. package/dist/cjs/justifi-saved-payment-method.cjs.entry.js +1 -1
  76. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +17 -12
  77. package/dist/cjs/justifi-skeleton.cjs.entry.js +3 -3
  78. package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +7 -7
  79. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +11 -11
  80. package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +7 -7
  81. package/dist/cjs/justifi-terminals-list.cjs.entry.js +13 -13
  82. package/dist/cjs/loader.cjs.js +2 -2
  83. package/dist/cjs/{package-Cp_7Ls2E.js → package-Be2aoTf8.js} +1 -1
  84. package/dist/cjs/pagination-menu.cjs.entry.js +1 -1
  85. package/dist/cjs/payment-details-core.cjs.entry.js +7 -7
  86. package/dist/cjs/payment-method-option.cjs.entry.js +2 -2
  87. package/dist/cjs/{payment.service-1H0VC3LV.js → payment.service-aR96UW5e.js} +2 -2
  88. package/dist/cjs/payments-list-core.cjs.entry.js +11 -11
  89. package/dist/cjs/{payouts-list-params-state-BNbT1fuJ.js → payments-list-params-state-Cewmin_p.js} +1 -1
  90. package/dist/cjs/{payments-status-PB63klt3.js → payments-status-DXRh_ekP.js} +2 -2
  91. package/dist/cjs/{payments-table-quF0NnsS.js → payments-table-BE8u0-i0.js} +3 -3
  92. package/dist/cjs/payout-details-core.cjs.entry.js +8 -8
  93. package/dist/cjs/{payout.service-CIZFU-hV.js → payout.service-6Cl_yXXQ.js} +2 -2
  94. package/dist/cjs/payouts-list-core.cjs.entry.js +11 -11
  95. package/dist/cjs/{checkouts-list-params-state-BNbT1fuJ.js → payouts-list-params-state-Cewmin_p.js} +1 -1
  96. package/dist/cjs/{payouts-status-Bk1JFzbP.js → payouts-status-DxTQZv3i.js} +2 -2
  97. package/dist/cjs/{payouts-table-D_CCTR_k.js → payouts-table-BbydhJUr.js} +3 -3
  98. package/dist/cjs/{skeleton-x-GSs3xk.js → skeleton-C7DQRD6r.js} +1 -1
  99. package/dist/cjs/{spinner-Kb1BFvnL.js → spinner-jmeA44Ee.js} +1 -1
  100. package/dist/cjs/{styled-host-CqQYxX-w.js → styled-host-BfVJlAsJ.js} +1 -1
  101. package/dist/cjs/{table-BJVUhh3s.js → table-Ccdrt0v_.js} +2 -2
  102. package/dist/cjs/table-filters-menu.cjs.entry.js +2 -2
  103. package/dist/cjs/terminal-orders-list-core.cjs.entry.js +10 -10
  104. package/dist/cjs/{terminal-orders-list-params-state-BNbT1fuJ.js → terminal-orders-list-params-state-Cewmin_p.js} +1 -1
  105. package/dist/cjs/{terminal-orders-table-0O5jtzYj.js → terminal-orders-table-B4HjERrK.js} +5 -5
  106. package/dist/cjs/terminal-quantity-selector.cjs.entry.js +1 -1
  107. package/dist/cjs/{terminal.service-DUlyMTrX.js → terminal.service-D1FAYZzd.js} +2 -2
  108. package/dist/cjs/terminals-list-core.cjs.entry.js +10 -10
  109. package/dist/cjs/terminals-list-params-state-Cewmin_p.js +22 -0
  110. package/dist/cjs/{terminals-table-C2BNRUS5.js → terminals-table-C79Xc4FI.js} +3 -3
  111. package/dist/cjs/{utils-Df-pajL7.js → utils-Bzyj4qWe.js} +1 -1
  112. package/dist/cjs/{utils-BaGF9XIe.js → utils-ChCUZgUy.js} +6 -0
  113. package/dist/cjs/webcomponents.cjs.js +3 -3
  114. package/dist/collection/api/ApplePay.js +119 -0
  115. package/dist/collection/api/Payment.js +5 -2
  116. package/dist/collection/api/services/apple-pay.service.js +293 -0
  117. package/dist/collection/api/services/plaid.service.js +20 -0
  118. package/dist/collection/assets/plaid-icon.svg +1 -0
  119. package/dist/collection/collection-manifest.json +3 -1
  120. package/dist/collection/components/checkout/bank-account-form/bank-account-form.js +6 -3
  121. package/dist/collection/components/checkout/card-form/card-form.js +6 -3
  122. package/dist/collection/components/checkout/checkout.js +17 -39
  123. package/dist/collection/components/checkout/save-new-payment-method.js +1 -1
  124. package/dist/collection/components/insurance/season-interruption/season-interruption-insurance.js +4 -0
  125. package/dist/collection/components/modular-checkout/ModularCheckout.js +28 -0
  126. package/dist/collection/components/modular-checkout/modular-checkout.js +228 -125
  127. package/dist/collection/components/modular-checkout/sub-components/apple-pay-skeleton.js +10 -0
  128. package/dist/collection/components/modular-checkout/sub-components/apple-pay.js +509 -0
  129. package/dist/collection/components/modular-checkout/sub-components/plaid-payment-method.js +885 -0
  130. package/dist/collection/components/modular-checkout/sub-components/plaid-payment-method.test.js +124 -0
  131. package/dist/collection/components/modular-checkout/sub-components/saved-payment-methods.js +7 -5
  132. package/dist/collection/components/modular-checkout/sub-components/sezzle-payment-method.js +25 -8
  133. package/dist/collection/components/tokenize-payment-method/tokenize-payment-method.js +63 -34
  134. package/dist/collection/index.js +1 -0
  135. package/dist/collection/store/checkout.store.js +46 -2
  136. package/dist/collection/ui-components/apple-pay-button.js +146 -0
  137. package/dist/collection/ui-components/form/form-control-radio.js +5 -5
  138. package/dist/collection/ui-components/shadow-dom-components/justifi-radio-list-item.js +4 -4
  139. package/dist/collection/utils/check-pkg-version.js +6 -0
  140. package/dist/collection/utils/utils.js +5 -0
  141. package/dist/docs.json +1037 -212
  142. package/dist/esm/{Api-N_veT2p6.js → Api-DAWuvzbl.js} +2 -2
  143. package/dist/esm/{Refund-Di6J0oN2.js → Refund-CVh70dXA.js} +7 -4
  144. package/dist/esm/additional-questions-details_5.entry.js +4 -4
  145. package/dist/esm/{badge-D_mzXSCQ.js → badge-DSYSJcRy.js} +2 -2
  146. package/dist/esm/bank-account-document-form-inputs_4.entry.js +8 -8
  147. package/dist/esm/bank-account-form.entry.js +10 -7
  148. package/dist/esm/business-details-core.entry.js +5 -5
  149. package/dist/esm/{business.service-Bdvhdc_d.js → business.service-cQrH5BqF.js} +2 -2
  150. package/dist/esm/{button-CeR8qVS3.js → button-CpllL0At.js} +2 -2
  151. package/dist/esm/card-form.entry.js +10 -7
  152. package/dist/esm/{check-pkg-version-Bb69ihTN.js → check-pkg-version-CAnDiqiu.js} +9 -3
  153. package/dist/esm/{checkout.service-XgGFa7H8.js → checkout.service-Bbgi1I6V.js} +2 -2
  154. package/dist/esm/checkout.store-CCdFOPCK.js +83 -0
  155. package/dist/esm/checkouts-list-core.entry.js +11 -11
  156. package/dist/esm/{checkouts-list-params-state-SMXQIZTt.js → checkouts-list-params-state-D8tzsGR_.js} +1 -1
  157. package/dist/esm/{checkouts-table-CFZYoYjn.js → checkouts-table-Ddf2I-Ul.js} +4 -4
  158. package/dist/esm/{config-state-BrllxiM0.js → config-state-DZeVYerv.js} +1 -1
  159. package/dist/esm/custom-popper_2.entry.js +2 -2
  160. package/dist/esm/{dispute.service-CKPcmwhH.js → dispute.service-CrZsNDW8.js} +2 -2
  161. package/dist/esm/form-alert_5.entry.js +2 -2
  162. package/dist/esm/form-control-checkbox.entry.js +4 -4
  163. package/dist/esm/form-control-date.entry.js +3 -3
  164. package/dist/esm/{form-control-error-text-D3ZwkOv-.js → form-control-error-text-R7U07nTg.js} +2 -2
  165. package/dist/esm/form-control-file-v2_2.entry.js +3 -3
  166. package/dist/esm/{form-control-help-text-C39ZW65w.js → form-control-help-text-CRLH-2f7.js} +2 -2
  167. package/dist/esm/form-control-help-text.entry.js +1 -1
  168. package/dist/esm/form-control-monetary-provisioning.entry.js +4 -4
  169. package/dist/esm/form-control-monetary.entry.js +5 -5
  170. package/dist/esm/form-control-number-masked_2.entry.js +3 -3
  171. package/dist/esm/form-control-number.entry.js +4 -4
  172. package/dist/esm/form-control-radio.entry.js +4 -4
  173. package/dist/esm/form-control-select_2.entry.js +3 -3
  174. package/dist/esm/{get-payment-details-Dt-dr16k.js → get-payment-details-0VzpMNY9.js} +2 -2
  175. package/dist/esm/{get-subaccounts-BsoVLANw.js → get-subaccounts-9UMbyFiT.js} +3 -3
  176. package/dist/esm/gross-payment-chart-core.entry.js +5 -5
  177. package/dist/esm/{header-1-E-hEi3wF.js → header-1-3M9If0gM.js} +2 -2
  178. package/dist/esm/{header-3-Dm7M85kz.js → header-3-CWa41YWq.js} +2 -2
  179. package/dist/esm/hidden-input_2.entry.js +5 -5
  180. package/dist/esm/{index-B9me4yN2.js → index-B_KxSZIF.js} +1 -1
  181. package/dist/esm/{index-kpoIU4v_.js → index-Bn7inNWG.js} +2 -2
  182. package/dist/esm/index-CbL73B6U.js +30 -0
  183. package/dist/esm/index.js +1 -1
  184. package/dist/esm/{insurance-state-CB4l8sOv.js → insurance-state-CTalqbNa.js} +3 -3
  185. package/dist/esm/justifi-additional-questions-form-step-core_6.entry.js +8 -8
  186. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +9 -9
  187. package/dist/esm/justifi-additional-statement_8.entry.js +2 -2
  188. package/dist/esm/justifi-apple-pay.entry.js +780 -0
  189. package/dist/esm/justifi-bank-account-billing-form-simple_9.entry.js +17 -16
  190. package/dist/esm/justifi-business-details.entry.js +11 -11
  191. package/dist/esm/justifi-business-form.entry.js +14 -14
  192. package/dist/esm/justifi-business-representative-form-inputs.entry.js +2 -2
  193. package/dist/esm/justifi-checkout-summary_7.entry.js +1413 -0
  194. package/dist/esm/justifi-checkout.entry.js +26 -48
  195. package/dist/esm/justifi-checkouts-list-filters.entry.js +8 -8
  196. package/dist/esm/justifi-checkouts-list.entry.js +14 -14
  197. package/dist/esm/justifi-config-provider.entry.js +3 -3
  198. package/dist/esm/justifi-details.entry.js +3 -3
  199. package/dist/esm/justifi-dispute-management-core.entry.js +1 -1
  200. package/dist/esm/justifi-dispute-management.entry.js +9 -9
  201. package/dist/esm/justifi-dispute-notification_3.entry.js +13 -13
  202. package/dist/esm/justifi-gross-payment-chart.entry.js +10 -10
  203. package/dist/esm/justifi-order-terminals.entry.js +13 -13
  204. package/dist/esm/justifi-owner-form_3.entry.js +9 -9
  205. package/dist/esm/justifi-payment-details.entry.js +12 -12
  206. package/dist/esm/justifi-payment-provisioning-core.entry.js +4 -4
  207. package/dist/esm/justifi-payment-provisioning.entry.js +9 -9
  208. package/dist/esm/justifi-payment-transactions-list.entry.js +13 -13
  209. package/dist/esm/justifi-payments-list-filters.entry.js +6 -6
  210. package/dist/esm/justifi-payments-list.entry.js +14 -14
  211. package/dist/esm/justifi-payout-details.entry.js +11 -11
  212. package/dist/esm/justifi-payout-transactions-list.entry.js +13 -13
  213. package/dist/esm/justifi-payouts-list-filters.entry.js +6 -6
  214. package/dist/esm/justifi-payouts-list.entry.js +15 -15
  215. package/dist/esm/justifi-refund-payment.entry.js +14 -14
  216. package/dist/esm/justifi-saved-payment-method.entry.js +2 -2
  217. package/dist/esm/justifi-season-interruption-insurance.entry.js +18 -13
  218. package/dist/esm/justifi-skeleton.entry.js +4 -4
  219. package/dist/esm/justifi-terminal-orders-list-filters.entry.js +8 -8
  220. package/dist/esm/justifi-terminal-orders-list.entry.js +12 -12
  221. package/dist/esm/justifi-terminals-list-filters.entry.js +8 -8
  222. package/dist/esm/justifi-terminals-list.entry.js +14 -14
  223. package/dist/esm/loader.js +3 -3
  224. package/dist/esm/{package-O3LY2Da6.js → package-CnWtPu8L.js} +1 -1
  225. package/dist/esm/pagination-menu.entry.js +2 -2
  226. package/dist/esm/{parts-CfF8KKwx.js → parts-RvUQ__Pq.js} +1 -1
  227. package/dist/esm/payment-details-core.entry.js +8 -8
  228. package/dist/esm/payment-method-option.entry.js +3 -3
  229. package/dist/esm/{payment.service-BWO84KlP.js → payment.service-TxyxCg0E.js} +2 -2
  230. package/dist/esm/payments-list-core.entry.js +12 -12
  231. package/dist/esm/{payments-list-params-state-SMXQIZTt.js → payments-list-params-state-D8tzsGR_.js} +1 -1
  232. package/dist/esm/{payments-status-XoZrlbiZ.js → payments-status-5orNU2Rd.js} +2 -2
  233. package/dist/esm/{payments-table-Dh4P9mTb.js → payments-table-gkJV5GNK.js} +4 -4
  234. package/dist/esm/payout-details-core.entry.js +9 -9
  235. package/dist/esm/{payout.service-Cld6TS5W.js → payout.service-BOwZ4wWh.js} +2 -2
  236. package/dist/esm/payouts-list-core.entry.js +12 -12
  237. package/dist/esm/{payouts-list-params-state-SMXQIZTt.js → payouts-list-params-state-D8tzsGR_.js} +1 -1
  238. package/dist/esm/{payouts-status-Qm2jZG1-.js → payouts-status-CZPwa2AE.js} +2 -2
  239. package/dist/esm/{payouts-table-DMVAZp-r.js → payouts-table-0PtktGRd.js} +4 -4
  240. package/dist/esm/{skeleton-DrHwsgs_.js → skeleton-qMb0_Cjy.js} +2 -2
  241. package/dist/esm/{spinner-XBq6mVJW.js → spinner-DUzyWLhj.js} +2 -2
  242. package/dist/esm/{styled-host-B_XBaM7z.js → styled-host-CTAGIN84.js} +1 -1
  243. package/dist/esm/{table-qqt2Ew5y.js → table-Br3n9Xu-.js} +3 -3
  244. package/dist/esm/table-filters-menu.entry.js +3 -3
  245. package/dist/esm/terminal-orders-list-core.entry.js +11 -11
  246. package/dist/esm/{terminal-orders-list-params-state-SMXQIZTt.js → terminal-orders-list-params-state-D8tzsGR_.js} +1 -1
  247. package/dist/esm/{terminal-orders-table-BN4Co4T8.js → terminal-orders-table-DTBSIMlJ.js} +6 -6
  248. package/dist/esm/terminal-quantity-selector.entry.js +2 -2
  249. package/dist/esm/{terminal.service-DmYCUQcA.js → terminal.service-E6dZlM43.js} +2 -2
  250. package/dist/esm/terminals-list-core.entry.js +11 -11
  251. package/dist/esm/terminals-list-params-state-D8tzsGR_.js +16 -0
  252. package/dist/esm/{terminals-table-C8LczeG_.js → terminals-table-TGUKTi7I.js} +4 -4
  253. package/dist/esm/{utils-lb8p1Exq.js → utils-BscIVFn8.js} +6 -1
  254. package/dist/esm/{utils-kWaZhFAd.js → utils-Dg6gMUTv.js} +2 -2
  255. package/dist/esm/webcomponents.js +4 -4
  256. package/dist/module/Analytics.js +6 -0
  257. package/dist/module/ModularCheckout.js +30 -0
  258. package/dist/module/Refund.js +5 -2
  259. package/dist/module/bank-account-form.js +5 -2
  260. package/dist/module/card-form.js +5 -2
  261. package/dist/module/checkout.store.js +47 -2
  262. package/dist/module/form-control-radio2.js +3 -3
  263. package/dist/module/gross-payment-chart-core2.js +1 -1
  264. package/dist/module/index.js +1 -0
  265. package/dist/module/justifi-apple-pay.d.ts +11 -0
  266. package/dist/module/justifi-apple-pay.js +811 -0
  267. package/dist/module/justifi-checkout.js +63 -75
  268. package/dist/module/justifi-order-terminals.js +1 -1
  269. package/dist/module/justifi-plaid-payment-method.d.ts +11 -0
  270. package/dist/module/justifi-plaid-payment-method.js +6 -0
  271. package/dist/module/justifi-radio-list-item2.js +2 -2
  272. package/dist/module/justifi-season-interruption-insurance.js +5 -1
  273. package/dist/module/modular-checkout.js +179 -101
  274. package/dist/module/package.js +1 -1
  275. package/dist/module/plaid-payment-method.js +687 -0
  276. package/dist/module/save-new-payment-method.js +1 -1
  277. package/dist/module/saved-payment-methods.js +7 -5
  278. package/dist/module/sezzle-payment-method.js +14 -22
  279. package/dist/module/terminals-list-core2.js +1 -1
  280. package/dist/module/tokenize-payment-method.js +44 -34
  281. package/dist/module/utils2.js +6 -1
  282. package/dist/types/api/ApplePay.d.ts +196 -0
  283. package/dist/types/api/Checkout.d.ts +9 -14
  284. package/dist/types/api/Payment.d.ts +4 -3
  285. package/dist/types/api/services/apple-pay.service.d.ts +55 -0
  286. package/dist/types/api/services/plaid.service.d.ts +12 -0
  287. package/dist/types/components/checkout/bank-account-form/bank-account-form.d.ts +1 -0
  288. package/dist/types/components/checkout/card-form/card-form.d.ts +1 -0
  289. package/dist/types/components/checkout/checkout.d.ts +6 -7
  290. package/dist/types/components/modular-checkout/ModularCheckout.d.ts +31 -0
  291. package/dist/types/components/modular-checkout/modular-checkout.d.ts +13 -4
  292. package/dist/types/components/modular-checkout/sub-components/apple-pay-skeleton.d.ts +6 -0
  293. package/dist/types/components/modular-checkout/sub-components/apple-pay.d.ts +39 -0
  294. package/dist/types/components/modular-checkout/sub-components/plaid-payment-method.d.ts +80 -0
  295. package/dist/types/components/modular-checkout/sub-components/plaid-payment-method.test.d.ts +1 -0
  296. package/dist/types/components/modular-checkout/sub-components/saved-payment-methods.d.ts +1 -1
  297. package/dist/types/components/modular-checkout/sub-components/sezzle-payment-method.d.ts +1 -1
  298. package/dist/types/components/tokenize-payment-method/tokenize-payment-method.d.ts +7 -6
  299. package/dist/types/components.d.ts +172 -11
  300. package/dist/types/index.d.ts +2 -0
  301. package/dist/types/store/checkout.store.d.ts +14 -3
  302. package/dist/types/ui-components/apple-pay-button.d.ts +17 -0
  303. package/dist/types/ui-components/form/form-control-radio.d.ts +1 -1
  304. package/dist/types/ui-components/shadow-dom-components/justifi-radio-list-item.d.ts +1 -1
  305. package/dist/types/utils/utils.d.ts +1 -0
  306. package/dist/webcomponents/index.esm.js +1 -0
  307. package/dist/webcomponents/p-0803d130.entry.js +1 -0
  308. package/dist/webcomponents/{p-Dvxpy_P1.js → p-0Om7jLBs.js} +1 -1
  309. package/dist/webcomponents/{p-0932f6a9.entry.js → p-117b7f47.entry.js} +1 -1
  310. package/dist/webcomponents/p-17093105.entry.js +1 -0
  311. package/dist/webcomponents/{p-f01953ea.entry.js → p-1a08b47f.entry.js} +1 -1
  312. package/dist/webcomponents/p-1bcb3852.entry.js +1 -0
  313. package/dist/webcomponents/{p-ae4297dd.entry.js → p-1eb2b847.entry.js} +1 -1
  314. package/dist/webcomponents/{p-dd257e60.entry.js → p-2f7aa249.entry.js} +1 -1
  315. package/dist/webcomponents/{p-28c7bef7.entry.js → p-2fa34c82.entry.js} +4 -4
  316. package/dist/webcomponents/{p-08ea8974.entry.js → p-33311d41.entry.js} +1 -1
  317. package/dist/webcomponents/p-336c31b3.entry.js +1 -0
  318. package/dist/webcomponents/{p-22be0859.entry.js → p-3f33c940.entry.js} +1 -1
  319. package/dist/webcomponents/{p-f3a757b2.entry.js → p-442f86e8.entry.js} +1 -1
  320. package/dist/webcomponents/{p-a8205044.entry.js → p-44450a94.entry.js} +1 -1
  321. package/dist/webcomponents/{p-cebe360b.entry.js → p-464e7a8e.entry.js} +1 -1
  322. package/dist/webcomponents/{p-ba8ae31f.entry.js → p-50392803.entry.js} +1 -1
  323. package/dist/webcomponents/p-52cbd667.entry.js +1 -0
  324. package/dist/webcomponents/{p-ded22005.entry.js → p-54ca3070.entry.js} +1 -1
  325. package/dist/webcomponents/{p-77515be6.entry.js → p-5ad0f438.entry.js} +1 -1
  326. package/dist/webcomponents/{p-6e18d13f.entry.js → p-613421d4.entry.js} +1 -1
  327. package/dist/webcomponents/{p-9b75aced.entry.js → p-62d12566.entry.js} +1 -1
  328. package/dist/webcomponents/p-65ed60bf.entry.js +1 -0
  329. package/dist/webcomponents/p-6cf30a24.entry.js +1 -0
  330. package/dist/webcomponents/{p-48bccf3b.entry.js → p-70f51444.entry.js} +1 -1
  331. package/dist/webcomponents/{p-a4172773.entry.js → p-729dbd8f.entry.js} +1 -1
  332. package/dist/webcomponents/p-77948b46.entry.js +1 -0
  333. package/dist/webcomponents/{p-1d53f0b8.entry.js → p-7bcfaff4.entry.js} +1 -1
  334. package/dist/webcomponents/{p-b0bfa20f.entry.js → p-7cf87637.entry.js} +1 -1
  335. package/dist/webcomponents/{p-dfd7c212.entry.js → p-7dd74e6f.entry.js} +1 -1
  336. package/dist/webcomponents/{p-I8XpD1TX.js → p-7s1gsXM5.js} +1 -1
  337. package/dist/webcomponents/{p-3d85d046.entry.js → p-80331983.entry.js} +1 -1
  338. package/dist/webcomponents/{p-d0e24727.entry.js → p-85f20746.entry.js} +1 -1
  339. package/dist/webcomponents/{p-79055216.entry.js → p-8687e5d6.entry.js} +1 -1
  340. package/dist/webcomponents/p-89ecd650.entry.js +1 -0
  341. package/dist/webcomponents/p-8a6718b6.entry.js +1 -0
  342. package/dist/webcomponents/p-8d6b81ba.entry.js +1 -0
  343. package/dist/webcomponents/{p-a7d5e434.entry.js → p-8d743490.entry.js} +1 -1
  344. package/dist/webcomponents/{p-8f0339de.entry.js → p-8f7396b1.entry.js} +1 -1
  345. package/dist/webcomponents/{p-15777cfe.entry.js → p-8ff839a4.entry.js} +1 -1
  346. package/dist/webcomponents/{p-57143978.entry.js → p-95cbb655.entry.js} +1 -1
  347. package/dist/webcomponents/{p-ae5a3c2a.entry.js → p-98cffba9.entry.js} +1 -1
  348. package/dist/webcomponents/{p-4ba144ac.entry.js → p-9a2c044f.entry.js} +1 -1
  349. package/dist/webcomponents/{p-904a95e5.entry.js → p-9be67b19.entry.js} +1 -1
  350. package/dist/webcomponents/{p-df199396.entry.js → p-9e8021a1.entry.js} +1 -1
  351. package/dist/webcomponents/{p-131d799c.entry.js → p-9fc0ea58.entry.js} +1 -1
  352. package/dist/webcomponents/p-9fc567d8.entry.js +1 -0
  353. package/dist/webcomponents/{p-424f491c.entry.js → p-9fcff84c.entry.js} +1 -1
  354. package/dist/webcomponents/p-B71k50jz.js +1 -0
  355. package/dist/webcomponents/p-BF4U0yVj.js +1 -0
  356. package/dist/webcomponents/{p-zdIeCUeh.js → p-BHf9IqGw.js} +1 -1
  357. package/dist/webcomponents/p-BQ2TIFoY.js +1 -0
  358. package/dist/webcomponents/p-BSt6p1oq.js +1 -0
  359. package/dist/webcomponents/p-BY1mRAvj.js +1 -0
  360. package/dist/webcomponents/{p-YND5pTuF.js → p-Bb-6bNcq.js} +1 -1
  361. package/dist/webcomponents/p-BbZwa5UI.js +1 -0
  362. package/dist/webcomponents/p-BdKWuCys.js +1 -0
  363. package/dist/webcomponents/p-BfM6X7lF.js +1 -0
  364. package/dist/webcomponents/{p-BbYVgLcf.js → p-BjVfIXWC.js} +1 -1
  365. package/dist/webcomponents/{p-kpoIU4v_.js → p-Bn7inNWG.js} +1 -1
  366. package/dist/webcomponents/{p-BisQ61nK.js → p-BsGE9UDv.js} +1 -1
  367. package/dist/webcomponents/{p-BeszVz87.js → p-C5id7s_l.js} +1 -1
  368. package/dist/webcomponents/{p-CsNubTqD.js → p-CAJnQLZF.js} +1 -1
  369. package/dist/webcomponents/{p-Bz164TKZ.js → p-CB0mCq1M.js} +1 -1
  370. package/dist/webcomponents/p-CaAVuW6B.js +1 -0
  371. package/dist/webcomponents/p-Cb0FhuyU.js +1 -0
  372. package/dist/webcomponents/p-CbL73B6U.js +1 -0
  373. package/dist/webcomponents/p-CnWtPu8L.js +1 -0
  374. package/dist/webcomponents/p-CpaS1Lex.js +1 -0
  375. package/dist/webcomponents/p-DD0Mvpeu.js +1 -0
  376. package/dist/webcomponents/p-DDUmOl3v.js +1 -0
  377. package/dist/webcomponents/p-DIDloHpm.js +1 -0
  378. package/dist/webcomponents/p-DIjoBk44.js +1 -0
  379. package/dist/webcomponents/{p-UD2JhYS2.js → p-DK2sRMlx.js} +1 -1
  380. package/dist/webcomponents/{p-DO3INvI2.js → p-DNo0OPOP.js} +1 -1
  381. package/dist/webcomponents/{p-BTkXk7ol.js → p-DRXvcLy9.js} +1 -1
  382. package/dist/webcomponents/{p-BNz6wy4f.js → p-DZYcH7jA.js} +1 -1
  383. package/dist/webcomponents/p-Da3idOSV.js +1 -0
  384. package/dist/webcomponents/p-Dgflaz6J.js +1 -0
  385. package/dist/webcomponents/{p-9y5MOK55.js → p-DhGNCW2f.js} +1 -1
  386. package/dist/webcomponents/p-DsZZxRXY.js +1 -0
  387. package/dist/webcomponents/{p-CRFzwZW6.js → p-DxqCFDtF.js} +1 -1
  388. package/dist/webcomponents/p-ED_TzwCp.js +1 -0
  389. package/dist/webcomponents/p-JyHlIFWl.js +1 -0
  390. package/dist/webcomponents/{p-CfF8KKwx.js → p-RvUQ__Pq.js} +1 -1
  391. package/dist/webcomponents/{p-DWUnL_zj.js → p-Wh1V0gvF.js} +1 -1
  392. package/dist/webcomponents/{p-c3a2c619.entry.js → p-a55f07af.entry.js} +1 -1
  393. package/dist/webcomponents/{p-40ba49e4.entry.js → p-aa6194ef.entry.js} +1 -1
  394. package/dist/webcomponents/{p-d77908ca.entry.js → p-ab6a5dc9.entry.js} +1 -1
  395. package/dist/webcomponents/{p-463ae23a.entry.js → p-abbf14b5.entry.js} +1 -1
  396. package/dist/webcomponents/{p-283cd78b.entry.js → p-af9c4174.entry.js} +1 -1
  397. package/dist/webcomponents/{p-f47095cd.entry.js → p-b7d2f2eb.entry.js} +1 -1
  398. package/dist/webcomponents/p-bbc4b4cb.entry.js +1 -0
  399. package/dist/webcomponents/{p-36d72e2d.entry.js → p-c599e526.entry.js} +1 -1
  400. package/dist/webcomponents/{p-5e10aa65.entry.js → p-d46dbb83.entry.js} +1 -1
  401. package/dist/webcomponents/{p-6849bf8e.entry.js → p-d62cd269.entry.js} +1 -1
  402. package/dist/webcomponents/{p-ff3377e7.entry.js → p-d9dd7d24.entry.js} +1 -1
  403. package/dist/webcomponents/p-dd7352da.entry.js +1 -0
  404. package/dist/webcomponents/{p-7c51805a.entry.js → p-e8a67dc7.entry.js} +1 -1
  405. package/dist/webcomponents/p-eP3fmhta.js +1 -0
  406. package/dist/webcomponents/p-eb2d9e5b.entry.js +1 -0
  407. package/dist/webcomponents/{p-1f8cd44e.entry.js → p-eddaca4e.entry.js} +1 -1
  408. package/dist/webcomponents/{p-9106fd74.entry.js → p-ef32fe0e.entry.js} +1 -1
  409. package/dist/webcomponents/{p-c5b48e8d.entry.js → p-f1cba43c.entry.js} +1 -1
  410. package/dist/webcomponents/{p-e830a580.entry.js → p-f1f0b405.entry.js} +1 -1
  411. package/dist/webcomponents/p-f499a8de.entry.js +1 -0
  412. package/dist/webcomponents/{p-828a61b9.entry.js → p-f4d0cdf0.entry.js} +1 -1
  413. package/dist/webcomponents/{p-818f51fd.entry.js → p-f680e617.entry.js} +1 -1
  414. package/dist/webcomponents/{p-bea4309d.entry.js → p-f7c4222f.entry.js} +1 -1
  415. package/dist/webcomponents/p-fa1884b4.entry.js +1 -0
  416. package/dist/webcomponents/p-sw5RO19U.js +1 -0
  417. package/dist/webcomponents/p-z-5r0gWn.js +1 -0
  418. package/dist/webcomponents/webcomponents.esm.js +1 -1
  419. package/package.json +2 -2
  420. package/dist/cjs/checkout.store-CV_fuGQw.js +0 -39
  421. package/dist/cjs/justifi-checkout-summary_6.cjs.entry.js +0 -698
  422. package/dist/cjs/terminals-list-params-state-BNbT1fuJ.js +0 -22
  423. package/dist/esm/checkout.store-B60siz2l.js +0 -36
  424. package/dist/esm/justifi-checkout-summary_6.entry.js +0 -691
  425. package/dist/esm/terminals-list-params-state-SMXQIZTt.js +0 -16
  426. package/dist/webcomponents/p-09e768fe.entry.js +0 -1
  427. package/dist/webcomponents/p-0dcc83ac.entry.js +0 -1
  428. package/dist/webcomponents/p-1bdce018.entry.js +0 -1
  429. package/dist/webcomponents/p-2f31a4e5.entry.js +0 -1
  430. package/dist/webcomponents/p-3a4ca4df.entry.js +0 -1
  431. package/dist/webcomponents/p-466f33d7.entry.js +0 -1
  432. package/dist/webcomponents/p-57802e57.entry.js +0 -1
  433. package/dist/webcomponents/p-5rVtZ2GJ.js +0 -1
  434. package/dist/webcomponents/p-7322c86e.entry.js +0 -1
  435. package/dist/webcomponents/p-7WIgS5RM.js +0 -1
  436. package/dist/webcomponents/p-89e27079.entry.js +0 -1
  437. package/dist/webcomponents/p-BC8YDY7M.js +0 -1
  438. package/dist/webcomponents/p-BVD7g3cE.js +0 -1
  439. package/dist/webcomponents/p-Bb6FBEPP.js +0 -1
  440. package/dist/webcomponents/p-Bpcb3SsP.js +0 -1
  441. package/dist/webcomponents/p-Bt388eye.js +0 -1
  442. package/dist/webcomponents/p-BySyDTv5.js +0 -1
  443. package/dist/webcomponents/p-C1fMfnu0.js +0 -1
  444. package/dist/webcomponents/p-CCME-fyU.js +0 -1
  445. package/dist/webcomponents/p-CLwzqWk2.js +0 -1
  446. package/dist/webcomponents/p-CVQyw7ao.js +0 -1
  447. package/dist/webcomponents/p-C_CXv7AN.js +0 -1
  448. package/dist/webcomponents/p-CwZKT93w.js +0 -1
  449. package/dist/webcomponents/p-D599ZMGU.js +0 -1
  450. package/dist/webcomponents/p-DD74a16D.js +0 -1
  451. package/dist/webcomponents/p-DaDsBt65.js +0 -1
  452. package/dist/webcomponents/p-JgbsbAhz.js +0 -1
  453. package/dist/webcomponents/p-O3LY2Da6.js +0 -1
  454. package/dist/webcomponents/p-WEguiGt1.js +0 -1
  455. package/dist/webcomponents/p-be06d86a.entry.js +0 -1
  456. package/dist/webcomponents/p-dd689b5e.entry.js +0 -1
  457. package/dist/webcomponents/p-dd6d6ddb.entry.js +0 -1
  458. package/dist/webcomponents/p-e859ece8.entry.js +0 -1
  459. package/dist/webcomponents/p-eaea7cc1.entry.js +0 -1
  460. package/dist/webcomponents/p-fa33df9f.entry.js +0 -1
  461. package/dist/webcomponents/p-ff869ded.entry.js +0 -1
  462. package/dist/webcomponents/p-pska2q1M.js +0 -1
  463. package/dist/webcomponents/p-qMrd7_Gp.js +0 -1
  464. package/dist/webcomponents/p-vRhNRfmB.js +0 -1
  465. package/dist/webcomponents/p-zrUQD0Wr.js +0 -1
@@ -0,0 +1,782 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-C9hBD-32.js');
4
+ var Api = require('./Api-DyimBzKT.js');
5
+ var styledHost = require('./styled-host-BfVJlAsJ.js');
6
+ require('./event-types-YOY5TKUN.js');
7
+ var skeleton = require('./skeleton-C7DQRD6r.js');
8
+ var checkout_store = require('./checkout.store-BGvYPPz0.js');
9
+ require('./config-state-BBOZIS8x.js');
10
+ require('./index-B32W0A3m.js');
11
+ require('./utils-ChCUZgUy.js');
12
+ require('./dinero-BwNN_k7x.js');
13
+ require('./parts-9jMf1erK.js');
14
+ require('./ComponentError-D4OLnOkg.js');
15
+ require('./Refund-BefKONu4.js');
16
+ require('./Dispute-CruQTF6_.js');
17
+ require('./Pagination-Dediz133.js');
18
+ require('./Business-DCRzZf0w.js');
19
+ require('./helpers-B5OCqlIM.js');
20
+ require('./state-options-CIT9xdTz.js');
21
+ require('./index-D-dD-aC2.js');
22
+
23
+ var ApplePaySessionStatus;
24
+ (function (ApplePaySessionStatus) {
25
+ ApplePaySessionStatus["STATUS_SUCCESS"] = "STATUS_SUCCESS";
26
+ ApplePaySessionStatus["STATUS_FAILURE"] = "STATUS_FAILURE";
27
+ })(ApplePaySessionStatus || (ApplePaySessionStatus = {}));
28
+ var ApplePayButtonType;
29
+ (function (ApplePayButtonType) {
30
+ ApplePayButtonType["PLAIN"] = "plain";
31
+ ApplePayButtonType["BUY"] = "buy";
32
+ ApplePayButtonType["SET_UP"] = "set-up";
33
+ ApplePayButtonType["DONATE"] = "donate";
34
+ ApplePayButtonType["CHECK_OUT"] = "check-out";
35
+ ApplePayButtonType["BOOK"] = "book";
36
+ ApplePayButtonType["SUBSCRIBE"] = "subscribe";
37
+ })(ApplePayButtonType || (ApplePayButtonType = {}));
38
+ var ApplePayButtonStyle;
39
+ (function (ApplePayButtonStyle) {
40
+ ApplePayButtonStyle["BLACK"] = "black";
41
+ ApplePayButtonStyle["WHITE"] = "white";
42
+ ApplePayButtonStyle["WHITE_OUTLINE"] = "white-outline";
43
+ })(ApplePayButtonStyle || (ApplePayButtonStyle = {}));
44
+ var ApplePayMerchantCapability;
45
+ (function (ApplePayMerchantCapability) {
46
+ ApplePayMerchantCapability["SUPPORTS_3DS"] = "supports3DS";
47
+ ApplePayMerchantCapability["SUPPORTS_EMV"] = "supportsEMV";
48
+ ApplePayMerchantCapability["SUPPORTS_CREDIT"] = "supportsCredit";
49
+ ApplePayMerchantCapability["SUPPORTS_DEBIT"] = "supportsDebit";
50
+ })(ApplePayMerchantCapability || (ApplePayMerchantCapability = {}));
51
+ class ApplePayConfig {
52
+ constructor(data) {
53
+ this.merchantIdentifier = data.merchantIdentifier;
54
+ this.displayName = data.displayName;
55
+ this.initiative = data.initiative;
56
+ this.initiativeContext = data.initiativeContext;
57
+ this.buttonType = data.buttonType || ApplePayButtonType.PLAIN;
58
+ this.buttonStyle = data.buttonStyle || ApplePayButtonStyle.BLACK;
59
+ this.buttonLocale = data.buttonLocale || 'en-US';
60
+ }
61
+ get isValid() {
62
+ return !!(this.merchantIdentifier &&
63
+ this.displayName &&
64
+ this.initiative &&
65
+ this.initiativeContext);
66
+ }
67
+ }
68
+ class ApplePayPaymentRequest {
69
+ constructor(data) {
70
+ this.countryCode = data.countryCode;
71
+ this.currencyCode = data.currencyCode;
72
+ this.merchantCapabilities = data.merchantCapabilities;
73
+ this.supportedNetworks = data.supportedNetworks;
74
+ this.total = data.total;
75
+ this.lineItems = data.lineItems;
76
+ this.shippingMethods = data.shippingMethods;
77
+ this.applicationData = data.applicationData;
78
+ this.supportedCountries = data.supportedCountries;
79
+ }
80
+ get isValid() {
81
+ var _a, _b, _c, _d;
82
+ return !!(this.countryCode &&
83
+ this.currencyCode &&
84
+ ((_a = this.merchantCapabilities) === null || _a === void 0 ? void 0 : _a.length) &&
85
+ ((_b = this.supportedNetworks) === null || _b === void 0 ? void 0 : _b.length) &&
86
+ ((_c = this.total) === null || _c === void 0 ? void 0 : _c.label) &&
87
+ ((_d = this.total) === null || _d === void 0 ? void 0 : _d.amount));
88
+ }
89
+ }
90
+ class ApplePayHelpers {
91
+ static isApplePaySupported() {
92
+ var _a;
93
+ return (typeof window !== 'undefined' &&
94
+ 'ApplePaySession' in window &&
95
+ ((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.supportsVersion(3)));
96
+ }
97
+ static canMakePayments() {
98
+ var _a;
99
+ if (!this.isApplePaySupported()) {
100
+ return false;
101
+ }
102
+ return ((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.canMakePayments()) || false;
103
+ }
104
+ static async canMakePaymentsWithActiveCard(merchantIdentifier) {
105
+ var _a;
106
+ if (!this.isApplePaySupported()) {
107
+ return false;
108
+ }
109
+ try {
110
+ return ((await ((_a = window.ApplePaySession) === null || _a === void 0 ? void 0 : _a.canMakePaymentsWithActiveCard(merchantIdentifier))) || false);
111
+ }
112
+ catch (error) {
113
+ console.error('Error checking Apple Pay active card:', error);
114
+ return false;
115
+ }
116
+ }
117
+ static formatAmount(amount) {
118
+ return (amount / 100).toFixed(2);
119
+ }
120
+ static parseAmount(amount) {
121
+ return Math.round(parseFloat(amount) * 100);
122
+ }
123
+ static createLineItem(label, amount, type = 'final') {
124
+ return {
125
+ label,
126
+ amount: this.formatAmount(amount),
127
+ type,
128
+ };
129
+ }
130
+ static getDefaultSupportedNetworks() {
131
+ return ['amex', 'discover', 'masterCard', 'visa'];
132
+ }
133
+ static getDefaultMerchantCapabilities() {
134
+ return [
135
+ ApplePayMerchantCapability.SUPPORTS_3DS,
136
+ ApplePayMerchantCapability.SUPPORTS_EMV,
137
+ ApplePayMerchantCapability.SUPPORTS_CREDIT,
138
+ ApplePayMerchantCapability.SUPPORTS_DEBIT,
139
+ ];
140
+ }
141
+ }
142
+
143
+ class ApplePayService {
144
+ constructor() {
145
+ this.api = Api.Api();
146
+ }
147
+ /**
148
+ * Initialize Apple Pay configuration
149
+ */
150
+ initialize(applePayConfig) {
151
+ this.applePayConfig = new ApplePayConfig(applePayConfig);
152
+ if (!this.applePayConfig.isValid) {
153
+ throw new Error('Invalid Apple Pay configuration provided');
154
+ }
155
+ }
156
+ /**
157
+ * Validate merchant with Apple Pay servers via API
158
+ */
159
+ async validateMerchant(authToken, accountId) {
160
+ const endpoint = 'apple_pay/merchant_session';
161
+ try {
162
+ const response = await this.api.post({
163
+ endpoint,
164
+ authToken,
165
+ headers: {
166
+ 'Sub-Account': accountId,
167
+ },
168
+ });
169
+ return response;
170
+ }
171
+ catch (error) {
172
+ console.error('Backend validation failed:', error);
173
+ throw new Error('Merchant validation failed');
174
+ }
175
+ }
176
+ /**
177
+ * Process Apple Pay payment via API (fixed to match original logic)
178
+ */
179
+ async processPayment(authToken, accountId, payload) {
180
+ const endpoint = 'apple_pay/process_token';
181
+ const result = await this.api.post({
182
+ endpoint,
183
+ authToken,
184
+ body: payload,
185
+ headers: {
186
+ 'Sub-Account': accountId,
187
+ },
188
+ });
189
+ return {
190
+ success: result.id && !!result.data.token,
191
+ data: result,
192
+ };
193
+ }
194
+ /**
195
+ * Check if Apple Pay is available on this device/browser
196
+ */
197
+ isAvailable() {
198
+ return (ApplePayHelpers.isApplePaySupported() && ApplePayHelpers.canMakePayments());
199
+ }
200
+ /**
201
+ * Check if the user has an active card for the merchant
202
+ */
203
+ async canMakePaymentsWithActiveCard() {
204
+ if (!this.applePayConfig) {
205
+ throw new Error('Apple Pay not initialized. Call initialize() first.');
206
+ }
207
+ return await ApplePayHelpers.canMakePaymentsWithActiveCard(this.applePayConfig.merchantIdentifier);
208
+ }
209
+ /**
210
+ * Start Apple Pay session
211
+ */
212
+ async startPaymentSession(paymentRequest, authToken, accountId) {
213
+ if (!this.applePayConfig) {
214
+ throw new Error('Apple Pay not initialized. Call initialize() first.');
215
+ }
216
+ // if (!this.isAvailable()) {
217
+ // throw new Error('Apple Pay is not available on this device/browser');
218
+ // }
219
+ const request = new ApplePayPaymentRequest(paymentRequest);
220
+ if (!request.isValid) {
221
+ throw new Error('Invalid payment request provided');
222
+ }
223
+ this.currentPaymentRequest = request;
224
+ return new Promise((resolve, reject) => {
225
+ try {
226
+ this.currentSession = new window.ApplePaySession(3, request);
227
+ this.setupSessionEventHandlers(resolve, reject, authToken, accountId);
228
+ this.currentSession.begin();
229
+ }
230
+ catch (error) {
231
+ reject({
232
+ success: false,
233
+ error: {
234
+ code: 'SESSION_ERROR',
235
+ message: error instanceof Error
236
+ ? error.message
237
+ : 'Failed to start Apple Pay session',
238
+ },
239
+ });
240
+ }
241
+ });
242
+ }
243
+ /**
244
+ * Abort current Apple Pay session
245
+ */
246
+ abortPaymentSession() {
247
+ if (this.currentSession) {
248
+ this.currentSession.abort();
249
+ this.currentSession = undefined;
250
+ this.currentPaymentRequest = undefined;
251
+ }
252
+ }
253
+ /**
254
+ * Setup Apple Pay session event handlers
255
+ */
256
+ setupSessionEventHandlers(resolve, reject, authToken, accountId) {
257
+ if (!this.currentSession ||
258
+ !this.applePayConfig ||
259
+ !this.currentPaymentRequest) {
260
+ return;
261
+ }
262
+ this.currentSession.onvalidatemerchant = async () => {
263
+ try {
264
+ if (!authToken) {
265
+ throw new Error('Authentication token not provided.');
266
+ }
267
+ const merchantSession = await this.validateMerchant(authToken, accountId);
268
+ try {
269
+ this.currentSession.completeMerchantValidation(merchantSession);
270
+ }
271
+ catch (completionError) {
272
+ console.error('Error calling completeMerchantValidation:', completionError);
273
+ throw completionError;
274
+ }
275
+ }
276
+ catch (error) {
277
+ console.error('=== MERCHANT VALIDATION ERROR ===');
278
+ console.error('Error during merchant validation:', error);
279
+ console.error('Error stack:', error.stack);
280
+ this.currentSession.abort();
281
+ reject({
282
+ success: false,
283
+ error: {
284
+ code: 'MERCHANT_VALIDATION_ERROR',
285
+ message: error instanceof Error
286
+ ? error.message
287
+ : 'Merchant validation failed',
288
+ },
289
+ });
290
+ }
291
+ };
292
+ this.currentSession.onpaymentauthorized = async (event) => {
293
+ try {
294
+ const payment = event.payment;
295
+ const paymentPayload = Object.assign(Object.assign({}, payment.token), { product_details: {
296
+ name: this.currentPaymentRequest.total.label,
297
+ price: ApplePayHelpers.parseAmount(this.currentPaymentRequest.total.amount),
298
+ description: this.currentPaymentRequest.total.label,
299
+ } });
300
+ const paymentResult = await this.processPayment(authToken, accountId, paymentPayload);
301
+ if (paymentResult.success) {
302
+ this.currentSession.completePayment({
303
+ status: ApplePaySessionStatus.STATUS_SUCCESS,
304
+ });
305
+ resolve({
306
+ success: true,
307
+ token: payment.token,
308
+ paymentMethodId: paymentResult.data.id,
309
+ });
310
+ }
311
+ else {
312
+ console.error('PSP reported payment failure:', paymentResult.data);
313
+ this.currentSession.completePayment({
314
+ status: ApplePaySessionStatus.STATUS_FAILURE,
315
+ });
316
+ reject({
317
+ success: false,
318
+ error: {
319
+ code: 'PAYMENT_PROCESSING_ERROR',
320
+ message: 'Payment processing failed',
321
+ },
322
+ });
323
+ }
324
+ }
325
+ catch (error) {
326
+ console.error('=== PAYMENT PROCESSING ERROR ===');
327
+ console.error('Error processing payment:', error);
328
+ console.error('Error stack:', error.stack);
329
+ this.currentSession.completePayment({
330
+ status: ApplePaySessionStatus.STATUS_FAILURE,
331
+ });
332
+ reject({
333
+ success: false,
334
+ error: {
335
+ code: 'PAYMENT_PROCESSING_ERROR',
336
+ message: error instanceof Error
337
+ ? error.message
338
+ : 'Payment processing failed',
339
+ },
340
+ });
341
+ }
342
+ finally {
343
+ this.currentSession = undefined;
344
+ this.currentPaymentRequest = undefined;
345
+ }
346
+ };
347
+ this.currentSession.onpaymentmethodselected = () => {
348
+ const paymentUpdate = {
349
+ newTotal: this.currentPaymentRequest.total,
350
+ newLineItems: this.currentPaymentRequest.lineItems || [],
351
+ };
352
+ try {
353
+ this.currentSession.completePaymentMethodSelection(paymentUpdate);
354
+ }
355
+ catch (error) {
356
+ console.error('Error completing payment method selection:', error);
357
+ this.currentSession.abort();
358
+ }
359
+ };
360
+ this.currentSession.onshippingmethodselected = () => {
361
+ this.currentSession.completeShippingMethodSelection({
362
+ status: ApplePaySessionStatus.STATUS_SUCCESS,
363
+ newTotal: this.currentPaymentRequest.total,
364
+ newLineItems: this.currentPaymentRequest.lineItems || [],
365
+ });
366
+ };
367
+ this.currentSession.oncancel = (event) => {
368
+ if (event.sessionError) {
369
+ console.error(event.sessionError);
370
+ switch (event.sessionError.code) {
371
+ case 'unknown':
372
+ console.error('Unknown error - likely merchant validation issue');
373
+ console.error('This usually means:');
374
+ console.error('1. Merchant certificate is invalid or expired');
375
+ console.error('2. Merchant identifier mismatch');
376
+ console.error('3. Backend validation endpoint issues');
377
+ break;
378
+ case 'invalidMerchantSession':
379
+ console.error('Invalid merchant session provided');
380
+ console.error('Check that the merchant session from backend is valid');
381
+ break;
382
+ case 'userCancel':
383
+ console.error('User cancelled the payment');
384
+ break;
385
+ default:
386
+ console.error('Other error code:', event.sessionError.code);
387
+ }
388
+ }
389
+ this.currentSession = undefined;
390
+ this.currentPaymentRequest = undefined;
391
+ reject({
392
+ success: false,
393
+ error: {
394
+ code: 'USER_CANCELLED',
395
+ message: 'User cancelled the Apple Pay session',
396
+ },
397
+ });
398
+ };
399
+ if ('onerror' in this.currentSession) {
400
+ this.currentSession.onerror = (error) => {
401
+ console.error('=== APPLE PAY SESSION ERROR ===');
402
+ console.error('Session error:', error);
403
+ this.currentSession = undefined;
404
+ this.currentPaymentRequest = undefined;
405
+ reject({
406
+ success: false,
407
+ error: {
408
+ code: 'SESSION_ERROR',
409
+ message: 'Apple Pay session error occurred',
410
+ },
411
+ });
412
+ };
413
+ }
414
+ }
415
+ /**
416
+ * Create a basic payment request
417
+ */
418
+ static createPaymentRequest(amount, label, countryCode = 'US', currencyCode = 'USD') {
419
+ return {
420
+ countryCode,
421
+ currencyCode,
422
+ merchantCapabilities: ApplePayHelpers.getDefaultMerchantCapabilities(),
423
+ supportedNetworks: ApplePayHelpers.getDefaultSupportedNetworks(),
424
+ total: ApplePayHelpers.createLineItem(label, amount),
425
+ };
426
+ }
427
+ /**
428
+ * Get current configuration
429
+ */
430
+ getApplePayConfig() {
431
+ return this.applePayConfig;
432
+ }
433
+ }
434
+
435
+ const ApplePaySkeleton = (props) => {
436
+ const { isReady } = props;
437
+ if (isReady) {
438
+ return null;
439
+ }
440
+ return (index.h("div", { class: 'container-fluid p-0' },
441
+ index.h("div", { class: 'row mb-3' },
442
+ index.h("div", { class: 'col-12 align-content-center' },
443
+ index.h(skeleton.Skeleton, { height: '44px', width: '100%', styles: { borderRadius: "8px" } })))));
444
+ };
445
+
446
+ const ProcessingSpinner = () => (index.h("div", { class: 'processing-overlay' },
447
+ index.h("div", { class: 'spinner' }),
448
+ index.h("span", null, "Processing...")));
449
+ const ApplePayButton = (props) => {
450
+ const getApplePayButtonClass = () => {
451
+ let classes = "apple-pay-button";
452
+ switch (props.buttonStyle) {
453
+ case ApplePayButtonStyle.WHITE:
454
+ classes += " apple-pay-button-white";
455
+ break;
456
+ case ApplePayButtonStyle.WHITE_OUTLINE:
457
+ classes += " apple-pay-button-white-outline";
458
+ break;
459
+ case ApplePayButtonStyle.BLACK:
460
+ default:
461
+ classes += " apple-pay-button-black";
462
+ break;
463
+ }
464
+ switch (props.buttonType) {
465
+ case ApplePayButtonType.BUY:
466
+ classes += " apple-pay-button-type-buy";
467
+ break;
468
+ case ApplePayButtonType.DONATE:
469
+ classes += " apple-pay-button-type-donate";
470
+ break;
471
+ case ApplePayButtonType.PLAIN:
472
+ default:
473
+ classes += " apple-pay-button-type-plain";
474
+ break;
475
+ }
476
+ if (props.disabled || props.isProcessing || !props.isAvailable) {
477
+ classes += " disabled";
478
+ }
479
+ return classes;
480
+ };
481
+ const getButtonStyles = () => {
482
+ return {
483
+ width: props.width || "200px",
484
+ height: props.height || "48px",
485
+ };
486
+ };
487
+ const handleClick = () => {
488
+ if (!props.disabled &&
489
+ !props.isProcessing &&
490
+ props.isAvailable &&
491
+ props.clickHandler) {
492
+ props.clickHandler();
493
+ }
494
+ };
495
+ return (index.h("div", { class: 'apple-pay-button-container' },
496
+ index.h("button", Object.assign({ class: getApplePayButtonClass(), style: getButtonStyles(), onClick: handleClick, disabled: props.disabled || props.isProcessing || !props.isAvailable, "aria-label": 'Pay with Apple Pay', type: 'button' }, props), props.isProcessing && ProcessingSpinner()),
497
+ index.h("style", null, `
498
+ .apple-pay-button-container {
499
+ display: inline-block;
500
+ position: relative;
501
+ }
502
+
503
+ /* Apple Pay CSS classes - these are the official Apple Pay button styles */
504
+ .apple-pay-button {
505
+ display: inline-block;
506
+ -webkit-appearance: -apple-pay-button;
507
+ -apple-pay-button-type: plain; /* default */
508
+ -apple-pay-button-style: black; /* default */
509
+ border-radius: 8px;
510
+ cursor: pointer;
511
+ border: none;
512
+ outline: none;
513
+ transition: opacity 0.2s ease;
514
+ position: relative;
515
+ }
516
+
517
+ /* Button styles */
518
+ .apple-pay-button.apple-pay-button-black {
519
+ -apple-pay-button-style: black;
520
+ }
521
+
522
+ .apple-pay-button.apple-pay-button-white {
523
+ -apple-pay-button-style: white;
524
+ }
525
+
526
+ .apple-pay-button.apple-pay-button-white-outline {
527
+ -apple-pay-button-style: white-outline;
528
+ }
529
+
530
+ /* Button types */
531
+ .apple-pay-button.apple-pay-button-type-plain {
532
+ -apple-pay-button-type: plain;
533
+ }
534
+
535
+ .apple-pay-button.apple-pay-button-type-buy {
536
+ -apple-pay-button-type: buy;
537
+ }
538
+
539
+ .apple-pay-button.apple-pay-button-type-donate {
540
+ -apple-pay-button-type: donate;
541
+ }
542
+
543
+ /* Hover and disabled states */
544
+ .apple-pay-button:hover:not(.disabled) {
545
+ opacity: 0.9;
546
+ }
547
+
548
+ .apple-pay-button.disabled {
549
+ opacity: 0.5;
550
+ cursor: not-allowed;
551
+ }
552
+
553
+ /* Processing overlay */
554
+ .processing-overlay {
555
+ position: absolute;
556
+ top: 0;
557
+ left: 0;
558
+ right: 0;
559
+ bottom: 0;
560
+ display: flex;
561
+ align-items: center;
562
+ justify-content: center;
563
+ gap: 8px;
564
+ background: rgba(0, 0, 0, 0.8);
565
+ color: white;
566
+ border-radius: 8px;
567
+ font-size: 14px;
568
+ font-weight: 500;
569
+ }
570
+
571
+ .spinner {
572
+ width: 16px;
573
+ height: 16px;
574
+ border: 2px solid rgba(255, 255, 255, 0.3);
575
+ border-top: 2px solid #fff;
576
+ border-radius: 50%;
577
+ animation: spin 1s linear infinite;
578
+ }
579
+
580
+ @keyframes spin {
581
+ 0% { transform: rotate(0deg); }
582
+ 100% { transform: rotate(360deg); }
583
+ }
584
+
585
+ /* Responsive design */
586
+ @media (max-width: 480px) {
587
+ .apple-pay-button {
588
+ width: 100% !important;
589
+ min-width: 200px;
590
+ }
591
+ }
592
+ `)));
593
+ };
594
+
595
+ const ApplePay = class {
596
+ constructor(hostRef) {
597
+ index.registerInstance(this, hostRef);
598
+ this.applePayStarted = index.createEvent(this, "applePayStarted");
599
+ this.applePayCompleted = index.createEvent(this, "applePayCompleted");
600
+ this.applePayCancelled = index.createEvent(this, "applePayCancelled");
601
+ this.applePayError = index.createEvent(this, "applePayError");
602
+ this.countryCode = "US";
603
+ this.merchantIdentifier = "merchant.com.staging-justifi.checkout-dev";
604
+ this.merchantDisplayName = "JustiFi Checkout";
605
+ this.initiativeContext = "dev-checkout.justifi-staging.com";
606
+ this.buttonType = ApplePayButtonType.PLAIN;
607
+ this.buttonStyle = ApplePayButtonStyle.BLACK;
608
+ this.disabled = false;
609
+ this.showSkeleton = true;
610
+ this.isLoading = true;
611
+ this.isProcessing = false;
612
+ this.isAvailable = false;
613
+ this.canMakePayments = false;
614
+ this.isConfigValid = true;
615
+ this.error = null;
616
+ this.handleApplePayClick = async () => {
617
+ var _a;
618
+ if (this.isProcessing || this.disabled || !this.isAvailable) {
619
+ return;
620
+ }
621
+ try {
622
+ this.isProcessing = true;
623
+ this.error = null;
624
+ this.applePayStarted.emit();
625
+ const paymentRequest = {
626
+ countryCode: this.countryCode,
627
+ currencyCode: checkout_store.checkoutStore.paymentCurrency,
628
+ merchantCapabilities: ApplePayHelpers.getDefaultMerchantCapabilities(),
629
+ supportedNetworks: ApplePayHelpers.getDefaultSupportedNetworks(),
630
+ total: ApplePayHelpers.createLineItem(checkout_store.checkoutStore.paymentDescription, checkout_store.checkoutStore.paymentAmount),
631
+ };
632
+ const result = await this.applePayService.startPaymentSession(paymentRequest, checkout_store.checkoutStore.authToken, checkout_store.checkoutStore.accountId);
633
+ if (result.success) {
634
+ this.applePayCompleted.emit({
635
+ success: true,
636
+ token: result.token,
637
+ paymentMethodId: result.paymentMethodId,
638
+ });
639
+ }
640
+ else {
641
+ this.applePayCompleted.emit({
642
+ success: false,
643
+ error: result.error,
644
+ });
645
+ this.applePayError.emit({
646
+ error: ((_a = result.error) === null || _a === void 0 ? void 0 : _a.message) || "Payment failed",
647
+ });
648
+ }
649
+ }
650
+ catch (error) {
651
+ console.error("Apple Pay payment error:", error);
652
+ const errorMessage = error instanceof Error ? error.message : "Payment failed";
653
+ this.error = errorMessage;
654
+ this.applePayError.emit({ error: errorMessage });
655
+ this.applePayCompleted.emit({
656
+ success: false,
657
+ error: errorMessage,
658
+ });
659
+ }
660
+ finally {
661
+ this.isProcessing = false;
662
+ }
663
+ };
664
+ }
665
+ componentWillLoad() {
666
+ this.applePayService = new ApplePayService();
667
+ this.initializeApplePay();
668
+ }
669
+ componentDidLoad() {
670
+ checkout_store.onChange("paymentAmount", () => {
671
+ this.initializeApplePay();
672
+ });
673
+ checkout_store.onChange("authToken", () => {
674
+ this.initializeApplePay();
675
+ });
676
+ }
677
+ watchPropsChange() {
678
+ this.initializeApplePay();
679
+ }
680
+ async initializeApplePay() {
681
+ try {
682
+ this.isLoading = true;
683
+ this.error = null;
684
+ this.isConfigValid = true;
685
+ const hasRequiredConfig = Boolean(checkout_store.checkoutStore.paymentAmount) &&
686
+ Boolean(checkout_store.checkoutStore.paymentCurrency) &&
687
+ Boolean(checkout_store.checkoutStore.authToken);
688
+ if (!hasRequiredConfig) {
689
+ this.error = "Missing required Apple Pay configuration";
690
+ this.isConfigValid = false;
691
+ console.error("Apple Pay config error: missing required values", {
692
+ paymentAmount: checkout_store.checkoutStore.paymentAmount,
693
+ paymentCurrency: checkout_store.checkoutStore.paymentCurrency,
694
+ hasAuthToken: Boolean(checkout_store.checkoutStore.authToken),
695
+ });
696
+ this.applePayError.emit({ error: this.error });
697
+ this.isLoading = false;
698
+ return;
699
+ }
700
+ this.isAvailable = ApplePayHelpers.isApplePaySupported();
701
+ this.canMakePayments = ApplePayHelpers.canMakePayments();
702
+ if (!this.isAvailable) {
703
+ this.error = "Apple Pay is not supported on this device";
704
+ console.error(this.error);
705
+ this.applePayError.emit({ error: this.error });
706
+ this.isLoading = false;
707
+ return;
708
+ }
709
+ if (!this.canMakePayments) {
710
+ this.error = "Apple Pay is not available";
711
+ console.error(this.error);
712
+ this.applePayError.emit({ error: this.error });
713
+ this.isLoading = false;
714
+ return;
715
+ }
716
+ const applePayConfig = {
717
+ merchantIdentifier: this.merchantIdentifier,
718
+ displayName: this.merchantDisplayName,
719
+ initiative: "web",
720
+ initiativeContext: this.initiativeContext,
721
+ buttonType: this.buttonType,
722
+ buttonStyle: this.buttonStyle,
723
+ };
724
+ this.applePayService.initialize(applePayConfig);
725
+ const hasActiveCard = await this.applePayService.canMakePaymentsWithActiveCard();
726
+ if (!hasActiveCard) {
727
+ console.warn("No Apple Pay cards available, but continuing...");
728
+ }
729
+ }
730
+ catch (error) {
731
+ console.error("Apple Pay initialization error:", error);
732
+ this.error =
733
+ error instanceof Error
734
+ ? error.message
735
+ : "Failed to initialize Apple Pay";
736
+ this.applePayError.emit({ error: this.error });
737
+ }
738
+ finally {
739
+ this.isLoading = false;
740
+ }
741
+ }
742
+ async isSupported() {
743
+ return this.isAvailable && this.canMakePayments;
744
+ }
745
+ async getPaymentMethods() {
746
+ if (!this.isAvailable) {
747
+ return [];
748
+ }
749
+ return ApplePayHelpers.getDefaultSupportedNetworks();
750
+ }
751
+ async abort() {
752
+ this.applePayService.abortPaymentSession();
753
+ this.isProcessing = false;
754
+ this.applePayCancelled.emit();
755
+ }
756
+ render() {
757
+ const shouldHide = !this.isLoading &&
758
+ (!this.isConfigValid || !this.isAvailable || !this.canMakePayments);
759
+ if (shouldHide) {
760
+ return null;
761
+ }
762
+ const isReady = !this.isLoading &&
763
+ this.isAvailable &&
764
+ this.canMakePayments &&
765
+ this.isConfigValid;
766
+ return (index.h(styledHost.StyledHost, null, index.h("script", { async: true, src: 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js' }), index.h("div", { class: 'apple-pay-container' }, index.h(ApplePaySkeleton, { isReady: isReady }), !this.isLoading &&
767
+ this.isAvailable &&
768
+ this.canMakePayments && (index.h(ApplePayButton, { buttonType: this.buttonType, buttonStyle: this.buttonStyle, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleApplePayClick }))), index.h("style", null, `
769
+ .apple-pay-container {
770
+ width: 100%;
771
+ }
772
+ `)));
773
+ }
774
+ static get watchers() { return {
775
+ "merchantIdentifier": ["watchPropsChange"],
776
+ "buttonType": ["watchPropsChange"],
777
+ "buttonStyle": ["watchPropsChange"],
778
+ "disabled": ["watchPropsChange"]
779
+ }; }
780
+ };
781
+
782
+ exports.justifi_apple_pay = ApplePay;