@justifi/webcomponents 6.5.1-rc.2 → 6.6.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 (666) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/{Api-BeSnjEuW.js → Api-QUTWjGTy.js} +1 -1
  3. package/dist/cjs/{GooglePay-HXBAmTgL.js → Refund-BX0mjsAQ.js} +1 -416
  4. package/dist/cjs/additional-questions-details_5.cjs.entry.js +1 -1
  5. package/dist/cjs/bank-account-document-form-inputs_8.cjs.entry.js +206 -0
  6. package/dist/cjs/bank-account-form.cjs.entry.js +3 -3
  7. package/dist/cjs/{business-additional-questions-schema-CE-z5qrr.js → business-additional-questions-schema-Y1mXnwUT.js} +1 -7
  8. package/dist/cjs/{business-identity-schema-rMMiHyPz.js → business-identity-schema-D_OO0Suf.js} +1 -1
  9. package/dist/cjs/{business.service-DMzf08nC.js → business.service-Dffp64u6.js} +2 -2
  10. package/dist/cjs/card-form.cjs.entry.js +3 -3
  11. package/dist/cjs/{check-pkg-version-Bw6Rz_E3.js → check-pkg-version-DZC7jOGP.js} +3 -3
  12. package/dist/cjs/{checkout.service-CHNHEsrp.js → checkout.service-C1HcsrjQ.js} +2 -2
  13. package/dist/cjs/checkout.store-BA6h-dp2.js +107 -0
  14. package/dist/cjs/checkouts-list-core.cjs.entry.js +4 -5
  15. package/dist/cjs/{checkouts-table-2fOlhkc4.js → checkouts-table-Bgqkaez4.js} +1 -1
  16. package/dist/cjs/{custom-popper.cjs.entry.js → custom-popper_2.cjs.entry.js} +22 -2
  17. package/dist/cjs/{dispute.service-B63kcFkU.js → dispute.service-CJsWYMYk.js} +2 -2
  18. package/dist/cjs/form-alert_5.cjs.entry.js +6 -6
  19. package/dist/cjs/form-control-checkbox.cjs.entry.js +2 -2
  20. package/dist/cjs/form-control-date.cjs.entry.js +2 -2
  21. package/dist/cjs/form-control-file-v2_2.cjs.entry.js +3 -3
  22. package/dist/cjs/form-control-monetary-provisioning.cjs.entry.js +2 -2
  23. package/dist/cjs/form-control-monetary.cjs.entry.js +3 -3
  24. package/dist/cjs/form-control-number-masked_3.cjs.entry.js +4 -4
  25. package/dist/cjs/form-control-number.cjs.entry.js +2 -2
  26. package/dist/cjs/form-control-radio.cjs.entry.js +2 -2
  27. package/dist/cjs/{form-control-select_3.cjs.entry.js → form-control-select_2.cjs.entry.js} +4 -23
  28. package/dist/cjs/{get-payment-details-BN139jp0.js → get-payment-details-BblcGN2B.js} +2 -2
  29. package/dist/cjs/{get-subaccounts-IgHJX5J4.js → get-subaccounts-z4dNQDjx.js} +3 -3
  30. package/dist/cjs/gross-payment-chart-core.cjs.entry.js +2 -2
  31. package/dist/cjs/hidden-input_2.cjs.entry.js +5 -5
  32. package/dist/cjs/{index-CajjbB9t.js → index-C2ITzalN.js} +0 -1
  33. package/dist/cjs/index.cjs.js +1 -1
  34. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +26 -25
  35. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +860 -29
  36. package/dist/cjs/justifi-additional-statement_8.cjs.entry.js +8 -8
  37. package/dist/cjs/{justifi-apple-pay_8.cjs.entry.js → justifi-apple-pay_7.cjs.entry.js} +255 -901
  38. package/dist/cjs/justifi-bank-account-billing-form-simple_3.cjs.entry.js +3 -3
  39. package/dist/cjs/justifi-business-details.cjs.entry.js +6 -7
  40. package/dist/cjs/justifi-business-form.cjs.entry.js +9 -10
  41. package/dist/cjs/justifi-checkout.cjs.entry.js +17 -16
  42. package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +10 -11
  43. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +10 -11
  44. package/dist/cjs/justifi-details.cjs.entry.js +1 -1
  45. package/dist/cjs/justifi-dispute-management-core.cjs.entry.js +1 -1
  46. package/dist/cjs/justifi-dispute-management.cjs.entry.js +7 -8
  47. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +10 -11
  48. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +5 -6
  49. package/dist/cjs/justifi-order-terminals.cjs.entry.js +11 -12
  50. package/dist/cjs/justifi-payment-details.cjs.entry.js +7 -8
  51. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +1 -1
  52. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +7 -8
  53. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +8 -9
  54. package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +3 -3
  55. package/dist/cjs/justifi-payments-list.cjs.entry.js +9 -10
  56. package/dist/cjs/justifi-payout-details.cjs.entry.js +7 -8
  57. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +8 -9
  58. package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +3 -3
  59. package/dist/cjs/justifi-payouts-list.cjs.entry.js +10 -11
  60. package/dist/cjs/justifi-refund-payment.cjs.entry.js +11 -12
  61. package/dist/cjs/justifi-saved-payment-method.cjs.entry.js +1 -1
  62. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +10 -9
  63. package/dist/cjs/justifi-skeleton.cjs.entry.js +1 -1
  64. package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +12 -13
  65. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +8 -9
  66. package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +8 -9
  67. package/dist/cjs/justifi-terminals-list.cjs.entry.js +10 -11
  68. package/dist/cjs/justifi-tokenize-payment-method.cjs.entry.js +1 -1
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/cjs/{justifi-owner-form_3.cjs.entry.js → owner-form-core_2.cjs.entry.js} +5 -60
  71. package/dist/cjs/{package--UMqvxMQ.js → package-CkO7M9IQ.js} +1 -1
  72. package/dist/cjs/pagination-menu.cjs.entry.js +3 -3
  73. package/dist/cjs/payment-details-core.cjs.entry.js +11 -12
  74. package/dist/cjs/payment-method-option.cjs.entry.js +1 -1
  75. package/dist/cjs/{payment.service-eOZc1Qay.js → payment.service-BZatGHKc.js} +2 -2
  76. package/dist/cjs/payments-list-core.cjs.entry.js +4 -5
  77. package/dist/cjs/{payments-table-C6SCvqLD.js → payments-table-CaJt-yMH.js} +1 -1
  78. package/dist/cjs/payout-details-core.cjs.entry.js +4 -4
  79. package/dist/cjs/{payout.service-QVl5N-UV.js → payout.service-DbgLWhwh.js} +2 -2
  80. package/dist/cjs/payouts-list-core.cjs.entry.js +4 -5
  81. package/dist/cjs/{payouts-table-CEnUtKNR.js → payouts-table-DZv0WnTS.js} +1 -1
  82. package/dist/cjs/{schema-validations-BOiGVUHM.js → schema-validations-Bf2mk2xU.js} +0 -16
  83. package/dist/cjs/table-filters-menu.cjs.entry.js +1 -1
  84. package/dist/cjs/terminal-orders-list-core.cjs.entry.js +4 -5
  85. package/dist/cjs/{terminal-orders-table-g2fwrh2P.js → terminal-orders-table-F-ZFUBwH.js} +4 -4
  86. package/dist/cjs/terminal-quantity-selector.cjs.entry.js +1 -1
  87. package/dist/cjs/{terminal.service-BuSFyt0j.js → terminal.service-KC8wBTJJ.js} +2 -2
  88. package/dist/cjs/terminals-list-core.cjs.entry.js +4 -5
  89. package/dist/cjs/{terminals-table-EeeLeuDN.js → terminals-table-D7sf_DBN.js} +1 -1
  90. package/dist/cjs/{utils-Bab-tddY.js → utils-D4WPxuzW.js} +0 -7
  91. package/dist/cjs/webcomponents.cjs.js +1 -1
  92. package/dist/collection/api/index.js +0 -2
  93. package/dist/collection/collection-manifest.json +1 -8
  94. package/dist/collection/components/business-forms/business-form/additional-questions/additional-questions.js +6 -7
  95. package/dist/collection/components/business-forms/business-form/business-core-info/business-core-info.js +2 -2
  96. package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +7 -8
  97. package/dist/collection/components/business-forms/business-form/legal-address-form/legal-address-form.js +6 -7
  98. package/dist/collection/components/business-forms/owner-form/identity-address/identity-address-form.js +1 -1
  99. package/dist/collection/components/business-forms/owner-form/owner-form-core.js +1 -1
  100. package/dist/collection/components/business-forms/owner-form/owner-form-inputs.js +7 -8
  101. package/dist/collection/components/business-forms/owner-form/owner-form.js +1 -1
  102. package/dist/collection/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step.js +132 -3
  103. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-document-inputs.js +1 -1
  104. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-form-inputs-canada.js +1 -1
  105. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-form-inputs.js +1 -1
  106. package/dist/collection/components/business-forms/payment-provisioning/bank-account/bank-account-read-only-value.js +1 -1
  107. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +335 -3
  108. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-documents-on-file.js +2 -2
  109. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +133 -3
  110. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +186 -3
  111. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-inputs.js +2 -2
  112. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.js +129 -3
  113. package/dist/collection/components/business-forms/payment-provisioning/form-address-fields/form-address-fields.js +1 -1
  114. package/dist/collection/components/business-forms/payment-provisioning/form-control-monetary-provisioning.js +2 -2
  115. package/dist/collection/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step.js +122 -3
  116. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-core.js +1 -1
  117. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-buttons.js +1 -1
  118. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-steps.js +1 -1
  119. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning.js +1 -1
  120. package/dist/collection/components/business-forms/payment-provisioning/terms-and-conditions/business-terms-conditions-form-step.js +1 -1
  121. package/dist/collection/components/business-forms/schemas/business-additional-questions-schema.js +1 -7
  122. package/dist/collection/components/business-forms/schemas/schema-validations.js +1 -14
  123. package/dist/collection/components/checkout/bank-account-form/bank-account-form.js +2 -2
  124. package/dist/collection/components/checkout/card-form/card-form.js +2 -2
  125. package/dist/collection/components/checkout/checkout.js +2 -2
  126. package/dist/collection/components/checkout/save-new-payment-method.js +1 -1
  127. package/dist/collection/components/checkout/saved-payment-method.js +1 -1
  128. package/dist/collection/components/checkouts-list/checkouts-list-core.js +1 -1
  129. package/dist/collection/components/checkouts-list/checkouts-list-filters.js +1 -1
  130. package/dist/collection/components/checkouts-list/checkouts-list.js +1 -1
  131. package/dist/collection/components/dispute-management/dispute-management-core.js +1 -1
  132. package/dist/collection/components/dispute-management/dispute-management.js +1 -1
  133. package/dist/collection/components/dispute-management/dispute-notification.js +2 -2
  134. package/dist/collection/components/dispute-management/dispute-response/additional-statement.js +1 -1
  135. package/dist/collection/components/dispute-management/dispute-response/cancellation-policy.js +1 -1
  136. package/dist/collection/components/dispute-management/dispute-response/customer-details.js +1 -1
  137. package/dist/collection/components/dispute-management/dispute-response/dispute-response-core.js +1 -1
  138. package/dist/collection/components/dispute-management/dispute-response/dispute-response.js +1 -1
  139. package/dist/collection/components/dispute-management/dispute-response/duplicate-charge.js +1 -1
  140. package/dist/collection/components/dispute-management/dispute-response/electronic-evidence.js +1 -1
  141. package/dist/collection/components/dispute-management/dispute-response/product-or-service.js +1 -1
  142. package/dist/collection/components/dispute-management/dispute-response/refund-policy.js +1 -1
  143. package/dist/collection/components/dispute-management/dispute-response/shipping-details.js +1 -1
  144. package/dist/collection/components/filters/table-filters-menu.js +1 -1
  145. package/dist/collection/components/gross-payment-chart/gross-payment-chart-core.js +1 -1
  146. package/dist/collection/components/modular-checkout/ModularCheckout.js +0 -1
  147. package/dist/collection/components/modular-checkout/modular-checkout.js +9 -46
  148. package/dist/collection/components/modular-checkout/sub-components/bank-account-billing-form-simple.js +1 -1
  149. package/dist/collection/components/modular-checkout/sub-components/bank-account.js +2 -2
  150. package/dist/collection/components/modular-checkout/sub-components/card-billing-form-simple.js +1 -1
  151. package/dist/collection/components/modular-checkout/sub-components/card-form.js +2 -2
  152. package/dist/collection/components/modular-checkout/sub-components/payment-method-option.js +1 -1
  153. package/dist/collection/components/modular-checkout/sub-components/summary.js +1 -1
  154. package/dist/collection/components/order-terminals/order-terminals.js +1 -1
  155. package/dist/collection/components/order-terminals/terminal-quantity-selector/terminal-quantity-selector.js +1 -1
  156. package/dist/collection/components/payment-details/payment-details-core.js +8 -8
  157. package/dist/collection/components/payment-transactions-list/payment-transactions-list.js +1 -1
  158. package/dist/collection/components/payments-list/payments-list-core.js +1 -1
  159. package/dist/collection/components/payments-list/payments-list-filters.js +2 -2
  160. package/dist/collection/components/payments-list/payments-list.js +1 -1
  161. package/dist/collection/components/payout-details/payout-details-core.js +3 -3
  162. package/dist/collection/components/payout-transactions-list/payout-transactions-list.js +1 -1
  163. package/dist/collection/components/payouts-list/payouts-list-core.js +1 -1
  164. package/dist/collection/components/payouts-list/payouts-list-filters.js +2 -2
  165. package/dist/collection/components/payouts-list/payouts-list.js +1 -1
  166. package/dist/collection/components/terminal-orders-list/terminal-orders-list-core.js +1 -1
  167. package/dist/collection/components/terminal-orders-list/terminal-orders-list-filters.js +2 -2
  168. package/dist/collection/components/terminal-orders-list/terminal-orders-list.js +1 -1
  169. package/dist/collection/components/terminals-list/terminals-list-core.js +1 -1
  170. package/dist/collection/components/terminals-list/terminals-list-filters.js +1 -1
  171. package/dist/collection/components/terminals-list/terminals-list.js +1 -1
  172. package/dist/collection/components/tokenize-payment-method/internal-tokenize-payment-method.js +4 -3
  173. package/dist/collection/components/tokenize-payment-method/tokenize-payment-method.js +10 -5
  174. package/dist/collection/store/checkout.store.js +0 -4
  175. package/dist/collection/ui-components/custom-popper/custom-popper.js +2 -2
  176. package/dist/collection/ui-components/details/details.js +1 -1
  177. package/dist/collection/ui-components/form/form-control-checkbox.js +2 -2
  178. package/dist/collection/ui-components/form/form-control-date.js +2 -2
  179. package/dist/collection/ui-components/form/form-control-file-v2.js +1 -1
  180. package/dist/collection/ui-components/form/form-control-file.js +2 -2
  181. package/dist/collection/ui-components/form/form-control-monetary.js +2 -2
  182. package/dist/collection/ui-components/form/form-control-number-masked.js +2 -2
  183. package/dist/collection/ui-components/form/form-control-number.js +2 -2
  184. package/dist/collection/ui-components/form/form-control-radio.js +2 -2
  185. package/dist/collection/ui-components/form/form-control-select.js +2 -2
  186. package/dist/collection/ui-components/form/form-control-text.js +2 -2
  187. package/dist/collection/ui-components/form/form-control-textarea.js +2 -2
  188. package/dist/collection/ui-components/form/hidden-input.js +1 -1
  189. package/dist/collection/ui-components/form/iframe-input.js +3 -3
  190. package/dist/collection/ui-components/pagination-menu/pagination-menu.js +3 -3
  191. package/dist/collection/ui-components/shadow-dom-components/justifi-button.js +1 -1
  192. package/dist/collection/ui-components/shadow-dom-components/justifi-header.js +1 -1
  193. package/dist/collection/ui-components/shadow-dom-components/justifi-radio-list-item.js +1 -1
  194. package/dist/collection/ui-components/shadow-dom-components/justifi-skeleton.js +1 -1
  195. package/dist/docs.json +2692 -4612
  196. package/dist/esm/{Api-DX-IWyBw.js → Api-Dln8a6No.js} +1 -1
  197. package/dist/esm/{GooglePay-9bPcqGZ9.js → Refund-DDWRtCuX.js} +2 -406
  198. package/dist/esm/additional-questions-details_5.entry.js +3 -3
  199. package/dist/esm/{badge-Bgosx-DC.js → badge-BWd10d-w.js} +1 -1
  200. package/dist/esm/bank-account-document-form-inputs_8.entry.js +197 -0
  201. package/dist/esm/bank-account-form.entry.js +5 -5
  202. package/dist/esm/{business-additional-questions-schema-QFJEOHF5.js → business-additional-questions-schema-woG5-pgK.js} +1 -7
  203. package/dist/esm/business-details-core.entry.js +3 -3
  204. package/dist/esm/{business-identity-schema-DB_Hhjld.js → business-identity-schema-B7VTDF4j.js} +2 -2
  205. package/dist/esm/{business.service-2j91Emgq.js → business.service-CmSijtcP.js} +2 -2
  206. package/dist/esm/{button-DBmjN7Ra.js → button-BDwVDLs-.js} +1 -1
  207. package/dist/esm/card-form.entry.js +5 -5
  208. package/dist/esm/{check-pkg-version-2BU_KPHv.js → check-pkg-version-B83yUQEx.js} +3 -3
  209. package/dist/esm/{checkout.service-D-dEMyXF.js → checkout.service-E60GnrZv.js} +2 -2
  210. package/dist/esm/checkout.store-CaS_htQd.js +101 -0
  211. package/dist/esm/checkouts-list-core.entry.js +8 -9
  212. package/dist/esm/{checkouts-table-lgbZpF1o.js → checkouts-table-BVWL1wN9.js} +3 -3
  213. package/dist/esm/{custom-popper.entry.js → custom-popper_2.entry.js} +22 -3
  214. package/dist/esm/{dispute.service-DPumDIuV.js → dispute.service-CAZJigrO.js} +2 -2
  215. package/dist/esm/form-alert_5.entry.js +7 -7
  216. package/dist/esm/form-control-checkbox.entry.js +5 -5
  217. package/dist/esm/form-control-date.entry.js +4 -4
  218. package/dist/esm/{form-control-error-text-B5LSdUXI.js → form-control-error-text-BYooqu0N.js} +1 -1
  219. package/dist/esm/form-control-file-v2_2.entry.js +5 -5
  220. package/dist/esm/{form-control-help-text-BK9RNOf-.js → form-control-help-text-CF1UA5Sl.js} +1 -1
  221. package/dist/esm/form-control-monetary-provisioning.entry.js +5 -5
  222. package/dist/esm/form-control-monetary.entry.js +6 -6
  223. package/dist/esm/form-control-number-masked_3.entry.js +6 -6
  224. package/dist/esm/form-control-number.entry.js +5 -5
  225. package/dist/esm/form-control-radio.entry.js +3 -3
  226. package/dist/esm/{form-control-select_3.entry.js → form-control-select_2.entry.js} +7 -25
  227. package/dist/esm/{get-payment-details-CD_K6FQ3.js → get-payment-details-Dg5WRkOM.js} +1 -1
  228. package/dist/esm/{get-subaccounts-D1eF6c0B.js → get-subaccounts-CbxzednA.js} +2 -2
  229. package/dist/esm/gross-payment-chart-core.entry.js +5 -5
  230. package/dist/esm/{header-1-CPF3S2CC.js → header-1-CzkA4zNY.js} +1 -1
  231. package/dist/esm/{header-3-Cah707hu.js → header-3-eIE1RpMN.js} +1 -1
  232. package/dist/esm/hidden-input_2.entry.js +7 -7
  233. package/dist/esm/{index-DkoufM1t.js → index-DCIW8z1f.js} +0 -1
  234. package/dist/esm/index.js +1 -1
  235. package/dist/esm/{insurance-state-DRe0g_wf.js → insurance-state-By2QaBZo.js} +1 -1
  236. package/dist/esm/internal-tokenize-payment-method_7.entry.js +18 -17
  237. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +862 -31
  238. package/dist/esm/justifi-additional-statement_8.entry.js +9 -9
  239. package/dist/esm/{justifi-apple-pay_8.entry.js → justifi-apple-pay_7.entry.js} +144 -789
  240. package/dist/esm/justifi-bank-account-billing-form-simple_3.entry.js +5 -5
  241. package/dist/esm/justifi-business-details.entry.js +8 -9
  242. package/dist/esm/justifi-business-form.entry.js +13 -14
  243. package/dist/esm/justifi-checkout.entry.js +11 -10
  244. package/dist/esm/justifi-checkouts-list-filters.entry.js +4 -5
  245. package/dist/esm/justifi-checkouts-list.entry.js +11 -12
  246. package/dist/esm/justifi-details.entry.js +3 -3
  247. package/dist/esm/justifi-dispute-management-core.entry.js +1 -1
  248. package/dist/esm/justifi-dispute-management.entry.js +7 -8
  249. package/dist/esm/justifi-dispute-notification_3.entry.js +13 -14
  250. package/dist/esm/justifi-gross-payment-chart.entry.js +7 -8
  251. package/dist/esm/justifi-order-terminals.entry.js +10 -11
  252. package/dist/esm/justifi-payment-details.entry.js +9 -10
  253. package/dist/esm/justifi-payment-provisioning-core.entry.js +3 -3
  254. package/dist/esm/justifi-payment-provisioning.entry.js +7 -8
  255. package/dist/esm/justifi-payment-transactions-list.entry.js +10 -11
  256. package/dist/esm/justifi-payments-list-filters.entry.js +4 -4
  257. package/dist/esm/justifi-payments-list.entry.js +11 -12
  258. package/dist/esm/justifi-payout-details.entry.js +8 -9
  259. package/dist/esm/justifi-payout-transactions-list.entry.js +10 -11
  260. package/dist/esm/justifi-payouts-list-filters.entry.js +4 -4
  261. package/dist/esm/justifi-payouts-list.entry.js +12 -13
  262. package/dist/esm/justifi-refund-payment.entry.js +10 -11
  263. package/dist/esm/justifi-saved-payment-method.entry.js +2 -2
  264. package/dist/esm/justifi-season-interruption-insurance.entry.js +10 -9
  265. package/dist/esm/justifi-skeleton.entry.js +3 -3
  266. package/dist/esm/justifi-terminal-orders-list-filters.entry.js +5 -6
  267. package/dist/esm/justifi-terminal-orders-list.entry.js +9 -10
  268. package/dist/esm/justifi-terminals-list-filters.entry.js +4 -5
  269. package/dist/esm/justifi-terminals-list.entry.js +11 -12
  270. package/dist/esm/justifi-tokenize-payment-method.entry.js +1 -1
  271. package/dist/esm/loader.js +1 -1
  272. package/dist/esm/{justifi-owner-form_3.entry.js → owner-form-core_2.entry.js} +8 -62
  273. package/dist/esm/{package-Bx3wyDU2.js → package-CdVle3mx.js} +1 -1
  274. package/dist/esm/pagination-menu.entry.js +4 -4
  275. package/dist/esm/{parts-wtuY7MT2.js → parts-QmGrQis7.js} +1 -1
  276. package/dist/esm/payment-details-core.entry.js +15 -16
  277. package/dist/esm/payment-method-option.entry.js +2 -2
  278. package/dist/esm/{payment.service-BreQSu6J.js → payment.service-CWc5BPv-.js} +2 -2
  279. package/dist/esm/payments-list-core.entry.js +9 -10
  280. package/dist/esm/{payments-status-Dypl6WFL.js → payments-status-BdCVusHE.js} +1 -1
  281. package/dist/esm/{payments-table-CK9BRZEz.js → payments-table-9rC3BvV0.js} +3 -3
  282. package/dist/esm/payout-details-core.entry.js +10 -10
  283. package/dist/esm/{payout.service-DuqRe6oq.js → payout.service-iBVqRzf_.js} +2 -2
  284. package/dist/esm/payouts-list-core.entry.js +9 -10
  285. package/dist/esm/{payouts-status-hTCBgpLW.js → payouts-status-DhowllYh.js} +1 -1
  286. package/dist/esm/{payouts-table-Dd8IDBBX.js → payouts-table-Ci_J6mmU.js} +3 -3
  287. package/dist/esm/{schema-validations-B5sfox_4.js → schema-validations-iamDi5JD.js} +2 -15
  288. package/dist/esm/{skeleton-BmRZRW5K.js → skeleton-BX70wCwq.js} +1 -1
  289. package/dist/esm/{spinner-tU4D9iak.js → spinner-CcDNFgNu.js} +1 -1
  290. package/dist/esm/{table-Cjq1A6mO.js → table-KZoMaoUh.js} +2 -2
  291. package/dist/esm/table-filters-menu.entry.js +3 -3
  292. package/dist/esm/terminal-orders-list-core.entry.js +8 -9
  293. package/dist/esm/{terminal-orders-table-DSo5x2D7.js → terminal-orders-table-BGiWS5cM.js} +4 -4
  294. package/dist/esm/terminal-quantity-selector.entry.js +2 -2
  295. package/dist/esm/{terminal.service-CkzrYIA_.js → terminal.service-CxSKhtwB.js} +2 -2
  296. package/dist/esm/terminals-list-core.entry.js +8 -9
  297. package/dist/esm/{terminals-table-D9okETJr.js → terminals-table-DROFEdyn.js} +3 -3
  298. package/dist/esm/{utils-BX7Rjm1M.js → utils-C1PX_3uA.js} +1 -1
  299. package/dist/esm/{utils-CIaHqjQt.js → utils-CDaVtz_6.js} +1 -7
  300. package/dist/esm/webcomponents.js +1 -1
  301. package/dist/module/Analytics.js +0 -2
  302. package/dist/module/ModularCheckout.js +0 -1
  303. package/dist/module/additional-questions.js +2 -2
  304. package/dist/module/additional-statement.js +1 -1
  305. package/dist/module/apple-pay.js +120 -1
  306. package/dist/module/bank-account-billing-form-simple.js +1 -1
  307. package/dist/module/bank-account-document-inputs.js +1 -3
  308. package/dist/module/bank-account-form-inputs-canada2.js +1 -1
  309. package/dist/module/bank-account-form-inputs2.js +1 -1
  310. package/dist/module/bank-account-form.js +3 -3
  311. package/dist/module/bank-account-read-only-value2.js +1 -1
  312. package/dist/module/bank-account.js +2 -2
  313. package/dist/module/business-additional-questions-form-step.js +107 -20
  314. package/dist/module/business-additional-questions-schema.js +1 -7
  315. package/dist/module/business-address-schema.js +1 -1
  316. package/dist/module/business-bank-account-form-step.js +443 -35
  317. package/dist/module/business-core-info-form-step.js +108 -20
  318. package/dist/module/business-core-info-schema.js +1 -1
  319. package/dist/module/business-core-info.js +2 -2
  320. package/dist/module/business-documents-on-file2.js +2 -2
  321. package/dist/module/business-identity-schema.js +1 -1
  322. package/dist/module/business-owners-form-step.js +137 -23
  323. package/dist/module/business-representative-form-inputs.js +2 -2
  324. package/dist/module/business-representative-form-step.js +106 -22
  325. package/dist/module/business-representative.js +3 -3
  326. package/dist/module/business-terms-conditions-form-step.js +1 -3
  327. package/dist/module/business.service.js +0 -2
  328. package/dist/module/cancellation-policy.js +1 -1
  329. package/dist/module/card-billing-form-simple.js +1 -1
  330. package/dist/module/card-form.js +3 -3
  331. package/dist/module/card-form2.js +2 -2
  332. package/dist/module/checkout.service.js +0 -2
  333. package/dist/module/checkout.store.js +0 -4
  334. package/dist/module/checkouts-list-core2.js +2 -4
  335. package/dist/module/custom-popper2.js +2 -2
  336. package/dist/module/customer-details.js +1 -1
  337. package/dist/module/details.js +1 -1
  338. package/dist/module/dispute-management-core.js +1 -1
  339. package/dist/module/dispute-notification.js +2 -2
  340. package/dist/module/dispute-response-actions.js +0 -2
  341. package/dist/module/dispute-response-core.js +1 -1
  342. package/dist/module/dispute-response.js +1 -1
  343. package/dist/module/duplicate-charge.js +1 -1
  344. package/dist/module/electronic-evidence.js +1 -1
  345. package/dist/module/form-address-fields.js +1 -1
  346. package/dist/module/form-control-checkbox2.js +2 -2
  347. package/dist/module/form-control-date2.js +2 -2
  348. package/dist/module/form-control-file-v22.js +1 -1
  349. package/dist/module/form-control-file2.js +2 -2
  350. package/dist/module/form-control-monetary-provisioning2.js +2 -2
  351. package/dist/module/form-control-monetary2.js +2 -2
  352. package/dist/module/form-control-number-masked2.js +2 -2
  353. package/dist/module/form-control-number.js +2 -2
  354. package/dist/module/form-control-radio2.js +2 -2
  355. package/dist/module/form-control-select2.js +2 -2
  356. package/dist/module/form-control-text2.js +2 -2
  357. package/dist/module/form-control-textarea2.js +2 -2
  358. package/dist/module/get-payment-details.js +0 -2
  359. package/dist/module/get-subaccounts.js +0 -2
  360. package/dist/module/gross-payment-chart-core2.js +2 -2
  361. package/dist/module/hidden-input2.js +1 -1
  362. package/dist/module/identity-address-form.js +1 -1
  363. package/dist/module/iframe-input2.js +3 -3
  364. package/dist/module/internal-tokenize-payment-method2.js +1 -3
  365. package/dist/module/justifi-business-form.js +0 -2
  366. package/dist/module/justifi-button2.js +1 -1
  367. package/dist/module/justifi-checkout.js +40 -46
  368. package/dist/module/justifi-checkouts-list-filters.js +1 -3
  369. package/dist/module/justifi-checkouts-list.js +1 -3
  370. package/dist/module/justifi-dispute-management.js +1 -1
  371. package/dist/module/justifi-gross-payment-chart.js +0 -2
  372. package/dist/module/justifi-header2.js +1 -1
  373. package/dist/module/justifi-order-terminals.js +2 -4
  374. package/dist/module/justifi-payment-provisioning.js +49 -87
  375. package/dist/module/justifi-payment-transactions-list.js +2 -4
  376. package/dist/module/justifi-payments-list-filters.js +3 -3
  377. package/dist/module/justifi-payments-list.js +1 -3
  378. package/dist/module/justifi-payout-details.js +0 -2
  379. package/dist/module/justifi-payout-transactions-list.js +2 -4
  380. package/dist/module/justifi-payouts-list-filters.js +3 -3
  381. package/dist/module/justifi-payouts-list.js +1 -3
  382. package/dist/module/justifi-radio-list-item2.js +1 -1
  383. package/dist/module/justifi-refund-payment.js +0 -2
  384. package/dist/module/justifi-saved-payment-method.js +1 -1
  385. package/dist/module/justifi-season-interruption-insurance.js +1 -3
  386. package/dist/module/justifi-skeleton.js +1 -1
  387. package/dist/module/justifi-terminal-orders-list-filters.js +3 -5
  388. package/dist/module/justifi-terminal-orders-list.js +1 -3
  389. package/dist/module/justifi-terminals-list-filters.js +1 -3
  390. package/dist/module/justifi-terminals-list.js +1 -3
  391. package/dist/module/justifi-tokenize-payment-method.js +1 -1
  392. package/dist/module/legal-address-form-step.js +95 -18
  393. package/dist/module/legal-address-form.js +2 -2
  394. package/dist/module/modular-checkout.js +6 -46
  395. package/dist/module/owner-form-core2.js +1 -1
  396. package/dist/module/owner-form-inputs2.js +3 -3
  397. package/dist/module/owner-form.js +2 -2
  398. package/dist/module/package.js +1 -1
  399. package/dist/module/pagination-menu2.js +3 -3
  400. package/dist/module/payment-details-core2.js +9 -11
  401. package/dist/module/payment-method-option.js +1 -1
  402. package/dist/module/payment-provisioning-actions.js +1 -1
  403. package/dist/module/payment-provisioning-core.js +49 -85
  404. package/dist/module/payment-provisioning-form-buttons.js +1 -1
  405. package/dist/module/payment-provisioning-form-steps.js +49 -85
  406. package/dist/module/payment.service.js +0 -2
  407. package/dist/module/payments-list-core2.js +2 -4
  408. package/dist/module/payout-details-core2.js +4 -4
  409. package/dist/module/payout.service.js +0 -2
  410. package/dist/module/payouts-list-core2.js +2 -4
  411. package/dist/module/plaid.service.js +0 -2
  412. package/dist/module/product-or-service.js +1 -1
  413. package/dist/module/refund-policy.js +1 -1
  414. package/dist/module/save-new-payment-method.js +1 -1
  415. package/dist/module/schema-validations.js +2 -15
  416. package/dist/module/shipping-details.js +1 -1
  417. package/dist/module/summary.js +1 -1
  418. package/dist/module/table-filters-menu2.js +1 -1
  419. package/dist/module/terminal-orders-list-core2.js +2 -4
  420. package/dist/module/terminal-quantity-selector2.js +1 -1
  421. package/dist/module/terminal.service.js +0 -2
  422. package/dist/module/terminals-list-core2.js +2 -4
  423. package/dist/module/utils2.js +1 -7
  424. package/dist/types/api/Checkout.d.ts +0 -2
  425. package/dist/types/api/index.d.ts +0 -2
  426. package/dist/types/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step.d.ts +26 -2
  427. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +42 -2
  428. package/dist/types/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.d.ts +25 -2
  429. package/dist/types/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.d.ts +21 -2
  430. package/dist/types/components/business-forms/payment-provisioning/business-representative/business-representative-form-step.d.ts +37 -2
  431. package/dist/types/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step.d.ts +24 -2
  432. package/dist/types/components/business-forms/schemas/business-additional-questions-schema.d.ts +0 -6
  433. package/dist/types/components/business-forms/schemas/business-form-schema.d.ts +3 -21
  434. package/dist/types/components/business-forms/schemas/schema-validations.d.ts +0 -3
  435. package/dist/types/components/checkout/checkout.d.ts +0 -1
  436. package/dist/types/components/modular-checkout/ModularCheckout.d.ts +1 -2
  437. package/dist/types/components/modular-checkout/modular-checkout.d.ts +0 -5
  438. package/dist/types/components/tokenize-payment-method/tokenize-payment-method.d.ts +1 -1
  439. package/dist/types/components.d.ts +48 -422
  440. package/dist/types/store/checkout.store.d.ts +0 -1
  441. package/dist/webcomponents/index.esm.js +1 -1
  442. package/dist/webcomponents/p-0867547d.entry.js +1 -0
  443. package/dist/webcomponents/p-091d6a7e.entry.js +1 -0
  444. package/dist/webcomponents/p-0d4bea62.entry.js +1 -0
  445. package/dist/webcomponents/{p-86111a0a.entry.js → p-0eb7abed.entry.js} +1 -1
  446. package/dist/webcomponents/p-1634262a.entry.js +1 -0
  447. package/dist/webcomponents/p-1a4d0ad6.entry.js +1 -0
  448. package/dist/webcomponents/p-25e3cb85.entry.js +1 -0
  449. package/dist/webcomponents/{p-03c8c754.entry.js → p-278988e8.entry.js} +1 -1
  450. package/dist/webcomponents/p-3482ab40.entry.js +1 -0
  451. package/dist/webcomponents/p-3b5a9e94.entry.js +1 -0
  452. package/dist/webcomponents/p-44efe4ca.entry.js +1 -0
  453. package/dist/webcomponents/p-49a0ef9d.entry.js +1 -0
  454. package/dist/webcomponents/p-4bff1285.entry.js +1 -0
  455. package/dist/webcomponents/p-4d87be74.entry.js +1 -0
  456. package/dist/webcomponents/{p-4e71de94.entry.js → p-50308873.entry.js} +1 -1
  457. package/dist/webcomponents/p-51107c8f.entry.js +1 -0
  458. package/dist/webcomponents/p-51d7b9f7.entry.js +1 -0
  459. package/dist/webcomponents/p-5490e39c.entry.js +1 -0
  460. package/dist/webcomponents/p-5c60ba00.entry.js +1 -0
  461. package/dist/webcomponents/p-5d56a293.entry.js +1 -0
  462. package/dist/webcomponents/p-654d91d7.entry.js +1 -0
  463. package/dist/webcomponents/p-68c2ce90.entry.js +1 -0
  464. package/dist/webcomponents/{p-e6507b93.entry.js → p-69b0be17.entry.js} +1 -1
  465. package/dist/webcomponents/p-6e99cd4c.entry.js +1 -0
  466. package/dist/webcomponents/p-7e4bfba1.entry.js +1 -0
  467. package/dist/webcomponents/{p-0ce046fd.entry.js → p-8740871d.entry.js} +1 -1
  468. package/dist/webcomponents/p-87d23cf8.entry.js +1 -0
  469. package/dist/webcomponents/p-9065f077.entry.js +1 -0
  470. package/dist/webcomponents/p-908f6b79.entry.js +1 -0
  471. package/dist/webcomponents/p-93d98b07.entry.js +1 -0
  472. package/dist/webcomponents/p-94b2d6a1.entry.js +1 -0
  473. package/dist/webcomponents/p-980db13b.entry.js +1 -0
  474. package/dist/webcomponents/{p-fe862786.entry.js → p-99c1059c.entry.js} +1 -1
  475. package/dist/webcomponents/p-9c7c60f3.entry.js +1 -0
  476. package/dist/webcomponents/{p-BS7OgSQe.js → p-B09GVew-.js} +1 -1
  477. package/dist/webcomponents/p-B10U2_Sw.js +1 -0
  478. package/dist/webcomponents/{p-BVwVhXcQ.js → p-B69TWr1K.js} +1 -1
  479. package/dist/webcomponents/{p-CkN7DFFn.js → p-BDRSfgZJ.js} +1 -1
  480. package/dist/webcomponents/{p-KPmnq8xf.js → p-BIzMmHpn.js} +1 -1
  481. package/dist/webcomponents/p-BqXh8qSb.js +1 -0
  482. package/dist/webcomponents/p-C0FpWzgU.js +1 -0
  483. package/dist/webcomponents/{p-BKM7YeAB.js → p-CA9okQxT.js} +1 -1
  484. package/dist/webcomponents/{p-BNqo3kt0.js → p-CJ4viNrp.js} +1 -1
  485. package/dist/webcomponents/p-CMTxbXEr.js +1 -0
  486. package/dist/webcomponents/{p-DOLBAxYf.js → p-CYz0Hubu.js} +1 -1
  487. package/dist/webcomponents/p-CdVle3mx.js +1 -0
  488. package/dist/webcomponents/p-CiMKKjGV.js +1 -0
  489. package/dist/webcomponents/p-CjfgyxBN.js +1 -0
  490. package/dist/webcomponents/p-CjxyejYl.js +1 -0
  491. package/dist/webcomponents/p-CpP3EZBK.js +1 -0
  492. package/dist/webcomponents/p-D032AB34.js +1 -0
  493. package/dist/webcomponents/p-DCIW8z1f.js +1 -0
  494. package/dist/webcomponents/{p-D1WQG4I7.js → p-DOcRWTul.js} +1 -1
  495. package/dist/webcomponents/p-DQKNMVh7.js +1 -0
  496. package/dist/webcomponents/p-DU8dqq9U.js +1 -0
  497. package/dist/webcomponents/{p-bolTb61p.js → p-DUQxAYW4.js} +1 -1
  498. package/dist/webcomponents/{p-Dy5btfGV.js → p-DcHTywGe.js} +1 -1
  499. package/dist/webcomponents/{p-Cmb6PRFh.js → p-DircQtPA.js} +1 -1
  500. package/dist/webcomponents/{p-BxtmTjqW.js → p-Dp2W4Eq3.js} +1 -1
  501. package/dist/webcomponents/{p-BRbk6oSh.js → p-E8uzhk39.js} +1 -1
  502. package/dist/webcomponents/p-GenVH2BR.js +1 -0
  503. package/dist/webcomponents/{p-t8p0WAW4.js → p-H_emngUs.js} +1 -1
  504. package/dist/webcomponents/p-InCWAej0.js +1 -0
  505. package/dist/webcomponents/{p-BydKIJVC.js → p-KS3Bf_2D.js} +1 -1
  506. package/dist/webcomponents/{p-C01zp4xw.js → p-MFnmyvti.js} +1 -1
  507. package/dist/webcomponents/{p-wtuY7MT2.js → p-QmGrQis7.js} +1 -1
  508. package/dist/webcomponents/{p-DkOiS6Zr.js → p-Qmo430x1.js} +1 -1
  509. package/dist/webcomponents/p-VodztElu.js +1 -0
  510. package/dist/webcomponents/p-a4a647bd.entry.js +1 -0
  511. package/dist/webcomponents/p-abcbfb22.entry.js +1 -0
  512. package/dist/webcomponents/p-af29e819.entry.js +1 -0
  513. package/dist/webcomponents/p-b31bf32a.entry.js +1 -0
  514. package/dist/webcomponents/{p-3bacf834.entry.js → p-b6286d7b.entry.js} +1 -1
  515. package/dist/webcomponents/p-b8c816fe.entry.js +1 -0
  516. package/dist/webcomponents/p-bcec4201.entry.js +1 -0
  517. package/dist/webcomponents/{p-f2650bfc.entry.js → p-c3a625ec.entry.js} +4 -4
  518. package/dist/webcomponents/p-c6ee5aa7.entry.js +1 -0
  519. package/dist/webcomponents/{p-c8f40375.entry.js → p-c8bd7e0d.entry.js} +1 -1
  520. package/dist/webcomponents/p-c900ccca.entry.js +1 -0
  521. package/dist/webcomponents/{p-f528da70.entry.js → p-c9920e22.entry.js} +1 -1
  522. package/dist/webcomponents/p-ca3733e5.entry.js +1 -0
  523. package/dist/webcomponents/p-cb61af93.entry.js +1 -0
  524. package/dist/webcomponents/p-d29ce58e.entry.js +1 -0
  525. package/dist/webcomponents/p-d34f5a20.entry.js +1 -0
  526. package/dist/webcomponents/p-d41ad7a8.entry.js +1 -0
  527. package/dist/webcomponents/{p-a22d1078.entry.js → p-d79f9a54.entry.js} +1 -1
  528. package/dist/webcomponents/p-d8ec7cfc.entry.js +1 -0
  529. package/dist/webcomponents/p-dd0c456f.entry.js +1 -0
  530. package/dist/webcomponents/p-dda50611.entry.js +1 -0
  531. package/dist/webcomponents/p-df7e2530.entry.js +1 -0
  532. package/dist/webcomponents/p-e4a43e31.entry.js +1 -0
  533. package/dist/webcomponents/{p-aaed4997.entry.js → p-ea75759b.entry.js} +1 -1
  534. package/dist/webcomponents/p-edcb6de1.entry.js +1 -0
  535. package/dist/webcomponents/p-faaba66d.entry.js +1 -0
  536. package/dist/webcomponents/p-fc680b08.entry.js +1 -0
  537. package/dist/webcomponents/p-fcaaed23.entry.js +1 -0
  538. package/dist/webcomponents/{p-b8426810.entry.js → p-fdcb24aa.entry.js} +1 -1
  539. package/dist/webcomponents/p-fefc4dea.entry.js +1 -0
  540. package/dist/webcomponents/p-ff1bc3de.entry.js +1 -0
  541. package/dist/webcomponents/{p-BTzt8N0l.js → p-gcRtE71H.js} +1 -1
  542. package/dist/webcomponents/p-giyZ3C4E.js +1 -0
  543. package/dist/webcomponents/{p-C8yN3uBj.js → p-yyedWKWX.js} +1 -1
  544. package/dist/webcomponents/webcomponents.esm.js +1 -1
  545. package/package.json +13 -13
  546. package/dist/cjs/bank-account-document-form-inputs_6.cjs.entry.js +0 -133
  547. package/dist/cjs/justifi-additional-questions-form-step-core_6.cjs.entry.js +0 -875
  548. package/dist/cjs/justifi-business-representative-form-inputs.cjs.entry.js +0 -34
  549. package/dist/collection/api/GooglePay.js +0 -181
  550. package/dist/collection/api/services/google-pay.service.js +0 -240
  551. package/dist/collection/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step-core.js +0 -265
  552. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step-core.js +0 -466
  553. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step-core.js +0 -307
  554. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step-core.js +0 -380
  555. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-step-core.js +0 -270
  556. package/dist/collection/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step-core.js +0 -276
  557. package/dist/collection/components/modular-checkout/sub-components/google-pay-skeleton.js +0 -10
  558. package/dist/collection/components/modular-checkout/sub-components/google-pay.js +0 -609
  559. package/dist/collection/ui-components/google-pay-button.js +0 -251
  560. package/dist/esm/bank-account-document-form-inputs_6.entry.js +0 -126
  561. package/dist/esm/justifi-additional-questions-form-step-core_6.entry.js +0 -868
  562. package/dist/esm/justifi-business-representative-form-inputs.entry.js +0 -32
  563. package/dist/module/ApplePay.js +0 -121
  564. package/dist/module/GooglePay.js +0 -184
  565. package/dist/module/business-additional-questions-form-step-core.js +0 -167
  566. package/dist/module/business-bank-account-form-step-core.js +0 -458
  567. package/dist/module/business-core-info-form-step-core.js +0 -173
  568. package/dist/module/business-owners-form-step-core.js +0 -231
  569. package/dist/module/business-representative-form-step-core.js +0 -171
  570. package/dist/module/google-pay.js +0 -781
  571. package/dist/module/justifi-additional-questions-form-step-core.d.ts +0 -11
  572. package/dist/module/justifi-additional-questions-form-step-core.js +0 -6
  573. package/dist/module/justifi-business-bank-account-form-step-core.d.ts +0 -11
  574. package/dist/module/justifi-business-bank-account-form-step-core.js +0 -6
  575. package/dist/module/justifi-business-core-info-form-step-core.d.ts +0 -11
  576. package/dist/module/justifi-business-core-info-form-step-core.js +0 -6
  577. package/dist/module/justifi-business-owners-form-step-core.d.ts +0 -11
  578. package/dist/module/justifi-business-owners-form-step-core.js +0 -6
  579. package/dist/module/justifi-business-representative-form-step-core.d.ts +0 -11
  580. package/dist/module/justifi-business-representative-form-step-core.js +0 -6
  581. package/dist/module/justifi-google-pay.d.ts +0 -11
  582. package/dist/module/justifi-google-pay.js +0 -6
  583. package/dist/module/justifi-legal-address-form-step-core.d.ts +0 -11
  584. package/dist/module/justifi-legal-address-form-step-core.js +0 -6
  585. package/dist/module/legal-address-form-step-core.js +0 -154
  586. package/dist/types/api/GooglePay.d.ts +0 -271
  587. package/dist/types/api/services/google-pay.service.d.ts +0 -60
  588. package/dist/types/components/business-forms/payment-provisioning/additional-questions/business-additional-questions-form-step-core.d.ts +0 -38
  589. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step-core.d.ts +0 -52
  590. package/dist/types/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step-core.d.ts +0 -40
  591. package/dist/types/components/business-forms/payment-provisioning/business-owners/business-owners-form-step-core.d.ts +0 -37
  592. package/dist/types/components/business-forms/payment-provisioning/business-representative/business-representative-form-step-core.d.ts +0 -50
  593. package/dist/types/components/business-forms/payment-provisioning/legal-address-form/legal-address-form-step-core.d.ts +0 -38
  594. package/dist/types/components/modular-checkout/sub-components/google-pay-skeleton.d.ts +0 -6
  595. package/dist/types/components/modular-checkout/sub-components/google-pay.d.ts +0 -59
  596. package/dist/types/ui-components/google-pay-button.d.ts +0 -18
  597. package/dist/webcomponents/p-03930216.entry.js +0 -1
  598. package/dist/webcomponents/p-0412f491.entry.js +0 -1
  599. package/dist/webcomponents/p-04154136.entry.js +0 -1
  600. package/dist/webcomponents/p-06ce1202.entry.js +0 -1
  601. package/dist/webcomponents/p-0772719b.entry.js +0 -1
  602. package/dist/webcomponents/p-0cd1c683.entry.js +0 -1
  603. package/dist/webcomponents/p-136b29e3.entry.js +0 -1
  604. package/dist/webcomponents/p-13bdb5ed.entry.js +0 -1
  605. package/dist/webcomponents/p-16812327.entry.js +0 -1
  606. package/dist/webcomponents/p-19dabeab.entry.js +0 -1
  607. package/dist/webcomponents/p-1d04bd7a.entry.js +0 -1
  608. package/dist/webcomponents/p-1f196690.entry.js +0 -1
  609. package/dist/webcomponents/p-270bf699.entry.js +0 -1
  610. package/dist/webcomponents/p-2da4e6ca.entry.js +0 -1
  611. package/dist/webcomponents/p-2eb123a3.entry.js +0 -1
  612. package/dist/webcomponents/p-38e1ef4b.entry.js +0 -1
  613. package/dist/webcomponents/p-3ae12b98.entry.js +0 -1
  614. package/dist/webcomponents/p-3c006a15.entry.js +0 -1
  615. package/dist/webcomponents/p-404b3f02.entry.js +0 -1
  616. package/dist/webcomponents/p-42658888.entry.js +0 -1
  617. package/dist/webcomponents/p-43390a7f.entry.js +0 -1
  618. package/dist/webcomponents/p-47f6d271.entry.js +0 -1
  619. package/dist/webcomponents/p-48d1bc83.entry.js +0 -1
  620. package/dist/webcomponents/p-4f102cfd.entry.js +0 -1
  621. package/dist/webcomponents/p-5cba8448.entry.js +0 -1
  622. package/dist/webcomponents/p-7b610d9e.entry.js +0 -1
  623. package/dist/webcomponents/p-7bf6ded7.entry.js +0 -1
  624. package/dist/webcomponents/p-7dbd0618.entry.js +0 -1
  625. package/dist/webcomponents/p-88f58abe.entry.js +0 -1
  626. package/dist/webcomponents/p-8b6b7e20.entry.js +0 -1
  627. package/dist/webcomponents/p-8f4adcfd.entry.js +0 -1
  628. package/dist/webcomponents/p-8fcd277c.entry.js +0 -1
  629. package/dist/webcomponents/p-9065d67e.entry.js +0 -1
  630. package/dist/webcomponents/p-914b590d.entry.js +0 -1
  631. package/dist/webcomponents/p-9370cf0d.entry.js +0 -1
  632. package/dist/webcomponents/p-9a795f44.entry.js +0 -1
  633. package/dist/webcomponents/p-B-0a8Xqm.js +0 -1
  634. package/dist/webcomponents/p-BN1PYSFf.js +0 -1
  635. package/dist/webcomponents/p-BitGlMSc.js +0 -1
  636. package/dist/webcomponents/p-Bli6WznP.js +0 -1
  637. package/dist/webcomponents/p-Bqlcv3ZV.js +0 -1
  638. package/dist/webcomponents/p-BuCKkdLM.js +0 -1
  639. package/dist/webcomponents/p-Bx3wyDU2.js +0 -1
  640. package/dist/webcomponents/p-C-2kW6Al.js +0 -1
  641. package/dist/webcomponents/p-CQrwlULd.js +0 -1
  642. package/dist/webcomponents/p-CVhnuewz.js +0 -1
  643. package/dist/webcomponents/p-DkoufM1t.js +0 -1
  644. package/dist/webcomponents/p-a020c889.entry.js +0 -1
  645. package/dist/webcomponents/p-a0c9f0bd.entry.js +0 -1
  646. package/dist/webcomponents/p-a6e816f6.entry.js +0 -1
  647. package/dist/webcomponents/p-a87187c3.entry.js +0 -1
  648. package/dist/webcomponents/p-a9f75a9e.entry.js +0 -1
  649. package/dist/webcomponents/p-ad9307c1.entry.js +0 -1
  650. package/dist/webcomponents/p-avgjSJ1d.js +0 -1
  651. package/dist/webcomponents/p-b3f8d5d4.entry.js +0 -1
  652. package/dist/webcomponents/p-ba0762f9.entry.js +0 -1
  653. package/dist/webcomponents/p-c41191e7.entry.js +0 -1
  654. package/dist/webcomponents/p-c621e7af.entry.js +0 -1
  655. package/dist/webcomponents/p-c63b0271.entry.js +0 -1
  656. package/dist/webcomponents/p-c7MCfTgE.js +0 -1
  657. package/dist/webcomponents/p-c88babbe.entry.js +0 -1
  658. package/dist/webcomponents/p-d2935214.entry.js +0 -1
  659. package/dist/webcomponents/p-d88d228f.entry.js +0 -1
  660. package/dist/webcomponents/p-dgG_o6wN.js +0 -1
  661. package/dist/webcomponents/p-e7e5fee9.entry.js +0 -1
  662. package/dist/webcomponents/p-e9d13cca.entry.js +0 -1
  663. package/dist/webcomponents/p-ee122560.entry.js +0 -1
  664. package/dist/webcomponents/p-f4cb581f.entry.js +0 -1
  665. package/dist/webcomponents/p-nrZ9yHcl.js +0 -1
  666. package/dist/webcomponents/p-zNSPsvs3.js +0 -1
