@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.
- package/dist/cjs/{Analytics-CITnMj7H.js → Analytics-CexlbLRl.js} +2 -2
- package/dist/cjs/{Plaid-BRSyOOuw.js → Plaid-KasiL5mp.js} +14 -19
- package/dist/cjs/{additional-questions-form-step_14.cjs.entry.js → additional-questions-form-step_15.cjs.entry.js} +378 -169
- package/dist/cjs/additional-questions_5.cjs.entry.js +7 -7
- package/dist/cjs/additional-statement_8.cjs.entry.js +1 -1
- package/dist/cjs/bank-account-billing-form-simple_4.cjs.entry.js +4 -4
- package/dist/cjs/bank-account-document-form-inputs.cjs.entry.js +21 -0
- package/dist/cjs/bank-account-form.cjs.entry.js +2 -2
- package/dist/cjs/{business-form-options-D_nM7NDk.js → business-form-options-CnlrfbQ6.js} +51 -0
- package/dist/cjs/{business-identity-schema-DuFGX6_i.js → business-identity-schema-CC1wOwXd.js} +11 -7
- package/dist/cjs/{business.service-Z9OACEQL.js → business.service-BBovho58.js} +1 -1
- package/dist/cjs/card-form.cjs.entry.js +2 -2
- package/dist/cjs/{check-pkg-version-CZMgXZID.js → check-pkg-version-jeIQGJ8A.js} +1 -1
- package/dist/cjs/{checkout.service-BZOyqXgW.js → checkout.service-C0M9hmsL.js} +1 -1
- package/dist/cjs/{country-config-aJp8ScEs.js → country-config-Ck-eEeZZ.js} +2 -0
- package/dist/cjs/dispute-notification_2.cjs.entry.js +6 -6
- package/dist/cjs/{event-types-AU1B76Vm.js → event-types-DDNVjmfR.js} +1 -1
- package/dist/cjs/form-address-fields_3.cjs.entry.js +1 -1
- package/dist/cjs/form-control-number_2.cjs.entry.js +5 -4
- package/dist/cjs/{get-business-aR-C83KX.js → get-business-Ggw-UjXj.js} +2 -2
- package/dist/cjs/{get-payment-details-dwhA02Zl.js → get-payment-details-BVKRwME1.js} +2 -2
- package/dist/cjs/{get-subaccounts-B1jmSa2d.js → get-subaccounts-RRmcS9xU.js} +2 -2
- package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
- package/dist/cjs/{index.esm-C1ZPG85l.js → index.esm-BNETBIV_.js} +0 -18
- package/dist/cjs/justifi-apple-pay_11.cjs.entry.js +8 -8
- package/dist/cjs/justifi-bank-account-billing-form-simple.cjs.entry.js +5 -5
- package/dist/cjs/justifi-bank-account-form.cjs.entry.js +5 -5
- package/dist/cjs/justifi-billing-form-full.cjs.entry.js +1 -1
- package/dist/cjs/justifi-billing-form.cjs.entry.js +1 -1
- package/dist/cjs/justifi-business-details.cjs.entry.js +8 -8
- package/dist/cjs/justifi-business-form.cjs.entry.js +13 -13
- package/dist/cjs/justifi-card-billing-form-simple.cjs.entry.js +1 -1
- package/dist/cjs/justifi-card-form.cjs.entry.js +5 -5
- package/dist/cjs/justifi-checkout.cjs.entry.js +5 -5
- package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkouts-list.cjs.entry.js +8 -8
- package/dist/cjs/justifi-dispute-management.cjs.entry.js +7 -7
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +6 -6
- package/dist/cjs/justifi-order-terminals.cjs.entry.js +9 -9
- package/dist/cjs/justifi-payment-details.cjs.entry.js +8 -8
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +9 -9
- package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +7 -7
- package/dist/cjs/justifi-payments-list-filters.cjs.entry.js +1 -1
- package/dist/cjs/justifi-payments-list.cjs.entry.js +7 -7
- package/dist/cjs/justifi-payout-details.cjs.entry.js +8 -8
- package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +7 -7
- package/dist/cjs/justifi-payouts-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +9 -9
- package/dist/cjs/justifi-refund-payment.cjs.entry.js +9 -9
- package/dist/cjs/justifi-save-new-payment-method.cjs.entry.js +1 -1
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +6 -6
- package/dist/cjs/justifi-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +6 -6
- package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +2 -2
- package/dist/cjs/justifi-terminals-list.cjs.entry.js +8 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{package-DOiqjXmm.js → package-CDegPd7E.js} +1 -1
- package/dist/cjs/payment-method-option.cjs.entry.js +1 -1
- package/dist/cjs/{payment-provisioning-actions-BiSpysjW.js → payment-provisioning-actions-Cn8bgHKu.js} +2 -2
- package/dist/cjs/payment-provisioning-form-buttons_2.cjs.entry.js +3 -2
- package/dist/cjs/{payment.service-ByrgA_QZ.js → payment.service-CbIxt30x.js} +1 -1
- package/dist/cjs/{payout.service-CnQm_BpU.js → payout.service-DVMvsdAf.js} +1 -1
- package/dist/cjs/{payouts-status-AuS3Mp0V.js → payouts-status-CzS2CLGW.js} +2 -2
- package/dist/cjs/{plaid.service-Dlb8EUR8.js → plaid.service-DNT_DX6z.js} +1 -1
- package/dist/cjs/{schema-validations-DNPcvDh5.js → schema-validations-DackMxv7.js} +11 -8
- package/dist/cjs/styled-host-Ch0-dxF-.js +11 -0
- package/dist/cjs/{terminal.service-BdwHQ3Vv.js → terminal.service-BBHixg-d.js} +1 -1
- package/dist/cjs/{utils-FVGp6se3.js → utils-kDsk4nqH.js} +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/api/Document.js +14 -7
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/business-forms/business-form/business-core-info/business-core-info.js +2 -2
- package/dist/collection/components/business-forms/business-form/business-representative/business-representative.js +5 -3
- package/dist/collection/components/business-forms/owner-form/owner-form-inputs.js +4 -2
- package/dist/collection/components/business-forms/owner-form/owner-form.js +46 -1
- package/dist/collection/components/business-forms/payment-provisioning/additional-questions/additional-questions-form-step.js +1 -1
- package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +6 -114
- package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
- package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +8 -0
- package/dist/collection/components/business-forms/payment-provisioning/business-representative/business-representative-form-inputs.js +4 -2
- package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-form-step.js +435 -0
- package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-list.js +52 -0
- package/dist/collection/components/business-forms/payment-provisioning/document-upload/document-upload-options.js +72 -0
- package/dist/collection/components/business-forms/payment-provisioning/justifi-payment-provisioning.js +1 -1
- package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-form-steps.js +3 -2
- package/dist/collection/components/business-forms/schemas/business-bank-account-schema.js +10 -38
- package/dist/collection/components/business-forms/schemas/business-core-info-schema.js +1 -1
- package/dist/collection/components/business-forms/schemas/business-identity-schema.js +7 -3
- package/dist/collection/components/business-forms/schemas/schema-validations.js +8 -5
- package/dist/collection/components/business-forms/utils/business-form-options.js +50 -0
- package/dist/collection/components/business-forms/utils/country-config.js +2 -0
- package/dist/collection/ui-components/form/form-control-file.js +1 -1
- package/dist/docs.json +496 -64
- package/dist/esm/{Analytics-Cg17Xhj_.js → Analytics-5J6H0ALl.js} +2 -2
- package/dist/esm/{Plaid-l6nNIjab.js → Plaid-BM3JUIG5.js} +15 -19
- package/dist/esm/{additional-questions-form-step_14.entry.js → additional-questions-form-step_15.entry.js} +377 -169
- package/dist/esm/additional-questions_5.entry.js +8 -8
- package/dist/esm/additional-statement_8.entry.js +1 -1
- package/dist/esm/bank-account-billing-form-simple_4.entry.js +4 -4
- package/dist/esm/bank-account-document-form-inputs.entry.js +19 -0
- package/dist/esm/bank-account-form.entry.js +2 -2
- package/dist/esm/{business-form-options-DRalxlqN.js → business-form-options-DXjZp4Rl.js} +51 -1
- package/dist/esm/{business-identity-schema-0Q3kck3C.js → business-identity-schema-D8L_UfWl.js} +11 -7
- package/dist/esm/{business.service-C31wbMVs.js → business.service-C4BD3pf7.js} +1 -1
- package/dist/esm/card-form.entry.js +2 -2
- package/dist/esm/{check-pkg-version-D-rHqtUI.js → check-pkg-version-C7cHTIM0.js} +1 -1
- package/dist/esm/{checkout.service-cVdOGDuI.js → checkout.service-DmWeKNQs.js} +1 -1
- package/dist/esm/{country-config-CdvhLcnT.js → country-config-BW2dUoTJ.js} +2 -0
- package/dist/esm/dispute-notification_2.entry.js +6 -6
- package/dist/esm/{event-types-DalU_6SB.js → event-types-eIqsrwmW.js} +1 -1
- package/dist/esm/form-address-fields_3.entry.js +1 -1
- package/dist/esm/form-control-number_2.entry.js +5 -4
- package/dist/esm/{get-business-Gg6qn5on.js → get-business-DtFHdc37.js} +2 -2
- package/dist/esm/{get-payment-details-BiWgSJau.js → get-payment-details-26GxiYgv.js} +2 -2
- package/dist/esm/{get-subaccounts-CkjZeR9U.js → get-subaccounts-xkGMPstt.js} +2 -2
- package/dist/esm/hidden-input_2.entry.js +1 -1
- package/dist/esm/{index.esm-BHdVU4hV.js → index.esm-KCSohgHx.js} +1 -18
- package/dist/esm/justifi-apple-pay_11.entry.js +8 -8
- package/dist/esm/justifi-bank-account-billing-form-simple.entry.js +5 -5
- package/dist/esm/justifi-bank-account-form.entry.js +5 -5
- package/dist/esm/justifi-billing-form-full.entry.js +1 -1
- package/dist/esm/justifi-billing-form.entry.js +1 -1
- package/dist/esm/justifi-business-details.entry.js +8 -8
- package/dist/esm/justifi-business-form.entry.js +13 -13
- package/dist/esm/justifi-card-billing-form-simple.entry.js +1 -1
- package/dist/esm/justifi-card-form.entry.js +5 -5
- package/dist/esm/justifi-checkout.entry.js +5 -5
- package/dist/esm/justifi-checkouts-list-filters.entry.js +2 -2
- package/dist/esm/justifi-checkouts-list.entry.js +8 -8
- package/dist/esm/justifi-dispute-management.entry.js +7 -7
- package/dist/esm/justifi-gross-payment-chart.entry.js +6 -6
- package/dist/esm/justifi-order-terminals.entry.js +9 -9
- package/dist/esm/justifi-payment-details.entry.js +8 -8
- package/dist/esm/justifi-payment-provisioning.entry.js +9 -9
- package/dist/esm/justifi-payment-transactions-list.entry.js +7 -7
- package/dist/esm/justifi-payments-list-filters.entry.js +1 -1
- package/dist/esm/justifi-payments-list.entry.js +7 -7
- package/dist/esm/justifi-payout-details.entry.js +8 -8
- package/dist/esm/justifi-payout-transactions-list.entry.js +7 -7
- package/dist/esm/justifi-payouts-list-filters.entry.js +2 -2
- package/dist/esm/justifi-payouts-list.entry.js +9 -9
- package/dist/esm/justifi-refund-payment.entry.js +9 -9
- package/dist/esm/justifi-save-new-payment-method.entry.js +1 -1
- package/dist/esm/justifi-season-interruption-insurance.entry.js +6 -6
- package/dist/esm/justifi-skeleton.entry.js +1 -1
- package/dist/esm/justifi-terminal-orders-list-filters.entry.js +2 -2
- package/dist/esm/justifi-terminal-orders-list.entry.js +6 -6
- package/dist/esm/justifi-terminals-list-filters.entry.js +2 -2
- package/dist/esm/justifi-terminals-list.entry.js +8 -8
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{package-B6YPrwyC.js → package-8R9xLun-.js} +1 -1
- package/dist/esm/payment-method-option.entry.js +1 -1
- package/dist/esm/{payment-provisioning-actions-cl5xIYnF.js → payment-provisioning-actions-fWdNDUdq.js} +2 -2
- package/dist/esm/payment-provisioning-form-buttons_2.entry.js +3 -2
- package/dist/esm/{payment.service-5_u-UzTY.js → payment.service-CWR7jF-K.js} +1 -1
- package/dist/esm/{payout.service-D2zS5y8N.js → payout.service-CFU362cH.js} +1 -1
- package/dist/esm/{payouts-status-DCjCGTaa.js → payouts-status-D2G7FKu1.js} +2 -2
- package/dist/esm/{plaid.service-BiJ65YG8.js → plaid.service-0hd1i5Ga.js} +1 -1
- package/dist/esm/{schema-validations-A1o1biOB.js → schema-validations-CjqWFLKt.js} +11 -8
- package/dist/esm/styled-host-D84RBv1W.js +9 -0
- package/dist/esm/{terminal.service-CIxDfM7V.js → terminal.service-Dr6dERcJ.js} +1 -1
- package/dist/esm/{utils-C1B2hVAB.js → utils-q7KOrlSX.js} +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/module/Plaid.js +15 -19
- package/dist/module/additional-questions-form-step2.js +11 -5
- package/dist/module/bank-account-document-form-inputs.js +55 -1
- package/dist/module/business-bank-account-form-step2.js +24 -177
- package/dist/module/business-core-info-form-step2.js +2 -2
- package/dist/module/business-core-info-schema.js +1 -1
- package/dist/module/business-core-info2.js +3 -3
- package/dist/module/business-documents-on-file2.js +1 -1
- package/dist/module/business-form-options.js +51 -1
- package/dist/module/business-identity-schema.js +7 -3
- package/dist/module/business-owners-form-step2.js +8 -0
- package/dist/module/business-representative-form-inputs2.js +5 -3
- package/dist/module/business-representative2.js +6 -5
- package/dist/module/button.js +1 -1
- package/dist/module/country-config.js +2 -0
- package/dist/module/document-upload-form-step.d.ts +11 -0
- package/dist/module/document-upload-form-step.js +6 -0
- package/dist/module/document-upload-form-step2.js +397 -0
- package/dist/module/document-upload-list.d.ts +11 -0
- package/dist/module/document-upload-list.js +6 -0
- package/dist/module/document-upload-list2.js +46 -0
- package/dist/module/form-control-number2.js +1 -1
- package/dist/module/form-control-textarea2.js +1 -1
- package/dist/module/form.js +1 -18
- package/dist/module/hidden-input2.js +1 -1
- package/dist/module/iframe-input2.js +1 -1
- package/dist/module/justifi-checkouts-list-filters.js +1 -1
- package/dist/module/justifi-checkouts-list.js +2 -2
- package/dist/module/justifi-dispute-management.js +1 -1
- package/dist/module/justifi-modular-checkout2.js +1 -1
- package/dist/module/justifi-order-terminals.js +2 -2
- package/dist/module/justifi-payment-details.js +1 -1
- package/dist/module/justifi-payment-provisioning.js +33 -27
- package/dist/module/justifi-payment-transactions-list.js +2 -2
- package/dist/module/justifi-payments-list.js +1 -1
- package/dist/module/justifi-payout-details.js +1 -1
- package/dist/module/justifi-payout-transactions-list.js +2 -2
- package/dist/module/justifi-payouts-list-filters.js +1 -1
- package/dist/module/justifi-payouts-list.js +2 -2
- package/dist/module/justifi-refund-payment.js +1 -1
- package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
- package/dist/module/justifi-terminal-orders-list.js +2 -2
- package/dist/module/justifi-terminals-list-filters.js +1 -1
- package/dist/module/justifi-terminals-list.js +2 -2
- package/dist/module/owner-form-inputs2.js +5 -3
- package/dist/module/owner-form2.js +10 -1
- package/dist/module/package.js +1 -1
- package/dist/module/parts.js +1 -1
- package/dist/module/payment-provisioning-actions.js +1 -1
- package/dist/module/payment-provisioning-form-steps2.js +35 -28
- package/dist/module/plaid-verification2.js +1 -1
- package/dist/module/schema-validations.js +8 -5
- package/dist/module/skeleton.js +1 -1
- package/dist/module/styled-host.js +1 -1
- package/dist/module/table.js +1 -1
- package/dist/module/terminal-quantity-selector2.js +1 -1
- package/dist/types/api/Document.d.ts +15 -2
- package/dist/types/components/business-forms/owner-form/owner-form.d.ts +2 -0
- package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +1 -12
- package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-form-step.d.ts +44 -0
- package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-list.d.ts +6 -0
- package/dist/types/components/business-forms/payment-provisioning/document-upload/document-upload-options.d.ts +44 -0
- package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-form-steps.d.ts +1 -0
- package/dist/types/components/business-forms/schemas/business-bank-account-schema.d.ts +4 -4
- package/dist/types/components/business-forms/utils/business-form-options.d.ts +1 -0
- package/dist/types/components.d.ts +67 -0
- package/dist/webcomponents/{p-oTtn8xDw.js → p--RbNhyet.js} +1 -1
- package/dist/webcomponents/{p-d5e7291a.entry.js → p-04d6d725.entry.js} +1 -1
- package/dist/webcomponents/{p-8e821593.entry.js → p-086f7eea.entry.js} +1 -1
- package/dist/webcomponents/{p-ca87c609.entry.js → p-0a4fcb15.entry.js} +1 -1
- package/dist/webcomponents/{p-b0b6083f.entry.js → p-0b169fac.entry.js} +1 -1
- package/dist/webcomponents/{p-f1b9cbf0.entry.js → p-0e4cda77.entry.js} +1 -1
- package/dist/webcomponents/{p-b62ff001.entry.js → p-1e34c488.entry.js} +1 -1
- package/dist/webcomponents/{p-c4415366.entry.js → p-29b82954.entry.js} +1 -1
- package/dist/webcomponents/{p-89844a98.entry.js → p-2e063c5d.entry.js} +1 -1
- package/dist/webcomponents/p-37676092.entry.js +1 -0
- package/dist/webcomponents/p-3960e6b7.entry.js +1 -0
- package/dist/webcomponents/{p-e322dcba.entry.js → p-3bcac405.entry.js} +1 -1
- package/dist/webcomponents/{p-c4767c7b.entry.js → p-3e10a0de.entry.js} +1 -1
- package/dist/webcomponents/{p-8964f4ca.entry.js → p-48a866ae.entry.js} +1 -1
- package/dist/webcomponents/{p-3cefb032.entry.js → p-4b14b7e7.entry.js} +1 -1
- package/dist/webcomponents/p-54ee2a30.entry.js +1 -0
- package/dist/webcomponents/{p-397b28ba.entry.js → p-562447ad.entry.js} +4 -4
- package/dist/webcomponents/p-58adef16.entry.js +1 -0
- package/dist/webcomponents/{p-afe714cb.entry.js → p-5f071ee0.entry.js} +1 -1
- package/dist/webcomponents/{p-d1eabad2.entry.js → p-6b21947c.entry.js} +1 -1
- package/dist/webcomponents/{p-1f34b2f7.entry.js → p-80fdd013.entry.js} +1 -1
- package/dist/webcomponents/{p-7ff9ce05.entry.js → p-85c0abdb.entry.js} +1 -1
- package/dist/webcomponents/{p-0708cb76.entry.js → p-86eb32d8.entry.js} +1 -1
- package/dist/webcomponents/p-8R9xLun-.js +1 -0
- package/dist/webcomponents/{p-60c65da4.entry.js → p-8db8d7e7.entry.js} +1 -1
- package/dist/webcomponents/{p-65281b33.entry.js → p-8ed1bc07.entry.js} +1 -1
- package/dist/webcomponents/p-92d8a14b.entry.js +1 -0
- package/dist/webcomponents/{p-63e88b48.entry.js → p-92e7ce54.entry.js} +1 -1
- package/dist/webcomponents/{p-9153c121.entry.js → p-947950cc.entry.js} +1 -1
- package/dist/webcomponents/{p-c108cd71.entry.js → p-9ce2a98a.entry.js} +1 -1
- package/dist/webcomponents/p-B1yVkh15.js +1 -0
- package/dist/webcomponents/{p-Bt4GjEWL.js → p-BBSnDYJw.js} +1 -1
- package/dist/webcomponents/{p-av6jyzyC.js → p-BSyTbuZy.js} +1 -1
- package/dist/webcomponents/{p-APOabprT.js → p-BrFax4_P.js} +1 -1
- package/dist/webcomponents/p-BzXQDB0t.js +1 -0
- package/dist/webcomponents/{p-BxKbnILQ.js → p-C-zuQNNP.js} +1 -1
- package/dist/webcomponents/{p-Cm9f5fyh.js → p-CDu7TeCZ.js} +1 -1
- package/dist/webcomponents/{p-BJu1-9kE.js → p-CL8LyqRI.js} +1 -1
- package/dist/webcomponents/{p-DO9lqnbB.js → p-CeW0EPHy.js} +1 -1
- package/dist/webcomponents/{p-fE5A37L5.js → p-Cz0yhyYu.js} +1 -1
- package/dist/webcomponents/p-D9ZHVy-j.js +1 -0
- package/dist/webcomponents/{p-CKiAlBsU.js → p-D9sqTVmd.js} +1 -1
- package/dist/webcomponents/p-DV4n8kZd.js +1 -0
- package/dist/webcomponents/{p-Dk26hk5T.js → p-DdeBubpX.js} +1 -1
- package/dist/webcomponents/{p-DjjAx7PF.js → p-DvnFba1A.js} +1 -1
- package/dist/webcomponents/p-DzEdYT8R.js +1 -0
- package/dist/webcomponents/{p-NZS8uCtH.js → p-Dzv0P2Ly.js} +1 -1
- package/dist/webcomponents/p-a2ed63df.entry.js +1 -0
- package/dist/webcomponents/{p-a7a1b168.entry.js → p-a3b48ba3.entry.js} +1 -1
- package/dist/webcomponents/{p-1f7f2436.entry.js → p-a4520dba.entry.js} +1 -1
- package/dist/webcomponents/{p-7ebed752.entry.js → p-a5ad9183.entry.js} +1 -1
- package/dist/webcomponents/{p-95317547.entry.js → p-a7e0ab9b.entry.js} +1 -1
- package/dist/webcomponents/p-a9976353.entry.js +1 -0
- package/dist/webcomponents/{p-d79c5ee4.entry.js → p-b17ce21d.entry.js} +1 -1
- package/dist/webcomponents/{p-45668f01.entry.js → p-ba2ab989.entry.js} +1 -1
- package/dist/webcomponents/{p-bde7fe69.entry.js → p-c1b48216.entry.js} +1 -1
- package/dist/webcomponents/{p-1d294e34.entry.js → p-c2e09203.entry.js} +1 -1
- package/dist/webcomponents/{p-90f2f71d.entry.js → p-c3cc4ad6.entry.js} +1 -1
- package/dist/webcomponents/p-c9599fc7.entry.js +1 -0
- package/dist/webcomponents/{p-58b5e08e.entry.js → p-ca1c2048.entry.js} +1 -1
- package/dist/webcomponents/p-cab840bd.entry.js +1 -0
- package/dist/webcomponents/{p-e17b92ec.entry.js → p-cc558e25.entry.js} +1 -1
- package/dist/webcomponents/{p-BXyADlAH.js → p-czJ2qSU1.js} +1 -1
- package/dist/webcomponents/{p-91940d05.entry.js → p-de1ccbea.entry.js} +1 -1
- package/dist/webcomponents/{p-0ce6c1b1.entry.js → p-e0e6c2df.entry.js} +1 -1
- package/dist/webcomponents/p-n_pmf4AT.js +1 -0
- package/dist/webcomponents/p-vUN_uvAi.js +1 -0
- package/dist/webcomponents/{p-Ba8jdOkX.js → p-xWuaNtJy.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +14 -14
- package/LICENSE +0 -21
- package/dist/cjs/styled-host-DAi5SuFa.js +0 -11
- package/dist/esm/styled-host-D6byRazK.js +0 -9
- package/dist/module/bank-account-document-form-inputs2.js +0 -57
- package/dist/webcomponents/p-137a36a4.entry.js +0 -1
- package/dist/webcomponents/p-2aac2ab6.entry.js +0 -1
- package/dist/webcomponents/p-5G1OMxZz.js +0 -1
- package/dist/webcomponents/p-8d6856e7.entry.js +0 -1
- package/dist/webcomponents/p-Aacb4jqT.js +0 -1
- package/dist/webcomponents/p-B6YPrwyC.js +0 -1
- package/dist/webcomponents/p-BqNNwq6C.js +0 -1
- package/dist/webcomponents/p-D8ytux5N.js +0 -1
- package/dist/webcomponents/p-DrMJliVY.js +0 -1
- package/dist/webcomponents/p-XIWgia4J.js +0 -1
- package/dist/webcomponents/p-b192f251.entry.js +0 -1
- package/dist/webcomponents/p-b436a7d2.entry.js +0 -1
- package/dist/webcomponents/p-c8bc235f.entry.js +0 -1
- package/dist/webcomponents/p-e6ec9e6d.entry.js +0 -1
- package/dist/webcomponents/p-ff8cf16c.entry.js +0 -1
- 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,
|
|
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-
|
|
4
|
-
import { B as BusinessService, a as BusinessBankAccountService, D as DocumentRecordService, I as IdentityService } from './business.service-
|
|
5
|
-
import { a as additionalQuestionsSchema, d as businessCoreInfoSchemaCAN, b as businessCoreInfoSchemaUSA, g as identitySchemaByCountry, h as addressSchemaByCountry } from './business-identity-schema-
|
|
6
|
-
import { F as FormController, c as create$3, a as create$6, b as create$
|
|
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 {
|
|
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 {
|
|
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-
|
|
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-
|
|
26
|
-
import { P as PlaidService } from './plaid.service-
|
|
27
|
-
import './utils-
|
|
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-
|
|
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 = (
|
|
290
|
-
const shape = Object.assign(Object.assign(
|
|
291
|
-
return create$3().shape(shape
|
|
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 = (
|
|
294
|
-
const shape = Object.assign(Object.assign(
|
|
295
|
-
return create$3().shape(shape
|
|
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
|
|
299
|
-
[CountryCode.CAN]: (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
|
|
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,
|
|
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())
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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,
|
|
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 };
|