@justifi/webcomponents 6.12.5 → 6.12.6-rc.1

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 (320) hide show
  1. package/dist/cjs/{Analytics-CITnMj7H.js → Analytics-CexlbLRl.js} +2 -2
  2. package/dist/cjs/{Plaid-BRSyOOuw.js → Plaid-KasiL5mp.js} +14 -19
  3. package/dist/cjs/{additional-questions-form-step_14.cjs.entry.js → additional-questions-form-step_15.cjs.entry.js} +378 -169
  4. package/dist/cjs/additional-questions_5.cjs.entry.js +7 -7
  5. package/dist/cjs/additional-statement_8.cjs.entry.js +1 -1
  6. package/dist/cjs/bank-account-billing-form-simple_4.cjs.entry.js +4 -4
  7. package/dist/cjs/bank-account-document-form-inputs.cjs.entry.js +21 -0
  8. package/dist/cjs/bank-account-form.cjs.entry.js +2 -2
  9. package/dist/cjs/{business-form-options-D_nM7NDk.js → business-form-options-CnlrfbQ6.js} +51 -0
  10. package/dist/cjs/{business-identity-schema-DuFGX6_i.js → business-identity-schema-CC1wOwXd.js} +11 -7
  11. package/dist/cjs/{business.service-Z9OACEQL.js → business.service-BBovho58.js} +1 -1
  12. package/dist/cjs/card-form.cjs.entry.js +2 -2
  13. package/dist/cjs/{check-pkg-version-CZMgXZID.js → check-pkg-version-jeIQGJ8A.js} +1 -1
  14. package/dist/cjs/{checkout.service-BZOyqXgW.js → checkout.service-C0M9hmsL.js} +1 -1
  15. package/dist/cjs/{country-config-aJp8ScEs.js → country-config-Ck-eEeZZ.js} +2 -0
  16. package/dist/cjs/dispute-notification_2.cjs.entry.js +6 -6
  17. package/dist/cjs/{event-types-AU1B76Vm.js → event-types-DDNVjmfR.js} +1 -1
  18. package/dist/cjs/form-address-fields_3.cjs.entry.js +1 -1
  19. package/dist/cjs/form-control-number_2.cjs.entry.js +5 -4
  20. package/dist/cjs/{get-business-aR-C83KX.js → get-business-Ggw-UjXj.js} +2 -2
  21. package/dist/cjs/{get-payment-details-dwhA02Zl.js → get-payment-details-BVKRwME1.js} +2 -2
  22. package/dist/cjs/{get-subaccounts-B1jmSa2d.js → get-subaccounts-RRmcS9xU.js} +2 -2
  23. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  24. package/dist/cjs/{index.esm-C1ZPG85l.js → index.esm-BNETBIV_.js} +0 -18
  25. package/dist/cjs/justifi-apple-pay_11.cjs.entry.js +8 -8
  26. package/dist/cjs/justifi-bank-account-billing-form-simple.cjs.entry.js +5 -5
  27. package/dist/cjs/justifi-bank-account-form.cjs.entry.js +5 -5
  28. package/dist/cjs/justifi-billing-form-full.cjs.entry.js +1 -1
  29. package/dist/cjs/justifi-billing-form.cjs.entry.js +1 -1
  30. package/dist/cjs/justifi-business-details.cjs.entry.js +8 -8
  31. package/dist/cjs/justifi-business-form.cjs.entry.js +13 -13
  32. package/dist/cjs/justifi-card-billing-form-simple.cjs.entry.js +1 -1
  33. package/dist/cjs/justifi-card-form.cjs.entry.js +5 -5
  34. package/dist/cjs/justifi-checkout.cjs.entry.js +5 -5
  35. package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +2 -2
  36. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +8 -8
  37. package/dist/cjs/justifi-dispute-management.cjs.entry.js +7 -7
  38. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +6 -6
  39. package/dist/cjs/justifi-order-terminals.cjs.entry.js +9 -9
  40. package/dist/cjs/justifi-payment-details.cjs.entry.js +8 -8
  41. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +9 -9
  42. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +7 -7
  43. package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +1 -1
  44. package/dist/cjs/justifi-payments-list.cjs.entry.js +7 -7
  45. package/dist/cjs/justifi-payout-details.cjs.entry.js +8 -8
  46. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +7 -7
  47. package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +2 -2
  48. package/dist/cjs/justifi-payouts-list.cjs.entry.js +9 -9
  49. package/dist/cjs/justifi-refund-payment.cjs.entry.js +9 -9
  50. package/dist/cjs/justifi-save-new-payment-method.cjs.entry.js +1 -1
  51. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +6 -6
  52. package/dist/cjs/justifi-skeleton.cjs.entry.js +1 -1
  53. package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +2 -2
  54. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +6 -6
  55. package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +2 -2
  56. package/dist/cjs/justifi-terminals-list.cjs.entry.js +8 -8
  57. package/dist/cjs/loader.cjs.js +1 -1
  58. package/dist/cjs/{package-DOiqjXmm.js → package-CDegPd7E.js} +1 -1
  59. package/dist/cjs/payment-method-option.cjs.entry.js +1 -1
  60. package/dist/cjs/{payment-provisioning-actions-BiSpysjW.js → payment-provisioning-actions-Cn8bgHKu.js} +2 -2
  61. package/dist/cjs/payment-provisioning-form-buttons_2.cjs.entry.js +3 -2
  62. package/dist/cjs/{payment.service-ByrgA_QZ.js → payment.service-CbIxt30x.js} +1 -1
  63. package/dist/cjs/{payout.service-CnQm_BpU.js → payout.service-DVMvsdAf.js} +1 -1
  64. package/dist/cjs/{payouts-status-AuS3Mp0V.js → payouts-status-CzS2CLGW.js} +2 -2
  65. package/dist/cjs/{plaid.service-Dlb8EUR8.js → plaid.service-DNT_DX6z.js} +1 -1
  66. package/dist/cjs/{schema-validations-DNPcvDh5.js → schema-validations-DackMxv7.js} +11 -8
  67. package/dist/cjs/styled-host-Ch0-dxF-.js +11 -0
  68. package/dist/cjs/{terminal.service-BdwHQ3Vv.js → terminal.service-BBHixg-d.js} +1 -1
  69. package/dist/cjs/{utils-FVGp6se3.js → utils-kDsk4nqH.js} +1 -1
  70. package/dist/cjs/webcomponents.cjs.js +1 -1
  71. package/dist/collection/api/Document.js +14 -7
  72. package/dist/collection/collection-manifest.json +2 -0
  73. package/dist/collection/components/business-forms/business-form/business-core-info/business-core-info.js +2 -2
  74. package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +5 -3
  75. package/dist/collection/components/business-forms/owner-form/owner-form-inputs.js +4 -2
  76. package/dist/collection/components/business-forms/owner-form/owner-form.js +46 -1
  77. package/dist/collection/components/business-forms/payment-provisioning/additional-questions/additional-questions-form-step.js +1 -1
  78. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +6 -114
  79. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
  80. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +8 -0
  81. package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-inputs.js +4 -2
  82. package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-form-step.js +435 -0
  83. package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-list.js +52 -0
  84. package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-options.js +72 -0
  85. package/dist/collection/components/business-forms/payment-provisioning/justifi-payment-provisioning.js +1 -1
  86. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-steps.js +3 -2
  87. package/dist/collection/components/business-forms/schemas/business-bank-account-schema.js +10 -38
  88. package/dist/collection/components/business-forms/schemas/business-core-info-schema.js +1 -1
  89. package/dist/collection/components/business-forms/schemas/business-identity-schema.js +7 -3
  90. package/dist/collection/components/business-forms/schemas/schema-validations.js +8 -5
  91. package/dist/collection/components/business-forms/utils/business-form-options.js +50 -0
  92. package/dist/collection/components/business-forms/utils/country-config.js +2 -0
  93. package/dist/collection/ui-components/form/form-control-file.js +1 -1
  94. package/dist/docs.json +496 -64
  95. package/dist/esm/{Analytics-Cg17Xhj_.js → Analytics-5J6H0ALl.js} +2 -2
  96. package/dist/esm/{Plaid-l6nNIjab.js → Plaid-BM3JUIG5.js} +15 -19
  97. package/dist/esm/{additional-questions-form-step_14.entry.js → additional-questions-form-step_15.entry.js} +377 -169
  98. package/dist/esm/additional-questions_5.entry.js +8 -8
  99. package/dist/esm/additional-statement_8.entry.js +1 -1
  100. package/dist/esm/bank-account-billing-form-simple_4.entry.js +4 -4
  101. package/dist/esm/bank-account-document-form-inputs.entry.js +19 -0
  102. package/dist/esm/bank-account-form.entry.js +2 -2
  103. package/dist/esm/{business-form-options-DRalxlqN.js → business-form-options-DXjZp4Rl.js} +51 -1
  104. package/dist/esm/{business-identity-schema-0Q3kck3C.js → business-identity-schema-D8L_UfWl.js} +11 -7
  105. package/dist/esm/{business.service-C31wbMVs.js → business.service-C4BD3pf7.js} +1 -1
  106. package/dist/esm/card-form.entry.js +2 -2
  107. package/dist/esm/{check-pkg-version-D-rHqtUI.js → check-pkg-version-C7cHTIM0.js} +1 -1
  108. package/dist/esm/{checkout.service-cVdOGDuI.js → checkout.service-DmWeKNQs.js} +1 -1
  109. package/dist/esm/{country-config-CdvhLcnT.js → country-config-BW2dUoTJ.js} +2 -0
  110. package/dist/esm/dispute-notification_2.entry.js +6 -6
  111. package/dist/esm/{event-types-DalU_6SB.js → event-types-eIqsrwmW.js} +1 -1
  112. package/dist/esm/form-address-fields_3.entry.js +1 -1
  113. package/dist/esm/form-control-number_2.entry.js +5 -4
  114. package/dist/esm/{get-business-Gg6qn5on.js → get-business-DtFHdc37.js} +2 -2
  115. package/dist/esm/{get-payment-details-BiWgSJau.js → get-payment-details-26GxiYgv.js} +2 -2
  116. package/dist/esm/{get-subaccounts-CkjZeR9U.js → get-subaccounts-xkGMPstt.js} +2 -2
  117. package/dist/esm/hidden-input_2.entry.js +1 -1
  118. package/dist/esm/{index.esm-BHdVU4hV.js → index.esm-KCSohgHx.js} +1 -18
  119. package/dist/esm/justifi-apple-pay_11.entry.js +8 -8
  120. package/dist/esm/justifi-bank-account-billing-form-simple.entry.js +5 -5
  121. package/dist/esm/justifi-bank-account-form.entry.js +5 -5
  122. package/dist/esm/justifi-billing-form-full.entry.js +1 -1
  123. package/dist/esm/justifi-billing-form.entry.js +1 -1
  124. package/dist/esm/justifi-business-details.entry.js +8 -8
  125. package/dist/esm/justifi-business-form.entry.js +13 -13
  126. package/dist/esm/justifi-card-billing-form-simple.entry.js +1 -1
  127. package/dist/esm/justifi-card-form.entry.js +5 -5
  128. package/dist/esm/justifi-checkout.entry.js +5 -5
  129. package/dist/esm/justifi-checkouts-list-filters.entry.js +2 -2
  130. package/dist/esm/justifi-checkouts-list.entry.js +8 -8
  131. package/dist/esm/justifi-dispute-management.entry.js +7 -7
  132. package/dist/esm/justifi-gross-payment-chart.entry.js +6 -6
  133. package/dist/esm/justifi-order-terminals.entry.js +9 -9
  134. package/dist/esm/justifi-payment-details.entry.js +8 -8
  135. package/dist/esm/justifi-payment-provisioning.entry.js +9 -9
  136. package/dist/esm/justifi-payment-transactions-list.entry.js +7 -7
  137. package/dist/esm/justifi-payments-list-filters.entry.js +1 -1
  138. package/dist/esm/justifi-payments-list.entry.js +7 -7
  139. package/dist/esm/justifi-payout-details.entry.js +8 -8
  140. package/dist/esm/justifi-payout-transactions-list.entry.js +7 -7
  141. package/dist/esm/justifi-payouts-list-filters.entry.js +2 -2
  142. package/dist/esm/justifi-payouts-list.entry.js +9 -9
  143. package/dist/esm/justifi-refund-payment.entry.js +9 -9
  144. package/dist/esm/justifi-save-new-payment-method.entry.js +1 -1
  145. package/dist/esm/justifi-season-interruption-insurance.entry.js +6 -6
  146. package/dist/esm/justifi-skeleton.entry.js +1 -1
  147. package/dist/esm/justifi-terminal-orders-list-filters.entry.js +2 -2
  148. package/dist/esm/justifi-terminal-orders-list.entry.js +6 -6
  149. package/dist/esm/justifi-terminals-list-filters.entry.js +2 -2
  150. package/dist/esm/justifi-terminals-list.entry.js +8 -8
  151. package/dist/esm/loader.js +1 -1
  152. package/dist/esm/{package-B6YPrwyC.js → package-8R9xLun-.js} +1 -1
  153. package/dist/esm/payment-method-option.entry.js +1 -1
  154. package/dist/esm/{payment-provisioning-actions-cl5xIYnF.js → payment-provisioning-actions-fWdNDUdq.js} +2 -2
  155. package/dist/esm/payment-provisioning-form-buttons_2.entry.js +3 -2
  156. package/dist/esm/{payment.service-5_u-UzTY.js → payment.service-CWR7jF-K.js} +1 -1
  157. package/dist/esm/{payout.service-D2zS5y8N.js → payout.service-CFU362cH.js} +1 -1
  158. package/dist/esm/{payouts-status-DCjCGTaa.js → payouts-status-D2G7FKu1.js} +2 -2
  159. package/dist/esm/{plaid.service-BiJ65YG8.js → plaid.service-0hd1i5Ga.js} +1 -1
  160. package/dist/esm/{schema-validations-A1o1biOB.js → schema-validations-CjqWFLKt.js} +11 -8
  161. package/dist/esm/styled-host-D84RBv1W.js +9 -0
  162. package/dist/esm/{terminal.service-CIxDfM7V.js → terminal.service-Dr6dERcJ.js} +1 -1
  163. package/dist/esm/{utils-C1B2hVAB.js → utils-q7KOrlSX.js} +1 -1
  164. package/dist/esm/webcomponents.js +1 -1
  165. package/dist/module/Plaid.js +15 -19
  166. package/dist/module/additional-questions-form-step2.js +11 -5
  167. package/dist/module/bank-account-document-form-inputs.js +55 -1
  168. package/dist/module/business-bank-account-form-step2.js +24 -177
  169. package/dist/module/business-core-info-form-step2.js +2 -2
  170. package/dist/module/business-core-info-schema.js +1 -1
  171. package/dist/module/business-core-info2.js +3 -3
  172. package/dist/module/business-documents-on-file2.js +1 -1
  173. package/dist/module/business-form-options.js +51 -1
  174. package/dist/module/business-identity-schema.js +7 -3
  175. package/dist/module/business-owners-form-step2.js +8 -0
  176. package/dist/module/business-representative-form-inputs2.js +5 -3
  177. package/dist/module/business-representative2.js +6 -5
  178. package/dist/module/button.js +1 -1
  179. package/dist/module/country-config.js +2 -0
  180. package/dist/module/document-upload-form-step.d.ts +11 -0
  181. package/dist/module/document-upload-form-step.js +6 -0
  182. package/dist/module/document-upload-form-step2.js +397 -0
  183. package/dist/module/document-upload-list.d.ts +11 -0
  184. package/dist/module/document-upload-list.js +6 -0
  185. package/dist/module/document-upload-list2.js +46 -0
  186. package/dist/module/form-control-number2.js +1 -1
  187. package/dist/module/form-control-textarea2.js +1 -1
  188. package/dist/module/form.js +1 -18
  189. package/dist/module/hidden-input2.js +1 -1
  190. package/dist/module/iframe-input2.js +1 -1
  191. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  192. package/dist/module/justifi-checkouts-list.js +2 -2
  193. package/dist/module/justifi-dispute-management.js +1 -1
  194. package/dist/module/justifi-modular-checkout2.js +1 -1
  195. package/dist/module/justifi-order-terminals.js +2 -2
  196. package/dist/module/justifi-payment-details.js +1 -1
  197. package/dist/module/justifi-payment-provisioning.js +33 -27
  198. package/dist/module/justifi-payment-transactions-list.js +2 -2
  199. package/dist/module/justifi-payments-list.js +1 -1
  200. package/dist/module/justifi-payout-details.js +1 -1
  201. package/dist/module/justifi-payout-transactions-list.js +2 -2
  202. package/dist/module/justifi-payouts-list-filters.js +1 -1
  203. package/dist/module/justifi-payouts-list.js +2 -2
  204. package/dist/module/justifi-refund-payment.js +1 -1
  205. package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
  206. package/dist/module/justifi-terminal-orders-list.js +2 -2
  207. package/dist/module/justifi-terminals-list-filters.js +1 -1
  208. package/dist/module/justifi-terminals-list.js +2 -2
  209. package/dist/module/owner-form-inputs2.js +5 -3
  210. package/dist/module/owner-form2.js +10 -1
  211. package/dist/module/package.js +1 -1
  212. package/dist/module/parts.js +1 -1
  213. package/dist/module/payment-provisioning-actions.js +1 -1
  214. package/dist/module/payment-provisioning-form-steps2.js +35 -28
  215. package/dist/module/plaid-verification2.js +1 -1
  216. package/dist/module/schema-validations.js +8 -5
  217. package/dist/module/skeleton.js +1 -1
  218. package/dist/module/styled-host.js +1 -1
  219. package/dist/module/table.js +1 -1
  220. package/dist/module/terminal-quantity-selector2.js +1 -1
  221. package/dist/types/api/Document.d.ts +15 -2
  222. package/dist/types/components/business-forms/owner-form/owner-form.d.ts +2 -0
  223. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +1 -12
  224. package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-form-step.d.ts +44 -0
  225. package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-list.d.ts +6 -0
  226. package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-options.d.ts +44 -0
  227. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-form-steps.d.ts +1 -0
  228. package/dist/types/components/business-forms/schemas/business-bank-account-schema.d.ts +4 -4
  229. package/dist/types/components/business-forms/utils/business-form-options.d.ts +1 -0
  230. package/dist/types/components.d.ts +67 -0
  231. package/dist/webcomponents/{p-oTtn8xDw.js → p--RbNhyet.js} +1 -1
  232. package/dist/webcomponents/{p-d5e7291a.entry.js → p-04d6d725.entry.js} +1 -1
  233. package/dist/webcomponents/{p-8e821593.entry.js → p-086f7eea.entry.js} +1 -1
  234. package/dist/webcomponents/{p-ca87c609.entry.js → p-0a4fcb15.entry.js} +1 -1
  235. package/dist/webcomponents/{p-b0b6083f.entry.js → p-0b169fac.entry.js} +1 -1
  236. package/dist/webcomponents/{p-f1b9cbf0.entry.js → p-0e4cda77.entry.js} +1 -1
  237. package/dist/webcomponents/{p-b62ff001.entry.js → p-1e34c488.entry.js} +1 -1
  238. package/dist/webcomponents/{p-c4415366.entry.js → p-29b82954.entry.js} +1 -1
  239. package/dist/webcomponents/{p-89844a98.entry.js → p-2e063c5d.entry.js} +1 -1
  240. package/dist/webcomponents/p-37676092.entry.js +1 -0
  241. package/dist/webcomponents/p-3960e6b7.entry.js +1 -0
  242. package/dist/webcomponents/{p-e322dcba.entry.js → p-3bcac405.entry.js} +1 -1
  243. package/dist/webcomponents/{p-c4767c7b.entry.js → p-3e10a0de.entry.js} +1 -1
  244. package/dist/webcomponents/{p-8964f4ca.entry.js → p-48a866ae.entry.js} +1 -1
  245. package/dist/webcomponents/{p-3cefb032.entry.js → p-4b14b7e7.entry.js} +1 -1
  246. package/dist/webcomponents/p-54ee2a30.entry.js +1 -0
  247. package/dist/webcomponents/{p-397b28ba.entry.js → p-562447ad.entry.js} +4 -4
  248. package/dist/webcomponents/p-58adef16.entry.js +1 -0
  249. package/dist/webcomponents/{p-afe714cb.entry.js → p-5f071ee0.entry.js} +1 -1
  250. package/dist/webcomponents/{p-d1eabad2.entry.js → p-6b21947c.entry.js} +1 -1
  251. package/dist/webcomponents/{p-1f34b2f7.entry.js → p-80fdd013.entry.js} +1 -1
  252. package/dist/webcomponents/{p-7ff9ce05.entry.js → p-85c0abdb.entry.js} +1 -1
  253. package/dist/webcomponents/{p-0708cb76.entry.js → p-86eb32d8.entry.js} +1 -1
  254. package/dist/webcomponents/p-8R9xLun-.js +1 -0
  255. package/dist/webcomponents/{p-60c65da4.entry.js → p-8db8d7e7.entry.js} +1 -1
  256. package/dist/webcomponents/{p-65281b33.entry.js → p-8ed1bc07.entry.js} +1 -1
  257. package/dist/webcomponents/p-92d8a14b.entry.js +1 -0
  258. package/dist/webcomponents/{p-63e88b48.entry.js → p-92e7ce54.entry.js} +1 -1
  259. package/dist/webcomponents/{p-9153c121.entry.js → p-947950cc.entry.js} +1 -1
  260. package/dist/webcomponents/{p-c108cd71.entry.js → p-9ce2a98a.entry.js} +1 -1
  261. package/dist/webcomponents/p-B1yVkh15.js +1 -0
  262. package/dist/webcomponents/{p-Bt4GjEWL.js → p-BBSnDYJw.js} +1 -1
  263. package/dist/webcomponents/{p-av6jyzyC.js → p-BSyTbuZy.js} +1 -1
  264. package/dist/webcomponents/{p-APOabprT.js → p-BrFax4_P.js} +1 -1
  265. package/dist/webcomponents/p-BzXQDB0t.js +1 -0
  266. package/dist/webcomponents/{p-BxKbnILQ.js → p-C-zuQNNP.js} +1 -1
  267. package/dist/webcomponents/{p-Cm9f5fyh.js → p-CDu7TeCZ.js} +1 -1
  268. package/dist/webcomponents/{p-BJu1-9kE.js → p-CL8LyqRI.js} +1 -1
  269. package/dist/webcomponents/{p-DO9lqnbB.js → p-CeW0EPHy.js} +1 -1
  270. package/dist/webcomponents/{p-fE5A37L5.js → p-Cz0yhyYu.js} +1 -1
  271. package/dist/webcomponents/p-D9ZHVy-j.js +1 -0
  272. package/dist/webcomponents/{p-CKiAlBsU.js → p-D9sqTVmd.js} +1 -1
  273. package/dist/webcomponents/p-DV4n8kZd.js +1 -0
  274. package/dist/webcomponents/{p-Dk26hk5T.js → p-DdeBubpX.js} +1 -1
  275. package/dist/webcomponents/{p-DjjAx7PF.js → p-DvnFba1A.js} +1 -1
  276. package/dist/webcomponents/p-DzEdYT8R.js +1 -0
  277. package/dist/webcomponents/{p-NZS8uCtH.js → p-Dzv0P2Ly.js} +1 -1
  278. package/dist/webcomponents/p-a2ed63df.entry.js +1 -0
  279. package/dist/webcomponents/{p-a7a1b168.entry.js → p-a3b48ba3.entry.js} +1 -1
  280. package/dist/webcomponents/{p-1f7f2436.entry.js → p-a4520dba.entry.js} +1 -1
  281. package/dist/webcomponents/{p-7ebed752.entry.js → p-a5ad9183.entry.js} +1 -1
  282. package/dist/webcomponents/{p-95317547.entry.js → p-a7e0ab9b.entry.js} +1 -1
  283. package/dist/webcomponents/p-a9976353.entry.js +1 -0
  284. package/dist/webcomponents/{p-d79c5ee4.entry.js → p-b17ce21d.entry.js} +1 -1
  285. package/dist/webcomponents/{p-45668f01.entry.js → p-ba2ab989.entry.js} +1 -1
  286. package/dist/webcomponents/{p-bde7fe69.entry.js → p-c1b48216.entry.js} +1 -1
  287. package/dist/webcomponents/{p-1d294e34.entry.js → p-c2e09203.entry.js} +1 -1
  288. package/dist/webcomponents/{p-90f2f71d.entry.js → p-c3cc4ad6.entry.js} +1 -1
  289. package/dist/webcomponents/p-c9599fc7.entry.js +1 -0
  290. package/dist/webcomponents/{p-58b5e08e.entry.js → p-ca1c2048.entry.js} +1 -1
  291. package/dist/webcomponents/p-cab840bd.entry.js +1 -0
  292. package/dist/webcomponents/{p-e17b92ec.entry.js → p-cc558e25.entry.js} +1 -1
  293. package/dist/webcomponents/{p-BXyADlAH.js → p-czJ2qSU1.js} +1 -1
  294. package/dist/webcomponents/{p-91940d05.entry.js → p-de1ccbea.entry.js} +1 -1
  295. package/dist/webcomponents/{p-0ce6c1b1.entry.js → p-e0e6c2df.entry.js} +1 -1
  296. package/dist/webcomponents/p-n_pmf4AT.js +1 -0
  297. package/dist/webcomponents/p-vUN_uvAi.js +1 -0
  298. package/dist/webcomponents/{p-Ba8jdOkX.js → p-xWuaNtJy.js} +1 -1
  299. package/dist/webcomponents/webcomponents.esm.js +1 -1
  300. package/package.json +14 -14
  301. package/LICENSE +0 -21
  302. package/dist/cjs/styled-host-DAi5SuFa.js +0 -11
  303. package/dist/esm/styled-host-D6byRazK.js +0 -9
  304. package/dist/module/bank-account-document-form-inputs2.js +0 -57
  305. package/dist/webcomponents/p-137a36a4.entry.js +0 -1
  306. package/dist/webcomponents/p-2aac2ab6.entry.js +0 -1
  307. package/dist/webcomponents/p-5G1OMxZz.js +0 -1
  308. package/dist/webcomponents/p-8d6856e7.entry.js +0 -1
  309. package/dist/webcomponents/p-Aacb4jqT.js +0 -1
  310. package/dist/webcomponents/p-B6YPrwyC.js +0 -1
  311. package/dist/webcomponents/p-BqNNwq6C.js +0 -1
  312. package/dist/webcomponents/p-D8ytux5N.js +0 -1
  313. package/dist/webcomponents/p-DrMJliVY.js +0 -1
  314. package/dist/webcomponents/p-XIWgia4J.js +0 -1
  315. package/dist/webcomponents/p-b192f251.entry.js +0 -1
  316. package/dist/webcomponents/p-b436a7d2.entry.js +0 -1
  317. package/dist/webcomponents/p-c8bc235f.entry.js +0 -1
  318. package/dist/webcomponents/p-e6ec9e6d.entry.js +0 -1
  319. package/dist/webcomponents/p-ff8cf16c.entry.js +0 -1
  320. package/dist/webcomponents/p-nb_LhbJq.js +0 -1