@@ -1,38 +1,159 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-DwYM91AU.js';
1
+ import { h, r as registerInstance, c as createEvent, H as Host } from './index-DwYM91AU.js';
2
2
  import { C as ComponentErrorSeverity, a as ComponentErrorCodes } from './ComponentError-Cjcsf8ku.js';
3
3
  import { m as makeGetBusiness, b as makePatchBusiness, f as makePostBankAccount, g as makePostDocumentRecord } from './payment-provisioning-actions-ONP8lDnV.js';
4
- import { B as BusinessService, a as BusinessBankAccountService, D as DocumentRecordService } from './business.service-2j91Emgq.js';
4
+ import { B as BusinessService, a as BusinessBankAccountService, D as DocumentRecordService } from './business.service-CmSijtcP.js';
5
+ import { a as additionalQuestionsSchema, c as businessCoreInfoSchemaCAN, b as businessCoreInfoSchemaUSA } from './business-additional-questions-schema-woG5-pgK.js';
6
+ import { F as FormController, c as create$3, a as create$6, b as create$8, d as create$7 } from './index.esm-IWS0494Y.js';
7
+ import { A as AdditionalQuestions, C as CountryCode, e as CoreBusinessInfo, R as Representative, f as Address } from './Business-B5rtFhtR.js';
8
+ import { C as CURRENCY_MASK, P as PHONE_MASKS } from './form-input-masks-CVaOFfrI.js';
9
+ import { G as heading2, ae as buttonSecondary, l as label, U as inputDisabled } from './parts-QmGrQis7.js';
10
+ import { S as Skeleton } from './skeleton-BX70wCwq.js';
11
+ import './event-types-CZfYo5-1.js';
12
+ import { b as businessServiceReceivedOptions, c as businessClassificationOptions } from './business-form-options-D6s5H4RI.js';
13
+ import { a as BusinessFormStep, B as BusinessFormClickActions } from './event-types-XYgDHrVL.js';
5
14
  import './config-state-C2NXATwF.js';
