@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
@@ -3,38 +3,159 @@
3
3
  var index = require('./index-BhI7cJcE.js');
4
4
  var ComponentError = require('./ComponentError-D4OLnOkg.js');
5
5
  var paymentProvisioningActions = require('./payment-provisioning-actions-CZVlnRA0.js');
6
- var business_service = require('./business.service-DMzf08nC.js');
6
+ var business_service = require('./business.service-Dffp64u6.js');
7
+ var businessAdditionalQuestionsSchema = require('./business-additional-questions-schema-Y1mXnwUT.js');
8
+ var index_esm = require('./index.esm-ByC0D4sJ.js');
9
+ var Business = require('./Business-DWHy_-z9.js');
10
+ var formInputMasks = require('./form-input-masks-BnNFJ3IJ.js');
11
+ var parts = require('./parts-Pb06tUMp.js');
12
+ var skeleton = require('./skeleton-BF3HGL9X.js');
13
+ require('./event-types-YOY5TKUN.js');
14
+ var businessFormOptions = require('./business-form-options-e9UFw4P-.js');
15
+ var eventTypes = require('./event-types-DNOUef41.js');
7
16
  require('./config-state-CYoBVAca.js');
8
17
  require('./dinero-BwNN_k7x.js');
9
- require('./GooglePay-HXBAmTgL.js');
18
+ var Refund = require('./Refund-BX0mjsAQ.js');
10
19
  require('./Pagination-Dediz133.js');
11
- var Business = require('./Business-DWHy_-z9.js');
12
20
  require('./Dispute-CruQTF6_.js');
13
- var index_esm = require('./index.esm-ByC0D4sJ.js');
14
- var Api = require('./Api-BeSnjEuW.js');
15
- var parts = require('./parts-Pb06tUMp.js');
16
- var eventTypes = require('./event-types-DNOUef41.js');
21
+ var schemaValidations = require('./schema-validations-Bf2mk2xU.js');
17
22
  var button = require('./button-CARQPDm-.js');
18
- require('./event-types-YOY5TKUN.js');
23
+ var countryConfig = require('./country-config-MCOhn8o3.js');
24
+ var businessIdentitySchema = require('./business-identity-schema-D_OO0Suf.js');
25
+ var Api = require('./Api-QUTWjGTy.js');
19
26
  require('./utils-DvUQQLmR.js');
20
- require('./index-mmd0OhmD.js');
21
- require('./utils-Bab-tddY.js');
22
- require('./index-CajjbB9t.js');
23
27
  require('./_commonjsHelpers-BJu3ubxk.js');
28
+ require('./index-mmd0OhmD.js');
29
+ require('./utils-D4WPxuzW.js');
30
+
31
+ class BankAccount {
32
+ constructor(data) {
33
+ this.id = data.id;
34
+ this.account_owner_name = data.account_owner_name;
35
+ this.full_name = data.full_name;
36
+ this.account_type = data.account_type;
37
+ this.account_number = data.account_number;
38
+ this.acct_last_four = data.acct_last_four;
39
+ this.account_number_last4 = data.account_number_last4;
40
+ this.routing_number = data.routing_number;
41
+ this.institution_number = data.institution_number;
42
+ this.transit_number = data.transit_number;
43
+ this.bank_name = data.bank_name;
44
+ this.country = data.country;
45
+ this.currency = data.currency;
46
+ this.nickname = data.nickname;
47
+ this.metadata = data.metadata;
48
+ this.business_id = data.business_id;
49
+ this.platform_account_id = data.platform_account_id;
50
+ this.created_at = data.created_at;
51
+ this.updated_at = data.updated_at;
52
+ }
53
+ get payload() {
54
+ return {
55
+ account_owner_name: this.account_owner_name || '',
56
+ account_type: this.account_type || '',
57
+ account_number: this.account_number || '',
58
+ routing_number: this.routing_number || '',
59
+ institution_number: this.institution_number || '',
60
+ transit_number: this.transit_number || '',
61
+ bank_name: this.bank_name || '',
62
+ nickname: this.nickname || '',
63
+ business_id: this.business_id || '',
64
+ };
65
+ }
66
+ }
67
+
68
+ const FormBlock = () => (index.h("div", { class: "row gap-3" }, index.h("div", { class: "col-12" }, index.h(skeleton.Skeleton, { width: "25%" })), index.h("div", { class: "col-12" }, index.h(skeleton.Skeleton, { width: "100%" })), index.h("div", { class: "col-12 d-flex gap-3" }, index.h(skeleton.Skeleton, { width: "50%" }), index.h(skeleton.Skeleton, { width: "50%" })), index.h("div", { class: "col-12 d-flex gap-3" }, index.h(skeleton.Skeleton, { width: "65%" }), index.h(skeleton.Skeleton, { width: "35%" }))));
69
+ const PaymentProvisioningLoading = () => {
70
+ return (index.h("div", { class: "row gap-5" }, index.h("div", { class: "col-12" }, index.h(skeleton.Skeleton, { width: "40%", height: "40px" })), index.h(FormBlock, null), index.h(FormBlock, null), index.h(FormBlock, null)));
71
+ };
24
72
 
25
73
  const AdditionalQuestionsFormStep = class {
26
74
  constructor(hostRef) {
27
75
  index.registerInstance(this, hostRef);
28
76
  this.errorEvent = index.createEvent(this, "error-event");
77
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
78
+ this.formLoading = index.createEvent(this, "formLoading");
79
+ this.errors = {};
80
+ this.additional_questions = {};
81
+ this.recurringPayments = false;
82
+ this.isLoading = false;
83
+ this.getData = () => {
84
+ this.formLoading.emit(true);
85
+ this.isLoading = true;
86
+ this.getBusiness({
87
+ onSuccess: (response) => {
88
+ this.additional_questions = new Business.AdditionalQuestions(response.data.additional_questions || {});
89
+ this.formController.setInitialValues(Object.assign({}, this.additional_questions));
90
+ },
91
+ onError: ({ error, code, severity }) => {
92
+ this.errorEvent.emit({
93
+ message: error,
94
+ errorCode: code,
95
+ severity: severity
96
+ });
97
+ },
98
+ final: () => {
99
+ this.formLoading.emit(false);
100
+ this.isLoading = false;
101
+ }
102
+ });
103
+ };
104
+ this.sendData = (onSuccess) => {
105
+ let submittedData;
106
+ this.formLoading.emit(true);
107
+ this.patchBusiness({
108
+ payload: this.patchPayload,
109
+ onSuccess: (response) => {
110
+ submittedData = response;
111
+ onSuccess();
112
+ },
113
+ onError: ({ error, code, severity }) => {
114
+ submittedData = error;
115
+ this.errorEvent.emit({
116
+ message: error,
117
+ errorCode: code,
118
+ severity: severity
119
+ });
120
+ },
121
+ final: () => {
122
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.additionalQuestions });
123
+ this.formLoading.emit(false);
124
+ }
125
+ });
126
+ };
127
+ this.inputHandler = (name, value) => {
128
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
129
+ this.additional_questions = new Business.AdditionalQuestions(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
130
+ };
29
131
  }