@@ -1,30 +1,30 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-CV0Pyo1O.js';
2
- import { C as ComponentErrorSeverity, e as ComponentErrorCodes, E as EntityDocumentType, z as EntityDocumentStorage, B as EntityDocument, w as PLAID_ERROR_SEVERITY, x as PLAID_ERROR_MESSAGES, y as PlaidErrorCodes } from './Plaid-l6nNIjab.js';
3
- import { m as makeGetBusiness, a as makePatchBusiness, c as makePostBankAccount, d as makePostDocumentRecord, e as makeGetIdentity, f as makePatchIdentity, g as makePostIdentity } from './payment-provisioning-actions-cl5xIYnF.js';
4
- import { B as BusinessService, a as BusinessBankAccountService, D as DocumentRecordService, I as IdentityService } from './business.service-C31wbMVs.js';
5
- import { a as additionalQuestionsSchema, d as businessCoreInfoSchemaCAN, b as businessCoreInfoSchemaUSA, g as identitySchemaByCountry, h as addressSchemaByCountry } from './business-identity-schema-0Q3kck3C.js';
6
- import { F as FormController, c as create$3, a as create$6, b as create$8, d as create$7 } from './index.esm-BHdVU4hV.js';
2
+ import { C as ComponentErrorSeverity, e as ComponentErrorCodes, z as EntityDocument, w as PLAID_ERROR_SEVERITY, x as PLAID_ERROR_MESSAGES, y as PlaidErrorCodes } from './Plaid-BM3JUIG5.js';
3
+ import { m as makeGetBusiness, a as makePatchBusiness, c as makePostBankAccount, d as makePostDocumentRecord, e as makeGetIdentity, f as makePatchIdentity, g as makePostIdentity } from './payment-provisioning-actions-fWdNDUdq.js';
4
+ import { B as BusinessService, a as BusinessBankAccountService, D as DocumentRecordService, I as IdentityService } from './business.service-C4BD3pf7.js';
5
+ import { a as additionalQuestionsSchema, d as businessCoreInfoSchemaCAN, b as businessCoreInfoSchemaUSA, g as identitySchemaByCountry, h as addressSchemaByCountry } from './business-identity-schema-D8L_UfWl.js';
6
+ import { F as FormController, c as create$3, a as create$6, b as create$7 } from './index.esm-KCSohgHx.js';
7
7
  import { A as AdditionalQuestions, C as CountryCode, e as CoreBusinessInfo, R as Representative, f as Address, O as Owner } from './Business-BcNb9bVO.js';
