@justifi/webcomponents 6.1.0-rc.1 → 7.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.
Files changed (231) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/bank-account-document-form-inputs_4.cjs.entry.js +2 -2
  3. package/dist/cjs/bank-account-form.cjs.entry.js +2 -2
  4. package/dist/cjs/card-form.cjs.entry.js +2 -2
  5. package/dist/cjs/{check-pkg-version-BURRKC_7.js → check-pkg-version-BqaDMbw-.js} +1 -1
  6. package/dist/cjs/checkouts-list-core.cjs.entry.js +1 -1
  7. package/dist/cjs/form-alert_5.cjs.entry.js +4 -4
  8. package/dist/cjs/form-control-checkbox.cjs.entry.js +2 -2
  9. package/dist/cjs/form-control-monetary-provisioning.cjs.entry.js +2 -2
  10. package/dist/cjs/form-control-number-masked_2.cjs.entry.js +1 -1
  11. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  12. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +9 -9
  13. package/dist/cjs/justifi-apple-pay.cjs.entry.js +4 -8
  14. package/dist/cjs/justifi-bank-account-billing-form-simple_9.cjs.entry.js +6 -6
  15. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-business-representative-form-inputs.cjs.entry.js +1 -1
  18. package/dist/cjs/justifi-checkout-summary_7.cjs.entry.js +15 -7
  19. package/dist/cjs/justifi-checkout.cjs.entry.js +4 -4
  20. package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +1 -1
  21. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +3 -3
  22. package/dist/cjs/justifi-details.cjs.entry.js +1 -1
  23. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  24. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  25. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  26. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  27. package/dist/cjs/justifi-owner-form_3.cjs.entry.js +3 -3
  28. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  29. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +1 -1
  30. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +3 -3
  31. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  32. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  33. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  34. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  35. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  36. package/dist/cjs/justifi-refund-payment.cjs.entry.js +2 -2
  37. package/dist/cjs/justifi-saved-payment-method.cjs.entry.js +1 -1
  38. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  39. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  40. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  41. package/dist/cjs/loader.cjs.js +1 -1
  42. package/dist/cjs/{package-Cq0M4ut-.js → package-BHmOFvbM.js} +1 -1
  43. package/dist/cjs/pagination-menu.cjs.entry.js +3 -3
  44. package/dist/cjs/webcomponents.cjs.js +1 -1
  45. package/dist/collection/api/services/apple-pay.service.js +1 -1
  46. package/dist/collection/collection-manifest.json +1 -1
  47. package/dist/collection/components/business-forms/business-form/additional-questions/additional-questions.js +6 -6
  48. package/dist/collection/components/business-forms/business-form/business-core-info/business-core-info.js +1 -1
  49. package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +6 -6
  50. package/dist/collection/components/business-forms/business-form/legal-address-form/legal-address-form.js +6 -6
  51. package/dist/collection/components/business-forms/owner-form/identity-address/identity-address-form.js +1 -1
  52. package/dist/collection/components/business-forms/owner-form/owner-form-core.js +1 -1
  53. package/dist/collection/components/business-forms/owner-form/owner-form-inputs.js +6 -6
  54. package/dist/collection/components/business-forms/owner-form/owner-form.js +1 -1
  55. package/dist/collection/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step.js +1 -1
  56. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-document-inputs.js +1 -1
  57. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-form-inputs.js +1 -1
  58. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +1 -1
  59. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
  60. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +1 -1
  61. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-inputs.js +1 -1
  62. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.js +1 -1
  63. package/dist/collection/components/business-forms/payment-provisioning/form-control-monetary-provisioning.js +2 -2
  64. package/dist/collection/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step.js +1 -1
  65. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-core.js +1 -1
  66. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-buttons.js +1 -1
  67. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-steps.js +1 -1
  68. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning.js +1 -1
  69. package/dist/collection/components/business-forms/payment-provisioning/terms-and-conditions/business-terms-conditions-form-step.js +1 -1
  70. package/dist/collection/components/checkout/bank-account-form/bank-account-form.js +2 -2
  71. package/dist/collection/components/checkout/card-form/card-form.js +2 -2
  72. package/dist/collection/components/checkout/checkout.js +2 -2
  73. package/dist/collection/components/checkout/save-new-payment-method.js +1 -1
  74. package/dist/collection/components/checkout/saved-payment-method.js +1 -1
  75. package/dist/collection/components/checkouts-list/checkouts-list-core.js +1 -1
  76. package/dist/collection/components/checkouts-list/checkouts-list-filters.js +1 -1
  77. package/dist/collection/components/checkouts-list/checkouts-list.js +1 -1
  78. package/dist/collection/components/modular-checkout/modular-checkout.js +16 -7
  79. package/dist/collection/components/modular-checkout/sub-components/apple-pay.js +4 -8
  80. package/dist/collection/components/modular-checkout/sub-components/bank-account-billing-form-simple.js +1 -1
  81. package/dist/collection/components/modular-checkout/sub-components/card-billing-form-simple.js +1 -1
  82. package/dist/collection/components/tokenize-payment-method/tokenize-payment-method.js +3 -2
  83. package/dist/collection/ui-components/details/details.js +1 -1
  84. package/dist/collection/ui-components/form/form-control-checkbox.js +2 -2
  85. package/dist/collection/ui-components/pagination-menu/pagination-menu.js +3 -3
  86. package/dist/collection/ui-components/shadow-dom-components/justifi-radio-list-item.js +1 -1
  87. package/dist/docs.json +97 -18
  88. package/dist/esm/bank-account-document-form-inputs_4.entry.js +2 -2
  89. package/dist/esm/bank-account-form.entry.js +2 -2
  90. package/dist/esm/card-form.entry.js +2 -2
  91. package/dist/esm/{check-pkg-version-Cd_i8U0d.js → check-pkg-version-BS-9lGl9.js} +1 -1
  92. package/dist/esm/checkouts-list-core.entry.js +1 -1
  93. package/dist/esm/form-alert_5.entry.js +4 -4
  94. package/dist/esm/form-control-checkbox.entry.js +2 -2
  95. package/dist/esm/form-control-monetary-provisioning.entry.js +2 -2
  96. package/dist/esm/form-control-number-masked_2.entry.js +1 -1
  97. package/dist/esm/hidden-input_2.entry.js +1 -1
  98. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +9 -9
  99. package/dist/esm/justifi-apple-pay.entry.js +4 -8
  100. package/dist/esm/justifi-bank-account-billing-form-simple_9.entry.js +6 -6
  101. package/dist/esm/justifi-business-details.entry.js +2 -2
  102. package/dist/esm/justifi-business-form.entry.js +2 -2
  103. package/dist/esm/justifi-business-representative-form-inputs.entry.js +1 -1
  104. package/dist/esm/justifi-checkout-summary_7.entry.js +15 -7
  105. package/dist/esm/justifi-checkout.entry.js +4 -4
  106. package/dist/esm/justifi-checkouts-list-filters.entry.js +1 -1
  107. package/dist/esm/justifi-checkouts-list.entry.js +3 -3
  108. package/dist/esm/justifi-details.entry.js +1 -1
  109. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  110. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  111. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  112. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  113. package/dist/esm/justifi-owner-form_3.entry.js +3 -3
  114. package/dist/esm/justifi-payment-details.entry.js +2 -2
  115. package/dist/esm/justifi-payment-provisioning-core.entry.js +1 -1
  116. package/dist/esm/justifi-payment-provisioning.entry.js +3 -3
  117. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  118. package/dist/esm/justifi-payments-list.entry.js +2 -2
  119. package/dist/esm/justifi-payout-details.entry.js +2 -2
  120. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  121. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  122. package/dist/esm/justifi-refund-payment.entry.js +2 -2
  123. package/dist/esm/justifi-saved-payment-method.entry.js +1 -1
  124. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  125. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  126. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/esm/{package-BBO3I4s6.js → package-C1kJMZIt.js} +1 -1
  129. package/dist/esm/pagination-menu.entry.js +3 -3
  130. package/dist/esm/webcomponents.js +1 -1
  131. package/dist/module/additional-questions.js +2 -2
  132. package/dist/module/bank-account-billing-form-simple.js +1 -1
  133. package/dist/module/bank-account-document-inputs.js +1 -1
  134. package/dist/module/bank-account-form-inputs2.js +1 -1
  135. package/dist/module/bank-account-form.js +2 -2
  136. package/dist/module/business-additional-questions-form-step.js +1 -1
  137. package/dist/module/business-bank-account-form-step.js +1 -1
  138. package/dist/module/business-core-info-form-step.js +1 -1
  139. package/dist/module/business-core-info.js +1 -1
  140. package/dist/module/business-owners-form-step.js +1 -1
  141. package/dist/module/business-representative-form-inputs.js +1 -1
  142. package/dist/module/business-representative-form-step.js +1 -1
  143. package/dist/module/business-representative.js +2 -2
  144. package/dist/module/business-terms-conditions-form-step.js +1 -1
  145. package/dist/module/card-billing-form-simple.js +1 -1
  146. package/dist/module/card-form.js +2 -2
  147. package/dist/module/checkouts-list-core2.js +1 -1
  148. package/dist/module/details.js +1 -1
  149. package/dist/module/form-control-checkbox2.js +2 -2
  150. package/dist/module/form-control-monetary-provisioning2.js +2 -2
  151. package/dist/module/identity-address-form.js +1 -1
  152. package/dist/module/justifi-apple-pay.js +4 -8
  153. package/dist/module/justifi-checkout.js +2 -2
  154. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  155. package/dist/module/justifi-checkouts-list.js +1 -1
  156. package/dist/module/justifi-payment-provisioning.js +1 -1
  157. package/dist/module/justifi-radio-list-item2.js +1 -1
  158. package/dist/module/justifi-saved-payment-method.js +1 -1
  159. package/dist/module/legal-address-form-step.js +1 -1
  160. package/dist/module/legal-address-form.js +2 -2
  161. package/dist/module/modular-checkout.js +13 -5
  162. package/dist/module/owner-form-core2.js +1 -1
  163. package/dist/module/owner-form-inputs2.js +2 -2
  164. package/dist/module/owner-form.js +1 -1
  165. package/dist/module/package.js +1 -1
  166. package/dist/module/pagination-menu2.js +3 -3
  167. package/dist/module/payment-provisioning-core.js +1 -1
  168. package/dist/module/payment-provisioning-form-buttons.js +1 -1
  169. package/dist/module/payment-provisioning-form-steps.js +1 -1
  170. package/dist/module/save-new-payment-method.js +1 -1
  171. package/dist/types/components/business-forms/schemas/business-form-schema.d.ts +1 -1
  172. package/dist/types/components.d.ts +10 -8
  173. package/dist/webcomponents/{p-e97dee15.entry.js → p-011efdbf.entry.js} +1 -1
  174. package/dist/webcomponents/p-0142114f.entry.js +1 -0
  175. package/dist/webcomponents/{p-9f04cac4.entry.js → p-146de253.entry.js} +1 -1
  176. package/dist/webcomponents/{p-30147031.entry.js → p-17f7590c.entry.js} +1 -1
  177. package/dist/webcomponents/p-20f036cc.entry.js +1 -0
  178. package/dist/webcomponents/{p-b0a36936.entry.js → p-2247ccd8.entry.js} +1 -1
  179. package/dist/webcomponents/{p-f739a98d.entry.js → p-2473381f.entry.js} +1 -1
  180. package/dist/webcomponents/{p-a0a0e200.entry.js → p-3d128c25.entry.js} +1 -1
  181. package/dist/webcomponents/{p-10278c48.entry.js → p-44e32f85.entry.js} +1 -1
  182. package/dist/webcomponents/{p-2687e615.entry.js → p-4b45317f.entry.js} +1 -1
  183. package/dist/webcomponents/{p-c9fef3e4.entry.js → p-51ef1af7.entry.js} +1 -1
  184. package/dist/webcomponents/{p-18353682.entry.js → p-56b993b3.entry.js} +1 -1
  185. package/dist/webcomponents/{p-acb0f3ae.entry.js → p-5818d39e.entry.js} +1 -1
  186. package/dist/webcomponents/p-5c3d8de5.entry.js +1 -0
  187. package/dist/webcomponents/{p-108209c5.entry.js → p-68f22275.entry.js} +1 -1
  188. package/dist/webcomponents/{p-1bc8da98.entry.js → p-6a365abb.entry.js} +1 -1
  189. package/dist/webcomponents/p-6f1dd478.entry.js +1 -0
  190. package/dist/webcomponents/{p-fa14b671.entry.js → p-71258742.entry.js} +1 -1
  191. package/dist/webcomponents/{p-ba5b1c54.entry.js → p-7160e5ad.entry.js} +1 -1
  192. package/dist/webcomponents/{p-1e080811.entry.js → p-79c45974.entry.js} +1 -1
  193. package/dist/webcomponents/p-7b103dad.entry.js +1 -0
  194. package/dist/webcomponents/p-8018523d.entry.js +1 -0
  195. package/dist/webcomponents/{p-1df96001.entry.js → p-8a0b7a0f.entry.js} +1 -1
  196. package/dist/webcomponents/p-8d3f5638.entry.js +1 -0
  197. package/dist/webcomponents/{p-176aa079.entry.js → p-8fd28a74.entry.js} +1 -1
  198. package/dist/webcomponents/{p-1b3b6956.entry.js → p-9c4079cc.entry.js} +1 -1
  199. package/dist/webcomponents/{p-O-hoT2Oo.js → p-BkeJbw_O.js} +1 -1
  200. package/dist/webcomponents/p-C1kJMZIt.js +1 -0
  201. package/dist/webcomponents/{p-914e168d.entry.js → p-a928c6fb.entry.js} +1 -1
  202. package/dist/webcomponents/{p-1e87c8ed.entry.js → p-ab998669.entry.js} +1 -1
  203. package/dist/webcomponents/p-b90999af.entry.js +1 -0
  204. package/dist/webcomponents/{p-613cf570.entry.js → p-c2b8eebe.entry.js} +1 -1
  205. package/dist/webcomponents/p-cecb65c4.entry.js +1 -0
  206. package/dist/webcomponents/p-df329742.entry.js +1 -0
  207. package/dist/webcomponents/p-e4d08075.entry.js +1 -0
  208. package/dist/webcomponents/p-ea2a9a81.entry.js +1 -0
  209. package/dist/webcomponents/p-ee48fe6d.entry.js +1 -0
  210. package/dist/webcomponents/{p-e037cdd1.entry.js → p-eecba4d6.entry.js} +1 -1
  211. package/dist/webcomponents/p-f4981e8e.entry.js +1 -0
  212. package/dist/webcomponents/p-f6fbd43d.entry.js +1 -0
  213. package/dist/webcomponents/{p-ffe01f1b.entry.js → p-f8cbcbe9.entry.js} +1 -1
  214. package/dist/webcomponents/webcomponents.esm.js +1 -1
  215. package/package.json +13 -13
  216. package/dist/webcomponents/p-19ccbeee.entry.js +0 -1
  217. package/dist/webcomponents/p-1c433962.entry.js +0 -1
  218. package/dist/webcomponents/p-1efc0d88.entry.js +0 -1
  219. package/dist/webcomponents/p-1f971a0f.entry.js +0 -1
  220. package/dist/webcomponents/p-4d5c71c4.entry.js +0 -1
  221. package/dist/webcomponents/p-7131211a.entry.js +0 -1
  222. package/dist/webcomponents/p-80b1c65b.entry.js +0 -1
  223. package/dist/webcomponents/p-8975bf93.entry.js +0 -1
  224. package/dist/webcomponents/p-91c1e2ac.entry.js +0 -1
  225. package/dist/webcomponents/p-BBO3I4s6.js +0 -1
  226. package/dist/webcomponents/p-a57c1400.entry.js +0 -1
  227. package/dist/webcomponents/p-df7f36aa.entry.js +0 -1
  228. package/dist/webcomponents/p-e035a92e.entry.js +0 -1
  229. package/dist/webcomponents/p-e628a0c8.entry.js +0 -1
  230. package/dist/webcomponents/p-eafd179b.entry.js +0 -1
  231. package/dist/webcomponents/p-f8c22c77.entry.js +0 -1