30
132
  propChanged() {
31
133
  this.initializeApi();
32
134
  }
135
+ recurringPaymentsWatcher(newValue) {
136
+ if ((newValue === null || newValue === void 0 ? void 0 : newValue.business_recurring_payments) === 'Yes') {
137
+ this.recurringPayments = true;
138
+ }
139
+ else {
140
+ this.recurringPayments = false;
141
+ }
142
+ }
33
143
  async validateAndSubmit({ onSuccess }) {
34
- this.coreComponent.validateAndSubmit({ onSuccess });
144
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
145
+ }
146
+ get patchPayload() {
147
+ let formValues = new Business.AdditionalQuestions(this.formController.values.getValue()).payload;
148
+ return { additional_questions: formValues };
35
149
  }
36
150
  componentWillLoad() {
37
151
  this.initializeApi();
152
+ this.formController = new index_esm.FormController(businessAdditionalQuestionsSchema.additionalQuestionsSchema(this.allowOptionalFields));
153
+ }
154
+ componentDidLoad() {
155
+ this.getBusiness && this.getData();
156
+ this.formController.errors.subscribe(errors => {
157
+ this.errors = Object.assign({}, errors);
158
+ });
38
159
  }
39
160
  initializeApi() {
40
161
  if (this.authToken && this.businessId) {
@@ -58,27 +179,275 @@ const AdditionalQuestionsFormStep = class {
58
179
  }
59
180
  }
60
181
  render() {
61
- return (index.h("justifi-additional-questions-form-step-core", { key: 'a2e24c04b312a226b607147bcf68d6ea50a2be05', getBusiness: this.getBusiness, patchBusiness: this.patchBusiness, allowOptionalFields: this.allowOptionalFields, ref: el => this.coreComponent = el }));
182
+ var _a, _b, _c, _d;
183
+ const additionalQuestionsDefaultValue = this.formController.getInitialValues();
184
+ if (this.isLoading) {
185
+ return index.h(PaymentProvisioningLoading, null);
186
+ }
187
+ return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Additional Questions"), index.h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.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: formInputMasks.CURRENCY_MASK.WHOLE })), index.h("div", { class: "col-12 col-md-6" }, index.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 })), index.h("div", { class: "col-12" }, index.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: businessFormOptions.businessServiceReceivedOptions, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_when_service_received })), index.h("div", { class: "col-12" }, index.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 }))))));
62
188
  }
63
189
  static get watchers() { return {
64
190
  "authToken": ["propChanged"],
65
- "businessId": ["propChanged"]
191
+ "businessId": ["propChanged"],
192
+ "additional_questions": ["recurringPaymentsWatcher"]
66
193
  }; }
67
194
  };
68
195
 