8
8
  import { C as CURRENCY_MASK, P as PHONE_MASKS, I as IDENTITY_MASKS } from './form-input-masks-CVaOFfrI.js';
9
9
  import { b as heading2, a0 as buttonSecondary, C as buttonLink, x as label, u as inputDisabled, D as card, aa as table, a6 as tableHeadCell, aj as tableCell, am as alert, A as heading3, a1 as buttonPrimary } from './parts-CPKMvyV_.js';
10
10
  import { P as PaymentProvisioningLoading } from './payment-provisioning-loading-Dve2xQA4.js';
11
- import { b as businessServiceReceivedOptions, a as bankAccountTypeOptions, c as businessClassificationOptions } from './business-form-options-DRalxlqN.js';
11
+ import { a as businessServiceReceivedOptions, c as bankAccountTypeOptions, d as businessClassificationOptions, b as businessTitleOptions } from './business-form-options-DXjZp4Rl.js';
12
12
  import { a as BusinessFormStep, B as BusinessFormClickActions } from './event-types-XYgDHrVL.js';
13
+ import { n as numberOnlyHandler } from './utils-BnjCmwMr.js';
13
14
  import './config-state-kKn89dp1.js';
14
15
  import './dinero-HXpYMWUU.js';
15
16
  import './Pagination-CLHwhyvu.js';
16
- import { n as numberOnlyHandler } from './utils-BnjCmwMr.js';
17
- import { B as accountNumberValidation, C as accountTypeValidation, v as identityNameValidation, D as nicknameValidation, E as bankNameValidation, F as numbersOnlyRegex, G as routingNumberValidation } from './schema-validations-A1o1biOB.js';
17
+ import { B as accountNumberValidation, C as accountTypeValidation, v as identityNameValidation, D as nicknameValidation, E as bankNameValidation, F as numbersOnlyRegex, G as routingNumberValidation } from './schema-validations-CjqWFLKt.js';
18
18
  import { B as Button } from './button-BvzOzV4l.js';
19
19
  import './event-types-CZfYo5-1.js';
20
- import { c as countryLabels } from './country-config-CdvhLcnT.js';
20
+ import { c as countryLabels } from './country-config-BW2dUoTJ.js';
21
21
  import { s as snakeCaseToHumanReadable, b as formatDate, d as formatTime } from './utils-BTtxWI2r.js';
22
22
  import { S as Skeleton } from './skeleton-BEHo2ypu.js';
23
23
  import { u as updateFormValues, a as updateAddressFormValues, b as updateDateOfBirthFormValues } from './input-handlers-1lVyzImK.js';
24
24
  import { A as Api } from './Api-DMd8hTI-.js';
25
- import { S as StyledHost } from './styled-host-D6byRazK.js';
26
- import { P as PlaidService } from './plaid.service-BiJ65YG8.js';
27
- import './utils-C1B2hVAB.js';
25
+ import { S as StyledHost } from './styled-host-D84RBv1W.js';
26
+ import { P as PlaidService } from './plaid.service-0hd1i5Ga.js';
27
+ import './utils-q7KOrlSX.js';
28
28
  import './_commonjsHelpers-BFTU3MAI.js';
29
29
  import './index-cDVGjRkU.js';
30
30
 