6
15
  import './dinero-HXpYMWUU.js';
7
- import './GooglePay-9bPcqGZ9.js';
16
+ import { E as EntityDocumentType, l as EntityDocumentStorage, m as EntityDocument } from './Refund-DDWRtCuX.js';
8
17
  import './Pagination-CLHwhyvu.js';
9
- import { C as CountryCode } from './Business-B5rtFhtR.js';
10
18
  import './Dispute-BH0Xfn-F.js';
11
- import { c as create$3, d as create$7, F as FormController } from './index.esm-IWS0494Y.js';
12
- import { A as Api } from './Api-DX-IWyBw.js';
13
- import { G as heading2 } from './parts-wtuY7MT2.js';
14
- import { a as BusinessFormStep, B as BusinessFormClickActions } from './event-types-XYgDHrVL.js';
15
- import { B as Button } from './button-DBmjN7Ra.js';
16
- import './event-types-CZfYo5-1.js';
19
+ import { z as accountNumberValidation, A as accountTypeValidation, u as identityNameValidation, B as nicknameValidation, C as bankNameValidation, D as numbersOnlyRegex, E as routingNumberValidation } from './schema-validations-iamDi5JD.js';
20
+ import { B as Button } from './button-BDwVDLs-.js';
21
+ import { c as countryLabels } from './country-config-BQ4D46Lb.js';
22
+ import { i as identitySchemaByCountry, e as addressSchemaByCountry } from './business-identity-schema-B7VTDF4j.js';
23
+ import { A as Api } from './Api-Dln8a6No.js';
17
24
  import './utils-BeQLScSm.js';