196
+ const checkExistingDocs = (documents, documentType) => {
197
+ return documents.some((doc) => doc.document_type === documentType);
198
+ };
199
+ const buildCommonFieldRules = (allowOptionalFields) => {
200
+ if (allowOptionalFields) {
201
+ return {
202
+ bank_name: schemaValidations.bankNameValidation.nullable(),
203
+ nickname: schemaValidations.nicknameValidation.nullable(),
204
+ account_owner_name: schemaValidations.identityNameValidation.nullable(),
205
+ account_type: schemaValidations.accountTypeValidation.nullable(),
206
+ account_number: schemaValidations.accountNumberValidation.nullable(),
207
+ };
208
+ }
209
+ return {
210
+ bank_name: schemaValidations.bankNameValidation.required('Enter bank name'),
211
+ nickname: schemaValidations.nicknameValidation.required('Enter nickname'),
212
+ account_owner_name: schemaValidations.identityNameValidation.required('Enter account owner name'),
213
+ account_type: schemaValidations.accountTypeValidation.required('Select account type'),
214
+ account_number: schemaValidations.accountNumberValidation.required('Enter account number'),
215
+ };
216
+ };
217
+ const buildDocumentRules = (documents, allowOptionalFields) => {
218
+ if (allowOptionalFields) {
219
+ return {
220
+ voided_check: index_esm.create$8().nullable(),
221
+ bank_statement: index_esm.create$8().nullable(),
222
+ };
223
+ }
224
+ const existingVoidedCheck = checkExistingDocs(documents, Refund.EntityDocumentType.voidedCheck);
225
+ const existingBankStatement = checkExistingDocs(documents, Refund.EntityDocumentType.bankStatement);
226
+ const existingDocument = existingVoidedCheck || existingBankStatement;
227
+ const documentErrorText = 'Please upload either a voided check or a bank statement. Only one is required.';
228
+ return {
229
+ voided_check: index_esm.create$8().when('bank_statement', {
230
+ is: (val) => !val && !existingDocument,
231
+ then: (schema) => schema.required(documentErrorText),
232
+ otherwise: (schema) => schema.notRequired(),
233
+ }),
234
+ bank_statement: index_esm.create$8().when('voided_check', {
235
+ is: (val) => !val && !existingDocument,
236
+ then: (schema) => schema.required(documentErrorText),
237
+ otherwise: (schema) => schema.notRequired(),
238
+ }),
239
+ };
240
+ };
241
+ const buildUSARules = (allowOptionalFields) => {
242
+ if (allowOptionalFields) {
243
+ return { routing_number: schemaValidations.routingNumberValidation.nullable() };
244
+ }
245
+ return { routing_number: schemaValidations.routingNumberValidation.required('Enter routing number') };
246
+ };
247
+ const buildCANRules = (allowOptionalFields) => {
248
+ const institutionNumberValidation = index_esm.create$6()
249
+ .length(3, 'Institution number must be 3 digits')
250
+ .matches(schemaValidations.numbersOnlyRegex, 'Enter valid institution number');
251
+ const transitNumberValidation = index_esm.create$6()
252
+ .length(5, 'Transit number must be 5 digits')
253
+ .matches(schemaValidations.numbersOnlyRegex, 'Enter valid transit number');
254
+ if (allowOptionalFields) {
255
+ return {
256
+ institution_number: institutionNumberValidation.nullable(),
257
+ transit_number: transitNumberValidation.nullable(),
258
+ };
259
+ }
260
+ return {
261
+ institution_number: institutionNumberValidation.required('Enter institution number'),
262
+ transit_number: transitNumberValidation.required('Enter transit number'),
263
+ };
264
+ };
265
+ const businessBankAccountSchemaUSA = (documents, allowOptionalFields) => {
266
+ const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildUSARules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
267
+ return index_esm.create$3().shape(shape, [['voided_check', 'bank_statement']]);
268
+ };
269
+ const businessBankAccountSchemaCAN = (documents, allowOptionalFields) => {
270
+ const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildCANRules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
271
+ return index_esm.create$3().shape(shape, [['voided_check', 'bank_statement']]);
272
+ };
273
+ const bankAccountSchemaByCountry = {
274
+ [Business.CountryCode.USA]: (allowOptionalFields, documents = []) => businessBankAccountSchemaUSA(documents, allowOptionalFields),
275
+ [Business.CountryCode.CAN]: (allowOptionalFields, documents = []) => businessBankAccountSchemaCAN(documents, allowOptionalFields),
276
+ };
277
+
69
278
  const BusinessBankAccountFormStep = class {
70
279
  constructor(hostRef) {
71
280
  index.registerInstance(this, hostRef);
72
281
  this.errorEvent = index.createEvent(this, "error-event");
282
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
283
+ this.formLoading = index.createEvent(this, "formLoading");
284
+ this.errors = {};
285
+ this.bankAccount = {};
286
+ this.existingDocuments = [];
287
+ this.documentData = new Refund.EntityDocumentStorage();
288
+ this.isLoading = false;
289
+ this.isAddingNewBankAccount = true;
290
+ this.getSchema = () => {
291
+ const schema = bankAccountSchemaByCountry[this.country];
292
+ return schema(this.allowOptionalFields, this.existingDocuments);
293
+ };
294
+ this.initializeFormController = () => {
295
+ this.formController = new index_esm.FormController(this.getSchema());
296
+ if (this.isAddingNewBankAccount) {
297
+ // Clear form when adding a new bank account
298
+ this.formController.setInitialValues({ business_id: this.businessId });
299
+ }
300
+ else {
301
+ this.formController.setInitialValues(Object.assign({}, this.bankAccount));
302
+ }
303
+ this.formController.errors.subscribe(errors => {
304
+ this.errors = Object.assign({}, errors);
305
+ });
306
+ };
307
+ this.inputHandler = (name, value) => {
308
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
309
+ };
310
+ this.storeFiles = (e) => {
311
+ const fileList = Array.from(e.detail.fileList);
312
+ const docType = e.detail.document_type;
313
+ const documentList = fileList.map(file => new Refund.EntityDocument({ file, document_type: docType }, this.businessId));
314
+ this.documentData[docType] = documentList;
315
+ };
316
+ this.getData = () => {
317
+ this.isLoading = true;
318
+ this.getBusiness({
319
+ onSuccess: (response) => {
320
+ if (response.data.bank_accounts.length > 0) {
321
+ // Get the latest bank account (last in array)
322
+ const bankAccounts = response.data.bank_accounts;
323
+ const latestBankAccount = bankAccounts[bankAccounts.length - 1];
324
+ this.bankAccount = new BankAccount(latestBankAccount);
325
+ this.isAddingNewBankAccount = false;
326
+ }
327
+ else {
328
+ this.bankAccount = new BankAccount({});
329
+ this.bankAccount.business_id = this.businessId;
330
+ }
331
+ this.existingDocuments = response.data.documents;
332
+ },
333
+ onError: ({ error, code, severity }) => {
334
+ this.errorEvent.emit({
335
+ message: error,
336
+ errorCode: code,
337
+ severity: severity
338
+ });
339
+ },
340
+ final: () => {
341
+ this.initializeFormController();
342
+ this.isLoading = false;
343
+ }
344
+ });
345
+ };
346
+ this.handleChangeBankAccount = () => {
347
+ this.isAddingNewBankAccount = true;
348
+ this.documentData = new Refund.EntityDocumentStorage();
349
+ this.initializeFormController();
350
+ };
351
+ this.handleCancel = () => {
352
+ this.isAddingNewBankAccount = false;
353
+ this.documentData = new Refund.EntityDocumentStorage();
354
+ this.initializeFormController();
355
+ };
356
+ this.handleSaveBankAccount = async () => {
357
+ this.formController.validateAndSubmit(() => {
358
+ this.sendData(() => {
359
+ // Success callback - form will refresh automatically
360
+ });
361
+ });
362
+ };
363
+ this.postDocumentRecordData = async (docData) => {
364
+ this.isLoading = true;
365
+ const payload = docData.record_data;
366
+ return new Promise((resolve) => {
367
+ this.postDocumentRecord({
368
+ payload,
369
+ onSuccess: (response) => {
370
+ resolve(this.handleDocRecordResponse(docData, response));
371
+ },
372
+ onError: ({ error, code, severity }) => {
373
+ this.errorEvent.emit({
374
+ message: error,
375
+ errorCode: code,
376
+ severity: severity
377
+ });
378
+ resolve(false);
379
+ },
380
+ });
381
+ });
382
+ };
383
+ this.handleDocRecordResponse = (docData, response) => {
384
+ if (response.error) {
385
+ this.errorEvent.emit({
386
+ errorCode: ComponentError.ComponentErrorCodes.POST_ERROR,
387
+ message: response.error.message,
388
+ severity: ComponentError.ComponentErrorSeverity.ERROR,
389
+ data: response.error,
390
+ });
391
+ return false;
392
+ }
393
+ else {
394
+ docData.setPresignedUrl(response.data.presigned_url);
395
+ return true;
396
+ }
397
+ };
398
+ this.uploadDocument = async (docData) => {
399
+ if (!docData.presigned_url) {
400
+ throw new Error('Presigned URL is not set');
401
+ }
402
+ const fileData = await docData.getFileData();
403
+ const response = await fetch(docData.presigned_url, {
404
+ method: 'PUT',
405
+ body: fileData
406
+ });
407
+ return this.handleUploadResponse(response);
408
+ };
409
+ this.handleUploadResponse = (response) => {
410
+ if (response.error) {
411
+ this.errorEvent.emit({
412
+ errorCode: ComponentError.ComponentErrorCodes.POST_ERROR,
413
+ message: response.error.message,
414
+ severity: ComponentError.ComponentErrorSeverity.ERROR,
415
+ data: response.error,
416
+ });
417
+ return false;
418
+ }
419
+ else {
420
+ return true;
421
+ }
422
+ };
73
423
  }
74
424
  propChanged() {
75
425
  this.initializeApi();
76
426
  }
427
+ watchHandler(newValue) {
428
+ this.formLoading.emit(newValue);
429
+ }
77
430
  async validateAndSubmit({ onSuccess }) {
78
- this.coreComponent.validateAndSubmit({ onSuccess });
431
+ if (this.existingBankAccount && !this.isAddingNewBankAccount) {
432
+ // If a bank account already exists and we're not adding a new one, skip bank account posting; proceed directly to document upload
433
+ this.sendData(onSuccess);
434
+ }
435
+ else {
436
+ // If bank account is new, validate form inputs (bank account fields), then proceed
437
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
438
+ }
79
439
  }
80
440
  componentWillLoad() {
81
441
  this.initializeApi();
442
+ if (this.getBusiness) {
443
+ this.getData();
444
+ }
445
+ this.formController = new index_esm.FormController(this.getSchema());
446
+ }
447
+ componentDidLoad() {
448
+ this.formController.errors.subscribe(errors => {
449
+ this.errors = Object.assign({}, errors);
450
+ });
82
451
  }
83
452
  initializeApi() {
84
453
  if (this.authToken && this.businessId) {
@@ -104,12 +473,132 @@ const BusinessBankAccountFormStep = class {
104
473
  });
105
474
  }
106
475
  }