@@ -179,7 +179,7 @@ const AdditionalQuestionsFormStep = class {
179
179
  if (this.isLoading) {
180
180
  return h(PaymentProvisioningLoading, null);
181
181
  }
182
- return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Additional Questions"), h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-monetary-provisioning", { name: "business_revenue", label: "What is your business' estimated annual revenue from its primary business activities?", inputHandler: this.inputHandler, errorText: (_a = this.errors) === null || _a === void 0 ? void 0 : _a.business_revenue, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_revenue, maskOptions: CURRENCY_MASK.WHOLE })), h("div", { class: "col-12 col-md-6" }, h("form-control-monetary-provisioning", { 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, maskOptions: CURRENCY_MASK.WHOLE })), h("div", { class: "col-12" }, h("form-control-text", { name: "business_average_transaction_amount", label: "What is your average transaction size?", inputHandler: this.inputHandler, errorText: (_c = this.errors) === null || _c === void 0 ? void 0 : _c.business_average_transaction_amount, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_average_transaction_amount })), h("div", { class: "col-12" }, h("form-control-select", { name: "business_when_service_received", label: "On average, how long after paying will your customers typically receive their goods or services?", inputHandler: this.inputHandler, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.business_when_service_received, options: businessServiceReceivedOptions, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_when_service_received })), h("div", { class: "col-12" }, h("form-control-text", { name: "business_other_payment_details", label: "Is there anything else you would like us to know about how your customers pay the business? (optional)", inputHandler: this.inputHandler, errorText: (_e = this.errors) === null || _e === void 0 ? void 0 : _e.business_other_payment_details, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_other_payment_details }))))));
182
+ return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Additional Questions"), h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-monetary-provisioning", { name: "business_revenue", label: "What is your business' estimated annual revenue from its primary business activities?", inputHandler: this.inputHandler, errorText: (_a = this.errors) === null || _a === void 0 ? void 0 : _a.business_revenue, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_revenue, maskOptions: CURRENCY_MASK.WHOLE })), h("div", { class: "col-12 col-md-6" }, h("form-control-monetary-provisioning", { 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, maskOptions: CURRENCY_MASK.WHOLE })), h("div", { class: "col-12" }, h("form-control-number", { name: "business_average_transaction_amount", label: "What is your average transaction size?", inputHandler: this.inputHandler, errorText: (_c = this.errors) === null || _c === void 0 ? void 0 : _c.business_average_transaction_amount, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_average_transaction_amount })), h("div", { class: "col-12" }, h("form-control-select", { name: "business_when_service_received", label: "On average, how long after paying will your customers typically receive their goods or services?", inputHandler: this.inputHandler, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.business_when_service_received, options: businessServiceReceivedOptions, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_when_service_received })), h("div", { class: "col-12" }, h("form-control-text", { name: "business_other_payment_details", label: "Is there anything else you would like us to know about how your customers pay the business? (optional)", inputHandler: this.inputHandler, errorText: (_e = this.errors) === null || _e === void 0 ? void 0 : _e.business_other_payment_details, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_other_payment_details }))))));
183
183
  }
184
184
  static get watchers() { return {
185
185
  "authToken": ["propChanged"],
@@ -188,15 +188,6 @@ const AdditionalQuestionsFormStep = class {
188
188
  }; }
189
189
  };
190
190
 