@@ -1 +0,0 @@
1
- import{h as e,r as t,c as n}from"./p-qipqIMyC.js";import{A as s}from"./p-BUa0YOaw.js";import{S as i}from"./p-CLQx9p9q.js";import"./p-CZfYo5-1.js";import{S as o}from"./p-Xv8DuU3Y.js";import{c as a}from"./p-CrQgyTRz.js";import"./p-Bp_QFeog.js";import"./p-DsAwPf2y.js";import"./p-BHf9IqGw.js";import"./p-HXpYMWUU.js";import"./p-RvUQ__Pq.js";import"./p-DCIW8z1f.js";var l,r,p,c,h;!function(e){e.STATUS_SUCCESS="STATUS_SUCCESS",e.STATUS_FAILURE="STATUS_FAILURE"}(l||(l={})),function(e){e.PLAIN="plain",e.BUY="buy",e.SET_UP="set-up",e.DONATE="donate",e.CHECK_OUT="check-out",e.BOOK="book",e.SUBSCRIBE="subscribe"}(r||(r={})),function(e){e.BLACK="black",e.WHITE="white",e.WHITE_OUTLINE="white-outline"}(p||(p={})),function(e){e.SUPPORTS_3DS="supports3DS",e.SUPPORTS_EMV="supportsEMV",e.SUPPORTS_CREDIT="supportsCredit",e.SUPPORTS_DEBIT="supportsDebit"}(c||(c={}));class d{constructor(e){this.merchantIdentifier=e.merchantIdentifier,this.displayName=e.displayName,this.initiative=e.initiative,this.initiativeContext=e.initiativeContext,this.buttonType=e.buttonType||r.PLAIN,this.buttonStyle=e.buttonStyle||p.BLACK,this.buttonLocale=e.buttonLocale||"en-US"}get isValid(){return!!(this.merchantIdentifier&&this.displayName&&this.initiative&&this.initiativeContext)}}class y{constructor(e){this.countryCode=e.countryCode,this.currencyCode=e.currencyCode,this.merchantCapabilities=e.merchantCapabilities,this.supportedNetworks=e.supportedNetworks,this.total=e.total,this.lineItems=e.lineItems,this.shippingMethods=e.shippingMethods,this.applicationData=e.applicationData,this.supportedCountries=e.supportedCountries}get isValid(){var e,t,n,s;return!!(this.countryCode&&this.currencyCode&&(null===(e=this.merchantCapabilities)||void 0===e?void 0:e.length)&&(null===(t=this.supportedNetworks)||void 0===t?void 0:t.length)&&(null===(n=this.total)||void 0===n?void 0:n.label)&&(null===(s=this.total)||void 0===s?void 0:s.amount))}}class u{static isApplePaySupported(){var e;return"undefined"!=typeof window&&"ApplePaySession"in window&&(null===(e=window.ApplePaySession)||void 0===e?void 0:e.supportsVersion(3))}static canMakePayments(){var e;return this.isApplePaySupported()&&(null===(e=window.ApplePaySession)||void 0===e?void 0:e.canMakePayments())||!1}static async canMakePaymentsWithActiveCard(e){var t;if(!this.isApplePaySupported())return!1;try{return await(null===(t=window.ApplePaySession)||void 0===t?void 0:t.canMakePaymentsWithActiveCard(e))||!1}catch(e){return console.error("Error checking Apple Pay active card:",e),!1}}static formatAmount(e){return(e/100).toFixed(2)}static parseAmount(e){return Math.round(100*parseFloat(e))}static createLineItem(e,t,n="final"){return{label:e,amount:this.formatAmount(t),type:n}}static getDefaultSupportedNetworks(){return["amex","discover","masterCard","visa"]}static getDefaultMerchantCapabilities(){return[c.SUPPORTS_3DS,c.SUPPORTS_EMV,c.SUPPORTS_CREDIT,c.SUPPORTS_DEBIT]}}!function(e){e.UNAVAILABLE="UNAVAILABLE",e.SESSION_ERROR="SESSION_ERROR",e.MERCHANT_VALIDATION_ERROR="MERCHANT_VALIDATION_ERROR",e.PAYMENT_PROCESSING_ERROR="PAYMENT_PROCESSING_ERROR",e.USER_CANCELLED="USER_CANCELLED"}(h||(h={}));class v{constructor(){this.api=s()}initialize(e){if(this.applePayConfig=new d(e),!this.applePayConfig.isValid)throw new Error("Invalid Apple Pay configuration provided")}async validateMerchant(e,t){try{return await this.api.post({endpoint:"apple_pay/merchant_session",authToken:e,headers:{"Sub-Account":t}})}catch(e){throw console.error("Backend validation failed:",e),new Error("Merchant validation failed")}}async processPayment(e,t,n){const s=await this.api.post({endpoint:"apple_pay/process_token",authToken:e,body:n,headers:{"Sub-Account":t}});return{success:s.id&&!!s.data.token,data:s}}isAvailable(){return u.isApplePaySupported()&&u.canMakePayments()}async canMakePaymentsWithActiveCard(){if(!this.applePayConfig)throw new Error("Apple Pay not initialized. Call initialize() first.");return await u.canMakePaymentsWithActiveCard(this.applePayConfig.merchantIdentifier)}async startPaymentSession(e,t,n){if(console.groupCollapsed("[ApplePayService] startPaymentSession called"),console.log("[ApplePayService] raw paymentRequest:",JSON.stringify(e,null,2)),console.log("[ApplePayService] has authToken:",Boolean(t)),console.log("[ApplePayService] accountId:",n),console.log("[ApplePayService] has config:",Boolean(this.applePayConfig)),!this.applePayConfig)throw console.error("[ApplePayService] Missing applePayConfig. Did you call initialize()?"),console.groupEnd(),new Error("Apple Pay not initialized. Call initialize() first.");const s=new y(e);if(console.log("[ApplePayService] created ApplePayPaymentRequest:",s),!s.isValid){const e=[];throw s.countryCode||e.push("countryCode"),s.currencyCode||e.push("currencyCode"),s.merchantCapabilities&&0!==s.merchantCapabilities.length||e.push("merchantCapabilities"),s.supportedNetworks&&0!==s.supportedNetworks.length||e.push("supportedNetworks"),s.total&&s.total.label&&s.total.amount||e.push("total"),console.error("[ApplePayService] Payment request is invalid. Missing/invalid:",e),console.groupEnd(),new Error("Invalid payment request provided")}return this.currentPaymentRequest=s,new Promise(((e,i)=>{try{if(console.log("[ApplePayService] About to instantiate ApplePaySession"),"undefined"==typeof window||!("ApplePaySession"in window))return console.error("[ApplePayService] ApplePaySession not available on window"),console.groupEnd(),i({success:!1,error:{code:h.APPLE_PAY_UNAVAILABLE,message:"ApplePaySession API is not available in this environment"}});this.currentSession=new window.ApplePaySession(3,s),console.log("[ApplePayService] ApplePaySession instantiated:",this.currentSession),this.setupSessionEventHandlers(e,i,t,n),console.log("[ApplePayService] Event handlers set. Beginning session..."),this.currentSession.begin(),console.log("[ApplePayService] Session.begin() called"),console.groupEnd()}catch(e){console.error("[ApplePayService] Exception while starting session:",e),console.groupEnd(),i({success:!1,error:{code:h.SESSION_ERROR,message:e instanceof Error?e.message:"Failed to start Apple Pay session"}})}}))}abortPaymentSession(){this.currentSession&&(this.currentSession.abort(),this.currentSession=void 0,this.currentPaymentRequest=void 0)}setupSessionEventHandlers(e,t,n,s){this.currentSession&&this.applePayConfig&&this.currentPaymentRequest?(this.currentSession.onvalidatemerchant=async()=>{console.groupCollapsed("[ApplePayService] onvalidatemerchant");try{if(console.log("[ApplePayService] accountId:",s),!n)throw console.error("[ApplePayService] Missing authToken for merchant validation"),new Error("Authentication token not provided.");const e=await this.validateMerchant(n,s);console.log("[ApplePayService] merchantSession received");try{this.currentSession.completeMerchantValidation(e),console.log("[ApplePayService] completeMerchantValidation called")}catch(e){throw console.error("Error calling completeMerchantValidation:",e),e}}catch(e){console.error("=== MERCHANT VALIDATION ERROR ==="),console.error("Error during merchant validation:",e),e&&e.stack&&console.error("Error stack:",e.stack),this.currentSession.abort(),t({success:!1,error:{code:h.MERCHANT_VALIDATION_ERROR,message:e instanceof Error?e.message:"Merchant validation failed"}})}console.groupEnd()},this.currentSession.onpaymentauthorized=async i=>{var o;console.groupCollapsed("[ApplePayService] onpaymentauthorized");try{const a=i.payment;console.log("[ApplePayService] payment payload snapshot:",{hasToken:Boolean(null==a?void 0:a.token),tokenType:(null===(o=null==a?void 0:a.token)||void 0===o?void 0:o.paymentData)?"paymentData":"raw"});const r=Object.assign(Object.assign({},a.token),{product_details:{name:this.currentPaymentRequest.total.label,price:u.parseAmount(this.currentPaymentRequest.total.amount),description:this.currentPaymentRequest.total.label}});console.log("[ApplePayService] paymentPayload prepared");const p=await this.processPayment(n,s,r);console.log("[ApplePayService] processPayment result:",p),p.success?(this.currentSession.completePayment({status:l.STATUS_SUCCESS}),console.log("[ApplePayService] Payment success; resolving"),e({success:!0,token:a.token,paymentMethodId:p.data.id})):(console.error("PSP reported payment failure:",p.data),this.currentSession.completePayment({status:l.STATUS_FAILURE}),t({success:!1,error:{code:h.PAYMENT_PROCESSING_ERROR,message:"Payment processing failed"}}))}catch(e){console.error("=== PAYMENT PROCESSING ERROR ==="),console.error("Error processing payment:",e),e&&e.stack&&console.error("Error stack:",e.stack),this.currentSession.completePayment({status:l.STATUS_FAILURE}),t({success:!1,error:{code:h.PAYMENT_PROCESSING_ERROR,message:e instanceof Error?e.message:"Payment processing failed"}})}finally{console.log("[ApplePayService] Cleaning up session state"),this.currentSession=void 0,this.currentPaymentRequest=void 0}console.groupEnd()},this.currentSession.onpaymentmethodselected=()=>{console.groupCollapsed("[ApplePayService] onpaymentmethodselected");const e={newTotal:this.currentPaymentRequest.total,newLineItems:this.currentPaymentRequest.lineItems||[]};try{this.currentSession.completePaymentMethodSelection(e),console.log("[ApplePayService] completePaymentMethodSelection called")}catch(e){console.error("Error completing payment method selection:",e),this.currentSession.abort()}console.groupEnd()},this.currentSession.onshippingmethodselected=()=>{console.groupCollapsed("[ApplePayService] onshippingmethodselected"),this.currentSession.completeShippingMethodSelection({status:l.STATUS_SUCCESS,newTotal:this.currentPaymentRequest.total,newLineItems:this.currentPaymentRequest.lineItems||[]}),console.log("[ApplePayService] completeShippingMethodSelection called"),console.groupEnd()},this.currentSession.oncancel=e=>{if(console.groupCollapsed("[ApplePayService] oncancel"),e.sessionError)switch(console.error(e.sessionError),e.sessionError.code){case"unknown":console.error("Unknown error - likely merchant validation issue"),console.error("This usually means:"),console.error("1. Merchant certificate is invalid or expired"),console.error("2. Merchant identifier mismatch"),console.error("3. Backend validation endpoint issues");break;case"invalidMerchantSession":console.error("Invalid merchant session provided"),console.error("Check that the merchant session from backend is valid");break;case"userCancel":console.error("User cancelled the payment");break;default:console.error("Other error code:",e.sessionError.code)}this.currentSession=void 0,this.currentPaymentRequest=void 0,t({success:!1,error:{code:h.USER_CANCELLED,message:"User cancelled the Apple Pay session"}}),console.groupEnd()},"onerror"in this.currentSession&&(this.currentSession.onerror=e=>{console.groupCollapsed("[ApplePayService] onerror"),console.error("=== APPLE PAY SESSION ERROR ==="),console.error("Session error:",e),this.currentSession=void 0,this.currentPaymentRequest=void 0,t({success:!1,error:{code:h.SESSION_ERROR,message:"Apple Pay session error occurred"}}),console.groupEnd()})):console.error("[ApplePayService] setupSessionEventHandlers called without required state",{hasSession:Boolean(this.currentSession),hasConfig:Boolean(this.applePayConfig),hasPaymentRequest:Boolean(this.currentPaymentRequest)})}static createPaymentRequest(e,t,n="US",s="USD"){return{countryCode:n,currencyCode:s,merchantCapabilities:u.getDefaultMerchantCapabilities(),supportedNetworks:u.getDefaultSupportedNetworks(),total:u.createLineItem(t,e)}}getApplePayConfig(){return this.applePayConfig}}const m=t=>{const{isLoading:n}=t;return n?e("div",{class:"container-fluid p-0"},e("div",{class:"row mb-3"},e("div",{class:"col-12 align-content-center"},e(o,{height:"44px",width:"100%",styles:{borderRadius:"8px"}})))):null},P=t=>e("div",{class:"apple-pay-button-container"},e("button",Object.assign({class:(()=>{let e="apple-pay-button";switch(t.buttonStyle){case p.WHITE:e+=" apple-pay-button-white";break;case p.WHITE_OUTLINE:e+=" apple-pay-button-white-outline";break;default:e+=" apple-pay-button-black"}switch(t.buttonType){case r.BUY:e+=" apple-pay-button-type-buy";break;case r.DONATE:e+=" apple-pay-button-type-donate";break;default:e+=" apple-pay-button-type-plain"}return(t.disabled||t.isProcessing||!t.isAvailable)&&(e+=" disabled"),e})(),style:{width:t.width||"200px",height:t.height||"48px"},onClick:()=>{!t.disabled&&!t.isProcessing&&t.isAvailable&&t.clickHandler&&t.clickHandler()},disabled:t.disabled||t.isProcessing||!t.isAvailable,"aria-label":"Pay with Apple Pay",type:"button"},t),t.isProcessing&&e("div",{class:"processing-overlay"},e("div",{class:"spinner"}),e("span",null,"Processing..."))),e("style",null,"\n .apple-pay-button-container {\n display: inline-block;\n position: relative;\n }\n\n /* Apple Pay CSS classes - these are the official Apple Pay button styles */\n .apple-pay-button {\n display: inline-block;\n -webkit-appearance: -apple-pay-button;\n -apple-pay-button-type: plain; /* default */\n -apple-pay-button-style: black; /* default */\n border-radius: 8px;\n cursor: pointer;\n border: none;\n outline: none;\n transition: opacity 0.2s ease;\n position: relative;\n }\n\n /* Button styles */\n .apple-pay-button.apple-pay-button-black {\n -apple-pay-button-style: black;\n }\n\n .apple-pay-button.apple-pay-button-white {\n -apple-pay-button-style: white;\n }\n\n .apple-pay-button.apple-pay-button-white-outline {\n -apple-pay-button-style: white-outline;\n }\n\n /* Button types */\n .apple-pay-button.apple-pay-button-type-plain {\n -apple-pay-button-type: plain;\n }\n\n .apple-pay-button.apple-pay-button-type-buy {\n -apple-pay-button-type: buy;\n }\n\n .apple-pay-button.apple-pay-button-type-donate {\n -apple-pay-button-type: donate;\n }\n\n /* Hover and disabled states */\n .apple-pay-button:hover:not(.disabled) {\n opacity: 0.9;\n }\n\n .apple-pay-button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Processing overlay */\n .processing-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: rgba(0, 0, 0, 0.8);\n color: white;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n }\n\n .spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid #fff;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n /* Responsive design */\n @media (max-width: 480px) {\n .apple-pay-button {\n width: 100% !important;\n min-width: 200px;\n }\n }\n ")),b=class{constructor(e){t(this,e),this.applePayStarted=n(this,"applePayStarted"),this.applePayCompleted=n(this,"applePayCompleted"),this.applePayCancelled=n(this,"applePayCancelled"),this.applePayError=n(this,"applePayError"),this.countryCode="US",this.merchantIdentifier="merchant.com.staging-justifi.checkout-dev",this.merchantDisplayName="JustiFi Checkout",this.initiativeContext="dev-checkout.justifi-staging.com",this.buttonType=r.PLAIN,this.buttonStyle=p.BLACK,this.disabled=!1,this.showSkeleton=!0,this.isLoading=!0,this.isProcessing=!1,this.isAvailable=!1,this.canMakePayments=!1,this.isConfigValid=!0,this.error=null,this.handleApplePayClick=async()=>{var e,t;if(!this.isProcessing&&!this.disabled&&this.isAvailable)try{this.isProcessing=!0,this.error=null,this.applePayStarted.emit(),console.groupCollapsed("[ApplePay Component] handleApplePayClick"),console.log("[ApplePay Component] click context:",{isProcessing:this.isProcessing,disabled:this.disabled,isAvailable:this.isAvailable,canMakePayments:this.canMakePayments,hasService:Boolean(this.applePayService)});const n={countryCode:this.countryCode,currencyCode:a.paymentCurrency,merchantCapabilities:[c.SUPPORTS_3DS,c.SUPPORTS_CREDIT,c.SUPPORTS_DEBIT],supportedNetworks:u.getDefaultSupportedNetworks(),total:u.createLineItem(a.paymentDescription,a.paymentAmount)};console.log("[ApplePay Component] paymentRequest",n),console.log("[ApplePay Component] identifiers snapshot:",{authTokenLength:a.authToken?String(a.authToken).length:0,accountId:a.accountId});const s=await this.applePayService.startPaymentSession(n,a.authToken,a.accountId);console.log("[ApplePay Component] startPaymentSession result",s),s.success?this.applePayCompleted.emit({success:!0,token:s.token,paymentMethodId:s.paymentMethodId}):(this.applePayCompleted.emit({success:!1,error:s.error}),this.applePayError.emit({error:(null===(e=s.error)||void 0===e?void 0:e.message)||"Payment failed",code:(null===(t=s.error)||void 0===t?void 0:t.code)||b.ErrorCode.PAYMENT_FAILED}))}catch(e){const t=e instanceof Error?e.message:"Payment failed";this.error=t,this.applePayError.emit({error:t,code:b.ErrorCode.PAYMENT_FAILED}),this.applePayCompleted.emit({success:!1,error:t})}finally{this.isProcessing=!1,console.groupEnd()}}}async initializeApplePay(){try{if(this.isLoading=!0,this.error=null,this.isConfigValid=!0,console.groupCollapsed("[ApplePay Component] initializeApplePay"),console.log("[ApplePay Component] checkout state snapshot:",{paymentAmount:a.paymentAmount,paymentCurrency:a.paymentCurrency,hasAuthToken:Boolean(a.authToken),accountId:a.accountId}),!(Boolean(a.paymentAmount)&&Boolean(a.paymentCurrency)&&Boolean(a.authToken)))return this.error="Missing required Apple Pay configuration",this.isConfigValid=!1,console.error("Apple Pay config error: missing required values",{paymentAmount:a.paymentAmount,paymentCurrency:a.paymentCurrency,hasAuthToken:Boolean(a.authToken),accountId:a.accountId}),this.applePayError.emit({error:this.error,code:b.ErrorCode.CONFIG_ERROR}),this.isLoading=!1,void console.groupEnd();if(this.isAvailable=u.isApplePaySupported(),this.canMakePayments=u.canMakePayments(),console.log("[ApplePay Component] support check:",{isAvailable:this.isAvailable,canMakePayments:this.canMakePayments,hasApplePaySessionOnWindow:"undefined"!=typeof window&&"ApplePaySession"in window}),!this.isAvailable)return this.error="Apple Pay is not supported on this device",console.error(this.error),this.applePayError.emit({error:this.error,code:b.ErrorCode.NOT_SUPPORTED}),this.isLoading=!1,void console.groupEnd();if(!this.canMakePayments)return this.error="Apple Pay is not available",console.error(this.error),this.applePayError.emit({error:this.error,code:b.ErrorCode.NOT_AVAILABLE}),this.isLoading=!1,void console.groupEnd();const e={merchantIdentifier:this.merchantIdentifier,displayName:this.merchantDisplayName,initiative:"web",initiativeContext:this.initiativeContext,buttonType:this.buttonType,buttonStyle:this.buttonStyle};console.log("[ApplePay Component] initializing service with config:",e),this.applePayService=new v,this.applePayService.initialize(e),await this.applePayService.canMakePaymentsWithActiveCard()||console.warn("No Apple Pay cards available, but continuing...")}catch(e){console.error("Apple Pay initialization error:",e),this.error=e instanceof Error?e.message:"Failed to initialize Apple Pay",this.applePayError.emit({error:this.error,code:b.ErrorCode.INITIALIZATION_ERROR})}finally{this.isLoading=!1,console.groupEnd()}}async isSupported(){return this.isAvailable&&this.canMakePayments}async getPaymentMethods(){return this.isAvailable?u.getDefaultSupportedNetworks():[]}async abort(){this.applePayService.abortPaymentSession(),this.isProcessing=!1,this.applePayCancelled.emit()}render(){const t=!this.isLoading&&this.isAvailable&&this.canMakePayments&&this.isConfigValid;return e(i,{key:"6ffd1642666316916be6c263d6e79c44fb2d26cf"},a.checkoutLoaded&&e("script",{key:"d3cea0c2fea2b9e51fd926f581dce118a7b0cc00",async:!0,src:"https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js",onLoad:()=>{console.log("[ApplePay Component] Apple Pay SDK script loaded"),this.initializeApplePay()}}),e("div",{key:"4a2ee3cb9a98746be1a10c3836833bb408d0896b",class:"apple-pay-container"},e(m,{key:"e804a3d42e4632d224a780c2313da4fd40a35281",isLoading:this.isLoading}),t&&e(P,{key:"82c8caa32e8857797dc3071a7404d9418fcd2274",buttonType:this.buttonType,buttonStyle:this.buttonStyle,disabled:this.disabled,isProcessing:this.isProcessing,isAvailable:this.isAvailable,clickHandler:this.handleApplePayClick})),e("style",{key:"022d4942b34097987ca8fe956bb6e02174a488b9"},"\n .apple-pay-container {\n width: 100%;\n }\n "))}};b.ErrorCode={CONFIG_ERROR:"CONFIG_ERROR",NOT_SUPPORTED:"NOT_SUPPORTED",NOT_AVAILABLE:"NOT_AVAILABLE",INITIALIZATION_ERROR:"INITIALIZATION_ERROR",PAYMENT_FAILED:"PAYMENT_FAILED"};export{b as justifi_apple_pay}
@@ -1 +0,0 @@
1
- import{r as s,h as t}from"./p-qipqIMyC.js";import{E as i}from"./p-BIPdn2VU.js";import"./p-RvUQ__Pq.js";const a=class{constructor(t){s(this,t)}render(){return t("div",{key:"026afe404e83a58245d2c0d68b188a5b227933b4"},this.errorMessage?i(this.errorMessage):t("main",{class:"p-2"},t("slot",{name:"head-info"}),t("slot",{name:"detail-sections"})))}};export{a as justifi_details}
@@ -1 +0,0 @@
1
- import{r as s,c as r,h as t}from"./p-qipqIMyC.js";import{S as i}from"./p-CLQx9p9q.js";import"./p-CZfYo5-1.js";import{c as o,J as e}from"./p-O-hoT2Oo.js";import{d as a}from"./p-CaxjN6Uo.js";import"./p-Bp_QFeog.js";import"./p-HXpYMWUU.js";import{C as n,a as p}from"./p-Cjcsf8ku.js";import{h as c}from"./p-c4Mh3ZZ_.js";import"./p-CLHwhyvu.js";import"./p-BlJnA265.js";import"./p-BH0Xfn-F.js";import{g as m,a as h}from"./p-D2muobcE.js";import{A as d}from"./p-BUa0YOaw.js";import"./p-BBO3I4s6.js";import"./p-RvUQ__Pq.js";import"./p-BHf9IqGw.js";import"./p-D--yCspA.js";import"./p-DsAwPf2y.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";const l=d();class f{async fetchTerminalOrders(s,r,t){return l.get({endpoint:"terminals/orders",params:t,headers:{account:s},authToken:r})}}const j=class{constructor(t){s(this,t),this.errorEvent=r(this,"error-event"),this.errorMessage=null,this.columns=a,this.handleErrorEvent=s=>{this.errorMessage=s.detail.message,this.errorEvent.emit(s.detail)}}componentWillLoad(){o(),this.analytics=new e(this),this.initializeGetData()}disconnectedCallback(){var s;null===(s=this.analytics)||void 0===s||s.cleanup()}initializeGetData(){this.accountId&&this.authToken?this.getTerminalOrders=(({id:s,authToken:r,service:t})=>async({params:i,onSuccess:o,onError:e,final:a})=>{var p,d;try{const a=await t.fetchTerminalOrders(s,r,i);if(a.error)return e({error:h(a.error),code:m(null===(d=a.error)||void 0===d?void 0:d.code),severity:n.ERROR});{const s=Object.assign({},a.page_info);o({terminalOrders:(null===(p=a.data)||void 0===p?void 0:p.map((s=>new c(s))))||[],pagingInfo:s})}}catch(s){const r=m(null==s?void 0:s.code);return e({error:s.message||s,code:r,severity:n.ERROR})}finally{return a()}})({id:this.accountId,authToken:this.authToken,service:new f}):(this.errorMessage="Account ID and Auth Token are required",this.errorEvent.emit({errorCode:p.MISSING_PROPS,message:this.errorMessage,severity:n.ERROR}))}render(){return t(i,{key:"55f0bf858787e00c304972c941a477815712df9d"},t("terminal-orders-list-core",{key:"2d47e23bc2157d79254f34dfe0551fb32a9d88cc",getTerminalOrders:this.getTerminalOrders,"onError-event":this.handleErrorEvent,columns:this.columns}))}};export{j as justifi_terminal_orders_list}
@@ -1 +0,0 @@
1
- import{h as t,r as e,c as a}from"./p-qipqIMyC.js";import"./p-Bp_QFeog.js";import"./p-HXpYMWUU.js";import{C as s,a as i}from"./p-Cjcsf8ku.js";import{f as n}from"./p-c4Mh3ZZ_.js";import{p as r}from"./p-CLHwhyvu.js";import"./p-BlJnA265.js";import"./p-BH0Xfn-F.js";import{c,J as o}from"./p-O-hoT2Oo.js";import{g as p,a as h}from"./p-D2muobcE.js";import{P as d}from"./p-CpKvg1ok.js";import{T as f,l,a as u,b as m,c as y,d as b,e as _,f as j,g,h as k,i as w,j as T,k as v}from"./p-BZ7C9duj.js";import{S as C}from"./p-CLQx9p9q.js";import{T as D}from"./p-CZfYo5-1.js";import{a as F}from"./p-BHf9IqGw.js";import{N as I,O as R}from"./p-RvUQ__Pq.js";import"./p-DsAwPf2y.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";import"./p-BBO3I4s6.js";import"./p-BUa0YOaw.js";import"./p-xY5RkFuA.js";const S={created_at:()=>t("th",{part:I,scope:"col",title:"The date and time each transaction was made"},"Processed On"),type:()=>t("th",{part:I,scope:"col",title:"The type of each transaction"},"Type"),id:()=>t("th",{part:I,scope:"col",title:"The unique identifier of each transaction"},"ID"),amount:()=>t("th",{part:I,scope:"col",title:"The dollar amount of each transaction",class:"text-end"},"Amount"),balance:()=>t("th",{part:I,scope:"col",title:"The running total amount of this payment that belongs to you",class:"text-end"},"Balance"),currency:()=>t("th",{part:I,scope:"col",title:"The currency of each transaction"},"Currency"),financial_transaction_id:()=>t("th",{part:I,scope:"col",title:"The unique identifier of the financial transaction associated with the payment balance transaction"},"Financial Transaction ID"),payment_id:()=>t("th",{part:I,scope:"col",title:"The unique identifier of the payment associated with the payment balance transaction"},"Payment ID"),payment_balance_txn_type:()=>t("th",{part:I,scope:"col",title:"The type of the payment balance transaction"},"Transaction Type"),source_id:()=>t("th",{part:I,scope:"col",title:"The unique identifier of the source object associated with the payment balance transaction"},"Source ID"),source_type:()=>t("th",{part:I,scope:"col",title:"The type of the source object associated with the payment balance transaction"},"Source Type")},q={ach_return:"ACH Return",ach_return_fee:"ACH Return Fee",dispute:"Dispute",dispute_fee:"Dispute Fee",dispute_fee_refund:"Dispute Fee Refund",dispute_refund:"Dispute Refund",payment:"Payment",payment_fee:"Fee",refund:"Refund",fee_refund:"Fee Refund",application_fee_returned:"Application Fee Returned",refund_failure:"Refund Failure",void:"Void"},x={created_at:(e,a)=>t("td",{part:R(a)},t("div",{class:"fw-bold"},F(e.created_at,{showDisplayDate:!0})),t("div",{class:"fw-bold"},F(e.created_at,{showTime:!0}))),type:(e,a)=>t("td",{part:R(a)},q[e.payment_balance_txn_type]),id:(e,a)=>t("td",{part:R(a)},e.id),amount:(e,a)=>t("td",{part:R(a),class:"text-end"},e.formattedPaymentAmount(e.amount)),balance:(e,a)=>t("td",{part:R(a),class:"text-end"},e.formattedPaymentAmount(e.balance)),currency:(e,a)=>t("td",{part:R(a)},e.currency),financial_transaction_id:(e,a)=>t("td",{part:R(a)},e.financial_transaction_id),payment_id:(e,a)=>t("td",{part:R(a)},e.payment_id),payment_balance_txn_type:(e,a)=>t("td",{part:R(a)},e.payment_balance_txn_type),source_id:(e,a)=>t("td",{part:R(a)},e.source_id),source_type:(e,a)=>t("td",{part:R(a)},e.source_type)},B=class{constructor(t){e(this,t),this.clickEvent=a(this,"click-event"),this.errorEvent=a(this,"error-event"),this.balanceTransactions=[],this.isLoading=!0,this.errorMessage=null,this.paging=r,this.pagingParams={},this.columns="created_at,type,id,amount,balance",this.handleClickPrevious=t=>{this.pagingParams={before_cursor:t},this.clickEvent.emit({name:D.previous})},this.handleClickNext=t=>{this.pagingParams={after_cursor:t},this.clickEvent.emit({name:D.next})},this.rowClickHandler=t=>{const e=t.target.closest("tr").dataset.rowEntityId;if(!e)return;const a=this.balanceTransactions.find((t=>t.id===e));this.clickEvent.emit({name:D.row,data:a})}}componentWillLoad(){this.transactionsTable=new f(this.balanceTransactions,this.columns,S,x),c(),this.analytics=new o(this),this.initializeApi()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup()}propChanged(){this.initializeApi()}handleError(t,e,a){this.isLoading=!1,this.errorEvent.emit({errorCode:t,message:e,severity:a})}initializeApi(){this.paymentId&&this.authToken?(({id:t,authToken:e,service:a})=>async({params:i,onSuccess:r,onError:c,final:o})=>{var d;try{const o=await a.fetchPaymentTransactions(t,e,i);o.error?c({error:h(o.error),code:p(null===(d=o.error)||void 0===d?void 0:d.code),severity:s.ERROR}):r({balanceTransactions:o.data.map((t=>new n(t))),pagingInfo:Object.assign({},o.page_info)})}catch(t){const e=p(null==t?void 0:t.code);c({error:h(t),code:e,severity:s.ERROR})}finally{o()}})({id:this.paymentId,authToken:this.authToken,service:new d})({params:this.pagingParams,onSuccess:({balanceTransactions:t,pagingInfo:e})=>{this.balanceTransactions=t,this.paging=e,this.transactionsTable.collectionData=this.balanceTransactions},onError:({error:t,code:e,severity:a})=>{this.errorMessage=t.message,this.handleError(t,e,a)},final:()=>{this.isLoading=!1}}):(this.errorMessage="payment-id and auth-token props are required",this.handleError(i.MISSING_PROPS,this.errorMessage,s.ERROR))}get entityId(){return this.balanceTransactions.map((t=>t.id))}get showEmptyState(){return!this.isLoading&&!this.errorMessage&&this.transactionsTable.rowData.length<1}get showErrorState(){return!this.isLoading&&!!this.errorMessage}get showRowData(){return!this.showEmptyState&&!this.showErrorState&&!this.isLoading}render(){return t(C,{key:"c73dfcd1d3038dbca6800b9bd0f4e6c5fba2b8bf"},t(l,{key:"66d8f92a96f2ace82c05d10a9f538d6ad22b588f"},t(u,{key:"cff0e6344efd035f264326ecc79615bddfe8d0ac"},t(m,{key:"702e53ae1d59ab674425f4753c1cf0b6415feacd"},t(y,{key:"7773de2d113af30b3a0d64405dce5d5e09a0bb8c"},this.transactionsTable.columnData.map((t=>t)))),t(b,{key:"7b86d982f52037349b5cc2f7ec5fa800e38ed519"},t(_,{key:"040c3dfb101c1ea127cfcf982e4415ae94661b2a",columnSpan:this.transactionsTable.columnKeys.length,isLoading:this.isLoading}),t(j,{key:"6d25f8a886cf9b15ea9c17c44dfe0bce6125c557",isEmpty:this.showEmptyState,columnSpan:this.transactionsTable.columnKeys.length}),t(g,{key:"60bb435ecf7a595cdb028df4cd95c1361ce06c8d",columnSpan:this.transactionsTable.columnKeys.length,errorMessage:this.errorMessage}),this.showRowData&&this.transactionsTable.rowData.map(((e,a)=>t(k,{"data-test-id":"table-row","data-row-entity-id":this.entityId[a],onClick:this.rowClickHandler},e)))),this.paging&&t(w,{key:"accb2e3cb9dc8521c50db6a8ed306f91e5aa44c7"},t(T,{key:"a4408276ce552fe4c43c60f79e7a2a3602566b2c"},t(v,{key:"20b13cc71f8b62166e8b6e9fce5dea2d1b4c5ac0",colSpan:this.transactionsTable.columnData.length},t("pagination-menu",{key:"90657ed6a805af46446bc8fb316a52252a9a2bf4",paging:Object.assign(Object.assign({},this.paging),{handleClickPrevious:this.handleClickPrevious,handleClickNext:this.handleClickNext})})))))))}static get watchers(){return{pagingParams:["propChanged"],paymentId:["propChanged"],authToken:["propChanged"]}}};export{B as justifi_payment_transactions_list}
@@ -1 +0,0 @@
1
- import{h as e,r as i,H as a}from"./p-qipqIMyC.js";import{S as t}from"./p-Xv8DuU3Y.js";import{w as s,c}from"./p-Bp_QFeog.js";import{b as r}from"./p-BHf9IqGw.js";import"./p-RvUQ__Pq.js";import"./p-DsAwPf2y.js";import"./p-HXpYMWUU.js";const d=i=>{const{isReady:a}=i;return a?null:e("div",{class:"container-fluid p-0"},e("div",{class:"mb-3"},e(t,{height:"18px",width:"100px"}),e(t,{height:"36px"})),e("div",{class:"row"},e("div",{class:"col-4 align-content-end"},e(t,{height:"18px",width:"80px"}),e(t,{height:"36px"})),e("div",{class:"col-4 align-content-end"},e(t,{height:"36px"})),e("div",{class:"col-4 align-content-end"},e(t,{height:"18px",width:"30px"}),e(t,{height:"36px"}))))},f=class{constructor(e){i(this,e),this.isReady=!1}async componentWillLoad(){await s(),this.iframeOrigin=c.iframeOrigin,this.tabId=r()}componentDidRender(){Promise.all([this.cardNumberIframeElement,this.expirationMonthIframeElement,this.expirationYearIframeElement,this.cvvIframeElement].map((e=>new Promise((i=>{e.addEventListener("iframeLoaded",(()=>{i()}))}))))).then((()=>{this.isReady=!0}))}async validate(){const e=await this.cardNumberIframeElement.validate(),i=await this.expirationMonthIframeElement.validate(),a=await this.expirationYearIframeElement.validate(),t=await this.cvvIframeElement.validate();return e&&i&&a&&t}async tokenize(e,i,a){return this.cardNumberIframeElement.tokenize(e,i,a)}render(){return e(a,{key:"4918918c10e558587e1d356cee9ec8540ed88e1c"},e(d,{key:"e61d11784aa1a9ea84fe9f0544a84f587cdf6fa4",isReady:this.isReady}),e("div",{key:"d0640890482bcb679c0d49e569ed34912aa37426",class:"container-fluid p-0",style:{opacity:this.isReady?"1":"0",height:this.isReady?"auto":"0"}},e("div",{key:"ef3548ee5dcf517f5c31b3aa40fc5ed5f8e37f59",class:"mb-3"},e("iframe-input",{key:"4fa52574bfe8334f3294e45b2e63bf109750f925",inputId:"cardNumber",ref:e=>this.cardNumberIframeElement=e,label:"Card Number",iframeOrigin:`${this.iframeOrigin}/v2/cardNumber?tabId=${this.tabId}`})),e("div",{key:"5ad5bfe88c1531a74a636e2e07572b8401095ecf",class:"d-flex align-items-start"},e("div",{key:"29d9d3e3c0080243ea44ca7515c690b90bd0d944",class:"flex-fill me-3"},e("iframe-input",{key:"01ebb2a6101d33b08135ac879fce192f57ea822e",inputId:"expirationMonth",ref:e=>this.expirationMonthIframeElement=e,label:"Exp. Month",iframeOrigin:`${this.iframeOrigin}/v2/expirationMonth?tabId=${this.tabId}`})),e("div",{key:"769c4e873c4062ec90fae3a7b0606e8db49754c0",class:"flex-fill me-3"},e("iframe-input",{key:"a36c705e6f8231f01615ee8a878aa5427a11bcce",inputId:"expirationYear",ref:e=>this.expirationYearIframeElement=e,label:"Exp. Year",iframeOrigin:`${this.iframeOrigin}/v2/expirationYear?tabId=${this.tabId}`})),e("div",{key:"2923118dc4ec2f107aad34e0f77ea3d58340a734",class:"flex-fill"},e("iframe-input",{key:"ec3226c1eca1705672e8ea7f80be47ca6f81838b",inputId:"CVV",ref:e=>this.cvvIframeElement=e,label:"CVV",iframeOrigin:`${this.iframeOrigin}/v2/CVV?tabId=${this.tabId}`})))))}};export{f as card_form}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as i,H as o}from"./p-qipqIMyC.js";import{C as s}from"./p-ZpPDShvP.js";import{r as a}from"./p-RvUQ__Pq.js";import"./p-HXpYMWUU.js";const d=class{constructor(i){e(this,i),this.paymentMethodOptionSelected=t(this,"paymentMethodOptionSelected"),this.onPaymentMethodOptionClick=e=>{e.preventDefault(),this.paymentMethodOptionSelected.emit(this.paymentMethodOption)}}async resolvePaymentMethod(e){var t;return e.isValid?{token:null===(t=this.paymentMethodOption)||void 0===t?void 0:t.id}:{validationError:!0}}render(){var e,t,d;return i(o,{key:"5ec0e8509e57396844602de87fde994f5da2ba83",class:"payment-method"},i("div",{key:"f2a45d84e969cd04aca91d61f5819bfc85f558c9",class:"radio-list-item p-3",part:a,onClick:this.onPaymentMethodOptionClick},i("form-control-radio",{key:"1f4c35b2b6faa8ee42a1ee7347ddf2238b47fe50",name:"paymentMethodType",value:null===(e=this.paymentMethodOption)||void 0===e?void 0:e.id,checked:this.isSelected,label:`${s[null===(t=this.paymentMethodOption)||void 0===t?void 0:t.brand]||""} *${null===(d=this.paymentMethodOption)||void 0===d?void 0:d.acct_last_four}`})))}};export{d as justifi_saved_payment_method}
@@ -1 +0,0 @@
1
- var e={name:"@justifi/webcomponents",version:"6.1.0-rc.1"};export{e as p}
@@ -1 +0,0 @@
1
- import{r as e,h as a}from"./p-qipqIMyC.js";import{u as d,a as t,b as c}from"./p-1ydcg9ti.js";import{P as s,S as i}from"./p-B-iV5cYd.js";import{C as l}from"./p-RvUQ__Pq.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";const o=class{constructor(a){e(this,a),this.inputHandler=(e,a)=>{d(this.formController,{[e]:a})},this.onAddressFormUpdate=e=>{t(this.formController,Object.assign(Object.assign({},this.formController.values.getValue().address),e))}}render(){var e,d,t,o,r,f,n;return a("form",{key:"a2c558b8a6b66d7257fa86ef5f9c1d56a7a273db"},a("fieldset",{key:"23cb7f2debd4692c39cfe2311ce0d2549ca94ebc"},a("div",{key:"0c6e94b6a9da6924673f5ebeed93f237ff22a013",class:"d-flex align-items-center gap-2"},a("legend",{key:"a165d7dc17dddde2d6ce35af9d836a989f02ffaf",class:"mb-0",part:l},"Representative"),a("form-control-tooltip",{key:"5c2c29ae9ea82acc6c923c870f4ece5db5e7afb9",helpText:"The representative for your business needs to be someone who has significant control over managing your business’s finance. You will have an opportunity to add owners later in the form."})),a("hr",{key:"bc481e820461c6ec2088f2879cb9a5837ed02884",class:"mt-2"}),a("div",{key:"ff4b0731213ddc42ebabb79d49984b83d376f742",class:"row gy-3"},a("div",{key:"99cac91d3657bce68ce97028342d49cb8a2bb314",class:"col-12 col-md-8"},a("form-control-text",{key:"534e81b075f732ae3953d8f904199d61a43de4bb",name:"name",label:"Full Name",defaultValue:null===(e=this.representativeDefaultValue)||void 0===e?void 0:e.name,errorText:this.errors.name,inputHandler:this.inputHandler})),a("div",{key:"6070fdff99a868b50deb59c9d006d3c4775a50bd",class:"col-12 col-md-4"},a("form-control-text",{key:"c92477cc30c5a9c7d99842dff2855edce67185f9",name:"title",label:"Title",defaultValue:null===(d=this.representativeDefaultValue)||void 0===d?void 0:d.title,errorText:this.errors.title,inputHandler:this.inputHandler,helpText:"Role at your business, e.g. President, CEO, Treasurer."})),a("div",{key:"14d953417a1ec0292d75251b37b580361def0fb3",class:"col-12 col-md-6"},a("form-control-text",{key:"42562735066b104619b8aa4da966aaec462f177b",name:"email",label:"Email Address",defaultValue:null===(t=this.representativeDefaultValue)||void 0===t?void 0:t.email,errorText:this.errors.email,inputHandler:this.inputHandler})),a("div",{key:"cb7f6173a31fac67edf74844f0807ea94446c59b",class:"col-12 col-md-6"},a("form-control-number-masked",{key:"42b0833d545243c11f515d320aac5408bb744e89",name:"phone",label:"Phone Number",defaultValue:null===(o=this.representativeDefaultValue)||void 0===o?void 0:o.phone,errorText:this.errors.phone,inputHandler:this.inputHandler,mask:s.US})),a("div",{key:"a9468f20a7d832ae44d771c3b8913c32cf0ef2ab",class:"col-12 col-md-4"},a("form-control-date",{key:"1f739c1d3bb814710ee159740e459bde72a0e790",name:"dob_full",label:"Birth Date",defaultValue:null===(r=this.representativeDefaultValue)||void 0===r?void 0:r.dob_full,errorText:this.errors.dob_full,inputHandler:this.inputHandler,onFormControlInput:e=>c(e,this.formController),helpText:"Must be 18 or older."})),a("div",{key:"e2ecd87320422e1712138115291016f8c1c61ac2",class:"col-12 col-md-8"},a("form-control-number-masked",{key:"dd91ffa7877d84cfe315849d18c7cec5bf79b1de",name:"identification_number",label:"SSN",defaultValue:null===(f=this.representativeDefaultValue)||void 0===f?void 0:f.identification_number,errorText:this.errors.identification_number,inputHandler:this.inputHandler,mask:i,helpText:"Enter your full Social Security Number. It is required for Federal OFAC check."})),a("div",{key:"ef502c55424287c5c81ca88593f5836d21a2f945",class:"col-12"},a("justifi-identity-address-form",{key:"26295cbccf0ca23415b4d7c12dc42eb2dbb0d229",errors:this.errors.address,defaultValues:null===(n=this.representativeDefaultValue)||void 0===n?void 0:n.address,handleFormUpdate:this.onAddressFormUpdate})))))}};export{o as justifi_business_representative_form_inputs}
@@ -1 +0,0 @@
1
- import{r as t,c as s,h as e}from"./p-qipqIMyC.js";import"./p-Bp_QFeog.js";import"./p-HXpYMWUU.js";import"./p-Cjcsf8ku.js";import"./p-c4Mh3ZZ_.js";import{p as i}from"./p-CLHwhyvu.js";import"./p-BlJnA265.js";import"./p-BH0Xfn-F.js";import{T as a,a as r,b as h,c as o,d as c,e as n,f as p,g as f,h as d,i as u,j as b,k as m,l as g}from"./p-BZ7C9duj.js";import{T as y}from"./p-CZfYo5-1.js";import{c as j,a as k}from"./p-CzPUMw00.js";import{o as l,g as C}from"./p-DyDHaG6n.js";import"./p-DsAwPf2y.js";import"./p-BHf9IqGw.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";import"./p-RvUQ__Pq.js";import"./p-xY5RkFuA.js";import"./p-D--yCspA.js";const w=class{constructor(e){t(this,e),this.clickEvent=s(this,"click-event"),this.errorEvent=s(this,"error-event"),this.checkouts=[],this.subAccounts=[],this.loading=!0,this.paging=i,this.pagingParams={},this.handleClickPrevious=t=>{this.pagingParams={before_cursor:t},this.clickEvent.emit({name:y.previous})},this.handleClickNext=t=>{this.pagingParams={after_cursor:t},this.clickEvent.emit({name:y.next})},this.rowClickHandler=t=>{const s=t.target.closest("tr").dataset.rowEntityId;if(!s)return;const e=this.checkouts.find((t=>t.id===s));this.clickEvent.emit({name:y.row,data:e})}}updateOnPropChange(){this.fetchData()}componentWillLoad(){this.checkoutsTable=new a(this.checkouts,this.columns,j,k),this.getCheckouts&&this.getSubAccounts&&this.fetchData(),l("set",(()=>{this.pagingParams={}})),l("reset",(()=>{this.pagingParams={},this.errorMessage=""}))}fetchData(){this.loading=!0,this.getCheckouts({params:this.checkoutParams,onSuccess:async({checkouts:t,pagingInfo:s})=>{this.checkouts=t,this.paging=s,this.checkoutsTable.collectionData=this.checkouts,this.checkoutsTable.columnKeys.includes("sub_account_name")?await this.fetchSubAccounts():this.loading=!1},onError:({error:t,code:s,severity:e})=>{this.errorMessage=t,this.errorEvent.emit({errorCode:s,message:t,severity:e}),this.loading=!1}})}async fetchSubAccounts(){this.getSubAccounts({params:this.subAccountParams,onSuccess:({subAccounts:t})=>{this.subAccounts=t,this.checkouts=this.checkouts.map((t=>{var s;return t.sub_account_name=null===(s=this.subAccounts.find((s=>s.id===t.account_id)))||void 0===s?void 0:s.name,t})),this.loading=!1},onError:({error:t,code:s,severity:e})=>{this.errorMessage=t,this.errorEvent.emit({errorCode:s,message:t,severity:e}),this.loading=!1}})}get checkoutParams(){const t=C();return Object.assign(Object.assign({},t),this.pagingParams)}get subAccountParams(){let t=this.checkouts.map((t=>t.account_id));return{sub_account_id:[...new Set(t)].join(",")}}get entityId(){return this.checkouts.map((t=>t.id))}get showEmptyState(){return!this.loading&&!this.errorMessage&&this.checkoutsTable.rowData.length<1}get showErrorState(){return!this.loading&&!!this.errorMessage}get showRowData(){return!this.showEmptyState&&!this.showErrorState&&!this.loading}render(){return e(g,{key:"04dae06915792f92df18740353f63781fbc15558"},e(r,{key:"87f0d5658e76198d6332c272eabc09236569a6c3"},e(h,{key:"7b9d1d9e5875b7c83c126c06a80b1e4f8e9ec86c"},e(o,{key:"8e8963b02099f6ae81a1ab9b9e00212a87be742f"},this.checkoutsTable.columnData.map((t=>t)))),e(c,{key:"2e1b461150fc01112c08f030402c8433611da6f3"},e(n,{key:"aefba717db73fb1052eb49906354492548eda57d",columnSpan:this.checkoutsTable.columnKeys.length,isLoading:this.loading}),e(p,{key:"b353ddae94305c6f58c4026ab6a48ef16a05005c",isEmpty:this.showEmptyState,columnSpan:this.checkoutsTable.columnKeys.length}),e(f,{key:"852bb7c4f1968f56a692e595dbe9a6223b5b3b1d",columnSpan:this.checkoutsTable.columnKeys.length,errorMessage:this.errorMessage}),this.showRowData&&this.checkoutsTable.rowData.map(((t,s)=>e(d,{"data-test-id":"table-row","data-row-entity-id":this.entityId[s],onClick:this.rowClickHandler},t)))),this.paging&&e(u,{key:"5077d7f5843d62b73d85adafff03022db168de0f"},e(b,{key:"b338655c2ef2fb256795f781113a0fc312d76a1b"},e(m,{key:"c6f4f321400d0f6a73f2ef85a77ea9dab38270b6",colSpan:this.checkoutsTable.columnData.length},e("pagination-menu",{key:"de00aeea2bbf8cf88c2e31105967d6355ebb18f0",paging:Object.assign(Object.assign({},this.paging),{handleClickPrevious:this.handleClickPrevious,handleClickNext:this.handleClickNext})}))))))}static get watchers(){return{pagingParams:["updateOnPropChange"],getCheckouts:["updateOnPropChange"],getSubAccounts:["updateOnPropChange"],columns:["updateOnPropChange"]}}};export{w as checkouts_list_core}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as a,H as s}from"./p-qipqIMyC.js";import{I as i}from"./p-Ce_F4E0f.js";import{b as l,T as d,a as o,c as r,l as c}from"./p-RvUQ__Pq.js";import{F as n}from"./p-DCMrHeJI.js";import"./p-CZfYo5-1.js";import{S as h}from"./p-BX8GieXu.js";import{n as f}from"./p-BnjCmwMr.js";const u=class{constructor(a){e(this,a),this.formControlInput=t(this,"formControlInput"),this.formControlBlur=t(this,"formControlBlur"),this.imask=null,this.isFocused=!1,this.initializeIMask=()=>{this.textInput&&(this.imask=i(this.textInput,{mask:this.mask}),this.imask.on("accept",(()=>{var e;const t=null===(e=this.imask)||void 0===e?void 0:e.unmaskedValue;void 0!==t&&this.inputHandler(this.name,t)})),this.textInput.addEventListener("blur",(()=>this.formControlBlur.emit())))},this.handleFormControlInput=e=>{var t;const a=e.target,s=a.getAttribute("name"),i=(null===(t=this.imask)||void 0===t?void 0:t.unmaskedValue)||a.value;this.formControlInput.emit({name:s,value:i})},this.updateInput=e=>{this.imask&&e&&(this.imask.value=String(e))}}handleDefaultValueChange(e){this.initializeIMask(),this.updateInput(e)}disconnectedCallback(){var e;null===(e=this.imask)||void 0===e||e.destroy()}componentDidLoad(){this.textInput&&(this.initializeIMask(),this.updateInput(this.defaultValue))}get part(){return this.errorText?l:this.disabled?d:this.isFocused?o:r}render(){return a(s,{key:"cd0a23e4a4b1d7b39448e0770c5681aa319fe376"},a("div",{key:"fdaeea5b68035edc6885d7e3e5106d6c4962325f",class:"form-group d-flex flex-column"},a("div",{key:"46379bb141130c88d0b09c1382a9f34758808b8c",class:"d-flex align-items-start gap-2"},a("label",{key:"5a191a9c22d82d58354fa297d78f51c4cd0ec36b",part:c,class:"form-label",htmlFor:this.name},this.label),a("form-control-tooltip",{key:"9a8c580ee3b69902a30bca5aa79309be15d0c51d",helpText:this.helpText})),a("input",{key:"03bec84295380c4c86cc4c1b9ff6609ddf15c7b8",ref:e=>this.textInput=e,id:this.name,name:this.name,onFocus:()=>this.isFocused=!0,onBlur:()=>{this.isFocused=!1,this.formControlBlur.emit()},onInput:this.handleFormControlInput,part:this.part,class:this.errorText?"form-control is-invalid":"form-control",type:"text",disabled:this.disabled}),a(n,{key:"55e523b3be538bccd3a438edf109acbb7de3fce9",errorText:this.errorText,name:this.name})))}static get watchers(){return{defaultValue:["handleDefaultValueChange"]}}},b=class{constructor(t){e(this,t),this.address={},this.inputHandler=(e,t)=>{this.address[e]=t,this.address=Object.assign({},this.address)}}handleAddressChange(e){this.handleFormUpdate(e)}render(){var e,t,i,l,d,o,r,c,n,u,b,m;return a(s,{key:"63db91625abddc3e615b031e04366a5823d516cf"},a("div",{key:"e07f0e511b178471343594fe0c88ae286325a5e5",class:"row gy-3"},a("div",{key:"a22674f05f19378994eceb7386c29f579c285a26",class:"col-12 col-md-8"},a("form-control-text",{key:"c6cfe95a8ce577a162e4eae61ff7d61902b36e73",name:"line1",label:"Street Address",defaultValue:null===(e=this.defaultValues)||void 0===e?void 0:e.line1,errorText:null===(t=this.errors)||void 0===t?void 0:t.line1,inputHandler:this.inputHandler,helpText:"​​Enter your address exactly as stated on your driver's license. No PO Boxes."})),a("div",{key:"de08102a8f4948a929f4fd9194ba7eb2f075d507",class:"col-12 col-md-4"},a("form-control-text",{key:"8dd269cbd72719ff4ad7b85693ed67e1fdd88225",name:"line2",label:"Apartment, Suite, etc. (optional)",defaultValue:null===(i=this.defaultValues)||void 0===i?void 0:i.line2,errorText:null===(l=this.errors)||void 0===l?void 0:l.line2,inputHandler:this.inputHandler})),a("div",{key:"a1081a9a0016dc5fe06106ffdb0063374389f5de",class:"col-12"},a("form-control-text",{key:"94b340156ae354a87a93a8cb44bbc0a2f6507489",name:"city",label:"City",defaultValue:null===(d=this.defaultValues)||void 0===d?void 0:d.city,errorText:null===(o=this.errors)||void 0===o?void 0:o.city,inputHandler:this.inputHandler})),a("div",{key:"66732609b564a08b4b907e9a50aab38a782b0cbc",class:"col-12 col-md-6"},a("form-control-select",{key:"8f91fd2a2ae886044b105f21177c0ccd893c3993",name:"state",label:"State",defaultValue:null===(r=this.defaultValues)||void 0===r?void 0:r.state,options:h,errorText:null===(c=this.errors)||void 0===c?void 0:c.state,inputHandler:this.inputHandler})),a("div",{key:"ebec4b6351ccb7741e195806f1897436e10404cc",class:"col-12 col-md-6"},a("form-control-text",{key:"2d0884fb5acd8e2557fb5ece1b735e6d5945f2a1",name:"postal_code",label:"Postal Code",defaultValue:null===(n=this.defaultValues)||void 0===n?void 0:n.postal_code,errorText:null===(u=this.errors)||void 0===u?void 0:u.postal_code,maxLength:5,keyDownHandler:f,inputHandler:this.inputHandler})),a("div",{key:"8051b9545fd8a93fec6f1c00623c2e2876912db7",class:"col-12"},a("form-control-select",{key:"c68c63ce249f139f4d1df8820f0e1dd56763a67f",name:"country",label:"Country",options:[{label:"United States",value:"USA"}],inputHandler:this.inputHandler,defaultValue:null===(b=this.defaultValues)||void 0===b?void 0:b.country,errorText:null===(m=this.errors)||void 0===m?void 0:m.country,disabled:!0}))))}static get watchers(){return{address:["handleAddressChange"]}}};export{u as form_control_number_masked,b as justifi_identity_address_form}
@@ -1 +0,0 @@
1
- import{r as e,h as t}from"./p-qipqIMyC.js";import"./p-Bp_QFeog.js";import"./p-HXpYMWUU.js";import"./p-Cjcsf8ku.js";import{I as a,a as s}from"./p-c4Mh3ZZ_.js";import"./p-CLHwhyvu.js";import"./p-BlJnA265.js";import"./p-BH0Xfn-F.js";import{f as p,p as l,c as o}from"./p-DyDHaG6n.js";import{e as r,s as i,p as c}from"./p-RvUQ__Pq.js";import{S as d}from"./p-CLQx9p9q.js";import"./p-CZfYo5-1.js";import"./p-DsAwPf2y.js";import"./p-BHf9IqGw.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";const m=class{constructor(t){e(this,t),this.setParamsOnChange=(e,t)=>{p[e]=t}}componentWillLoad(){Object.entries({status:this.checkoutStatus,payment_mode:this.paymentMode}).forEach((([e,t])=>{t&&(l[e]=t)}))}get checkoutStatusOptions(){return[{label:"All",value:""},{label:"Created",value:a.created},{label:"Completed",value:a.completed},{label:"Attempted",value:a.attempted},{label:"Expired",value:a.expired}]}get checkoutPaymentModeOptions(){return[{label:"All",value:""},{label:"E-commerce",value:s.ecom},{label:"BNPL",value:s.bnpl}]}render(){const e=Object.assign({},p);return t(d,{key:"0899d18449324a8dc022297d9ab5b4f726d091f9"},t("table-filters-menu",{key:"8b110d394a685f0f4868c089621711086384ab1c",params:e,clearParams:o,part:r},t("div",{key:"e556d20b1ff0fe9fe3a8c4ad38e58701cb27d6f7",class:"grid-cols-2 gap-3 p-1"},t("div",{key:"ba35f335ab22792af155140efbe01b7deed60e25",class:"p-2"},t("form-control-select",{key:"6669b68303f80616ce2f307d653e4775c9d2483b",name:"status",label:"Status",options:this.checkoutStatusOptions,inputHandler:this.setParamsOnChange,defaultValue:this.checkoutStatus||p.status,disabled:!!this.checkoutStatus,part:i})),t("div",{key:"7ddd00d88cc28ea92540b83a5b40354ca69803b8",class:"p-2"},t("form-control-select",{key:"dfecff15700e174c3fe12a2aa5bc724e8826b831",name:"payment_mode",label:"Payment Mode",options:this.checkoutPaymentModeOptions,inputHandler:this.setParamsOnChange,defaultValue:this.paymentMode||p.payment_mode,disabled:!!this.paymentMode,part:c})))))}};export{m as justifi_checkouts_list_filters}
@@ -1 +0,0 @@
1
- import{h as i,r as t,H as a}from"./p-qipqIMyC.js";import{S as e}from"./p-Xv8DuU3Y.js";import{w as s,c}from"./p-Bp_QFeog.js";import{b as r}from"./p-BHf9IqGw.js";import"./p-RvUQ__Pq.js";import"./p-DsAwPf2y.js";import"./p-HXpYMWUU.js";const o=t=>{const{isReady:a}=t;return a?null:i("div",{class:"container-fluid p-0"},i("div",{class:"row mb-3"},i("div",{class:"col-12 align-content-end"},i(e,{height:"18px",width:"120px"}),i(e,{height:"36px"}))),i("div",{class:"row"},i("div",{class:"col-12 align-content-end"},i(e,{height:"18px",width:"110px"}),i(e,{height:"36px"}))))},n=class{constructor(i){t(this,i),this.isReady=!1}async componentWillLoad(){await s(),this.iframeOrigin=c.iframeOrigin,this.tabId=r()}componentDidRender(){Promise.all([this.accountNumberIframeElement,this.routingNumberIframeElement].map((i=>new Promise((t=>{i.addEventListener("iframeLoaded",(()=>{t()}))}))))).then((()=>{this.isReady=!0}))}async validate(){const i=await this.accountNumberIframeElement.validate(),t=await this.routingNumberIframeElement.validate();return i&&t}async tokenize(i,t,a){return this.accountNumberIframeElement.tokenize(i,t,a)}render(){return i(a,{key:"10c2cf450e59fd8ac8b020e2e2b77cfc8821b215"},i(o,{key:"6fbcdf90c6da356b44813e7245054bad69fac4ca",isReady:this.isReady}),i("div",{key:"c1df41c8bd3b3986191b0abad815667e1b88a135",class:"container-fluid p-0",style:{opacity:this.isReady?"1":"0",height:this.isReady?"auto":"0"}},i("div",{key:"e4643bc24f565a43a00f09cc93ba1d1fe7063435",class:"row mb-3"},i("iframe-input",{key:"82850d403c7a137392acd3425c0f1daa3b6e97c9",inputId:"accountNumber",ref:i=>this.accountNumberIframeElement=i,label:"Account Number",iframeOrigin:`${this.iframeOrigin}/v2/accountNumber?tabId=${this.tabId}`})),i("div",{key:"23854468a9e34f4f940b0988f3debc5f035d9102",class:"row"},i("iframe-input",{key:"595739da0710dae542e4fa9b6286e957f599c502",inputId:"routingNumber",ref:i=>this.routingNumberIframeElement=i,label:"Routing Number",iframeOrigin:`${this.iframeOrigin}/v2/routingNumber?tabId=${this.tabId}`}))))}};export{n as bank_account_form}
@@ -1 +0,0 @@
1
- import{r as t,h as e,c as i,H as s,g as a}from"./p-qipqIMyC.js";import{z as n,r as o}from"./p-RvUQ__Pq.js";import{f as r}from"./p-BHf9IqGw.js";import{c as h,o as l,g as c,a as d}from"./p-CrQgyTRz.js";import{S as u}from"./p-CLQx9p9q.js";import"./p-CZfYo5-1.js";import{H as y}from"./p-CQeex56P.js";import{H as m,b as p,h as M,i as v}from"./p-Bvp7uul3.js";import{H as g}from"./p-BguBT6Hn.js";import{J as f,c as k}from"./p-O-hoT2Oo.js";import"./p-Bp_QFeog.js";import"./p-HXpYMWUU.js";import{C as j,a as b,b as T}from"./p-Cjcsf8ku.js";import{I as w}from"./p-c4Mh3ZZ_.js";import"./p-CLHwhyvu.js";import"./p-BlJnA265.js";import"./p-BH0Xfn-F.js";import{g as N,a as D}from"./p-D2muobcE.js";import{C as I}from"./p-BY2p6Sxk.js";import{A as C}from"./p-BUa0YOaw.js";import{P as A,a as E,b as P}from"./p-DCIW8z1f.js";import{C as x}from"./p-ZpPDShvP.js";import"./p-DsAwPf2y.js";import"./p-BBO3I4s6.js";import"./p-Dt-vy9Le.js";import"./p-BX8GieXu.js";const z=class{constructor(e){t(this,e)}render(){return e(u,{key:"3161e6f6a196c79d684574cafbc90bcf741b2150"},e("section",{key:"594b4485ed4fd9d7c1ee7f4556f071139f92ef0c"},e("div",{key:"5c2d14677dda6fc7ddcb074d4887b839385dca3a"},e("div",{key:"fb850cd7e9c11741349710696dd4e6241c98e805",part:n},null==h?void 0:h.paymentDescription),e("div",{key:"959014d7fa2a9c97bae0c986313a604930c1e0f3"},e("span",{key:"14ab0932a083568419b1c36c95f9072c73962b11",part:n},"Total")," ",e("span",{key:"08a9e00332253070ae984b77eb2a9bab88eb3472",part:n},r(+(null==h?void 0:h.totalAmount)))))))}},O=class{constructor(e){t(this,e),this.levels={h1:y,h2:m,h3:g},this.level="h1"}render(){return e(u,{key:"eb3651b698897193d34a6c6456cd57dd0bd0bc43"},e(this.levels[this.level],{key:"39caee687f93d3d4d90e62d9fbcae318eaa8022e",text:this.text,class:this.class}))}},L=C();class _{async getLinkToken(t,e,i,s){return L.post({endpoint:`plaid/${e}/link`,body:{checkout_id:i},authToken:t,signal:s})}async tokenizeBankAccount(t,e,i,s,a,n){const o=`plaid/${e}/tokenize`,r={public_token:i};return s&&(r.link_token_id=s),a&&(r.payment_method_group_id=a),L.post({endpoint:o,body:r,authToken:t,signal:n})}}const S=class{constructor(e){t(this,e),this.errorEvent=i(this,"error-event"),this.submitEvent=i(this,"submit-event"),this.checkoutChangedEvent=i(this,"checkout-changed"),this.plaidService=new _,this.handleApplePayCompleted=t=>{const{success:e,token:i,paymentMethodId:s,error:a}=t.detail;e&&i?(h.paymentToken=s,h.selectedPaymentMethod={type:A.APPLE_PAY},this.submitCheckout()):(console.error("Apple Pay completed but failed:",a),this.errorEvent.emit({message:(null==a?void 0:a.message)||"Apple Pay payment failed",errorCode:b.TOKENIZE_ERROR,severity:j.ERROR}))},this.handleApplePayError=t=>{const{error:e,code:i}=t.detail;console.error("Apple Pay error:",e),this.errorEvent.emit({message:e||"Apple Pay error occurred",errorCode:`APPLE_PAY_${i}`,severity:j.ERROR})},this.handleApplePayCancelled=()=>{h.paymentToken=void 0,h.selectedPaymentMethod=void 0}}connectedCallback(){this.observer=new MutationObserver((()=>{this.queryFormRefs(),this.setupApplePayListeners()})),this.observer.observe(this.hostEl,{childList:!0,subtree:!0}),h.checkoutId=this.checkoutId;const t={authToken:this.authToken,checkoutId:this.checkoutId,service:new I};this.getCheckout=(({authToken:t,checkoutId:e,service:i})=>async({onSuccess:s,onError:a})=>{var n;try{const o=await i.fetchCheckout(t,e);if(o.error)return a({error:D(o.error),code:N(null===(n=o.error)||void 0===n?void 0:n.code),severity:j.ERROR});s({checkout:o.data})}catch(t){const e=N(null==t?void 0:t.code);return a({error:t.message||t,code:e,severity:j.ERROR})}})(t),this.completeCheckout=(({authToken:t,checkoutId:e,service:i})=>async({payment:s,onSuccess:a,onError:n})=>{var o;try{const r=await i.complete(t,e,s);if(r.error)return n({error:D(r.error),code:N(null===(o=r.error)||void 0===o?void 0:o.code),severity:j.ERROR});a({checkout:r.data})}catch(t){const e=N(null==t?void 0:t.code);return n({error:t.message||t,code:e,severity:j.ERROR})}})(t),l((()=>{this.emitCheckoutChanged()}))}componentWillLoad(){this.analytics=new f(this),k(),h.authToken=this.authToken,this.fetchCheckout(),p("set",(t=>{const e=v[t];void 0!==e&&M(t,e)&&this.fetchCheckout()}))}componentDidLoad(){this.queryFormRefs(),this.setupApplePayListeners()}disconnectedCallback(){var t;null===(t=this.observer)||void 0===t||t.disconnect(),this.removeApplePayListeners()}fetchCheckout(){this.authToken&&this.checkoutId?this.getCheckout&&this.getCheckout({onSuccess:({checkout:t})=>{this.updateStore(t),t.status!==w.completed?t.status!==w.expired||this.errorEvent.emit({message:T.CHECKOUT_EXPIRED,errorCode:b.CHECKOUT_EXPIRED,severity:j.ERROR}):this.errorEvent.emit({message:T.CHECKOUT_ALREADY_COMPLETED,errorCode:b.CHECKOUT_ALREADY_COMPLETED,severity:j.ERROR})},onError:t=>{this.errorEvent.emit({message:t.message,errorCode:t.code,severity:t.severity})}}):this.errorEvent.emit({message:T.NOT_AUTHENTICATED,errorCode:b.NOT_AUTHENTICATED,severity:j.ERROR})}updateStore(t){var e,i,s,a,n;h.accountId=t.account_id,h.checkoutLoaded=!0,h.paymentMethods=t.payment_methods.map((t=>new E(t))),h.paymentMethodGroupId=t.payment_method_group_id,h.paymentDescription=t.payment_description,h.totalAmount=t.total_amount,h.paymentAmount=t.payment_amount,h.bnplEnabled=t.payment_settings.bnpl_payments,h.insuranceEnabled=t.payment_settings.insurance_payments,h.bankAccountVerification=null===(e=t.payment_settings)||void 0===e?void 0:e.bank_account_verification,h.bnplProviderClientId=null===(i=null==t?void 0:t.bnpl)||void 0===i?void 0:i.provider_client_id,h.bnplProviderMode=null===(s=null==t?void 0:t.bnpl)||void 0===s?void 0:s.provider_mode,h.bnplProviderApiVersion=null===(a=null==t?void 0:t.bnpl)||void 0===a?void 0:a.provider_api_version,h.bnplProviderCheckoutUrl=null===(n=null==t?void 0:t.bnpl)||void 0===n?void 0:n.provider_checkout_url}emitCheckoutChanged(){const t={availablePaymentMethodTypes:c(),selectedPaymentMethod:h.selectedPaymentMethod,savedPaymentMethods:h.paymentMethods};this.checkoutChangedEvent.emit(t)}queryFormRefs(){this.billingFormRef=this.hostEl.querySelector("justifi-billing-form, justifi-bank-account-billing-form-simple, justifi-card-billing-form-simple, justifi-billing-form-full"),this.applePayRef=this.hostEl.querySelector("justifi-apple-pay"),this.paymentMethodFormRef=this.hostEl.querySelector("justifi-card-form, justifi-bank-account-form, justifi-tokenize-payment-method"),this.insuranceFormRef=this.hostEl.querySelector("justifi-season-interruption-insurance")}setupApplePayListeners(){this.applePayRef&&(this.applePayRef.addEventListener("applePayCompleted",this.handleApplePayCompleted),this.applePayRef.addEventListener("applePayError",this.handleApplePayError),this.applePayRef.addEventListener("applePayCancelled",this.handleApplePayCancelled))}removeApplePayListeners(){this.applePayRef&&(this.applePayRef.removeEventListener("applePayCompleted",this.handleApplePayCompleted),this.applePayRef.removeEventListener("applePayError",this.handleApplePayError),this.applePayRef.removeEventListener("applePayCancelled",this.handleApplePayCancelled))}async tokenizePaymentMethod(t){var e,i,s;const a=null!==(i=await(null===(e=this.billingFormRef)||void 0===e?void 0:e.getValues()))&&void 0!==i?i:{},n=Object.assign(Object.assign({},t),a),o=Object.assign({accountId:h.accountId,payment_method_group_id:void 0},n);h.savePaymentMethod&&(o.payment_method_group_id=h.paymentMethodGroupId);const r=await(null===(s=this.paymentMethodFormRef)||void 0===s?void 0:s.tokenize({clientId:this.authToken,paymentMethodMetadata:o,account:h.accountId}));return r.error?r:(h.paymentToken=r.id,r.id)}async setSelectedPaymentMethod(t){h.selectedPaymentMethod=t,h.paymentToken=t.id||void 0}async validate(){var t,e;const i=[];h.insuranceEnabled&&this.insuranceFormRef&&i.push(this.insuranceFormRef.validate());const s=(null===(t=h.selectedPaymentMethod)||void 0===t?void 0:t.type)===A.NEW_CARD,a=(null===(e=h.selectedPaymentMethod)||void 0===e?void 0:e.type)===A.NEW_BANK_ACCOUNT;if((s||a)&&(this.paymentMethodFormRef&&i.push(this.paymentMethodFormRef.validate()),this.billingFormRef&&i.push(this.billingFormRef.validate())),0===i.length)return!0;try{return!!(await Promise.all(i)).every((t=>"boolean"==typeof t?t:!1!==(null==t?void 0:t.isValid)))||(this.errorEvent.emit({message:"Validation error",errorCode:b.VALIDATION_ERROR,severity:j.ERROR}),!1)}catch(t){return!1}}async submitCheckout(t){var e,i,s,a;const n=await this.validate(),o=(null===(e=h.selectedPaymentMethod)||void 0===e?void 0:e.type)===A.NEW_CARD,r=(null===(i=h.selectedPaymentMethod)||void 0===i?void 0:i.type)===A.NEW_BANK_ACCOUNT,l=h.selectedPaymentMethod.type===A.PLAID;if(o||r){const e=await this.tokenizePaymentMethod(t);if(null==e?void 0:e.error)return void this.errorEvent.emit({message:e.error.message,errorCode:b.TOKENIZE_ERROR,severity:j.ERROR})}if(l&&!h.paymentToken){const t=h.plaidPublicToken,e=h.plaidLinkTokenId;if(!t)return void this.errorEvent.emit({message:"Missing Plaid public token. Please connect your bank.",errorCode:b.TOKENIZE_ERROR,severity:j.ERROR});try{const i=await this.plaidService.tokenizeBankAccount(h.authToken,h.accountId,t,e||void 0,h.savePaymentMethod?h.paymentMethodGroupId:void 0);if(null==i?void 0:i.error)return void this.errorEvent.emit({message:"string"==typeof i.error?i.error:i.error.message||"Failed to tokenize bank account",errorCode:b.TOKENIZE_ERROR,severity:j.ERROR});const a=null==i?void 0:i.data,n=(null===(s=null==a?void 0:a.bank_account)||void 0===s?void 0:s.token)||(null==a?void 0:a.token)||(null==a?void 0:a.id);h.paymentToken=n}catch(t){return void this.errorEvent.emit({message:(null==t?void 0:t.message)||"Plaid exchange error",errorCode:b.TOKENIZE_ERROR,severity:j.ERROR})}}if(!n)return void this.errorEvent.emit({message:"Please fill in all required fields.",errorCode:b.VALIDATION_ERROR,severity:j.ERROR});if(!h.paymentToken)return void this.errorEvent.emit({message:"Payment token not found.",errorCode:b.TOKENIZE_ERROR,severity:j.ERROR});let c;c={payment_mode:(t=>{switch(t){case A.NEW_CARD:case A.SAVED_CARD:case A.NEW_BANK_ACCOUNT:case A.SAVED_BANK_ACCOUNT:case A.PLAID:return P.ECOM;case A.SEZZLE:return P.BNPL;case A.APPLE_PAY:return P.APPLE_PAY;default:return}})(null===(a=h.selectedPaymentMethod)||void 0===a?void 0:a.type),payment_token:h.paymentToken},this.completeCheckout({payment:c,onSuccess:({checkout:t})=>{this.submitEvent.emit({checkout:t,message:"Checkout completed successfully"})},onError:t=>{this.errorEvent.emit({message:t.message,errorCode:b.COMPLETE_CHECKOUT_ERROR,severity:j.ERROR})}})}render(){return e(s,{key:"f13bda646a7cfcbe339baad474554b38fb0ebae5"})}get hostEl(){return a(this)}};var R;!function(t){t.PLAID_SDK_LOAD_FAILED="plaid-sdk-load-failed",t.PLAID_LINK_INIT_FAILED="plaid-link-init-failed",t.PLAID_LINK_TOKEN_FAILED="plaid-link-token-failed",t.PLAID_AUTHENTICATION_FAILED="plaid-authentication-failed",t.PLAID_BANK_NOT_SUPPORTED="plaid-bank-not-supported",t.PLAID_TOKEN_EXPIRED="plaid-token-expired",t.PLAID_NETWORK_ERROR="plaid-network-error",t.PLAID_USER_CANCELLED="plaid-user-cancelled",t.PLAID_TIMEOUT="plaid-timeout",t.PLAID_INVALID_CREDENTIALS="plaid-invalid-credentials",t.PLAID_ACCOUNT_LOCKED="plaid-account-locked",t.PLAID_MAINTENANCE="plaid-maintenance",t.PLAID_RATE_LIMITED="plaid-rate-limited"}(R||(R={}));const U={[R.PLAID_SDK_LOAD_FAILED]:"Unable to load Plaid. Please refresh the page and try again.",[R.PLAID_LINK_INIT_FAILED]:"Unable to initialize bank connection. Please try again.",[R.PLAID_LINK_TOKEN_FAILED]:"Unable to connect to bank service. Please try again.",[R.PLAID_AUTHENTICATION_FAILED]:"Bank authentication failed. Please try again.",[R.PLAID_BANK_NOT_SUPPORTED]:"Your bank is not currently supported. Please try a different payment method.",[R.PLAID_TOKEN_EXPIRED]:"Your bank session has expired. Please reconnect your account.",[R.PLAID_NETWORK_ERROR]:"Network connection issue. Please check your internet connection and try again.",[R.PLAID_USER_CANCELLED]:"Bank connection was cancelled. Click to try again.",[R.PLAID_TIMEOUT]:"Bank connection timed out. Please try again.",[R.PLAID_INVALID_CREDENTIALS]:"Invalid bank credentials. Please check your username and password.",[R.PLAID_ACCOUNT_LOCKED]:"Your bank account is temporarily locked. Please contact your bank.",[R.PLAID_MAINTENANCE]:"Bank service is temporarily unavailable. Please try again later.",[R.PLAID_RATE_LIMITED]:"Too many connection attempts. Please wait a moment and try again."},B={[R.PLAID_SDK_LOAD_FAILED]:j.ERROR,[R.PLAID_LINK_INIT_FAILED]:j.ERROR,[R.PLAID_LINK_TOKEN_FAILED]:j.ERROR,[R.PLAID_AUTHENTICATION_FAILED]:j.ERROR,[R.PLAID_BANK_NOT_SUPPORTED]:j.WARNING,[R.PLAID_TOKEN_EXPIRED]:j.WARNING,[R.PLAID_NETWORK_ERROR]:j.WARNING,[R.PLAID_USER_CANCELLED]:j.INFO,[R.PLAID_TIMEOUT]:j.WARNING,[R.PLAID_INVALID_CREDENTIALS]:j.ERROR,[R.PLAID_ACCOUNT_LOCKED]:j.ERROR,[R.PLAID_MAINTENANCE]:j.WARNING,[R.PLAID_RATE_LIMITED]:j.WARNING},Q=class{constructor(e){t(this,e),this.paymentMethodOptionSelected=i(this,"paymentMethodOptionSelected"),this.plaidError=i(this,"plaidError"),this.plaidErrorRecovered=i(this,"plaidErrorRecovered"),this.isAuthenticating=!1,this.publicToken=null,this.linkToken=null,this.linkTokenId=null,this.error=null,this.plaidLink=null,this.isSelected=!1,this.retryCount=0,this.isRetrying=!1,this.plaidService=new _,this.maxRetries=3,this.retryDelay=2e3,this.timeoutId=null,this.abortController=null,this.hasLoggedDisabledWarning=!1,this.waitForStoreAndInitialize=()=>{h.authToken&&h.accountId&&h.checkoutId?this.initializePlaidLink():setTimeout((()=>{this.waitForStoreAndInitialize()}),100)},this.initializePlaidLink=async()=>{try{if(void 0===window.Plaid)return void this.handleError({code:R.PLAID_SDK_LOAD_FAILED,message:U[R.PLAID_SDK_LOAD_FAILED],severity:B[R.PLAID_SDK_LOAD_FAILED],retryable:!0,userAction:"Refresh the page and try again"});if(await this.getLinkToken(),!this.linkToken)return void this.handleError({code:R.PLAID_LINK_TOKEN_FAILED,message:U[R.PLAID_LINK_TOKEN_FAILED],severity:B[R.PLAID_LINK_TOKEN_FAILED],retryable:!0,userAction:"Click to try again"});const t=window.Plaid;this.plaidLink=t.create({token:this.linkToken,onSuccess:this.handlePlaidSuccess,onExit:this.handlePlaidExit,onEvent:this.handlePlaidEvent,onLoad:this.handlePlaidLoad})}catch(t){this.handleError({code:R.PLAID_LINK_INIT_FAILED,message:U[R.PLAID_LINK_INIT_FAILED],severity:B[R.PLAID_LINK_INIT_FAILED],originalError:t,retryable:!0,userAction:"Click to try again"})}},this.getLinkToken=async()=>{var t,e,i,s,a;try{if(!h.authToken||!h.accountId)return void this.handleError({code:R.PLAID_LINK_TOKEN_FAILED,message:"Missing authentication. Please refresh the page and try again.",severity:j.ERROR,retryable:!1,userAction:"Refresh the page"});this.abortController=new AbortController,this.timeoutId=setTimeout((()=>{var t;null===(t=this.abortController)||void 0===t||t.abort()}),3e4);const e=await this.plaidService.getLinkToken(h.authToken,h.accountId,h.checkoutId,this.abortController.signal);if(this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),e.error)throw new Error("string"==typeof e.error?e.error:e.error.message||"Failed to get link token");this.linkToken=e.data.link_token,this.linkTokenId=(null==e?void 0:e.id)||(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.id)||null,this.linkTokenId&&(h.plaidLinkTokenId=this.linkTokenId)}catch(t){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null);let n=R.PLAID_LINK_TOKEN_FAILED,o=U[n],r=!0;"AbortError"===t.name?(n=R.PLAID_TIMEOUT,o=U[n],r=!0):(null===(e=t.message)||void 0===e?void 0:e.includes("network"))||(null===(i=t.message)||void 0===i?void 0:i.includes("fetch"))?(n=R.PLAID_NETWORK_ERROR,o=U[n],r=!0):((null===(s=t.message)||void 0===s?void 0:s.includes("401"))||(null===(a=t.message)||void 0===a?void 0:a.includes("unauthorized")))&&(n=R.PLAID_INVALID_CREDENTIALS,o="Authentication failed. Please refresh the page and try again.",r=!1),this.handleError({code:n,message:o,severity:B[n],originalError:t,retryable:r,userAction:r?"Click to try again":"Refresh the page"})}},this.mapApiErrorToPlaidError=t=>{if("string"==typeof t){if(t.includes("rate_limit"))return R.PLAID_RATE_LIMITED;if(t.includes("maintenance"))return R.PLAID_MAINTENANCE;if(t.includes("not_authenticated"))return R.PLAID_INVALID_CREDENTIALS}if(null==t?void 0:t.code)switch(t.code){case"rate_limited":return R.PLAID_RATE_LIMITED;case"maintenance":return R.PLAID_MAINTENANCE;case"not_authenticated":return R.PLAID_INVALID_CREDENTIALS;default:return R.PLAID_LINK_TOKEN_FAILED}return R.PLAID_LINK_TOKEN_FAILED},this.openPlaidLink=()=>{this.plaidLink&&this.linkToken&&(this.isAuthenticating=!0,this.clearError(),this.plaidLink.open())},this.handlePlaidSuccess=t=>{this.publicToken=t,this.isAuthenticating=!1,this.clearError(),this.retryCount=0,this.isSelected||(this.isSelected=!0,h.selectedPaymentMethod={type:A.PLAID}),this.plaidErrorRecovered.emit({code:"plaid-success",message:"Bank account connected successfully",severity:j.INFO}),h.plaidPublicToken=t},this.handlePlaidExit=t=>{this.isAuthenticating=!1,t&&this.handlePlaidError(t)},this.handlePlaidEvent=(t,e)=>{switch(t){case"OPEN":this.isAuthenticating=!0;break;case"CLOSE":this.isAuthenticating=!1;break;case"ERROR":this.handlePlaidError(e)}},this.handlePlaidLoad=()=>{},this.handlePlaidError=t=>{let e=R.PLAID_AUTHENTICATION_FAILED,i=U[e],s=!0,a="Click to try again";if(t.error_code)switch(t.error_code){case"INVALID_CREDENTIALS":e=R.PLAID_INVALID_CREDENTIALS,i=U[e],s=!0;break;case"ITEM_LOGIN_REQUIRED":e=R.PLAID_INVALID_CREDENTIALS,i="Your bank requires re-authentication. Please try again.",s=!0;break;case"ITEM_LOCKED":e=R.PLAID_ACCOUNT_LOCKED,i=U[e],s=!1,a="Contact your bank";break;case"INSTITUTION_NOT_RESPONDING":e=R.PLAID_MAINTENANCE,i=U[e],s=!0;break;case"RATE_LIMIT_EXCEEDED":e=R.PLAID_RATE_LIMITED,i=U[e],s=!0;break;case"INVALID_REQUEST":e=R.PLAID_AUTHENTICATION_FAILED,i="Invalid request. Please try again.",s=!0;break;case"PLAID_ERROR":e=R.PLAID_AUTHENTICATION_FAILED,i=t.error_message||"Bank authentication failed. Please try again.",s=!0;break;default:t.error_message&&(i=t.error_message)}if(t.error_message){const n=t.error_message.toLowerCase();n.includes("not supported")||n.includes("unsupported")?(e=R.PLAID_BANK_NOT_SUPPORTED,i=U[e],s=!1,a="Try a different payment method"):(n.includes("expired")||n.includes("timeout"))&&(e=R.PLAID_TOKEN_EXPIRED,i=U[e],s=!0)}this.handleError({code:e,message:i,severity:B[e],originalError:t,retryable:s,userAction:a}),this.isAuthenticating=!1},this.handleError=t=>{this.error=t,this.plaidError.emit({code:t.code,message:t.message,severity:t.severity,data:{originalError:t.originalError,retryable:t.retryable,userAction:t.userAction,retryCount:this.retryCount}}),console.error("Plaid error:",t),t.retryable&&this.retryCount<this.maxRetries&&this.scheduleRetry()},this.scheduleRetry=()=>{this.isRetrying||(this.isRetrying=!0,this.retryCount++,setTimeout((()=>{this.isRetrying=!1,this.clearError(),this.waitForStoreAndInitialize()}),this.retryDelay*this.retryCount))},this.clearError=()=>{this.error&&(this.error=null,this.retryCount=0)},this.syncWithStore=()=>{var t;const e=(null===(t=h.selectedPaymentMethod)||void 0===t?void 0:t.type)===A.PLAID;this.isSelected!==e&&(this.isSelected=e)}}onSelectionChange(t){var e;t&&(null===(e=h.selectedPaymentMethod)||void 0===e?void 0:e.type)!==A.PLAID&&(h.selectedPaymentMethod={type:A.PLAID}),!t||!this.plaidLink||this.publicToken||this.isAuthenticating||this.error||this.openPlaidLink()}componentDidRender(){this.scriptRef&&(this.scriptRef.onload=()=>{this.waitForStoreAndInitialize()},this.scriptRef.onerror=()=>{this.handleError({code:R.PLAID_SDK_LOAD_FAILED,message:U[R.PLAID_SDK_LOAD_FAILED],severity:B[R.PLAID_SDK_LOAD_FAILED],retryable:!0,userAction:"Refresh the page and try again"})})}componentWillLoad(){var t;this.isSelected=(null===(t=h.selectedPaymentMethod)||void 0===t?void 0:t.type)===A.PLAID}async resolvePaymentMethod(){return this.publicToken?{token:this.publicToken,data:{type:"bank_account",plaid_public_token:this.publicToken}}:{validationError:!0}}async getPaymentToken(){return h.paymentToken}async handleSelectionClick(){if(this.isSelected=!0,h.selectedPaymentMethod={type:A.PLAID},this.error)return this.clearError(),void this.waitForStoreAndInitialize();!this.plaidLink||this.publicToken||this.isAuthenticating||this.openPlaidLink()}async setSelected(t){this.isSelected=t,t&&(h.selectedPaymentMethod={type:A.PLAID})}async isCurrentlySelected(){return this.isSelected}async deselect(){this.isSelected=!1}async reset(){this.publicToken=null,this.clearError(),this.isAuthenticating=!1,this.linkToken=null,this.plaidLink=null,this.retryCount=0,this.isRetrying=!1,this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null),this.abortController&&(this.abortController.abort(),this.abortController=null)}async isReadyForAuthentication(){return!(!this.plaidLink||!this.linkToken||this.isAuthenticating)}async retry(){this.error&&this.error.retryable&&(this.clearError(),this.waitForStoreAndInitialize())}async getErrorInfo(){return this.error}componentDidLoad(){const t=d("selectedPaymentMethod",this.syncWithStore);this.unsubscribeFromStore=t}disconnectedCallback(){this.unsubscribeFromStore&&this.unsubscribeFromStore(),this.timeoutId&&clearTimeout(this.timeoutId),this.abortController&&this.abortController.abort()}render(){if(!0!==h.bankAccountVerification)return this.hasLoggedDisabledWarning||(console.warn("[PlaidPaymentMethod] bank_account_verification is disabled. Component will not render."),this.hasLoggedDisabledWarning=!0),null;const t=e("img",{class:"plaid-logo-img",src:"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjggMjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY2xhc3M9ImNzcy0xcmRhajhtIj48ZyBmaWxsPSIjMTExIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yNS43NjI5IDI2LjI2MjhMMjggMTcuNTMwOUwyNC45NjkxIDE0LjUwMDFMMjcuOTk5OSAxMS40NjkxTDI1Ljc2MjggMi43MzcwNkwxNy4wMzA5IDAuNUwxNC4wMDAxIDMuNTMxTDEwLjk2OSAwLjUwMDE0TDIuMjM3MDYgMi43MzczNEwwIDExLjQ2OTFMMy4wMzEyOCAxNC40OTk5TDAuMDAwMTQgMTcuNTMxTDIuMjM3MiAyNi4yNjI5TDEwLjk2OTEgMjguNUwxNC4wMDAxIDI1LjQ2OUwxNy4wMzEgMjguNDk5OUwyNS43NjI5IDI2LjI2MjhaTTE1LjczMjEgMjMuNzM3MUwxOC42MTg2IDIwLjg1MDVMMjIuMjkxMiAyNC41MjMzTDE3LjY5NTYgMjUuNzAwN0wxNS43MzIxIDIzLjczNzFaTTExLjExMzYgOS44ODE1NEwxNC4wMDAzIDYuOTk1MDJMMTYuODg2OCA5Ljg4MTRMMTQuMDAwMSAxMi43Njc5TDExLjExMzYgOS44ODE1NFpNMTIuMjY4MiAxNC41TDkuMzgxNTQgMTcuMzg2NUw2LjQ5NTAyIDE0LjVMOS4zODE1NCAxMS42MTM1TDEyLjI2ODIgMTQuNVpNMTguNjE4NyAxMS42MTMzTDIxLjUwNTMgMTQuNUwxOC42MTg2IDE3LjM4NjVMMTUuNzMyMSAxNC41TDE4LjYxODcgMTEuNjEzM1pNMTYuODg2NyAxOS4xMTg2TDE0LjAwMDEgMjIuMDA1MUwxMS4xMTM1IDE5LjExODVMMTQuMDAwMSAxNi4yMzE5TDE2Ljg4NjcgMTkuMTE4NlpNMTAuMzA0NCAyNS43MDA3TDUuNzA4NjQgMjQuNTIzM0w5LjM4MTU0IDIwLjg1MDRMMTIuMjY4MiAyMy43MzcxTDEwLjMwNDQgMjUuNzAwN1pNNC43NjMwOCAxNi4yMzE5TDcuNjQ5NiAxOS4xMTg1TDMuOTc2NyAyMi43OTE0TDIuNzk5MyAxOC4xOTU3TDQuNzYzMDggMTYuMjMxOVpNMy45NzY3IDYuMjA4MzZMNy42NDk3NCA5Ljg4MTRMNC43NjMwOCAxMi43NjgxTDIuNzk5MyAxMC44MDQxTDMuOTc2NyA2LjIwODM2Wk0xMi4yNjgzIDUuMjYyOTRMOS4zODE2OCA4LjE0OTZMNS43MDg5MiA0LjQ3NjdMMTAuMzA0NyAzLjI5OTNMMTIuMjY4MyA1LjI2Mjk0Wk0xNy42OTU5IDMuMjk5M0wyMi4yOTE1IDQuNDc2N0wxOC42MTg2IDguMTQ5NDZMMTUuNzMyMSA1LjI2Mjk0TDE3LjY5NTkgMy4yOTkzWk0yMy4yMzcyIDEyLjc2ODFMMjAuMzUwNSA5Ljg4MTRMMjQuMDIzMyA2LjIwODc4TDI1LjIwMDcgMTAuODA0NkwyMy4yMzcyIDEyLjc2ODFaTTI0LjAyMzMgMjIuNzkxNEwyMC4zNTA1IDE5LjExODZMMjMuMjM3MiAxNi4yMzIxTDI1LjIwMDcgMTguMTk1N0wyNC4wMjMzIDIyLjc5MTRaIj48L3BhdGg+PC9nPjwvc3ZnPgo=",alt:"Plaid",title:"Plaid",style:{display:"inline",width:"20px",height:"20px",marginLeft:"5px",marginTop:"-2px"}});return e(u,{class:"payment-method"},e("script",{src:"https://cdn.plaid.com/link/v2/stable/link-initialize.js",async:!0,ref:t=>this.scriptRef=t}),e("div",{title:"Pay with Plaid"},e("div",{onClick:t=>{t.preventDefault(),this.handleSelectionClick()}},"Pay with Bank Account ",t," "),(()=>this.error?e("div",{class:(this.error.severity===j.ERROR?"text-danger":this.error.severity===j.WARNING?"text-warning":"text-info")+" mt-2"},e("small",null,this.error.message),e("br",null),e("small",{class:"text-muted"},this.error.userAction,this.error.retryable&&this.retryCount<this.maxRetries&&e("span",null," • Auto-retry in progress..."))):null)(),(()=>this.error?null:this.isAuthenticating?e("div",{class:"text-info mt-2"},e("small",null,"Connecting to your bank...")):this.publicToken?e("div",{class:"text-success mt-2"},e("small",null,"✓ Bank account connected successfully")):!this.isSelected||this.publicToken||this.error||this.isAuthenticating?null:e("div",{class:"text-muted mt-2"},e("small",null,"Click to connect your bank account")))()))}static get watchers(){return{isSelected:["onSelectionChange"]}}},Y=class{constructor(e){t(this,e),this.onPaymentMethodOptionClick=t=>e=>{e.preventDefault(),h.selectedPaymentMethod={id:t.id,type:t.type},h.paymentToken=t.id},this.isAllowedPaymentMethod=t=>!(t===A.SAVED_CARD&&h.disableCreditCard||t===A.SAVED_BANK_ACCOUNT&&h.disableBankAccount)}componentWillLoad(){h.paymentMethods.length||console.warn("No saved payment methods available."),h.disablePaymentMethodGroup&&console.warn("Payment method group is disabled.")}render(){return h.disablePaymentMethodGroup?null:e(u,null,e("div",{class:"saved-payment-methods"},h.paymentMethods.length?h.paymentMethods.filter((t=>this.isAllowedPaymentMethod(t.type))).map((t=>e("div",{class:"radio-list-item p-3",part:o,onClick:this.onPaymentMethodOptionClick(t)},e("form-control-radio",{name:"paymentMethodType",value:null==t?void 0:t.id,checked:h.paymentToken===(null==t?void 0:t.id),label:`${x[null==t?void 0:t.brand]||""} *${null==t?void 0:t.acct_last_four}`})))):null))}},F=e("img",{class:"sezzle-smart-button-logo-img",src:"https://media.sezzle.com/branding/2.0/Sezzle_Logo_FullColor.svg",alt:"Sezzle",style:{display:"inline",width:"80px",marginLeft:"5px",marginTop:"-5px"}}),H=class{constructor(e){t(this,e),this.paymentMethodOptionSelected=i(this,"paymentMethodOptionSelected"),this.paymentMethodOptionId=A.SEZZLE,this.initializeSezzleCheckout=()=>{let t;this.sezzlePromise=new Promise((e=>{t=e}));const e=Number(h.paymentAmount),i=new(0,window.Checkout)({mode:"popup",publicKey:h.bnplProviderClientId,apiMode:h.bnplProviderMode,apiVersion:h.bnplProviderApiVersion});i.sezzleButtonElement=this.sezzleButtonRef,i.init({onClick:function(t){t.preventDefault(),i.startCheckout({checkout_url:h.bnplProviderCheckoutUrl})},onComplete:e=>t({bnpl:e.data}),onCancel:e=>t({bnpl:e.data}),onFailure:e=>t({bnpl:e.data})}),this.sezzleCheckout=i,this.installmentPlan=this.sezzleCheckout.getInstallmentPlan(e)}}componentDidRender(){this.scriptRef&&(this.scriptRef.onload=()=>{this.sezzleButtonRef=document.createElement("button"),this.initializeSezzleCheckout()})}async resolvePaymentMethod(t){return t.isValid?(this.sezzleButtonRef.click(),this.sezzlePromise):{validationError:!0}}async handleSelectionClick(){h.selectedPaymentMethod={type:A.SEZZLE},this.paymentMethodOptionSelected.emit(this.paymentMethodOptionId)}render(){var t,i;return!h.bnplEnabled||h.disableBnpl?(console.warn("justifi-sezzle-payment-method: BNPL is not enabled for this account."),null):e(u,{class:"payment-method"},e("script",{src:"https://checkout-sdk.sezzle.com/checkout.min.js",async:!0,ref:t=>this.scriptRef=t}),e("div",null,e("div",null,"Buy now, pay later with ",F),this.installmentPlan&&e("small",null,e("span",null,null===(t=this.installmentPlan)||void 0===t?void 0:t.installments.length)," ",e("span",null,this.installmentPlan.schedule," payments of")," ",e("span",{class:"fw-bold"},r(null===(i=this.installmentPlan)||void 0===i?void 0:i.installments[0].amountInCents)))))}},V={[A.NEW_BANK_ACCOUNT]:"New bank account",[A.NEW_CARD]:"New credit or debit card"},Z="Payment form not ready",W="Validation error",q=class{constructor(e){t(this,e),this.errorEvent=i(this,"error-event"),this.submitEvent=i(this,"submit-event"),this.computedHideSubmitButton=!1,this.isLoading=!1,this.submitButtonText="Submit"}paymentMethodsChanged(){this.setDefaultSelectedPaymentMethod()}connectedCallback(){this.setDefaultSelectedPaymentMethod(),this.setComputedHideSubmitButton()}disconnectedCallback(){var t;null===(t=this.analytics)||void 0===t||t.cleanup(),this.unsubscribeFromStore&&this.unsubscribeFromStore()}componentWillLoad(){k(),this.analytics=new f(this)}handleRadioClick(t){this.selectedPaymentMethod=t.detail,h.selectedPaymentMethod={type:t.detail}}async fillBillingForm(t){var e;null===(e=this.billingFormRef)||void 0===e||e.fill(t)}async tokenizePaymentMethod(t){null==t||t.preventDefault(),this.validateRequiredProps(),this.isLoading=!0;try{if(!(await this.validate()).isValid)return this.errorEvent.emit({errorCode:b.TOKENIZE_ERROR,message:W}),void(this.isLoading=!1);const t=await this.resolvePaymentMethod({isValid:!0});return t.error&&this.emitError({errorCode:t.error.code,message:t.error.message}),this.submitEvent.emit({response:t}),t}catch(t){const e=this.createErrorResponse(b.TOKENIZE_ERROR,t.message);return this.emitError({errorCode:b.TOKENIZE_ERROR,message:t.message}),this.submitEvent.emit({response:e}),e}finally{this.isLoading=!1}}async validate(){if(!this.areFormsReady())return{isValid:!1,errors:{general:Z}};const[t,e]=await Promise.all([this.billingFormRef.validate(),this.paymentMethodFormRef.validate()]);return{isValid:t.isValid&&e.isValid,errors:Object.assign(Object.assign({},t.errors),e.errors)}}async tokenize(){try{const t=await this.billingFormRef.getValues(),e={clientId:this.authToken||h.authToken,account:this.accountId||h.accountId,paymentMethodMetadata:this.buildPaymentMethodMetadata(t)};return await this.paymentMethodFormRef.tokenize(e)}catch(t){return t}}validateRequiredProps(){this.authToken||h.authToken||this.emitError({errorCode:b.TOKENIZE_ERROR,message:"Auth token is required when using the tokenize-payment-method component not slotted in justifi-modular-checkout"}),this.accountId||h.accountId||this.emitError({errorCode:b.TOKENIZE_ERROR,message:"Account ID is required when using the tokenize-payment-method component not slotted in justifi-modular-checkout"})}setDefaultSelectedPaymentMethod(){this.selectedPaymentMethod||(this.disableCreditCard?this.disableBankAccount||(this.selectedPaymentMethod=A.NEW_BANK_ACCOUNT,h.selectedPaymentMethod={type:A.NEW_BANK_ACCOUNT}):(this.selectedPaymentMethod=A.NEW_CARD,h.selectedPaymentMethod={type:A.NEW_CARD}))}setComputedHideSubmitButton(){if(void 0!==this.hideSubmitButton)return void(this.computedHideSubmitButton=this.hideSubmitButton);const t=this.isSlottedWithinModularCheckout();this.computedHideSubmitButton=t}isSlottedWithinModularCheckout(){var t;let e=null===(t=this.host)||void 0===t?void 0:t.parentElement;for(;e;){if("JUSTIFI-MODULAR-CHECKOUT"===e.tagName)return!0;e=e.parentElement}return!1}get availablePaymentMethods(){const t=[];return this.disableCreditCard||t.push(A.NEW_CARD),this.disableBankAccount||t.push(A.NEW_BANK_ACCOUNT),t}areFormsReady(){return!(!this.billingFormRef||!this.paymentMethodFormRef)}emitError(t){this.errorEvent.emit(Object.assign(Object.assign({},t),{severity:j.ERROR}))}createErrorResponse(t,e){return{error:{code:t,message:e,decline_code:void 0}}}async resolvePaymentMethod(t){if(!this.areFormsReady())return this.createErrorResponse("form_not_ready",Z);try{const e=await this.validate();if(!e.isValid||!t.isValid){const t=Object.values(e.errors)[0]||W;return{validationError:!0,error:{code:"validation_error",message:String(t),decline_code:void 0}}}return await this.performTokenization()}catch(t){return{error:t}}}async performTokenization(){var t,e;const i=await this.tokenize();if(i.error)return{error:i.error};const s=i.data;return{token:(null===(t=s.card)||void 0===t?void 0:t.token)||(null===(e=s.bank_account)||void 0===e?void 0:e.token),data:s}}buildPaymentMethodMetadata(t){return this.shouldSavePaymentMethod?Object.assign(Object.assign({},t),{payment_method_group_id:this.paymentMethodGroupID}):Object.assign({},t)}get paymentMethodGroupID(){return this.paymentMethodGroupId||h.paymentMethodGroupId}get shouldSavePaymentMethod(){return!(!this.paymentMethodGroupId&&!h.savePaymentMethod)}get shouldHideRadioInput(){return this.disableCreditCard||this.disableBankAccount}renderPaymentMethodOption(t){const i=this.selectedPaymentMethod===t&&void 0===h.selectedPaymentMethod.id;return e("div",{class:"payment-method"},e("justifi-radio-list-item",{name:"paymentMethodType",value:t,checked:i,label:V[t],hidden:this.shouldHideRadioInput}),i&&this.renderSelectedPaymentMethodForm(t))}renderSelectedPaymentMethodForm(t){return e("div",{class:"mt-4 pb-4"},this.renderPaymentMethodForm(t),e("div",{class:"mt-4"},e("justifi-billing-form",{ref:t=>this.billingFormRef=t,hideCardBillingForm:this.hideCardBillingForm,hideBankAccountBillingForm:this.hideBankAccountBillingForm,paymentMethodType:t})),e("div",{class:"mt-4"},e("justifi-save-new-payment-method",{hidden:!this.paymentMethodGroupID,label:this.savePaymentMethodLabel})))}renderPaymentMethodForm(t){return e(t===A.NEW_CARD?"justifi-card-form":"justifi-bank-account-form",{ref:t=>this.paymentMethodFormRef=t})}render(){return e(u,{key:"5fc5dad15215fe24b421f4d6c13355fb849b8a76"},e("form",{key:"0e0330e5b11ee3ae0bef9e092fa2fb2a0a6af3e7"},e("fieldset",{key:"ee4c026ccda62a249e019a9e105e40ea465fc400"},e("div",{key:"15a8a86fa5be8a545745260d76a8c3b2569d6a0e",class:"row gy-3"},e("div",{key:"bbbeed6ee96311394a876b4beb206e8e335184c2",class:"col-12"},this.availablePaymentMethods.map((t=>this.renderPaymentMethodOption(t)))),e("div",{key:"da2a2009abe4348e25a5fc712557e81e9f6c4c1f",class:"col-12"},e("justifi-button",{key:"050939c757999383226f281ee0eff1ec178be203",text:this.submitButtonText,variant:"primary",type:"submit",clickHandler:t=>this.tokenizePaymentMethod(t),isLoading:this.isLoading,"data-testid":"submit-button",hidden:this.computedHideSubmitButton}))))))}get host(){return a(this)}static get watchers(){return{disableCreditCard:["paymentMethodsChanged"],disableBankAccount:["paymentMethodsChanged"]}}};export{z as justifi_checkout_summary,O as justifi_header,S as justifi_modular_checkout,Q as justifi_plaid_payment_method,Y as justifi_saved_payment_methods,H as justifi_sezzle_payment_method,q as justifi_tokenize_payment_method}