476
+ get postPayload() {
477
+ const values = this.formController.values.getValue();
478
+ const formValues = new BankAccount(values).payload;
479
+ return formValues;
480
+ }
481
+ get existingBankAccount() {
482
+ var _a;
483
+ return !!((_a = this.bankAccount) === null || _a === void 0 ? void 0 : _a.id);
484
+ }
485
+ get showReadOnlyView() {
486
+ return this.existingBankAccount && !this.isAddingNewBankAccount;
487
+ }
488
+ async sendData(onSuccess) {
489
+ try {
490
+ // Post bank account data if we're adding a new bank account
491
+ const bankAccountPosted = this.isAddingNewBankAccount ? await this.postBankAccountData() : true;
492
+ if (!bankAccountPosted) {
493
+ return;
494
+ }
495
+ // Post documents only after bank account was successfully created
496
+ const documentsUploaded = await this.postBusinessDocuments();
497
+ if (!documentsUploaded) {
498
+ return;
499
+ }
500
+ // Refresh bank account data after successful save
501
+ if (this.isAddingNewBankAccount) {
502
+ this.isAddingNewBankAccount = false;
503
+ await this.refreshBankAccountData();
504
+ }
505
+ onSuccess();
506
+ }
507
+ catch (error) {
508
+ this.errorEvent.emit({
509
+ message: error,
510
+ errorCode: ComponentError.ComponentErrorCodes.POST_ERROR,
511
+ severity: ComponentError.ComponentErrorSeverity.ERROR
512
+ });
513
+ }
514
+ }
515
+ async postBankAccountData() {
516
+ let submittedData;
517
+ this.isLoading = true;
518
+ return new Promise((resolve) => {
519
+ let success = false;
520
+ this.postBankAccount({
521
+ payload: this.postPayload,
522
+ onSuccess: (response) => {
523
+ submittedData = response;
524
+ success = true;
525
+ },
526
+ onError: ({ error, code, severity }) => {
527
+ success = false;
528
+ this.errorEvent.emit({
529
+ message: error,
530
+ errorCode: code,
531
+ severity: severity
532
+ });
533
+ },
534
+ final: () => {
535
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.bankAccount });
536
+ this.isLoading = false;
537
+ resolve(success);
538
+ }
539
+ });
540
+ });
541
+ }
542
+ async refreshBankAccountData() {
543
+ return new Promise((resolve) => {
544
+ this.isLoading = true;
545
+ this.getBusiness({
546
+ onSuccess: (response) => {
547
+ if (response.data.bank_accounts.length > 0) {
548
+ // Get the latest bank account (last in array)
549
+ const bankAccounts = response.data.bank_accounts;
550
+ const latestBankAccount = bankAccounts[bankAccounts.length - 1];
551
+ this.bankAccount = new BankAccount(latestBankAccount);
552
+ }
553
+ this.existingDocuments = response.data.documents;
554
+ this.initializeFormController();
555
+ },
556
+ onError: ({ error, code, severity }) => {
557
+ this.errorEvent.emit({
558
+ message: error,
559
+ errorCode: code,
560
+ severity: severity
561
+ });
562
+ },
563
+ final: () => {
564
+ this.isLoading = false;
565
+ resolve();
566
+ }
567
+ });
568
+ });
569
+ }
570
+ async postBusinessDocuments() {
571
+ this.isLoading = true;
572
+ try {
573
+ const docArray = Object.values(this.documentData).flat();
574
+ if (!docArray.length) {
575
+ return true;
576
+ }
577
+ const recordsCreated = await Promise.all(docArray.map((docData) => this.postDocumentRecordData(docData))); // Create document records
578
+ if (recordsCreated.includes(false)) {
579
+ return false;
580
+ } // Exit if document record creation fails
581
+ const uploadsCompleted = await Promise.all(docArray.map((docData) => this.uploadDocument(docData))); // Upload documents to AWS presigned URLs
582
+ if (uploadsCompleted.includes(false)) {
583
+ return false;
584
+ } // Exit if any upload fails
585
+ return true;
586
+ }
587
+ finally {
588
+ this.isLoading = false;
589
+ }
590
+ }
107
591
  render() {
108
- return (index.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 }));
592
+ const bankAccountDefaultValue = this.formController.getInitialValues();
593
+ if (this.isLoading) {
594
+ return index.h(PaymentProvisioningLoading, null);
595
+ }
596
+ return (index.h("form", null, index.h("fieldset", { class: "mb-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Bank Account Info"), index.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." })), index.h("hr", { class: "mt-2" }), this.country === Business.CountryCode.CAN ? (index.h("bank-account-form-inputs-canada", { defaultValue: bankAccountDefaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: this.showReadOnlyView })) : (index.h("bank-account-form-inputs", { defaultValue: bankAccountDefaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: this.showReadOnlyView })), this.showReadOnlyView && (index.h("div", { class: "mt-3" }, index.h(button.Button, { variant: "secondary", type: "button", onClick: this.handleChangeBankAccount, disabled: this.isLoading, part: parts.buttonSecondary }, "Change Bank Account"))), (!this.existingBankAccount || this.isAddingNewBankAccount) && (index.h("div", { class: "mt-3 d-flex gap-2" }, this.isAddingNewBankAccount && (index.h(button.Button, { variant: "secondary", type: "button", onClick: this.handleCancel, disabled: this.isLoading, part: parts.buttonSecondary }, "Cancel")), index.h(button.Button, { variant: "primary", type: "button", onClick: this.handleSaveBankAccount, disabled: this.isLoading, isLoading: this.isLoading }, "Save Bank Account")))), index.h("fieldset", { class: "mt-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Document Uploads"), index.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." })), index.h("hr", { class: "mt-2" }), index.h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading }), index.h("bank-account-document-form-inputs", { inputHandler: this.inputHandler, errors: this.errors, storeFiles: this.storeFiles }))));
109
597
  }