18
- import './index-B-fWxE5e.js';
19
- import './utils-CIaHqjQt.js';
20
- import './index-DkoufM1t.js';
21
25
  import './_commonjsHelpers-BFTU3MAI.js';
26
+ import './index-B-fWxE5e.js';
27
+ import './utils-CDaVtz_6.js';
28
+
29
+ class BankAccount {
30
+ constructor(data) {
31
+ this.id = data.id;
32
+ this.account_owner_name = data.account_owner_name;
33
+ this.full_name = data.full_name;
34
+ this.account_type = data.account_type;
35
+ this.account_number = data.account_number;
36
+ this.acct_last_four = data.acct_last_four;
37
+ this.account_number_last4 = data.account_number_last4;
38
+ this.routing_number = data.routing_number;
39
+ this.institution_number = data.institution_number;
40
+ this.transit_number = data.transit_number;
41
+ this.bank_name = data.bank_name;
42
+ this.country = data.country;
43
+ this.currency = data.currency;
44
+ this.nickname = data.nickname;
45
+ this.metadata = data.metadata;
46
+ this.business_id = data.business_id;
47
+ this.platform_account_id = data.platform_account_id;
48
+ this.created_at = data.created_at;
49
+ this.updated_at = data.updated_at;
50
+ }
51
+ get payload() {
52
+ return {
53
+ account_owner_name: this.account_owner_name || '',
54
+ account_type: this.account_type || '',
55
+ account_number: this.account_number || '',
56
+ routing_number: this.routing_number || '',
57
+ institution_number: this.institution_number || '',
58
+ transit_number: this.transit_number || '',
59
+ bank_name: this.bank_name || '',
60
+ nickname: this.nickname || '',
61
+ business_id: this.business_id || '',
62
+ };
63
+ }
64
+ }
65
+
66
+ const FormBlock = () => (h("div", { class: "row gap-3" }, h("div", { class: "col-12" }, h(Skeleton, { width: "25%" })), h("div", { class: "col-12" }, h(Skeleton, { width: "100%" })), h("div", { class: "col-12 d-flex gap-3" }, h(Skeleton, { width: "50%" }), h(Skeleton, { width: "50%" })), h("div", { class: "col-12 d-flex gap-3" }, h(Skeleton, { width: "65%" }), h(Skeleton, { width: "35%" }))));
67
+ const PaymentProvisioningLoading = () => {
68
+ return (h("div", { class: "row gap-5" }, h("div", { class: "col-12" }, h(Skeleton, { width: "40%", height: "40px" })), h(FormBlock, null), h(FormBlock, null), h(FormBlock, null)));
69
+ };
22
70
 