191
- const BankAccountDocumentFormInputs = class {
192
- constructor(hostRef) {
193
- registerInstance(this, hostRef);
194
- }
195
- render() {
196
- return (h("div", { key: 'd0dacb95d07d3e4ca9bc2c9f23b6c490871da4e9', class: "row gy-3" }, h("div", { key: '02ed406f38558badf9f591e076b120d09c71f83b', class: "col-12" }, h("form-control-file", { key: '11ff1dc68264b9e5aa561ffe19b423abc1a00c78', name: "voided_check", label: "Voided Check", documentType: EntityDocumentType.voidedCheck, inputHandler: this.inputHandler, onFileSelected: this.storeFiles, errorText: this.errors["voided_check"], multiple: true })), h("div", { key: '71d26407522a75a54489155566c18af1a64c1417', class: "col-12" }, h("form-control-file", { key: '7ea42e03a44c223a5fedc273e94e635e70d54f4b', name: "bank_statement", label: "Bank Statement", documentType: EntityDocumentType.bankStatement, inputHandler: this.inputHandler, onFileSelected: this.storeFiles, errorText: this.errors["bank_statement"], multiple: true }))));
197
- }
198
- };
199
-
200
191
  const BankAccountFormInputs = class {
201
192
  constructor(hostRef) {
202
193
  registerInstance(this, hostRef);
@@ -217,9 +208,6 @@ const BankAccountFormInputsCanada = class {
217
208
  }
218
209
  };
219
210
 
220
- const checkExistingDocs = (documents, documentType) => {
221
- return documents.some((doc) => doc.document_type === documentType);
222
- };
223
211
  const buildCommonFieldRules = (allowOptionalFields) => {
224
212
  if (allowOptionalFields) {
225
213
  return {
@@ -238,30 +226,6 @@ const buildCommonFieldRules = (allowOptionalFields) => {
238
226
  account_number: accountNumberValidation.required('Enter account number'),
239
227
  };
240
228
  };
241
- const buildDocumentRules = (documents, allowOptionalFields) => {
242
- if (allowOptionalFields) {
243
- return {
244
- voided_check: create$8().nullable(),
245
- bank_statement: create$8().nullable(),
246
- };
247
- }
248
- const existingVoidedCheck = checkExistingDocs(documents, EntityDocumentType.voidedCheck);
249
- const existingBankStatement = checkExistingDocs(documents, EntityDocumentType.bankStatement);
250
- const existingDocument = existingVoidedCheck || existingBankStatement;
251
- const documentErrorText = 'Please upload either a voided check or a bank statement. Only one is required.';
252
- return {
253
- voided_check: create$8().when('bank_statement', {
254
- is: (val) => !val && !existingDocument,
255
- then: (schema) => schema.required(documentErrorText),
256
- otherwise: (schema) => schema.notRequired(),
257
- }),
258
- bank_statement: create$8().when('voided_check', {
259
- is: (val) => !val && !existingDocument,
260
- then: (schema) => schema.required(documentErrorText),
261
- otherwise: (schema) => schema.notRequired(),
262
- }),
263
- };
264
- };
265
229
  const buildUSARules = (allowOptionalFields) => {
266
230
  if (allowOptionalFields) {
267
231
  return { routing_number: routingNumberValidation.nullable() };
@@ -286,17 +250,17 @@ const buildCANRules = (allowOptionalFields) => {
286
250
  transit_number: transitNumberValidation.required('Enter transit number'),
287
251
  };
288
252
  };
289
- const businessBankAccountSchemaUSA = (documents, allowOptionalFields) => {
290
- const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildUSARules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
291
- return create$3().shape(shape, [['voided_check', 'bank_statement']]);
253
+ const businessBankAccountSchemaUSA = (allowOptionalFields) => {
254
+ const shape = Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildUSARules(allowOptionalFields));
255
+ return create$3().shape(shape);
292
256
  };
293
- const businessBankAccountSchemaCAN = (documents, allowOptionalFields) => {
294
- const shape = Object.assign(Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildCANRules(allowOptionalFields)), buildDocumentRules(documents, allowOptionalFields));
295
- return create$3().shape(shape, [['voided_check', 'bank_statement']]);
257
+ const businessBankAccountSchemaCAN = (allowOptionalFields) => {
258
+ const shape = Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildCANRules(allowOptionalFields));
259
+ return create$3().shape(shape);
296
260
  };
297
261
  const bankAccountSchemaByCountry = {
298
- [CountryCode.USA]: (allowOptionalFields, documents = []) => businessBankAccountSchemaUSA(documents, allowOptionalFields),
299
- [CountryCode.CAN]: (allowOptionalFields, documents = []) => businessBankAccountSchemaCAN(documents, allowOptionalFields),
262
+ [CountryCode.USA]: (allowOptionalFields) => businessBankAccountSchemaUSA(allowOptionalFields),
263
+ [CountryCode.CAN]: (allowOptionalFields) => businessBankAccountSchemaCAN(allowOptionalFields),
300
264
  };
301
265
 
302
266
  const BusinessBankAccountFormStep = class {
@@ -307,15 +271,13 @@ const BusinessBankAccountFormStep = class {
307
271
  this.formLoading = createEvent(this, "formLoading", 7);
308
272
  this.errors = {};
309
273
  this.bankAccount = {};
310
- this.existingDocuments = [];
311
- this.documentData = new EntityDocumentStorage();
312
274
  this.isLoading = false;
313
275
  this.viewMode = 'manual';
314
276
  this.bankAccountVerification = false;
315
277
  this.platformAccountId = null;
316
278
  this.getSchema = () => {
317
279
  const schema = bankAccountSchemaByCountry[this.country];
318
- return schema(this.allowOptionalFields, this.existingDocuments);
280
+ return schema(this.allowOptionalFields);
319
281
  };
320
282
  this.initializeFormController = () => {
321
283
  this.formController = new FormController(this.getSchema());
@@ -332,12 +294,6 @@ const BusinessBankAccountFormStep = class {
332
294
  this.inputHandler = (name, value) => {
333
295
  this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
334
296
  };
335
- this.storeFiles = (e) => {
336
- const fileList = Array.from(e.detail.fileList);
337
- const docType = e.detail.document_type;
338
- const documentList = fileList.map(file => new EntityDocument({ file, document_type: docType }, this.businessId));
339
- this.documentData[docType] = documentList;
340
- };
341
297
  this.getData = () => {
342
298
  this.isLoading = true;
343
299
  this.getBusiness({
@@ -360,12 +316,10 @@ const BusinessBankAccountFormStep = class {
360
316
  };
361
317
  this.handleChangeBankAccount = () => {
362
318
  this.viewMode = this.plaidAvailable ? 'plaid' : 'manual';
363
- this.documentData = new EntityDocumentStorage();
364
319
  this.initializeFormController();
365
320
  };
366
321
  this.handleCancel = () => {
367
322
  this.viewMode = this.existingBankAccount ? 'readonly' : 'plaid';
368
- this.documentData = new EntityDocumentStorage();
369
323
  this.initializeFormController();
370
324
  };
371
325
  this.handleToggleToManualEntry = () => {
@@ -381,66 +335,6 @@ const BusinessBankAccountFormStep = class {
381
335
  });
382
336
  });
383
337
  };
384
- this.postDocumentRecordData = async (docData) => {
385
- this.isLoading = true;
386
- const payload = docData.record_data;
387
- return new Promise((resolve) => {
388
- this.postDocumentRecord({
389
- payload,
390
- onSuccess: (response) => {
391
- resolve(this.handleDocRecordResponse(docData, response));
392
- },
393
- onError: ({ error, code, severity }) => {
394
- this.errorEvent.emit({
395
- message: error,
396
- errorCode: code,
397
- severity: severity
398
- });
399
- resolve(false);
400
- },
401
- });
402
- });
403
- };
404
- this.handleDocRecordResponse = (docData, response) => {
405
- if (response.error) {
406
- this.errorEvent.emit({
407
- errorCode: ComponentErrorCodes.POST_ERROR,
408
- message: response.error.message,
409
- severity: ComponentErrorSeverity.ERROR,
410
- data: response.error,
411
- });
412
- return false;
413
- }
414
- else {
415
- docData.setPresignedUrl(response.data.presigned_url);
416
- return true;
417
- }
418
- };
419
- this.uploadDocument = async (docData) => {
420
- if (!docData.presigned_url) {
421
- throw new Error('Presigned URL is not set');
422
- }
423
- const fileData = await docData.getFileData();
424
- const response = await fetch(docData.presigned_url, {
425
- method: 'PUT',
426
- body: fileData
427
- });
428
- return this.handleUploadResponse(response);
429
- };
430
- this.handleUploadResponse = (response) => {
431
- if (response.error) {
432
- this.errorEvent.emit({
433
- errorCode: ComponentErrorCodes.POST_ERROR,
434
- message: response.error.message,
435
- severity: ComponentErrorSeverity.ERROR,
436
- data: response.error,
437
- });
438
- return false;
439
- }
440
- else {
441
- return true;
442
- }
443
- };
444
338
  }
445
339
  propChanged() {
446
340
  this.initializeApi();
@@ -479,10 +373,6 @@ const BusinessBankAccountFormStep = class {
479
373
  authToken: this.authToken,
480
374
  service: new BusinessBankAccountService()
481
375
  });
482
- this.postDocumentRecord = makePostDocumentRecord({
483
- authToken: this.authToken,
484
- service: new DocumentRecordService()
485
- });
486
376
  }
487
377
  else {
488
378
  this.errorEvent.emit({
@@ -508,7 +398,7 @@ const BusinessBankAccountFormStep = class {
508
398
  return this.bankAccountVerification || this.existingBankAccount;
509
399
  }
510
400
  processBusinessResponse(data) {
511
- const { bank_accounts, documents, settings, platform_account_id } = data;
401
+ const { bank_accounts, settings, platform_account_id } = data;
512
402
  if (bank_accounts.length > 0) {
513
403
  this.bankAccount = new BankAccount(bank_accounts[bank_accounts.length - 1]);
514
404
  }
@@ -516,7 +406,6 @@ const BusinessBankAccountFormStep = class {
516
406
  this.bankAccount = new BankAccount({});
517
407
  this.bankAccount.business_id = this.businessId;
518
408
  }
519
- this.existingDocuments = documents;
520
409
  this.bankAccountVerification = settings.bank_account_verification === true;
521
410
  this.platformAccountId = platform_account_id;
522
411
  }
@@ -537,11 +426,6 @@ const BusinessBankAccountFormStep = class {
537
426
  const bankAccountPosted = await this.postBankAccountData();
538
427
  if (!bankAccountPosted)
539
428
  return;
540
- }
541
- const documentsUploaded = await this.postBusinessDocuments();
542
- if (!documentsUploaded)
543
- return;
544
- if (this.viewMode === 'manual') {
545
429
  this.viewMode = 'readonly';
546
430
  await this.refreshBankAccountData();
547
431
  }
@@ -605,27 +489,6 @@ const BusinessBankAccountFormStep = class {
605
489
  });
606
490
  });
607
491
  }
608
- async postBusinessDocuments() {
609
- this.isLoading = true;
610
- try {
611
- const docArray = Object.values(this.documentData).flat();
612
- if (!docArray.length) {
613
- return true;
614
- }
615
- const recordsCreated = await Promise.all(docArray.map((docData) => this.postDocumentRecordData(docData))); // Create document records
616
- if (recordsCreated.includes(false)) {
617
- return false;
618
- } // Exit if document record creation fails
619
- const uploadsCompleted = await Promise.all(docArray.map((docData) => this.uploadDocument(docData))); // Upload documents to AWS presigned URLs
620
- if (uploadsCompleted.includes(false)) {
621
- return false;
622
- } // Exit if any upload fails
623
- return true;
624
- }
625
- finally {
626
- this.isLoading = false;
627
- }
628
- }
629
492
  renderBankAccountInputs(disabled) {
630
493
  const defaultValue = this.formController.getInitialValues();
631
494
  return this.country === CountryCode.CAN ? (h("bank-account-form-inputs-canada", { defaultValue: defaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: disabled })) : (h("bank-account-form-inputs", { defaultValue: defaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: disabled }));
@@ -642,14 +505,11 @@ const BusinessBankAccountFormStep = class {
642
505
  renderManualEntryView() {
643
506
  return (h("div", null, this.plaidAvailable && (h("div", { class: "mb-3" }, h(Button, { type: "button", variant: "secondary", onClick: this.handleToggleToPlaidVerification, disabled: this.isLoading, part: buttonSecondary }, "Link bank account with Plaid instead"))), this.renderBankAccountInputs(false), h("div", { class: "mt-3 d-flex gap-2" }, this.showCancel && (h(Button, { variant: "secondary", type: "button", onClick: this.handleCancel, disabled: this.isLoading, part: buttonSecondary }, "Cancel")), h(Button, { variant: "primary", type: "button", onClick: this.handleSaveBankAccount, disabled: this.isLoading, isLoading: this.isLoading }, "Save Bank Account"))));
644
507
  }
645
- renderDocumentUploads() {
646
- return (h("fieldset", { class: "mt-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Document Uploads"), h("form-control-tooltip", { helpText: "One document (voided check or bank statement) is required for underwriting purposes. It needs to visibly show the name tied to the account and the account number. Various file formats such as PDF, DOC, DOCX, JPEG are accepted. Multiple files can be uploaded for each document category." })), h("hr", { class: "mt-2" }), h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading }), h("bank-account-document-form-inputs", { inputHandler: this.inputHandler, errors: this.errors, storeFiles: this.storeFiles })));
647
- }
648
508
  render() {
649
509
  if (this.isLoading) {
650
510
  return h(PaymentProvisioningLoading, null);
651
511
  }
652
- return (h("form", null, h("fieldset", { class: "mb-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Bank Account Info"), h("form-control-tooltip", { helpText: "This direct deposit account is the designated bank account where incoming funds will be deposited. The name of this account must match the registered business name exactly. We are not able to accept personal accounts unless your business is a registered sole proprietorship." })), h("hr", { class: "mt-2" }), this.viewMode === 'readonly' && this.renderReadonlyView(), this.viewMode === 'plaid' && this.renderPlaidView(), this.viewMode === 'manual' && this.renderManualEntryView()), this.viewMode !== 'plaid' && this.renderDocumentUploads()));
512
+ return (h("form", null, h("fieldset", { class: "mb-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Bank Account Info"), h("form-control-tooltip", { helpText: "This direct deposit account is the designated bank account where incoming funds will be deposited. The name of this account must match the registered business name exactly. We are not able to accept personal accounts unless your business is a registered sole proprietorship." })), h("hr", { class: "mt-2" }), this.viewMode === 'readonly' && this.renderReadonlyView(), this.viewMode === 'plaid' && this.renderPlaidView(), this.viewMode === 'manual' && this.renderManualEntryView())));
653
513
  }
654
514
  static get watchers() { return {
655
515
  "authToken": ["propChanged"],
@@ -779,7 +639,7 @@ const BusinessCoreInfoFormStep = class {
779
639
  if (this.isLoading) {
780
640
  return h(PaymentProvisioningLoading, null);
781
641
  }
782
- return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Business Information")), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "legal_name", label: "Business Name", defaultValue: coreInfoDefaultValue.legal_name, errorText: this.errors.legal_name, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (don't use acronyms or abbreviations unless you registered that way)." })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "doing_business_as", label: "Doing Business As (DBA)", defaultValue: coreInfoDefaultValue.doing_business_as, errorText: this.errors.doing_business_as, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (leave blank if you don't have a registered DBA/trade name)" })), h("div", { class: "col-12 col-md-8" }, h("form-control-select", { name: "classification", label: "Business Classification", options: businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-4" }, h("form-control-date", { name: "date_of_incorporation", label: "Date of Registration", defaultValue: coreInfoDefaultValue.date_of_incorporation, errorText: this.errors.date_of_incorporation, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (h("form-control-number-masked", { name: "tax_id", label: countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryLabels[this.country].taxIdHelpText })) : (h("div", null, h("label", { class: "form-label", part: label }, countryLabels[this.country].taxIdLabel), h("div", { class: "input-group mb-3" }, h("input", { type: "text", class: "form-control", part: inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), h("button", { class: "btn btn-secondary", type: "button", part: buttonSecondary, onClick: () => {
642
+ return (h("form", null, h("fieldset", null, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Business Information")), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "legal_name", label: "Business Name", defaultValue: coreInfoDefaultValue.legal_name, errorText: this.errors.legal_name, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (don't use acronyms or abbreviations unless you registered that way)." })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "doing_business_as", label: "Doing Business As (DBA)", defaultValue: coreInfoDefaultValue.doing_business_as, errorText: this.errors.doing_business_as, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (leave blank if you don't have a registered DBA/trade name)" })), h("div", { class: "col-12 col-md-8" }, h("form-control-select", { name: "classification", label: "Business Classification", options: businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-4" }, h("form-control-date", { name: "date_of_incorporation", label: "Date of Registration", defaultValue: coreInfoDefaultValue.date_of_incorporation, errorText: this.errors.date_of_incorporation, inputHandler: this.inputHandler })), h("div", { class: "col-12 col-md-6" }, h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (h("form-control-number-masked", { name: "tax_id", label: countryLabels[this.country].taxIdLabelOptional || countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryLabels[this.country].taxIdHelpText })) : (h("div", null, h("label", { class: "form-label", part: label }, countryLabels[this.country].taxIdLabel), h("div", { class: "input-group mb-3" }, h("input", { type: "text", class: "form-control", part: inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), h("button", { class: "btn btn-secondary", type: "button", part: buttonSecondary, onClick: () => {
783
643
  this.isEditingTaxId = true;
784
644
  // Clear last4-equivalent and current value if any future conditional validation depends on it
785
645
  this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { tax_id: '', tax_id_last4: null }));
@@ -931,6 +791,14 @@ const BusinessOwnersFormStep = class {
931
791
  if (!formsValid) {
932
792
  return;
933
793
  }
794
+ if (!this.allowOptionalFields) {
795
+ const percentages = await Promise.all(this.refs.map(ref => ref.getOwnershipPercentage()));
796
+ const total = percentages.reduce((sum, p) => sum + (parseFloat(p) || 0), 0);
797
+ if (total !== 100) {
798
+ await Promise.all(this.refs.map(ref => ref.setOwnershipPercentageError('Ownership percentages must total 100%')));
799
+ return;
800
+ }
801
+ }
934
802
  const formSubmissions = this.refs.map(ref => ref.submit());
935
803
  const submissionsValid = (await Promise.all(formSubmissions)).every(result => result);
936
804
  if (!submissionsValid) {
@@ -1008,14 +876,14 @@ const BusinessRepresentativeFormInputs = class {
1008
876
  }
1009
877
  render() {
1010
878
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1011
- return (h("form", { key: 'ef49167cc726b3d4efa128503553a77a7627ebee' }, h("fieldset", { key: '3714ce7eab6e9cee062911564d1c2635b68dfc8b' }, h("div", { key: '4f27236b0438e29d7449bf5e9f71c00c7245effa', class: "d-flex align-items-center gap-2" }, h("legend", { key: 'adc144da314549264571b245c5388ab56c1dbbf1', class: "mb-0", part: heading2 }, "Representative"), h("form-control-tooltip", { key: 'bcc76add04febe984427103a594aa63cab17bd27', helpText: "The representative for your business needs to be someone who has significant control over managing your business's finance. You will have an opportunity to add owners later in the form." })), h("hr", { key: '98bfed19989ee57e451a7005f3e60af16cc5d3b5', class: "mt-2" }), h("div", { key: '8f5e0e3deed2627ecf9f77290f268c0e2ee68bfa', class: "row gy-3" }, h("div", { key: 'b1205284a54a608b9c3b6be386e134849c9c6b25', class: "col-12 col-md-8" }, h("form-control-text", { key: '36fcd91ca263adfd9fb69dc88f15404f93a8bc13', name: "name", label: "Full Name", defaultValue: (_a = this.representativeDefaultValue) === null || _a === void 0 ? void 0 : _a.name, errorText: this.errors.name, inputHandler: this.inputHandler })), h("div", { key: '879337d3c6a120f5dc9de3cd3364b34b9c4689df', class: "col-12 col-md-4" }, h("form-control-text", { key: 'ff2e4d29e76b93693735b35cbaca4416f0cd28a0', name: "title", label: "Title", defaultValue: (_b = this.representativeDefaultValue) === null || _b === void 0 ? void 0 : _b.title, errorText: this.errors.title, inputHandler: this.inputHandler, helpText: "Role at your business, e.g. President, CEO, Treasurer." })), h("div", { key: '2a011b74b4c203ae4a309d7d76ea8fd0631a5f2c', class: "col-12 col-md-6" }, h("form-control-text", { key: '1ef20c59829ed3abe81cc53355bbafd5d4894360', name: "email", label: "Email Address", defaultValue: (_c = this.representativeDefaultValue) === null || _c === void 0 ? void 0 : _c.email, errorText: this.errors.email, inputHandler: this.inputHandler })), h("div", { key: '460dad175238fdfea8c79666343943a95aac0fd5', class: "col-12 col-md-6" }, h("form-control-number-masked", { key: '7bd3ad79f6da1d33e38c2246d9c0378c2ef8b7d7', name: "phone", label: "Phone Number", defaultValue: (_d = this.representativeDefaultValue) === null || _d === void 0 ? void 0 : _d.phone, errorText: this.errors.phone, inputHandler: this.inputHandler, mask: PHONE_MASKS.US })), h("div", { key: 'cda84bfc9f88a35177a42b7f9ec4c58292600c0b', class: "col-12 col-md-4" }, h("form-control-date", { key: '5ed66fabc97afc94a5839135add25dbcb5237900', name: "dob_full", label: "Birth Date", defaultValue: (_e = this.representativeDefaultValue) === null || _e === void 0 ? void 0 : _e.dob_full, errorText: this.errors.dob_full, inputHandler: this.inputHandler, onFormControlInput: (e) => updateDateOfBirthFormValues(e, this.formController), helpText: "Must be 18 or older." })), h("div", { key: '0e19619fd081ea9dacd0eb25388a4c7b2c993312', class: "col-12 col-md-8" }, (!((_f = this.representativeDefaultValue) === null || _f === void 0 ? void 0 : _f.ssn_last4) || this.isEditingIdentification) ? (h("form-control-number-masked", { name: "identification_number", label: countryLabels[this.country].idNumberLabel, defaultValue: this.isEditingIdentification ? '' : (_g = this.representativeDefaultValue) === null || _g === void 0 ? void 0 : _g.identification_number, errorText: this.errors.identification_number, inputHandler: this.inputHandler, mask: IDENTITY_MASKS[this.country], helpText: countryLabels[this.country].identityHelpText })) : (h("div", null, h("label", { class: "form-label", part: label }, countryLabels[this.country].idNumberLabel), h("div", { class: "input-group mb-3" }, h("input", { type: "text", class: "form-control", part: inputDisabled, value: `****${(_h = this.representativeDefaultValue) === null || _h === void 0 ? void 0 : _h.ssn_last4}`, disabled: true }), h("button", { class: "btn btn-secondary", type: "button", part: buttonSecondary, onClick: () => {
879
+ return (h("form", { key: '2346f250e4e2982b5b5b2624d039f551b5b5ed4e' }, h("fieldset", { key: '7b496e6157e5eec02ef0d263c68fbd1e001c75ac' }, h("div", { key: 'b86d993c7fbee2269e48c7d4ea51826f199fecd4', class: "d-flex align-items-center gap-2" }, h("legend", { key: '2b013e6068bbbca54a0852093ab4a2fae4ce64d2', class: "mb-0", part: heading2 }, "Representative"), h("form-control-tooltip", { key: '01e0f1d6ba2d5ee852593f7015a3ba7e0d980df9', helpText: "The representative for your business needs to be someone who has significant control over managing your business's finance. You will have an opportunity to add owners later in the form." })), h("hr", { key: '4bec34756ec7081e01809175bc3d2b6af0532537', class: "mt-2" }), h("div", { key: '6965720fabb1f12c6bb3c5a81f74ae12f44037b2', class: "row gy-3" }, h("div", { key: 'efbb768ba1e66d5ef47f792c39a17921b40e0eba', class: "col-12 col-md-8" }, h("form-control-text", { key: '28477d3798ba7d14aee9201e84b276d8e85a21df', name: "name", label: "Full Name", defaultValue: (_a = this.representativeDefaultValue) === null || _a === void 0 ? void 0 : _a.name, errorText: this.errors.name, inputHandler: this.inputHandler })), h("div", { key: '28f17ccbe4da476256acd9c5a4e78a6a641ba6e9', class: "col-12 col-md-4" }, h("form-control-select", { key: 'dae6a93a0bc057abb97024277be0f10de01514e2', name: "title", label: "Title", options: businessTitleOptions, defaultValue: (_b = this.representativeDefaultValue) === null || _b === void 0 ? void 0 : _b.title, errorText: this.errors.title, inputHandler: this.inputHandler })), h("div", { key: '2f9a45774adaa0040df2da1a8000d1ee61e16bf5', class: "col-12 col-md-6" }, h("form-control-text", { key: '66a2a1ea8b54c03c012d76a74654ee19a9f958a7', name: "email", label: "Email Address", defaultValue: (_c = this.representativeDefaultValue) === null || _c === void 0 ? void 0 : _c.email, errorText: this.errors.email, inputHandler: this.inputHandler })), h("div", { key: '3b34f0cb11d358db2220c01aac90e8b7ba3cc01b', class: "col-12 col-md-6" }, h("form-control-number-masked", { key: '52c62ec653fb917a248a302f7cb5ad46dc7bcc23', name: "phone", label: "Phone Number", defaultValue: (_d = this.representativeDefaultValue) === null || _d === void 0 ? void 0 : _d.phone, errorText: this.errors.phone, inputHandler: this.inputHandler, mask: PHONE_MASKS.US })), h("div", { key: 'd287ec225af1541cca227d3b8bc54466cbb86b07', class: "col-12 col-md-4" }, h("form-control-date", { key: '7e1ff6cc40b01dc7f6ad0ad84d73c0e59eea0d6f', name: "dob_full", label: "Birth Date", defaultValue: (_e = this.representativeDefaultValue) === null || _e === void 0 ? void 0 : _e.dob_full, errorText: this.errors.dob_full, inputHandler: this.inputHandler, onFormControlInput: (e) => updateDateOfBirthFormValues(e, this.formController), helpText: "Must be 18 or older." })), h("div", { key: '283b09c845f1a12f4974f82a26fffbf7c5f608ba', class: "col-12 col-md-8" }, (!((_f = this.representativeDefaultValue) === null || _f === void 0 ? void 0 : _f.ssn_last4) || this.isEditingIdentification) ? (h("form-control-number-masked", { name: "identification_number", label: this.country === CountryCode.CAN ? countryLabels[this.country].idNumberLabelOptional : countryLabels[this.country].idNumberLabel, defaultValue: this.isEditingIdentification ? '' : (_g = this.representativeDefaultValue) === null || _g === void 0 ? void 0 : _g.identification_number, errorText: this.errors.identification_number, inputHandler: this.inputHandler, mask: IDENTITY_MASKS[this.country], helpText: countryLabels[this.country].identityHelpText })) : (h("div", null, h("label", { class: "form-label", part: label }, this.country === CountryCode.CAN ? countryLabels[this.country].idNumberLabelOptional : countryLabels[this.country].idNumberLabel), h("div", { class: "input-group mb-3" }, h("input", { type: "text", class: "form-control", part: inputDisabled, value: `****${(_h = this.representativeDefaultValue) === null || _h === void 0 ? void 0 : _h.ssn_last4}`, disabled: true }), h("button", { class: "btn btn-secondary", type: "button", part: buttonSecondary, onClick: () => {
1012
880
  this.isEditingIdentification = true;
1013
881
  // Clear current value to force validation
1014
882
  updateFormValues(this.formController, {
1015
883
  identification_number: '',
1016
884
  ssn_last4: null
1017
885
  });
1018
- } }, "Change"))))), h("div", { key: '6647390b209f5a630bf60e8952a7b0e70c92ca8a', class: "col-12" }, h("identity-address-form", { key: '9755d0450fc8d83ba0a98a304455df346ff33e7f', errors: this.errors.address, defaultValues: (_j = this.representativeDefaultValue) === null || _j === void 0 ? void 0 : _j.address, handleFormUpdate: this.onAddressFormUpdate, country: this.country }))))));
886
+ } }, "Change"))))), h("div", { key: '0a40679570df7b85faa7530797ebc21ca8794263', class: "col-12" }, h("identity-address-form", { key: '5a1590251365260413ab63ce9a417d3d71c71e84', errors: this.errors.address, defaultValues: (_j = this.representativeDefaultValue) === null || _j === void 0 ? void 0 : _j.address, handleFormUpdate: this.onAddressFormUpdate, country: this.country }))))));
1019
887
  }
1020
888
  };
1021
889
 
@@ -1268,6 +1136,339 @@ const BusinessTermsConditionsFormStep = class {
1268
1136
  }
1269
1137
  };
1270
1138
 
1139
+ const businessDocumentOptions = [
1140
+ { label: 'Select a document type', value: '' },
1141
+ { label: 'Articles of Incorporation', value: 'articles_of_incorporation' },
1142
+ { label: 'Business Registration', value: 'business_registration' },
1143
+ ];
1144
+ const financialDocumentOptions = [
1145
+ { label: 'Select a document type', value: '' },
1146
+ { label: 'Voided Check', value: 'voided_check' },
1147
+ { label: 'Bank Statement', value: 'bank_statement' },
1148
+ ];
1149
+ const personalDocGroup1Options = [
1150
+ { label: 'Select a document type', value: '' },
1151
+ { label: 'Canadian Passport', value: 'passport' },
1152
+ { label: 'Canadian Driver\'s License', value: 'driver_license' },
1153
+ { label: 'Canadian Government Issued ID Card', value: 'government_id' },
1154
+ { label: 'Permanent Resident Card', value: 'resident_card' },
1155
+ { label: 'Certificate of Indian Status', value: 'status_card' },
1156
+ { label: 'US State Issued Driver\'s License', value: 'driver_license' },
1157
+ ];
1158
+ const personalDocGroup2Options = [
1159
+ { label: 'Select a document type', value: '' },
1160
+ { label: 'Nexus Card (Photo ID)', value: 'nexus_card' },
1161
+ { label: 'Canadian Citizenship/Naturalization Card or Certificate', value: 'citizenship_card' },
1162
+ { label: 'Foreign Passport', value: 'foreign_passport' },
1163
+ { label: 'Canadian Birth Certificate', value: 'birth_certificate' },
1164
+ { label: 'Social Insurance Number (SIN) Card', value: 'sin_card' },
1165
+ { label: 'Social Security Number (SSN) Card', value: 'ssn_card' },
1166
+ ];
1167
+ const staticCategories = [
1168
+ {
1169
+ label: 'Business Document',
1170
+ value: 'business_document',
1171
+ docTypeOptions: businessDocumentOptions,
1172
+ },
1173
+ {
1174
+ label: 'Financial Document',
1175
+ value: 'financial_document',
1176
+ docTypeOptions: financialDocumentOptions,
1177
+ },
1178
+ ];
1179
+ function buildOwnerCategories(owners) {
1180
+ const group1Opts = personalDocGroup1Options.filter(o => o.value !== '');
1181
+ const group2Opts = personalDocGroup2Options.filter(o => o.value !== '');
1182
+ return owners.map(owner => ({
1183
+ label: `${owner.name} - Identity Document`,
1184
+ value: `personal_${owner.id}`,
1185
+ identityId: owner.id,
1186
+ docTypeOptions: [
1187
+ { label: 'Select a document type', value: '' },
1188
+ { label: '── Group 1 ──', value: '_group1_header' },
1189
+ ...group1Opts,
1190
+ { label: '── Group 2 ──', value: '_group2_header' },
1191
+ ...group2Opts,
1192
+ ],
1193
+ }));
1194
+ }
1195
+ const financialOnlyCategories = [
1196
+ {
1197
+ label: 'Financial Document',
1198
+ value: 'financial_document',
1199
+ docTypeOptions: financialDocumentOptions,
1200
+ },
1201
+ ];
1202
+ function buildAllCategories(owners, country) {
1203
+ if (country === CountryCode.USA) {
1204
+ return financialOnlyCategories;
1205
+ }
1206
+ return [...staticCategories, ...buildOwnerCategories(owners)];
1207
+ }
1208
+ const personalDocGroup1Types = new Set(personalDocGroup1Options.filter(o => o.value).map(o => o.value));
1209
+ const personalDocGroup2Types = new Set(personalDocGroup2Options.filter(o => o.value).map(o => o.value));
1210
+
1211
+ const DocumentUploadFormStep = class {
1212
+ constructor(hostRef) {
1213
+ registerInstance(this, hostRef);
1214
+ this.errorEvent = createEvent(this, "error-event", 7);
1215
+ this.stepCompleteEvent = createEvent(this, "complete-form-step-event", 7);
1216
+ this.formLoading = createEvent(this, "formLoading", 7);
1217
+ this.owners = [];
1218
+ this.existingDocuments = [];
1219
+ this.selectedCategory = '';
1220
+ this.selectedDocType = '';
1221
+ this.uploadQueue = [];
1222
+ this.isLoading = false;
1223
+ this.errors = {};
1224
+ this.fileInputKey = 0;
1225
+ this.categories = [];
1226
+ this.getData = () => {
1227
+ this.isLoading = true;
1228
+ this.getBusiness({
1229
+ onSuccess: (response) => {
1230
+ const { owners, documents } = response.data;
1231
+ this.owners = owners || [];
1232
+ this.existingDocuments = documents || [];
1233
+ this.categories = buildAllCategories(this.owners, this.country);
1234
+ },
1235
+ onError: ({ error, code, severity }) => {
1236
+ this.errorEvent.emit({
1237
+ message: error,
1238
+ errorCode: code,
1239
+ severity: severity,
1240
+ });
1241
+ },
1242
+ final: () => {
1243
+ this.isLoading = false;
1244
+ }
1245
+ });
1246
+ };
1247
+ this.handleCategoryChange = (_name, value) => {
1248
+ this.selectedCategory = value;
1249
+ this.selectedDocType = '';
1250
+ };
1251
+ this.handleDocTypeChange = (_name, value) => {
1252
+ if (value.startsWith('_') && value.endsWith('_header'))
1253
+ return;
1254
+ this.selectedDocType = value;
1255
+ };
1256
+ this.handleFileSelected = async (e) => {
1257
+ const fileList = Array.from(e.detail.fileList);
1258
+ const category = this.categories.find(c => c.value === this.selectedCategory);
1259
+ if (!category)
1260
+ return;
1261
+ const docTypeOption = category.docTypeOptions.find(o => o.value === this.selectedDocType);
1262
+ const docTypeLabel = (docTypeOption === null || docTypeOption === void 0 ? void 0 : docTypeOption.label) || this.selectedDocType;
1263
+ const newEntries = fileList.map(file => ({
1264
+ categoryLabel: category.label,
1265
+ categoryValue: category.value,
1266
+ docTypeLabel,
1267
+ docTypeValue: this.selectedDocType,
1268
+ fileName: file.name,
1269
+ file,
1270
+ identityId: category.identityId,
1271
+ status: 'uploading',
1272
+ }));
1273
+ const startIndex = this.uploadQueue.length;
1274
+ this.uploadQueue = [...this.uploadQueue, ...newEntries];
1275
+ this.selectedCategory = '';
1276
+ this.selectedDocType = '';
1277
+ this.fileInputKey++;
1278
+ await Promise.all(newEntries.map(async (entry, i) => {
1279
+ const index = startIndex + i;
1280
+ try {
1281
+ const docData = new EntityDocument({ file: entry.file, document_type: entry.docTypeValue }, this.businessId, entry.identityId);
1282
+ const recordCreated = await this.postDocumentRecordData(docData);
1283
+ if (!recordCreated) {
1284
+ this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: 'error' }) : e);
1285
+ return;
1286
+ }
1287
+ const uploaded = await this.uploadDocument(docData);
1288
+ this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: uploaded ? 'uploaded' : 'error' }) : e);
1289
+ }
1290
+ catch (_a) {
1291
+ this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: 'error' }) : e);
1292
+ }
1293
+ }));
1294
+ };
1295
+ this.postDocumentRecordData = async (docData) => {
1296
+ const payload = docData.record_data;
1297
+ return new Promise((resolve) => {
1298
+ this.postDocumentRecord({
1299
+ payload,
1300
+ onSuccess: (response) => {
1301
+ resolve(this.handleDocRecordResponse(docData, response));
1302
+ },
1303
+ onError: ({ error, code, severity }) => {
1304
+ this.errorEvent.emit({
1305
+ message: error,
1306
+ errorCode: code,
1307
+ severity: severity,
1308
+ });
1309
+ resolve(false);
1310
+ },
1311
+ });
1312
+ });
1313
+ };
1314
+ this.handleDocRecordResponse = (docData, response) => {
1315
+ if (response.error) {
1316
+ this.errorEvent.emit({
1317
+ errorCode: ComponentErrorCodes.POST_ERROR,
1318
+ message: response.error.message,
1319
+ severity: ComponentErrorSeverity.ERROR,
1320
+ data: response.error,
1321
+ });
1322
+ return false;
1323
+ }
1324
+ else {
1325
+ docData.setPresignedUrl(response.data.presigned_url);
1326
+ return true;
1327
+ }
1328
+ };
1329
+ this.uploadDocument = async (docData) => {
1330
+ if (!docData.presigned_url) {
1331
+ throw new Error('Presigned URL is not set');
1332
+ }
1333
+ const fileData = await docData.getFileData();
1334
+ const response = await fetch(docData.presigned_url, {
1335
+ method: 'PUT',
1336
+ body: fileData,
1337
+ });
1338
+ if (!response.ok) {
1339
+ this.errorEvent.emit({
1340
+ errorCode: ComponentErrorCodes.POST_ERROR,
1341
+ message: 'Failed to upload document',
1342
+ severity: ComponentErrorSeverity.ERROR,
1343
+ });
1344
+ return false;
1345
+ }
1346
+ return true;
1347
+ };
1348
+ }
1349
+ propChanged() {
1350
+ this.initializeApi();
1351
+ }
1352
+ watchHandler(newValue) {
1353
+ this.formLoading.emit(newValue);
1354
+ }
1355
+ async validateAndSubmit({ onSuccess }) {
1356
+ const validationErrors = this.validate();
1357
+ if (Object.keys(validationErrors).length > 0) {
1358
+ this.errors = validationErrors;
1359
+ return;
1360
+ }
1361
+ this.errors = {};
1362
+ this.stepCompleteEvent.emit({ response: null, formStep: BusinessFormStep.documentUpload });
1363
+ onSuccess();
1364
+ }
1365
+ componentWillLoad() {
1366
+ this.initializeApi();
1367
+ if (this.getBusiness) {
1368
+ this.getData();
1369
+ }
1370
+ }
1371
+ initializeApi() {
1372
+ if (this.authToken && this.businessId) {
1373
+ this.getBusiness = makeGetBusiness({
1374
+ authToken: this.authToken,
1375
+ businessId: this.businessId,
1376
+ service: new BusinessService()
1377
+ });
1378
+ this.postDocumentRecord = makePostDocumentRecord({
1379
+ authToken: this.authToken,
1380
+ service: new DocumentRecordService()
1381
+ });
1382
+ }
1383
+ else {
1384
+ this.errorEvent.emit({
1385
+ message: 'Missing required props',
1386
+ errorCode: ComponentErrorCodes.MISSING_PROPS,
1387
+ severity: ComponentErrorSeverity.ERROR,
1388
+ });
1389
+ }
1390
+ }
1391
+ get categoryOptions() {
1392
+ return [
1393
+ { label: 'Select a category', value: '' },
1394
+ ...this.categories.map(c => ({ label: c.label, value: c.value })),
1395
+ ];
1396
+ }
1397
+ get docTypeOptions() {
1398
+ if (!this.selectedCategory) {
1399
+ return [{ label: 'Select a category first', value: '' }];
1400
+ }
1401
+ const category = this.categories.find(c => c.value === this.selectedCategory);
1402
+ return (category === null || category === void 0 ? void 0 : category.docTypeOptions) || [{ label: 'Select a category first', value: '' }];
1403
+ }
1404
+ validate() {
1405
+ if (this.allowOptionalFields)
1406
+ return {};
1407
+ const errors = {};
1408
+ const financialDocTypes = ['voided_check', 'bank_statement'];
1409
+ const hasExistingDoc = (types) => this.existingDocuments.some(doc => types.includes(doc.document_type));
1410
+ const hasUploadedDoc = (categoryValue) => this.uploadQueue.some(entry => entry.categoryValue === categoryValue && entry.status === 'uploaded');
1411
+ if (!hasUploadedDoc('financial_document') && !hasExistingDoc(financialDocTypes)) {
1412
+ errors['financial_document'] = 'Please upload a financial document';
1413
+ }
1414
+ if (this.country === CountryCode.CAN) {
1415
+ const businessDocTypes = ['articles_of_incorporation', 'business_registration'];
1416
+ if (!hasUploadedDoc('business_document') && !hasExistingDoc(businessDocTypes)) {
1417
+ errors['business_document'] = 'Please upload a business document';
1418
+ }
1419
+ for (const owner of this.owners) {
1420
+ const ownerCategoryValue = `personal_${owner.id}`;
1421
+ const ownerDocs = this.uploadQueue.filter(entry => entry.categoryValue === ownerCategoryValue && entry.status === 'uploaded');
1422
+ const hasGroup1 = ownerDocs.some(d => personalDocGroup1Types.has(d.docTypeValue));
1423
+ const hasGroup2 = ownerDocs.some(d => personalDocGroup2Types.has(d.docTypeValue));
1424
+ if (!hasGroup1) {
1425
+ errors[`personal_group1_${owner.id}`] =
1426
+ `Please upload a Group 1 identity document for ${owner.name}`;
1427
+ }
1428
+ if (!hasGroup2) {
1429
+ errors[`personal_group2_${owner.id}`] =
1430
+ `Please upload a Group 2 identity document for ${owner.name}`;
1431
+ }
1432
+ }
1433
+ }
1434
+ return errors;
1435
+ }
1436
+ render() {
1437
+ if (this.isLoading) {
1438
+ return h(PaymentProvisioningLoading, null);
1439
+ }
1440
+ return (h("form", null, h("fieldset", null, h("legend", { class: "mb-0", part: heading2 }, "Document Uploads"), h("hr", { class: "mt-2" }), h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading })), h("fieldset", { class: "mt-4" }, h("div", { class: "d-flex align-items-center gap-2" }, h("legend", { class: "mb-0", part: heading2 }, "Add Document"), h("form-control-tooltip", { helpText: "Upload documents one at a time. Select the category and type, then choose a file. For identity documents, two documents from different groups are required per owner." })), h("hr", { class: "mt-2" }), h("div", { class: "row gy-3" }, h("div", { class: "col-12 col-md-6" }, h("form-control-select", { name: "document_category", label: "Document Category", options: this.categoryOptions, defaultValue: this.selectedCategory, inputHandler: this.handleCategoryChange })), h("div", { class: "col-12 col-md-6" }, h("form-control-select", { name: "document_type", label: "Document Type", options: this.docTypeOptions, defaultValue: this.selectedDocType, inputHandler: this.handleDocTypeChange, disabled: !this.selectedCategory })), h("div", { class: "col-12" }, h("form-control-file", { key: this.fileInputKey, name: "document_file", label: "Upload Document", documentType: this.selectedDocType, onFileSelected: this.handleFileSelected, disabled: !this.selectedDocType, multiple: false })))), h("document-upload-list", { documents: this.uploadQueue }), Object.keys(this.errors).length > 0 && (h("div", { class: "alert alert-danger mt-3" }, h("ul", { class: "mb-0" }, Object.values(this.errors).map(err => h("li", null, err)))))));
1441
+ }
1442
+ static get watchers() { return {
1443
+ "authToken": ["propChanged"],
1444
+ "businessId": ["propChanged"],
1445
+ "isLoading": ["watchHandler"]
1446
+ }; }
1447
+ };
1448
+
1449
+ const DocumentUploadList = class {
1450
+ constructor(hostRef) {
1451
+ registerInstance(this, hostRef);
1452
+ this.documents = [];
1453
+ }
1454
+ renderStatus(status) {
1455
+ switch (status) {
1456
+ case 'uploading':
1457
+ return h("span", { class: "badge bg-info" }, "Uploading...");
1458
+ case 'uploaded':
1459
+ return h("span", { class: "badge bg-success" }, "Uploaded");
1460
+ case 'error':
1461
+ return h("span", { class: "badge bg-danger" }, "Error");
1462
+ }
1463
+ }
1464
+ render() {
1465
+ if (!this.documents.length) {
1466
+ return null;
1467
+ }
1468
+ return (h("div", { class: "mt-4" }, h("div", { class: "card", part: card }, h("div", { class: "card-body" }, h("h5", { class: "card-title", part: heading2 }, "Uploaded Documents"), h("div", { class: "table-responsive" }, h("table", { class: "table table-sm table-borderless", part: table }, h("thead", null, h("tr", null, h("th", { style: { width: '25%' }, part: tableHeadCell, scope: "col" }, "Category"), h("th", { style: { width: '25%' }, part: tableHeadCell, scope: "col" }, "Document Type"), h("th", { style: { width: '30%' }, part: tableHeadCell, scope: "col" }, "File Name"), h("th", { style: { width: '20%' }, part: tableHeadCell, scope: "col" }, "Status"))), h("tbody", null, this.documents.map((doc, index) => (h("tr", { class: index === 0 ? 'border-bottom border-top' : 'border-bottom' }, h("td", { part: tableCell }, doc.categoryLabel), h("td", { part: tableCell }, doc.docTypeLabel), h("td", { part: tableCell }, doc.fileName), h("td", { part: tableCell }, this.renderStatus(doc.status))))))))))));
1469
+ }
1470
+ };
1471
+
1271
1472
  const LegalAddressFormStep = class {
1272
1473
  constructor(hostRef) {
1273
1474
  registerInstance(this, hostRef);
@@ -1479,6 +1680,13 @@ const OwnerForm = class {
1479
1680
  async returnOwnerData() {
1480
1681
  return this.ownerId;
1481
1682
  }
1683
+ async getOwnershipPercentage() {
1684
+ var _a;
1685
+ return ((_a = this.formController.values.getValue()) === null || _a === void 0 ? void 0 : _a.ownership_percentage) || null;
1686
+ }
1687
+ async setOwnershipPercentageError(message) {
1688
+ this.formController.setFieldError('ownership_percentage', message);
1689
+ }
1482
1690
  async validate() {
1483
1691
  return this.formController.validate();
1484
1692
  }
@@ -1553,7 +1761,7 @@ const OwnerForm = class {
1553
1761
  });
1554
1762
  }
1555
1763
  render() {
1556
- return (h(Host, { key: '1661676befd63f9308edcb02be179db71b7c9d99', style: { display: 'block' } }, h("form", { key: '4961f358ca8953156477d455cacb19e4dec3cc29', onSubmit: this.validateAndSubmit }, h("fieldset", { key: '27ecfec87ae93a1bdec94f3cc925558dc8f0ff23' }, h("legend", { key: '4c194cf9e08e6fab9982b95a4b12c3c3a8cecdc3', class: "fw-semibold fs-5", part: heading3 }, this.formTitle), h("br", { key: 'ef1f9b184dac866d27cfa245106d90db0954fa51' }), h("div", { key: '2936ecc396220f8b80e5d8454bc6f6f70cb3ae73', class: "row gy-3" }, h("owner-form-inputs", { key: 'f34d38b718ed7fde67102aa1034b5e6377e001f8', ownerDefaultValue: this.formController.getInitialValues(), errors: this.errors, formController: this.formController, country: this.country }), h("div", { key: '2d5266bc1a7f4aeb12cab8a494107f2668b2fb0e', class: "d-flex gap-2 justify-content-start" }, h(Button, { key: '39631fd0364221ac2a274d8aa794a1f3c8d28780', variant: "secondary", type: "button", onClick: this.handleRemoveOwner, hidden: !this.showRemoveButton }, "Remove"), h(Button, { key: '120fbae294f8f67bd14fe0be5dc1bcf881ffd489', variant: "primary", type: "submit", onClick: this.handleAddOwner, disabled: this.isLoading }, this.submitButtonText))), h("hr", { key: '73eccba19a595b67f64139769a495d5a27e02b2f' })))));
1764
+ return (h(Host, { key: 'b168e9f5a52416984e6a04ab5f0771b63ee28b2e', style: { display: 'block' } }, h("form", { key: 'd22a6aae3f5debd30d87b3bd37c67390a46c4590', onSubmit: this.validateAndSubmit }, h("fieldset", { key: '30597bc1f4983bddbdc0ed45e6be7e715d0b9b8e' }, h("legend", { key: '508f2a777bd0422572002053f6c167242252850d', class: "fw-semibold fs-5", part: heading3 }, this.formTitle), h("br", { key: '2dd17c21e931a2a9c15489828c7d1d0542ff4de4' }), h("div", { key: 'e9d7d7a10546e5e1bdabb0a994d994c47cd77bd6', class: "row gy-3" }, h("owner-form-inputs", { key: 'e556391c25a05d3f89601f1e0ac3834a5c26becd', ownerDefaultValue: this.formController.getInitialValues(), errors: this.errors, formController: this.formController, country: this.country }), h("div", { key: '48eb9390459f2ca619914e54726c9a0ae1290e31', class: "d-flex gap-2 justify-content-start" }, h(Button, { key: 'f9ccd8732981cdec9675332cc8f5c14d4938cbad', variant: "secondary", type: "button", onClick: this.handleRemoveOwner, hidden: !this.showRemoveButton }, "Remove"), h(Button, { key: '607a54ce6c4c0af42f3f8c7cbe1374a69752eca3', variant: "primary", type: "submit", onClick: this.handleAddOwner, disabled: this.isLoading }, this.submitButtonText))), h("hr", { key: '9ec1f815d8c3335daf2a4f98c2679930e22956e3' })))));
1557
1765
  }
1558
1766
  static get watchers() { return {
1559
1767
  "isLoading": ["loadingWatcher"]
@@ -1872,4 +2080,4 @@ const PlaidVerification = class {
1872
2080
  }
1873
2081
  };
1874
2082
 
1875
- export { AdditionalQuestionsFormStep as additional_questions_form_step, BankAccountDocumentFormInputs as bank_account_document_form_inputs, BankAccountFormInputs as bank_account_form_inputs, BankAccountFormInputsCanada as bank_account_form_inputs_canada, BusinessBankAccountFormStep as business_bank_account_form_step, BusinessCoreInfoFormStep as business_core_info_form_step, BusinessDocumentsOnFile as business_documents_on_file, BusinessOwnersFormStep as business_owners_form_step, BusinessRepresentativeFormInputs as business_representative_form_inputs, BusinessRepresentativeFormStep as business_representative_form_step, BusinessTermsConditionsFormStep as business_terms_conditions_form_step, LegalAddressFormStep as legal_address_form_step, OwnerForm as owner_form, PlaidVerification as plaid_verification };
2083
+ export { AdditionalQuestionsFormStep as additional_questions_form_step, BankAccountFormInputs as bank_account_form_inputs, BankAccountFormInputsCanada as bank_account_form_inputs_canada, BusinessBankAccountFormStep as business_bank_account_form_step, BusinessCoreInfoFormStep as business_core_info_form_step, BusinessDocumentsOnFile as business_documents_on_file, BusinessOwnersFormStep as business_owners_form_step, BusinessRepresentativeFormInputs as business_representative_form_inputs, BusinessRepresentativeFormStep as business_representative_form_step, BusinessTermsConditionsFormStep as business_terms_conditions_form_step, DocumentUploadFormStep as document_upload_form_step, DocumentUploadList as document_upload_list, LegalAddressFormStep as legal_address_form_step, OwnerForm as owner_form, PlaidVerification as plaid_verification };