110
598
  static get watchers() { return {
111
599
  "authToken": ["propChanged"],
112
- "businessId": ["propChanged"]
600
+ "businessId": ["propChanged"],
601
+ "isLoading": ["watchHandler"]
113
602
  }; }
114
603
  };
115
604
 
@@ -117,15 +606,86 @@ const BusinessCoreInfoFormStep = class {
117
606
  constructor(hostRef) {
118
607
  index.registerInstance(this, hostRef);
119
608
  this.errorEvent = index.createEvent(this, "error-event");
609
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
610
+ this.formLoading = index.createEvent(this, "formLoading");
611
+ this.errors = {};
612
+ this.coreInfo = {};
613
+ this.isLoading = false;
614
+ this.isEditingTaxId = false;
615
+ this.getData = () => {
616
+ if (!this.getBusiness)
617
+ return;
618
+ this.formLoading.emit(true);
619
+ this.isLoading = true;
620
+ this.getBusiness({
621
+ onSuccess: (response) => {
622
+ this.coreInfo = new Business.CoreBusinessInfo(response.data);
623
+ this.formController.setInitialValues(Object.assign({}, this.coreInfo));
624
+ },
625
+ onError: ({ error, code, severity }) => {
626
+ this.errorEvent.emit({
627
+ message: error,
628
+ errorCode: code,
629
+ severity: severity
630
+ });
631
+ },
632
+ final: () => {
633
+ this.formLoading.emit(false);
634
+ this.isLoading = false;
635
+ }
636
+ });
637
+ };
638
+ this.sendData = (onSuccess) => {
639
+ let submittedData;
640
+ this.formLoading.emit(true);
641
+ this.patchBusiness({
642
+ payload: this.patchPayload,
643
+ onSuccess: (response) => {
644
+ submittedData = response;
645
+ onSuccess();
646
+ // after successful patch, revert back to read-only for tax id
647
+ this.isEditingTaxId = false;
648
+ },
649
+ onError: ({ error, code, severity }) => {
650
+ submittedData = error;
651
+ this.errorEvent.emit({
652
+ message: error,
653
+ errorCode: code,
654
+ severity: severity
655
+ });
656
+ },
657
+ final: () => {
658
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.businessInfo });
659
+ this.formLoading.emit(false);
660
+ }
661
+ });
662
+ };
663
+ this.inputHandler = (name, value) => {
664
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
665
+ };
120
666
  }
121
667
  propChanged() {
122
668
  this.initializeApi();
123
669
  }
124
670
  async validateAndSubmit({ onSuccess }) {
125
- this.coreComponent.validateAndSubmit({ onSuccess });
671
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
672
+ }
673
+ get patchPayload() {
674
+ let formValues = new Business.CoreBusinessInfo(this.formController.values.getValue()).payload;
675
+ return formValues;
126
676
  }
127
677
  componentWillLoad() {
128
678
  this.initializeApi();
679
+ const schema = (this.country === Business.CountryCode.CAN)
680
+ ? businessAdditionalQuestionsSchema.businessCoreInfoSchemaCAN(this.allowOptionalFields)
681
+ : businessAdditionalQuestionsSchema.businessCoreInfoSchemaUSA(this.allowOptionalFields);
682
+ this.formController = new index_esm.FormController(schema);
683
+ this.getData();
684
+ }
685
+ componentDidLoad() {
686
+ this.formController.errors.subscribe(errors => {
687
+ this.errors = Object.assign({}, errors);
688
+ });
129
689
  }
130
690
  initializeApi() {
131
691
  if (this.authToken && this.businessId) {
@@ -149,7 +709,16 @@ const BusinessCoreInfoFormStep = class {
149
709
  }
150
710
  }
151
711
  render() {
152
- return (index.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 }));
712
+ var _a, _b;
713
+ const coreInfoDefaultValue = this.formController.getInitialValues();
714
+ if (this.isLoading) {
715
+ return index.h(PaymentProvisioningLoading, null);
716
+ }
717
+ return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Business Information")), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12" }, index.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)." })), index.h("div", { class: "col-12" }, index.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)" })), index.h("div", { class: "col-12 col-md-8" }, index.h("form-control-select", { name: "classification", label: "Business Classification", options: businessFormOptions.businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-4" }, index.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 })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), index.h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (index.h("form-control-number-masked", { name: "tax_id", label: countryConfig.countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryConfig.countryLabels[this.country].taxIdHelpText })) : (index.h("div", null, index.h("label", { class: "form-label", part: parts.label }, countryConfig.countryLabels[this.country].taxIdLabel), index.h("div", { class: "input-group mb-3" }, index.h("input", { type: "text", class: "form-control", part: parts.inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), index.h("button", { class: "btn btn-secondary", type: "button", part: parts.buttonSecondary, onClick: () => {
718
+ this.isEditingTaxId = true;
719
+ // Clear last4-equivalent and current value if any future conditional validation depends on it
720
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { tax_id: '', tax_id_last4: null }));
721
+ } }, "Change"))))), index.h("div", { class: "col-12" }, index.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." })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "email", label: "Business Email Address", defaultValue: coreInfoDefaultValue.email, errorText: this.errors.email, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-number-masked", { name: "phone", label: "Business Phone Number", defaultValue: coreInfoDefaultValue.phone, errorText: this.errors.phone, inputHandler: this.inputHandler, mask: formInputMasks.PHONE_MASKS.US }))))));
153
722
  }