23
71
  const AdditionalQuestionsFormStep = class {
24
72
  constructor(hostRef) {
25
73
  registerInstance(this, hostRef);
26
74
  this.errorEvent = createEvent(this, "error-event");
75
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
76
+ this.formLoading = createEvent(this, "formLoading");
77
+ this.errors = {};
78
+ this.additional_questions = {};
79
+ this.recurringPayments = false;
80
+ this.isLoading = false;
81
+ this.getData = () => {
82
+ this.formLoading.emit(true);
83
+ this.isLoading = true;
84
+ this.getBusiness({
85
+ onSuccess: (response) => {
86
+ this.additional_questions = new AdditionalQuestions(response.data.additional_questions || {});
87
+ this.formController.setInitialValues(Object.assign({}, this.additional_questions));
88
+ },
89
+ onError: ({ error, code, severity }) => {
90
+ this.errorEvent.emit({
91
+ message: error,
92
+ errorCode: code,
93
+ severity: severity
94
+ });
95
+ },
96
+ final: () => {
97
+ this.formLoading.emit(false);
98
+ this.isLoading = false;
99
+ }
100
+ });
101
+ };
102
+ this.sendData = (onSuccess) => {
103
+ let submittedData;
104
+ this.formLoading.emit(true);
105
+ this.patchBusiness({
106
+ payload: this.patchPayload,
107
+ onSuccess: (response) => {
108
+ submittedData = response;
109
+ onSuccess();
110
+ },
111
+ onError: ({ error, code, severity }) => {
112
+ submittedData = error;
113
+ this.errorEvent.emit({
114
+ message: error,
115
+ errorCode: code,
116
+ severity: severity
117
+ });
118
+ },
119
+ final: () => {
120
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.additionalQuestions });
121
+ this.formLoading.emit(false);
122
+ }
123
+ });
124
+ };
125
+ this.inputHandler = (name, value) => {
126
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
127
+ this.additional_questions = new AdditionalQuestions(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
128
+ };
27
129
  }
28
130
  propChanged() {
29
131
  this.initializeApi();
30
132
  }
133
+ recurringPaymentsWatcher(newValue) {
134
+ if ((newValue === null || newValue === void 0 ? void 0 : newValue.business_recurring_payments) === 'Yes') {
135
+ this.recurringPayments = true;
136
+ }
137
+ else {
138
+ this.recurringPayments = false;
139
+ }
140
+ }
31
141
  async validateAndSubmit({ onSuccess }) {
32
- this.coreComponent.validateAndSubmit({ onSuccess });
142
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
143
+ }
144
+ get patchPayload() {
145
+ let formValues = new AdditionalQuestions(this.formController.values.getValue()).payload;
146
+ return { additional_questions: formValues };
33
147
  }
34
148
  componentWillLoad() {
35
149
  this.initializeApi();
150
+ this.formController = new FormController(additionalQuestionsSchema(this.allowOptionalFields));
151
+ }
152
+ componentDidLoad() {
153
+ this.getBusiness && this.getData();
154
+ this.formController.errors.subscribe(errors => {
155
+ this.errors = Object.assign({}, errors);
156
+ });
36
157
  }
37
158
  initializeApi() {
38
159
  if (this.authToken && this.businessId) {
@@ -56,27 +177,275 @@ const AdditionalQuestionsFormStep = class {
56
177
  }
57
178
  }
58
179
  render() {
59
- return (h("justifi-additional-questions-form-step-core", { key: 'a2e24c04b312a226b607147bcf68d6ea50a2be05', getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, ref: el => this.coreComponent = el }));
180
+ var _a, _b, _c, _d;
181
+ const additionalQuestionsDefaultValue = this.formController.getInitialValues();
182
+ if (this.isLoading) {
183
+ return h(PaymentProvisioningLoading, null);
184
+ }
185
+ return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Additional Questions"), h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-monetary-provisioning", { name: "business_revenue", label: "What is your business' estimated annual revenue from its primary business activities?", inputHandler: this.inputHandler, errorText: (_a = this.errors) === null || _a === void 0 ? void 0 : _a.business_revenue, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_revenue, maskOptions: CURRENCY_MASK.WHOLE })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "business_payment_volume", label: "What is your business' annual credit card & ACH volume anticipated to process?", inputHandler: this.inputHandler, errorText: (_b = this.errors) === null || _b === void 0 ? void 0 : _b.business_payment_volume, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_payment_volume })), h("div", { class: "col-12" }, h("form-control-select", { name: "business_when_service_received", label: "On average, how long after paying will your customers typically receive their goods or services?", inputHandler: this.inputHandler, errorText: (_c = this.errors) === null || _c === void 0 ? void 0 : _c.business_when_service_received, options: businessServiceReceivedOptions, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_when_service_received })), h("div", { class: "col-12" }, h("form-control-text", { name: "business_other_payment_details", label: "Is there anything else you would like us to know about how your customers pay the business? (optional)", inputHandler: this.inputHandler, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.business_other_payment_details, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_other_payment_details }))))));
60
186
  }
61
187
  static get watchers() { return {
62
188
  "authToken": ["propChanged"],
63
- "businessId": ["propChanged"]
189
+ "businessId": ["propChanged"],
190
+ "additional_questions": ["recurringPaymentsWatcher"]
64
191
  }; }
65
192
  };
66
193
 
