@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,32 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-p7cvUYAE.js');
|
|
4
|
-
var Plaid = require('./Plaid-
|
|
5
|
-
var paymentProvisioningActions = require('./payment-provisioning-actions-
|
|
6
|
-
var business_service = require('./business.service-
|
|
7
|
-
var businessIdentitySchema = require('./business-identity-schema-
|
|
8
|
-
var index_esm = require('./index.esm-
|
|
4
|
+
var Plaid = require('./Plaid-KasiL5mp.js');
|
|
5
|
+
var paymentProvisioningActions = require('./payment-provisioning-actions-Cn8bgHKu.js');
|
|
6
|
+
var business_service = require('./business.service-BBovho58.js');
|
|
7
|
+
var businessIdentitySchema = require('./business-identity-schema-CC1wOwXd.js');
|
|
8
|
+
var index_esm = require('./index.esm-BNETBIV_.js');
|
|
9
9
|
var Business = require('./Business-oBifyXkW.js');
|
|
10
10
|
var formInputMasks = require('./form-input-masks-BnNFJ3IJ.js');
|
|
11
11
|
var parts = require('./parts-BXshb_S-.js');
|
|
12
12
|
var paymentProvisioningLoading = require('./payment-provisioning-loading-tM9WWmxv.js');
|
|
13
|
-
var businessFormOptions = require('./business-form-options-
|
|
13
|
+
var businessFormOptions = require('./business-form-options-CnlrfbQ6.js');
|
|
14
14
|
var eventTypes = require('./event-types-DNOUef41.js');
|
|
15
|
+
var utils = require('./utils-DAyWinG2.js');
|
|
15
16
|
require('./config-state-BIgGhhe9.js');
|
|
16
17
|
require('./dinero-BwNN_k7x.js');
|
|
17
18
|
require('./Pagination-Dediz133.js');
|
|
18
|
-
var
|
|
19
|
-
var schemaValidations = require('./schema-validations-DNPcvDh5.js');
|
|
19
|
+
var schemaValidations = require('./schema-validations-DackMxv7.js');
|
|
20
20
|
var button = require('./button-CR9Rl1-o.js');
|
|
21
21
|
require('./event-types-YOY5TKUN.js');
|
|
22
|
-
var countryConfig = require('./country-config-
|
|
22
|
+
var countryConfig = require('./country-config-Ck-eEeZZ.js');
|
|
23
23
|
var utils$1 = require('./utils-BHi4j5rB.js');
|
|
24
24
|
var skeleton = require('./skeleton-DvRCiQlA.js');
|
|
25
25
|
var inputHandlers = require('./input-handlers-_51J5q7J.js');
|
|
26
26
|
var Api = require('./Api-Bukk55YZ.js');
|
|
27
|
-
var styledHost = require('./styled-host-
|
|
28
|
-
var plaid_service = require('./plaid.service-
|
|
29
|
-
require('./utils-
|
|
27
|
+
var styledHost = require('./styled-host-Ch0-dxF-.js');
|
|
28
|
+
var plaid_service = require('./plaid.service-DNT_DX6z.js');
|
|
29
|
+
require('./utils-kDsk4nqH.js');
|
|
30
30
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
31
31
|
require('./index-W-zoNiyM.js');
|
|
32
32
|
|
|
@@ -181,7 +181,7 @@ const AdditionalQuestionsFormStep = class {
|
|
|
181
181
|
if (this.isLoading) {
|
|
182
182
|
return index.h(paymentProvisioningLoading.PaymentProvisioningLoading, null);
|
|
183
183
|
}
|
|
184
|
-
return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Additional Questions"), index.h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-monetary-provisioning", { name: "business_revenue", label: "What is your business' estimated annual revenue from its primary business activities?", inputHandler: this.inputHandler, errorText: (_a = this.errors) === null || _a === void 0 ? void 0 : _a.business_revenue, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_revenue, maskOptions: formInputMasks.CURRENCY_MASK.WHOLE })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-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: formInputMasks.CURRENCY_MASK.WHOLE })), index.h("div", { class: "col-12" }, index.h("form-control-
|
|
184
|
+
return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Additional Questions"), index.h("form-control-tooltip", { helpText: "This information helps us understand the business and identify and monitor trends to safeguard you and your customers." })), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-monetary-provisioning", { name: "business_revenue", label: "What is your business' estimated annual revenue from its primary business activities?", inputHandler: this.inputHandler, errorText: (_a = this.errors) === null || _a === void 0 ? void 0 : _a.business_revenue, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_revenue, maskOptions: formInputMasks.CURRENCY_MASK.WHOLE })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-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: formInputMasks.CURRENCY_MASK.WHOLE })), index.h("div", { class: "col-12" }, index.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 })), index.h("div", { class: "col-12" }, index.h("form-control-select", { name: "business_when_service_received", label: "On average, how long after paying will your customers typically receive their goods or services?", inputHandler: this.inputHandler, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.business_when_service_received, options: businessFormOptions.businessServiceReceivedOptions, defaultValue: additionalQuestionsDefaultValue === null || additionalQuestionsDefaultValue === void 0 ? void 0 : additionalQuestionsDefaultValue.business_when_service_received })), index.h("div", { class: "col-12" }, index.h("form-control-text", { name: "business_other_payment_details", label: "Is there anything else you would like us to know about how your customers pay the business? (optional)", inputHandler: this.inputHandler, errorText: (_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 }))))));
|
|
185
185
|
}
|
|
186
186
|
static get watchers() { return {
|
|
187
187
|
"authToken": ["propChanged"],
|
|
@@ -190,15 +190,6 @@ const AdditionalQuestionsFormStep = class {
|
|
|
190
190
|
}; }
|
|
191
191
|
};
|
|
192
192
|
|
|
193
|
-
const BankAccountDocumentFormInputs = class {
|
|
194
|
-
constructor(hostRef) {
|
|
195
|
-
index.registerInstance(this, hostRef);
|
|
196
|
-
}
|
|
197
|
-
render() {
|
|
198
|
-
return (index.h("div", { key: 'd0dacb95d07d3e4ca9bc2c9f23b6c490871da4e9', class: "row gy-3" }, index.h("div", { key: '02ed406f38558badf9f591e076b120d09c71f83b', class: "col-12" }, index.h("form-control-file", { key: '11ff1dc68264b9e5aa561ffe19b423abc1a00c78', name: "voided_check", label: "Voided Check", documentType: Plaid.EntityDocumentType.voidedCheck, inputHandler: this.inputHandler, onFileSelected: this.storeFiles, errorText: this.errors["voided_check"], multiple: true })), index.h("div", { key: '71d26407522a75a54489155566c18af1a64c1417', class: "col-12" }, index.h("form-control-file", { key: '7ea42e03a44c223a5fedc273e94e635e70d54f4b', name: "bank_statement", label: "Bank Statement", documentType: Plaid.EntityDocumentType.bankStatement, inputHandler: this.inputHandler, onFileSelected: this.storeFiles, errorText: this.errors["bank_statement"], multiple: true }))));
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
|
|
202
193
|
const BankAccountFormInputs = class {
|
|
203
194
|
constructor(hostRef) {
|
|
204
195
|
index.registerInstance(this, hostRef);
|
|
@@ -219,9 +210,6 @@ const BankAccountFormInputsCanada = class {
|
|
|
219
210
|
}
|
|
220
211
|
};
|
|
221
212
|
|
|
222
|
-
const checkExistingDocs = (documents, documentType) => {
|
|
223
|
-
return documents.some((doc) => doc.document_type === documentType);
|
|
224
|
-
};
|
|
225
213
|
const buildCommonFieldRules = (allowOptionalFields) => {
|
|
226
214
|
if (allowOptionalFields) {
|
|
227
215
|
return {
|
|
@@ -240,30 +228,6 @@ const buildCommonFieldRules = (allowOptionalFields) => {
|
|
|
240
228
|
account_number: schemaValidations.accountNumberValidation.required('Enter account number'),
|
|
241
229
|
};
|
|
242
230
|
};
|
|
243
|
-
const buildDocumentRules = (documents, allowOptionalFields) => {
|
|
244
|
-
if (allowOptionalFields) {
|
|
245
|
-
return {
|
|
246
|
-
voided_check: index_esm.create$8().nullable(),
|
|
247
|
-
bank_statement: index_esm.create$8().nullable(),
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
const existingVoidedCheck = checkExistingDocs(documents, Plaid.EntityDocumentType.voidedCheck);
|
|
251
|
-
const existingBankStatement = checkExistingDocs(documents, Plaid.EntityDocumentType.bankStatement);
|
|
252
|
-
const existingDocument = existingVoidedCheck || existingBankStatement;
|
|
253
|
-
const documentErrorText = 'Please upload either a voided check or a bank statement. Only one is required.';
|
|
254
|
-
return {
|
|
255
|
-
voided_check: index_esm.create$8().when('bank_statement', {
|
|
256
|
-
is: (val) => !val && !existingDocument,
|
|
257
|
-
then: (schema) => schema.required(documentErrorText),
|
|
258
|
-
otherwise: (schema) => schema.notRequired(),
|
|
259
|
-
}),
|
|
260
|
-
bank_statement: index_esm.create$8().when('voided_check', {
|
|
261
|
-
is: (val) => !val && !existingDocument,
|
|
262
|
-
then: (schema) => schema.required(documentErrorText),
|
|
263
|
-
otherwise: (schema) => schema.notRequired(),
|
|
264
|
-
}),
|
|
265
|
-
};
|
|
266
|
-
};
|
|
267
231
|
const buildUSARules = (allowOptionalFields) => {
|
|
268
232
|
if (allowOptionalFields) {
|
|
269
233
|
return { routing_number: schemaValidations.routingNumberValidation.nullable() };
|
|
@@ -288,17 +252,17 @@ const buildCANRules = (allowOptionalFields) => {
|
|
|
288
252
|
transit_number: transitNumberValidation.required('Enter transit number'),
|
|
289
253
|
};
|
|
290
254
|
};
|
|
291
|
-
const businessBankAccountSchemaUSA = (
|
|
292
|
-
const shape = Object.assign(Object.assign(
|
|
293
|
-
return index_esm.create$3().shape(shape
|
|
255
|
+
const businessBankAccountSchemaUSA = (allowOptionalFields) => {
|
|
256
|
+
const shape = Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildUSARules(allowOptionalFields));
|
|
257
|
+
return index_esm.create$3().shape(shape);
|
|
294
258
|
};
|
|
295
|
-
const businessBankAccountSchemaCAN = (
|
|
296
|
-
const shape = Object.assign(Object.assign(
|
|
297
|
-
return index_esm.create$3().shape(shape
|
|
259
|
+
const businessBankAccountSchemaCAN = (allowOptionalFields) => {
|
|
260
|
+
const shape = Object.assign(Object.assign({}, buildCommonFieldRules(allowOptionalFields)), buildCANRules(allowOptionalFields));
|
|
261
|
+
return index_esm.create$3().shape(shape);
|
|
298
262
|
};
|
|
299
263
|
const bankAccountSchemaByCountry = {
|
|
300
|
-
[Business.CountryCode.USA]: (allowOptionalFields
|
|
301
|
-
[Business.CountryCode.CAN]: (allowOptionalFields
|
|
264
|
+
[Business.CountryCode.USA]: (allowOptionalFields) => businessBankAccountSchemaUSA(allowOptionalFields),
|
|
265
|
+
[Business.CountryCode.CAN]: (allowOptionalFields) => businessBankAccountSchemaCAN(allowOptionalFields),
|
|
302
266
|
};
|
|
303
267
|
|
|
304
268
|
const BusinessBankAccountFormStep = class {
|
|
@@ -309,15 +273,13 @@ const BusinessBankAccountFormStep = class {
|
|
|
309
273
|
this.formLoading = index.createEvent(this, "formLoading", 7);
|
|
310
274
|
this.errors = {};
|
|
311
275
|
this.bankAccount = {};
|
|
312
|
-
this.existingDocuments = [];
|
|
313
|
-
this.documentData = new Plaid.EntityDocumentStorage();
|
|
314
276
|
this.isLoading = false;
|
|
315
277
|
this.viewMode = 'manual';
|
|
316
278
|
this.bankAccountVerification = false;
|
|
317
279
|
this.platformAccountId = null;
|
|
318
280
|
this.getSchema = () => {
|
|
319
281
|
const schema = bankAccountSchemaByCountry[this.country];
|
|
320
|
-
return schema(this.allowOptionalFields
|
|
282
|
+
return schema(this.allowOptionalFields);
|
|
321
283
|
};
|
|
322
284
|
this.initializeFormController = () => {
|
|
323
285
|
this.formController = new index_esm.FormController(this.getSchema());
|
|
@@ -334,12 +296,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
334
296
|
this.inputHandler = (name, value) => {
|
|
335
297
|
this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { [name]: value }));
|
|
336
298
|
};
|
|
337
|
-
this.storeFiles = (e) => {
|
|
338
|
-
const fileList = Array.from(e.detail.fileList);
|
|
339
|
-
const docType = e.detail.document_type;
|
|
340
|
-
const documentList = fileList.map(file => new Plaid.EntityDocument({ file, document_type: docType }, this.businessId));
|
|
341
|
-
this.documentData[docType] = documentList;
|
|
342
|
-
};
|
|
343
299
|
this.getData = () => {
|
|
344
300
|
this.isLoading = true;
|
|
345
301
|
this.getBusiness({
|
|
@@ -362,12 +318,10 @@ const BusinessBankAccountFormStep = class {
|
|
|
362
318
|
};
|
|
363
319
|
this.handleChangeBankAccount = () => {
|
|
364
320
|
this.viewMode = this.plaidAvailable ? 'plaid' : 'manual';
|
|
365
|
-
this.documentData = new Plaid.EntityDocumentStorage();
|
|
366
321
|
this.initializeFormController();
|
|
367
322
|
};
|
|
368
323
|
this.handleCancel = () => {
|
|
369
324
|
this.viewMode = this.existingBankAccount ? 'readonly' : 'plaid';
|
|
370
|
-
this.documentData = new Plaid.EntityDocumentStorage();
|
|
371
325
|
this.initializeFormController();
|
|
372
326
|
};
|
|
373
327
|
this.handleToggleToManualEntry = () => {
|
|
@@ -383,66 +337,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
383
337
|
});
|
|
384
338
|
});
|
|
385
339
|
};
|
|
386
|
-
this.postDocumentRecordData = async (docData) => {
|
|
387
|
-
this.isLoading = true;
|
|
388
|
-
const payload = docData.record_data;
|
|
389
|
-
return new Promise((resolve) => {
|
|
390
|
-
this.postDocumentRecord({
|
|
391
|
-
payload,
|
|
392
|
-
onSuccess: (response) => {
|
|
393
|
-
resolve(this.handleDocRecordResponse(docData, response));
|
|
394
|
-
},
|
|
395
|
-
onError: ({ error, code, severity }) => {
|
|
396
|
-
this.errorEvent.emit({
|
|
397
|
-
message: error,
|
|
398
|
-
errorCode: code,
|
|
399
|
-
severity: severity
|
|
400
|
-
});
|
|
401
|
-
resolve(false);
|
|
402
|
-
},
|
|
403
|
-
});
|
|
404
|
-
});
|
|
405
|
-
};
|
|
406
|
-
this.handleDocRecordResponse = (docData, response) => {
|
|
407
|
-
if (response.error) {
|
|
408
|
-
this.errorEvent.emit({
|
|
409
|
-
errorCode: Plaid.ComponentErrorCodes.POST_ERROR,
|
|
410
|
-
message: response.error.message,
|
|
411
|
-
severity: Plaid.ComponentErrorSeverity.ERROR,
|
|
412
|
-
data: response.error,
|
|
413
|
-
});
|
|
414
|
-
return false;
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
docData.setPresignedUrl(response.data.presigned_url);
|
|
418
|
-
return true;
|
|
419
|
-
}
|
|
420
|
-
};
|
|
421
|
-
this.uploadDocument = async (docData) => {
|
|
422
|
-
if (!docData.presigned_url) {
|
|
423
|
-
throw new Error('Presigned URL is not set');
|
|
424
|
-
}
|
|
425
|
-
const fileData = await docData.getFileData();
|
|
426
|
-
const response = await fetch(docData.presigned_url, {
|
|
427
|
-
method: 'PUT',
|
|
428
|
-
body: fileData
|
|
429
|
-
});
|
|
430
|
-
return this.handleUploadResponse(response);
|
|
431
|
-
};
|
|
432
|
-
this.handleUploadResponse = (response) => {
|
|
433
|
-
if (response.error) {
|
|
434
|
-
this.errorEvent.emit({
|
|
435
|
-
errorCode: Plaid.ComponentErrorCodes.POST_ERROR,
|
|
436
|
-
message: response.error.message,
|
|
437
|
-
severity: Plaid.ComponentErrorSeverity.ERROR,
|
|
438
|
-
data: response.error,
|
|
439
|
-
});
|
|
440
|
-
return false;
|
|
441
|
-
}
|
|
442
|
-
else {
|
|
443
|
-
return true;
|
|
444
|
-
}
|
|
445
|
-
};
|
|
446
340
|
}
|
|
447
341
|
propChanged() {
|
|
448
342
|
this.initializeApi();
|
|
@@ -481,10 +375,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
481
375
|
authToken: this.authToken,
|
|
482
376
|
service: new business_service.BusinessBankAccountService()
|
|
483
377
|
});
|
|
484
|
-
this.postDocumentRecord = paymentProvisioningActions.makePostDocumentRecord({
|
|
485
|
-
authToken: this.authToken,
|
|
486
|
-
service: new business_service.DocumentRecordService()
|
|
487
|
-
});
|
|
488
378
|
}
|
|
489
379
|
else {
|
|
490
380
|
this.errorEvent.emit({
|
|
@@ -510,7 +400,7 @@ const BusinessBankAccountFormStep = class {
|
|
|
510
400
|
return this.bankAccountVerification || this.existingBankAccount;
|
|
511
401
|
}
|
|
512
402
|
processBusinessResponse(data) {
|
|
513
|
-
const { bank_accounts,
|
|
403
|
+
const { bank_accounts, settings, platform_account_id } = data;
|
|
514
404
|
if (bank_accounts.length > 0) {
|
|
515
405
|
this.bankAccount = new BankAccount(bank_accounts[bank_accounts.length - 1]);
|
|
516
406
|
}
|
|
@@ -518,7 +408,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
518
408
|
this.bankAccount = new BankAccount({});
|
|
519
409
|
this.bankAccount.business_id = this.businessId;
|
|
520
410
|
}
|
|
521
|
-
this.existingDocuments = documents;
|
|
522
411
|
this.bankAccountVerification = settings.bank_account_verification === true;
|
|
523
412
|
this.platformAccountId = platform_account_id;
|
|
524
413
|
}
|
|
@@ -539,11 +428,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
539
428
|
const bankAccountPosted = await this.postBankAccountData();
|
|
540
429
|
if (!bankAccountPosted)
|
|
541
430
|
return;
|
|
542
|
-
}
|
|
543
|
-
const documentsUploaded = await this.postBusinessDocuments();
|
|
544
|
-
if (!documentsUploaded)
|
|
545
|
-
return;
|
|
546
|
-
if (this.viewMode === 'manual') {
|
|
547
431
|
this.viewMode = 'readonly';
|
|
548
432
|
await this.refreshBankAccountData();
|
|
549
433
|
}
|
|
@@ -607,27 +491,6 @@ const BusinessBankAccountFormStep = class {
|
|
|
607
491
|
});
|
|
608
492
|
});
|
|
609
493
|
}
|
|
610
|
-
async postBusinessDocuments() {
|
|
611
|
-
this.isLoading = true;
|
|
612
|
-
try {
|
|
613
|
-
const docArray = Object.values(this.documentData).flat();
|
|
614
|
-
if (!docArray.length) {
|
|
615
|
-
return true;
|
|
616
|
-
}
|
|
617
|
-
const recordsCreated = await Promise.all(docArray.map((docData) => this.postDocumentRecordData(docData))); // Create document records
|
|
618
|
-
if (recordsCreated.includes(false)) {
|
|
619
|
-
return false;
|
|
620
|
-
} // Exit if document record creation fails
|
|
621
|
-
const uploadsCompleted = await Promise.all(docArray.map((docData) => this.uploadDocument(docData))); // Upload documents to AWS presigned URLs
|
|
622
|
-
if (uploadsCompleted.includes(false)) {
|
|
623
|
-
return false;
|
|
624
|
-
} // Exit if any upload fails
|
|
625
|
-
return true;
|
|
626
|
-
}
|
|
627
|
-
finally {
|
|
628
|
-
this.isLoading = false;
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
494
|
renderBankAccountInputs(disabled) {
|
|
632
495
|
const defaultValue = this.formController.getInitialValues();
|
|
633
496
|
return this.country === Business.CountryCode.CAN ? (index.h("bank-account-form-inputs-canada", { defaultValue: defaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: disabled })) : (index.h("bank-account-form-inputs", { defaultValue: defaultValue, errors: this.errors, inputHandler: this.inputHandler, formDisabled: disabled }));
|
|
@@ -644,14 +507,11 @@ const BusinessBankAccountFormStep = class {
|
|
|
644
507
|
renderManualEntryView() {
|
|
645
508
|
return (index.h("div", null, this.plaidAvailable && (index.h("div", { class: "mb-3" }, index.h(button.Button, { type: "button", variant: "secondary", onClick: this.handleToggleToPlaidVerification, disabled: this.isLoading, part: parts.buttonSecondary }, "Link bank account with Plaid instead"))), this.renderBankAccountInputs(false), index.h("div", { class: "mt-3 d-flex gap-2" }, this.showCancel && (index.h(button.Button, { variant: "secondary", type: "button", onClick: this.handleCancel, disabled: this.isLoading, part: parts.buttonSecondary }, "Cancel")), index.h(button.Button, { variant: "primary", type: "button", onClick: this.handleSaveBankAccount, disabled: this.isLoading, isLoading: this.isLoading }, "Save Bank Account"))));
|
|
646
509
|
}
|
|
647
|
-
renderDocumentUploads() {
|
|
648
|
-
return (index.h("fieldset", { class: "mt-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Document Uploads"), index.h("form-control-tooltip", { helpText: "One document (voided check or bank statement) is required for underwriting purposes. It needs to visibly show the name tied to the account and the account number. Various file formats such as PDF, DOC, DOCX, JPEG are accepted. Multiple files can be uploaded for each document category." })), index.h("hr", { class: "mt-2" }), index.h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading }), index.h("bank-account-document-form-inputs", { inputHandler: this.inputHandler, errors: this.errors, storeFiles: this.storeFiles })));
|
|
649
|
-
}
|
|
650
510
|
render() {
|
|
651
511
|
if (this.isLoading) {
|
|
652
512
|
return index.h(paymentProvisioningLoading.PaymentProvisioningLoading, null);
|
|
653
513
|
}
|
|
654
|
-
return (index.h("form", null, index.h("fieldset", { class: "mb-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Bank Account Info"), index.h("form-control-tooltip", { helpText: "This direct deposit account is the designated bank account where incoming funds will be deposited. The name of this account must match the registered business name exactly. We are not able to accept personal accounts unless your business is a registered sole proprietorship." })), index.h("hr", { class: "mt-2" }), this.viewMode === 'readonly' && this.renderReadonlyView(), this.viewMode === 'plaid' && this.renderPlaidView(), this.viewMode === 'manual' && this.renderManualEntryView())
|
|
514
|
+
return (index.h("form", null, index.h("fieldset", { class: "mb-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Bank Account Info"), index.h("form-control-tooltip", { helpText: "This direct deposit account is the designated bank account where incoming funds will be deposited. The name of this account must match the registered business name exactly. We are not able to accept personal accounts unless your business is a registered sole proprietorship." })), index.h("hr", { class: "mt-2" }), this.viewMode === 'readonly' && this.renderReadonlyView(), this.viewMode === 'plaid' && this.renderPlaidView(), this.viewMode === 'manual' && this.renderManualEntryView())));
|
|
655
515
|
}
|
|
656
516
|
static get watchers() { return {
|
|
657
517
|
"authToken": ["propChanged"],
|
|
@@ -781,7 +641,7 @@ const BusinessCoreInfoFormStep = class {
|
|
|
781
641
|
if (this.isLoading) {
|
|
782
642
|
return index.h(paymentProvisioningLoading.PaymentProvisioningLoading, null);
|
|
783
643
|
}
|
|
784
|
-
return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Business Information")), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "legal_name", label: "Business Name", defaultValue: coreInfoDefaultValue.legal_name, errorText: this.errors.legal_name, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (don't use acronyms or abbreviations unless you registered that way)." })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "doing_business_as", label: "Doing Business As (DBA)", defaultValue: coreInfoDefaultValue.doing_business_as, errorText: this.errors.doing_business_as, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (leave blank if you don't have a registered DBA/trade name)" })), index.h("div", { class: "col-12 col-md-8" }, index.h("form-control-select", { name: "classification", label: "Business Classification", options: businessFormOptions.businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-4" }, index.h("form-control-date", { name: "date_of_incorporation", label: "Date of Registration", defaultValue: coreInfoDefaultValue.date_of_incorporation, errorText: this.errors.date_of_incorporation, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), index.h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (index.h("form-control-number-masked", { name: "tax_id", label: countryConfig.countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryConfig.countryLabels[this.country].taxIdHelpText })) : (index.h("div", null, index.h("label", { class: "form-label", part: parts.label }, countryConfig.countryLabels[this.country].taxIdLabel), index.h("div", { class: "input-group mb-3" }, index.h("input", { type: "text", class: "form-control", part: parts.inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), index.h("button", { class: "btn btn-secondary", type: "button", part: parts.buttonSecondary, onClick: () => {
|
|
644
|
+
return (index.h("form", null, index.h("fieldset", null, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Business Information")), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "legal_name", label: "Business Name", defaultValue: coreInfoDefaultValue.legal_name, errorText: this.errors.legal_name, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (don't use acronyms or abbreviations unless you registered that way)." })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "doing_business_as", label: "Doing Business As (DBA)", defaultValue: coreInfoDefaultValue.doing_business_as, errorText: this.errors.doing_business_as, inputHandler: this.inputHandler, helpText: "Enter this exactly as it appears on your tax records (leave blank if you don't have a registered DBA/trade name)" })), index.h("div", { class: "col-12 col-md-8" }, index.h("form-control-select", { name: "classification", label: "Business Classification", options: businessFormOptions.businessClassificationOptions, defaultValue: coreInfoDefaultValue.classification, errorText: this.errors.classification, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-4" }, index.h("form-control-date", { name: "date_of_incorporation", label: "Date of Registration", defaultValue: coreInfoDefaultValue.date_of_incorporation, errorText: this.errors.date_of_incorporation, inputHandler: this.inputHandler })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-text", { name: "industry", label: "Industry", defaultValue: coreInfoDefaultValue.industry, errorText: this.errors.industry, inputHandler: this.inputHandler, helpText: "Describe what you sell" })), index.h("div", { class: "col-12 col-md-6" }, (!((_a = this.coreInfo) === null || _a === void 0 ? void 0 : _a.tax_id_last4) || this.isEditingTaxId) ? (index.h("form-control-number-masked", { name: "tax_id", label: countryConfig.countryLabels[this.country].taxIdLabelOptional || countryConfig.countryLabels[this.country].taxIdLabel, defaultValue: this.isEditingTaxId ? '' : coreInfoDefaultValue.tax_id, errorText: this.errors.tax_id, inputHandler: this.inputHandler, mask: '000000000', helpText: countryConfig.countryLabels[this.country].taxIdHelpText })) : (index.h("div", null, index.h("label", { class: "form-label", part: parts.label }, countryConfig.countryLabels[this.country].taxIdLabel), index.h("div", { class: "input-group mb-3" }, index.h("input", { type: "text", class: "form-control", part: parts.inputDisabled, value: `****${(_b = this.coreInfo) === null || _b === void 0 ? void 0 : _b.tax_id_last4}`, disabled: true }), index.h("button", { class: "btn btn-secondary", type: "button", part: parts.buttonSecondary, onClick: () => {
|
|
785
645
|
this.isEditingTaxId = true;
|
|
786
646
|
// Clear last4-equivalent and current value if any future conditional validation depends on it
|
|
787
647
|
this.formController.setValues(Object.assign(Object.assign({}, this.formController.values.getValue()), { tax_id: '', tax_id_last4: null }));
|
|
@@ -933,6 +793,14 @@ const BusinessOwnersFormStep = class {
|
|
|
933
793
|
if (!formsValid) {
|
|
934
794
|
return;
|
|
935
795
|
}
|
|
796
|
+
if (!this.allowOptionalFields) {
|
|
797
|
+
const percentages = await Promise.all(this.refs.map(ref => ref.getOwnershipPercentage()));
|
|
798
|
+
const total = percentages.reduce((sum, p) => sum + (parseFloat(p) || 0), 0);
|
|
799
|
+
if (total !== 100) {
|
|
800
|
+
await Promise.all(this.refs.map(ref => ref.setOwnershipPercentageError('Ownership percentages must total 100%')));
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
}
|
|
936
804
|
const formSubmissions = this.refs.map(ref => ref.submit());
|
|
937
805
|
const submissionsValid = (await Promise.all(formSubmissions)).every(result => result);
|
|
938
806
|
if (!submissionsValid) {
|
|
@@ -1010,14 +878,14 @@ const BusinessRepresentativeFormInputs = class {
|
|
|
1010
878
|
}
|
|
1011
879
|
render() {
|
|
1012
880
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
1013
|
-
return (index.h("form", { key: '
|
|
881
|
+
return (index.h("form", { key: '2346f250e4e2982b5b5b2624d039f551b5b5ed4e' }, index.h("fieldset", { key: '7b496e6157e5eec02ef0d263c68fbd1e001c75ac' }, index.h("div", { key: 'b86d993c7fbee2269e48c7d4ea51826f199fecd4', class: "d-flex align-items-center gap-2" }, index.h("legend", { key: '2b013e6068bbbca54a0852093ab4a2fae4ce64d2', class: "mb-0", part: parts.heading2 }, "Representative"), index.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." })), index.h("hr", { key: '4bec34756ec7081e01809175bc3d2b6af0532537', class: "mt-2" }), index.h("div", { key: '6965720fabb1f12c6bb3c5a81f74ae12f44037b2', class: "row gy-3" }, index.h("div", { key: 'efbb768ba1e66d5ef47f792c39a17921b40e0eba', class: "col-12 col-md-8" }, index.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 })), index.h("div", { key: '28f17ccbe4da476256acd9c5a4e78a6a641ba6e9', class: "col-12 col-md-4" }, index.h("form-control-select", { key: 'dae6a93a0bc057abb97024277be0f10de01514e2', name: "title", label: "Title", options: businessFormOptions.businessTitleOptions, defaultValue: (_b = this.representativeDefaultValue) === null || _b === void 0 ? void 0 : _b.title, errorText: this.errors.title, inputHandler: this.inputHandler })), index.h("div", { key: '2f9a45774adaa0040df2da1a8000d1ee61e16bf5', class: "col-12 col-md-6" }, index.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 })), index.h("div", { key: '3b34f0cb11d358db2220c01aac90e8b7ba3cc01b', class: "col-12 col-md-6" }, index.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: formInputMasks.PHONE_MASKS.US })), index.h("div", { key: 'd287ec225af1541cca227d3b8bc54466cbb86b07', class: "col-12 col-md-4" }, index.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) => inputHandlers.updateDateOfBirthFormValues(e, this.formController), helpText: "Must be 18 or older." })), index.h("div", { key: '283b09c845f1a12f4974f82a26fffbf7c5f608ba', class: "col-12 col-md-8" }, (!((_f = this.representativeDefaultValue) === null || _f === void 0 ? void 0 : _f.ssn_last4) || this.isEditingIdentification) ? (index.h("form-control-number-masked", { name: "identification_number", label: this.country === Business.CountryCode.CAN ? countryConfig.countryLabels[this.country].idNumberLabelOptional : countryConfig.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: formInputMasks.IDENTITY_MASKS[this.country], helpText: countryConfig.countryLabels[this.country].identityHelpText })) : (index.h("div", null, index.h("label", { class: "form-label", part: parts.label }, this.country === Business.CountryCode.CAN ? countryConfig.countryLabels[this.country].idNumberLabelOptional : countryConfig.countryLabels[this.country].idNumberLabel), index.h("div", { class: "input-group mb-3" }, index.h("input", { type: "text", class: "form-control", part: parts.inputDisabled, value: `****${(_h = this.representativeDefaultValue) === null || _h === void 0 ? void 0 : _h.ssn_last4}`, disabled: true }), index.h("button", { class: "btn btn-secondary", type: "button", part: parts.buttonSecondary, onClick: () => {
|
|
1014
882
|
this.isEditingIdentification = true;
|
|
1015
883
|
// Clear current value to force validation
|
|
1016
884
|
inputHandlers.updateFormValues(this.formController, {
|
|
1017
885
|
identification_number: '',
|
|
1018
886
|
ssn_last4: null
|
|
1019
887
|
});
|
|
1020
|
-
} }, "Change"))))), index.h("div", { key: '
|
|
888
|
+
} }, "Change"))))), index.h("div", { key: '0a40679570df7b85faa7530797ebc21ca8794263', class: "col-12" }, index.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 }))))));
|
|
1021
889
|
}
|
|
1022
890
|
};
|
|
1023
891
|
|
|
@@ -1270,6 +1138,339 @@ const BusinessTermsConditionsFormStep = class {
|
|
|
1270
1138
|
}
|
|
1271
1139
|
};
|
|
1272
1140
|
|
|
1141
|
+
const businessDocumentOptions = [
|
|
1142
|
+
{ label: 'Select a document type', value: '' },
|
|
1143
|
+
{ label: 'Articles of Incorporation', value: 'articles_of_incorporation' },
|
|
1144
|
+
{ label: 'Business Registration', value: 'business_registration' },
|
|
1145
|
+
];
|
|
1146
|
+
const financialDocumentOptions = [
|
|
1147
|
+
{ label: 'Select a document type', value: '' },
|
|
1148
|
+
{ label: 'Voided Check', value: 'voided_check' },
|
|
1149
|
+
{ label: 'Bank Statement', value: 'bank_statement' },
|
|
1150
|
+
];
|
|
1151
|
+
const personalDocGroup1Options = [
|
|
1152
|
+
{ label: 'Select a document type', value: '' },
|
|
1153
|
+
{ label: 'Canadian Passport', value: 'passport' },
|
|
1154
|
+
{ label: 'Canadian Driver\'s License', value: 'driver_license' },
|
|
1155
|
+
{ label: 'Canadian Government Issued ID Card', value: 'government_id' },
|
|
1156
|
+
{ label: 'Permanent Resident Card', value: 'resident_card' },
|
|
1157
|
+
{ label: 'Certificate of Indian Status', value: 'status_card' },
|
|
1158
|
+
{ label: 'US State Issued Driver\'s License', value: 'driver_license' },
|
|
1159
|
+
];
|
|
1160
|
+
const personalDocGroup2Options = [
|
|
1161
|
+
{ label: 'Select a document type', value: '' },
|
|
1162
|
+
{ label: 'Nexus Card (Photo ID)', value: 'nexus_card' },
|
|
1163
|
+
{ label: 'Canadian Citizenship/Naturalization Card or Certificate', value: 'citizenship_card' },
|
|
1164
|
+
{ label: 'Foreign Passport', value: 'foreign_passport' },
|
|
1165
|
+
{ label: 'Canadian Birth Certificate', value: 'birth_certificate' },
|
|
1166
|
+
{ label: 'Social Insurance Number (SIN) Card', value: 'sin_card' },
|
|
1167
|
+
{ label: 'Social Security Number (SSN) Card', value: 'ssn_card' },
|
|
1168
|
+
];
|
|
1169
|
+
const staticCategories = [
|
|
1170
|
+
{
|
|
1171
|
+
label: 'Business Document',
|
|
1172
|
+
value: 'business_document',
|
|
1173
|
+
docTypeOptions: businessDocumentOptions,
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
label: 'Financial Document',
|
|
1177
|
+
value: 'financial_document',
|
|
1178
|
+
docTypeOptions: financialDocumentOptions,
|
|
1179
|
+
},
|
|
1180
|
+
];
|
|
1181
|
+
function buildOwnerCategories(owners) {
|
|
1182
|
+
const group1Opts = personalDocGroup1Options.filter(o => o.value !== '');
|
|
1183
|
+
const group2Opts = personalDocGroup2Options.filter(o => o.value !== '');
|
|
1184
|
+
return owners.map(owner => ({
|
|
1185
|
+
label: `${owner.name} - Identity Document`,
|
|
1186
|
+
value: `personal_${owner.id}`,
|
|
1187
|
+
identityId: owner.id,
|
|
1188
|
+
docTypeOptions: [
|
|
1189
|
+
{ label: 'Select a document type', value: '' },
|
|
1190
|
+
{ label: '── Group 1 ──', value: '_group1_header' },
|
|
1191
|
+
...group1Opts,
|
|
1192
|
+
{ label: '── Group 2 ──', value: '_group2_header' },
|
|
1193
|
+
...group2Opts,
|
|
1194
|
+
],
|
|
1195
|
+
}));
|
|
1196
|
+
}
|
|
1197
|
+
const financialOnlyCategories = [
|
|
1198
|
+
{
|
|
1199
|
+
label: 'Financial Document',
|
|
1200
|
+
value: 'financial_document',
|
|
1201
|
+
docTypeOptions: financialDocumentOptions,
|
|
1202
|
+
},
|
|
1203
|
+
];
|
|
1204
|
+
function buildAllCategories(owners, country) {
|
|
1205
|
+
if (country === Business.CountryCode.USA) {
|
|
1206
|
+
return financialOnlyCategories;
|
|
1207
|
+
}
|
|
1208
|
+
return [...staticCategories, ...buildOwnerCategories(owners)];
|
|
1209
|
+
}
|
|
1210
|
+
const personalDocGroup1Types = new Set(personalDocGroup1Options.filter(o => o.value).map(o => o.value));
|
|
1211
|
+
const personalDocGroup2Types = new Set(personalDocGroup2Options.filter(o => o.value).map(o => o.value));
|
|
1212
|
+
|
|
1213
|
+
const DocumentUploadFormStep = class {
|
|
1214
|
+
constructor(hostRef) {
|
|
1215
|
+
index.registerInstance(this, hostRef);
|
|
1216
|
+
this.errorEvent = index.createEvent(this, "error-event", 7);
|
|
1217
|
+
this.stepCompleteEvent = index.createEvent(this, "complete-form-step-event", 7);
|
|
1218
|
+
this.formLoading = index.createEvent(this, "formLoading", 7);
|
|
1219
|
+
this.owners = [];
|
|
1220
|
+
this.existingDocuments = [];
|
|
1221
|
+
this.selectedCategory = '';
|
|
1222
|
+
this.selectedDocType = '';
|
|
1223
|
+
this.uploadQueue = [];
|
|
1224
|
+
this.isLoading = false;
|
|
1225
|
+
this.errors = {};
|
|
1226
|
+
this.fileInputKey = 0;
|
|
1227
|
+
this.categories = [];
|
|
1228
|
+
this.getData = () => {
|
|
1229
|
+
this.isLoading = true;
|
|
1230
|
+
this.getBusiness({
|
|
1231
|
+
onSuccess: (response) => {
|
|
1232
|
+
const { owners, documents } = response.data;
|
|
1233
|
+
this.owners = owners || [];
|
|
1234
|
+
this.existingDocuments = documents || [];
|
|
1235
|
+
this.categories = buildAllCategories(this.owners, this.country);
|
|
1236
|
+
},
|
|
1237
|
+
onError: ({ error, code, severity }) => {
|
|
1238
|
+
this.errorEvent.emit({
|
|
1239
|
+
message: error,
|
|
1240
|
+
errorCode: code,
|
|
1241
|
+
severity: severity,
|
|
1242
|
+
});
|
|
1243
|
+
},
|
|
1244
|
+
final: () => {
|
|
1245
|
+
this.isLoading = false;
|
|
1246
|
+
}
|
|
1247
|
+
});
|
|
1248
|
+
};
|
|
1249
|
+
this.handleCategoryChange = (_name, value) => {
|
|
1250
|
+
this.selectedCategory = value;
|
|
1251
|
+
this.selectedDocType = '';
|
|
1252
|
+
};
|
|
1253
|
+
this.handleDocTypeChange = (_name, value) => {
|
|
1254
|
+
if (value.startsWith('_') && value.endsWith('_header'))
|
|
1255
|
+
return;
|
|
1256
|
+
this.selectedDocType = value;
|
|
1257
|
+
};
|
|
1258
|
+
this.handleFileSelected = async (e) => {
|
|
1259
|
+
const fileList = Array.from(e.detail.fileList);
|
|
1260
|
+
const category = this.categories.find(c => c.value === this.selectedCategory);
|
|
1261
|
+
if (!category)
|
|
1262
|
+
return;
|
|
1263
|
+
const docTypeOption = category.docTypeOptions.find(o => o.value === this.selectedDocType);
|
|
1264
|
+
const docTypeLabel = (docTypeOption === null || docTypeOption === void 0 ? void 0 : docTypeOption.label) || this.selectedDocType;
|
|
1265
|
+
const newEntries = fileList.map(file => ({
|
|
1266
|
+
categoryLabel: category.label,
|
|
1267
|
+
categoryValue: category.value,
|
|
1268
|
+
docTypeLabel,
|
|
1269
|
+
docTypeValue: this.selectedDocType,
|
|
1270
|
+
fileName: file.name,
|
|
1271
|
+
file,
|
|
1272
|
+
identityId: category.identityId,
|
|
1273
|
+
status: 'uploading',
|
|
1274
|
+
}));
|
|
1275
|
+
const startIndex = this.uploadQueue.length;
|
|
1276
|
+
this.uploadQueue = [...this.uploadQueue, ...newEntries];
|
|
1277
|
+
this.selectedCategory = '';
|
|
1278
|
+
this.selectedDocType = '';
|
|
1279
|
+
this.fileInputKey++;
|
|
1280
|
+
await Promise.all(newEntries.map(async (entry, i) => {
|
|
1281
|
+
const index = startIndex + i;
|
|
1282
|
+
try {
|
|
1283
|
+
const docData = new Plaid.EntityDocument({ file: entry.file, document_type: entry.docTypeValue }, this.businessId, entry.identityId);
|
|
1284
|
+
const recordCreated = await this.postDocumentRecordData(docData);
|
|
1285
|
+
if (!recordCreated) {
|
|
1286
|
+
this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: 'error' }) : e);
|
|
1287
|
+
return;
|
|
1288
|
+
}
|
|
1289
|
+
const uploaded = await this.uploadDocument(docData);
|
|
1290
|
+
this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: uploaded ? 'uploaded' : 'error' }) : e);
|
|
1291
|
+
}
|
|
1292
|
+
catch (_a) {
|
|
1293
|
+
this.uploadQueue = this.uploadQueue.map((e, j) => j === index ? Object.assign(Object.assign({}, e), { status: 'error' }) : e);
|
|
1294
|
+
}
|
|
1295
|
+
}));
|
|
1296
|
+
};
|
|
1297
|
+
this.postDocumentRecordData = async (docData) => {
|
|
1298
|
+
const payload = docData.record_data;
|
|
1299
|
+
return new Promise((resolve) => {
|
|
1300
|
+
this.postDocumentRecord({
|
|
1301
|
+
payload,
|
|
1302
|
+
onSuccess: (response) => {
|
|
1303
|
+
resolve(this.handleDocRecordResponse(docData, response));
|
|
1304
|
+
},
|
|
1305
|
+
onError: ({ error, code, severity }) => {
|
|
1306
|
+
this.errorEvent.emit({
|
|
1307
|
+
message: error,
|
|
1308
|
+
errorCode: code,
|
|
1309
|
+
severity: severity,
|
|
1310
|
+
});
|
|
1311
|
+
resolve(false);
|
|
1312
|
+
},
|
|
1313
|
+
});
|
|
1314
|
+
});
|
|
1315
|
+
};
|
|
1316
|
+
this.handleDocRecordResponse = (docData, response) => {
|
|
1317
|
+
if (response.error) {
|
|
1318
|
+
this.errorEvent.emit({
|
|
1319
|
+
errorCode: Plaid.ComponentErrorCodes.POST_ERROR,
|
|
1320
|
+
message: response.error.message,
|
|
1321
|
+
severity: Plaid.ComponentErrorSeverity.ERROR,
|
|
1322
|
+
data: response.error,
|
|
1323
|
+
});
|
|
1324
|
+
return false;
|
|
1325
|
+
}
|
|
1326
|
+
else {
|
|
1327
|
+
docData.setPresignedUrl(response.data.presigned_url);
|
|
1328
|
+
return true;
|
|
1329
|
+
}
|
|
1330
|
+
};
|
|
1331
|
+
this.uploadDocument = async (docData) => {
|
|
1332
|
+
if (!docData.presigned_url) {
|
|
1333
|
+
throw new Error('Presigned URL is not set');
|
|
1334
|
+
}
|
|
1335
|
+
const fileData = await docData.getFileData();
|
|
1336
|
+
const response = await fetch(docData.presigned_url, {
|
|
1337
|
+
method: 'PUT',
|
|
1338
|
+
body: fileData,
|
|
1339
|
+
});
|
|
1340
|
+
if (!response.ok) {
|
|
1341
|
+
this.errorEvent.emit({
|
|
1342
|
+
errorCode: Plaid.ComponentErrorCodes.POST_ERROR,
|
|
1343
|
+
message: 'Failed to upload document',
|
|
1344
|
+
severity: Plaid.ComponentErrorSeverity.ERROR,
|
|
1345
|
+
});
|
|
1346
|
+
return false;
|
|
1347
|
+
}
|
|
1348
|
+
return true;
|
|
1349
|
+
};
|
|
1350
|
+
}
|
|
1351
|
+
propChanged() {
|
|
1352
|
+
this.initializeApi();
|
|
1353
|
+
}
|
|
1354
|
+
watchHandler(newValue) {
|
|
1355
|
+
this.formLoading.emit(newValue);
|
|
1356
|
+
}
|
|
1357
|
+
async validateAndSubmit({ onSuccess }) {
|
|
1358
|
+
const validationErrors = this.validate();
|
|
1359
|
+
if (Object.keys(validationErrors).length > 0) {
|
|
1360
|
+
this.errors = validationErrors;
|
|
1361
|
+
return;
|
|
1362
|
+
}
|
|
1363
|
+
this.errors = {};
|
|
1364
|
+
this.stepCompleteEvent.emit({ response: null, formStep: eventTypes.BusinessFormStep.documentUpload });
|
|
1365
|
+
onSuccess();
|
|
1366
|
+
}
|
|
1367
|
+
componentWillLoad() {
|
|
1368
|
+
this.initializeApi();
|
|
1369
|
+
if (this.getBusiness) {
|
|
1370
|
+
this.getData();
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
initializeApi() {
|
|
1374
|
+
if (this.authToken && this.businessId) {
|
|
1375
|
+
this.getBusiness = paymentProvisioningActions.makeGetBusiness({
|
|
1376
|
+
authToken: this.authToken,
|
|
1377
|
+
businessId: this.businessId,
|
|
1378
|
+
service: new business_service.BusinessService()
|
|
1379
|
+
});
|
|
1380
|
+
this.postDocumentRecord = paymentProvisioningActions.makePostDocumentRecord({
|
|
1381
|
+
authToken: this.authToken,
|
|
1382
|
+
service: new business_service.DocumentRecordService()
|
|
1383
|
+
});
|
|
1384
|
+
}
|
|
1385
|
+
else {
|
|
1386
|
+
this.errorEvent.emit({
|
|
1387
|
+
message: 'Missing required props',
|
|
1388
|
+
errorCode: Plaid.ComponentErrorCodes.MISSING_PROPS,
|
|
1389
|
+
severity: Plaid.ComponentErrorSeverity.ERROR,
|
|
1390
|
+
});
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
get categoryOptions() {
|
|
1394
|
+
return [
|
|
1395
|
+
{ label: 'Select a category', value: '' },
|
|
1396
|
+
...this.categories.map(c => ({ label: c.label, value: c.value })),
|
|
1397
|
+
];
|
|
1398
|
+
}
|
|
1399
|
+
get docTypeOptions() {
|
|
1400
|
+
if (!this.selectedCategory) {
|
|
1401
|
+
return [{ label: 'Select a category first', value: '' }];
|
|
1402
|
+
}
|
|
1403
|
+
const category = this.categories.find(c => c.value === this.selectedCategory);
|
|
1404
|
+
return (category === null || category === void 0 ? void 0 : category.docTypeOptions) || [{ label: 'Select a category first', value: '' }];
|
|
1405
|
+
}
|
|
1406
|
+
validate() {
|
|
1407
|
+
if (this.allowOptionalFields)
|
|
1408
|
+
return {};
|
|
1409
|
+
const errors = {};
|
|
1410
|
+
const financialDocTypes = ['voided_check', 'bank_statement'];
|
|
1411
|
+
const hasExistingDoc = (types) => this.existingDocuments.some(doc => types.includes(doc.document_type));
|
|
1412
|
+
const hasUploadedDoc = (categoryValue) => this.uploadQueue.some(entry => entry.categoryValue === categoryValue && entry.status === 'uploaded');
|
|
1413
|
+
if (!hasUploadedDoc('financial_document') && !hasExistingDoc(financialDocTypes)) {
|
|
1414
|
+
errors['financial_document'] = 'Please upload a financial document';
|
|
1415
|
+
}
|
|
1416
|
+
if (this.country === Business.CountryCode.CAN) {
|
|
1417
|
+
const businessDocTypes = ['articles_of_incorporation', 'business_registration'];
|
|
1418
|
+
if (!hasUploadedDoc('business_document') && !hasExistingDoc(businessDocTypes)) {
|
|
1419
|
+
errors['business_document'] = 'Please upload a business document';
|
|
1420
|
+
}
|
|
1421
|
+
for (const owner of this.owners) {
|
|
1422
|
+
const ownerCategoryValue = `personal_${owner.id}`;
|
|
1423
|
+
const ownerDocs = this.uploadQueue.filter(entry => entry.categoryValue === ownerCategoryValue && entry.status === 'uploaded');
|
|
1424
|
+
const hasGroup1 = ownerDocs.some(d => personalDocGroup1Types.has(d.docTypeValue));
|
|
1425
|
+
const hasGroup2 = ownerDocs.some(d => personalDocGroup2Types.has(d.docTypeValue));
|
|
1426
|
+
if (!hasGroup1) {
|
|
1427
|
+
errors[`personal_group1_${owner.id}`] =
|
|
1428
|
+
`Please upload a Group 1 identity document for ${owner.name}`;
|
|
1429
|
+
}
|
|
1430
|
+
if (!hasGroup2) {
|
|
1431
|
+
errors[`personal_group2_${owner.id}`] =
|
|
1432
|
+
`Please upload a Group 2 identity document for ${owner.name}`;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
return errors;
|
|
1437
|
+
}
|
|
1438
|
+
render() {
|
|
1439
|
+
if (this.isLoading) {
|
|
1440
|
+
return index.h(paymentProvisioningLoading.PaymentProvisioningLoading, null);
|
|
1441
|
+
}
|
|
1442
|
+
return (index.h("form", null, index.h("fieldset", null, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Document Uploads"), index.h("hr", { class: "mt-2" }), index.h("business-documents-on-file", { documents: this.existingDocuments, isLoading: this.isLoading })), index.h("fieldset", { class: "mt-4" }, index.h("div", { class: "d-flex align-items-center gap-2" }, index.h("legend", { class: "mb-0", part: parts.heading2 }, "Add Document"), index.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." })), index.h("hr", { class: "mt-2" }), index.h("div", { class: "row gy-3" }, index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-select", { name: "document_category", label: "Document Category", options: this.categoryOptions, defaultValue: this.selectedCategory, inputHandler: this.handleCategoryChange })), index.h("div", { class: "col-12 col-md-6" }, index.h("form-control-select", { name: "document_type", label: "Document Type", options: this.docTypeOptions, defaultValue: this.selectedDocType, inputHandler: this.handleDocTypeChange, disabled: !this.selectedCategory })), index.h("div", { class: "col-12" }, index.h("form-control-file", { key: this.fileInputKey, name: "document_file", label: "Upload Document", documentType: this.selectedDocType, onFileSelected: this.handleFileSelected, disabled: !this.selectedDocType, multiple: false })))), index.h("document-upload-list", { documents: this.uploadQueue }), Object.keys(this.errors).length > 0 && (index.h("div", { class: "alert alert-danger mt-3" }, index.h("ul", { class: "mb-0" }, Object.values(this.errors).map(err => index.h("li", null, err)))))));
|
|
1443
|
+
}
|
|
1444
|
+
static get watchers() { return {
|
|
1445
|
+
"authToken": ["propChanged"],
|
|
1446
|
+
"businessId": ["propChanged"],
|
|
1447
|
+
"isLoading": ["watchHandler"]
|
|
1448
|
+
}; }
|
|
1449
|
+
};
|
|
1450
|
+
|
|
1451
|
+
const DocumentUploadList = class {
|
|
1452
|
+
constructor(hostRef) {
|
|
1453
|
+
index.registerInstance(this, hostRef);
|
|
1454
|
+
this.documents = [];
|
|
1455
|
+
}
|
|
1456
|
+
renderStatus(status) {
|
|
1457
|
+
switch (status) {
|
|
1458
|
+
case 'uploading':
|
|
1459
|
+
return index.h("span", { class: "badge bg-info" }, "Uploading...");
|
|
1460
|
+
case 'uploaded':
|
|
1461
|
+
return index.h("span", { class: "badge bg-success" }, "Uploaded");
|
|
1462
|
+
case 'error':
|
|
1463
|
+
return index.h("span", { class: "badge bg-danger" }, "Error");
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
render() {
|
|
1467
|
+
if (!this.documents.length) {
|
|
1468
|
+
return null;
|
|
1469
|
+
}
|
|
1470
|
+
return (index.h("div", { class: "mt-4" }, index.h("div", { class: "card", part: parts.card }, index.h("div", { class: "card-body" }, index.h("h5", { class: "card-title", part: parts.heading2 }, "Uploaded Documents"), index.h("div", { class: "table-responsive" }, index.h("table", { class: "table table-sm table-borderless", part: parts.table }, index.h("thead", null, index.h("tr", null, index.h("th", { style: { width: '25%' }, part: parts.tableHeadCell, scope: "col" }, "Category"), index.h("th", { style: { width: '25%' }, part: parts.tableHeadCell, scope: "col" }, "Document Type"), index.h("th", { style: { width: '30%' }, part: parts.tableHeadCell, scope: "col" }, "File Name"), index.h("th", { style: { width: '20%' }, part: parts.tableHeadCell, scope: "col" }, "Status"))), index.h("tbody", null, this.documents.map((doc, index$1) => (index.h("tr", { class: index$1 === 0 ? 'border-bottom border-top' : 'border-bottom' }, index.h("td", { part: parts.tableCell }, doc.categoryLabel), index.h("td", { part: parts.tableCell }, doc.docTypeLabel), index.h("td", { part: parts.tableCell }, doc.fileName), index.h("td", { part: parts.tableCell }, this.renderStatus(doc.status))))))))))));
|
|
1471
|
+
}
|
|
1472
|
+
};
|
|
1473
|
+
|
|
1273
1474
|
const LegalAddressFormStep = class {
|
|
1274
1475
|
constructor(hostRef) {
|
|
1275
1476
|
index.registerInstance(this, hostRef);
|
|
@@ -1481,6 +1682,13 @@ const OwnerForm = class {
|
|
|
1481
1682
|
async returnOwnerData() {
|
|
1482
1683
|
return this.ownerId;
|
|
1483
1684
|
}
|
|
1685
|
+
async getOwnershipPercentage() {
|
|
1686
|
+
var _a;
|
|
1687
|
+
return ((_a = this.formController.values.getValue()) === null || _a === void 0 ? void 0 : _a.ownership_percentage) || null;
|
|
1688
|
+
}
|
|
1689
|
+
async setOwnershipPercentageError(message) {
|
|
1690
|
+
this.formController.setFieldError('ownership_percentage', message);
|
|
1691
|
+
}
|
|
1484
1692
|
async validate() {
|
|
1485
1693
|
return this.formController.validate();
|
|
1486
1694
|
}
|
|
@@ -1555,7 +1763,7 @@ const OwnerForm = class {
|
|
|
1555
1763
|
});
|
|
1556
1764
|
}
|
|
1557
1765
|
render() {
|
|
1558
|
-
return (index.h(index.Host, { key: '
|
|
1766
|
+
return (index.h(index.Host, { key: 'b168e9f5a52416984e6a04ab5f0771b63ee28b2e', style: { display: 'block' } }, index.h("form", { key: 'd22a6aae3f5debd30d87b3bd37c67390a46c4590', onSubmit: this.validateAndSubmit }, index.h("fieldset", { key: '30597bc1f4983bddbdc0ed45e6be7e715d0b9b8e' }, index.h("legend", { key: '508f2a777bd0422572002053f6c167242252850d', class: "fw-semibold fs-5", part: parts.heading3 }, this.formTitle), index.h("br", { key: '2dd17c21e931a2a9c15489828c7d1d0542ff4de4' }), index.h("div", { key: 'e9d7d7a10546e5e1bdabb0a994d994c47cd77bd6', class: "row gy-3" }, index.h("owner-form-inputs", { key: 'e556391c25a05d3f89601f1e0ac3834a5c26becd', ownerDefaultValue: this.formController.getInitialValues(), errors: this.errors, formController: this.formController, country: this.country }), index.h("div", { key: '48eb9390459f2ca619914e54726c9a0ae1290e31', class: "d-flex gap-2 justify-content-start" }, index.h(button.Button, { key: 'f9ccd8732981cdec9675332cc8f5c14d4938cbad', variant: "secondary", type: "button", onClick: this.handleRemoveOwner, hidden: !this.showRemoveButton }, "Remove"), index.h(button.Button, { key: '607a54ce6c4c0af42f3f8c7cbe1374a69752eca3', variant: "primary", type: "submit", onClick: this.handleAddOwner, disabled: this.isLoading }, this.submitButtonText))), index.h("hr", { key: '9ec1f815d8c3335daf2a4f98c2679930e22956e3' })))));
|
|
1559
1767
|
}
|
|
1560
1768
|
static get watchers() { return {
|
|
1561
1769
|
"isLoading": ["loadingWatcher"]
|
|
@@ -1875,7 +2083,6 @@ const PlaidVerification = class {
|
|
|
1875
2083
|
};
|
|
1876
2084
|
|
|
1877
2085
|
exports.additional_questions_form_step = AdditionalQuestionsFormStep;
|
|
1878
|
-
exports.bank_account_document_form_inputs = BankAccountDocumentFormInputs;
|
|
1879
2086
|
exports.bank_account_form_inputs = BankAccountFormInputs;
|
|
1880
2087
|
exports.bank_account_form_inputs_canada = BankAccountFormInputsCanada;
|
|
1881
2088
|
exports.business_bank_account_form_step = BusinessBankAccountFormStep;
|
|
@@ -1885,6 +2092,8 @@ exports.business_owners_form_step = BusinessOwnersFormStep;
|
|
|
1885
2092
|
exports.business_representative_form_inputs = BusinessRepresentativeFormInputs;
|
|
1886
2093
|
exports.business_representative_form_step = BusinessRepresentativeFormStep;
|
|
1887
2094
|
exports.business_terms_conditions_form_step = BusinessTermsConditionsFormStep;
|
|
2095
|
+
exports.document_upload_form_step = DocumentUploadFormStep;
|
|
2096
|
+
exports.document_upload_list = DocumentUploadList;
|
|
1888
2097
|
exports.legal_address_form_step = LegalAddressFormStep;
|
|
1889
2098
|
exports.owner_form = OwnerForm;
|
|
1890
2099
|
exports.plaid_verification = PlaidVerification;
|