154
723
  static get watchers() { return {
155
724
  "authToken": ["propChanged"],
@@ -160,16 +729,105 @@ const BusinessCoreInfoFormStep = class {
160
729
  const BusinessOwnersFormStep = class {
161
730
  constructor(hostRef) {
162
731
  index.registerInstance(this, hostRef);
732
+ this.clickEvent = index.createEvent(this, "click-event");
733
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
163
734
  this.errorEvent = index.createEvent(this, "error-event");
735
+ this.formLoading = index.createEvent(this, "formLoading");
736
+ this.ownersPayload = [];
737
+ this.refs = [];
738
+ this.isLoading = false;
739
+ this.matchRef = (ref, ownerId) => {
740
+ const ownerIndex = this.refs.findIndex(ref => ref === ownerId);
741
+ if (ownerIndex !== -1) {
742
+ this.refs[ownerIndex] = ref;
743
+ }
744
+ };
745
+ this.getData = () => {
746
+ this.formLoading.emit(true);
747
+ this.isLoading = true;
748
+ this.getBusiness({
749
+ onSuccess: (response) => {
750
+ if (response.data.owners.length) {
751
+ this.ownersPayload = response.data.owners.map(owner => ({ id: owner.id }));
752
+ }
753
+ else {
754
+ this.addOwnerForm();
755
+ }
756
+ },
757
+ onError: ({ error, code, severity }) => {
758
+ this.errorEvent.emit({
759
+ message: error,
760
+ errorCode: code,
761
+ severity: severity
762
+ });
763
+ },
764
+ final: () => {
765
+ this.formLoading.emit(false);
766
+ this.isLoading = false;
767
+ this.manageRefs();
768
+ }
769
+ });
770
+ };
771
+ this.sendData = async (onSuccess) => {
772
+ let submittedData;
773
+ this.formLoading.emit(true);
774
+ this.patchBusiness({
775
+ payload: { owners: this.ownersPayload },
776
+ onSuccess: (response) => {
777
+ submittedData = response;
778
+ onSuccess();
779
+ },
780
+ onError: ({ error, code, severity }) => {
781
+ submittedData = error;
782
+ this.errorEvent.emit({
783
+ message: error,
784
+ errorCode: code,
785
+ severity: severity
786
+ });
787
+ },
788
+ final: () => {
789
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.owners });
790
+ this.formLoading.emit(false);
791
+ }
792
+ });
793
+ };
794
+ this.addOwnerForm = (fireClick) => {
795
+ this.newFormOpen = true;
796
+ this.ownersPayload = [...this.ownersPayload, { id: '' }];
797
+ fireClick && this.clickEvent.emit({ name: eventTypes.BusinessFormClickActions.addOwnerForm });
798
+ };
799
+ this.removeOwnerForm = (id) => {
800
+ this.ownersPayload = this.ownersPayload.filter(owner => owner.id !== id);
801
+ this.newFormOpen && (this.newFormOpen = false);
802
+ };
164
803
  }
165
804
  propChanged() {
166
805
  this.initializeApi();
167
806
  }
807
+ get showAddOwnerButton() {
808
+ return this.ownersPayload.length < 4 && !this.newFormOpen;
809
+ }
810
+ manageRefs() {
811
+ this.refs = this.ownersPayload.map((owner) => { return owner.id; });
812
+ }
168
813
  async validateAndSubmit({ onSuccess }) {
169
- this.coreComponent.validateAndSubmit({ onSuccess });
814
+ const formValidations = this.refs.map(ref => ref.validate());
815
+ const formsValid = (await Promise.all(formValidations)).every(result => result);
816
+ if (!formsValid) {
817
+ return;
818
+ }
819
+ const formSubmissions = this.refs.map(ref => ref.submit());
820
+ const submissionsValid = (await Promise.all(formSubmissions)).every(result => result);
821
+ if (!submissionsValid) {
822
+ return;
823
+ }
824
+ this.sendData(onSuccess);
170
825
  }
171
826
  componentWillLoad() {
172
827
  this.initializeApi();
828
+ if (this.getBusiness) {
829
+ this.getData();
830
+ }
173
831
  }
174
832
  initializeApi() {
175
833
  if (this.authToken && this.businessId) {
@@ -192,12 +850,31 @@ const BusinessOwnersFormStep = class {
192
850
  });
193
851
  }
194
852
  }
853
+ ownersWatcher() {
854
+ this.manageRefs();
855
+ }
856
+ handleOwnerSubmit(event) {
857
+ const submittedOwner = event.detail;
858
+ const updatedOwners = this.ownersPayload.map(owner => owner.id === submittedOwner.id ? submittedOwner : owner);
859
+ if (!updatedOwners.includes(submittedOwner)) {
860
+ const newOwnerIndex = this.ownersPayload.findIndex(owner => !owner.id);
861
+ updatedOwners[newOwnerIndex] = submittedOwner;
862
+ this.newFormOpen && (this.newFormOpen = false);
863
+ }
864
+ this.ownersPayload = updatedOwners;
865
+ }
195
866
  render() {
196
- return (index.h(index.Host, { key: '510b3ece6194fa6c34c04ba4d87718490631b69d' }, index.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 })));
867
+ if (this.isLoading) {
868
+ return (index.h(index.Host, null, index.h(PaymentProvisioningLoading, null)));
869
+ }
870
+ return (index.h(index.Host, null, index.h("div", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Owners"), index.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." })), index.h("hr", { class: "mt-2" }), index.h("div", { class: 'row gy-3' }, this.ownersPayload.map((owner) => {
871
+ return (index.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) }));
872
+ })), index.h("div", { class: 'd-flex justify-content-start' }, index.h("div", { class: 'gap-2' }, index.h(button.Button, { variant: 'primary', onClick: () => this.addOwnerForm(true), hidden: !this.showAddOwnerButton }, "Add Owner"))))));
197
873
  }
198
874
  static get watchers() { return {
199
875
  "authToken": ["propChanged"],
200
- "businessId": ["propChanged"]
876
+ "businessId": ["propChanged"],
877
+ "ownersPayload": ["ownersWatcher"]
201
878
  }; }
202
879
  };
203
880
 