194
+ const checkExistingDocs = (documents, documentType) => {
195
+ return documents.some((doc) => doc.document_type === documentType);
196
+ };
197
+ const buildCommonFieldRules = (allowOptionalFields) => {
198
+ if (allowOptionalFields) {
199
+ return {
200
+ bank_name: bankNameValidation.nullable(),
201
+ nickname: nicknameValidation.nullable(),
202
+ account_owner_name: identityNameValidation.nullable(),
203
+ account_type: accountTypeValidation.nullable(),
204
+ account_number: accountNumberValidation.nullable(),
205
+ };
206
+ }
207
+ return {
208
+ bank_name: bankNameValidation.required('Enter bank name'),
209
+ nickname: nicknameValidation.required('Enter nickname'),
210
+ account_owner_name: identityNameValidation.required('Enter account owner name'),
211
+ account_type: accountTypeValidation.required('Select account type'),
212
+ account_number: accountNumberValidation.required('Enter account number'),
213
+ };
214
+ };
215
+ const buildDocumentRules = (documents, allowOptionalFields) => {
216
+ if (allowOptionalFields) {
217
+ return {
218
+ voided_check: create$8().nullable(),
219
+ bank_statement: create$8().nullable(),
220
+ };
221
+ }
222
+ const existingVoidedCheck = checkExistingDocs(documents, EntityDocumentType.voidedCheck);
223
+ const existingBankStatement = checkExistingDocs(documents, EntityDocumentType.bankStatement);
224
+ const existingDocument = existingVoidedCheck || existingBankStatement;
225
+ const documentErrorText = 'Please upload either a voided check or a bank statement. Only one is required.';
226
+ return {
227
+ voided_check: create$8().when('bank_statement', {
228
+ is: (val) => !val && !existingDocument,
229
+ then: (schema) => schema.required(documentErrorText),
230
+ otherwise: (schema) => schema.notRequired(),
231
+ }),
232
+ bank_statement: create$8().when('voided_check', {
233
+ is: (val) => !val && !existingDocument,
234
+ then: (schema) => schema.required(documentErrorText),
235
+ otherwise: (schema) => schema.notRequired(),
236
+ }),
237
+ };
238
+ };
239
+ const buildUSARules = (allowOptionalFields) => {
240
+ if (allowOptionalFields) {
241
+ return { routing_number: routingNumberValidation.nullable() };
242
+ }
243
+ return { routing_number: routingNumberValidation.required('Enter routing number') };
244
+ };
245
+ const buildCANRules = (allowOptionalFields) => {
246
+ const institutionNumberValidation = create$6()
247
+ .length(3, 'Institution number must be 3 digits')
248
+ .matches(numbersOnlyRegex, 'Enter valid institution number');
249
+ const transitNumberValidation = create$6()
250
+ .length(5, 'Transit number must be 5 digits')
251
+ .matches(numbersOnlyRegex, 'Enter valid transit number');
252
+ if (allowOptionalFields) {
253
+ return {
254
+ institution_number: institutionNumberValidation.nullable(),
255
+ transit_number: transitNumberValidation.nullable(),
256
+ };
257
+ }
258
+ return {
259
+ institution_number: institutionNumberValidation.required('Enter institution number'),
260
+ transit_number: transitNumberValidation.required('Enter transit number'),
261
+ };
262
+ };
263
+ const businessBankAccountSchemaUSA = (documents, allowOptionalFields) => {
264
+ const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildUSARules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
265
+ return create$3().shape(shape, [['voided_check', 'bank_statement']]);
266
+ };
267
+ const businessBankAccountSchemaCAN = (documents, allowOptionalFields) => {
268
+ const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildCANRules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
269
+ return create$3().shape(shape, [['voided_check', 'bank_statement']]);
270
+ };
271
+ const bankAccountSchemaByCountry = {
272
+ [CountryCode.USA]: (allowOptionalFields, documents = []) => businessBankAccountSchemaUSA(documents, allowOptionalFields),
273
+ [CountryCode.CAN]: (allowOptionalFields, documents = []) => businessBankAccountSchemaCAN(documents, allowOptionalFields),
274
+ };
275
+
67
276
  const BusinessBankAccountFormStep = class {
68
277
  constructor(hostRef) {
69
278
  registerInstance(this, hostRef);
70
279
  this.errorEvent = createEvent(this, "error-event");
280
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
281
+ this.formLoading = createEvent(this, "formLoading");
282
+ this.errors = {};
283
+ this.bankAccount = {};
284
+ this.existingDocuments = [];
285
+ this.documentData = new EntityDocumentStorage();
286
+ this.isLoading = false;
287
+ this.isAddingNewBankAccount = true;
288
+ this.getSchema = () => {
289
+ const schema = bankAccountSchemaByCountry[this.country];
290
+ return schema(this.allowOptionalFields, this.existingDocuments);
291
+ };
292
+ this.initializeFormController = () => {
293
+ this.formController = new FormController(this.getSchema());
294
+ if (this.isAddingNewBankAccount) {
295
+ // Clear form when adding a new bank account
296
+ this.formController.setInitialValues({ business_id: this.businessId });
297
+ }
298
+ else {
299
+ this.formController.setInitialValues(Object.assign({}, this.bankAccount));
300
+ }
301
+ this.formController.errors.subscribe(errors => {
302
+ this.errors = Object.assign({}, errors);
303
+ });
304
+ };
305
+ this.inputHandler = (name, value) => {
306
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
307
+ };
308
+ this.storeFiles = (e) => {
309
+ const fileList = Array.from(e.detail.fileList);
310
+ const docType = e.detail.document_type;
311
+ const documentList = fileList.map(file => new EntityDocument({ file, document_type: docType }, this.businessId));
312
+ this.documentData[docType] = documentList;
313
+ };
314
+ this.getData = () => {
315
+ this.isLoading = true;
316
+ this.getBusiness({
317
+ onSuccess: (response) => {
318
+ if (response.data.bank_accounts.length > 0) {
319
+ // Get the latest bank account (last in array)
320
+ const bankAccounts = response.data.bank_accounts;
321
+ const latestBankAccount = bankAccounts[bankAccounts.length - 1];
322
+ this.bankAccount = new BankAccount(latestBankAccount);
323
+ this.isAddingNewBankAccount = false;
324
+ }
325
+ else {
326
+ this.bankAccount = new BankAccount({});
327
+ this.bankAccount.business_id = this.businessId;
328
+ }
329
+ this.existingDocuments = response.data.documents;
330
+ },
331
+ onError: ({ error, code, severity }) => {
332
+ this.errorEvent.emit({
333
+ message: error,
334
+ errorCode: code,
335
+ severity: severity
336
+ });
337
+ },
338
+ final: () => {
339
+ this.initializeFormController();
340
+ this.isLoading = false;
341
+ }
342
+ });
343
+ };
344
+ this.handleChangeBankAccount = () => {
345
+ this.isAddingNewBankAccount = true;
346
+ this.documentData = new EntityDocumentStorage();
347
+ this.initializeFormController();
348
+ };
349
+ this.handleCancel = () => {
350
+ this.isAddingNewBankAccount = false;
351
+ this.documentData = new EntityDocumentStorage();
352
+ this.initializeFormController();
353
+ };
354
+ this.handleSaveBankAccount = async () => {
355
+ this.formController.validateAndSubmit(() => {
356
+ this.sendData(() => {
357
+ // Success callback - form will refresh automatically
358
+ });
359
+ });
360
+ };
361
+ this.postDocumentRecordData = async (docData) => {
362
+ this.isLoading = true;
363
+ const payload = docData.record_data;
364
+ return new Promise((resolve) => {
365
+ this.postDocumentRecord({
366
+ payload,
367
+ onSuccess: (response) => {
368
+ resolve(this.handleDocRecordResponse(docData, response));
369
+ },
370
+ onError: ({ error, code, severity }) => {
371
+ this.errorEvent.emit({
372
+ message: error,
373
+ errorCode: code,
374
+ severity: severity
375
+ });
376
+ resolve(false);
377
+ },
378
+ });
379
+ });
380
+ };
381
+ this.handleDocRecordResponse = (docData, response) => {
382
+ if (response.error) {
383
+ this.errorEvent.emit({
384
+ errorCode: ComponentErrorCodes.POST_ERROR,
385
+ message: response.error.message,
386
+ severity: ComponentErrorSeverity.ERROR,
387
+ data: response.error,
388
+ });
389
+ return false;
390
+ }
391
+ else {
392
+ docData.setPresignedUrl(response.data.presigned_url);
393
+ return true;
394
+ }
395
+ };
396
+ this.uploadDocument = async (docData) => {
397
+ if (!docData.presigned_url) {
398
+ throw new Error('Presigned URL is not set');
399
+ }
400
+ const fileData = await docData.getFileData();
401
+ const response = await fetch(docData.presigned_url, {
402
+ method: 'PUT',
403
+ body: fileData
404
+ });
405
+ return this.handleUploadResponse(response);
406
+ };
407
+ this.handleUploadResponse = (response) => {
408
+ if (response.error) {
409
+ this.errorEvent.emit({
410
+ errorCode: ComponentErrorCodes.POST_ERROR,
411
+ message: response.error.message,
412
+ severity: ComponentErrorSeverity.ERROR,
413
+ data: response.error,
414
+ });
415
+ return false;
416
+ }
417
+ else {
418
+ return true;
419
+ }
420
+ };
71
421
  }
72
422
  propChanged() {
73
423
  this.initializeApi();
74
424
  }
425
+ watchHandler(newValue) {
426
+ this.formLoading.emit(newValue);
427
+ }
75
428
  async validateAndSubmit({ onSuccess }) {
76
- this.coreComponent.validateAndSubmit({ onSuccess });
429
+ if (this.existingBankAccount && !this.isAddingNewBankAccount) {
430
+ // If a bank account already exists and we're not adding a new one, skip bank account posting; proceed directly to document upload
431
+ this.sendData(onSuccess);
432
+ }
433
+ else {
434
+ // If bank account is new, validate form inputs (bank account fields), then proceed
435
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
436
+ }
77
437
  }
78
438
  componentWillLoad() {
79
439
  this.initializeApi();
440
+ if (this.getBusiness) {
441
+ this.getData();
442
+ }
443
+ this.formController = new FormController(this.getSchema());
444
+ }
445
+ componentDidLoad() {
446
+ this.formController.errors.subscribe(errors => {
447
+ this.errors = Object.assign({}, errors);
448
+ });
80
449
  }
81
450
  initializeApi() {
82
451
  if (this.authToken && this.businessId) {
@@ -102,12 +471,132 @@ const BusinessBankAccountFormStep = class {
102
471
  });
103
472
  }
104
473
  }
474
+ get postPayload() {
475
+ const values = this.formController.values.getValue();
476
+ const formValues = new BankAccount(values).payload;
477
+ return formValues;
478
+ }
479
+ get existingBankAccount() {
480
+ var _a;
481
+ return !!((_a = this.bankAccount) === null || _a === void 0 ? void 0 : _a.id);
482
+ }
483
+ get showReadOnlyView() {
484
+ return this.existingBankAccount && !this.isAddingNewBankAccount;
485
+ }
486
+ async sendData(onSuccess) {
487
+ try {
488
+ // Post bank account data if we're adding a new bank account
489
+ const bankAccountPosted = this.isAddingNewBankAccount ? await this.postBankAccountData() : true;
490
+ if (!bankAccountPosted) {
491
+ return;
492
+ }
493
+ // Post documents only after bank account was successfully created
494
+ const documentsUploaded = await this.postBusinessDocuments();
495
+ if (!documentsUploaded) {
496
+ return;
497
+ }
498
+ // Refresh bank account data after successful save
499
+ if (this.isAddingNewBankAccount) {
500
+ this.isAddingNewBankAccount = false;
501
+ await this.refreshBankAccountData();
502
+ }
503
+ onSuccess();
504
+ }
505
+ catch (error) {
506
+ this.errorEvent.emit({
507
+ message: error,
508
+ errorCode: ComponentErrorCodes.POST_ERROR,
509
+ severity: ComponentErrorSeverity.ERROR
510
+ });
511
+ }
512
+ }
513
+ async postBankAccountData() {
514
+ let submittedData;
515
+ this.isLoading = true;
516
+ return new Promise((resolve) => {
517
+ let success = false;
518
+ this.postBankAccount({
519
+ payload: this.postPayload,
520
+ onSuccess: (response) => {
521
+ submittedData = response;
522
+ success = true;
523
+ },
524
+ onError: ({ error, code, severity }) => {
525
+ success = false;
526
+ this.errorEvent.emit({
527
+ message: error,
528
+ errorCode: code,
529
+ severity: severity
530
+ });
531
+ },
532
+ final: () => {
533
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.bankAccount });
534
+ this.isLoading = false;
535
+ resolve(success);
536
+ }
537
+ });
538
+ });
539
+ }
540
+ async refreshBankAccountData() {
541
+ return new Promise((resolve) => {
542
+ this.isLoading = true;
543
+ this.getBusiness({
544
+ onSuccess: (response) => {
545
+ if (response.data.bank_accounts.length > 0) {
546
+ // Get the latest bank account (last in array)
547
+ const bankAccounts = response.data.bank_accounts;
548
+ const latestBankAccount = bankAccounts[bankAccounts.length - 1];
549
+ this.bankAccount = new BankAccount(latestBankAccount);
550
+ }
551
+ this.existingDocuments = response.data.documents;
552
+ this.initializeFormController();
553
+ },
554
+ onError: ({ error, code, severity }) => {
555
+ this.errorEvent.emit({
556
+ message: error,
557
+ errorCode: code,
558
+ severity: severity
559
+ });
560
+ },
561
+ final: () => {
562
+ this.isLoading = false;
563
+ resolve();
564
+ }
565
+ });
566
+ });
567
+ }
568
+ async postBusinessDocuments() {
569
+ this.isLoading = true;
570
+ try {
571
+ const docArray = Object.values(this.documentData).flat();
572
+ if (!docArray.length) {
573
+ return true;
574
+ }
575
+ const recordsCreated = await Promise.all(docArray.map((docData) => this.postDocumentRecordData(docData))); // Create document records
576
+ if (recordsCreated.includes(false)) {
577
+ return false;
578
+ } // Exit if document record creation fails
579
+ const uploadsCompleted = await Promise.all(docArray.map((docData) => this.uploadDocument(docData))); // Upload documents to AWS presigned URLs
580
+ if (uploadsCompleted.includes(false)) {
581
+ return false;
582
+ } // Exit if any upload fails
583
+ return true;
584
+ }
585
+ finally {
586
+ this.isLoading = false;
587
+ }
588
+ }
105
589
  render() {
106
- return (h("justifi-business-bank-account-form-step-core", { key: 'f4e4c31d04884510d5b432b7cced5eea2b618bcd', businessId: this.businessId, getBusiness: this.getBusiness, postBankAccount: this.postBankAccount, postDocumentRecord: this.postDocumentRecord, allowOptionalFields: this.allowOptionalFields, country: this.country, ref: el => this.coreComponent = el }));
590
+ const bankAccountDefaultValue = this.formController.getInitialValues();
591
+ if (this.isLoading) {
592
+ return h(PaymentProvisioningLoading, null);
593
+ }
594
+ return (h("form", null, h("fieldset", { class: "mb-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Bank Account Info"), h("form-control-tooltip", { helpText: "This direct deposit account is the designated bank account where incoming funds will be deposited. The name of this account must match the registered business name exactly. We are not able to accept personal accounts unless your business is a registered sole proprietorship." })), h("hr", { class: "mt-2" }), this.country === CountryCode.CAN ? (h("bank-account-form-inputs-canada", { defaultValue: bankAccountDefaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: this.showReadOnlyView })) : (h("bank-account-form-inputs", { defaultValue: bankAccountDefaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: this.showReadOnlyView })), this.showReadOnlyView && (h("div", { class: "mt-3" }, h(Button, { variant: "secondary", type: "button", onClick: this.handleChangeBankAccount, disabled: this.isLoading, part: buttonSecondary }, "Change Bank Account"))), (!this.existingBankAccount || this.isAddingNewBankAccount) && (h("div", { class: "mt-3 d-flex gap-2" }, this.isAddingNewBankAccount && (h(Button, { variant: "secondary", type: "button", onClick: this.handleCancel, disabled: this.isLoading, part: buttonSecondary }, "Cancel")), h(Button, { variant: "primary", type: "button", onClick: this.handleSaveBankAccount, disabled: this.isLoading, isLoading: this.isLoading }, "Save Bank Account")))), h("fieldset", { class: "mt-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Document Uploads"), h("form-control-tooltip", { helpText: "One document (voided check or bank statement) is required for underwriting purposes. It needs to visibly show the name tied to the account and the account number. Various file formats such as PDF, DOC, DOCX, JPEG are accepted. Multiple files can be uploaded for each document category." })), h("hr", { class: "mt-2" }), h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading }), h("bank-account-document-form-inputs", { inputHandler: this.inputHandler, errors: this.errors, storeFiles: this.storeFiles }))));
107
595
  }
108
596
  static get watchers() { return {
109
597
  "authToken": ["propChanged"],
110
- "businessId": ["propChanged"]
598
+ "businessId": ["propChanged"],
599
+ "isLoading": ["watchHandler"]
111
600
  }; }
112
601
  };
113
602
 
@@ -115,15 +604,86 @@ const BusinessCoreInfoFormStep = class {
115
604
  constructor(hostRef) {
116
605
  registerInstance(this, hostRef);
117
606
  this.errorEvent = createEvent(this, "error-event");
607
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
608
+ this.formLoading = createEvent(this, "formLoading");
609
+ this.errors = {};
610
+ this.coreInfo = {};
611
+ this.isLoading = false;
612
+ this.isEditingTaxId = false;
613
+ this.getData = () => {
614
+ if (!this.getBusiness)
615
+ return;
616
+ this.formLoading.emit(true);
617
+ this.isLoading = true;
618
+ this.getBusiness({
619
+ onSuccess: (response) => {
620
+ this.coreInfo = new CoreBusinessInfo(response.data);
621
+ this.formController.setInitialValues(Object.assign({}, this.coreInfo));
622
+ },
623
+ onError: ({ error, code, severity }) => {
624
+ this.errorEvent.emit({
625
+ message: error,
626
+ errorCode: code,
627
+ severity: severity
628
+ });
629
+ },
630
+ final: () => {
631
+ this.formLoading.emit(false);
632
+ this.isLoading = false;
633
+ }
634
+ });
635
+ };
636
+ this.sendData = (onSuccess) => {
637
+ let submittedData;
638
+ this.formLoading.emit(true);
639
+ this.patchBusiness({
640
+ payload: this.patchPayload,
641
+ onSuccess: (response) => {
642
+ submittedData = response;
643
+ onSuccess();
644
+ // after successful patch, revert back to read-only for tax id
645
+ this.isEditingTaxId = false;
646
+ },
647
+ onError: ({ error, code, severity }) => {
648
+ submittedData = error;
649
+ this.errorEvent.emit({
650
+ message: error,
651
+ errorCode: code,
652
+ severity: severity
653
+ });
654
+ },
655
+ final: () => {
656
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.businessInfo });
657
+ this.formLoading.emit(false);
658
+ }
659
+ });
660
+ };
661
+ this.inputHandler = (name, value) => {
662
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
663
+ };
118
664
  }
119
665
  propChanged() {
120
666
  this.initializeApi();
121
667
  }
122
668
  async validateAndSubmit({ onSuccess }) {
123
- this.coreComponent.validateAndSubmit({ onSuccess });
669
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
670
+ }
671
+ get patchPayload() {
672
+ let formValues = new CoreBusinessInfo(this.formController.values.getValue()).payload;
673
+ return formValues;
124
674
  }
125
675
  componentWillLoad() {
126
676
  this.initializeApi();
677
+ const schema = (this.country === CountryCode.CAN)
678
+ ? businessCoreInfoSchemaCAN(this.allowOptionalFields)
679
+ : businessCoreInfoSchemaUSA(this.allowOptionalFields);
680
+ this.formController = new FormController(schema);
681
+ this.getData();
682
+ }
683
+ componentDidLoad() {
684
+ this.formController.errors.subscribe(errors => {
685
+ this.errors = Object.assign({}, errors);
686
+ });
127
687
  }
128
688
  initializeApi() {
129
689
  if (this.authToken && this.businessId) {
@@ -147,7 +707,16 @@ const BusinessCoreInfoFormStep = class {
147
707
  }
148
708
  }
149
709
  render() {
150
- return (h("justifi-business-core-info-form-step-core", { key: '1aeaeae1d432883c1e242c066881cabc37097032', businessId: this.businessId, getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, country: this.country, ref: el => this.coreComponent = el }));
710
+ var _a, _b;
711
+ const coreInfoDefaultValue = this.formController.getInitialValues();
712
+ if (this.isLoading) {
713
+ return h(PaymentProvisioningLoading, null);
714
+ }
715
+ return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Business Information")), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12" }, h("form-control-text", { name: "legal_name", label: "Business Name", defaultValue: coreInfoDefaultValue.legal_name, errorText: this.errors.legal_name, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (don't use acronyms or abbreviations unless you registered that way)." })), h("div", { class: "col-12" }, h("form-control-text", { name: "doing_business_as", label: "Doing Business As (DBA)", defaultValue: coreInfoDefaultValue.doing_business_as, errorText: this.errors.doing_business_as, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (leave blank if you don't have a registered DBA/trade name)" })), h("div", { class: "col-12 col-md-8" }, h("form-control-select", { name: "classification", label: "Business Classification", options: businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-4" }, h("form-control-date", { name: "date_of_incorporation", label: "Date of Registration", defaultValue: coreInfoDefaultValue.date_of_incorporation, errorText: this.errors.date_of_incorporation, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (h("form-control-number-masked", { name: "tax_id", label: countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryLabels[this.country].taxIdHelpText })) : (h("div", null, h("label", { class: "form-label", part: label }, countryLabels[this.country].taxIdLabel), h("div", { class: "input-group mb-3" }, h("input", { type: "text", class: "form-control", part: inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), h("button", { class: "btn btn-secondary", type: "button", part: buttonSecondary, onClick: () => {
716
+ this.isEditingTaxId = true;
717
+ // Clear last4-equivalent and current value if any future conditional validation depends on it
718
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { tax_id: '', tax_id_last4: null }));
719
+ } }, "Change"))))), h("div", { class: "col-12" }, h("form-control-text", { name: "website_url", label: "Business Website URL", defaultValue: coreInfoDefaultValue.website_url, errorText: this.errors.website_url, inputHandler: this.inputHandler, helpText: "Don't have a live website? You can use your social media business page, app store link, or staging site URL." })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "email", label: "Business Email Address", defaultValue: coreInfoDefaultValue.email, errorText: this.errors.email, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-6" }, h("form-control-number-masked", { name: "phone", label: "Business Phone Number", defaultValue: coreInfoDefaultValue.phone, errorText: this.errors.phone, inputHandler: this.inputHandler, mask: PHONE_MASKS.US }))))));
151
720
  }
152
721
  static get watchers() { return {
153
722
  "authToken": ["propChanged"],
@@ -158,16 +727,105 @@ const BusinessCoreInfoFormStep = class {
158
727
  const BusinessOwnersFormStep = class {
159
728
  constructor(hostRef) {
160
729
  registerInstance(this, hostRef);
730
+ this.clickEvent = createEvent(this, "click-event");
731
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
161
732
  this.errorEvent = createEvent(this, "error-event");
733
+ this.formLoading = createEvent(this, "formLoading");
734
+ this.ownersPayload = [];
735
+ this.refs = [];
736
+ this.isLoading = false;
737
+ this.matchRef = (ref, ownerId) => {
738
+ const ownerIndex = this.refs.findIndex(ref => ref === ownerId);
739
+ if (ownerIndex !== -1) {
740
+ this.refs[ownerIndex] = ref;
741
+ }
742
+ };
743
+ this.getData = () => {
744
+ this.formLoading.emit(true);
745
+ this.isLoading = true;
746
+ this.getBusiness({
747
+ onSuccess: (response) => {
748
+ if (response.data.owners.length) {
749
+ this.ownersPayload = response.data.owners.map(owner => ({ id: owner.id }));
750
+ }
751
+ else {
752
+ this.addOwnerForm();
753
+ }
754
+ },
755
+ onError: ({ error, code, severity }) => {
756
+ this.errorEvent.emit({
757
+ message: error,
758
+ errorCode: code,
759
+ severity: severity
760
+ });
761
+ },
762
+ final: () => {
763
+ this.formLoading.emit(false);
764
+ this.isLoading = false;
765
+ this.manageRefs();
766
+ }
767
+ });
768
+ };
769
+ this.sendData = async (onSuccess) => {
770
+ let submittedData;
771
+ this.formLoading.emit(true);
772
+ this.patchBusiness({
773
+ payload: { owners: this.ownersPayload },
774
+ onSuccess: (response) => {
775
+ submittedData = response;
776
+ onSuccess();
777
+ },
778
+ onError: ({ error, code, severity }) => {
779
+ submittedData = error;
780
+ this.errorEvent.emit({
781
+ message: error,
782
+ errorCode: code,
783
+ severity: severity
784
+ });
785
+ },
786
+ final: () => {
787
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.owners });
788
+ this.formLoading.emit(false);
789
+ }
790
+ });
791
+ };
792
+ this.addOwnerForm = (fireClick) => {
793
+ this.newFormOpen = true;
794
+ this.ownersPayload = [...this.ownersPayload, { id: '' }];
795
+ fireClick && this.clickEvent.emit({ name: BusinessFormClickActions.addOwnerForm });
796
+ };
797
+ this.removeOwnerForm = (id) => {
798
+ this.ownersPayload = this.ownersPayload.filter(owner => owner.id !== id);
799
+ this.newFormOpen && (this.newFormOpen = false);
800
+ };
162
801
  }
163
802
  propChanged() {
164
803
  this.initializeApi();
165
804
  }
805
+ get showAddOwnerButton() {
806
+ return this.ownersPayload.length < 4 && !this.newFormOpen;
807
+ }
808
+ manageRefs() {
809
+ this.refs = this.ownersPayload.map((owner) => { return owner.id; });
810
+ }
166
811
  async validateAndSubmit({ onSuccess }) {
167
- this.coreComponent.validateAndSubmit({ onSuccess });
812
+ const formValidations = this.refs.map(ref => ref.validate());
813
+ const formsValid = (await Promise.all(formValidations)).every(result => result);
814
+ if (!formsValid) {
815
+ return;
816
+ }
817
+ const formSubmissions = this.refs.map(ref => ref.submit());
818
+ const submissionsValid = (await Promise.all(formSubmissions)).every(result => result);
819
+ if (!submissionsValid) {
820
+ return;
821
+ }
822
+ this.sendData(onSuccess);
168
823
  }
169
824
  componentWillLoad() {
170
825
  this.initializeApi();
826
+ if (this.getBusiness) {
827
+ this.getData();
828
+ }
171
829
  }
172
830
  initializeApi() {
173
831
  if (this.authToken && this.businessId) {
@@ -190,12 +848,31 @@ const BusinessOwnersFormStep = class {
190
848
  });
191
849
  }
192
850
  }
851
+ ownersWatcher() {
852
+ this.manageRefs();
853
+ }
854
+ handleOwnerSubmit(event) {
855
+ const submittedOwner = event.detail;
856
+ const updatedOwners = this.ownersPayload.map(owner => owner.id === submittedOwner.id ? submittedOwner : owner);
857
+ if (!updatedOwners.includes(submittedOwner)) {
858
+ const newOwnerIndex = this.ownersPayload.findIndex(owner => !owner.id);
859
+ updatedOwners[newOwnerIndex] = submittedOwner;
860
+ this.newFormOpen && (this.newFormOpen = false);
861
+ }
862
+ this.ownersPayload = updatedOwners;
863
+ }
193
864
  render() {
194
- return (h(Host, { key: '510b3ece6194fa6c34c04ba4d87718490631b69d' }, h("justifi-business-owners-form-step-core", { key: '01b034456e183d39b6adc4b9f9d36e289483eb9b', authToken: this.authToken, businessId: this.businessId, getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, country: this.country, ref: (el) => this.coreComponent = el })));
865
+ if (this.isLoading) {
866
+ return (h(Host, null, h(PaymentProvisioningLoading, null)));
867
+ }
868
+ return (h(Host, null, h("div", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Owners"), h("form-control-tooltip", { helpText: "For partnerships, LLCs or privately held corporations, the business is required to apply with all individuals with 25% or more ownership to the application. For charities and registered non-profits, the business is required to apply with 1 individual with substantial control over the entity, such as a board member or director." })), h("hr", { class: "mt-2" }), h("div", { class: 'row gy-3' }, this.ownersPayload.map((owner) => {
869
+ return (h("justifi-owner-form", { key: owner.id, authToken: this.authToken, businessId: this.businessId, ownerId: owner.id, removeOwner: this.removeOwnerForm, newFormOpen: this.newFormOpen, ownersLength: this.ownersPayload.length, country: this.country, allowOptionalFields: this.allowOptionalFields, ref: (ref) => this.matchRef(ref, owner.id) }));
870
+ })), h("div", { class: 'd-flex justify-content-start' }, h("div", { class: 'gap-2' }, h(Button, { variant: 'primary', onClick: () => this.addOwnerForm(true), hidden: !this.showAddOwnerButton }, "Add Owner"))))));
195
871
  }
196
872
  static get watchers() { return {
197
873
  "authToken": ["propChanged"],
198
- "businessId": ["propChanged"]
874
+ "businessId": ["propChanged"],
875
+ "ownersPayload": ["ownersWatcher"]
199
876
  }; }
200
877
  };
201
878
 