@@ -205,15 +882,69 @@ const BusinessRepresentativeFormStep = class {
205
882
  constructor(hostRef) {
206
883
  index.registerInstance(this, hostRef);
207
884
  this.errorEvent = index.createEvent(this, "error-event");
885
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
886
+ this.formLoading = index.createEvent(this, "formLoading");
887
+ this.errors = {};
888
+ this.representative = {};
889
+ this.isLoading = false;
890
+ this.getData = () => {
891
+ if (!this.getBusiness || !this.formController)
892
+ return;
893
+ this.formLoading.emit(true);
894
+ this.isLoading = true;
895
+ this.getBusiness({
896
+ onSuccess: (response) => {
897
+ this.representative = new Business.Representative(response.data.representative || {});
898
+ this.representative.address.country = this.country;
899
+ this.formController.setInitialValues(Object.assign({}, this.representative));
900
+ },
901
+ onError: ({ error, code, severity }) => {
902
+ this.errorEvent.emit({
903
+ message: error,
904
+ errorCode: code,
905
+ severity: severity
906
+ });
907
+ },
908
+ final: () => {
909
+ this.formLoading.emit(false);
910
+ this.isLoading = false;
911
+ }
912
+ });
913
+ };
914
+ this.sendData = (onSuccess) => {
915
+ let submittedData;
916
+ this.formLoading.emit(true);
917
+ this.patchBusiness({
918
+ payload: this.patchPayload,
919
+ onSuccess: (response) => {
920
+ submittedData = response;
921
+ onSuccess();
922
+ },
923
+ onError: ({ error, code, severity }) => {
924
+ submittedData = error;
925
+ this.errorEvent.emit({
926
+ message: error,
927
+ errorCode: code,
928
+ severity: severity
929
+ });
930
+ },
931
+ final: () => {
932
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.representative });
933
+ this.formLoading.emit(false);
934
+ }
935
+ });
936
+ };
208
937
  }
209
938
  propChanged() {
210
939
  this.initializeApi();
940
+ this.getData();
211
941
  }
212
942
  async validateAndSubmit({ onSuccess }) {
213
- this.coreComponent.validateAndSubmit({ onSuccess });
943
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
214
944
  }
215
945
  componentWillLoad() {
216
946
  this.initializeApi();
947
+ this.initializeForm();
217
948
  }
218
949
  initializeApi() {
219
950
  if (this.authToken && this.businessId) {
@@ -236,8 +967,35 @@ const BusinessRepresentativeFormStep = class {
236
967
  });
237
968
  }
238
969
  }
970
+ initializeForm() {
971
+ const schemaFactory = businessIdentitySchema.identitySchemaByCountry[this.country];
972
+ if (!schemaFactory) {
973
+ this.errorEvent.emit({
974
+ message: 'Missing schema for selected country',
975
+ errorCode: ComponentError.ComponentErrorCodes.MISSING_PROPS,
976
+ severity: ComponentError.ComponentErrorSeverity.ERROR,
977
+ });
978
+ return;
979
+ }
980
+ this.formController = new index_esm.FormController(schemaFactory('representative', this.allowOptionalFields));
981
+ this.getData();
982
+ }
983
+ componentDidLoad() {
984
+ if (!this.formController)
985
+ return;
986
+ this.formController.errors.subscribe(errors => {
987
+ this.errors = Object.assign({}, errors);
988
+ });
989
+ }
990
+ get patchPayload() {
991
+ let formValues = new Business.Representative(this.formController.values.getValue()).payload;
992
+ return { representative: formValues };
993
+ }
239
994
  render() {
240
- return (index.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 }));
995
+ if (!this.formController || this.isLoading) {
996
+ return (index.h(PaymentProvisioningLoading, null));
997
+ }
998
+ return (index.h("justifi-business-representative-form-inputs", { representativeDefaultValue: this.formController.getInitialValues(), errors: this.errors, formController: this.formController, country: this.country }));
241
999
  }
242
1000
  static get watchers() { return {
243
1001
  "authToken": ["propChanged"],
@@ -365,7 +1123,7 @@ const BusinessTermsConditionsFormStep = class {
365
1123
  return (index.h("a", { href: "https://justifi.tech/merchant-agreement/", target: "_blank", rel: "noopener noreferrer" }, "merchant agreement"));
366
1124
  }
367
1125
  render() {
368
- return (index.h("form", { key: '6fbccc271d16cbb87d8845b06b58fd461e18f770' }, index.h("fieldset", { key: 'ce5240753aefdb4aa92aa3ba5af4741466702ae6' }, index.h("legend", { key: '01a3a99f6d9dfe45ae12eb2a603ebc70a25747be', part: parts.heading2 }, "Terms and Conditions"), index.h("hr", { key: 'b0209b2df034353f663cf4dde25fee51e2906dc4' }), index.h("div", { key: '1ed270526bc1f6d24d81c485ea6e9459607bac3e' }, index.h("p", { key: '8c98f939d4db12cad7169debc71fd0ad652cc724' }, "Please read and accept the ", this.merchantAgreementLink, " to submit your provisioning request.")), index.h("br", { key: '021ffcc28e65e59d8fb81a8a2507cac1ce0d448f' }), index.h("div", { key: 'e6181b2a5ad6b01be123962bf17282cb1f97fd30', class: "row-gy-3" }, index.h("div", { key: '82acd8dcfed625e051b93bb8845fb9d11b5e26ce', class: "col-12" }, index.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 }))))));
1126
+ return (index.h("form", { key: '721f3c171358f9450a8b460dafac3c9f7f27727b' }, index.h("fieldset", { key: 'e151086c528d5e359e4ecd2c33feb01c5571a6ca' }, index.h("legend", { key: 'ff4ba3bead3ec50cf9736d6a864740e542f42b2d', part: parts.heading2 }, "Terms and Conditions"), index.h("hr", { key: 'c076bfe230bafbe8db7280f5f708de893c970bf2' }), index.h("div", { key: 'd2a1e0f4e15077d07fe7de2cb847252990b44bde' }, index.h("p", { key: '559c4c6d6e27b5fb800984e87097fe080482462d' }, "Please read and accept the ", this.merchantAgreementLink, " to submit your provisioning request.")), index.h("br", { key: '014b3a7be231c81bd23c35ab212d7ac4e4c1d107' }), index.h("div", { key: '3ef38ecffd678c36c564836434f0a0da341116af', class: "row-gy-3" }, index.h("div", { key: 'e715723e19a212628d29fec46ca494b7080dac66', class: "col-12" }, index.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 }))))));
369
1127
  }
370
1128
  };
371
1129
 