@@ -203,15 +880,69 @@ const BusinessRepresentativeFormStep = class {
203
880
  constructor(hostRef) {
204
881
  registerInstance(this, hostRef);
205
882
  this.errorEvent = createEvent(this, "error-event");
883
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
884
+ this.formLoading = createEvent(this, "formLoading");
885
+ this.errors = {};
886
+ this.representative = {};
887
+ this.isLoading = false;
888
+ this.getData = () => {
889
+ if (!this.getBusiness || !this.formController)
890
+ return;
891
+ this.formLoading.emit(true);
892
+ this.isLoading = true;
893
+ this.getBusiness({
894
+ onSuccess: (response) => {
895
+ this.representative = new Representative(response.data.representative || {});
896
+ this.representative.address.country = this.country;
897
+ this.formController.setInitialValues(Object.assign({}, this.representative));
898
+ },
899
+ onError: ({ error, code, severity }) => {
900
+ this.errorEvent.emit({
901
+ message: error,
902
+ errorCode: code,
903
+ severity: severity
904
+ });
905
+ },
906
+ final: () => {
907
+ this.formLoading.emit(false);
908
+ this.isLoading = false;
909
+ }
910
+ });
911
+ };
912
+ this.sendData = (onSuccess) => {
913
+ let submittedData;
914
+ this.formLoading.emit(true);
915
+ this.patchBusiness({
916
+ payload: this.patchPayload,
917
+ onSuccess: (response) => {
918
+ submittedData = response;
919
+ onSuccess();
920
+ },
921
+ onError: ({ error, code, severity }) => {
922
+ submittedData = error;
923
+ this.errorEvent.emit({
924
+ message: error,
925
+ errorCode: code,
926
+ severity: severity
927
+ });
928
+ },
929
+ final: () => {
930
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.representative });
931
+ this.formLoading.emit(false);
932
+ }
933
+ });
934
+ };
206
935
  }
207
936
  propChanged() {
208
937
  this.initializeApi();
938
+ this.getData();
209
939
  }
210
940
  async validateAndSubmit({ onSuccess }) {
211
- this.coreComponent.validateAndSubmit({ onSuccess });
941
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
212
942
  }
213
943
  componentWillLoad() {
214
944
  this.initializeApi();
945
+ this.initializeForm();
215
946
  }
216
947
  initializeApi() {
217
948
  if (this.authToken && this.businessId) {
@@ -234,8 +965,35 @@ const BusinessRepresentativeFormStep = class {
234
965
  });
235
966
  }
236
967
  }
968
+ initializeForm() {
969
+ const schemaFactory = identitySchemaByCountry[this.country];
970
+ if (!schemaFactory) {
971
+ this.errorEvent.emit({
972
+ message: 'Missing schema for selected country',
973
+ errorCode: ComponentErrorCodes.MISSING_PROPS,
974
+ severity: ComponentErrorSeverity.ERROR,
975
+ });
976
+ return;
977
+ }
978
+ this.formController = new FormController(schemaFactory('representative', this.allowOptionalFields));
979
+ this.getData();
980
+ }
981
+ componentDidLoad() {
982
+ if (!this.formController)
983
+ return;
984
+ this.formController.errors.subscribe(errors => {
985
+ this.errors = Object.assign({}, errors);
986
+ });
987
+ }
988
+ get patchPayload() {
989
+ let formValues = new Representative(this.formController.values.getValue()).payload;
990
+ return { representative: formValues };
991
+ }
237
992
  render() {
238
- return (h("justifi-business-representative-form-step-core", { key: '93ebeaecfc5eecc8a4c74cbc30760d35d8120183', getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, country: this.country, ref: el => this.coreComponent = el }));
993
+ if (!this.formController || this.isLoading) {
994
+ return (h(PaymentProvisioningLoading, null));
995
+ }
996
+ return (h("justifi-business-representative-form-inputs", { representativeDefaultValue: this.formController.getInitialValues(), errors: this.errors, formController: this.formController, country: this.country }));
239
997
  }
240
998
  static get watchers() { return {
241
999
  "authToken": ["propChanged"],
@@ -363,7 +1121,7 @@ const BusinessTermsConditionsFormStep = class {
363
1121
  return (h("a", { href: "https://justifi.tech/merchant-agreement/", target: "_blank", rel: "noopener noreferrer" }, "merchant agreement"));
364
1122
  }
365
1123
  render() {
366
- return (h("form", { key: '6fbccc271d16cbb87d8845b06b58fd461e18f770' }, h("fieldset", { key: 'ce5240753aefdb4aa92aa3ba5af4741466702ae6' }, h("legend", { key: '01a3a99f6d9dfe45ae12eb2a603ebc70a25747be', part: heading2 }, "Terms and Conditions"), h("hr", { key: 'b0209b2df034353f663cf4dde25fee51e2906dc4' }), h("div", { key: '1ed270526bc1f6d24d81c485ea6e9459607bac3e' }, h("p", { key: '8c98f939d4db12cad7169debc71fd0ad652cc724' }, "Please read and accept the ", this.merchantAgreementLink, " to submit your provisioning request.")), h("br", { key: '021ffcc28e65e59d8fb81a8a2507cac1ce0d448f' }), h("div", { key: 'e6181b2a5ad6b01be123962bf17282cb1f97fd30', class: "row-gy-3" }, h("div", { key: '82acd8dcfed625e051b93bb8845fb9d11b5e26ce', class: "col-12" }, h("form-control-checkbox", { key: 'c246a348366354dce60ec4dc00e3a4791281a584', name: "accepted", label: "I agree to the terms and conditions", inputHandler: this.inputHandler, errorText: this.errors.accepted, disabled: this.acceptedTermsBefore, helpText: this.formHelperText, checked: this.acceptedTerms }))))));
1124
+ return (h("form", { key: '721f3c171358f9450a8b460dafac3c9f7f27727b' }, h("fieldset", { key: 'e151086c528d5e359e4ecd2c33feb01c5571a6ca' }, h("legend", { key: 'ff4ba3bead3ec50cf9736d6a864740e542f42b2d', part: heading2 }, "Terms and Conditions"), h("hr", { key: 'c076bfe230bafbe8db7280f5f708de893c970bf2' }), h("div", { key: 'd2a1e0f4e15077d07fe7de2cb847252990b44bde' }, h("p", { key: '559c4c6d6e27b5fb800984e87097fe080482462d' }, "Please read and accept the ", this.merchantAgreementLink, " to submit your provisioning request.")), h("br", { key: '014b3a7be231c81bd23c35ab212d7ac4e4c1d107' }), h("div", { key: '3ef38ecffd678c36c564836434f0a0da341116af', class: "row-gy-3" }, h("div", { key: 'e715723e19a212628d29fec46ca494b7080dac66', class: "col-12" }, h("form-control-checkbox", { key: '6054f012fa3abacf6b9f6ffe7d7e88444d8a1066', name: "accepted", label: "I agree to the terms and conditions", inputHandler: this.inputHandler, errorText: this.errors.accepted, disabled: this.acceptedTermsBefore, helpText: this.formHelperText, checked: this.acceptedTerms }))))));
367
1125
  }
368
1126
  };
369
1127
 
@@ -371,15 +1129,83 @@ const LegalAddressFormStep = class {
371
1129
  constructor(hostRef) {
372
1130
  registerInstance(this, hostRef);
373
1131
  this.errorEvent = createEvent(this, "error-event");
1132
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event");
1133
+ this.formLoading = createEvent(this, "formLoading");
1134
+ this.errors = {};
1135
+ this.legal_address = {};
1136
+ this.isLoading = false;
1137
+ this.getData = () => {
1138
+ if (!this.getBusiness)
1139
+ return;
1140
+ this.formLoading.emit(true);
1141
+ this.isLoading = true;
1142
+ this.getBusiness({
1143
+ onSuccess: (response) => {
1144
+ const business = response.data || {};
1145
+ const address = new Address(business.legal_address || {});
1146
+ this.legal_address = Object.assign(Object.assign({}, address), { country: this.country });
1147
+ this.formController.setInitialValues(Object.assign({}, this.legal_address));
1148
+ },
1149
+ onError: ({ error, code, severity }) => {
1150
+ this.errorEvent.emit({
1151
+ message: error,
1152
+ errorCode: code,
1153
+ severity: severity
1154
+ });
1155
+ },
1156
+ final: () => {
1157
+ this.formLoading.emit(false);
1158
+ this.isLoading = false;
1159
+ }
1160
+ });
1161
+ };
1162
+ this.sendData = (onSuccess) => {
1163
+ let submittedData;
1164
+ this.formLoading.emit(true);
1165
+ this.patchBusiness({
1166
+ payload: this.patchPayload,
1167
+ onSuccess: (response) => {
1168
+ submittedData = response;
1169
+ onSuccess();
1170
+ },
1171
+ onError: ({ error, code, severity }) => {
1172
+ submittedData = error;
1173
+ this.errorEvent.emit({
1174
+ message: error,
1175
+ errorCode: code,
1176
+ severity: severity
1177
+ });
1178
+ },
1179
+ final: () => {
1180
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: BusinessFormStep.legalAddress });
1181
+ this.formLoading.emit(false);
1182
+ }
1183
+ });
1184
+ };
1185
+ this.inputHandler = (name, value) => {
1186
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
1187
+ };
374
1188
  }
375
1189
  propChanged() {
376
1190
  this.initializeApi();
377
1191
  }
378
1192
  async validateAndSubmit({ onSuccess }) {
379
- this.coreComponent.validateAndSubmit({ onSuccess });
1193
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
1194
+ }
1195
+ get patchPayload() {
1196
+ let formValues = new Address(this.formController.values.getValue()).payload;
1197
+ return { legal_address: formValues };
380
1198
  }
381
1199
  componentWillLoad() {
382
1200
  this.initializeApi();
1201
+ const schemaFactory = addressSchemaByCountry[this.country];
1202
+ this.formController = new FormController(schemaFactory(this.allowOptionalFields));
1203
+ this.getData();
1204
+ }
1205
+ componentDidLoad() {
1206
+ this.formController.errors.subscribe(errors => {
1207
+ this.errors = Object.assign({}, errors);
1208
+ });
383
1209
  }
384
1210
  initializeApi() {
385
1211
  if (this.authToken && this.businessId) {
@@ -403,7 +1229,12 @@ const LegalAddressFormStep = class {
403
1229
  }
404
1230
  }
405
1231
  render() {
406
- return (h("justifi-legal-address-form-step-core", { key: '1e4419d2e8c75721883171124185590efe459fc9', getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, country: this.country, ref: el => this.coreComponent = el }));
1232
+ var _a;
1233
+ const legalAddressDefaultValue = (_a = this.formController) === null || _a === void 0 ? void 0 : _a.getInitialValues();
1234
+ if (this.isLoading) {
1235
+ return h(PaymentProvisioningLoading, null);
1236
+ }
1237
+ return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Legal Address of your Business"), h("form-control-tooltip", { helpText: "No PO Boxes." })), h("hr", { class: "mt-2" }), h("justifi-form-address-fields", { country: this.country, errors: this.errors, defaultValues: legalAddressDefaultValue, inputHandler: this.inputHandler }))));
407
1238
  }
408
1239
  static get watchers() { return {
409
1240
  "authToken": ["propChanged"],
@@ -425,7 +1256,7 @@ const PaymentProvisioningFormButtons = class {
425
1256
  return this.currentStep === this.totalSteps;
426
1257
  }
427
1258
  render() {
428
- return (h("div", { key: 'ad959d93323ee66a154d5addbabd0cd0351f5d5f', class: 'd-flex gap-2' }, h(Button, { key: '6f77f6c7ee080a1a2525ec92107881adfef3afcb', variant: "secondary", type: "button", onClick: () => this.previousStepButtonOnClick(), disabled: this.formDisabled, hidden: !this.showPreviousStepButton }, "Previous"), h(Button, { key: '6edac397291014bde05eed8f64ca6a543f951a44', variant: "primary", type: "button", onClick: (e) => this.nextStepButtonOnClick(e, BusinessFormClickActions.nextStep), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showNextStepButton }, "Next"), h(Button, { key: 'ba2f0c103c2b54e9047aee927ed8afb8e5361f66', variant: "primary", type: "submit", onClick: (e) => this.nextStepButtonOnClick(e, BusinessFormClickActions.submit), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showSubmitButton }, "Submit")));
1259
+ return (h("div", { key: 'e13d3613af061d0067d1dbd84b6c3aebfc782aad', class: 'd-flex gap-2' }, h(Button, { key: '7b422ce77e13872f3dbd622574bce0e3e6e9c2ed', variant: "secondary", type: "button", onClick: () => this.previousStepButtonOnClick(), disabled: this.formDisabled, hidden: !this.showPreviousStepButton }, "Previous"), h(Button, { key: 'ea1242fdccb0b0af2438f4aaab91e3e17a607ef7', variant: "primary", type: "button", onClick: (e) => this.nextStepButtonOnClick(e, BusinessFormClickActions.nextStep), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showNextStepButton }, "Next"), h(Button, { key: '0c323f533ea84608dcdabb885f69d71a81ec684b', variant: "primary", type: "submit", onClick: (e) => this.nextStepButtonOnClick(e, BusinessFormClickActions.submit), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showSubmitButton }, "Submit")));
429
1260
  }
430
1261
  };
431
1262
 
@@ -448,7 +1279,7 @@ const PaymentProvisioningFormSteps = class {
448
1279
  return this.componentStepMapping[this.currentStep]();
449
1280
  }
450
1281
  render() {
451
- return (h("div", { key: '2e1d2983f259fd9fe4e1dda9c1f442b248f4c5ba', class: 'col-12 mb-4' }, this.currentStepComponent));
1282
+ return (h("div", { key: 'dcf3f283bae7de00311f35e41b8d803196f50d49', class: 'col-12 mb-4' }, this.currentStepComponent));
452
1283
  }
453
1284
  };
454
1285