@@ -373,15 +1131,83 @@ const LegalAddressFormStep = class {
373
1131
  constructor(hostRef) {
374
1132
  index.registerInstance(this, hostRef);
375
1133
  this.errorEvent = index.createEvent(this, "error-event");
1134
+ this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event");
1135
+ this.formLoading = index.createEvent(this, "formLoading");
1136
+ this.errors = {};
1137
+ this.legal_address = {};
1138
+ this.isLoading = false;
1139
+ this.getData = () => {
1140
+ if (!this.getBusiness)
1141
+ return;
1142
+ this.formLoading.emit(true);
1143
+ this.isLoading = true;
1144
+ this.getBusiness({
1145
+ onSuccess: (response) => {
1146
+ const business = response.data || {};
1147
+ const address = new Business.Address(business.legal_address || {});
1148
+ this.legal_address = Object.assign(Object.assign({}, address), { country: this.country });
1149
+ this.formController.setInitialValues(Object.assign({}, this.legal_address));
1150
+ },
1151
+ onError: ({ error, code, severity }) => {
1152
+ this.errorEvent.emit({
1153
+ message: error,
1154
+ errorCode: code,
1155
+ severity: severity
1156
+ });
1157
+ },
1158
+ final: () => {
1159
+ this.formLoading.emit(false);
1160
+ this.isLoading = false;
1161
+ }
1162
+ });
1163
+ };
1164
+ this.sendData = (onSuccess) => {
1165
+ let submittedData;
1166
+ this.formLoading.emit(true);
1167
+ this.patchBusiness({
1168
+ payload: this.patchPayload,
1169
+ onSuccess: (response) => {
1170
+ submittedData = response;
1171
+ onSuccess();
1172
+ },
1173
+ onError: ({ error, code, severity }) => {
1174
+ submittedData = error;
1175
+ this.errorEvent.emit({
1176
+ message: error,
1177
+ errorCode: code,
1178
+ severity: severity
1179
+ });
1180
+ },
1181
+ final: () => {
1182
+ this.stepCompleteEvent.emit({ response: submittedData, formStep: eventTypes.BusinessFormStep.legalAddress });
1183
+ this.formLoading.emit(false);
1184
+ }
1185
+ });
1186
+ };
1187
+ this.inputHandler = (name, value) => {
1188
+ this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
1189
+ };
376
1190
  }
377
1191
  propChanged() {
378
1192
  this.initializeApi();
379
1193
  }
380
1194
  async validateAndSubmit({ onSuccess }) {
381
- this.coreComponent.validateAndSubmit({ onSuccess });
1195
+ this.formController.validateAndSubmit(() => this.sendData(onSuccess));
1196
+ }
1197
+ get patchPayload() {
1198
+ let formValues = new Business.Address(this.formController.values.getValue()).payload;
1199
+ return { legal_address: formValues };
382
1200
  }
383
1201
  componentWillLoad() {
384
1202
  this.initializeApi();
1203
+ const schemaFactory = businessIdentitySchema.addressSchemaByCountry[this.country];
1204
+ this.formController = new index_esm.FormController(schemaFactory(this.allowOptionalFields));
1205
+ this.getData();
1206
+ }
1207
+ componentDidLoad() {
1208
+ this.formController.errors.subscribe(errors => {
1209
+ this.errors = Object.assign({}, errors);
1210
+ });
385
1211
  }
386
1212
  initializeApi() {
387
1213
  if (this.authToken && this.businessId) {
@@ -405,7 +1231,12 @@ const LegalAddressFormStep = class {
405
1231
  }
406
1232
  }
407
1233
  render() {
408
- return (index.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 }));
1234
+ var _a;
1235
+ const legalAddressDefaultValue = (_a = this.formController) === null || _a === void 0 ? void 0 : _a.getInitialValues();
1236
+ if (this.isLoading) {
1237
+ return index.h(PaymentProvisioningLoading, null);
1238
+ }
1239
+ return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Legal Address of your Business"), index.h("form-control-tooltip", { helpText: "No PO Boxes." })), index.h("hr", { class: "mt-2" }), index.h("justifi-form-address-fields", { country: this.country, errors: this.errors, defaultValues: legalAddressDefaultValue, inputHandler: this.inputHandler }))));
409
1240
  }
410
1241
  static get watchers() { return {
411
1242
  "authToken": ["propChanged"],
@@ -427,7 +1258,7 @@ const PaymentProvisioningFormButtons = class {
427
1258
  return this.currentStep === this.totalSteps;
428
1259
  }
429
1260
  render() {
430
- return (index.h("div", { key: 'ad959d93323ee66a154d5addbabd0cd0351f5d5f', class: 'd-flex gap-2' }, index.h(button.Button, { key: '6f77f6c7ee080a1a2525ec92107881adfef3afcb', variant: "secondary", type: "button", onClick: () => this.previousStepButtonOnClick(), disabled: this.formDisabled, hidden: !this.showPreviousStepButton }, "Previous"), index.h(button.Button, { key: '6edac397291014bde05eed8f64ca6a543f951a44', variant: "primary", type: "button", onClick: (e) => this.nextStepButtonOnClick(e, eventTypes.BusinessFormClickActions.nextStep), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showNextStepButton }, "Next"), index.h(button.Button, { key: 'ba2f0c103c2b54e9047aee927ed8afb8e5361f66', variant: "primary", type: "submit", onClick: (e) => this.nextStepButtonOnClick(e, eventTypes.BusinessFormClickActions.submit), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showSubmitButton }, "Submit")));
1261
+ return (index.h("div", { key: 'e13d3613af061d0067d1dbd84b6c3aebfc782aad', class: 'd-flex gap-2' }, index.h(button.Button, { key: '7b422ce77e13872f3dbd622574bce0e3e6e9c2ed', variant: "secondary", type: "button", onClick: () => this.previousStepButtonOnClick(), disabled: this.formDisabled, hidden: !this.showPreviousStepButton }, "Previous"), index.h(button.Button, { key: 'ea1242fdccb0b0af2438f4aaab91e3e17a607ef7', variant: "primary", type: "button", onClick: (e) => this.nextStepButtonOnClick(e, eventTypes.BusinessFormClickActions.nextStep), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showNextStepButton }, "Next"), index.h(button.Button, { key: '0c323f533ea84608dcdabb885f69d71a81ec684b', variant: "primary", type: "submit", onClick: (e) => this.nextStepButtonOnClick(e, eventTypes.BusinessFormClickActions.submit), disabled: this.formDisabled, isLoading: this.formLoading, hidden: !this.showSubmitButton }, "Submit")));
431
1262
  }
432
1263
  };
433
1264
 
@@ -450,7 +1281,7 @@ const PaymentProvisioningFormSteps = class {
450
1281
  return this.componentStepMapping[this.currentStep]();
451
1282
  }
452
1283
  render() {
453
- return (index.h("div", { key: '2e1d2983f259fd9fe4e1dda9c1f442b248f4c5ba', class: 'col-12 mb-4' }, this.currentStepComponent));
1284
+ return (index.h("div", { key: 'dcf3f283bae7de00311f35e41b8d803196f50d49', class: 'col-12 mb-4' }, this.currentStepComponent));
454
1285
  }
455
1286
  };
456
1287